Removed (pretty inconsistently used) tab chars from source code base.
This commit is contained in:
@@ -16,10 +16,10 @@
|
||||
|
||||
.bss
|
||||
|
||||
_tgi_drv: .res 2 ; Pointer to driver
|
||||
_tgi_drv: .res 2 ; Pointer to driver
|
||||
; From here on, variables get cleared when a new driver is loaded
|
||||
cstart:
|
||||
_tgi_error: .res 1 ; Last error code
|
||||
_tgi_error: .res 1 ; Last error code
|
||||
_tgi_gmode: .res 1 ; Flag: Graphics mode active
|
||||
_tgi_curx: .res 2 ; Current drawing cursor X
|
||||
_tgi_cury: .res 2 ; Current drawing cursor Y
|
||||
@@ -61,11 +61,11 @@ _tgi_flags: .res 1 ; TGI driver flags
|
||||
; Jump table for the driver functions.
|
||||
|
||||
jumpvectors:
|
||||
tgi_install: jmp $0000
|
||||
tgi_uninstall: jmp $0000
|
||||
tgi_install: jmp $0000
|
||||
tgi_uninstall: jmp $0000
|
||||
tgi_init: jmp $0000
|
||||
tgi_done: jmp $0000
|
||||
tgi_geterror: jmp $0000
|
||||
tgi_geterror: jmp $0000
|
||||
tgi_control: jmp $0000
|
||||
tgi_clear: jmp $0000
|
||||
tgi_setviewpage: jmp $0000
|
||||
@@ -94,10 +94,10 @@ tgi_sig: .byte $74, $67, $69, TGI_API_VERSION ; "tgi", version
|
||||
|
||||
|
||||
_tgi_install:
|
||||
sta _tgi_drv
|
||||
sta ptr1
|
||||
stx _tgi_drv+1
|
||||
stx ptr1+1
|
||||
sta _tgi_drv
|
||||
sta ptr1
|
||||
stx _tgi_drv+1
|
||||
stx ptr1+1
|
||||
|
||||
; Check the driver signature
|
||||
|
||||
@@ -138,8 +138,8 @@ _tgi_install:
|
||||
|
||||
lda tgi_irq+2 ; Check high byte of IRQ vector
|
||||
beq @L4 ; Jump if vector invalid
|
||||
lda #$4C ; Jump opcode
|
||||
sta tgi_irq ; Activate IRQ routine
|
||||
lda #$4C ; Jump opcode
|
||||
sta tgi_irq ; Activate IRQ routine
|
||||
|
||||
; Initialize some other variables
|
||||
|
||||
@@ -149,7 +149,7 @@ _tgi_install:
|
||||
dex
|
||||
bpl @L5
|
||||
|
||||
rts
|
||||
rts
|
||||
|
||||
; Copy one byte to the jump vectors
|
||||
|
||||
@@ -179,10 +179,10 @@ tgi_inv_drv:
|
||||
; Load the pointer to the tgi driver into ptr1.
|
||||
|
||||
tgi_set_ptr:
|
||||
lda _tgi_drv
|
||||
sta ptr1
|
||||
lda _tgi_drv+1
|
||||
sta ptr1+1
|
||||
lda _tgi_drv
|
||||
sta ptr1
|
||||
lda _tgi_drv+1
|
||||
sta ptr1+1
|
||||
rts
|
||||
|
||||
;----------------------------------------------------------------------------
|
||||
@@ -196,8 +196,8 @@ _tgi_uninstall:
|
||||
|
||||
jsr tgi_uninstall ; Allow the driver to clean up
|
||||
|
||||
lda #$60 ; RTS opcode
|
||||
sta tgi_irq ; Disable IRQ entry point
|
||||
lda #$60 ; RTS opcode
|
||||
sta tgi_irq ; Disable IRQ entry point
|
||||
|
||||
; Clear driver pointer and error code
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@
|
||||
|
||||
; Do driver initialization. Set draw and view pages.
|
||||
|
||||
lda #0
|
||||
jsr tgi_setviewpage
|
||||
lda #0
|
||||
jsr tgi_setdrawpage
|
||||
lda #0
|
||||
jsr tgi_setviewpage
|
||||
lda #0
|
||||
jsr tgi_setdrawpage
|
||||
|
||||
; Set the default palette.
|
||||
|
||||
|
||||
@@ -11,300 +11,300 @@
|
||||
; X2/Y2 = ptr3/ptr4 using the current drawing color.
|
||||
; Must set an error code: NO
|
||||
|
||||
.proc LINE
|
||||
.proc LINE
|
||||
|
||||
; Used for passing parameters to the driver.
|
||||
|
||||
X1 := ptr1
|
||||
Y1 := ptr2
|
||||
X2 := ptr3
|
||||
Y2 := ptr4
|
||||
X1 := ptr1
|
||||
Y1 := ptr2
|
||||
X2 := ptr3
|
||||
Y2 := ptr4
|
||||
|
||||
; These ones must be on zpage.
|
||||
|
||||
TEMP1 := tmp3
|
||||
TEMP2 := tmp4
|
||||
TEMP3 := sreg
|
||||
TEMP4 := sreg+1
|
||||
PB := ptr3
|
||||
UB := ptr4
|
||||
ERR := regsave
|
||||
NX := regsave+2
|
||||
TEMP1 := tmp3
|
||||
TEMP2 := tmp4
|
||||
TEMP3 := sreg
|
||||
TEMP4 := sreg+1
|
||||
PB := ptr3
|
||||
UB := ptr4
|
||||
ERR := regsave
|
||||
NX := regsave+2
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
|
||||
.bss
|
||||
.bss
|
||||
|
||||
COUNT: .res 2
|
||||
NY: .res 2
|
||||
DX: .res 1
|
||||
DY: .res 1
|
||||
AX: .res 1
|
||||
AY: .res 1
|
||||
COUNT: .res 2
|
||||
NY: .res 2
|
||||
DX: .res 1
|
||||
DY: .res 1
|
||||
AX: .res 1
|
||||
AY: .res 1
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
|
||||
.code
|
||||
.code
|
||||
|
||||
; nx = abs (x2 - x1)
|
||||
sec
|
||||
lda X2
|
||||
sbc X1
|
||||
sta NX
|
||||
lda X2+1
|
||||
sbc X1+1
|
||||
tay
|
||||
lda NX
|
||||
jsr abs
|
||||
sta NX
|
||||
sty NX+1
|
||||
; nx = abs (x2 - x1)
|
||||
sec
|
||||
lda X2
|
||||
sbc X1
|
||||
sta NX
|
||||
lda X2+1
|
||||
sbc X1+1
|
||||
tay
|
||||
lda NX
|
||||
jsr abs
|
||||
sta NX
|
||||
sty NX+1
|
||||
|
||||
; ny = abs (y2 - y1)
|
||||
sec
|
||||
lda Y2
|
||||
sbc Y1
|
||||
sta NY
|
||||
lda Y2+1
|
||||
sbc Y1+1
|
||||
tay
|
||||
lda NY
|
||||
jsr abs
|
||||
sta NY
|
||||
sty NY+1
|
||||
; ny = abs (y2 - y1)
|
||||
sec
|
||||
lda Y2
|
||||
sbc Y1
|
||||
sta NY
|
||||
lda Y2+1
|
||||
sbc Y1+1
|
||||
tay
|
||||
lda NY
|
||||
jsr abs
|
||||
sta NY
|
||||
sty NY+1
|
||||
|
||||
; if (x2 >= x1)
|
||||
ldx #X2
|
||||
lda X1
|
||||
ldy X1+1
|
||||
jsr icmp
|
||||
bcc :+
|
||||
; if (x2 >= x1)
|
||||
ldx #X2
|
||||
lda X1
|
||||
ldy X1+1
|
||||
jsr icmp
|
||||
bcc :+
|
||||
|
||||
; dx = 1
|
||||
lda #$01
|
||||
bne :++
|
||||
; dx = 1
|
||||
lda #$01
|
||||
bne :++
|
||||
|
||||
; else
|
||||
; dx = -1
|
||||
: lda #$FF
|
||||
: sta DX
|
||||
; else
|
||||
; dx = -1
|
||||
: lda #$FF
|
||||
: sta DX
|
||||
|
||||
; if (y2 >= y1)
|
||||
ldx #Y2
|
||||
lda Y1
|
||||
ldy Y1+1
|
||||
jsr icmp
|
||||
bcc :+
|
||||
; if (y2 >= y1)
|
||||
ldx #Y2
|
||||
lda Y1
|
||||
ldy Y1+1
|
||||
jsr icmp
|
||||
bcc :+
|
||||
|
||||
; dy = 1
|
||||
lda #$01
|
||||
bne :++
|
||||
; dy = 1
|
||||
lda #$01
|
||||
bne :++
|
||||
|
||||
; else
|
||||
; dy = -1
|
||||
: lda #$FF
|
||||
: sta DY
|
||||
; else
|
||||
; dy = -1
|
||||
: lda #$FF
|
||||
: sta DY
|
||||
|
||||
; err = ax = ay = 0
|
||||
lda #$00
|
||||
sta ERR
|
||||
sta ERR+1
|
||||
sta AX
|
||||
sta AY
|
||||
; err = ax = ay = 0
|
||||
lda #$00
|
||||
sta ERR
|
||||
sta ERR+1
|
||||
sta AX
|
||||
sta AY
|
||||
|
||||
; if (nx < ny) {
|
||||
ldx #NX
|
||||
lda NY
|
||||
ldy NY+1
|
||||
jsr icmp
|
||||
bcs :+
|
||||
; if (nx < ny) {
|
||||
ldx #NX
|
||||
lda NY
|
||||
ldy NY+1
|
||||
jsr icmp
|
||||
bcs :+
|
||||
|
||||
; nx <-> ny
|
||||
lda NX
|
||||
ldx NY
|
||||
sta NY
|
||||
stx NX
|
||||
lda NX+1
|
||||
ldx NY+1
|
||||
sta NY+1
|
||||
stx NX+1
|
||||
; nx <-> ny
|
||||
lda NX
|
||||
ldx NY
|
||||
sta NY
|
||||
stx NX
|
||||
lda NX+1
|
||||
ldx NY+1
|
||||
sta NY+1
|
||||
stx NX+1
|
||||
|
||||
; ax = dx
|
||||
lda DX
|
||||
sta AX
|
||||
; ax = dx
|
||||
lda DX
|
||||
sta AX
|
||||
|
||||
; ay = dy
|
||||
lda DY
|
||||
sta AY
|
||||
; ay = dy
|
||||
lda DY
|
||||
sta AY
|
||||
|
||||
; dx = dy = 0 }
|
||||
lda #$00
|
||||
sta DX
|
||||
sta DY
|
||||
; dx = dy = 0 }
|
||||
lda #$00
|
||||
sta DX
|
||||
sta DY
|
||||
|
||||
; ny = - ny
|
||||
: lda NY
|
||||
ldy NY+1
|
||||
jsr neg
|
||||
sta NY
|
||||
sty NY+1
|
||||
; ny = - ny
|
||||
: lda NY
|
||||
ldy NY+1
|
||||
jsr neg
|
||||
sta NY
|
||||
sty NY+1
|
||||
|
||||
; for (count = nx; count > 0; --count) {
|
||||
lda NX
|
||||
ldx NX+1
|
||||
sta COUNT
|
||||
stx COUNT+1
|
||||
for: lda COUNT ; count > 0
|
||||
ora COUNT+1
|
||||
bne :+
|
||||
rts
|
||||
; for (count = nx; count > 0; --count) {
|
||||
lda NX
|
||||
ldx NX+1
|
||||
sta COUNT
|
||||
stx COUNT+1
|
||||
for: lda COUNT ; count > 0
|
||||
ora COUNT+1
|
||||
bne :+
|
||||
rts
|
||||
|
||||
; setpixel (X1, Y1)
|
||||
: jsr SETPIXEL
|
||||
; setpixel (X1, Y1)
|
||||
: jsr SETPIXEL
|
||||
|
||||
; pb = err + ny
|
||||
clc
|
||||
lda ERR
|
||||
adc NY
|
||||
sta PB
|
||||
lda ERR+1
|
||||
adc NY+1
|
||||
sta PB+1
|
||||
tax
|
||||
; pb = err + ny
|
||||
clc
|
||||
lda ERR
|
||||
adc NY
|
||||
sta PB
|
||||
lda ERR+1
|
||||
adc NY+1
|
||||
sta PB+1
|
||||
tax
|
||||
|
||||
; ub = pb + nx
|
||||
clc
|
||||
lda PB
|
||||
adc NX
|
||||
sta UB
|
||||
txa
|
||||
adc NX+1
|
||||
sta UB+1
|
||||
; ub = pb + nx
|
||||
clc
|
||||
lda PB
|
||||
adc NX
|
||||
sta UB
|
||||
txa
|
||||
adc NX+1
|
||||
sta UB+1
|
||||
|
||||
; x1 = x1 + dx
|
||||
ldx #$00
|
||||
lda DX
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc X1
|
||||
sta X1
|
||||
txa
|
||||
adc X1+1
|
||||
sta X1+1
|
||||
; x1 = x1 + dx
|
||||
ldx #$00
|
||||
lda DX
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc X1
|
||||
sta X1
|
||||
txa
|
||||
adc X1+1
|
||||
sta X1+1
|
||||
|
||||
; y1 = y1 + ay
|
||||
ldx #$00
|
||||
lda AY
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc Y1
|
||||
sta Y1
|
||||
txa
|
||||
adc Y1+1
|
||||
sta Y1+1
|
||||
; y1 = y1 + ay
|
||||
ldx #$00
|
||||
lda AY
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc Y1
|
||||
sta Y1
|
||||
txa
|
||||
adc Y1+1
|
||||
sta Y1+1
|
||||
|
||||
; if (abs (pb) < abs (ub)) {
|
||||
lda PB
|
||||
ldy PB+1
|
||||
jsr abs
|
||||
sta TEMP3
|
||||
sty TEMP4
|
||||
lda UB
|
||||
ldy UB+1
|
||||
jsr abs
|
||||
ldx #TEMP3
|
||||
jsr icmp
|
||||
bpl :+
|
||||
; if (abs (pb) < abs (ub)) {
|
||||
lda PB
|
||||
ldy PB+1
|
||||
jsr abs
|
||||
sta TEMP3
|
||||
sty TEMP4
|
||||
lda UB
|
||||
ldy UB+1
|
||||
jsr abs
|
||||
ldx #TEMP3
|
||||
jsr icmp
|
||||
bpl :+
|
||||
|
||||
; err = pb }
|
||||
lda PB
|
||||
ldx PB+1
|
||||
jmp next
|
||||
; err = pb }
|
||||
lda PB
|
||||
ldx PB+1
|
||||
jmp next
|
||||
|
||||
; else { x1 = x1 + ax
|
||||
: ldx #$00
|
||||
lda AX
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc X1
|
||||
sta X1
|
||||
txa
|
||||
adc X1+1
|
||||
sta X1+1
|
||||
; else { x1 = x1 + ax
|
||||
: ldx #$00
|
||||
lda AX
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc X1
|
||||
sta X1
|
||||
txa
|
||||
adc X1+1
|
||||
sta X1+1
|
||||
|
||||
; y1 = y1 + dy
|
||||
ldx #$00
|
||||
lda DY
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc Y1
|
||||
sta Y1
|
||||
txa
|
||||
adc Y1+1
|
||||
sta Y1+1
|
||||
; y1 = y1 + dy
|
||||
ldx #$00
|
||||
lda DY
|
||||
bpl :+
|
||||
dex
|
||||
: clc
|
||||
adc Y1
|
||||
sta Y1
|
||||
txa
|
||||
adc Y1+1
|
||||
sta Y1+1
|
||||
|
||||
; err = ub }
|
||||
lda UB
|
||||
ldx UB+1
|
||||
next: sta ERR
|
||||
stx ERR+1
|
||||
; err = ub }
|
||||
lda UB
|
||||
ldx UB+1
|
||||
next: sta ERR
|
||||
stx ERR+1
|
||||
|
||||
; } (--count)
|
||||
lda COUNT
|
||||
sec
|
||||
sbc #$01
|
||||
sta COUNT
|
||||
bcc :+
|
||||
jmp for
|
||||
: dec COUNT+1
|
||||
jmp for
|
||||
; } (--count)
|
||||
lda COUNT
|
||||
sec
|
||||
sbc #$01
|
||||
sta COUNT
|
||||
bcc :+
|
||||
jmp for
|
||||
: dec COUNT+1
|
||||
jmp for
|
||||
|
||||
|
||||
; Copies of some runtime routines
|
||||
|
||||
abs:
|
||||
; A/Y := abs (A/Y)
|
||||
cpy #$00
|
||||
bpl :+
|
||||
|
||||
; A/Y := neg (A/Y)
|
||||
neg: clc
|
||||
eor #$FF
|
||||
adc #$01
|
||||
pha
|
||||
tya
|
||||
eor #$FF
|
||||
adc #$00
|
||||
tay
|
||||
pla
|
||||
: rts
|
||||
; A/Y := abs (A/Y)
|
||||
cpy #$00
|
||||
bpl :+
|
||||
|
||||
; A/Y := neg (A/Y)
|
||||
neg: clc
|
||||
eor #$FF
|
||||
adc #$01
|
||||
pha
|
||||
tya
|
||||
eor #$FF
|
||||
adc #$00
|
||||
tay
|
||||
pla
|
||||
: rts
|
||||
|
||||
icmp:
|
||||
; Compare A/Y to zp,X
|
||||
sta TEMP1 ; TEMP1/TEMP2 - arg2
|
||||
sty TEMP2
|
||||
lda $00,x
|
||||
pha
|
||||
lda $01,x
|
||||
tay
|
||||
pla
|
||||
tax
|
||||
tya ; X/A - arg1 (a = high)
|
||||
; Compare A/Y to zp,X
|
||||
sta TEMP1 ; TEMP1/TEMP2 - arg2
|
||||
sty TEMP2
|
||||
lda $00,x
|
||||
pha
|
||||
lda $01,x
|
||||
tay
|
||||
pla
|
||||
tax
|
||||
tya ; X/A - arg1 (a = high)
|
||||
|
||||
sec
|
||||
sbc TEMP2
|
||||
bne :++
|
||||
cpx TEMP1
|
||||
beq :+
|
||||
adc #$FF
|
||||
ora #$01
|
||||
: rts
|
||||
: bvc :+
|
||||
eor #$FF
|
||||
ora #$01
|
||||
: rts
|
||||
sec
|
||||
sbc TEMP2
|
||||
bne :++
|
||||
cpx TEMP1
|
||||
beq :+
|
||||
adc #$FF
|
||||
ora #$01
|
||||
: rts
|
||||
: bvc :+
|
||||
eor #$FF
|
||||
ora #$01
|
||||
: rts
|
||||
|
||||
.endproc
|
||||
.endproc
|
||||
|
||||
Reference in New Issue
Block a user