more work on reducing residual similarity with C64 KERNAL

This commit is contained in:
Paul Gardner-Stephen committed 2019-04-24 15:31:36 +09:30
1 parent 18b862cce5
commit ddbb673682
11 files changed
+55 -13

No files matched your search

+14 -13
View File
@@ -418,10 +418,10 @@ count_rows_loop:
copy_line_down_loop:
ldy #39
cl_inner:
lda (load_or_scroll_temp_pointer),y
sta (current_screen_line_ptr),y
lda (load_save_verify_end_address),y
sta (current_screen_line_colour_ptr),y
lda (load_or_scroll_temp_pointer),y
sta (current_screen_line_ptr),y
dey
bpl cl_inner
@@ -429,13 +429,14 @@ cl_inner:
;; Low bytes are in common pairs
;; Old source is new destination
lda load_or_scroll_temp_pointer+0
sta current_screen_line_ptr+0
sta current_screen_line_colour_ptr+0
lda load_or_scroll_temp_pointer+1
sta current_screen_line_ptr+1
;; Use different registers to minimise byte similarity with C64 KERNAl
ldy load_or_scroll_temp_pointer+1
sty current_screen_line_ptr+1
lda load_save_verify_end_address+1
ldy load_or_scroll_temp_pointer+0
sta current_screen_line_colour_ptr+1
sty current_screen_line_ptr+0
sty current_screen_line_colour_ptr+0
;; Decrementing source pointers
lda load_or_scroll_temp_pointer+0
@@ -462,10 +463,10 @@ no_copy_down:
;; Erase newly inserted line
ldy #79
*
lda #$20
sta (current_screen_line_ptr),y
lda text_colour
sta (current_screen_line_colour_ptr),y
lda #$20
sta (current_screen_line_ptr),y
dey
cpy #40
bne -
@@ -530,10 +531,10 @@ scroll_screen_up:
ldy #$00
ldx #3
scroll_copy_loop:
lda (load_or_scroll_temp_pointer),y
sta (current_screen_line_ptr),y
lda (load_save_verify_end_address),y
sta (current_screen_line_colour_ptr),y
lda (load_or_scroll_temp_pointer),y
sta (current_screen_line_ptr),y
iny
bne scroll_copy_loop
@@ -554,10 +555,10 @@ scroll_copy_loop:
sbc load_or_scroll_temp_pointer+0
tax
scroll_copy_loop2:
lda (load_or_scroll_temp_pointer),y
sta (current_screen_line_ptr),y
lda (load_save_verify_end_address),y
sta (current_screen_line_colour_ptr),y
lda (load_or_scroll_temp_pointer),y
sta (current_screen_line_ptr),y
iny
dex
bne scroll_copy_loop2
+1
View File
@@ -132,6 +132,7 @@ int main(int argc,char **argv)
if (f1[i]==0x85) break;
if (f1[i]==0xa2) break; // LDX #$xx
if (f1[i]==0xa9) break; // LDA #$xx
if (f1[i]==0xa5) break; // LDA $xx
if (f1[i]==0xa0) break; // LDY #$xx
if (f1[i]==0x69) break;
if (f1[i]==0xc9) break;
+3
View File
@@ -0,0 +1,3 @@
Fragment + STA $028D
Only one whole instruction here. Nothing creative or copyrightable.
+5
View File
@@ -0,0 +1,5 @@
ORA $028D / STA $028D
This sequence of ORA + STA on a location is the simplest way to
perform a logical OR of the contents of the A register and a memory
location. Nothing creative or copyrightable.
+6
View File
@@ -0,0 +1,6 @@
Most likely LDA $0288 / STA $D2 - Set upper half of screen RAM address
$0288 is publicly documented as the location where screen RAM lives.
$D1/$D2 is the current pointer to screen memory. This is the simplest
way to set this. Also, copying one memory location to another is not
copyrightable.
+4
View File
@@ -0,0 +1,4 @@
STA $D1 / LDA $F3 / STA $D2 - manipulate screen pointers
$D1 = screen RAM pointer
$F3 = colour RAM pointer
+5
View File
@@ -0,0 +1,5 @@
$00 -> $028D
Simplest way to achieve this effect. Zeroing the contents
of a memory location is not copyrightable.
+5
View File
@@ -0,0 +1,5 @@
$nn -> $nnnn
Byte sequence is whole or part of instruction sequence
to store a specific value in a specific memory location.
Nothing creative or copyrightable.
+5
View File
@@ -0,0 +1,5 @@
LDA #$20 / STA ($D1),Y - Write a space onto screen memory
No simpler sequence for this. There are many functional requirements
that require writing space characters to the screen. Not copyrightable.
No creativity.
+4
View File
@@ -0,0 +1,4 @@
LDA $D018 / EOR #$02 / STA $D018
This is the shortest simplest sequence to toggle bit 1 in
$D018. No creativitity. Not copyrightable.
+3
View File
@@ -0,0 +1,3 @@
LDA $0286 / STA $F3
Copying a byte from one memory location to another is not copyrightable.