mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-16 08:05:31 +00:00
96 lines
1.2 KiB
ArmAsm
96 lines
1.2 KiB
ArmAsm
; VGI Lines
|
|
|
|
;========================
|
|
; VGI point
|
|
;========================
|
|
vgi_point:
|
|
jsr vgi_point_common
|
|
jmp vgi_loop
|
|
|
|
|
|
;========================
|
|
; VGI point common
|
|
;========================
|
|
|
|
VGI_PCOLOR = P0 ; if high bit set, then PX=PX+256
|
|
VGI_PX = P1
|
|
VGI_PY = P2
|
|
|
|
vgi_point_common:
|
|
ldy #0
|
|
|
|
lda VGI_PCOLOR
|
|
bpl vgi_point_color
|
|
iny
|
|
vgi_point_color:
|
|
and #$7f
|
|
tax
|
|
lda COLORTBL,X
|
|
sta HGR_COLOR
|
|
|
|
ldx VGI_PX
|
|
lda VGI_PY
|
|
|
|
jsr HPLOT0 ; plot at (Y,X), (A)
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
;========================
|
|
; VGI line to
|
|
;========================
|
|
VGI_LX = P0
|
|
VGI_LY = P1
|
|
|
|
vgi_lineto:
|
|
ldx #0
|
|
ldy VGI_LY
|
|
lda VGI_LX
|
|
|
|
jsr HGLIN ; line to (X,A),(Y)
|
|
|
|
jmp vgi_loop
|
|
|
|
|
|
;========================
|
|
; VGI LINE
|
|
;========================
|
|
; VGI_LX = P0
|
|
; VGI_LY = P1
|
|
VGI_LX2 = P3
|
|
VGI_LY2 = P4
|
|
|
|
vgi_line:
|
|
jsr vgi_point_common
|
|
|
|
ldx #0
|
|
ldy VGI_LY2
|
|
lda VGI_LX2
|
|
|
|
jsr HGLIN ; line to (X,A),(Y)
|
|
|
|
jmp vgi_loop
|
|
|
|
;========================
|
|
; VGI LINE FAR
|
|
;========================
|
|
; assume second x-coord is > 256
|
|
; VGI_LX = P0
|
|
; VGI_LY = P1
|
|
; VGI_LX2 = P3
|
|
; VGI_LY2 = P4
|
|
|
|
vgi_line_far:
|
|
jsr vgi_point_common
|
|
|
|
ldx #1
|
|
ldy VGI_LY2
|
|
lda VGI_LX2
|
|
|
|
jsr HGLIN ; line to (X,A),(Y)
|
|
|
|
jmp vgi_loop
|
|
|