SteelGolem

BASIC ASM 3

Dec 30th, 2021 (edited)
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. 10 M0=32768:M=M0 :REM MEM START
  2. 20 FOR D=1 TO 2
  3. 30 :READ D$
  4. 40 :OP$=LEFT$(D$,3)
  5. 50 :IF OP$="INC" THEN GOSUB 1000
  6. 60 :IF OP$="RTS" THEN GOSUB 1100
  7. 70 NEXT D
  8. 80 SYS M0 :REM EXECUTE!
  9. 90 END
  10. 1000 REM ---- INC ----
  11. 1010 POKE M,238:M=M+1
  12. 1020 L=LEN(D$)
  13. 1030 HX$=MID$(D$,L-1,2)
  14. 1040 GOSUB 5000
  15. 1050 POKE M,HX:M=M+1
  16. 1060 HX$=MID$(D$,L-3,2)
  17. 1070 GOSUB 5000
  18. 1080 POKE M,HX:M=M+1
  19. 1090 RETURN
  20. 1100 REM ---- RTS ----
  21. 1110 POKE M,96:M=M+1
  22. 1120 RETURN
  23. 5000 REM -- 1 BYTE STR TO INT --
  24. 5010 REM IN:HX$ OUT:HX
  25. 5020 C0=ASC("0"):CA=ASC("A")
  26. 5030 C$=RIGHT$(HX$,1):C=ASC(C$)
  27. 5040 IF C$<"A" THEN HX=C-C0
  28. 5050 IF C$>="A" THEN HX=10+C-CA
  29. 5060 C$=LEFT$(HX$,1):C=ASC(C$)
  30. 5070 IF C$<"A" THEN HX=HX+16*(C-C0)
  31. 5080 IF C$>="A" THEN HX=HX+16*(10+C-CA)
  32. 5090 RETURN
  33. 8000 REM ---- ASM ----
  34. 8010 DATA "INC $D020"
  35. 8020 DATA "RTS"
Add Comment
Please, Sign In to add comment