more control codes for MEGA65 screen editor

This commit is contained in:
FeralChild64 committed 2020-08-23 12:17:32 +02:00
1 parent ece9dc8f6f
commit 9a154b3710
7 files changed
+108 -23

No files matched your search

+4 -2
View File
@@ -11,11 +11,13 @@
chrout_screen_RVS_ON:
lda #$80
bne !+ // branch always
skip_2_bytes_trash_nvz
// FALLTROUGH
chrout_screen_RVS_OFF:
lda #$00
!:
sta RVS
jmp chrout_screen_done
@@ -84,6 +84,11 @@ m65_chrout_screen_literal: // entry point for m65_chrout_screen_quote
// Store the new character in screen memory, restore .Z
txa
bit RVS
bpl !+
ora #$80 // reverse the character XXX consider doing this within chrout_to_screen_code
!:
sta_lp (M65_LPNT_SCR),z
plz
@@ -91,8 +96,16 @@ m65_chrout_screen_literal: // entry point for m65_chrout_screen_quote
inc M65__TXTCOL
// FALLTROUGH
m65_chrout_fix_column_row:
// XXX continue the implementation - fix the cursor position
nop
// FALLTROUGH
m65_chrout_screen_done:
// XXX reenable cursor
@@ -73,6 +73,81 @@ m65_chrout_try_color_loop:
// XXX: consider moving to separate files
m65_chrout_screen_RETURN:
// RETURN clears quote and insert modes, it also clears reverse flag
lda #$00
sta QTSW
sta INSRT
sta RVS
// XXX should we clear special colour attributes too?
// Move cursor to the beginning of the next line
sta M65__TXTCOL
inc M65__TXTROW
// Correct the column/row values
jmp m65_chrout_fix_column_row
m65_chrout_screen_RVS_ON:
lda #$80
skip_2_bytes_trash_nvz
// FALLTROUGH
m65_chrout_screen_RVS_OFF:
lda #$00
sta RVS
jmp m65_chrout_screen_done
m65_chrout_screen_CRSR_RIGHT:
inc M65__TXTCOL
skip_2_bytes_trash_nvz
// FALLTROUGH
m65_chrout_screen_CRSR_LEFT:
dec M65__TXTCOL
skip_2_bytes_trash_nvz
// FALLTROUGH
m65_chrout_screen_CRSR_DOWN:
inc M65__TXTROW
skip_2_bytes_trash_nvz
// FALLTROUGH
m65_chrout_screen_CRSR_UP:
dec M65__TXTROW
// Correct the column/row values
jmp m65_chrout_fix_column_row
// XXX: implement screen routines below:
m65_chrout_screen_quote:
@@ -89,18 +164,6 @@ m65_chrout_screen_TXT:
nop
m65_chrout_screen_GFX:
nop
m65_chrout_screen_RVS_OFF:
nop
m65_chrout_screen_RVS_ON:
nop
m65_chrout_screen_CRSR_RIGHT:
nop
m65_chrout_screen_CRSR_LEFT:
nop
m65_chrout_screen_CRSR_DOWN:
nop
m65_chrout_screen_CRSR_UP:
nop
m65_chrout_screen_INS:
nop
m65_chrout_screen_TAB:
@@ -125,5 +188,5 @@ m65_chrout_screen_STOP:
nop
m65_chrout_screen_DEL:
nop
m65_chrout_screen_RETURN:
jmp m65_chrout_screen_done