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" .asciiz "CORNELL GCF"
.byte 8 ; 21 .byte 8 ; 21
.asciiz "ALL MSTIES EVERYWHERE" .asciiz "ALL MSTIES EVERYWHERE"
;.asciiz "AAAAAAAAAAAAAAAAAAAAA"
.byte 17 ; 3 .byte 17 ; 3
.asciiz "..." .asciiz "..."

View File

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

View File

@ -1214,7 +1214,7 @@ fixed_sin_scale:
.byte $ff,$f4 .byte $ff,$f4
; we can guarantee 4 cycle indexed reads if we page-aligned this ; we can guarantee 4 cycle indexed reads if we page-aligned this
;.align 256 .align 256
horizontal_lookup: horizontal_lookup:
.byte $0C,$0B,$0A,$09,$09,$08,$08,$07,$07,$06,$06,$06,$05,$05,$05,$05 .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 .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) lda #>(data)
sta LZ4_SRC+1 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) lda #<(data_end)
sta LZ4_END sta LZ4_END
lda #>(data_end) lda #>(data_end)
@ -74,12 +69,14 @@ lz4_decode:
lda #>UNPACK_BUFFER ; original unpacked data offset lda #>UNPACK_BUFFER ; original unpacked data offset
sta LZ4_DST+1 sta LZ4_DST+1
lda #<UNPACK_BUFFER ; lda #<UNPACK_BUFFER
sta LZ4_DST ; sta LZ4_DST
unpmain: unpmain:
ldy #0 ; used to index, always zero ldy #0 ; used to index, always zero
sty LZ4_DST ; we know this will be zero ($4000)
parsetoken: parsetoken:
jsr getsrc ; get next token jsr getsrc ; get next token
pha ; save for later (need bottom 4 bits) pha ; save for later (need bottom 4 bits)
@ -158,10 +155,6 @@ done:
jmp $4000 jmp $4000
rts
;========= ;=========
; getsrc ; getsrc
;========= ;=========
@ -170,7 +163,7 @@ getsrc:
lda (LZ4_SRC), Y ; get a byte from src lda (LZ4_SRC), Y ; get a byte from src
inc LZ4_SRC ; increment pointer inc LZ4_SRC ; increment pointer
bne done_getsrc ; update 16-bit 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: done_getsrc:
rts rts

View File

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