mirror of
https://github.com/ksherlock/itty-bitty-vtty.git
synced 2024-06-14 06:29:29 +00:00
191 lines
2.1 KiB
ArmAsm
191 lines
2.1 KiB
ArmAsm
|
|
|
|
lst off
|
|
rel
|
|
|
|
xc
|
|
xc
|
|
cas se
|
|
tbx on ; qasm
|
|
|
|
use apple2gs.equ
|
|
|
|
|
|
* alternate character set
|
|
* $00-$1f = upper inverse ( asci value - $40)
|
|
* $20-$3f = special inverse (ascii value)
|
|
* $40-$4f = mouse text
|
|
* $60-$7f = lower inverse (= ascii value)
|
|
* $80-$9f = upper [redundant]
|
|
* $a0-$bf = special (high ascii)
|
|
* $c0-$df = upper (high ascii)
|
|
* $e0-$ff = lower (high ascii)
|
|
|
|
|
|
* 40-column control panel
|
|
* TODO - if 80 column set in preferences, draw centered in 80-column mode
|
|
|
|
init_cda ent
|
|
php
|
|
rep #$30
|
|
psl #handle
|
|
_InstallCDA
|
|
plp
|
|
rts
|
|
|
|
handle adrl Header ; can use a fake handle for now, until we need to _RemoveCDA
|
|
Header
|
|
str 'Virtual Terminal'
|
|
adrl start
|
|
adrl shutdown
|
|
|
|
shutdown
|
|
mx %00
|
|
rtl
|
|
|
|
start
|
|
mx %00
|
|
|
|
phb
|
|
phd
|
|
|
|
phk
|
|
plb
|
|
|
|
sep #$30
|
|
sta TXTSET
|
|
sta CLR80VID
|
|
sta SETALTCHAR
|
|
rep #$30
|
|
|
|
jsr clear
|
|
jsr box
|
|
|
|
|
|
:keyloop
|
|
lda KBD
|
|
bpl :keyloop
|
|
sta KEYSTROBE
|
|
|
|
pld
|
|
plb
|
|
rtl
|
|
|
|
|
|
clear
|
|
ldx #23*2
|
|
lda #" "
|
|
:loop
|
|
ldy text,x
|
|
|
|
]offset equ 0
|
|
lup 20
|
|
sta |0+]offset,y
|
|
]offset equ ]offset+2
|
|
--^
|
|
|
|
dex
|
|
dex
|
|
bpl :loop
|
|
rts
|
|
|
|
|
|
box
|
|
php
|
|
|
|
* top line
|
|
lda #"_ "
|
|
sta $0400+38
|
|
|
|
lda #" _"
|
|
sta $0400
|
|
|
|
lda #"__"
|
|
ldx #34
|
|
|
|
]loop sta $0400+2,x
|
|
dex
|
|
dex
|
|
bpl ]loop
|
|
|
|
* bottom line.
|
|
* 'L' = $4c = _ but high
|
|
lda #'L '!$8000 ; keep ' ' high ascii.
|
|
sta $07d0+38
|
|
|
|
lda #' L'!$0080 ; keep ' ' high ascii.
|
|
sta $07d0
|
|
|
|
lda #'LL'
|
|
ldx #34
|
|
|
|
]loop sta $07d0+2,x
|
|
dex
|
|
dex
|
|
bpl ]loop
|
|
|
|
|
|
* sides
|
|
sep #$20
|
|
lda #'Z'
|
|
ldx #21*2 ; skip top/bottom lines.
|
|
]loop ldy text+2,x
|
|
sta |$0,y
|
|
dex
|
|
dex
|
|
bpl ]loop
|
|
|
|
sep #$20
|
|
lda #'_'
|
|
ldx #21*2 ; skip top/bottom lines.
|
|
]loop ldy text+2,x
|
|
sta |$0+39,y
|
|
dex
|
|
dex
|
|
bpl ]loop
|
|
|
|
|
|
plp
|
|
rts
|
|
|
|
text
|
|
dw $0400
|
|
dw $0480
|
|
dw $0500
|
|
dw $0580
|
|
dw $0600
|
|
dw $0680
|
|
dw $0700
|
|
dw $0780
|
|
dw $0428
|
|
dw $04a8
|
|
dw $0528
|
|
dw $05a8
|
|
dw $0628
|
|
dw $06a8
|
|
dw $0728
|
|
dw $07a8
|
|
dw $0450
|
|
dw $04d0
|
|
dw $0550
|
|
dw $05d0
|
|
dw $0650
|
|
dw $06d0
|
|
dw $0750
|
|
dw $07d0
|
|
|
|
*box
|
|
* asc " ______________________________________ "
|
|
* asc da," Terminal ",' ',df
|
|
* db $da
|
|
* ds 38,$cc
|
|
* db $df
|
|
|
|
|
|
* asc da," Select: ",c8,df,ca,cb," Cancel: Esc Save: ",cd,df
|
|
* asc " "
|
|
* ds 38,$cc
|
|
* asc " "
|
|
|
|
|
|
sav vt100.cda.L |