.IF ÐASS1 .NOEQIN .NOGLBL .INCLUDE GEOSÓYM .INCLUDE GEOSÍAC .GLBL .EQIN .ENDIF ; ÓOURCE ADDRESS IN R0 ; ÄESTINATION ADDRESS IN R1 ; ÄATA BLOCK SIZE IN R2 ÔÁÃOMPRESS: LDY #$00 ÁDD× R0,R2 JSR ÇETÍEMÂYTE STA ÌASTÍEMÂYTE JSR ÐUTÍEMÂYTE 1$ ÃMP× R0,R2 BCC 2$ RTS 2$ JSR ÇETÍEMÂYTE CMP ÌASTÍEMÂYTE BEQ 4$ CMP #$FE BNE 3$ PHA JSR ÐUTÍEMÂYTE PLA JSR ÐUTÍEMÂYTE LDA #$01 3$ STA ÌASTÍEMÂYTE JSR ÐUTÍEMÂYTE BRA 1$ 4$ JSR ÇETÍEMÂYTE CMP ÌASTÍEMÂYTE BEQ 5$ LDA ÌASTÍEMÂYTE JSR ÐUTÍEMÂYTE JSR ÐUTÍEMÂYTE ÄEC× R0 ÄEC× R1 BRA 1$ 5$ LDA #$FE JSR ÐUTÍEMÂYTE LDA ÌASTÍEMÂYTE JSR ÐUTÍEMÂYTE LDX #$02 6$ JSR ÇETÍEMÂYTE CMP ÌASTÍEMÂYTE BNE 7$ INX BNE 6$ DEX 7$ TXA JSR ÐUTÍEMÂYTE ÄEC× R0 BRA 1$ ÔÁÄECOMPRESS: LDY #$00 ÁDD× R0,R2 1$ ÃMP× R0,R2 BCC 2$ RTS 2$ JSR ÇETÍEMÂYTE CMP #$FE BEQ 3$ JSR ÐUTÍEMÂYTE BRA 1$ 3$ JSR ÇETÍEMÂYTE PHA JSR ÇETÍEMÂYTE TAX PLA 4$ JSR ÐUTÍEMÂYTE DEX BNE 4$ BRA 1$ ÇETÍEMÂYTE: LDA (R0),Y ÉNC× R0 RTS ÐUTÍEMÂYTE: STA (R1),Y ÉNC× R1 RTS .RAMSECT ÌASTÍEMÂYTE: .BLOCK 1 .END