support for non-relocatable tape files
This commit is contained in:
1 parent
171c237c8f
commit
28de9a0aea
4 files changed
+15
-6
No files matched your search
@@ -119,17 +119,17 @@ Adds support for JiffyDOS fast protocol to the IEC bus.
|
||||
|
||||
Needs about 430 bytes in KERNAL segment. If unsure - enable.
|
||||
|
||||
### `CONFIG_TAPE_LOAD`
|
||||
### `CONFIG_TAPE_NORMAL`
|
||||
|
||||
Adds a minimal normal (standard Commodore format) tape support - just LOAD command.
|
||||
|
||||
Needs some space in KERNAL segment. If unsure - enable.
|
||||
Needs about 700 bytes in KERNAL segment (if both normal and turbo are enabled, about 900 bytes are needed, as they share some code). If unsure - enable.
|
||||
|
||||
### `CONFIG_TAPE_TURBO`
|
||||
|
||||
Adds a minimal turbo tape support - just LOAD command (device 7, like on _Action Replay_ and _Final_ cartridges)
|
||||
|
||||
Needs about 400 bytes in KERNAL segment. If unsure - enable.
|
||||
Needs about 600 bytes in KERNAL segment (if both normal and turbo are enabled, about 900 bytes are needed, as they share some code). If unsure - enable.
|
||||
|
||||
## Multiple SID support
|
||||
|
||||
|
||||
@@ -98,8 +98,8 @@ load_tape_normal_header:
|
||||
cmp #$03
|
||||
bne load_tape_normal_header // header types 1 and 3 are loadable, see Mapping the C64, page 77
|
||||
|
||||
// XXX handle non-relocatable program, header type 3
|
||||
|
||||
lda #$01
|
||||
sta SA // this file is non-relocatable; override secondary address with 1
|
||||
!:
|
||||
// Handle the header
|
||||
|
||||
|
||||
@@ -63,6 +63,15 @@ load_tape_turbo_header_loop:
|
||||
cpy #$C0 // header is 192 bytes long in total
|
||||
bne load_tape_turbo_header_loop
|
||||
|
||||
// For non-relocatable files, override secondary address
|
||||
ldy #$00 // XXX optimize out for 65C02
|
||||
lda (TAPE1), y
|
||||
beq !+
|
||||
and #$01
|
||||
bne !+
|
||||
lda #$01 // XXX for 65C02 just set the bit with one instruction
|
||||
sta SA
|
||||
!:
|
||||
// Handle the header
|
||||
|
||||
jsr tape_clean_sid
|
||||
|
||||
@@ -66,7 +66,7 @@ tape_normal_pilot_header: // require 128x $40 pulses
|
||||
|
||||
lda #$80
|
||||
|
||||
jmp tape_normal_pilot_common // XXX calibrate tape speeed afterwards
|
||||
jmp tape_normal_pilot_common // XXX calibrate tape speed afterwards
|
||||
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user