Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement