diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index e78ac9f6..140ad023 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 e78ac9f6..140ad023 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 e78ac9f6..140ad023 100644 Binary files a/bin/kernal_ultimate64.rom and b/bin/kernal_ultimate64.rom differ diff --git a/strings/018DA602 b/strings/018DA602 new file mode 100644 index 00000000..5404e18b --- /dev/null +++ b/strings/018DA602 @@ -0,0 +1,3 @@ +$01 + STA $02A6 (PAL/NTSC flag) + +Instruction and a part (storing data into a decumented variable). Not copyrightable. diff --git a/strings/02A9018D b/strings/02A9018D new file mode 100644 index 00000000..a7822c3a --- /dev/null +++ b/strings/02A9018D @@ -0,0 +1,3 @@ +$02 + LDA #$01 + STA (address does not match) + +Instruction + some parts. Not copyrightable. diff --git a/strings/02A97F8D b/strings/02A97F8D new file mode 100644 index 00000000..dbf4cde4 --- /dev/null +++ b/strings/02A97F8D @@ -0,0 +1,3 @@ +$02 + LDA #$7F + STA (address does not match) + +Instruction + some parts. Not copyrightable. diff --git a/strings/034C09F4 b/strings/034C09F4 new file mode 100644 index 00000000..7a3dbddb --- /dev/null +++ b/strings/034C09F4 @@ -0,0 +1,3 @@ +$03 + JMP $F409 + +Instruction + some part. Not copyrightable. diff --git a/strings/036C0080 b/strings/036C0080 new file mode 100644 index 00000000..87cb7116 --- /dev/null +++ b/strings/036C0080 @@ -0,0 +1,3 @@ +$03 + JMP ($8000) (jump via cartridge vector) + +Instruction (jump via a documented vector) + some part. Not copyrightable. diff --git a/strings/036C028020 b/strings/036C028020 new file mode 100644 index 00000000..2a086842 --- /dev/null +++ b/strings/036C028020 @@ -0,0 +1,3 @@ +$03 + JMP ($8002) (cartridge vector) + JSR (address does not match, part of other branch) + +Instruction and some parts. Not copyrightable. diff --git a/strings/036C1403 b/strings/036C1403 new file mode 100644 index 00000000..d5c29c2b --- /dev/null +++ b/strings/036C1403 @@ -0,0 +1,3 @@ +$03 + JMP ($0314) (jump via CINV) + +Instruction (jump via documented vector) + some part. Not copyrightable. diff --git a/strings/08A90020 b/strings/08A90020 new file mode 100644 index 00000000..8f1e0328 --- /dev/null +++ b/strings/08A90020 @@ -0,0 +1,3 @@ +PHP + LDA #$00 + JSR (address does not match) + +Two very simple instructions (one without argument, second zeroing a register) + a part. Not creative - not copyrightable. diff --git a/strings/20E1FFB0 b/strings/20E1FFB0 new file mode 100644 index 00000000..4489ec2c --- /dev/null +++ b/strings/20E1FFB0 @@ -0,0 +1,3 @@ +JSR $FFE1 (STOP routine jumptable address) + BCS (offset does not match) + +Instruction (call of documented subroutine) and a half - not copyrightable. diff --git a/strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5 b/strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5 new file mode 100644 index 00000000..b12c656e --- /dev/null +++ b/strings/6031EA66FE47FE4AF391F20EF250F233F357F1CAF1EDF63EF12FF366FEA5F4EDF5 @@ -0,0 +1,7 @@ +RTS (from previous routine) + a list of vectors to be copied starting from $0314 + +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 +vector values to be compatible (in fact, it even complicates our implementation) - see *.interop files +for more details. + diff --git a/strings/608D850260 b/strings/608D850260 new file mode 100644 index 00000000..bdc30ddc --- /dev/null +++ b/strings/608D850260 @@ -0,0 +1,5 @@ +RTS (from previous routine) + STA $0285 (TIMOUT variable) + RTS + +SETTMO routine (+ RTS from previous one). There really is just one sane way to +implement a subroutine storing accumulator in a fixed memory location. +Not creative - not copyrightable. diff --git a/strings/60A5BAC902D0 b/strings/60A5BAC902D0 new file mode 100644 index 00000000..fc3f35f3 --- /dev/null +++ b/strings/60A5BAC902D0 @@ -0,0 +1,4 @@ +RTS (from previous routine) + LDA $BA (current device number) + CMP $02 + BNE (offset does not match) + +Routine starts by checking whether the device is RS-232 - nothing creative, not copyrightable. + diff --git a/strings/60AA20 b/strings/60AA20 new file mode 100644 index 00000000..0b4517ad --- /dev/null +++ b/strings/60AA20 @@ -0,0 +1,3 @@ +RTS (from previous routine) + TAX + JSR (address does not match) + +Routine starting from TAX + some subroutine jump. Not copyrightable. diff --git a/strings/C3C2CD3830 b/strings/60C3C2CD3830 similarity index 88% rename from strings/C3C2CD3830 rename to strings/60C3C2CD3830 index 395bb154..1190bf40 100644 --- a/strings/C3C2CD3830 +++ b/strings/60C3C2CD3830 @@ -1,6 +1,6 @@ -CBM80 cartridge signature +RTS + CBM80 PETSCII string -This is the string used to compare with the signature block of +CBM80 is the string used to compare with the signature block of a cartridge. It is required for interoperability with C64 cartridges, and the requirement for this string is explicit, and is well documented, including the string itself, in many places, such as: diff --git a/strings/6C1A036C1C036C1E036C20036C22036C24036C26034C b/strings/6C1A036C1C036C1E036C20036C22036C24036C26034C new file mode 100644 index 00000000..fcfe7208 --- /dev/null +++ b/strings/6C1A036C1C036C1E036C20036C22036C24036C26034C @@ -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 - not copyrightable. diff --git a/strings/6C28036C2A036C2C034C b/strings/6C28036C2A036C2C034C new file mode 100644 index 00000000..fcfe7208 --- /dev/null +++ b/strings/6C28036C2A036C2C034C @@ -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 - not copyrightable. diff --git a/strings/ADA602F0 b/strings/ADA602F0 new file mode 100644 index 00000000..17bb093a --- /dev/null +++ b/strings/ADA602F0 @@ -0,0 +1,3 @@ +LDA $02A6 (PALNTSC) + BEQ (offset does not match) + +Instruction (read of a documented routine) + a half - not copyrightable. diff --git a/strings/B8D0034C b/strings/B8D0034C new file mode 100644 index 00000000..1e2f4b72 --- /dev/null +++ b/strings/B8D0034C @@ -0,0 +1,3 @@ +$B8 + BNE (offset match) + JMP (address does not match) + +Instruction + some parts. Not copyrightable. diff --git a/strings/C39914038810 b/strings/C39914038810 new file mode 100644 index 00000000..21d8b91f --- /dev/null +++ b/strings/C39914038810 @@ -0,0 +1,3 @@ +$C3 + STA $0314, Y + DEY + BPL (offset does not match) + +Part of the loop processing a documented array, but only two instructions fully match. Nothing creative - not copyrightable. diff --git a/strings/DD09208D00DD b/strings/DD09208D00DD new file mode 100644 index 00000000..56c3d79f --- /dev/null +++ b/strings/DD09208D00DD @@ -0,0 +1,5 @@ +$DD + ORA #$20 + 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/DD29DF8D00DD b/strings/DD29DF8D00DD new file mode 100644 index 00000000..697075eb --- /dev/null +++ b/strings/DD29DF8D00DD @@ -0,0 +1,5 @@ +$DD + AND #$DF + 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/DD29DF8D00DD60 b/strings/DD29DF8D00DD60 new file mode 100644 index 00000000..dd4fcd9c --- /dev/null +++ b/strings/DD29DF8D00DD60 @@ -0,0 +1,5 @@ +$DD + 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/F64C54F6 b/strings/F64C54F6 new file mode 100644 index 00000000..8602c5f4 --- /dev/null +++ b/strings/F64C54F6 @@ -0,0 +1,3 @@ +$F6 + JMP $F654 + +Instruction and a part - not copyrightable.