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 {
|
||||
|
||||
; 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)
|
||||
|
||||
!addr NATIVE_VECTORS = $FFE4 ; COP, BRK, ABORT, NMI, reserved, IRQ
|
||||
|
||||
Reference in new issue
Block a user