document many more cooincidental similarities with C64 ROMs
This commit is contained in:
1 parent
1bcdf6b738
commit
61b69ddf3d
46 files changed
+224
No files matched your search
@@ -0,0 +1,3 @@
|
|||||||
|
$05 byte after some leading $00s
|
||||||
|
|
||||||
|
Not creative. Not copyrightable.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
A single $08 byte in a field of $00's
|
||||||
|
|
||||||
|
Nothing creative or copyrightable here.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
fragments of instructions. Not copyrightable.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Do something with $DD00 and compare it with some value.
|
||||||
|
|
||||||
|
$DD00 is one of the CIA ports, so checking the value of inputs
|
||||||
|
on this port is something rather expected and common.
|
||||||
|
Also, this sequence doesn't even contain a whole instruction.
|
||||||
|
Not copyrightable.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Set a bit in $DD00
|
||||||
|
|
||||||
|
See other notes on bit manipulations of $DD00.
|
||||||
|
Manipulating bits in a bit is not creative or copyrightable.
|
||||||
|
Also, $DD00 is an IO register, which is expected to suffer
|
||||||
|
such bit manipulations.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Do something with $DD00, return from subroutine. Do something else with $DD00
|
||||||
|
|
||||||
|
$DD00 is an IO register of a CIA in the C64 associated with the disk drive port.
|
||||||
|
Thus having routines that do things with it is expected and necessary.
|
||||||
|
The sequence here has nothing creative nor is it in our view copyrightable.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Do something with $DD00, then read something from memory. Only instruction fragments.
|
||||||
|
|
||||||
|
No whole instructions here.
|
||||||
|
$DD00 is a CIA IO register on the C64, so doing things with it is rather necessary.
|
||||||
|
Loading from memory is also intrinsic to operation of a processor.
|
||||||
|
Nothing creative. Nothing copyrightable.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Fragment, RTS, Disable interrupts. Fragment of end and start of routines.
|
||||||
|
|
||||||
|
Neither returning from a subroutine nor disabling interrupts is
|
||||||
|
notable or copyrightable. One in 256 routines would be expected
|
||||||
|
to result in this sequence by pure chance.
|
||||||
|
Nothing creative or copyrightable.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Fragment of JMP instruction.
|
||||||
|
|
||||||
|
Only fragments of instructions. Not creative nor copyrightable.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Fragment + CLC + ADC fragment.
|
||||||
|
|
||||||
|
Fragment of an addition pattern.
|
||||||
|
Nothing creative nor copyrightable.
|
||||||
|
Also only one whole instruction.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
fragment + SEI + JSR fragment
|
||||||
|
|
||||||
|
Only a single whole instruction.
|
||||||
|
Not copyrightable.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
SEI surrounded by instruction fragments.
|
||||||
|
|
||||||
|
Single whole insstruction.
|
||||||
|
Not creative. Not copyrightable.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
Or A register with $08 and store result somewhere.
|
||||||
|
|
||||||
|
Simple bit manipulation and memory access.
|
||||||
|
Not creative or copyrightable.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
set a bit in $DD00, Return from subroutine, read $DD00
|
||||||
|
|
||||||
|
$DD00 is a key IO register for the IEC serial port.
|
||||||
|
Thus it is no surprise to find routines that manipulate $DD00,
|
||||||
|
and indeed for them to appear one after the other.
|
||||||
|
Nothing creative. Not copyrightable.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
Set a bit in $DD00.
|
||||||
|
|
||||||
|
Again, $DD00 is a register that is used for the IEC serial interface.
|
||||||
|
Clearing and setting bits in it is required to implement the protocol.
|
||||||
|
Also, clearing and setting bits in a memory location is not creative
|
||||||
|
or copyrightable.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Fragment + store $00 somewhere into ZP.
|
||||||
|
|
||||||
|
Writing to a memory location with a specific value
|
||||||
|
is neither creative nor copyrightable.
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
Tail end of standard CIA-triggered interrupt, followed by start of another routine
|
||||||
|
|
||||||
|
LDA $DC0D is the standard way to clear interrupt status on the 6526 CIA.
|
||||||
|
Then we have the standard return from interrupt sequence for a 6502
|
||||||
|
(see the wikipedia page on 6502 interrupts, for example), followed by
|
||||||
|
loading A with $00 at the start of a following routine -- which is a not
|
||||||
|
uncommon way for routines to start.
|
||||||
|
|
||||||
|
In short, nothing creative nor copyrightable.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
CLC RTS + instruction fragment.
|
||||||
|
|
||||||
|
i.e., return success from a routine, and then whatever follows.
|
||||||
|
Better than 1 in 256 routines can be expected to exhibit this
|
||||||
|
sequence simply through chance.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
Return from routine with success, Store $00 somewhere in ZP.
|
||||||
|
|
||||||
|
End of routine fragment followed by the start of a routine that
|
||||||
|
stores 0 somewhere. Not creative. Not copyrightable.
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
CLC / RTS / JSR $xxxx
|
||||||
|
|
||||||
|
CLC / RTS the obvious and simplest way to clear the carry flag
|
||||||
|
when returing from a routine. Many of the routines in the C64 KERNAL
|
||||||
|
public API indicate that they use the carry flag to indicate success
|
||||||
|
or failure, hence how often it shows up in the C64 KERNAL itself.
|
||||||
|
That a JSR instruction happens to be the first instruction in whatever
|
||||||
|
follows actually highly likely through chance, since several percent
|
||||||
|
of all instructions in a typical 6502 program are JSR instructions.
|
||||||
|
|
||||||
|
Not copyrightable.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
JSR $FDA3 (SCAN KEYBOARD) , JSR somewhere else
|
||||||
|
|
||||||
|
$FDA3 is listed on p238 of Compute's Mapping the 64
|
||||||
|
and thus calling it is totally expected.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
Clear a bit in A and do something with it.
|
||||||
|
|
||||||
|
Only one whole instruction.
|
||||||
|
Not creative. Not copyrightable.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
clear a bit and store result some where.
|
||||||
|
|
||||||
|
Only one whole instruction.
|
||||||
|
Manipulating bits in bytes is bread and butter of CPUs.
|
||||||
|
Nothing creative nor copyrightable.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Conditionally JMP somewhere.
|
||||||
|
|
||||||
|
Would be single instruction on many architectures.
|
||||||
|
Not copyrightable. Not creative.
|
||||||
|
Only one whole instruction.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
SEC + RTS + fragment of next routine
|
||||||
|
|
||||||
|
C flag is used to report success or failure of routines.
|
||||||
|
This is an example of a routine fragment for returning failure.
|
||||||
|
Not creative nor copyrightable.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
SEC / SBC #$01 - subtract 1 from A.
|
||||||
|
|
||||||
|
Would be single instruction on many architectures.
|
||||||
|
Is simple and common register manipulation.
|
||||||
|
Nothing creative. Not copyrightable.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
The string "LOADIN", part of LOADING. Not copyrightable.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
"OR " string, being part of "ERROR "
|
||||||
|
|
||||||
|
Not copyrightable.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
The string "SEARCHING". Not copyrightable.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
Clear C, jump into BASIC ROM to start BASIC.
|
||||||
|
|
||||||
|
Simplest and most obvious way to achieve this action,
|
||||||
|
as required for a C64 to boot.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
RTS / SEI / JSR somewhere
|
||||||
|
|
||||||
|
End and start of routines fragment.
|
||||||
|
Nothing creative. Not copyrightable.
|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Return from sub-routine, clear a bit in $DD00
|
||||||
|
|
||||||
|
See other commentary on IO port $DD00 and the reasonableness
|
||||||
|
of seeing routines that manipulate bits in it.
|
||||||
|
Not creative. Not copyrightable.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
PLA / TAX / PLA / RTI
|
||||||
|
|
||||||
|
Pop A and X registers from the stack and return from interrupt.
|
||||||
|
Standard end of interrupt sequence on 6502.
|
||||||
|
See, for example, https://en.wikipedia.org/wiki/Interrupts_in_65xx_processors
|
||||||
|
Not copyrightable.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Load Y from ZP. Clear carry flag. Simple register manipulations.
|
||||||
|
|
||||||
|
Not creative. Not copyrightable.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Restore Y and X from stack, load A from somewhere.
|
||||||
|
|
||||||
|
Simple register manipulation. Not creative nor copyrightable.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
take a branch based on comparison of Y register and memory.
|
||||||
|
|
||||||
|
Changing program flow based on the result of a comparison is
|
||||||
|
a very common programming pattern
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
branch based on whether X register holds the number 4.
|
||||||
|
|
||||||
|
Loop fragment.
|
||||||
|
Nothing creative.
|
||||||
|
No copyrightable.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
End of loop fragment (branch backwards based on X, then return when done).
|
||||||
|
|
||||||
|
Not creative.
|
||||||
|
Not copyrightable.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
fragment of string printing loop (JSR $FFD2 / INX / CPX ... )
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
Read from $DC0D to clear CIA interrupts, surrounded by instruction fragments.
|
||||||
|
|
||||||
|
This is the method for clearing CIA interrupts.
|
||||||
|
Not creative or copyrightable.
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
clear a bit in $DD00
|
||||||
|
|
||||||
|
Yet another fragment of bit manipulation for the CIA register $DD00
|
||||||
|
that is used to communicate with the disk drive port.
|
||||||
|
Clearing specific bits in bytes is not creative nor copyrightable.
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
do something with $DD00, then RTS, then read $DD00
|
||||||
|
|
||||||
|
Again, $DD00 is a CIA IO register, and so there are a number
|
||||||
|
of routines that are required that simply check or modify the
|
||||||
|
contents of this register in order to implement the IEC serial
|
||||||
|
protocol. Thus it is totally unsurprising to find routines that
|
||||||
|
start by reading $DD00 and then processing it in some way.
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
instruction fragment followed by JSR to VIC-II register setup.
|
||||||
|
|
||||||
|
$E5A0 is documented in Compute's Mapping the 64 on p216 as
|
||||||
|
the correct location for this routine, so it is no surprise to
|
||||||
|
find a call there.
|
||||||
|
Not creative. Not copyrightable.
|
||||||
|
|
||||||
|
The leading $EA which is a NOP in the C64 KERNAL is a good example
|
||||||
|
of purely cooincidental matches, as in our ROM it is the high-byte
|
||||||
|
of an argument to the preceeding instruction.
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
List of key codes generated when certain key combinations are pressed
|
||||||
|
|
||||||
|
This sequence is a list of which ASCII/PETSCII code should be generated
|
||||||
|
when certain key combinations are pressed, based on the keyboard matrix
|
||||||
|
position. That is, it is a sequence in keyboard matrix order, of the
|
||||||
|
codes that should be generated. Thus it is a list of facts, which cannot
|
||||||
|
be copyright, according to the long standing precedent under US copyright law:
|
||||||
|
|
||||||
|
https://www.law.cornell.edu/copyright/cases/499_US_340.htm
|
||||||
|
|
||||||
|
Similar decisions exist in other jurisidctions.
|
||||||
|
|
||||||
|
Note also that the matrix order list of keys is a fact of the C64 hardware,
|
||||||
|
and which has been repeated in many publications, such as Compute's Mapping the 64,
|
||||||
|
without challenge from the C64 ROM copyright owners, which serves to reinforce the
|
||||||
|
claim that this sequence of bytes is not copyrightable.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
conditionally execute CLC + RTS, i.e., conditionally return success from a routine.
|
||||||
|
|
||||||
|
Nothing creative or copyrightable here.
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
fragment / BNE <skip following JMP instruction> / JMP somewhere
|
||||||
|
|
||||||
|
Conditionally jump somewhere. Would be a single instruction
|
||||||
|
on many architectures. Not copyrightable.
|
||||||
Reference in new issue
Block a user