;================================= ; Simple HGR box ;================================= ; only 1 7-bit block wide ; (X,A) to (X,A+Y) where X is xcoord/7 hgr_box: ; don't handle run of 0 cpy #0 beq done_hgr_box ; get initial ROW into (GBASL) sta box_row_smc+1 ; save current A stx box_x1_smc+1 ldx HGR_COLOR ; get colors lda hgr_colortbl,X sta HGR_BITS tya tax ; put line count into X hgr_box_loop: box_row_smc: ldy #$dd ; get row info for Y1 into GBASL/GBASH lda hposn_high,Y hgr_box_page_smc: eor #$00 sta GBASH lda hposn_low,Y sta GBASL lda HGR_BITS box_x1_smc: ldy #$dd sta (GBASL),Y inc box_row_smc+1 dex bne hgr_box_loop done_hgr_box: rts hgr_box_page_toggle: lda hgr_box_page_smc+1 eor #$60 sta hgr_box_page_smc+1 rts