fix for EAL corruption
This commit is contained in:
1 parent
0e28f89806
commit
54fd24d704
10 files changed
+26
-1
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -36,7 +36,13 @@ count_rows_loop:
|
||||
cpx #0
|
||||
beq no_copy_down
|
||||
bmi no_copy_down
|
||||
|
||||
|
||||
// Preserve EAL
|
||||
lda EAL+0
|
||||
pha
|
||||
lda EAL+1
|
||||
pha
|
||||
|
||||
// Set pointers to end of screen line, and one line
|
||||
// above. (It is always one physical line, because
|
||||
// this can only happen when expanding a line from 40 to
|
||||
@@ -105,6 +111,12 @@ cl_inner:
|
||||
dex
|
||||
bne copy_line_down_loop
|
||||
|
||||
// Restore EAL
|
||||
pla
|
||||
sta EAL+1
|
||||
pla
|
||||
sta EAL+0
|
||||
|
||||
no_copy_down:
|
||||
jsr screen_calculate_line_pointer
|
||||
|
||||
|
||||
@@ -28,6 +28,13 @@ is_last_line:
|
||||
// FALLTHROUGH
|
||||
|
||||
scroll_screen_up:
|
||||
|
||||
// Preserve EAL
|
||||
lda EAL+0
|
||||
pha
|
||||
lda EAL+1
|
||||
pha
|
||||
|
||||
// Now scroll the whole screen up either one or two lines
|
||||
// based on whether the first screen line is linked or not.
|
||||
|
||||
@@ -88,6 +95,12 @@ scroll_copy_loop2:
|
||||
dex
|
||||
bne scroll_copy_loop2
|
||||
|
||||
// Restore EAL
|
||||
pla
|
||||
sta EAL+1
|
||||
pla
|
||||
sta EAL+0
|
||||
|
||||
// Fill in scrolled up area
|
||||
ldx SAL+0
|
||||
scroll_copy_loop3:
|
||||
|
||||
Reference in new issue
Block a user