even more startup tweaks
This commit is contained in:
1 parent
455ca2ee56
commit
dc63912edd
8 files changed
+30
-16
No files matched your search
@@ -1,43 +0,0 @@
|
||||
// Resources describing the C64 reset sequence:
|
||||
// https://www.c64-wiki.com/wiki/Reset_(Process)
|
||||
|
||||
|
||||
hw_entry_reset:
|
||||
|
||||
// The GPL program at https://github.com/Klaus2m5/6502_65C02_functional_tests/blob/master/6502_functional_test.a65
|
||||
// uses the following initial reset sequence, affirmed by c64 PRG p269
|
||||
|
||||
cld // for CPUs might clear D flag - but it is possible this is called manually
|
||||
ldx #$FF
|
||||
txs
|
||||
sei
|
||||
|
||||
// The following routine is based on reading the public KERNAL jumptable routine
|
||||
// list, and making unimaginative assumptions about what should be done on reset.
|
||||
// Also, https://codebase64.org/doku.php?id=base:assembling_your_own_cart_rom_image was used
|
||||
// as it shows example startup sequence, to be followe by cartridge creators
|
||||
|
||||
// C64 PRG p269
|
||||
jsr cartridge_check
|
||||
bne !+
|
||||
jmp (ICART_COLD_START)
|
||||
!:
|
||||
// Initialising IO is obviously required. Also indicated by c64 prg p269.
|
||||
jsr JIOINIT
|
||||
|
||||
// Setting up the screen and testing ram is obviously required
|
||||
// also affirmed by p269 of c64 prg
|
||||
jsr JRAMTAS // called RANTAM on Codebase64 wiki
|
||||
|
||||
// Resetting IO vectors is obviously required, if we want interrupts to run
|
||||
// also affirmed by c64 prg p269
|
||||
jsr JRESTOR
|
||||
|
||||
// "Compute's Mapping the 64" p236
|
||||
jsr JCINT
|
||||
|
||||
// What do we do when finished? A C64 jumps into the BASIC ROM
|
||||
cli // allow interrupts to happen
|
||||
|
||||
// c64 prg p269
|
||||
jmp (IBASIC_COLD_START)
|
||||
@@ -1,5 +0,0 @@
|
||||
System reset routine has to be placed under it's original location due to 'SYS 64738' being extremaly popular to reset the C64,
|
||||
to the point it went into popular culture.
|
||||
|
||||
https://twitter.com/hashtag/SYS64738?src=hash
|
||||
https://www.computerhope.com/jargon/s/sys64738.htm
|
||||
@@ -5,6 +5,11 @@ default_brk_handler:
|
||||
|
||||
sei // disable IRQs, to be sure they won't interfere
|
||||
|
||||
ldx #$00
|
||||
sta VIC_SCROLX // turn the display off - we want as little screen artifacts as possible
|
||||
|
||||
cld // make sure this dangerous flag is disabled
|
||||
|
||||
jsr JRESTOR
|
||||
jsr JIOINIT
|
||||
jsr cint_brk
|
||||
|
||||
Reference in new issue
Block a user