diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index 3d37f906..67a92cbc 100644 Binary files a/bin/kernal_generic.rom and b/bin/kernal_generic.rom differ diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom index 3d37f906..67a92cbc 100644 Binary files a/bin/kernal_mega65.rom and b/bin/kernal_mega65.rom differ diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index 3d37f906..67a92cbc 100644 Binary files a/bin/kernal_ultimate64.rom and b/bin/kernal_ultimate64.rom differ diff --git a/c64/kernal/reset_entry.s b/c64/kernal/reset_entry.s index e41cd7f3..7fb0b6a7 100644 --- a/c64/kernal/reset_entry.s +++ b/c64/kernal/reset_entry.s @@ -22,18 +22,18 @@ reset_entry: jmp (ICART_COLD_START) * ; Initialising IO is obviously required. Also indicated by c64 prg p269. - jsr IOINIT + jsr JIOINIT ; Setting up the screen and testing ram is obviously required ; also affirmed by p269 of c64 prg - jsr RAMTAS ; called RANTAM on Codebase64 wiki + 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 RESTOR + jsr JRESTOR ;; "Compute's Mapping the 64" p236 - jsr CINT + jsr JCINT ; What do we do when finished? A C64 jumps into the BASIC ROM cli ; Allow interrupts to happen diff --git a/strings/00DD29DF b/strings/00DD29DF new file mode 100644 index 00000000..fd7ade84 --- /dev/null +++ b/strings/00DD29DF @@ -0,0 +1,3 @@ +$DD00 + AND #$DF + +Instruction and a half (well known hardware register address) - not copyrightable. diff --git a/strings/00DD29DF8D00DD60 b/strings/00DD29DF8D00DD60 new file mode 100644 index 00000000..e8fcd0b0 --- /dev/null +++ b/strings/00DD29DF8D00DD60 @@ -0,0 +1,5 @@ +$DD00 + AND #$DF + STA $DD00 + RTS + +$DD00 is a hardware register, where one typically set/unset/read individual bits. +Having a set of trivial helper subroutines to set/clear individual bits (or groups of bits) is an obvious solution (thus not copyrightable), some similarities are unevitable. +Besides, in this case (since the similarity does not even cover a single subroutine from start to end) it is clear that the similar code actually performs slightly different actions. diff --git a/strings/2006EEA5 b/strings/2006EEA5 new file mode 100644 index 00000000..4b53a2e3 --- /dev/null +++ b/strings/2006EEA5 @@ -0,0 +1,3 @@ +JSR $EE06 + LDA (argument does not match) + +Instruction and a half - not copyrightable. diff --git a/strings/4C15FD4C1AFD4C b/strings/4C15FD4C1AFD4C new file mode 100644 index 00000000..93764d3f --- /dev/null +++ b/strings/4C15FD4C1AFD4C @@ -0,0 +1 @@ +This is a part of Kernal jumptable - series of jumps, sometimes to the well known addreses (or through documented vectors). No business logic, part of the Kernal API itself (has to be as it is to maintain compatibility) - not copyrightable. diff --git a/strings/4C5BFF4CA3FD4C b/strings/4C5BFF4CA3FD4C new file mode 100644 index 00000000..93764d3f --- /dev/null +++ b/strings/4C5BFF4CA3FD4C @@ -0,0 +1 @@ +This is a part of Kernal jumptable - series of jumps, sometimes to the well known addreses (or through documented vectors). No business logic, part of the Kernal API itself (has to be as it is to maintain compatibility) - not copyrightable. diff --git a/strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5 b/strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5A900 similarity index 93% rename from strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5 rename to strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5A900 index b12c656e..8cd90eb1 100644 --- a/strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5 +++ b/strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5A900 @@ -1,4 +1,4 @@ -RTS (from previous routine) + a list of vectors to be copied starting from $0314 +RTS (from previous routine) + a list of vectors to be copied starting from $0314 + LDA #$00 Values of the vectors are already present in many autostart software - as it often overrides them, sometimes changing one to trigger autostart (one of the possible techniques). We have to use the same diff --git a/strings/6C28036C2A036C2C034C b/strings/6C28036C2A036C2C034C index fcfe7208..93764d3f 100644 --- a/strings/6C28036C2A036C2C034C +++ b/strings/6C28036C2A036C2C034C @@ -1 +1 @@ -This is a part of Kernal jumptable - series of jumps, sometimes to the well known addreses (or through documented vectors). No business logic, part of the Kernal API itself - not copyrightable. +This is a part of Kernal jumptable - series of jumps, sometimes to the well known addreses (or through documented vectors). No business logic, part of the Kernal API itself (has to be as it is to maintain compatibility) - not copyrightable. diff --git a/strings/7F8D0DDC b/strings/7F8D0DDC new file mode 100644 index 00000000..d0c43352 --- /dev/null +++ b/strings/7F8D0DDC @@ -0,0 +1,3 @@ +$7F + STA $DC0D + +Instruction (access to a docummented hardware register) and some part - not copyrightable. diff --git a/strings/9848BABD04012910 b/strings/9848BABD04012910 new file mode 100644 index 00000000..d0775e65 --- /dev/null +++ b/strings/9848BABD04012910 @@ -0,0 +1,3 @@ +TYA + PHA + TSX + LDA $0104,X + AND #$10 + +Beginning of IRQ handler - checks whether it is caused by BRK instruction or some other reason. Since IRQ handling for BRK/non-BRK caused interrupts are totally different, there is no other way but to start with such a check. Not creative - not copyrightable. diff --git a/strings/A59D10FB b/strings/A59D10FB new file mode 100644 index 00000000..90699c4e --- /dev/null +++ b/strings/A59D10FB @@ -0,0 +1,3 @@ +LDA $9D + BPL (address match) + +Checking a well-known zeropage flag - not creative, not copyrightable. diff --git a/strings/A97F8D00DCAD01DC b/strings/A97F8D00DCAD01DC new file mode 100644 index 00000000..9a2265bf --- /dev/null +++ b/strings/A97F8D00DCAD01DC @@ -0,0 +1,3 @@ +LDA #$7F + STA $DC00 + LDA $DC01 + +Part of keyboard scanning code in UDTIM routine - to get the last row (not even complete code, as there is also some code to set the port directions). This is probably the only sane way to read the rom. Not creative - not copyrightable. diff --git a/strings/D006E6A1D0 b/strings/D006E6A1D0 new file mode 100644 index 00000000..9856932f --- /dev/null +++ b/strings/D006E6A1D0 @@ -0,0 +1,3 @@ +BNE (offset match) + INC $A1 + BNE (offset does not match) + +Part of the routine to increment a well-known 24-bit counter. There are not many ways to do this in a sane way, some similarity is unavoidable, 2 instructions and a half is not much in this case. Not copyrightable. diff --git a/strings/DD09088D00DD b/strings/DD09088D00DD new file mode 100644 index 00000000..33ed075b --- /dev/null +++ b/strings/DD09088D00DD @@ -0,0 +1,5 @@ +$DD + ORA #$08 + STA $DD00 + +$DD00 is a hardware register, where one typically set/unset/read individual bits. +Having a set of trivial helper subroutines to set/clear individual bits (or groups of bits) is an obvious solution (thus not copyrightable), some similarities are unevitable. +Besides, in this case (since the similarity does not even cover a single subroutine from start to end) it is clear that the similar code actually performs slightly different actions. diff --git a/strings/DD60AD00DD0910 b/strings/DD60AD00DD0910 new file mode 100644 index 00000000..5167b1a0 --- /dev/null +++ b/strings/DD60AD00DD0910 @@ -0,0 +1,5 @@ +$DD + RTS + LDA $DD00 + ORA #$10 + +$DD00 is a hardware register, where one typically set/unset/read individual bits. +Having a set of trivial helper subroutines to set/clear individual bits (or groups of bits) is an obvious solution (thus not copyrightable), some similarities are unevitable. +Besides, in this case (since the similarity does not even cover a single subroutine from start to end) it is clear that the similar code actually performs slightly different actions. diff --git a/strings/DF8D00DD60AD00DD09 b/strings/DF8D00DD60AD00DD09 new file mode 100644 index 00000000..077c308b --- /dev/null +++ b/strings/DF8D00DD60AD00DD09 @@ -0,0 +1,5 @@ +$DF + STA $DD00 + RTS + LDA $DD00 + ORA (argument does not match) + +$DD00 is a hardware register, where one typically set/unset/read individual bits. +Having a set of trivial helper subroutines to set/clear individual bits (or groups of bits) is an obvious solution (thus not copyrightable), some similarities are unevitable. +Besides, in this case (since the similarity does not even cover a single subroutine from start to end) it is clear that the similar code actually performs slightly different actions. diff --git a/strings/EEAD00DD b/strings/EEAD00DD new file mode 100644 index 00000000..14560bce --- /dev/null +++ b/strings/EEAD00DD @@ -0,0 +1,3 @@ +$EE + LDA $DD00 + +Instruction (access to a well known hardware register address) and a half - not copyrightable. diff --git a/strings/F66C28036C2A036C2C034C b/strings/F66C28036C2A036C2C034C new file mode 100644 index 00000000..93764d3f --- /dev/null +++ b/strings/F66C28036C2A036C2C034C @@ -0,0 +1 @@ +This is a part of Kernal jumptable - series of jumps, sometimes to the well known addreses (or through documented vectors). No business logic, part of the Kernal API itself (has to be as it is to maintain compatibility) - not copyrightable. diff --git a/strings/FF586C00A0 b/strings/FF586C00A0 new file mode 100644 index 00000000..e69471c4 --- /dev/null +++ b/strings/FF586C00A0 @@ -0,0 +1,3 @@ +$FF + CLI + JMP ($A000) + +Part of the address, reenabling interrupts, jump through a documented vector - part of the initialization/reset sequence. Not creative - not copyrightable.