small tape code optimization
This commit is contained in:
1 parent
64face2b03
commit
f104746ebc
4 files changed
+16
-31
No files matched your search
@@ -55,10 +55,3 @@
|
|||||||
.label tape_normal_byte_store = KERNAL_0.tape_normal_byte_store
|
.label tape_normal_byte_store = KERNAL_0.tape_normal_byte_store
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_TAPE_TURBO
|
|
||||||
|
|
||||||
.label tape_turbo_byte_store = KERNAL_0.tape_turbo_byte_store
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -128,11 +128,7 @@ load_tape_turbo_payload:
|
|||||||
load_tape_turbo_loop:
|
load_tape_turbo_loop:
|
||||||
|
|
||||||
jsr tape_turbo_get_byte
|
jsr tape_turbo_get_byte
|
||||||
#if ROM_LAYOUT_M65
|
|
||||||
jsr tape_turbo_byte_store
|
|
||||||
#else
|
|
||||||
jsr __tape_turbo_bytestore // like 'sta (MEMUSS),y' - but under I/O
|
jsr __tape_turbo_bytestore // like 'sta (MEMUSS),y' - but under I/O
|
||||||
#endif
|
|
||||||
|
|
||||||
eor PRTY // handle checksum
|
eor PRTY // handle checksum
|
||||||
sta PRTY
|
sta PRTY
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
// #LAYOUT# M65 KERNAL_0 #TAKE
|
|
||||||
// #LAYOUT# * * #IGNORE
|
|
||||||
|
|
||||||
//
|
|
||||||
// Tape (turbo) helper routine - byte storage when ban changing is needed
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_TAPE_TURBO
|
|
||||||
|
|
||||||
|
|
||||||
tape_turbo_byte_store:
|
|
||||||
|
|
||||||
jsr map_NORMAL
|
|
||||||
jsr __tape_turbo_bytestore // like 'sta (MEMUSS),y' - but under I/O
|
|
||||||
jmp map_KERNAL_1
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -5,8 +5,10 @@
|
|||||||
//
|
//
|
||||||
// Tape (turbo) helper routine - storing byte uder I/O
|
// Tape (turbo) helper routine - storing byte uder I/O
|
||||||
//
|
//
|
||||||
|
// Has to preserve .A and .Y
|
||||||
|
//
|
||||||
|
|
||||||
// This helper routine is meant to be copiet to the start of CPU stack.
|
// This helper routine is meant to be copied to the start of CPU stack.
|
||||||
// Original ROM tape loading routines uses this area to store information
|
// Original ROM tape loading routines uses this area to store information
|
||||||
// about bytes that did not read properly for the first time
|
// about bytes that did not read properly for the first time
|
||||||
// (see Mapping the C64, page 47); this mechanism is useless for turbo tape,
|
// (see Mapping the C64, page 47); this mechanism is useless for turbo tape,
|
||||||
@@ -16,12 +18,20 @@
|
|||||||
#if CONFIG_TAPE_TURBO
|
#if CONFIG_TAPE_TURBO
|
||||||
|
|
||||||
|
|
||||||
|
#if ROM_LAYOUT_M65
|
||||||
|
.label __tape_turbo_bytestore_defmap = __tape_turbo_bytestore + 10
|
||||||
|
#else
|
||||||
.label __tape_turbo_bytestore_defmap = __tape_turbo_bytestore + 7
|
.label __tape_turbo_bytestore_defmap = __tape_turbo_bytestore + 7
|
||||||
|
#endif
|
||||||
.label __tape_turbo_bytestore_size = __tape_turbo_bytestore_source_end - tape_turbo_bytestore_source
|
.label __tape_turbo_bytestore_size = __tape_turbo_bytestore_source_end - tape_turbo_bytestore_source
|
||||||
|
|
||||||
|
|
||||||
tape_turbo_bytestore_source:
|
tape_turbo_bytestore_source:
|
||||||
|
|
||||||
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr KERNAL_0.map_NORMAL
|
||||||
|
#endif
|
||||||
|
|
||||||
// Set all memory as RAM, tape motor ON
|
// Set all memory as RAM, tape motor ON
|
||||||
ldx #$00
|
ldx #$00
|
||||||
stx CPU_R6510
|
stx CPU_R6510
|
||||||
@@ -33,8 +43,13 @@ tape_turbo_bytestore_source:
|
|||||||
ldx #$00 // value will be determined later, offset from start: 7 bytes
|
ldx #$00 // value will be determined later, offset from start: 7 bytes
|
||||||
stx CPU_R6510
|
stx CPU_R6510
|
||||||
|
|
||||||
|
#if ROM_LAYOUT_M65
|
||||||
|
// Restore default map and quit
|
||||||
|
jmp KERNAL_0.map_KERNAL_1
|
||||||
|
#else
|
||||||
// Go back
|
// Go back
|
||||||
rts
|
rts
|
||||||
|
#endif
|
||||||
|
|
||||||
__tape_turbo_bytestore_source_end:
|
__tape_turbo_bytestore_source_end:
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user