100 M0$="$8000" :REM MEM START 110 M0=32768:M=M0 120 FOR D=1 TO 2 130 :READ D$ 140 :OP$=LEFT$(D$,3) 150 :IF OP$="INC" THEN GOSUB 1000 160 :IF OP$="RTS" THEN GOSUB 1100 170 :IF OP$="JMP" THEN GOSUB 1200 180 NEXT D 190 SYS M0 :REM EXECUTE! 200 END 1000 REM ---- INC ---- 1010 POKE M,238:M=M+1 1020 GOSUB 4000 1030 RETURN 1100 REM ---- RTS ---- 1110 POKE M,96:M=M+1 1120 RETURN 1200 REM ---- JMP ---- 1201 REM TODO: THERE ARE 2 JMP CODES! 1210 POKE M,76:M=M+1 1220 GOSUB 4000 1230 RETURN 4000 REM -- POKE 2 BYTE ADDR -- 4010 L=LEN(D$) 4020 HX$=MID$(D$,L-1,2) 4030 GOSUB 6000 4040 POKE M,HX:M=M+1 4050 HX$=MID$(D$,L-3,2) 4060 GOSUB 6000 4070 POKE M,HX:M=M+1 4080 RETURN 6000 REM -- 1 BYTE STR TO INT -- 6010 REM IN:HX$ OUT:HX 6020 C0=ASC("0"):CA=ASC("A") 6030 C$=RIGHT$(HX$,1):C=ASC(C$) 6040 IF C$<"A" THEN HX=C-C0 6050 IF C$>="A" THEN HX=10+C-CA 6060 C$=LEFT$(HX$,1):C=ASC(C$) 6070 IF C$<"A" THEN HX=HX+16*(C-C0) 6080 IF C$>="A" THEN HX=HX+16*(10+C-CA) 6090 RETURN 8000 REM ---- ASM ---- 8010 DATA "INC $D020" 8020 DATA "JMP $8000"