;:sys36864 ;.opt oo prgstart = 43 prgend = 45 tmp = 2 tmp2 = 4 then = 167 goto = 137 rem = 143 setlink = $a533 strout = $ab1e hi = 252 lo = 251 axout = $bdcd return = $aad7 farb1 =53280 farb2 =53281 let =136 out =$ffd2 *= 50000 jmp init messn .word ms1,ms2,ms3,ms4,ms5 text .byte "\x11\x9averbesserung zeile \x9e" .byt 0 ms1 .byte "\x99then \x05goto\x99 entfernt" .byt 0 ms2 .byte "\x05space\x99 im programmtext" .byt 0 ms3 .byte "\x99ueberfluessiges \x05anf. zeichen" .byt 0 ms4 .byte "\x99'\x05rem\x99' gefunden" .byt 0 ms5 .byte "\x99'\x05let\x99' gefunden" .byt 0 spar .byte "\x11\x81fertig. sie haben \x1f" .byt 0 spar2 .byte " \x81bytes gespart." .byt 13 .byte "anz. verbesserungen:\x1f " .byt 0 start .byte "\x93\x98 ******* compaktor *******" .byt 13 .byte "\x11(c) n. heusler 85/86" .byt 13 .byte "\x11\x11\x11\x97compaktierung \x05laeuft \x97!\x11" .byt 13,0 in1 inc tmp bne z1020 inc tmp+1 z1020 rts in2 inc tmp2 bne z1050 inc tmp2+1 z1050 rts trans lda (tmp),y sta (tmp2),y rts message pha tya pha txa asl pha ldx #10 lda #32 z1076 jsr out dex bne z1076 pla tax lda messn+1,x tay lda messn,x jsr strout jsr return pla tay pla rts verb lda #text jsr strout inc zahl bne z1120 inc zahl+1 z1120 ldx lo lda hi jsr axout jsr return ldy #0 rts zahl .word 0 flag .byt 0 quot .byt 0 weiter .byt 0 init ldx #1 z2010 lda prgstart,x sta tmp,x sta tmp2,x lda prgstart+1,x sta tmp+1,x sta tmp2+1,x dex bpl z2010 lda #0 sta farb1 sta farb2 sta zahl sta zahl+1 lda #start jsr strout lda tmp2 sec sbc #1 sta tmp2 lda tmp2+1 sbc #0 sta tmp2+1 lda tmp sec sbc #1 sta tmp lda tmp+1 sbc #0 sta tmp+1 z2100 ldy #0 sty quot sty weiter tya sta (tmp2),y jsr in2 jsr in1 jsr trans sta flag jsr in1 jsr in2 jsr trans bne z2250 lda flag bne z2250 jsr setlink jsr in2 jmp auswert z2250 sty flag jsr in1 jsr in2 jsr trans sta lo jsr in1 jsr in2 jsr trans sta hi jmp z2300 z2285 jsr verb ldx #0 jsr message jmp z2300 z2286 jsr verb ldx #4 jsr message jmp z2300 z2290 jsr verb ldx #1 jsr message z2300 jsr in1 lda (tmp),y bit quot bmi z2500 cmp #32 beq z2290 cmp #let beq z2286 cmp #goto bne z2350 bit flag bmi z2285 z2350 cmp #then sty flag bne z2380 lda #255 sta flag lda #then z2380 cmp #0 beq z2500 bit weiter bmi z2300 cmp #rem bne z2500 lda #255 sta weiter jsr verb ldx #3 jsr message lda #rem z2500 cmp #34 bne z2580 lda quot eor #255 sta quot php lda #34 plp bne z2580 iny lda (tmp),y bne z2575 dey lda tmp sec sbc #1 sta tmp lda tmp+1 sbc #0 sta tmp+1 lda (tmp),y pha jsr in1 pla cmp #32 beq z2575 jsr verb ldx #2 jsr message jmp z2300 z2575 lda #34 z2580 ldy #0 pha jsr in2 pla sta (tmp2),y cmp #0 bne z2610 jmp z2100 z2610 jmp z2300 auswert lda #spar jsr strout lda prgend sec sbc tmp2 tax lda prgend+1 sbc tmp2+1 jsr axout lda tmp2 ldy tmp2+1 sta prgend sty prgend+1 lda #spar2 jsr strout ldx zahl lda zahl+1 jsr axout jmp return