Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 100 PRINT:PRINT "ASSEMBLING...";
- 110 READ M0$
- 120 READ M0:M=M0
- 130 READ DN
- 140 FOR D=1 TO DN
- 150 :READ D$
- 160 :OP$=LEFT$(D$,3)
- 170 :IF OP$="INC" THEN GOSUB 1000
- 180 :IF OP$="RTS" THEN GOSUB 1100
- 190 :IF OP$="JMP" THEN GOSUB 1200
- 200 :IF OP$="DEC" THEN GOSUB 1300
- 210 :IF OP$="LDA" THEN GOSUB 1400
- 220 :IF OP$="JSR" THEN GOSUB 1500
- 230 :IF OP$="STA" THEN GOSUB 1600
- 240 :IF OP$="CMP" THEN GOSUB 1700
- 250 :IF OP$="BNE" THEN GOSUB 1800
- 260 :IF OP$="LDX" THEN GOSUB 1900
- 270 :IF OP$="INX" THEN GOSUB 2000
- 280 :IF OP$="CLC" THEN GOSUB 2100
- 290 :IF OP$="ADC" THEN GOSUB 2200
- 300 :IF OP$="SED" THEN GOSUB 2300
- 310 :IF OP$="SBC" THEN GOSUB 2400
- 320 :IF OP$="CLD" THEN GOSUB 2500
- 330 NEXT D
- 340 PRINT "DONE."
- 350 PRINT "EXECUTE!"
- 360 SYS M0 :REM EXECUTE!
- 370 END
- 1000 REM ---- INC $XXXX ----
- 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 $XXXX ----
- 1210 POKE M,76:M=M+1
- 1220 GOSUB 4000
- 1230 RETURN
- 1300 REM ---- DEC $XXXX ----
- 1310 POKE M,206:M=M+1
- 1320 GOSUB 4000
- 1330 RETURN
- 1400 REM ---- LDA $XX ----
- 1410 POKE M,169:M=M+1
- 1420 GOSUB 4100
- 1430 RETURN
- 1500 REM ---- JSR $XXXX ----
- 1510 POKE M,32:M=M+1
- 1520 GOSUB 4000
- 1530 RETURN
- 1600 REM ---- STA $XXXX ----
- 1610 POKE M,141:M=M+1
- 1620 GOSUB 4000
- 1630 RETURN
- 1700 REM ---- CMP $XXXX ----
- 1710 POKE M,205:M=M+1
- 1720 GOSUB 4000
- 1730 RETURN
- 1800 REM ---- BNE $XX ----
- 1810 POKE M,208:M=M+1
- 1820 GOSUB 4100
- 1830 RETURN
- 1900 REM ---- LDX $XX ----
- 1910 POKE M,162:M=M+1
- 1920 GOSUB 4100
- 1930 RETURN
- 2000 REM ---- INX ----
- 2010 POKE M,232:M=M+1
- 2020 RETURN
- 2100 REM ---- CLC ----
- 2110 POKE M,24:M=M+1
- 2120 RETURN
- 2200 REM ---- ADC $XX ----
- 2210 POKE M,105:M=M+1
- 2220 GOSUB 4100
- 2230 RETURN
- 2300 REM ---- SED ----
- 2310 POKE M,248:M=M+1
- 2320 RETURN
- 2400 REM ---- SBC $XX ----
- 2410 POKE M,233:M=M+1
- 2420 GOSUB 4100
- 2430 RETURN
- 2500 REM ---- CLD ----
- 2510 POKE M,216:M=M+1
- 2520 RETURN
- 4000 REM -- POKE 2 BYTES @ END OF D$ --
- 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
- 4100 REM -- POKE 1 BYTE @ END OF D$ --
- 4110 L=LEN(D$)
- 4120 HX$=MID$(D$,L-1,2)
- 4130 GOSUB 6000
- 4140 POKE M,HX:M=M+1
- 4150 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 "$8000",32768 :REM MEM START
- 8020 DATA 8 :REM LINE COUNT
- 8030 DATA "LDA $41" :REM +00
- 8040 DATA "JSR $FFD2" :REM +02
- 8050 DATA "LDA $42" :REM +05
- 8060 DATA "JSR $FFD2" :REM +07
- 8070 DATA "LDA $43" :REM +0A
- 8080 DATA "JSR $FFD2" :REM +0C
- 8090 DATA "INC $D020" :REM +0F
- 8100 DATA "JMP $800F" :REM +12
Add Comment
Please, Sign In to add comment