screen editor is now easier to extend
This commit is contained in:
1 parent
c3383b9e8f
commit
ec98861613
17 files changed
+280
-174
No files matched your search
@@ -169,23 +169,13 @@ Allows to assign command to any function key, `RUN` key and `HELP` key (if selec
|
||||
|
||||
Needs 25 bytes more space in KERNAL segment for the code. In addition, each configured key takes 3 bytes + length of the command.
|
||||
|
||||
## Eye candy
|
||||
## Screen editor
|
||||
|
||||
### `CONFIG_COLORS_BRAND`
|
||||
### `CONFIG_EDIT_STOPQUOTE`
|
||||
|
||||
Tries to adjust the color scheme to the selected brand. Some brands might not support this.
|
||||
If enabled, STOP key terminates insert/quote mode (like on BlackBox cartridge).
|
||||
|
||||
### `CONFIG_BANNER_SIMPLE`, `CONFIG_BANNER_FANCY`, `CONFIG_BANNER_BRAND`
|
||||
|
||||
Select startup banner - either a simple one, or with some colorful elements. `CONFIG_BANNER_BRAND` heavily depends on the selected brand, not all the brands support it.
|
||||
|
||||
Richer banners need more BASIC segment, varies between brands.
|
||||
|
||||
### `CONFIG_BANNER_PAL_NTSC`
|
||||
|
||||
If enabled, prints video system on startup banner. Eye candy only.
|
||||
|
||||
Feature needs some bytes in BASIC (depending on banner type) and about 25 bytes in KERNAL segment.
|
||||
Feature needs 10 bytes in KERNAL segment. If unsure - enable.
|
||||
|
||||
## Software features
|
||||
|
||||
@@ -207,6 +197,24 @@ On the most widespread CPUs the D flag is not cleared upon entering interrupts.
|
||||
|
||||
Feature needs 2 bytes in KERNAL segmment (for CPUs needing the patch), but at the same time allows optimizations allowing to gain some more bytes. If unsure - enable.
|
||||
|
||||
## Eye candy
|
||||
|
||||
### `CONFIG_COLORS_BRAND`
|
||||
|
||||
Tries to adjust the color scheme to the selected brand. Some brands might not support this.
|
||||
|
||||
### `CONFIG_BANNER_SIMPLE`, `CONFIG_BANNER_FANCY`, `CONFIG_BANNER_BRAND`
|
||||
|
||||
Select startup banner - either a simple one, or with some colorful elements. `CONFIG_BANNER_BRAND` heavily depends on the selected brand, not all the brands support it.
|
||||
|
||||
Richer banners need more BASIC segment, varies between brands.
|
||||
|
||||
### `CONFIG_BANNER_PAL_NTSC`
|
||||
|
||||
If enabled, prints video system on startup banner. Eye candy only.
|
||||
|
||||
Feature needs some bytes in BASIC (depending on banner type) and about 25 bytes in KERNAL segment.
|
||||
|
||||
## Debug options
|
||||
|
||||
Options in this section are for debug purposes only. If unsure - disable.
|
||||
|
||||
+12
-6
@@ -41,6 +41,7 @@
|
||||
// I/O devices
|
||||
|
||||
#define CONFIG_IEC // please keep enabled for now
|
||||
// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now
|
||||
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
|
||||
// #define CONFIG_TAPE_TURBO // please keep disabled for now
|
||||
// #define CONFIG_RS232_UP2400 // please keep disabled for now
|
||||
@@ -95,13 +96,9 @@
|
||||
.const CONFIG_KEYCMD_F14 = @""
|
||||
|
||||
|
||||
// Eye candy
|
||||
// Screen editor
|
||||
|
||||
#define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
#define CONFIG_BANNER_FANCY
|
||||
// #define CONFIG_BANNER_BRAND
|
||||
#define CONFIG_SHOW_PAL_NTSC
|
||||
#define CONFIG_EDIT_STOPQUOTE
|
||||
|
||||
|
||||
// Software features
|
||||
@@ -111,6 +108,15 @@
|
||||
#define CONFIG_BCD_SAFE_INTERRUPTS
|
||||
|
||||
|
||||
// Eye candy
|
||||
|
||||
#define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
#define CONFIG_BANNER_FANCY
|
||||
// #define CONFIG_BANNER_BRAND
|
||||
#define CONFIG_SHOW_PAL_NTSC
|
||||
|
||||
|
||||
// Debug options
|
||||
|
||||
// #define CONFIG_DBG_STUBS_BRK
|
||||
|
||||
+12
-6
@@ -43,6 +43,7 @@
|
||||
// I/O devices
|
||||
|
||||
#define CONFIG_IEC // please keep enabled for now
|
||||
// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now
|
||||
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
|
||||
// #define CONFIG_TAPE_TURBO // please keep disabled for now
|
||||
// #define CONFIG_RS232_UP2400 // please keep disabled for now
|
||||
@@ -97,13 +98,9 @@
|
||||
.const CONFIG_KEYCMD_F14 = @""
|
||||
|
||||
|
||||
// Eye candy
|
||||
// Screen editor
|
||||
|
||||
#define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
// #define CONFIG_BANNER_FANCY
|
||||
#define CONFIG_BANNER_BRAND
|
||||
// #define CONFIG_SHOW_PAL_NTSC
|
||||
#define CONFIG_EDIT_STOPQUOTE
|
||||
|
||||
|
||||
// Software features
|
||||
@@ -113,6 +110,15 @@
|
||||
#define CONFIG_BCD_SAFE_INTERRUPTS
|
||||
|
||||
|
||||
// Eye candy
|
||||
|
||||
#define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
// #define CONFIG_BANNER_FANCY
|
||||
#define CONFIG_BANNER_BRAND
|
||||
// #define CONFIG_SHOW_PAL_NTSC
|
||||
|
||||
|
||||
// Debug options
|
||||
|
||||
// #define CONFIG_DBG_STUBS_BRK
|
||||
|
||||
+12
-6
@@ -42,6 +42,7 @@
|
||||
// I/O devices
|
||||
|
||||
#define CONFIG_IEC // please keep enabled for now
|
||||
// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now
|
||||
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
|
||||
// #define CONFIG_TAPE_TURBO // please keep disabled for now
|
||||
// #define CONFIG_RS232_UP2400 // please keep disabled for now
|
||||
@@ -96,13 +97,9 @@
|
||||
.const CONFIG_KEYCMD_F14 = @""
|
||||
|
||||
|
||||
// Eye candy
|
||||
// Screen editor
|
||||
|
||||
// #define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
#define CONFIG_BANNER_FANCY
|
||||
// #define CONFIG_BANNER_BRAND
|
||||
// #define CONFIG_SHOW_PAL_NTSC
|
||||
#define CONFIG_EDIT_STOPQUOTE
|
||||
|
||||
|
||||
// Software features
|
||||
@@ -112,6 +109,15 @@
|
||||
#define CONFIG_BCD_SAFE_INTERRUPTS
|
||||
|
||||
|
||||
// Eye candy
|
||||
|
||||
// #define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
#define CONFIG_BANNER_FANCY
|
||||
// #define CONFIG_BANNER_BRAND
|
||||
// #define CONFIG_SHOW_PAL_NTSC
|
||||
|
||||
|
||||
// Debug options
|
||||
|
||||
// #define CONFIG_DBG_STUBS_BRK
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
// I/O devices
|
||||
|
||||
#define CONFIG_IEC // please keep enabled for now
|
||||
// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now
|
||||
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
|
||||
// #define CONFIG_TAPE_TURBO // please keep disabled for now
|
||||
// #define CONFIG_RS232_UP2400 // please keep disabled for now
|
||||
@@ -95,13 +96,9 @@
|
||||
.const CONFIG_KEYCMD_F14 = @""
|
||||
|
||||
|
||||
// Eye candy
|
||||
// Screen editor
|
||||
|
||||
#define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
#define CONFIG_BANNER_FANCY
|
||||
// #define CONFIG_BANNER_BRAND
|
||||
#define CONFIG_SHOW_PAL_NTSC
|
||||
#define CONFIG_EDIT_STOPQUOTE
|
||||
|
||||
|
||||
// Software features
|
||||
@@ -111,6 +108,15 @@
|
||||
#define CONFIG_BCD_SAFE_INTERRUPTS
|
||||
|
||||
|
||||
// Eye candy
|
||||
|
||||
#define CONFIG_COLORS_BRAND
|
||||
// #define CONFIG_BANNER_SIMPLE
|
||||
#define CONFIG_BANNER_FANCY
|
||||
// #define CONFIG_BANNER_BRAND
|
||||
#define CONFIG_SHOW_PAL_NTSC
|
||||
|
||||
|
||||
// Debug options
|
||||
|
||||
// #define CONFIG_DBG_STUBS_BRK
|
||||
|
||||
@@ -109,6 +109,10 @@
|
||||
|
||||
// Check that I/O configuration is correct
|
||||
{
|
||||
#if CONFIG_IEC_JIFFYDOS && !CONFIG_IEC
|
||||
.error "CONFIG_IEC_JIFFYDOS requires CONFIG_IEC"
|
||||
#endif
|
||||
|
||||
.var selected_rs232 = 0;
|
||||
|
||||
#if CONFIG_RS232_UP2400
|
||||
|
||||
@@ -154,8 +154,8 @@
|
||||
.label LDTBL = $D9 // $D9-$F2 screen line link table, [!] our usage is different XXX give more details
|
||||
.label USER = $F3 // $F3-$F4 pointer to current color RAM location
|
||||
.label KEYTAB = $F5 // $F5-$F6 pointer to keyboard lookup table
|
||||
.label RIBUF = $F7 // $F7-$F8 -- NOT IMPLEMENTED --
|
||||
.label ROBUF = $F9 // $F9-$FA -- NOT IMPLEMENTED --
|
||||
.label RIBUF = $F7 // $F7-$F8 -- NOT IMPLEMENTED -- XXX WIP
|
||||
.label ROBUF = $F9 // $F9-$FA -- NOT IMPLEMENTED -- XXX WIP
|
||||
// $FB $FB-$FE -- UNUSED -- free for user software
|
||||
.label BASZPT = $FF // -- NOT IMPLEMENTED --
|
||||
|
||||
@@ -202,10 +202,10 @@
|
||||
.label BITNUM = $298 // -- NOT IMPLEMENTED --
|
||||
.label BAUDOF = $299 // $299-$29A -- NOT IMPLEMENTED --
|
||||
#endif
|
||||
.label RIDBE = $29B // -- NOT IMPLEMENTED --
|
||||
.label RIDBS = $29C // -- NOT IMPLEMENTED --
|
||||
.label RODBS = $29D // -- NOT IMPLEMENTED --
|
||||
.label RODBE = $29E // -- NOT IMPLEMENTED --
|
||||
.label RIDBE = $29B // -- NOT IMPLEMENTED -- XXX WIP
|
||||
.label RIDBS = $29C // -- NOT IMPLEMENTED -- XXX WIP
|
||||
.label RODBS = $29D // -- NOT IMPLEMENTED -- XXX WIP
|
||||
.label RODBE = $29E // -- NOT IMPLEMENTED -- XXX WIP
|
||||
.label IRQTMP = $29F // $29F-$2A0 -- NOT IMPLEMENTED --
|
||||
.label ENABL = $2A1 // -- NOT IMPLEMENTED --
|
||||
.label TODSNS = $2A2 // -- NOT IMPLEMENTED --
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
//
|
||||
// CLR key handling within CHROUT
|
||||
//
|
||||
|
||||
chrout_screen_CLR:
|
||||
|
||||
jsr clear_screen
|
||||
jmp chrout_screen_done
|
||||
@@ -15,7 +15,7 @@ chrout_screen_control:
|
||||
|
||||
chrout_try_RETURN:
|
||||
|
||||
cmp #$0D
|
||||
cmp #KEY_RETURN
|
||||
bne !+
|
||||
|
||||
// RETURN clears quote and insert modes, it also clears reverse flag
|
||||
@@ -27,156 +27,60 @@ chrout_try_RETURN:
|
||||
!:
|
||||
chrout_try_DEL:
|
||||
|
||||
cmp #$14
|
||||
cmp #KEY_DEL
|
||||
bne !+
|
||||
jmp chrout_screen_del
|
||||
jmp chrout_screen_DEL
|
||||
!:
|
||||
#if CONFIG_EDIT_STOPQUOTE
|
||||
chrout_try_STOP:
|
||||
|
||||
cmp #KEY_STOP
|
||||
bne !+
|
||||
|
||||
lda #$00
|
||||
sta QTSW
|
||||
sta INSRT
|
||||
// Let it run, we are saving 3 bytes on JMP this way
|
||||
// and the performance hit is not going to be visible nevertheless
|
||||
!:
|
||||
#endif
|
||||
chrout_try_quote:
|
||||
|
||||
lda QTSW
|
||||
ora INSRT
|
||||
beq !+
|
||||
txa
|
||||
jmp chrout_screen_quote
|
||||
!:
|
||||
txa
|
||||
|
||||
chrout_try_CRSR_UP:
|
||||
chrout_try_jumptable:
|
||||
|
||||
cmp #$91
|
||||
ldx #(__chrout_screen_jumptable_codes_end - chrout_screen_jumptable_codes - 1)
|
||||
chrout_try_jumptable_loop:
|
||||
cmp chrout_screen_jumptable_codes, x
|
||||
bne !+
|
||||
|
||||
lda PNTR
|
||||
sec
|
||||
sbc #40
|
||||
sta PNTR
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
// Found, perform a jump to subroutine
|
||||
lda chrout_screen_jumptable_hi, x
|
||||
pha
|
||||
lda chrout_screen_jumptable_lo, x
|
||||
pha
|
||||
rts
|
||||
!:
|
||||
chrout_try_CRSR_DOWN:
|
||||
dex
|
||||
bpl chrout_try_jumptable_loop
|
||||
|
||||
cmp #$11
|
||||
bne !+
|
||||
|
||||
lda PNTR
|
||||
clc
|
||||
adc #40
|
||||
sta PNTR
|
||||
// We need to advance the pointer manually, as normalising
|
||||
// now will break things. The pointer update is required
|
||||
// so that we can tell if we really are on the bottom phys
|
||||
// screen line or not
|
||||
jsr screen_scroll_up_if_on_last_line
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
!:
|
||||
chrout_try_CRSR_LEFT:
|
||||
|
||||
cmp #$9D
|
||||
bne !+
|
||||
|
||||
lda TBLX
|
||||
ora PNTR
|
||||
beq crsr_l1 // recalculating pointer is not really necessary, but this is a very rare case nevertheless
|
||||
dec PNTR
|
||||
crsr_l1:
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
!:
|
||||
chrout_try_CRSR_RIGHT:
|
||||
|
||||
cmp #$1D
|
||||
bne !+
|
||||
|
||||
inc PNTR
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
!:
|
||||
chrout_try_RVS_ON:
|
||||
|
||||
cmp #$12
|
||||
bne !+
|
||||
|
||||
lda #$80
|
||||
bne rvs_l1
|
||||
!:
|
||||
chrout_try_RVS_OFF:
|
||||
|
||||
cmp #$92
|
||||
bne !+
|
||||
|
||||
lda #$00
|
||||
rvs_l1:
|
||||
sta RVS
|
||||
jmp chrout_screen_done
|
||||
!:
|
||||
chrout_try_MODE_GFX:
|
||||
|
||||
cmp #$8E
|
||||
bne !+
|
||||
|
||||
lda VIC_YMCSB
|
||||
and #$02 // to upper case
|
||||
mode_l1:
|
||||
sta VIC_YMCSB
|
||||
jmp chrout_screen_done
|
||||
!:
|
||||
chrout_try_MODE_TXT:
|
||||
|
||||
cmp #$0E
|
||||
bne !+
|
||||
|
||||
lda VIC_YMCSB
|
||||
ora #$02 // to lower case
|
||||
bne mode_l1 // branch always
|
||||
!:
|
||||
chrout_try_COLOR:
|
||||
|
||||
ldx #$0F
|
||||
colour_check_loop:
|
||||
chrout_try_color_loop:
|
||||
cmp colour_codes,x
|
||||
bne !+
|
||||
stx COLOR
|
||||
jmp chrout_screen_done
|
||||
!:
|
||||
dex
|
||||
bpl colour_check_loop
|
||||
|
||||
chrout_try_SHIFT_ENABLE:
|
||||
|
||||
cmp #$09
|
||||
bne !+
|
||||
|
||||
lda #$00 // enable SHIFT+VENDOR combination
|
||||
sta MODE
|
||||
bpl chrout_try_color_loop
|
||||
|
||||
// Unknown code, or key not requiring any handling
|
||||
jmp chrout_screen_done
|
||||
!:
|
||||
chrout_try_SHIFT_DISABLE:
|
||||
|
||||
cmp #$08
|
||||
bne !+
|
||||
|
||||
lda #$80 // disable SHIFT+VENDOR combination
|
||||
sta MODE
|
||||
|
||||
jmp chrout_screen_done
|
||||
!:
|
||||
chrout_try_HOME:
|
||||
|
||||
cmp #$13
|
||||
bne !+
|
||||
|
||||
jsr cursor_home
|
||||
jmp chrout_screen_done
|
||||
!:
|
||||
chrout_try_CLR:
|
||||
|
||||
cmp #$93
|
||||
bne !+
|
||||
|
||||
jsr clear_screen
|
||||
clr_l1:
|
||||
jmp chrout_screen_done
|
||||
!:
|
||||
chrout_try_INS:
|
||||
|
||||
cmp #$94
|
||||
bne clr_l1 // unknown code or key does not need handling
|
||||
|
||||
jmp chrout_screen_ins
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
//
|
||||
// Cursor keys handling within CHROUT
|
||||
//
|
||||
|
||||
|
||||
chrout_screen_CRSR_UP:
|
||||
|
||||
lda PNTR
|
||||
sec
|
||||
sbc #40
|
||||
sta PNTR
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
|
||||
chrout_screen_CRSR_DOWN:
|
||||
|
||||
lda PNTR
|
||||
clc
|
||||
adc #40
|
||||
sta PNTR
|
||||
// We need to advance the pointer manually, as normalising
|
||||
// now will break things. The pointer update is required
|
||||
// so that we can tell if we really are on the bottom phys
|
||||
// screen line or not
|
||||
jsr screen_scroll_up_if_on_last_line
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
|
||||
chrout_screen_CRSR_LEFT:
|
||||
|
||||
lda TBLX
|
||||
ora PNTR
|
||||
beq !+ // recalculating pointer is not really necessary, but this is a very rare case nevertheless
|
||||
dec PNTR
|
||||
!:
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
|
||||
chrout_screen_CRSR_RIGHT:
|
||||
|
||||
inc PNTR
|
||||
jmp chrout_screen_calc_lptr_done
|
||||
@@ -3,7 +3,7 @@
|
||||
// CHROUT routine - screen support, DEL key handling
|
||||
//
|
||||
|
||||
chrout_screen_del:
|
||||
chrout_screen_DEL:
|
||||
|
||||
// In insert mode it embeds control character
|
||||
ldx INSRT
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
//
|
||||
// GFX/TXT mode switch handling within CHROUT
|
||||
//
|
||||
|
||||
|
||||
chrout_screen_GFX:
|
||||
|
||||
lda VIC_YMCSB
|
||||
and #$02 // to upper case
|
||||
!:
|
||||
sta VIC_YMCSB
|
||||
jmp chrout_screen_done
|
||||
|
||||
chrout_screen_TXT:
|
||||
|
||||
lda VIC_YMCSB
|
||||
ora #$02 // to lower case
|
||||
bne !- // branch always
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
//
|
||||
// HOME key handling within CHROUT
|
||||
//
|
||||
|
||||
|
||||
chrout_screen_HOME:
|
||||
|
||||
jsr cursor_home
|
||||
jmp chrout_screen_done
|
||||
@@ -3,7 +3,7 @@
|
||||
// CHROUT routine - screen support, INS key handling
|
||||
//
|
||||
|
||||
chrout_screen_ins:
|
||||
chrout_screen_INS:
|
||||
|
||||
// Insert (shift-DELETE)
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
//
|
||||
// Jumptable for screen control coldes support. To improve performance, should be sorted
|
||||
// starting from the least probable routine
|
||||
//
|
||||
|
||||
chrout_screen_jumptable_codes:
|
||||
|
||||
.byte KEY_INS
|
||||
.byte KEY_CLR
|
||||
.byte KEY_HOME
|
||||
.byte KEY_SHIFT_OFF
|
||||
.byte KEY_SHIFT_ON
|
||||
.byte KEY_TXT
|
||||
.byte KEY_GFX
|
||||
.byte KEY_RVS_OFF
|
||||
.byte KEY_RVS_ON
|
||||
.byte KEY_CRSR_RIGHT
|
||||
.byte KEY_CRSR_LEFT
|
||||
.byte KEY_CRSR_DOWN
|
||||
.byte KEY_CRSR_UP
|
||||
|
||||
__chrout_screen_jumptable_codes_end:
|
||||
|
||||
chrout_screen_jumptable_lo:
|
||||
|
||||
.byte <(chrout_screen_INS - 1)
|
||||
.byte <(chrout_screen_CLR - 1)
|
||||
.byte <(chrout_screen_HOME - 1)
|
||||
.byte <(chrout_screen_SHIFT_OFF - 1)
|
||||
.byte <(chrout_screen_SHIFT_ON - 1)
|
||||
.byte <(chrout_screen_TXT - 1)
|
||||
.byte <(chrout_screen_GFX - 1)
|
||||
.byte <(chrout_screen_RVS_OFF - 1)
|
||||
.byte <(chrout_screen_RVS_ON - 1)
|
||||
.byte <(chrout_screen_CRSR_RIGHT - 1)
|
||||
.byte <(chrout_screen_CRSR_LEFT - 1)
|
||||
.byte <(chrout_screen_CRSR_DOWN - 1)
|
||||
.byte <(chrout_screen_CRSR_UP - 1)
|
||||
|
||||
chrout_screen_jumptable_hi:
|
||||
|
||||
.byte >(chrout_screen_INS - 1)
|
||||
.byte >(chrout_screen_CLR - 1)
|
||||
.byte >(chrout_screen_HOME - 1)
|
||||
.byte >(chrout_screen_SHIFT_OFF - 1)
|
||||
.byte >(chrout_screen_SHIFT_ON - 1)
|
||||
.byte >(chrout_screen_TXT - 1)
|
||||
.byte >(chrout_screen_GFX - 1)
|
||||
.byte >(chrout_screen_RVS_OFF - 1)
|
||||
.byte >(chrout_screen_RVS_ON - 1)
|
||||
.byte >(chrout_screen_CRSR_RIGHT - 1)
|
||||
.byte >(chrout_screen_CRSR_LEFT - 1)
|
||||
.byte >(chrout_screen_CRSR_DOWN - 1)
|
||||
.byte >(chrout_screen_CRSR_UP - 1)
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
//
|
||||
// RVS ON/OFF handling within CHROUT
|
||||
//
|
||||
|
||||
|
||||
chrout_screen_RVS_ON:
|
||||
|
||||
lda #$80
|
||||
bne !+ // branch always
|
||||
|
||||
chrout_screen_RVS_OFF:
|
||||
|
||||
lda #$00
|
||||
!:
|
||||
sta RVS
|
||||
jmp chrout_screen_done
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
//
|
||||
// SHIFT ON/OFF handling within CHROUT
|
||||
//
|
||||
|
||||
chrout_screen_SHIFT_ON:
|
||||
|
||||
lda #$00 // enable SHIFT+VENDOR combination
|
||||
!:
|
||||
sta MODE
|
||||
jmp chrout_screen_done
|
||||
|
||||
chrout_screen_SHIFT_OFF:
|
||||
|
||||
lda #$80 // disable SHIFT+VENDOR combination
|
||||
bne !- // branch always
|
||||
Reference in new issue
Block a user