Source Code
10 PRINT "HAVE YOU RESERVED MEMORY?"
20 INPUT A$
30 IF A$="" THEN GOTO 50
40 IF A$(1)="N" THEN GOTO 9000
50 CLS
60 LET RT=PEEK 16388+256*PEEK 16389
70 PRINT "RAMTOP= ";RT
80 PRINT "HEX CODE:"
100 LET CI=0
110 LET H$=""
120 GOSUB 400
130 DIM F(20)
131 LET F(1)=700
132 LET F(6)=800
133 LET F(7)=900
134 LET F(8)=1000
135 LET F(10)=1100
136 LET F(11)=1200
137 LET F(12)=1300
138 LET F(13)=1400
139 LET F(14)=1500
140 LET F(18)=1600
141 LET F(17)=3000
200 INPUT I$
210 LET A=0
220 LET A=A+1
230 IF A>LEN I$ THEN GOTO 300
240 IF I$(A)<>" " THEN GOTO 220
250 LET I$=I$( TO A-1)+I$(A+1 TO )
260 GOTO 230
300 IF CODE I$(1)>=44 THEN GOTO 500
310 LET I$=I$+"**"
320 LET H$=H$( TO 2*CI)+I$+H$(2*CI+1 TO )
330 GOSUB 450
340 GOSUB 600
350 GOSUB 400
360 GOTO 200
400 REM %P%R%I%N%T% %C%U%R%S%O%R
410 PRINT AT 2+INT (CI/10),3*(CI-10*INT (CI/10));"%>";
420 RETURN
450 REM %U%N%P%R%I%N%T% %C%U%R%S%O%R
460 PRINT AT 2+INT (CI/10),3*(CI-10*INT (CI/10));" ";
470 RETURN
500 REM %R%O%U%T%I%N%E%S
510 GOSUB F(CODE I$(1)-43)
520 GOTO 200
600 REM %P%R%I%N%T% %A%P%P%E%N%D%E%D% %T%E%X%T
610 FOR J=1 TO LEN I$/2
620 PRINT I$(2*J-1 TO 2*J)+" ";
630 LET CI=CI+1
640 IF CI=10*INT (CI/10) THEN PRINT " ";
650 NEXT J
660 RETURN
700 REM %G%O
710 CLS
720 PRINT "NUMBER OF DATA BYTES?"
730 INPUT D
740 CLS
750 LET Y=USR (RT+D)
760 RETURN
800 REM %L%O%A%D
810 LET H$=H$+"3E1EED47FD210040C9"
820 LET J=RT-1
830 LET I=-1
840 LET J=J+1
850 LET I=I+2
860 IF I>LEN I$ THEN RETURN
870 IF H$(I)="*" THEN GOTO 850
880 POKE J,16*(CODE H$(I)-28)+CODE H$(I+1)-28
890 GOTO 840
900 REM %M%O%V%E% %C%U%R%S%O%R% %P%O%S%I%T%I%V%E%L%Y
910 GOSUB 450
920 IF LEN I$=1 THEN LET CM=1
930 IF LEN I$>1 THEN LET CM=VAL I$(2 TO )
940 LET CI=CI+CM
950 IF CI>LEN H$/2 THEN LET CI=LEN H$/2
960 GOSUB 400
970 RETURN
\n1000 REM %M%O%V%E% %C%U%R%S%O%R% %N%E%G%A%T%I%V%E%L%Y
\n1010 GOSUB 450
\n1020 IF LEN I$=1 THEN LET CM=1
\n1030 IF LEN I$>1 THEN LET CM=VAL I$(2 TO )
\n1040 LET CI=CI-CM
\n1050 IF CI<0 THEN LET CI=0
\n1060 GOSUB 400
\n1070 RETURN
\n1100 REM %P%R%I%N%T
\n1110 CLS
\n1120 PRINT "RAMTOP= ";RT
\n1130 PRINT "HEX CODE:"
\n1140 PRINT " ";
\n1150 LET CI=0
\n1160 FOR J=1 TO LEN H$/2
\n1170 PRINT H$(2*J-1 TO 2*J)+" ";
\n1185 LET CI=CI+1
\n1187 IF CI=10*INT (CI/10) THEN PRINT " ";
\n1190 NEXT J
\n1192 GOSUB 400
\n1195 RETURN
\n1300 REM %R%E%L%A%T%I%V%E% %J%U%M%P%S
\n1310 LET JCI=VAL I$(2 TO )
\n1320 LET JS=JCI-CI-1
\n1325 GOSUB 2000
\n1330 IF JS>=-128 AND JS<=127 THEN GOTO 1357
\n1335 CLS
\n1340 PRINT AT 10,6;"INVALID JUMP SIZE"
\n1345 FOR Q=1 TO 20
\n1346 NEXT Q
\n1350 GOSUB 1100
\n1355 RETURN
\n1357 IF JS<0 THEN LET JS=JS+256
\n1360 LET X1=INT (JS/16)
\n1365 LET X0=JS-16*X1
\n1367 LET X$=CHR$ (X1+28)+CHR$ (X0+28)
\n1370 LET H$=H$( TO 2*CI)+X$+H$(2*CI+1 TO )
\n1375 LET CI=CI+1
\n1380 GOSUB 1100
\n1390 RETURN
\n1400 REM %S%A%V%E
\n1410 PRINT "%S%A%V%E.INPUT PROGRAM NAME. (DEFAULT NAME ""H"")"
\n1420 INPUT N$
\n1430 IF N$="" THEN LET N$="H"
\n1440 SAVE N$
\n1450 CLS
\n1460 GOTO 10
\n1600 REM %D%E%L%E%T%E
\n1610 IF LEN I$=1 THEN LET K=1
\n1620 IF LEN I$>1 THEN LET K=VAL I$(2 TO )
\n1630 LET H$=H$( TO 2*CI)+H$(2*CI+2*K+1 TO )
\n1640 RETURN
\n2000 REM %A%S%T%E%R%I%S%K% %A%D%J%U%S%T
\n2010 IF JS<0 THEN LET W$=H$(2*JCI+1 TO 2*CI)
\n2020 IF JS>=0 THEN LET W$=H$(2*CI+1 TO 2*JCI)
\n2030 LET SC=0
\n2040 FOR T=1 TO LEN W$
\n2050 IF W$(T)="*" THEN LET SC=SC+1
\n2060 NEXT T
\n2070 IF JS<0 THEN LET JS=JS+SC/2
\n2080 IF JS>0 THEN LET JS=JS-SC/2
\n2090 RETURN
\n3000 REM %D%O%W%N%L%O%A%D
\n3010 LET LH=0
\n3020 FOR I=1 TO LEN H$
\n3030 IF H$(I)<>"*" THEN LET LH=LH+1
\n3040 NEXT I
\n3050 LET LH=LH/2+9
\n3060 PRINT AT 21,0;"LENGHT ";LH;" BYTES."
\n3070 LET H$="00002A04404E23462B118240C5011D0009C1EDB03E1EED47FD210040C9"+H$
\n3080 GOSUB 800
\n3090 LET LS=INT (LH/256)
\n3100 LET LJ=LH-256*LS
\n3110 POKE RT,LJ
\n3120 POKE RT+1,LS
\n3130 RETURN
\n9000 REM %R%E%S%E%R%V%E% %M%E%M%O%R%Y
\n9010 PRINT "HOW MANY 256-BYTE BLOCKS?"
\n9020 INPUT NB
\n9030 PRINT "AFTER LIST PRESS RUN"
\n9040 FOR T=1 TO 20
\n9050 NEXT T
\n9060 POKE 16389,128-NB
\n9070 PRINT USR 1040
\n9080 STOP
\n9090 CLEAR
\n9100 SAVE "1024%5"
\n9110 RUN