opt %00100101›› org $80››* rle››ad0 org *+2›ad1 org *+2›len org *+2›adx org *+2›hlp org *+1››* dsf››px org *+1›byte org *+1›old org *+1›zs org *+1›hl0 org *+1›› org $90››im org *+$10›is org *+$10›jp org *+$10›tp org *+$10››li org *+2››* variables››dl0 equ $7800›dl1 equ $7c00›ek0 equ $8150›ek1 equ $a150››* main›› org $2000››move stx ad1› sty ad1+1› ldx #$00› ldy #$1e› stx li› sty li+1› ldy #$00››nik lda (ad0),y› sta (ad1),y› inc ad0› bne *+4› inc ad0+1› inc ad1› bne *+4› inc ad1+1› lda li› bne *+4› dec li+1› dec li›› lda li› ora li+1› bne nik› rts››st jsr make››››retr lda #$c0› sta $6a› lda #$00› sta $2a› lda #$08› sta $2b› jsr $ef8e› ldx fn› jsr $c642›› ldx #$00› ldy #$38› stx ad0› sty ad0+1› ldx fn› jsr load› lda #$00› sta $22f››› jsr dip››› ldx #$00› ldy #$30› stx ad0› sty ad0+1›› ldx ek0› jsr move› ldx ek1› jsr move›› lda #$22› ldx dl0› stx $230› sty $231› sta $22f› jsr op› sei› inc $d40e›› lda #$40› sta jap+1››loop lda #$10› cmp $d40b› bne *-3› ldx #$c1›jap lda #$40› sta $d01b› eor #$80› sta jap+1› sta $d40a› dex› bne jap› stx $d01a›› lda $d20f› and #$08› bne loop› dec $d40e› cli› lda #$00› sta $2a› sta $2b› jsr $ef8e›› inc fn+7› lda fn+7› cmp #$3a› bcc ok0› inc fn+6› lda #$30› sta fn+7›ok0 jmp retr›››››make ldx ek0› stx ad0› sty ad0+1› ldx ek1+$28› stx ad1› sty ad1+1› jsr md0› lda dl1› jsr pdt› tax› pla› sta pdt+1› stx pdt+2›› ldx ek1› stx ad0› sty ad0+1› ldx ek0+$28› stx ad1› sty ad1+1› jsr md0› lda dl0› jmp pdt››md0 lda #96› sta hlp› ldy #$03› lda #$70› jsr pdt›m1 lda #$4f› jsr pdt› lda ad0› jsr pdt› lda ad0+1› jsr pdt› lda #$4f› jsr pdt› lda ad1› jsr pdt› lda ad1+1› jsr pdt› ldx tbd› jmp depa››tbd dta a($3800),a($3400)››depa stx d0+1› sty d0+2› ldx #$03›d0 lda $ffff,x› sta ad0,x› cpx #$02› bcc *+4› sta adx-2,x› dex› bpl d0› ldy #$0b›d1 jsr get› cpy #$02› bcs *+5› sta len,y› dey› bpl d1› jsr get› ora #$00› beq not› jsr rle› clc› lda len› adc adx› sta ad0› lda len+1› adc adx+1› sta ad0+1› ldy #$00›m0 lda ad1› bne *+4› dec ad1+1› dec ad1› lda ad0› bne *+4› dec ad0+1› dec ad0› lda (ad1),y› sta (ad0),y› lda ad1› cmp adx› lda ad1+1› sbc adx+1› bcs m0› jsr get›not lda adx› sta ad1› sec› lda adx+1› sbc #$04› sta ad1+1›› ldx #$0f›q0 lda #$00› sta im,x› sta is,x› txa› sta jp,x› sta tp,x› dex› bpl q0›› lda #$80› sta byte› asl @› sta old› sta zs›› ldx #$03›qf jsr bit› rol old› dex› bpl qf› lda old› jsr putn››dlop ldx #$00›l1 jsr bit› bcc l2› inx› inx› bne l1›l2 jsr bit› txa› adc #0› tax› stx hlp›› sec› lda old› sbc jp,x› and #$0f› sta old› jsr putn› ldx hlp› ldy jp,x› jsr tree››eor lda #$00› eor #$02› sta eor+1› sta $d01a›› jmp dlop›››tree ldx tp,y›› inc im,x› bne j› inc is,x››j txa› beq noc›› lda im+0,x› cmp im-1,x› lda is+0,x› sbc is-1,x› bcc noc›› ldy im+0,x› lda im-1,x› sta im+0,x› sty im-1,x›› ldy is+0,x› lda is-1,x› sta is+0,x› sty is-1,x›› ldy jp+0,x› lda jp-1,x› sta jp+0,x› sty jp-1,x›› ldy jp+0,x› lda jp-1,x› tax› lda tp,y› sta hl0› lda tp,x› sta tp,y› lda hl0› sta tp,x››noc rts››bit asl byte› bne bok› stx px› jsr get› ldx px› rol @› sta byte›bok rts››putn bit zs› bmi pn0› asl @› asl @› asl @› asl @› sta pn0+1› jmp pn1›pn0 ora #$00› jsr put› lda len› bne *+4› dec len+1› dec len› lda len› ora len+1› bne *+4› pla› pla›pn1 lda zs› eor #$ff› sta zs› rts››rle jsr get› cmp ($00,x)› beq yes› jsr put› bne rle›yes jsr get› sta hlp› jsr get› tay› beq rts› lda hlp›rl0 jsr put› dey› bne rl0› beq rle›put ldx