10 REM MERGE utility V.2.1 20 REM by M.Bobrowski 4'90 30 : 40 fptr=&A8:osfblock=&2EE:ptr=&70:lineno=&72 50 osargs=&FFDA:osfile=&FFDD:osword=&FFF1:osbyte=&FFF4 60 : 70 FOR pass=0 TO 3 STEP 3 80 P%=&900 90 [OPT pass 100 .read_filename 110 LDA #1:LDX #fptr:LDY #0:JSR osargs 120 LDA #5:LDX #fptr:LDY #0:JSR osword 130 LDA fptr+4:CMP #13:BNE set_params 140 BRK:EQUB 128:EQUS "Syntax: *APPEND ":BRK 150 : 160 .set_params 170 LDY #&12:LDA #0 180 .zeroloop 190 STA osfblock-1,Y 200 DEY:BNE zeroloop 210 LDA fptr:STA osfblock:LDA fptr+1:STA osfblock+1 220 \calculate TOP-2 address and use it as load address 230 SEC:LDA &12:SBC #2:STA osfblock+2 240 LDA &13:SBC #0:STA osfblock+3 250 : 260 \load file using OSFILE with A=&FF 270 LDA #&FF:LDX #&EE:LDY #&02:JSR osfile 280 : 290 \perform RENUMBER instruction and set new TOP value 300 LDA &18:STA ptr+1:LDA #0:STA ptr:STA lineno:STA lineno+1 310 .renloop 320 LDY #1:LDA (ptr),Y:CMP #&FF:BEQ settop 330 CLC:LDA lineno:ADC #10:STA lineno 340 LDA lineno+1:ADC #0:STA lineno+1 350 STA (ptr),Y:INY:LDA lineno:STA (ptr),Y:INY 360 CLC:LDA ptr:ADC (ptr),Y:STA ptr 370 LDA ptr+1:ADC #0:STA ptr+1 380 JMP renloop 390 .settop 400 CLC:LDA ptr:ADC #&02:STA &12:STA &00 410 LDA ptr+1:ADC #0:STA &13:STA &01 420 RTS 430 ]:NEXT 440 : 450 PRINT'"To save object code press COPY";:REPEAT UNTIL INKEY-106:PRINT 460 OSCLI"SAVE MERGE 900 "+STR$~P% 470 END