mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-26 00:29:29 +00:00
keen: cycle counting closer
This commit is contained in:
parent
4e0fdf6968
commit
e8298357b4
|
@ -67,11 +67,12 @@ load_background:
|
||||||
;===========================
|
;===========================
|
||||||
; main loop
|
; main loop
|
||||||
;===========================
|
;===========================
|
||||||
; 14 + 16 * (16 + 40*(16) + 19 + 7) + 17 + 17*40
|
; 14 + 16 * (16 + 40*(16) + 19 + 7) + 17 + 17*40 -1
|
||||||
; 14 + 16 * ( 682 ) + 697
|
; 14 + 16 * ( 682 ) + 696
|
||||||
; 14 + 10912 + 697
|
; 14 + 10912 + 696
|
||||||
; 11623 / 65 = 179 lines
|
; 11622 / 65 = ~179 lines
|
||||||
|
|
||||||
|
test1:
|
||||||
draw_loop:
|
draw_loop:
|
||||||
|
|
||||||
ldx #0 ; line counter ; 2
|
ldx #0 ; line counter ; 2
|
||||||
|
@ -130,7 +131,7 @@ in_next_page:
|
||||||
; 7
|
; 7
|
||||||
inc INH ; 5
|
inc INH ; 5
|
||||||
lda #0 ; 2
|
lda #0 ; 2
|
||||||
nop
|
nop ; 2
|
||||||
; 16
|
; 16
|
||||||
|
|
||||||
in_done:
|
in_done:
|
||||||
|
@ -151,7 +152,7 @@ in_done:
|
||||||
;==================
|
;==================
|
||||||
; draw message
|
; draw message
|
||||||
;==================
|
;==================
|
||||||
|
; -1
|
||||||
ldx #17 ; 2
|
ldx #17 ; 2
|
||||||
lda gr_offsets_low,X ; 4+
|
lda gr_offsets_low,X ; 4+
|
||||||
sta OUTL ; 3
|
sta OUTL ; 3
|
||||||
|
@ -175,14 +176,11 @@ message_text_loop:
|
||||||
; -1
|
; -1
|
||||||
|
|
||||||
|
|
||||||
; 11623
|
; 11622
|
||||||
;===================================
|
|
||||||
; can we do this constant time?
|
;==============================================
|
||||||
;===================================
|
; let's do the keyboard stuff in constant time
|
||||||
; no keys pressed = 41
|
;==============================================
|
||||||
; invalid key pressed = 41
|
|
||||||
; up pressed =
|
|
||||||
; down pressed =
|
|
||||||
|
|
||||||
check_keypress:
|
check_keypress:
|
||||||
lda KEYPRESS ; 4
|
lda KEYPRESS ; 4
|
||||||
|
@ -242,38 +240,75 @@ done_key_69:
|
||||||
nop
|
nop
|
||||||
done_key_76:
|
done_key_76:
|
||||||
|
|
||||||
; 11623+76 = 11699
|
|
||||||
|
test2:
|
||||||
|
|
||||||
|
; 11622+76 = 11698
|
||||||
|
|
||||||
|
;==========================
|
||||||
|
; measured: 2DB2 = 11698
|
||||||
|
;==========================
|
||||||
|
|
||||||
|
|
||||||
; want to delay total of 144+70 lines, 214
|
; want to delay total of 144+70 lines, 214
|
||||||
; 214*65 = 13910
|
; 214*65 = 13910
|
||||||
; -11699
|
; -11698
|
||||||
; =========
|
; =========
|
||||||
; 2211
|
; 2212
|
||||||
|
|
||||||
; want to delay 2211 - 4 = 2207 - 20 = 2187/9 = 243
|
|
||||||
; 243/256= 0 r 243
|
|
||||||
|
; want to delay 2212 - 4 = 2208 - 20 = 2188
|
||||||
|
|
||||||
|
; need multiple of 9
|
||||||
|
|
||||||
|
inc $0 ; nop5
|
||||||
|
inc $0 ; nop5
|
||||||
|
|
||||||
|
|
||||||
|
; 2178/9=242
|
||||||
|
|
||||||
|
; 242/256= 0 r 242
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
lda #0 ; 2
|
lda #0 ; 2
|
||||||
ldy #243 ; 2
|
ldy #242 ; 2
|
||||||
jsr delay_loop
|
jsr delay_loop
|
||||||
|
|
||||||
; want to delay 6*8*65 = 3120+4550 = 7670
|
test3:
|
||||||
; want to delay 7670 - 15 - 12 = 7643 - 20 = 7623/9 = 847
|
;================================
|
||||||
; 905/256=3 r 79
|
; should be: 2212
|
||||||
|
; measured: $8A4 = 2212
|
||||||
|
;================================
|
||||||
|
|
||||||
inc $00 ; nop5
|
at_set_gr:
|
||||||
inc $00 ; nop5
|
|
||||||
|
|
||||||
|
|
||||||
|
;=======================================
|
||||||
|
; want to delay 6*8*65 = 3120
|
||||||
|
; want to delay 3120 - 15 - 7 = 3098 - 20 = 3078/9 = 342
|
||||||
|
; 342/256=1 r 86
|
||||||
|
|
||||||
|
inc $0 ; nop5
|
||||||
nop ; nop2
|
nop ; nop2
|
||||||
|
|
||||||
bit SET_GR ; 4
|
bit SET_GR ; 4
|
||||||
|
|
||||||
lda #3 ; 2
|
lda #1 ; 2
|
||||||
ldy #79 ; 2
|
ldy #86 ; 2
|
||||||
jsr delay_loop
|
jsr delay_loop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bit SET_TEXT ; 4
|
bit SET_TEXT ; 4
|
||||||
|
|
||||||
;done_key:
|
;=======================
|
||||||
|
; measured $c2f = 3117
|
||||||
|
; expected = 3120-3 = 3117
|
||||||
|
test4:
|
||||||
|
|
||||||
|
|
||||||
jmp draw_loop ; 3
|
jmp draw_loop ; 3
|
||||||
|
|
||||||
|
@ -297,6 +332,8 @@ do_up_up:
|
||||||
bne up_ok_ok ; bra ; 3
|
bne up_ok_ok ; bra ; 3
|
||||||
; 48
|
; 48
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
up_ok:
|
up_ok:
|
||||||
; 39
|
; 39
|
||||||
inc $0 ; nop5
|
inc $0 ; nop5
|
||||||
|
|
Loading…
Reference in New Issue
Block a user