; VCCC 2024, F#READY, 2024-12-11

screen      = $bc40
            org $80
one_more
            lda #3
do_lines            
            pha
            tay
            ldx #21 
do_line
            txa
            pha
            tya
            pha
swap_x = *+1
            stx $55     ; x position
swap_y = *+1
            sty $54     ; y position
            jsr $f18f   ; read pixel
            beq normal
            lda #'+'
            dta $2c     ; skip 2 bytes (bit abs)
normal
out_char = *+1
            lda #'-'
            jsr $f1db   ; plot pixel, color in A
            pla
            tay
            pla
            tax
            dex
            cpx #2
            bne do_line
            
            pla
            clc
            adc #9
            cmp #30
            bne do_lines

            inc swap_y
            dec swap_x

            lda #'!'
            sta out_char

            lda screen+160+3    ; stop condition
            beq one_more
cop_top
            lda top_chars,x
            sta screen+80+11,x
            dex
            bpl cop_top
done
            bmi done

top_chars   dta d'\O/'
