JiffyDOS NTSC fixes and screen blanking for transfer speedup

This commit is contained in:
FeralChild64 committed 2019-12-06 20:18:43 +01:00
1 parent d77887041f
commit 899b2e748f
15 files changed
+18 -5

No files matched your search

+4
View File
@@ -103,6 +103,10 @@ Adds support for the IEEC bus - for serial printers, disk drives, etc.
Needs over 1000 bytes in KERNAL segment. If unsure - enable.
### `CONFIG_IEC_BLANK_SCREEN`
Causes screen blanking during some IEC operations (currently only JiffyDOS file loading) to increase the data transfer performance.
### `CONFIG_IEC_JIFFYDOS`
Adds support for JiffyDOS fast protocol to the IEC bus.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -41,6 +41,7 @@
// I/O devices
#define CONFIG_IEC
#define CONFIG_IEC_BLANK_SCREEN
#define CONFIG_IEC_JIFFYDOS
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
#define CONFIG_TAPE_TURBO
+1
View File
@@ -43,6 +43,7 @@
// I/O devices
#define CONFIG_IEC
#define CONFIG_IEC_BLANK_SCREEN
#define CONFIG_IEC_JIFFYDOS
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
// #define CONFIG_TAPE_TURBO
+1
View File
@@ -42,6 +42,7 @@
// I/O devices
#define CONFIG_IEC
// #define CONFIG_IEC_BLANK_SCREEN
#define CONFIG_IEC_JIFFYDOS
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
#define CONFIG_TAPE_TURBO
+1
View File
@@ -41,6 +41,7 @@
// I/O devices
#define CONFIG_IEC
#define CONFIG_IEC_BLANK_SCREEN
#define CONFIG_IEC_JIFFYDOS
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
#define CONFIG_TAPE_TURBO
+2
View File
@@ -29,6 +29,8 @@ wait_x_bars: // additional entry point for tape support
dex
bne !-
iec_wait_rts: // dummy RTS, for very short waits
rts
+8 -5
View File
@@ -3,8 +3,6 @@
// JiffyDOS protocol support for IEC - optimized load loop
//
// XXX option does not work yet
// #define CONFIG_IEC_BLANK_SCREEN
#if CONFIG_IEC_JIFFYDOS && !CONFIG_MEMORY_MODEL_60K
@@ -61,6 +59,10 @@ load_jiffydos_loop:
#if CONFIG_IEC_BLANK_SCREEN
// It JiffyDOS needs some time here; waste few cycles
nop
jsr iec_wait_rts
// Ask device to start sending bits
sta CIA2_PRA
@@ -87,8 +89,8 @@ load_jiffydos_loop:
lsr
lsr
// Wait for the drive - we have time to increment offset, cycles: 2
iny
// Delay, JiffyDOS needs some time, 2 cycles
nop
// Get bits, cycles: 4 + 2 + 2 = 8
ora CIA2_PRA // bits 2 and 3 on CLK/DATA
@@ -105,7 +107,8 @@ load_jiffydos_loop:
eor C3PO
eor CIA2_PRA // bits 6 and 7 on CLK/DATA
// Store retrieved byte, cycles: 6
// Store retrieved byte, cycles: 2 + 6 = 8
iny // NTSC needs this delay
sta (EAL),y // not compatible with CONFIG_MEMORY_MODEL_60K
// Retrieve status bits, cycles: 4