more MEGA65 screen editor features

This commit is contained in:
FeralChild64 committed 2020-12-28 18:27:18 +01:00
1 parent beeb228cd4
commit 1913697cd3
4 files changed
+82 -33

No files matched your search

+1 -1
View File
@@ -56,7 +56,7 @@
!set KEY_TAB_SET_CLR = $18 ; XXX add to M65 matrix
!set KEY_UNDERLINE_ON = $02 ; XXX add to M65 matrix
!set KEY_UNDERLINE_OFF = $82 ; XXX add to M65 matrix
!set KEY_FLASHING_ON = $0F ; XXX add to M65 matrix
!set KEY_FLASHING_ON = $0F
!set KEY_FLASHING_OFF = $8F ; XXX add to M65 matrix
}
@@ -83,10 +83,6 @@ m65_chrout_screen_UNDERLINE_ON:
+nop
m65_chrout_screen_UNDERLINE_OFF:
+nop
m65_chrout_screen_FLASHING_ON:
+nop
m65_chrout_screen_FLASHING_OFF:
+nop
m65_chrout_screen_TAB_SET_CLR:
+nop
m65_chrout_screen_BELL:
@@ -10,6 +10,25 @@ m65_chrout_screen_ESC:
sta M65_ESCMODE
bra m65_chrout_screen_ctrl2_end
; Flashing support
m65_chrout_screen_FLASHING_ON:
lda COLOR
ora #%00010000
bra m65_chrout_screen_FLASHING_common
m65_chrout_screen_FLASHING_OFF: ; XXX how to trigger it?
lda COLOR
and #%11101111
; FALLTROUGH
m65_chrout_screen_FLASHING_common:
sta COLOR
bra m65_chrout_screen_ctrl2_end
; 'REVERSE' mode support
@@ -149,8 +168,6 @@ m65_chrout_screen_INS_winmode:
bra m65_chrout_screen_ctrl2_end
m65_chrout_screen_INS_copy:
dez
@@ -40,7 +40,20 @@ m65_chrout_screen_escmode:
tax
jmp (m65_chrout_screen_jumptable_escape, x)
m65_chrout_esc_J: ; move cursor to the beginning of the line
m65_chrout_esc_LBR: ; set monochrome display
lda #$80
+skip_2_bytes_trash_nvz
; FALLTROUGH
m65_chrout_esc_RBR: ; set color display
lda #$00
jsr m65_colorset
bra m65_chrout_esc_done_1
m65_chrout_esc_J: ; move cursor to the beginning of the line XXX update for window mode
lda #$00
sta M65__TXTCOL
@@ -80,6 +93,36 @@ m65_chrout_esc_done_1:
jmp m65_chrout_screen_done
m65_chrout_esc_P: ; erase everything from start of the line to cursor XXX update for window mode
phz
ldz #$FF
lda #$20
@1:
inz
sta [M65_LPNT_SCR], z
cpz M65__TXTCOL
bne @1
plz
bra m65_chrout_esc_done_1
m65_chrout_esc_Q: ; erase everything from cursor till the end of line XXX update for window mode
phz
ldx M65_SCRMODE
lda m65_scrtab_txtwidth,x
taz
lda #$20
@1:
dez
sta [M65_LPNT_SCR], z
cpz M65__TXTCOL
bne @1
plz
bra m65_chrout_esc_done_1
m65_chrout_esc_X: ; cycle through available screen modes
lda M65_SCRMODE
@@ -137,47 +180,40 @@ m65_chrout_esc_R: ; 'reversed' screen colors
; XXX: implement screen routines below:
m65_chrout_esc_AT:
m65_chrout_esc_AT: ; clears everything from cursor till end of the screen
+nop
m65_chrout_esc_A:
m65_chrout_esc_A: ; enable auto-insert mode
+nop
m65_chrout_esc_B:
m65_chrout_esc_B: ; set bottom-right window position
+nop
m65_chrout_esc_C:
m65_chrout_esc_C: ; disable auto-insert mode
+nop
m65_chrout_esc_D:
m65_chrout_esc_D: ; delete current line, move content up
+nop
m65_chrout_esc_E:
m65_chrout_esc_E: ; disable cursor flashing
+nop
m65_chrout_esc_F:
m65_chrout_esc_F: ; enable cursor flashing
+nop
m65_chrout_esc_G:
m65_chrout_esc_G: ; enable bell
+nop
m65_chrout_esc_H:
m65_chrout_esc_H: ; disable bell
+nop
m65_chrout_esc_I:
m65_chrout_esc_I: ; insert empty line, move content down
+nop
m65_chrout_esc_L:
m65_chrout_esc_L: ; enable screen scrolling
+nop
m65_chrout_esc_M:
m65_chrout_esc_M: ; disable screen scrolling, wrap-around mode
+nop
m65_chrout_esc_P:
m65_chrout_esc_T: ; set top-left window position
+nop
m65_chrout_esc_Q:
m65_chrout_esc_V: ; scroll screen up one line
+nop
m65_chrout_esc_T:
m65_chrout_esc_W: ; scroll screen down one line
+nop
m65_chrout_esc_V:
m65_chrout_esc_Y: ; set default TAB stops
+nop
m65_chrout_esc_W:
+nop
m65_chrout_esc_Y:
+nop
m65_chrout_esc_Z:
+nop
m65_chrout_esc_LBR:
+nop
m65_chrout_esc_RBR:
m65_chrout_esc_Z: ; clear all the TAB stops
+nop
jmp m65_chrout_screen_done