;;Screen print. Draws a pixel at a specified position. ;; Destroys A X Y .proc pixel_draw; Draws a pixel at [Y = FB , X = FC, FD]. Y = 0 - 320, X= 0 - 200 Y_pos = $FB X_pos = $FCFD byte_to_paint = $FE btp_mem_pos =$494A; byte to paint memory position C = $7071 B =$7273 ;; X = X_pos (mod 8) LDA >X_pos ; X (mod 8) AND #%00000111 TAX ;;Store pixel in byte_to_paint LDA #%10000000 INX @shift_btp: DEX BEQ end__;X=0 end this CLC ROR A jmp @shift_btp end__: STA byte_to_paint ;;FIND THE POSITION IN MEMORY TO WRITE PIXEL ;; + + + + + > X ;; + ;; + ;;\/ ;; Y ;; ;;pos = x_offset LDA #%11111000 AND >X_pos STA >btp_mem_pos LDA btp_mem_pos, btp_mem_pos STA >btp_mem_pos LDA #$00 ADC C STA >B LDA #$00 STA C, C, C, B, C, C, C, btp_mem_pos, C, btp_mem_pos, Bitmap, ! ;;Let draw some stuff LDX #$00 LDA byte_to_paint ;; note that both bytes are used! ORA (>btp_mem_pos, X) STA (>btp_mem_pos, X) RTS .endproc