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