screen handling fixes, remaining glitches on 'Duotris' menu screen are gone
This commit is contained in:
1 parent
e24a6f344d
commit
4c04cebde6
8 files changed
+11
-65
No files matched your search
@@ -82,7 +82,6 @@ not_end_of_input:
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
read_from_keyboard:
|
read_from_keyboard:
|
||||||
|
|
||||||
jsr cursor_enable
|
jsr cursor_enable
|
||||||
@@ -92,7 +91,7 @@ read_from_keyboard:
|
|||||||
beq chrin_repeat
|
beq chrin_repeat
|
||||||
|
|
||||||
lda KEYD
|
lda KEYD
|
||||||
cmp #$0d
|
cmp #$0D
|
||||||
bne not_enter
|
bne not_enter
|
||||||
|
|
||||||
jsr cursor_disable
|
jsr cursor_disable
|
||||||
@@ -145,8 +144,10 @@ empty_line:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
not_enter:
|
not_enter:
|
||||||
|
|
||||||
// Print character
|
// Print character
|
||||||
lda KEYD
|
lda KEYD
|
||||||
|
// XXX add support for SHIFT + RUN/STOP ($84) and function keys (should be configurable)
|
||||||
jsr CHROUT
|
jsr CHROUT
|
||||||
|
|
||||||
jsr pop_keyboard_buffer
|
jsr pop_keyboard_buffer
|
||||||
|
|||||||
@@ -68,7 +68,8 @@ cint_brk: // entry for BRK and STOP+RESTORE - XXX, where should it start?
|
|||||||
jsr setup_vicii
|
jsr setup_vicii
|
||||||
|
|
||||||
// Initialise cursor blink flags (Compute's Mapping the 64 p215)
|
// Initialise cursor blink flags (Compute's Mapping the 64 p215)
|
||||||
lda #$00
|
lda #$01
|
||||||
|
sta BLNCT
|
||||||
sta BLNSW
|
sta BLNSW
|
||||||
|
|
||||||
// Set keyboard decode vector (Compute's Mapping the 64 p215)
|
// Set keyboard decode vector (Compute's Mapping the 64 p215)
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
|
|
||||||
chrout_screen:
|
chrout_screen:
|
||||||
|
|
||||||
sei // XXX why do we need to disable interrupts?
|
|
||||||
|
|
||||||
jsr cursor_hide_if_visible
|
jsr cursor_hide_if_visible
|
||||||
|
|
||||||
lda SCHAR
|
lda SCHAR
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
|
|
||||||
chrout_screen_advance_to_next_line:
|
chrout_screen_advance_to_next_line:
|
||||||
|
|
||||||
// jsr cursor_hide_if_visible
|
|
||||||
|
|
||||||
// Go to start of line
|
// Go to start of line
|
||||||
lda #0
|
lda #0
|
||||||
sta PNTR
|
sta PNTR
|
||||||
|
|||||||
@@ -158,11 +158,8 @@ chrout_try_HOME:
|
|||||||
cmp #$13
|
cmp #$13
|
||||||
bne !+
|
bne !+
|
||||||
|
|
||||||
// XXX try cursor_home instead
|
jsr cursor_home
|
||||||
lda #$00
|
jmp chrout_screen_done
|
||||||
sta PNTR
|
|
||||||
sta TBLX
|
|
||||||
jmp chrout_screen_calc_lptr_done
|
|
||||||
!:
|
!:
|
||||||
chrout_try_CLR:
|
chrout_try_CLR:
|
||||||
|
|
||||||
@@ -179,21 +176,7 @@ chrout_try_INS:
|
|||||||
|
|
||||||
jmp chrout_screen_ins
|
jmp chrout_screen_ins
|
||||||
!:
|
!:
|
||||||
chrout_try_RUN_STOP:
|
chrout_screen_control_done:
|
||||||
|
|
||||||
cmp #$03
|
|
||||||
bne !+
|
|
||||||
|
|
||||||
// XXX
|
|
||||||
|
|
||||||
jmp chrout_screen_done
|
|
||||||
!:
|
|
||||||
chrout_try_FKEY:
|
|
||||||
|
|
||||||
// XXX
|
|
||||||
|
|
||||||
// FALLTROUGH
|
|
||||||
|
|
||||||
!: // unknown, LF, or no more actions required
|
|
||||||
|
|
||||||
|
// unknown code or key does not needs
|
||||||
jmp chrout_screen_done
|
jmp chrout_screen_done
|
||||||
@@ -28,7 +28,7 @@ cursor_blink:
|
|||||||
// FALLTROUGH
|
// FALLTROUGH
|
||||||
|
|
||||||
cursor_draw:
|
cursor_draw:
|
||||||
jsr screen_calculate_line_pointer // XXX make sure this is not needed and remove the call
|
jsr screen_calculate_line_pointer // XXX try to make this call not needed
|
||||||
|
|
||||||
ldy PNTR
|
ldy PNTR
|
||||||
lda (PNT),y
|
lda (PNT),y
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ cursor_home:
|
|||||||
sta PNTR // x position
|
sta PNTR // x position
|
||||||
sta TBLX // y position
|
sta TBLX // y position
|
||||||
|
|
||||||
jmp screen_set_pointer_to_current_line
|
jmp screen_calculate_line_pointer
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
// Put the address of the screen current line
|
|
||||||
// into the pointer at $D1 (PNT).
|
|
||||||
// It must take into account the screen line link table
|
|
||||||
// (Compute's Mapping the 64 p216)
|
|
||||||
|
|
||||||
screen_set_pointer_to_current_line:
|
|
||||||
// Get pointer to start of the screen
|
|
||||||
lda HIBASE
|
|
||||||
sta PNT+1
|
|
||||||
lda #$00
|
|
||||||
sta PNT+0
|
|
||||||
|
|
||||||
// Now advance for the number of lines
|
|
||||||
ldx TBLX
|
|
||||||
|
|
||||||
sptcl_l2:
|
|
||||||
// XXX - Should we read the columns per line from
|
|
||||||
// somewhere?
|
|
||||||
ldy #<40
|
|
||||||
// Double line length if line is linked
|
|
||||||
lda LDTBL,x
|
|
||||||
bpl sptcl_l1
|
|
||||||
ldy #<80
|
|
||||||
sptcl_l1:
|
|
||||||
tya
|
|
||||||
clc
|
|
||||||
adc PNT+0
|
|
||||||
lda PNT+1
|
|
||||||
adc #>40
|
|
||||||
sta PNT+1
|
|
||||||
|
|
||||||
dex
|
|
||||||
bpl sptcl_l2
|
|
||||||
|
|
||||||
rts
|
|
||||||
Reference in new issue
Block a user