10 M0=32768:M=M0 :REM MEM START
20 FOR D=1 TO 2
30 :READ D$
40 :OP$=LEFT$(D$,3)
50 :IF OP$="INC" THEN GOSUB 1000
60 :IF OP$="RTS" THEN GOSUB 1100
70 NEXT D
80 SYS M0 :REM EXECUTE!
90 END
1000 REM ---- INC ----
1010 POKE M,238:M=M+1
1020 L=LEN(D$)
1030 HX$=MID$(D$,L-1,2)
1040 GOSUB 5000
1050 POKE M,HX:M=M+1
1060 HX$=MID$(D$,L-3,2)
1070 GOSUB 5000
1080 POKE M,HX:M=M+1
1090 RETURN
1100 REM ---- RTS ----
1110 POKE M,96:M=M+1
1120 RETURN
5000 REM -- 1 BYTE STR TO INT --
5010 REM IN:HX$ OUT:HX
5020 C0=ASC("0"):CA=ASC("A")
5030 C$=RIGHT$(HX$,1):C=ASC(C$)
5040 IF C$<"A" THEN HX=C-C0
5050 IF C$>="A" THEN HX=10+C-CA
5060 C$=LEFT$(HX$,1):C=ASC(C$)
5070 IF C$<"A" THEN HX=HX+16*(C-C0)
5080 IF C$>="A" THEN HX=HX+16*(10+C-CA)
5090 RETURN
8000 REM ---- ASM ----
8010 DATA "INC $D020"
8020 DATA "RTS"
Comments