mode7: more byte shaving. getting close

This commit is contained in:
Vince Weaver 2018-03-19 20:48:41 -04:00
parent 09f05e9ef8
commit 16583d3883
5 changed files with 20 additions and 24 deletions

View File

@ -297,6 +297,7 @@ credits:
.asciiz "CORNELL GCF"
.byte 8 ; 21
.asciiz "ALL MSTIES EVERYWHERE"
;.asciiz "AAAAAAAAAAAAAAAAAAAAA"
.byte 17 ; 3
.asciiz "..."

View File

@ -127,6 +127,8 @@ mb_no_write_right:
;=====================================
; Copy registers to old
;=====================================
; 11 coming in
ldx #10 ; 2
mb_reg_copy:
lda REGISTER_DUMP,X ; load register value ; 4
@ -231,10 +233,14 @@ mb_load_values:
;=========================================
; if NOISE is $ff then we are done
lda NOISE ; 3
lda NOISE ; 3
bpl mb_not_done ; 3/2nt
jmp quiet_exit ; 3
; lda #1
sta DONE_PLAYING
jsr clear_ay_both
jmp done_interrupt ; 3
;===========
; typ 6
mb_not_done:
@ -246,7 +252,7 @@ mb_not_done:
increment_offset:
inc MB_CHUNK_OFFSET ; increment offset ; 5
bne increment_done ; if not zero, done ; 3/2nt
bne increment_done ; if not zero, done ; 3/2nt
inc WHICH_CHUNK
lda WHICH_CHUNK
@ -268,12 +274,7 @@ increment_done:
;=================================
done_interrupt:
jmp exit_interrupt
quiet_exit:
lda #1
sta DONE_PLAYING
jsr clear_ay_both
exit_interrupt:

View File

@ -1214,7 +1214,7 @@ fixed_sin_scale:
.byte $ff,$f4
; we can guarantee 4 cycle indexed reads if we page-aligned this
;.align 256
.align 256
horizontal_lookup:
.byte $0C,$0B,$0A,$09,$09,$08,$08,$07,$07,$06,$06,$06,$05,$05,$05,$05
.byte $04,$04,$04,$04,$04,$04,$04,$03,$03,$03,$03,$03,$03,$03,$03,$03

View File

@ -60,11 +60,6 @@ start:
lda #>(data)
sta LZ4_SRC+1
; lda #<(data_end-data+LZ4_DATA_BEGIN)
; sta LZ4_END
; lda #>(data_end-data+LZ4_DATA_BEGIN)
; sta LZ4_END+1
lda #<(data_end)
sta LZ4_END
lda #>(data_end)
@ -74,12 +69,14 @@ lz4_decode:
lda #>UNPACK_BUFFER ; original unpacked data offset
sta LZ4_DST+1
lda #<UNPACK_BUFFER
sta LZ4_DST
; lda #<UNPACK_BUFFER
; sta LZ4_DST
unpmain:
ldy #0 ; used to index, always zero
sty LZ4_DST ; we know this will be zero ($4000)
parsetoken:
jsr getsrc ; get next token
pha ; save for later (need bottom 4 bits)
@ -158,10 +155,6 @@ done:
jmp $4000
rts
;=========
; getsrc
;=========
@ -170,7 +163,7 @@ getsrc:
lda (LZ4_SRC), Y ; get a byte from src
inc LZ4_SRC ; increment pointer
bne done_getsrc ; update 16-bit pointer
inc LZ4_SRC+1 ; on 8-bit overflow
inc LZ4_SRC+1 ; on 8-bit overflow
done_getsrc:
rts

View File

@ -22,7 +22,7 @@ start:
;================================
; Need to have lines at
; $4000 AA,AD,D5,AC,95
; $4400 A8,D5,95,35,85
; $4400 A8,55,95,35,85
; $4800 A0,55,26,55,81
; $4C00 00,00,00,00,00
@ -326,7 +326,8 @@ title_routine:
.include "interrupt_handler.s"
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0
.byte $A0,$55,$26,$55,$81 ; at $4800
.include "../asm_routines/pageflip.s"
@ -348,9 +349,9 @@ title_routine:
.include "../asm_routines/gr_hlin_double.s"
.include "../asm_routines/gr_fade.s"
.include "../asm_routines/gr_plot.s"
.include "../asm_routines/gr_copy.s"
.include "../asm_routines/gr_scroll.s"
.include "../asm_routines/gr_plot.s"
.include "mode7.s"