more work on logical line growth

This commit is contained in:
FeralChild64 committed 2019-12-16 20:57:12 +01:00
1 parent 291b250890
commit 0d46e6a390
1 file changed
+21 -4
+21 -4
View File
@@ -1,10 +1,24 @@
screen_grow_logical_line_done:
rts
screen_grow_logical_line:
// Do not grow line if it is already grown
ldy TBLX
// Don't grow line if it is already grown
lda LDTBL,y
bmi_far not_last_line // done grow line
bmi screen_grow_logical_line_done
// Do not grow line if previous grown
dey
bmi !+
lda LDTBL,y
bmi screen_grow_logical_line_done
!:
iny
// Mark current line as grown
lda #$80
sta LDTBL,y
@@ -13,8 +27,8 @@ screen_grow_logical_line:
// Then we need to scroll the screen up
jsr screen_scroll_up_if_on_last_line
// Count the number of logical lines to scroll down
ldx #$00
// Count the number of physical lines to scroll down
ldx #$01
ldy TBLX
!:
iny
@@ -44,6 +58,9 @@ screen_grow_logical_line:
lda EAL+1
pha
// XXX prevent cursor from interfering
// XXX fix TBLX value
// 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