mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-12-28 05:29:33 +00:00
42 lines
1.7 KiB
SQL
42 lines
1.7 KiB
SQL
|
|
; Set up macro for timer table
|
|
MAC TIMER_TABLE_SETUP
|
|
lda #255
|
|
sta WSYNC
|
|
sta TIM64T
|
|
ENDM
|
|
|
|
; Timer -> Scanline table
|
|
Timer2Scanline
|
|
.byte 215, 0,214,213,212,211,210, 0,209,208,207,206,205,204, 0,203
|
|
.byte 202,201,200,199, 0,198,197,196,195,194, 0,193,192,191,190,189
|
|
.byte 188, 0,187,186,185,184,183, 0,182,181,180,179,178, 0,177,176
|
|
.byte 175,174,173,172, 0,171,170,169,168,167, 0,166,165,164,163,162
|
|
.byte 0,161,160,159,158,157,156, 0,155,154,153,152,151, 0,150,149
|
|
.byte 148,147,146, 0,145,144,143,142,141,140, 0,139,138,137,136,135
|
|
.byte 0,134,133,132,131,130, 0,129,128,127,126,125,124, 0,123,122
|
|
.byte 121,120,119, 0,118,117,116,115,114, 0,113,112,111,110,109,108
|
|
.byte 0,107,106,105,104,103, 0,102,101,100, 99, 98, 0, 97, 96, 95
|
|
.byte 94, 93, 92, 0, 91, 90, 89, 88, 87, 0, 86, 85, 84, 83, 82, 0
|
|
.byte 81, 80, 79, 78, 77, 76, 0, 75, 74, 73, 72, 71, 0, 70, 69, 68
|
|
.byte 67, 66, 0, 65, 64, 63, 62, 61, 60, 0, 59, 58, 57, 56, 55, 0
|
|
.byte 54, 53, 52, 51, 50, 0, 49, 48, 47, 46, 45, 44, 0, 43, 42, 41
|
|
.byte 40, 39, 0, 38, 37, 36, 35, 34, 0, 33, 32, 31, 30, 29, 28, 0
|
|
.byte 27, 26, 25, 24, 23, 0, 22, 21, 20, 19, 18, 0, 17, 16, 15, 14
|
|
.byte 13, 12, 0, 11, 10, 9, 8, 7, 0, 6, 5, 4, 3, 2, 0, 1
|
|
|
|
|
|
; Pass: A = desired scanline
|
|
; Returns: Y = timer value - 1
|
|
align $10
|
|
WaitForScanline subroutine
|
|
ldy INTIM ; Fetch timer value
|
|
.Wait
|
|
cpy INTIM
|
|
beq .Wait ; Wait for it to change
|
|
sta WSYNC ; Sync with scan line
|
|
cmp Timer2Scanline,y ; lookup scanline
|
|
bcs WaitForScanline ; repeat until >=
|
|
rts
|
|
|