feat(arnitech): the Terminal Card is a Blade's screen and keyboard
With ARNITECH_BLADE the screen editor, the keyboard matrix scan, and the VIC-II set-up are left out, and devices 3 and 0 are the Terminal Card the Arnitech controller finds by its type, $04. CHROUT writes each byte to its Output, or to its Literal while quote or insert mode is on, keeping QTSW and INSRT as the screen editor does. CHRIN marks where input starts, echoes the keys typed, and on RETURN has the Card take the logical line under the cursor and reads it back. SCNKEY moves the Card's keys into the keyboard buffer up to XMAX, UDTIM sets STKEY from its RUN/STOP, SCREEN answers 80x25, PLOT moves and reads its cursor, and CINT resets it and puts the native-mode vectors in place. With no Terminal Card, bytes printed go nowhere and no key comes.
This commit is contained in:
1 parent
b7fef8abe6
commit
f809b9b7ea
68 files changed
+625
-3
No files matched your search
@@ -36,6 +36,28 @@
|
|||||||
|
|
||||||
!ifdef CONFIG_ARNITECH_BLADE {
|
!ifdef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
; The Terminal Card, a Blade's screen and keyboard (arnitech's ADR 0031): its type in the Slot
|
||||||
|
; table, and its registers indexed by its Card window's low byte, as ARNI_FINDCARD gives it in X
|
||||||
|
|
||||||
|
!set TERMINAL_CARD_TYPE = $04
|
||||||
|
|
||||||
|
!addr TERMINAL_OUTPUT = $DE00 ; a PETSCII byte, printed as the screen editor prints it
|
||||||
|
!addr TERMINAL_LITERAL = $DE01 ; a byte drawn as its glyph, for quote and insert mode
|
||||||
|
!addr TERMINAL_STATUS = $DE02
|
||||||
|
!addr TERMINAL_KEY = $DE03 ; the next key; a read takes it, $00 if none
|
||||||
|
!addr TERMINAL_COMMAND = $DE04
|
||||||
|
!addr TERMINAL_LINE = $DE05 ; the taken line's next byte, RETURN at its end
|
||||||
|
!addr TERMINAL_COLUMN = $DE06
|
||||||
|
!addr TERMINAL_ROW = $DE07
|
||||||
|
|
||||||
|
!set TERMINAL_KEY_WAITING = %00000001 ; status bits
|
||||||
|
!set TERMINAL_STOP_HELD = %00000010
|
||||||
|
!set TERMINAL_INSERTED = %00001000 ; the last byte was an INS that opened a space
|
||||||
|
|
||||||
|
!set TERMINAL_TAKE_LINE = $01 ; commands
|
||||||
|
!set TERMINAL_RESET = $02
|
||||||
|
!set TERMINAL_INPUT_START = $03
|
||||||
|
|
||||||
; The 65816's native-mode vectors, which a Blade reads from the RAM under the KERNAL (ADR 0029)
|
; The 65816's native-mode vectors, which a Blade reads from the RAM under the KERNAL (ADR 0029)
|
||||||
|
|
||||||
!addr NATIVE_VECTORS = $FFE4 ; COP, BRK, ABORT, NMI, reserved, IRQ
|
!addr NATIVE_VECTORS = $FFE4 ; COP, BRK, ABORT, NMI, reserved, IRQ
|
||||||
|
|||||||
@@ -0,0 +1,256 @@
|
|||||||
|
;; #LAYOUT# STD * #TAKE
|
||||||
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
;
|
||||||
|
; The Terminal Card driver of the Blade Firmware (mc64blade only, arnitech's ADR 0030 and 0031)
|
||||||
|
;
|
||||||
|
; A Blade has no VIC-II and no keyboard: its screen and keyboard, devices 3 and 0, are the
|
||||||
|
; Terminal Card, which holds the 80x25 screen and the screen editor itself. CHROUT writes each
|
||||||
|
; byte to it, as a glyph while quote or insert mode is on; CHRIN echoes the keys typed and, on
|
||||||
|
; RETURN, reads back the logical line under the cursor; the IRQ moves its keys into the keyboard
|
||||||
|
; buffer and its RUN/STOP into STKEY. Quote and insert mode stay the KERNAL's, in QTSW and INSRT,
|
||||||
|
; as the Card cannot see them. With no Terminal Card, bytes printed go nowhere and no key comes.
|
||||||
|
;
|
||||||
|
|
||||||
|
!ifdef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
;
|
||||||
|
; Finds the Terminal Card. Out: carry clear and X = its Card window's low byte, carry set if
|
||||||
|
; there is none. A is not kept, Y is.
|
||||||
|
;
|
||||||
|
|
||||||
|
terminal_find:
|
||||||
|
|
||||||
|
lda #TERMINAL_CARD_TYPE
|
||||||
|
jmp arnitech_find_card
|
||||||
|
|
||||||
|
;
|
||||||
|
; CHROUT for device 3. SCHAR holds the byte; CHROUT has saved X, Y, and P.
|
||||||
|
;
|
||||||
|
; Outside quote and insert mode the byte goes to Output. While either is on, every control code
|
||||||
|
; but RETURN, SHIFT+RETURN, and STOP goes to Literal, which draws it as a glyph; so does DEL
|
||||||
|
; while INSRT is not 0, which a DEL between quotes leaves to delete. RETURN, SHIFT+RETURN, and
|
||||||
|
; STOP end both modes. A glyph drawn counts INSRT down, a quote toggles QTSW, and an INS that
|
||||||
|
; opened a space (status bit 3) counts INSRT up.
|
||||||
|
;
|
||||||
|
|
||||||
|
chrout_terminal:
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
bcs chrout_terminal_done ; no Terminal Card: the byte goes nowhere
|
||||||
|
|
||||||
|
lda SCHAR
|
||||||
|
and #$60
|
||||||
|
beq chrout_terminal_control ; $00-$1F and $80-$9F are control codes
|
||||||
|
|
||||||
|
lda SCHAR
|
||||||
|
sta TERMINAL_OUTPUT, x
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
chrout_terminal_glyph:
|
||||||
|
|
||||||
|
lda INSRT
|
||||||
|
beq @1
|
||||||
|
dec INSRT
|
||||||
|
@1:
|
||||||
|
lda SCHAR
|
||||||
|
cmp #$22
|
||||||
|
bne chrout_terminal_done
|
||||||
|
lda QTSW
|
||||||
|
eor #$80
|
||||||
|
sta QTSW
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
chrout_terminal_done:
|
||||||
|
|
||||||
|
jmp chrout_done_success
|
||||||
|
|
||||||
|
chrout_terminal_control:
|
||||||
|
|
||||||
|
lda SCHAR
|
||||||
|
cmp #KEY_RETURN
|
||||||
|
beq chrout_terminal_end_modes
|
||||||
|
cmp #KEY_SHIFT_RETURN
|
||||||
|
beq chrout_terminal_end_modes
|
||||||
|
cmp #KEY_STOP
|
||||||
|
beq chrout_terminal_end_modes
|
||||||
|
|
||||||
|
ldy INSRT
|
||||||
|
bne chrout_terminal_literal ; in the spaces INS opened, DEL too is a glyph
|
||||||
|
ldy QTSW
|
||||||
|
beq chrout_terminal_code
|
||||||
|
cmp #KEY_DEL
|
||||||
|
beq chrout_terminal_code ; between quotes DEL still deletes
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
chrout_terminal_literal:
|
||||||
|
|
||||||
|
sta TERMINAL_LITERAL, x
|
||||||
|
jmp chrout_terminal_glyph
|
||||||
|
|
||||||
|
chrout_terminal_code:
|
||||||
|
|
||||||
|
sta TERMINAL_OUTPUT, x
|
||||||
|
cmp #KEY_INS
|
||||||
|
bne chrout_terminal_done
|
||||||
|
lda TERMINAL_STATUS, x
|
||||||
|
and #TERMINAL_INSERTED
|
||||||
|
beq chrout_terminal_done
|
||||||
|
inc INSRT
|
||||||
|
bne chrout_terminal_done ; branch always
|
||||||
|
|
||||||
|
chrout_terminal_end_modes:
|
||||||
|
|
||||||
|
sta TERMINAL_OUTPUT, x
|
||||||
|
lda #$00
|
||||||
|
sta QTSW
|
||||||
|
sta INSRT
|
||||||
|
beq chrout_terminal_done ; branch always
|
||||||
|
|
||||||
|
;
|
||||||
|
; CHRIN for device 0, the keyboard. X and Y are kept.
|
||||||
|
;
|
||||||
|
; The first call marks where input starts on the Terminal, echoes each key typed through CHROUT,
|
||||||
|
; and on RETURN has the Card take the logical line under the cursor; it and the calls after
|
||||||
|
; return the line's bytes, then RETURN, which ends it.
|
||||||
|
;
|
||||||
|
|
||||||
|
chrin_terminal:
|
||||||
|
|
||||||
|
stx XSAV
|
||||||
|
+phy_trash_a
|
||||||
|
|
||||||
|
lda CRSW
|
||||||
|
bne chrin_terminal_next ; a line is being returned
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
bcs chrin_terminal_wait
|
||||||
|
lda #TERMINAL_INPUT_START
|
||||||
|
sta TERMINAL_COMMAND, x
|
||||||
|
|
||||||
|
chrin_terminal_wait:
|
||||||
|
|
||||||
|
lda NDX
|
||||||
|
beq chrin_terminal_wait
|
||||||
|
jsr get_from_keyboard_buffer
|
||||||
|
cmp #KEY_RETURN
|
||||||
|
beq chrin_terminal_take
|
||||||
|
jsr JCHROUT ; the Terminal Card edits
|
||||||
|
jmp chrin_terminal_wait
|
||||||
|
|
||||||
|
chrin_terminal_take:
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
bcs chrin_terminal_end ; the Card is gone: an empty line
|
||||||
|
lda #TERMINAL_TAKE_LINE
|
||||||
|
sta TERMINAL_COMMAND, x
|
||||||
|
inc CRSW
|
||||||
|
|
||||||
|
chrin_terminal_next:
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
bcs chrin_terminal_end
|
||||||
|
lda TERMINAL_LINE, x
|
||||||
|
cmp #KEY_RETURN
|
||||||
|
bne chrin_terminal_return
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
chrin_terminal_end:
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta CRSW
|
||||||
|
sta QTSW
|
||||||
|
sta INSRT
|
||||||
|
lda #KEY_RETURN
|
||||||
|
|
||||||
|
; FALLTROUGH
|
||||||
|
|
||||||
|
chrin_terminal_return:
|
||||||
|
|
||||||
|
tax
|
||||||
|
+ply_trash_a
|
||||||
|
txa
|
||||||
|
ldx XSAV
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
;
|
||||||
|
; SCNKEY: moves the Terminal Card's keys into the keyboard buffer, while it has room; the rest
|
||||||
|
; wait in the Card.
|
||||||
|
;
|
||||||
|
|
||||||
|
SCNKEY:
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
bcs @2
|
||||||
|
@1:
|
||||||
|
lda TERMINAL_STATUS, x
|
||||||
|
lsr ; bit 0, a key waiting, into carry
|
||||||
|
bcc @2
|
||||||
|
ldy NDX
|
||||||
|
cpy XMAX
|
||||||
|
bcs @2
|
||||||
|
lda TERMINAL_KEY, x
|
||||||
|
sta KEYD, y
|
||||||
|
inc NDX
|
||||||
|
bne @1 ; branch always
|
||||||
|
@2:
|
||||||
|
rts
|
||||||
|
|
||||||
|
;
|
||||||
|
; The part of UDTIM that reads the STOP key: STKEY is $7F while the Terminal Card's RUN/STOP is
|
||||||
|
; held, $FF otherwise. Y is kept.
|
||||||
|
;
|
||||||
|
|
||||||
|
udtim_terminal_stop:
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
lda #$00 ; no Terminal Card, no RUN/STOP
|
||||||
|
bcs @1
|
||||||
|
lda TERMINAL_STATUS, x
|
||||||
|
@1:
|
||||||
|
and #TERMINAL_STOP_HELD
|
||||||
|
lsr
|
||||||
|
lsr ; held into carry
|
||||||
|
ror ; ... and into bit 7
|
||||||
|
eor #$FF
|
||||||
|
sta STKEY
|
||||||
|
rts
|
||||||
|
|
||||||
|
;
|
||||||
|
; SCREEN: the Terminal's 80 columns in X and 25 rows in Y.
|
||||||
|
;
|
||||||
|
|
||||||
|
SCREEN:
|
||||||
|
|
||||||
|
ldx #80
|
||||||
|
ldy #25
|
||||||
|
rts
|
||||||
|
|
||||||
|
;
|
||||||
|
; CINT's work on a Blade: the keyboard and the screen as the input and output devices (as
|
||||||
|
; vicii_init does on a C64), the keyboard buffer's size, a reset of the Terminal and of quote and
|
||||||
|
; insert mode, the native-mode vectors, and CIA1's timer A for the jiffy IRQ.
|
||||||
|
;
|
||||||
|
|
||||||
|
cint_terminal:
|
||||||
|
|
||||||
|
jsr clrchn_reset
|
||||||
|
ldx #10
|
||||||
|
stx XMAX
|
||||||
|
lda #$00
|
||||||
|
sta CRSW
|
||||||
|
sta QTSW
|
||||||
|
sta INSRT
|
||||||
|
jsr terminal_find
|
||||||
|
bcs @1
|
||||||
|
lda #TERMINAL_RESET
|
||||||
|
sta TERMINAL_COMMAND, x
|
||||||
|
@1:
|
||||||
|
jsr native_vectors_init
|
||||||
|
jmp setup_pal_ntsc
|
||||||
|
}
|
||||||
@@ -2,6 +2,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; This is a part CINT which initializes screen and keyboard
|
; This is a part CINT which initializes screen and keyboard
|
||||||
;
|
;
|
||||||
@@ -49,3 +52,5 @@ cint_screen_keyboard:
|
|||||||
; Fallthrough/jump to screen clear routine (Computes Mapping the 64 p215)
|
; Fallthrough/jump to screen clear routine (Computes Mapping the 64 p215)
|
||||||
|
|
||||||
jmp clear_screen
|
jmp clear_screen
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -2,6 +2,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Part of the official Kernal routine, described in:
|
; Part of the official Kernal routine, described in:
|
||||||
;
|
;
|
||||||
@@ -37,3 +40,5 @@ cint_legacy_end:
|
|||||||
; Game 'Operacja Proboszcz' is one example.
|
; Game 'Operacja Proboszcz' is one example.
|
||||||
|
|
||||||
jmp cint_screen_keyboard ; XXX try to fit the code here
|
jmp cint_screen_keyboard ; XXX try to fit the code here
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -5,6 +5,9 @@
|
|||||||
;; #LAYOUT# X16 * #IGNORE
|
;; #LAYOUT# X16 * #IGNORE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no VIC-II
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Well-known Kernal routine, described in:
|
; Well-known Kernal routine, described in:
|
||||||
;
|
;
|
||||||
@@ -28,3 +31,5 @@ vicii_init:
|
|||||||
jmp vicii_init_registers
|
jmp vicii_init_registers
|
||||||
|
|
||||||
} ; ROM layout
|
} ; ROM layout
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -13,5 +13,9 @@
|
|||||||
|
|
||||||
CINT:
|
CINT:
|
||||||
|
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
jsr cint_legacy
|
jsr cint_legacy
|
||||||
jmp setup_pal_ntsc
|
jmp setup_pal_ntsc
|
||||||
|
} else {
|
||||||
|
jmp cint_terminal
|
||||||
|
}
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# M65 KERNAL_1 #TAKE
|
;; #LAYOUT# M65 KERNAL_1 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no VIC-II
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; The VIC-II set-up of vicii_init (e5a0.vicii_init.s), moved out of $E5A0-$E5C8
|
; The VIC-II set-up of vicii_init (e5a0.vicii_init.s), moved out of $E5A0-$E5C8
|
||||||
; so that $E5B4 is free
|
; so that $E5B4 is free
|
||||||
@@ -50,3 +53,4 @@ vicii_init_registers:
|
|||||||
jmp CLRCHN
|
jmp CLRCHN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -47,7 +47,9 @@ default_irq_handler_common:
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
jsr cursor_blink
|
jsr cursor_blink
|
||||||
|
}
|
||||||
jsr JSCNKEY
|
jsr JSCNKEY
|
||||||
jsr JUDTIM ; update jiffy clock
|
jsr JUDTIM ; update jiffy clock
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,12 +26,39 @@ plot_set:
|
|||||||
sty PNTR
|
sty PNTR
|
||||||
stx TBLX
|
stx TBLX
|
||||||
|
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
jsr screen_calculate_pointers
|
jsr screen_calculate_pointers
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
; On a Blade the cursor is the Terminal Card's, which clamps it to the 80x25 screen;
|
||||||
|
; PNTR and TBLX keep the last place set or read, which is all there is without a Card
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
bcs plot_get_kept
|
||||||
|
lda PNTR
|
||||||
|
sta TERMINAL_COLUMN, x
|
||||||
|
lda TBLX
|
||||||
|
sta TERMINAL_ROW, x
|
||||||
|
}
|
||||||
|
|
||||||
; FALLTROUGH to save one byte on RTS
|
; FALLTROUGH to save one byte on RTS
|
||||||
|
|
||||||
plot_get:
|
plot_get:
|
||||||
|
|
||||||
|
!ifdef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
jsr terminal_find
|
||||||
|
bcs plot_get_kept
|
||||||
|
lda TERMINAL_COLUMN, x
|
||||||
|
sta PNTR
|
||||||
|
lda TERMINAL_ROW, x
|
||||||
|
sta TBLX
|
||||||
|
|
||||||
|
plot_get_kept:
|
||||||
|
}
|
||||||
|
|
||||||
ldy PNTR
|
ldy PNTR
|
||||||
ldx TBLX
|
ldx TBLX
|
||||||
rts
|
rts
|
||||||
@@ -22,7 +22,11 @@ CHRIN:
|
|||||||
lda DFLTN
|
lda DFLTN
|
||||||
|
|
||||||
; Try $00 - keyboard
|
; Try $00 - keyboard
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
+beq chrin_keyboard
|
+beq chrin_keyboard
|
||||||
|
} else {
|
||||||
|
+beq chrin_terminal
|
||||||
|
}
|
||||||
|
|
||||||
; XXX Try $03 - screen
|
; XXX Try $03 - screen
|
||||||
; cmp #$03
|
; cmp #$03
|
||||||
|
|||||||
@@ -30,7 +30,11 @@ CHROUT:
|
|||||||
lda DFLTO
|
lda DFLTO
|
||||||
|
|
||||||
cmp #$03 ; screen
|
cmp #$03 ; screen
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
+beq chrout_screen
|
+beq chrout_screen
|
||||||
|
} else {
|
||||||
|
+beq chrout_terminal
|
||||||
|
}
|
||||||
|
|
||||||
!ifdef HAS_RS232 {
|
!ifdef HAS_RS232 {
|
||||||
cmp #$02
|
cmp #$02
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Well-known Kernal routine, described in:
|
; Well-known Kernal routine, described in:
|
||||||
;
|
;
|
||||||
@@ -96,4 +99,6 @@ scnkey_toggle_if_needed: ; entry for SCNKEY (TWW/CTR version)
|
|||||||
sta VIC_YMCSB
|
sta VIC_YMCSB
|
||||||
@1:
|
@1:
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -4,6 +4,9 @@
|
|||||||
;; #LAYOUT# M65 KERNAL_C #TAKE
|
;; #LAYOUT# M65 KERNAL_C #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Keyboard matrix, based on
|
; Keyboard matrix, based on
|
||||||
;
|
;
|
||||||
@@ -93,3 +96,5 @@ __kb_matrix_ctrl:
|
|||||||
!byte $90,$06,$00,$05,$00,$00,$11,$00
|
!byte $90,$06,$00,$05,$00,$00,$11,$00
|
||||||
!byte $00,$00,$00,$84,$00,$00,$00,$1B
|
!byte $00,$00,$00,$84,$00,$00,$00,$1B
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Extended keyboard matrix for Commodore 128 keyboards, based on
|
; Extended keyboard matrix for Commodore 128 keyboards, based on
|
||||||
;
|
;
|
||||||
@@ -29,3 +32,5 @@ kb_matrix_128_bucky_filter:
|
|||||||
!byte %00000000
|
!byte %00000000
|
||||||
!byte %10000001 ; ALT, NO_SCRL
|
!byte %10000001 ; ALT, NO_SCRL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Matrix ids of keys which should be repeated regardless of RPTFLG
|
; Matrix ids of keys which should be repeated regardless of RPTFLG
|
||||||
;
|
;
|
||||||
@@ -25,3 +28,5 @@ __kb_matrix_alwaysrepeat_end:
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Matrix for retrieving bucky key status on the C64 keyboard
|
; Matrix for retrieving bucky key status on the C64 keyboard
|
||||||
;
|
;
|
||||||
@@ -63,3 +66,5 @@ kb_matrix_bucky_shflag: ; mask to be ORed to SHFLAG to mark key status
|
|||||||
!byte KEY_FLAG_ALT
|
!byte KEY_FLAG_ALT
|
||||||
!byte KEY_FLAG_NO_SCRL
|
!byte KEY_FLAG_NO_SCRL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Matrix for filtering out bucky keys while scanning the C64 keyboard
|
; Matrix for filtering out bucky keys while scanning the C64 keyboard
|
||||||
;
|
;
|
||||||
@@ -23,3 +26,5 @@ kb_matrix_bucky_filter:
|
|||||||
!byte %00000000
|
!byte %00000000
|
||||||
!byte %00010000 ; SHIFT (right)
|
!byte %00010000 ; SHIFT (right)
|
||||||
!byte %00100100 ; VENDOR + CONTROL
|
!byte %00100100 ; VENDOR + CONTROL
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Matrix for retrieving C64 joystick status and inject is as keyboard event
|
; Matrix for retrieving C64 joystick status and inject is as keyboard event
|
||||||
;
|
;
|
||||||
@@ -40,3 +43,5 @@ kb_matrix_joy_keytab_hi:
|
|||||||
!byte >__kb_matrix_normal ; right
|
!byte >__kb_matrix_normal ; right
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -4,6 +4,9 @@
|
|||||||
;; #LAYOUT# M65 KERNAL_C #TAKE
|
;; #LAYOUT# M65 KERNAL_C #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Helper table for determining keyboard matrix decoding table on the C64 keyboard
|
; Helper table for determining keyboard matrix decoding table on the C64 keyboard
|
||||||
;
|
;
|
||||||
@@ -49,3 +52,5 @@ kb_matrix_lookup:
|
|||||||
!word $0000 ; %1.110 VENDOR+CTRL
|
!word $0000 ; %1.110 VENDOR+CTRL
|
||||||
!word $0000 ; %1.111 SHIFT+VENDOR+CTRL
|
!word $0000 ; %1.111 SHIFT+VENDOR+CTRL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Single row key codes for scanning the C64 keyboard
|
; Single row key codes for scanning the C64 keyboard
|
||||||
;
|
;
|
||||||
@@ -25,3 +28,5 @@ kb_matrix_row_keys:
|
|||||||
!byte %11011111
|
!byte %11011111
|
||||||
!byte %10111111
|
!byte %10111111
|
||||||
!byte %01111111
|
!byte %01111111
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Helper values to quickly determine row offset from the start of keyboard matrix
|
; Helper values to quickly determine row offset from the start of keyboard matrix
|
||||||
;
|
;
|
||||||
@@ -20,3 +23,5 @@ kb_matrix_row_offsets:
|
|||||||
!byte 5*8
|
!byte 5*8
|
||||||
!byte 6*8
|
!byte 6*8
|
||||||
!byte 7*8
|
!byte 7*8
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Helper routine - disconnects the keyboard from CIA1_PRB,
|
; Helper routine - disconnects the keyboard from CIA1_PRB,
|
||||||
; leaves $FF in .X (behavior needed in some places)
|
; leaves $FF in .X (behavior needed in some places)
|
||||||
@@ -18,3 +21,5 @@ keyboard_disconnect:
|
|||||||
}
|
}
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Official Kernal routine, described in:
|
; Official Kernal routine, described in:
|
||||||
;
|
;
|
||||||
@@ -431,3 +434,5 @@ scnkey_buffer_full:
|
|||||||
sta KOUNT
|
sta KOUNT
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Keyboard scanning routine extension for C128 keyboards
|
; Keyboard scanning routine extension for C128 keyboards
|
||||||
;
|
;
|
||||||
@@ -67,3 +70,5 @@ scnkey_128_no_keys:
|
|||||||
|
|
||||||
jmp scnkey_no_keys ; pass controll to original routine
|
jmp scnkey_no_keys ; pass controll to original routine
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, which has no keyboard matrix: its keys come from the Terminal Card (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
; Short helper jump-via-vector routine, to set the keyboard matrix
|
; Short helper jump-via-vector routine, to set the keyboard matrix
|
||||||
|
|
||||||
!ifndef HAS_OPCODES_65CE02 {
|
!ifndef HAS_OPCODES_65CE02 {
|
||||||
@@ -11,3 +14,5 @@ scnkey_via_keylog:
|
|||||||
|
|
||||||
jmp (KEYLOG)
|
jmp (KEYLOG)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Keyboard part of the CHRIN routine
|
; Keyboard part of the CHRIN routine
|
||||||
;
|
;
|
||||||
@@ -167,3 +170,5 @@ chrkn_keyboard_not_enter:
|
|||||||
jsr CHROUT
|
jsr CHROUT
|
||||||
jsr pop_keyboard_buffer
|
jsr pop_keyboard_buffer
|
||||||
+bra chrin_keyboard_read
|
+bra chrin_keyboard_read
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Keyboard part of the CHRIN routine - programmable keys support
|
; Keyboard part of the CHRIN routine - programmable keys support
|
||||||
; Output: if Carry clear, programmable key was handled
|
; Output: if Carry clear, programmable key was handled
|
||||||
@@ -50,3 +53,5 @@ chrin_programmable_keys:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
} ; CONFIG_PROGRAMMABLE_KEYS
|
} ; CONFIG_PROGRAMMABLE_KEYS
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; CHROUT routine - screen support (character output)
|
; CHROUT routine - screen support (character output)
|
||||||
;
|
;
|
||||||
@@ -99,3 +102,5 @@ chrout_screen_done:
|
|||||||
|
|
||||||
jsr cursor_show_if_enabled
|
jsr cursor_show_if_enabled
|
||||||
jmp chrout_done_success
|
jmp chrout_done_success
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; CLR key handling within CHROUT
|
; CLR key handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -12,3 +15,5 @@ chrout_screen_CLR:
|
|||||||
|
|
||||||
jsr clear_screen
|
jsr clear_screen
|
||||||
jmp chrout_screen_calc_lptr_done
|
jmp chrout_screen_calc_lptr_done
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; CHROUT routine - screen support, control codes
|
; CHROUT routine - screen support, control codes
|
||||||
;
|
;
|
||||||
@@ -70,3 +73,5 @@ chrout_try_color_loop:
|
|||||||
|
|
||||||
; Unknown code, or key not requiring any handling
|
; Unknown code, or key not requiring any handling
|
||||||
jmp chrout_screen_done
|
jmp chrout_screen_done
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Cursor keys handling within CHROUT
|
; Cursor keys handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -61,3 +64,5 @@ chrout_screen_CRSR_LEFT:
|
|||||||
lda #39
|
lda #39
|
||||||
sta PNTR
|
sta PNTR
|
||||||
bne chrout_screen_CRSR_done ; branch always
|
bne chrout_screen_CRSR_done ; branch always
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; CHROUT routine - screen support, DEL key handling
|
; CHROUT routine - screen support, DEL key handling
|
||||||
;
|
;
|
||||||
@@ -120,3 +123,5 @@ chrout_screen_del_column_0:
|
|||||||
|
|
||||||
; Finish with recalculating all the variables
|
; Finish with recalculating all the variables
|
||||||
bne chrout_screen_del_done
|
bne chrout_screen_del_done
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; GFX/TXT mode switch handling within CHROUT
|
; GFX/TXT mode switch handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -25,3 +28,5 @@ chrout_screen_TXT:
|
|||||||
lda VIC_YMCSB
|
lda VIC_YMCSB
|
||||||
ora #$02 ; to lower case
|
ora #$02 ; to lower case
|
||||||
bne chrout_screen_GFX_TXT_end ; branch always
|
bne chrout_screen_GFX_TXT_end ; branch always
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; HOME key handling within CHROUT
|
; HOME key handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -12,3 +15,5 @@ chrout_screen_HOME:
|
|||||||
|
|
||||||
jsr cursor_home
|
jsr cursor_home
|
||||||
jmp chrout_screen_calc_lptr_done
|
jmp chrout_screen_calc_lptr_done
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; CHROUT routine - screen support, INS key handling
|
; CHROUT routine - screen support, INS key handling
|
||||||
;
|
;
|
||||||
@@ -95,3 +98,5 @@ chrout_screen_ins_copy_loop:
|
|||||||
|
|
||||||
; Return from loop
|
; Return from loop
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Jumptable for screen control codes support. To improve performance, should be sorted
|
; Jumptable for screen control codes support. To improve performance, should be sorted
|
||||||
; starting from the least probable routine.
|
; starting from the least probable routine.
|
||||||
@@ -111,3 +114,5 @@ chrout_screen_jumptable:
|
|||||||
!word chrout_screen_RETURN
|
!word chrout_screen_RETURN
|
||||||
!word chrout_screen_RETURN
|
!word chrout_screen_RETURN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; CHROUT routine - screen support, control codes in quote mode
|
; CHROUT routine - screen support, control codes in quote mode
|
||||||
;
|
;
|
||||||
@@ -22,3 +25,5 @@ chrout_screen_quote:
|
|||||||
adc #$BF ; C=1, so adding $BF + C = add $C0
|
adc #$BF ; C=1, so adding $BF + C = add $C0
|
||||||
@1:
|
@1:
|
||||||
jmp chrout_screen_literal
|
jmp chrout_screen_literal
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; RETURN key handling within CHROUT
|
; RETURN key handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -31,3 +34,5 @@ chrout_screen_RETURN:
|
|||||||
jsr screen_calculate_PNT_USER
|
jsr screen_calculate_PNT_USER
|
||||||
@1:
|
@1:
|
||||||
jmp screen_advance_to_next_line
|
jmp screen_advance_to_next_line
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; RVS ON/OFF handling within CHROUT
|
; RVS ON/OFF handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -21,3 +24,5 @@ chrout_screen_RVS_OFF:
|
|||||||
|
|
||||||
sta RVS
|
sta RVS
|
||||||
jmp chrout_screen_done
|
jmp chrout_screen_done
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; SHIFT ON/OFF handling within CHROUT
|
; SHIFT ON/OFF handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -21,3 +24,5 @@ chrout_screen_SHIFT_OFF:
|
|||||||
|
|
||||||
sta MODE
|
sta MODE
|
||||||
jmp chrout_screen_done
|
jmp chrout_screen_done
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; STOP key handling within CHROUT
|
; STOP key handling within CHROUT
|
||||||
;
|
;
|
||||||
@@ -18,3 +21,5 @@ chrout_screen_STOP:
|
|||||||
sta INSRT
|
sta INSRT
|
||||||
jmp chrout_screen_done
|
jmp chrout_screen_done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -2,6 +2,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; CHROUT routine - convert PETSCII to screen code
|
; CHROUT routine - convert PETSCII to screen code
|
||||||
;
|
;
|
||||||
@@ -50,3 +53,5 @@ chrout_to_screen_code:
|
|||||||
@done:
|
@done:
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Variables used:
|
; Variables used:
|
||||||
; - BLNSW (cursor blink switch)
|
; - BLNSW (cursor blink switch)
|
||||||
@@ -101,3 +104,5 @@ cursor_timer_reset:
|
|||||||
cursor_blink_end:
|
cursor_blink_end:
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Variables used:
|
; Variables used:
|
||||||
; - BLNSW (cursor blink switch)
|
; - BLNSW (cursor blink switch)
|
||||||
@@ -15,3 +18,5 @@ cursor_enable:
|
|||||||
sta BLNSW
|
sta BLNSW
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Variables used:
|
; Variables used:
|
||||||
; - BLNSW (cursor blink switch)
|
; - BLNSW (cursor blink switch)
|
||||||
@@ -35,3 +38,5 @@ cursor_show:
|
|||||||
cursor_show_done:
|
cursor_show_done:
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Init screen at reset
|
; Init screen at reset
|
||||||
;
|
;
|
||||||
@@ -19,3 +22,5 @@ init_screen:
|
|||||||
|
|
||||||
sta $0286
|
sta $0286
|
||||||
jmp clear_screen
|
jmp clear_screen
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Clear screen and initialise line link table, described in:
|
; Clear screen and initialise line link table, described in:
|
||||||
;
|
;
|
||||||
@@ -39,3 +42,5 @@ clear_screen:
|
|||||||
|
|
||||||
; Fall to cursor home routine
|
; Fall to cursor home routine
|
||||||
jmp cursor_home
|
jmp cursor_home
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Home the cursor, described in:
|
; Home the cursor, described in:
|
||||||
;
|
;
|
||||||
@@ -17,3 +20,5 @@ cursor_home:
|
|||||||
sta TBLX ; current row
|
sta TBLX ; current row
|
||||||
|
|
||||||
; FALLTROUGH to the next routine
|
; FALLTROUGH to the next routine
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Set pointer (PNT) to current screen line , described in:
|
; Set pointer (PNT) to current screen line , described in:
|
||||||
;
|
;
|
||||||
@@ -23,3 +26,5 @@ screen_calculate_pointers:
|
|||||||
|
|
||||||
jsr screen_calculate_PNT_USER
|
jsr screen_calculate_PNT_USER
|
||||||
jmp screen_calculate_PNTR_LNMX
|
jmp screen_calculate_PNTR_LNMX
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Scroll the whole screen up by 1 logical line, described in:
|
; Scroll the whole screen up by 1 logical line, described in:
|
||||||
;
|
;
|
||||||
@@ -130,3 +133,5 @@ screen_scroll_up_loop_done:
|
|||||||
; Recalculate PNT and USER
|
; Recalculate PNT and USER
|
||||||
|
|
||||||
jmp screen_calculate_PNT_USER
|
jmp screen_calculate_PNT_USER
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Well-known routine, described in:
|
; Well-known routine, described in:
|
||||||
;
|
;
|
||||||
@@ -36,3 +39,5 @@ screen_clear_line:
|
|||||||
|
|
||||||
; Done
|
; Done
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
;; #LAYOUT# STD * #TAKE
|
;; #LAYOUT# STD * #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Well-known Kernal routine, described in:
|
; Well-known Kernal routine, described in:
|
||||||
;
|
;
|
||||||
@@ -22,3 +25,5 @@ screen_calculate_USER:
|
|||||||
sta USER+1
|
sta USER+1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
;; #LAYOUT# STD * #TAKE
|
;; #LAYOUT# STD * #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Well-known Kernal table, described in:
|
; Well-known Kernal table, described in:
|
||||||
;
|
;
|
||||||
@@ -15,3 +18,5 @@ screen_line_lo_bytes:
|
|||||||
!for line, 0, 24 {
|
!for line, 0, 24 {
|
||||||
!byte <(line * 40)
|
!byte <(line * 40)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Official Kernal routine, described in:
|
; Official Kernal routine, described in:
|
||||||
;
|
;
|
||||||
@@ -50,4 +53,6 @@ SCREEN:
|
|||||||
|
|
||||||
pla
|
pla
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
|
||||||
screen_advance_to_next_line:
|
screen_advance_to_next_line:
|
||||||
|
|
||||||
@@ -21,3 +24,5 @@ screen_advance_to_next_line:
|
|||||||
sta PNTR
|
sta PNTR
|
||||||
|
|
||||||
jmp chrout_screen_calc_lptr_done
|
jmp chrout_screen_calc_lptr_done
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Set pointers PNT and USER to current screen line
|
; Set pointers PNT and USER to current screen line
|
||||||
;
|
;
|
||||||
@@ -60,3 +63,5 @@ screen_calculate_USER:
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Sets PNTR in a proper range (0-39 or 40-79)
|
; Sets PNTR in a proper range (0-39 or 40-79)
|
||||||
; Sets LNMX to 39 or 79
|
; Sets LNMX to 39 or 79
|
||||||
@@ -62,3 +65,5 @@ screen_calculate_lnmx_79:
|
|||||||
lda #79
|
lda #79
|
||||||
sta LNMX
|
sta LNMX
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
|
||||||
screen_check_space_ends_line:
|
screen_check_space_ends_line:
|
||||||
|
|
||||||
@@ -12,3 +15,5 @@ screen_check_space_ends_line:
|
|||||||
cmp #$20
|
cmp #$20
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Helper routine - check character in .A, toggles quote flag if needed
|
; Helper routine - check character in .A, toggles quote flag if needed
|
||||||
;
|
;
|
||||||
@@ -19,3 +22,5 @@ screen_check_toggle_quote:
|
|||||||
lda #$22 ; restore previous .A valuee
|
lda #$22 ; restore previous .A valuee
|
||||||
@1:
|
@1:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Screen code to PETSCII conversion - see:
|
; Screen code to PETSCII conversion - see:
|
||||||
;
|
;
|
||||||
@@ -70,3 +73,5 @@ s2p_adc_C0:
|
|||||||
|
|
||||||
adc #$C0 ; Carry already clear
|
adc #$C0 ; Carry already clear
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Get PNTR value clipped to 0-39 range in .Y, sets flags to compare with 0, can trash .A
|
; Get PNTR value clipped to 0-39 range in .Y, sets flags to compare with 0, can trash .A
|
||||||
;
|
;
|
||||||
@@ -18,3 +21,5 @@ screen_get_clipped_PNTR:
|
|||||||
@1:
|
@1:
|
||||||
cpy #$00
|
cpy #$00
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
|
||||||
screen_get_logical_line_end_ptr:
|
screen_get_logical_line_end_ptr:
|
||||||
|
|
||||||
@@ -27,3 +30,5 @@ screen_get_logical_line_end_39:
|
|||||||
|
|
||||||
ldy #39
|
ldy #39
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
|
||||||
screen_grow_logical_line_done_scroll:
|
screen_grow_logical_line_done_scroll:
|
||||||
|
|
||||||
@@ -142,3 +145,5 @@ screen_grow_logical_line_copy_done:
|
|||||||
inx
|
inx
|
||||||
jsr screen_clear_line
|
jsr screen_clear_line
|
||||||
jmp screen_calculate_PNTR_LNMX
|
jmp screen_calculate_PNTR_LNMX
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Helper routine to blank screen
|
; Helper routine to blank screen
|
||||||
;
|
;
|
||||||
@@ -31,3 +34,5 @@ screen_off:
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
;
|
;
|
||||||
; Helper routine to show screen
|
; Helper routine to show screen
|
||||||
;
|
;
|
||||||
@@ -22,3 +25,5 @@ screen_on:
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
|
||||||
screen_preserve_sal_eal:
|
screen_preserve_sal_eal:
|
||||||
|
|
||||||
@@ -33,3 +36,5 @@ screen_common_sal_eal:
|
|||||||
+phy_trash_a
|
+phy_trash_a
|
||||||
+phx_trash_a
|
+phx_trash_a
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
;; #LAYOUT# * KERNAL_0 #TAKE
|
;; #LAYOUT# * KERNAL_0 #TAKE
|
||||||
;; #LAYOUT# * * #IGNORE
|
;; #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
|
; Not on a Blade, whose Terminal Card holds the screen editor (src/kernal/arnitech)
|
||||||
|
!ifndef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
|
||||||
screen_restore_sal_eal:
|
screen_restore_sal_eal:
|
||||||
|
|
||||||
@@ -27,4 +30,6 @@ screen_restore_sal_eal:
|
|||||||
sta SAL+0
|
sta SAL+0
|
||||||
|
|
||||||
jmp screen_common_sal_eal
|
jmp screen_common_sal_eal
|
||||||
|
|
||||||
|
|
||||||
|
} ; CONFIG_ARNITECH_BLADE
|
||||||
@@ -63,6 +63,10 @@ udtim_keyboard:
|
|||||||
|
|
||||||
+STUB_IMPLEMENTATION
|
+STUB_IMPLEMENTATION
|
||||||
|
|
||||||
|
} else ifdef CONFIG_ARNITECH_BLADE {
|
||||||
|
|
||||||
|
jmp udtim_terminal_stop
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
; According to [CM64], page 27, the action we have to perform is to copy
|
; According to [CM64], page 27, the action we have to perform is to copy
|
||||||
|
|||||||
Reference in new issue
Block a user