mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-08-19 14:29:25 +00:00
85 lines
1007 B
ArmAsm
85 lines
1007 B
ArmAsm
; draw inverse box on text screen
|
|
|
|
; we could use HLIN/VLIN instead?
|
|
|
|
; note Y should be in text coords (0..23) not GR (0..47)
|
|
|
|
drawbox:
|
|
lda drawbox_y1
|
|
jsr text_hlin
|
|
lda drawbox_y2
|
|
jsr text_hlin
|
|
|
|
jsr text_vlins
|
|
|
|
rts
|
|
|
|
;========================
|
|
; text hlin
|
|
;========================
|
|
; draw from x1,A to x2,A
|
|
|
|
text_hlin:
|
|
asl
|
|
tay
|
|
|
|
lda gr_offsets,Y
|
|
sta OUTL
|
|
|
|
lda gr_offsets+1,Y
|
|
clc
|
|
adc DRAW_PAGE
|
|
sta OUTH
|
|
|
|
lda #' '
|
|
ldy drawbox_x1
|
|
drawbox_hlin_loop:
|
|
sta (OUTL),Y
|
|
iny
|
|
cpy drawbox_x2
|
|
bne drawbox_hlin_loop
|
|
|
|
rts
|
|
|
|
;========================
|
|
; text vlin
|
|
;========================
|
|
; draw from A,y1 to A,y2
|
|
|
|
text_vlins:
|
|
|
|
ldx drawbox_y1
|
|
|
|
text_vlins_loop:
|
|
txa
|
|
asl
|
|
tay
|
|
lda gr_offsets,Y
|
|
sta OUTL
|
|
|
|
lda gr_offsets+1,Y
|
|
clc
|
|
adc DRAW_PAGE
|
|
sta OUTH
|
|
|
|
lda #' '
|
|
|
|
ldy drawbox_x1
|
|
sta (OUTL),Y
|
|
ldy drawbox_x2
|
|
sta (OUTL),Y
|
|
|
|
inx
|
|
cpx drawbox_y2
|
|
bcc text_vlins_loop
|
|
beq text_vlins_loop ; ble
|
|
|
|
rts
|
|
|
|
|
|
drawbox_x1: .byte $00
|
|
drawbox_x2: .byte $00
|
|
drawbox_y1: .byte $00
|
|
drawbox_y2: .byte $00
|
|
|