explained all similarities >3, some minor cleanups
This commit is contained in:
1 parent
53e4babbe3
commit
49e8b75b85
44 files changed
+208
-12
No files matched your search
@@ -0,0 +1,4 @@
|
||||
$00 + JSR $FFBD (SETNAM routine jumptable address)
|
||||
|
||||
Value + a jump to a documented location - trivial, not copyrightable.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
$00 + JSR $FFBD (SETNAM routine jumptable address) + JSR (address does not match)
|
||||
|
||||
Value + a jump to a documented location + beginning of the next instruction - trivial, not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
$00 + STA $7B + RTS
|
||||
|
||||
Routine ending, storing a value in a documented zeropage location - trivial, not copyrightable.
|
||||
@@ -0,0 +1,7 @@
|
||||
$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. What's more - this is only an instruction and a half - trivial, not copyrightable.
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
$DD00 + ORA #$10 + 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.
|
||||
@@ -0,0 +1,6 @@
|
||||
$DD00 + 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.
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
$DD00 + AND #$F7 + 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.
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
$DD00 + 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.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
$01 + STA $7A + LDA (address does not match)
|
||||
|
||||
Instruction (storing value on zero page) + some parts - trivial, not copyrightable.
|
||||
@@ -0,0 +1,4 @@
|
||||
$02 + CLC + RTS + JSR (address does not match)
|
||||
|
||||
Subroutine ending by setting 'carry' flag (standard way to indicate failure) placed
|
||||
just before another one, starting with a jump (to a different address) - not creative, not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
$03 + JMP (address matches only partially)
|
||||
|
||||
Not even a full instruction - not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
$03 + JMP (address match only partially)
|
||||
|
||||
Not even a full instruction - not copyrightable
|
||||
@@ -0,0 +1,7 @@
|
||||
$DC0D + PLA + TAY + PLA + TAX + PLA + RTI
|
||||
|
||||
Some access to a docummented hardware register (but details differ) + return from the interrupt in a standard 6502 way - see for example here:
|
||||
|
||||
http://6502.org/tutorials/register_preservation.html
|
||||
|
||||
Not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
CLC + RTS + LDA $DD00
|
||||
|
||||
End of a routine setting carry flag as a result (probably to indicate error) followed by another, which starts by reading a documented hardware register. Not creative (especially that routine location is determineed by algorithm in our case) - not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
AND #$0F + BEQ (offset match)
|
||||
|
||||
Check whether the lowest nibble of a byte is zero or not - trivial, not copyrightable.
|
||||
@@ -0,0 +1,5 @@
|
||||
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.
|
||||
@@ -0,0 +1,3 @@
|
||||
$30 + JSR $FFD2 + PLA
|
||||
|
||||
A byte, call to a documented routine (CHROUT), restoring the register value - trivial, not copyyrightable.
|
||||
@@ -0,0 +1,6 @@
|
||||
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.
|
||||
@@ -0,0 +1,3 @@
|
||||
RTS (end of previous routine) + LDY #$00 + LDX (value does not match)
|
||||
|
||||
Routine starts by loading 0 to Y and something (here values differ) to X - trivial, not copyrightable.
|
||||
@@ -0,0 +1,7 @@
|
||||
RTS + LDA $DD00 + 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.
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
ADC #$00 + STA $2E ($2D-$2E is VARTAB, end of BASIC code)
|
||||
|
||||
Part of code incrementing a documented 16-bit value - trivial, not copyrightable.
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
$70 + RTS + LDA (zeropage address, but does not match)
|
||||
|
||||
One instruction (and just a one-byte instruction) + some parts - not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
STA $D4 + LDA #$22
|
||||
|
||||
Storing value to a well-known zeropage variable + loading another to the accumulator - not crative, not copyrightable.
|
||||
@@ -0,0 +1,5 @@
|
||||
STA $DD00 + RTS + LDA $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.
|
||||
@@ -0,0 +1,5 @@
|
||||
STA $DD00 + RTS + LDA $DD00 + AND (value 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.
|
||||
@@ -0,0 +1,5 @@
|
||||
STA $0285 (TIMOUT variable) + RTS
|
||||
|
||||
SETTMO routine. There really is just one sane way to implement
|
||||
a subroutine storing accumulator in a fixed memory location.
|
||||
Not creative - not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
$A8 + LDA $0200
|
||||
|
||||
Instruction (accessing BASIC instruction buffer) + some part. Trivial, not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
LDA #$00 + RTS + JSR (address does not match)
|
||||
|
||||
End of a rutine which returns 0 in accumulator, another one starts with a jump (but to a different address) - trivial, not copyrightable.
|
||||
@@ -0,0 +1,7 @@
|
||||
LDA $DD00 + AND (value 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. Also - instruction and a half is trivial - not copyrightable.
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
LDA $DD00 + AND #$F7 + 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.
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
LDA $DD00 + AND #$F7 + 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.
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
CBM80 PETSCII string
|
||||
|
||||
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:
|
||||
|
||||
http://mirror.thelifeofkenneth.com/sites/remotecpu.com/Commodore/Reference%20Material/Manuals/Hardware%20Manuals/Datel%20Eprommer64%20Instruction%20Manual.pdf
|
||||
|
||||
Indeed, the C64 Programmer's Reference Guide describes it on p263.
|
||||
|
||||
Since Commodore instructed cartridge developers to include the string
|
||||
in cartridges, it cannot be held to be a violation of copyrights,
|
||||
even if it were able to be copyrighted, which we do not accept on grounds
|
||||
including that it is a list of facts (published by Commodore themselves)
|
||||
@@ -0,0 +1,4 @@
|
||||
INY + LDA ($7A),Y
|
||||
|
||||
Part of the loop reading BASIC statement, loops reading data block pointed by vector
|
||||
always look like this on 6502, as LDA (...),X does not exists on this CPU. Trivial - not copyrightable.
|
||||
@@ -0,0 +1,3 @@
|
||||
CMP #$22 + BNE (offset matches)
|
||||
|
||||
Comparing register to value, would be a single instruction on other architectures. Trivial - not copyrightable.
|
||||
@@ -0,0 +1,7 @@
|
||||
$DF + STA $DD00 + RTS + LDA $DD00 + 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.
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
$E6 + CMP #$0D + BNE (offset does not match)
|
||||
|
||||
Instruction + some parts. Not copyyrightable.
|
||||
@@ -0,0 +1,5 @@
|
||||
$EF + 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.
|
||||
@@ -0,0 +1,6 @@
|
||||
$EF + 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.
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
$F6 + LDA $BA + JSR (address does not match)
|
||||
|
||||
One instruction (reading a well-known zeropage value) + some parts. Not copyrightable.
|
||||
@@ -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.
|
||||
Reference in new issue
Block a user