and more...

This commit is contained in:
Paul Gardner-Stephen committed 2019-04-24 15:53:32 +09:30
1 parent ca61d576de
commit 035b386f6c
8 files changed
+81

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
Something, RTS, LDA #$xx
Here is only one whole instruction, and RTS. Not copyrightable.
+4
View File
@@ -0,0 +1,4 @@
Fragment / STA $028D / JMP $xxxx
Only one whole instruction. Not copyrightable.
+5
View File
@@ -0,0 +1,5 @@
LDA $DC0D / LDA $xxxx
LDA $DC0D clears pending interrupts on CIA1.
Only one whole instruction.
Not copyrightable.
+5
View File
@@ -0,0 +1,5 @@
LDA ($AC),Y / STA ($D1),Y
Copy a byte from one pointer to another.
Nothing creative here.
Not copyrightable.
+3
View File
@@ -0,0 +1,3 @@
LDA ($AE),Y / STA ($F3),Y
Copy byte from one pointer to another. Nothing copyrightable here.
@@ -0,0 +1,41 @@
Copy screen + colour RAM to the left one place
This sequence of instructions:
loop:
INY
LDA ($D1),Y
DEY
STA ($D1),Y
INY
LDA ($F3),Y
DEY
STA ($F3),Y
INY
CPY $D5
BNE loop
is the obvious any minimal way to copy the screen and colour RAM data.
The constants $D1 and $F3 are fixed by the publicly documented interface
of the KERNAL to point to the screen and colour RAM of the screen.
The Y register is the only register that can be used to post-increment an
indirect address on the 6502.
Thus the only efficient manner to copy a string to the left one byte
is to read, decrement Y by one to get the destination address, store,
then increment Y again so that it points to the source offset, now read
the colour RAM byte, add one to Y so that we point to the destination,
and then write it.
Similarly the check against $D5 (current length of line) is also
necessary for working out when to terminate the loop.
In fact, about the only variant possible would be to swap the $D1 and $F3
constants so that the colour RAM is copied before the screen RAM in each
loop, instead of after it.
It is telling that this routine was the result of independent implementation
of this routine, without looking at the KERNALs routine, in terms of supporting
the argument that the routine is the obvious manner in which to do this.
+4
View File
@@ -0,0 +1,4 @@
Branch over LDA #$80 and some more
Branching is extremely common, as is loading the accumulator
with any specific value. Nothing creative or copyrightable here.
+16
View File
@@ -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.