mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-10 08:54:51 +00:00
hgr: more timing info
This commit is contained in:
parent
d732fe8ed2
commit
1dbc60d0c1
190
fireworks/hgr.s
190
fireworks/hgr.s
@ -28,21 +28,18 @@ LOWSCR = $C054
|
|||||||
MIXCLR = $C052
|
MIXCLR = $C052
|
||||||
HISCR = $C055
|
HISCR = $C055
|
||||||
|
|
||||||
|
;==========================
|
||||||
|
; HGR2
|
||||||
|
;==========================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
hgr2:
|
hgr2:
|
||||||
; F3D8
|
; F3D8
|
||||||
bit HISCR ; BIT SW.HISCR Use PAGE2 ($C055)
|
bit HISCR ; BIT SW.HISCR Use PAGE2 ($C055)
|
||||||
bit MIXCLR ; BIT SW.MIXCLR
|
bit MIXCLR ; BIT SW.MIXCLR
|
||||||
lda #$40 ; HIRES Page 2 at $4000
|
lda #$40 ; HIRES Page 2 at $4000
|
||||||
bne sethpg
|
bne sethpg
|
||||||
|
;==========================
|
||||||
|
; HGR
|
||||||
|
;==========================
|
||||||
hgr:
|
hgr:
|
||||||
; F3E2
|
; F3E2
|
||||||
lda #$20 ; HIRES Page 1 at $2000
|
lda #$20 ; HIRES Page 1 at $2000
|
||||||
@ -79,7 +76,6 @@ bkgnd_loop:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
msktbl: .byte $81,$82,$84,$88,$90,$A0,$C0 ; original
|
msktbl: .byte $81,$82,$84,$88,$90,$A0,$C0 ; original
|
||||||
|
|
||||||
;====================================================
|
;====================================================
|
||||||
@ -223,6 +219,7 @@ done_mod:
|
|||||||
|
|
||||||
;=====================================
|
;=====================================
|
||||||
; HPLOT0
|
; HPLOT0
|
||||||
|
;=====================================
|
||||||
; point in (YX),A
|
; point in (YX),A
|
||||||
; 244 cycles
|
; 244 cycles
|
||||||
hplot0:
|
hplot0:
|
||||||
@ -241,13 +238,14 @@ move_left_or_right:
|
|||||||
; F465
|
; F465
|
||||||
bpl move_right
|
bpl move_right
|
||||||
|
|
||||||
lda HMASK
|
lda HMASK ; 3
|
||||||
lsr
|
lsr ; 2
|
||||||
bcs lr_2
|
bcs lr_2
|
||||||
eor #$c0
|
eor #$c0 ; 2
|
||||||
lr_1:
|
lr_1:
|
||||||
sta HMASK
|
sta HMASK ; 3
|
||||||
rts
|
rts ; 6
|
||||||
|
|
||||||
lr_2:
|
lr_2:
|
||||||
dey
|
dey
|
||||||
bpl lr_3
|
bpl lr_3
|
||||||
@ -261,7 +259,8 @@ lr_4:
|
|||||||
|
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
;
|
; COLOR_SHIFT
|
||||||
|
;===================================
|
||||||
; positive = 7+(7)+6 = 20
|
; positive = 7+(7)+6 = 20
|
||||||
; negative = 7+ 7 +6 = 20
|
; negative = 7+ 7 +6 = 20
|
||||||
|
|
||||||
@ -281,6 +280,9 @@ done_color_shift:
|
|||||||
nop ; 2
|
nop ; 2
|
||||||
rts ; 6
|
rts ; 6
|
||||||
|
|
||||||
|
|
||||||
|
;==============================================================
|
||||||
|
|
||||||
move_right:
|
move_right:
|
||||||
lda HMASK
|
lda HMASK
|
||||||
asl
|
asl
|
||||||
@ -363,113 +365,137 @@ md_3:
|
|||||||
ror GBASL
|
ror GBASL
|
||||||
bcc ud_1
|
bcc ud_1
|
||||||
|
|
||||||
|
;===================================
|
||||||
|
; HGLIN
|
||||||
|
;===================================
|
||||||
|
; cycles = 22+
|
||||||
|
|
||||||
hglin:
|
hglin:
|
||||||
|
|
||||||
; F53A
|
; F53A: calc quadrant
|
||||||
pha ; 3
|
pha ; 3
|
||||||
sec
|
sec ; 2
|
||||||
sbc HGR_X
|
sbc HGR_X ; 3
|
||||||
pha ; 3
|
pha ; 3
|
||||||
txa
|
txa ; 2
|
||||||
sbc HGR_X+1
|
sbc HGR_X+1 ; 3
|
||||||
sta HGR_QUADRANT
|
sta HGR_QUADRANT ; 3
|
||||||
|
;===========
|
||||||
|
; 22
|
||||||
|
|
||||||
; F544
|
; F544
|
||||||
bcs hglin_1
|
bcs hglin_1
|
||||||
pla
|
|
||||||
eor #$ff
|
pla ; 4
|
||||||
adc #1
|
eor #$ff ; 2
|
||||||
|
adc #1 ; 2
|
||||||
pha ; 3
|
pha ; 3
|
||||||
lda #0
|
lda #0 ; 2
|
||||||
sbc HGR_QUADRANT
|
sbc HGR_QUADRANT ; 3
|
||||||
|
|
||||||
; F550
|
; F550
|
||||||
hglin_1:
|
hglin_1:
|
||||||
sta HGR_DX+1
|
sta HGR_DX+1 ; 3
|
||||||
sta HGR_E+1
|
sta HGR_E+1 ; 3
|
||||||
pla
|
pla ; 4
|
||||||
sta HGR_DX
|
sta HGR_DX ; 3
|
||||||
sta HGR_E
|
sta HGR_E ; 3
|
||||||
pla
|
pla ; 4
|
||||||
sta HGR_X
|
sta HGR_X ; 3
|
||||||
stx HGR_X+1
|
stx HGR_X+1 ; 3
|
||||||
tya
|
tya ; 2
|
||||||
clc
|
clc ; 2
|
||||||
sbc HGR_Y
|
sbc HGR_Y ; 3
|
||||||
bcc hglin_2
|
bcc hglin_2 ; 3
|
||||||
eor #$ff
|
|
||||||
adc #$fe
|
eor #$ff ; 2
|
||||||
|
adc #$fe ; 2
|
||||||
hglin_2:
|
hglin_2:
|
||||||
; F568
|
; F568
|
||||||
sta HGR_DY
|
sta HGR_DY ; 3
|
||||||
sty HGR_Y
|
sty HGR_Y ; 3
|
||||||
ror HGR_QUADRANT
|
ror HGR_QUADRANT
|
||||||
sec
|
sec ; 2
|
||||||
sbc HGR_DX
|
sbc HGR_DX ; 3
|
||||||
tax
|
tax ; 2
|
||||||
lda #$ff
|
lda #$ff ; 3
|
||||||
sbc HGR_DX+1
|
sbc HGR_DX+1 ; 3
|
||||||
sta HGR_COUNT
|
sta HGR_COUNT ; 3
|
||||||
ldy HGR_HORIZ
|
ldy HGR_HORIZ ; 3
|
||||||
bcs movex2 ; always?
|
bcs movex2 ; always? ; 3
|
||||||
; f57c
|
; f57c
|
||||||
movex:
|
movex:
|
||||||
asl
|
asl ; 2
|
||||||
jsr move_left_or_right
|
jsr move_left_or_right ; 6+?
|
||||||
sec
|
sec ; 2
|
||||||
|
|
||||||
; f581
|
; f581
|
||||||
movex2:
|
movex2:
|
||||||
lda HGR_E
|
lda HGR_E ; 3
|
||||||
adc HGR_DY
|
adc HGR_DY ; 3
|
||||||
sta HGR_E
|
sta HGR_E ; 3
|
||||||
lda HGR_E+1
|
lda HGR_E+1 ; 3
|
||||||
sbc #0
|
sbc #0 ; 2
|
||||||
movex2_1:
|
movex2_1:
|
||||||
sta HGR_E+1
|
sta HGR_E+1 ; 3
|
||||||
lda (GBASL),y
|
lda (GBASL),y
|
||||||
eor HGR_BITS
|
eor HGR_BITS ; 3
|
||||||
and HMASK
|
and HMASK ; 3
|
||||||
eor (GBASL),y
|
eor (GBASL),y
|
||||||
sta (GBASL),y
|
sta (GBASL),y
|
||||||
inx
|
inx ; 2
|
||||||
bne movex2_2
|
bne movex2_2
|
||||||
|
|
||||||
inc HGR_COUNT
|
inc HGR_COUNT
|
||||||
beq rts22
|
beq rts22
|
||||||
; F59e
|
; F59e
|
||||||
movex2_2:
|
movex2_2:
|
||||||
lda HGR_QUADRANT
|
lda HGR_QUADRANT ; 3
|
||||||
bcs movex
|
bcs movex
|
||||||
jsr move_up_or_down
|
|
||||||
clc
|
jsr move_up_or_down ; 6+
|
||||||
lda HGR_E
|
clc ; 2
|
||||||
adc HGR_DX
|
lda HGR_E ; 3
|
||||||
sta HGR_E
|
adc HGR_DX ; 3
|
||||||
lda HGR_E+1
|
sta HGR_E ; 3
|
||||||
adc HGR_DX+1
|
lda HGR_E+1 ; 3
|
||||||
bvc movex2_1
|
adc HGR_DX+1 ; 3
|
||||||
|
bvc movex2_1 ; 3
|
||||||
|
|
||||||
|
|
||||||
|
;===============================
|
||||||
|
; HPLOT_TO
|
||||||
|
;===============================
|
||||||
|
;
|
||||||
|
; cycles = 10 + 6 + X + 6
|
||||||
hplot_to:
|
hplot_to:
|
||||||
|
|
||||||
; F712
|
; F712: put vars in right location
|
||||||
sty DSCTMP
|
sty DSCTMP ; 3
|
||||||
tay
|
tay ; 2
|
||||||
txa
|
txa ; 2
|
||||||
ldx DSCTMP
|
ldx DSCTMP ; 3
|
||||||
jsr hglin
|
;============
|
||||||
|
; 10
|
||||||
|
|
||||||
|
jsr hglin ;6+?
|
||||||
rts22:
|
rts22:
|
||||||
rts
|
rts ; 6
|
||||||
|
|
||||||
|
|
||||||
|
;=============================
|
||||||
|
; HCOLOR_EQUALS
|
||||||
|
;=============================
|
||||||
; Color in X
|
; Color in X
|
||||||
|
; 13 cycles
|
||||||
hcolor_equals:
|
hcolor_equals:
|
||||||
|
|
||||||
; F6E9
|
; F6E9
|
||||||
; TODO: mask to be less than 8
|
; TODO: mask to be less than 8
|
||||||
|
|
||||||
lda colortbl,x
|
lda colortbl,x ; 4+
|
||||||
sta HGR_COLOR
|
sta HGR_COLOR ; 3
|
||||||
rts
|
rts ; 6
|
||||||
|
|
||||||
colortbl:
|
colortbl:
|
||||||
.byte $00,$2A,$55,$7F,$80,$AA,$D5,$FF
|
.byte $00,$2A,$55,$7F,$80,$AA,$D5,$FF
|
||||||
|
Loading…
Reference in New Issue
Block a user