5 MODE 7 6 HIMEM =&2FF0 10 DIM CODE 1000 20 INPUT "ROM NAVN "ROM$ 25 INPUT "SOKKEL NR " SOKKEL 27 ROMSIZE=&40 30 $CODE="SAVE "+ROM$+" 3000 +4000 3000 8000" 35 $(CODE+70)="DUMP "+ROM$ 40 PROCASSEMBL 50 CALL CODE+100 60 END 100 DEF PROCASSEMBL 101 FRA=&8A:TIL=&8C:ANTAL=&8E 110 FOR PASS=0 TO 3 STEP 3 120 P%=CODE+100 130 [OPT PASS 140 LDA &FE30 150 STA &70 160 LDA #SOKKEL 170 STA &FE30 180 LDA#0:STA FRA:LDA#&80:STA FRA+1 190 LDA#0:STA TIL:LDA#&30:STA TIL+1 200 LDA#0:STA ANTAL:LDA#ROMSIZE:STA ANTAL+1 1040 .LOOP 1050 LDX#0 \ FLYT 256 BYTES 1060 LDA ANTAL+1 \GET HIGH BYTE 1070 BNE BLOK 1080 1090 INC ANTAL+1\ (ANTAL+1)-1 LIG NUL 1100 LDAANTAL \GET LOW BYTE 1110 BEQ SLUT 1120 TAX \ FLYT A BYTES 1130 LDA#0 1140 STAANTAL 1150 1160 .BLOK \FLYTTER X BYTES 1170 LDY#0 1180 .LOOP2 1190 LDA(FRA),Y 1200 STA(TIL),Y 1210 INY 1220 DEX 1230 BNE LOOP2 \ STOP NAAR X BYTES FLYTTET 1240 DEC ANTAL+1 \ BLOK FLYTTET 1250 INC FRA+1 1260 INC TIL+1 1270 JMP LOOP 1280 .SLUT 10000 LDA &70 10010 STA &FE30 10022 LDX#CODE MOD 256:LDY#CODE DIV 256:JSR&FFF7 10024 LDX#(CODE+70) MOD 256:LDY#(CODE+70) DIV 256:JSR&FFF7 10026 RTS 10030 ]:NEXT PASS 10040 ENDPROC