further IO stack refactoring

This commit is contained in:
FeralChild64 committed 2019-10-29 17:03:13 +01:00
1 parent 6fa2c5b570
commit e9140607bc
41 files changed
+131 -82

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
//
// Official Kernal routine, described in:
//
// - [RG64] C64 Programmer's Reference Guide - page 282
// - [CM64] Compute's Mapping the Commodore 64 - page 230
//
// CPU registers that has to be preserved (see [RG64]): .Y
//
CLRCHN:
#if CONFIG_IEC
jsr clrchn_iec
#else
nop // just to prevent double label
#endif
// FALLTROUGH
clrchn_reset: // entry needed by setup_vicii
// Set input device number to keyboard
lda #$00
sta DFLTN
// Set output device number to screen
lda #$03
sta DFLTO
rts
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.