2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
lst off
|
|
|
|
rel
|
|
|
|
|
|
|
|
xc
|
|
|
|
xc
|
|
|
|
cas se
|
|
|
|
tbx on ; qasm
|
|
|
|
|
|
|
|
use apple2gs.equ
|
2021-10-25 17:17:47 +00:00
|
|
|
use vt.equ
|
2021-12-06 03:47:40 +00:00
|
|
|
use debug
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
dum 0
|
|
|
|
* cda direct page variables
|
|
|
|
ptr ds 2
|
|
|
|
dend
|
|
|
|
|
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
init_cda ent
|
|
|
|
php
|
|
|
|
rep #$30
|
2022-01-30 20:50:54 +00:00
|
|
|
|
|
|
|
*
|
|
|
|
* rom 1 IIgs InstallCDA clobbers $3c-$43 on the direct page
|
|
|
|
*
|
|
|
|
|
|
|
|
phd
|
|
|
|
pea #0
|
|
|
|
pld
|
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
psl #handle
|
|
|
|
_InstallCDA
|
2022-01-30 20:50:54 +00:00
|
|
|
|
|
|
|
pld
|
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
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
|
2021-12-06 03:47:40 +00:00
|
|
|
* variables.
|
|
|
|
page ds 2
|
|
|
|
|
|
|
|
|
2022-01-15 21:15:05 +00:00
|
|
|
MAX_PAGE equ 8
|
2021-12-06 03:47:40 +00:00
|
|
|
pages dw variables
|
2022-01-15 20:59:29 +00:00
|
|
|
dw hexdump_r
|
|
|
|
dw hexdump_w
|
2021-12-06 03:47:40 +00:00
|
|
|
dw ssc_registers
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
shutdown
|
|
|
|
mx %00
|
|
|
|
rtl
|
|
|
|
|
|
|
|
start
|
|
|
|
mx %00
|
|
|
|
|
|
|
|
phb
|
|
|
|
phd
|
|
|
|
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
|
|
|
|
sep #$30
|
|
|
|
sta TXTSET
|
|
|
|
sta CLR80VID
|
|
|
|
sta SETALTCHAR
|
|
|
|
rep #$30
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
stz page
|
2021-10-23 16:25:20 +00:00
|
|
|
jsr clear
|
|
|
|
jsr box
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
main
|
|
|
|
|
|
|
|
jsr clear_inner
|
|
|
|
ldx page
|
|
|
|
jsr (pages,x)
|
2022-01-15 20:59:29 +00:00
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
:keyloop
|
|
|
|
lda KBD
|
|
|
|
bpl :keyloop
|
|
|
|
sta KEYSTROBE
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
and #$7f
|
|
|
|
|
|
|
|
cmp #$1b
|
|
|
|
beq :exit
|
|
|
|
|
|
|
|
cmp #$08 ; left
|
|
|
|
beq :left
|
|
|
|
cmp #$15
|
|
|
|
beq :right
|
|
|
|
bra :keyloop
|
|
|
|
|
|
|
|
:exit
|
2021-10-23 16:25:20 +00:00
|
|
|
pld
|
|
|
|
plb
|
|
|
|
rtl
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
:left lda page
|
|
|
|
dec
|
|
|
|
dec
|
|
|
|
bpl :lok
|
2022-01-15 21:15:05 +00:00
|
|
|
lda #MAX_PAGE-2
|
2021-12-06 03:47:40 +00:00
|
|
|
:lok sta page
|
|
|
|
bra main
|
|
|
|
|
|
|
|
:right lda page
|
|
|
|
inc
|
|
|
|
inc
|
2022-01-15 21:15:05 +00:00
|
|
|
cmp #MAX_PAGE
|
2021-12-06 03:47:40 +00:00
|
|
|
bcc :rok
|
|
|
|
lda #0
|
|
|
|
:rok sta page
|
|
|
|
bra main
|
|
|
|
|
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
clear_inner
|
|
|
|
* clear the inner contents.
|
|
|
|
ldx #16*2
|
|
|
|
lda #" "
|
|
|
|
:loop ldy text+8,x
|
|
|
|
|
|
|
|
]offset equ 4
|
|
|
|
lup 16
|
|
|
|
sta |0+]offset,y
|
|
|
|
]offset equ ]offset+2
|
|
|
|
--^
|
|
|
|
|
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bpl :loop
|
|
|
|
rts
|
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
box
|
|
|
|
php
|
|
|
|
|
|
|
|
* top line
|
|
|
|
lda #"_ "
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |line_0+38
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
lda #" _"
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |line_0
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
lda #"__"
|
|
|
|
ldx #34
|
|
|
|
|
2021-10-25 17:17:47 +00:00
|
|
|
]loop sta |line_0+2,x
|
2021-10-23 16:25:20 +00:00
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bpl ]loop
|
|
|
|
|
|
|
|
* bottom line.
|
|
|
|
* 'L' = $4c = _ but high
|
|
|
|
lda #'L '!$8000 ; keep ' ' high ascii.
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |line_23+38
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
lda #' L'!$0080 ; keep ' ' high ascii.
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |line_23
|
2021-10-23 16:25:20 +00:00
|
|
|
|
|
|
|
lda #'LL'
|
|
|
|
ldx #34
|
|
|
|
|
2021-10-25 17:17:47 +00:00
|
|
|
]loop sta |line_23+2,x
|
2021-10-23 16:25:20 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2021-10-23 18:53:35 +00:00
|
|
|
rep #$20
|
|
|
|
|
|
|
|
* title
|
|
|
|
ldx #36
|
|
|
|
]loop lda :title,x
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |line_1+1,x
|
2021-10-23 18:53:35 +00:00
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bpl ]loop
|
|
|
|
|
|
|
|
lda #'LL'
|
|
|
|
ldx #36
|
2021-10-25 17:17:47 +00:00
|
|
|
]loop sta |line_2+1,x
|
2021-10-23 18:53:35 +00:00
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bpl ]loop
|
|
|
|
|
|
|
|
* bottom instructions
|
|
|
|
ldx #:instr_len-2
|
|
|
|
]loop lda :instr,x
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |line_22+1,x
|
2021-10-23 18:53:35 +00:00
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bpl ]loop
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
plp
|
|
|
|
rts
|
|
|
|
|
2021-10-23 18:53:35 +00:00
|
|
|
:instr
|
|
|
|
asc " Select: ",'H'," ",'U'," ",'J'," ",'K'
|
|
|
|
asc " Cancel:Esc Save: ",'M'," "
|
|
|
|
:instr_len equ *-:instr
|
|
|
|
err :instr_len&1
|
|
|
|
|
|
|
|
|
|
|
|
:title
|
|
|
|
asc " Virtual Terminal "
|
|
|
|
ds 38-18,' '
|
|
|
|
|
|
|
|
|
2021-10-25 17:17:47 +00:00
|
|
|
* print variables.
|
2021-12-06 03:47:40 +00:00
|
|
|
variables
|
2021-10-25 17:17:47 +00:00
|
|
|
php
|
|
|
|
sep #$20
|
2022-01-15 20:59:29 +00:00
|
|
|
jsr local
|
2021-10-25 17:17:47 +00:00
|
|
|
jsr decanm
|
|
|
|
jsr decom
|
|
|
|
jsr deckpam
|
|
|
|
jsr decckm
|
|
|
|
jsr decawm
|
2022-01-29 20:41:14 +00:00
|
|
|
jsr decarm
|
2021-10-25 17:17:47 +00:00
|
|
|
jsr decscnm
|
2022-01-30 20:52:32 +00:00
|
|
|
jsr deccolm
|
2021-10-25 17:17:47 +00:00
|
|
|
jsr lnm
|
2021-12-06 03:47:40 +00:00
|
|
|
jsr sgr
|
2022-01-29 20:41:14 +00:00
|
|
|
jsr dectm
|
|
|
|
jsr decbm
|
|
|
|
jsr decx
|
|
|
|
jsr decy
|
2021-10-25 17:17:47 +00:00
|
|
|
plp
|
|
|
|
rts
|
|
|
|
|
2022-01-15 20:59:29 +00:00
|
|
|
local
|
|
|
|
mx %10
|
|
|
|
ldy #line_4+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+LOCAL
|
|
|
|
jmp print_on_off
|
|
|
|
|
|
|
|
:str asc "LOCAL: ",00
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
decanm
|
|
|
|
mx %10
|
2022-01-15 20:59:29 +00:00
|
|
|
ldy #line_5+4
|
2021-10-25 17:17:47 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2021-12-06 03:47:40 +00:00
|
|
|
lda DPAGE+DECANM
|
2021-10-25 17:17:47 +00:00
|
|
|
bmi :100
|
|
|
|
ldx #:vt52
|
|
|
|
jmp print_xy_str
|
|
|
|
|
|
|
|
:100 ldx #:vt100
|
|
|
|
jmp print_xy_str
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "DECANM: ",00
|
2021-10-25 17:17:47 +00:00
|
|
|
:vt100 asc "vt100",00
|
|
|
|
:vt52 asc "vt52",00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
decom
|
|
|
|
mx %10
|
2022-01-29 20:41:14 +00:00
|
|
|
ldy #line_6+4
|
2021-10-25 17:17:47 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECOM
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_on_off
|
2021-10-25 17:17:47 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "DECOM: ",00
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
deckpam
|
|
|
|
mx %10
|
2022-01-29 20:41:14 +00:00
|
|
|
ldy #line_7+4
|
2021-10-25 17:17:47 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECKPAM
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_on_off
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
:str asc "DECKPAM: ",00
|
|
|
|
|
|
|
|
decckm
|
|
|
|
mx %10
|
2022-01-29 20:41:14 +00:00
|
|
|
ldy #line_8+4
|
2021-10-25 17:17:47 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECCKM
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_on_off
|
2021-10-25 17:17:47 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "DECCKM: ",00
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
decawm
|
|
|
|
mx %10
|
2022-01-29 20:41:14 +00:00
|
|
|
ldy #line_9+4
|
2021-10-25 17:17:47 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECAWM
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_on_off
|
2021-10-25 17:17:47 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "DECAWM: ",00
|
2021-10-25 17:17:47 +00:00
|
|
|
|
2022-01-29 20:41:14 +00:00
|
|
|
decarm
|
|
|
|
mx %10
|
|
|
|
ldy #line_10+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECARM
|
|
|
|
jmp print_on_off
|
|
|
|
|
|
|
|
:str asc "DECARM: ",00
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
decscnm
|
|
|
|
mx %10
|
2022-01-29 20:41:14 +00:00
|
|
|
ldy #line_11+4
|
2021-10-25 17:17:47 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECSCNM
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_on_off
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
:str asc "DECSCNM: ",00
|
|
|
|
|
|
|
|
|
2022-01-30 20:52:32 +00:00
|
|
|
deccolm
|
2021-10-25 17:17:47 +00:00
|
|
|
mx %10
|
2022-01-29 20:41:14 +00:00
|
|
|
ldy #line_12+4
|
2021-10-25 17:17:47 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2022-01-30 20:52:32 +00:00
|
|
|
lda DPAGE+DECCOLM
|
|
|
|
jmp print_on_off
|
|
|
|
|
|
|
|
:str asc "DECCOLM: ",00
|
|
|
|
|
|
|
|
|
|
|
|
lnm
|
|
|
|
mx %10
|
|
|
|
ldy #line_13+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2021-10-25 17:17:47 +00:00
|
|
|
lda DPAGE+LNM
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_on_off
|
2021-10-25 17:17:47 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "LNM: ",00
|
2021-10-25 17:17:47 +00:00
|
|
|
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
sgr
|
|
|
|
mx %10
|
2022-01-30 20:52:32 +00:00
|
|
|
ldy #line_14+4
|
2021-12-06 03:47:40 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+SGR
|
|
|
|
jmp print_binary
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "SGR: ",00
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
|
2022-01-29 20:41:14 +00:00
|
|
|
dectm
|
|
|
|
mx %10
|
2022-01-30 20:52:32 +00:00
|
|
|
ldy #line_15+4
|
2022-01-29 20:41:14 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECTM
|
|
|
|
inc
|
|
|
|
jmp print_number
|
|
|
|
|
|
|
|
:str asc "DECTM: ",00
|
|
|
|
|
|
|
|
decbm
|
|
|
|
mx %10
|
2022-01-30 20:52:32 +00:00
|
|
|
ldy #line_16+4
|
2022-01-29 20:41:14 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+DECBM
|
|
|
|
inc
|
|
|
|
jmp print_number
|
|
|
|
|
|
|
|
:str asc "DECBM: ",00
|
|
|
|
|
|
|
|
|
|
|
|
decx
|
|
|
|
mx %10
|
2022-01-30 20:52:32 +00:00
|
|
|
ldy #line_17+4
|
2022-01-29 20:41:14 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+x
|
|
|
|
and #$7f
|
|
|
|
inc
|
|
|
|
jmp print_number
|
|
|
|
|
|
|
|
:str asc "X: ",00
|
|
|
|
|
|
|
|
decy
|
|
|
|
mx %10
|
2022-01-30 20:52:32 +00:00
|
|
|
ldy #line_18+4
|
2022-01-29 20:41:14 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda DPAGE+y
|
|
|
|
inc
|
|
|
|
jmp print_number
|
|
|
|
|
|
|
|
:str asc "Y: ",00
|
|
|
|
|
|
|
|
|
2021-10-25 17:17:47 +00:00
|
|
|
print_xy_str
|
|
|
|
mx %10
|
|
|
|
:loop lda |$0,x
|
|
|
|
beq :end
|
|
|
|
sta |$0,y
|
|
|
|
inx
|
|
|
|
iny
|
|
|
|
bra :loop
|
|
|
|
:end
|
|
|
|
rts
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
print_on_off
|
2021-10-25 17:17:47 +00:00
|
|
|
mx %10
|
|
|
|
bmi :set
|
|
|
|
ldx #:off
|
|
|
|
jmp print_xy_str
|
|
|
|
:set ldx #:on
|
|
|
|
jmp print_xy_str
|
|
|
|
|
|
|
|
:on asc "on",00
|
|
|
|
:off asc "off",00
|
|
|
|
|
|
|
|
print_number
|
2021-12-20 01:16:52 +00:00
|
|
|
debug print_number
|
|
|
|
*
|
|
|
|
* print a base-10 number, 0-255
|
|
|
|
* a = #
|
2021-10-25 17:17:47 +00:00
|
|
|
mx %10
|
|
|
|
|
2021-12-20 01:16:52 +00:00
|
|
|
|
|
|
|
ldx #0
|
|
|
|
|
|
|
|
:100
|
|
|
|
cmp #100
|
|
|
|
bcc :10x
|
|
|
|
inx
|
|
|
|
* sec
|
|
|
|
sbc #100
|
|
|
|
bra :100
|
|
|
|
|
|
|
|
:10x
|
|
|
|
cpx #0
|
|
|
|
beq :10
|
|
|
|
|
|
|
|
pha
|
|
|
|
txa
|
|
|
|
* clc
|
|
|
|
* adc #"0"
|
|
|
|
ora #"0"
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |$0,y
|
|
|
|
iny
|
|
|
|
pla
|
2021-12-20 01:16:52 +00:00
|
|
|
ldx #0
|
|
|
|
|
|
|
|
:10
|
|
|
|
cmp #10
|
|
|
|
bcc :1x
|
|
|
|
inx
|
|
|
|
sbc #10
|
|
|
|
bra :10
|
|
|
|
|
|
|
|
:1x
|
|
|
|
cpx #0
|
|
|
|
beq :1
|
|
|
|
pha
|
|
|
|
txa
|
|
|
|
* clc
|
|
|
|
* adc #"0"
|
|
|
|
ora #"0"
|
2021-10-25 17:17:47 +00:00
|
|
|
sta |$0,y
|
|
|
|
iny
|
|
|
|
pla
|
|
|
|
|
2021-12-20 01:16:52 +00:00
|
|
|
:1
|
|
|
|
* clc
|
|
|
|
* adc #"0"
|
|
|
|
ora #"0"
|
|
|
|
sta |$0,y
|
|
|
|
iny
|
|
|
|
rts
|
2021-10-25 17:17:47 +00:00
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
print_binary
|
|
|
|
mx %10
|
|
|
|
* pha
|
|
|
|
* lda #"%"
|
|
|
|
* sta |$0,y
|
|
|
|
* iny
|
|
|
|
* pla
|
|
|
|
lup 8
|
|
|
|
asl
|
|
|
|
pha
|
|
|
|
lda #0
|
|
|
|
adc #"0"
|
|
|
|
sta |$0,y
|
|
|
|
iny
|
|
|
|
pla
|
|
|
|
--^
|
|
|
|
rts
|
|
|
|
|
|
|
|
print_hex
|
|
|
|
mx %10
|
|
|
|
|
|
|
|
xba
|
|
|
|
lda #0
|
|
|
|
xba
|
|
|
|
pha
|
|
|
|
lsr
|
|
|
|
lsr
|
|
|
|
lsr
|
|
|
|
lsr
|
|
|
|
tax
|
|
|
|
lda hex,x
|
|
|
|
sta |$0,y
|
|
|
|
iny
|
|
|
|
pla
|
|
|
|
and #$0f
|
|
|
|
tax
|
|
|
|
lda hex,x
|
|
|
|
sta |$0,y
|
|
|
|
iny
|
|
|
|
rts
|
|
|
|
|
2022-01-15 20:59:29 +00:00
|
|
|
|
|
|
|
hexdump_r
|
2021-12-06 03:47:40 +00:00
|
|
|
*
|
|
|
|
* $1e00 buffer
|
|
|
|
*
|
|
|
|
|
|
|
|
mx %00
|
|
|
|
|
2022-01-09 03:26:34 +00:00
|
|
|
lda DPAGE+read_q_tail
|
|
|
|
sec
|
|
|
|
sbc #8*16
|
2022-01-17 18:11:00 +00:00
|
|
|
and #$00ff
|
|
|
|
ora #$1e00
|
|
|
|
jmp hexdump_common
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
|
2022-01-17 18:11:00 +00:00
|
|
|
hexdump_w
|
|
|
|
*
|
|
|
|
* $1d00 buffer
|
|
|
|
*
|
|
|
|
mx %00
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
|
2022-01-17 18:11:00 +00:00
|
|
|
lda DPAGE+write_q_tail
|
|
|
|
sec
|
|
|
|
sbc #8*16
|
|
|
|
and #$00ff
|
|
|
|
ora #$1d00
|
|
|
|
jmp hexdump_common
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
|
2022-01-17 18:11:00 +00:00
|
|
|
hexdump_common
|
|
|
|
*
|
|
|
|
* a = address to start.
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2022-01-15 20:59:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
:screen equ 0
|
|
|
|
:screen2 equ 2
|
2022-01-17 18:11:00 +00:00
|
|
|
*:offset equ 4
|
2022-01-15 20:59:29 +00:00
|
|
|
:ptr equ 6
|
|
|
|
:count equ 8
|
|
|
|
:row equ 10
|
|
|
|
:c equ 12
|
|
|
|
|
|
|
|
mx %00
|
|
|
|
debug hexdump
|
|
|
|
|
2022-01-17 18:11:00 +00:00
|
|
|
|
2022-01-15 20:59:29 +00:00
|
|
|
php
|
2022-01-17 18:11:00 +00:00
|
|
|
sta :ptr
|
2022-01-15 20:59:29 +00:00
|
|
|
lda #0
|
|
|
|
|
2022-01-17 18:11:00 +00:00
|
|
|
* stz :offset
|
2022-01-15 20:59:29 +00:00
|
|
|
|
|
|
|
sep #$20
|
|
|
|
|
|
|
|
ldx #4*2
|
|
|
|
stx :row
|
|
|
|
|
|
|
|
|
|
|
|
:one_row
|
|
|
|
|
|
|
|
ldx :row
|
|
|
|
ldy text,x
|
|
|
|
sty :screen
|
|
|
|
sty :screen2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lda #8
|
|
|
|
sta :count
|
|
|
|
|
|
|
|
:one_byte
|
|
|
|
|
2022-01-17 18:11:00 +00:00
|
|
|
lda (:ptr)
|
|
|
|
inc :ptr
|
2022-01-15 20:59:29 +00:00
|
|
|
|
|
|
|
sta :c
|
|
|
|
lsr
|
|
|
|
lsr
|
|
|
|
lsr
|
|
|
|
lsr
|
|
|
|
tax
|
|
|
|
lda hex,x
|
|
|
|
ldy :screen
|
|
|
|
sta |$04,y
|
|
|
|
iny
|
|
|
|
lda :c
|
|
|
|
and #$0f
|
|
|
|
tax
|
|
|
|
lda hex,x
|
|
|
|
sta |$04,y
|
|
|
|
iny
|
|
|
|
lda #" "
|
|
|
|
sta |$04,y
|
|
|
|
iny
|
|
|
|
sty :screen
|
|
|
|
|
|
|
|
|
|
|
|
* ascii
|
|
|
|
ldx #"."
|
|
|
|
lda :c
|
|
|
|
cmp #$20
|
|
|
|
blt :dot
|
|
|
|
cmp #$80
|
|
|
|
bcs :dot
|
|
|
|
ora #$80
|
|
|
|
tax
|
|
|
|
:dot
|
|
|
|
txa
|
|
|
|
ldy :screen2
|
|
|
|
sta |8*3+4,y
|
|
|
|
iny
|
|
|
|
sty :screen2
|
|
|
|
|
|
|
|
|
|
|
|
dec :count
|
|
|
|
bne :one_byte
|
|
|
|
|
|
|
|
|
|
|
|
ldx :row
|
|
|
|
inx
|
|
|
|
inx
|
|
|
|
stx :row
|
|
|
|
cpx #20*2
|
|
|
|
bcc :one_row
|
|
|
|
|
|
|
|
plp
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
hex asc "0123456789abcdef"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ssc_registers
|
|
|
|
debug ssc_registers
|
|
|
|
*
|
|
|
|
* print SSC read registers. read reg 8 (incoming data byte) is skipped.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
|
|
|
|
*SCCBREG equ $c038
|
|
|
|
*SCCAREG equ $c039
|
|
|
|
*SCCBDATA equ $c03a
|
|
|
|
*SCCADATA equ $c03b
|
|
|
|
|
|
|
|
* read everything at once.
|
|
|
|
|
|
|
|
php
|
|
|
|
sep #$34 ; short m/x, ints off
|
|
|
|
lda #0
|
|
|
|
xba
|
|
|
|
* sei
|
|
|
|
ldx #0
|
|
|
|
lda SCCAREG ; sync
|
2021-12-07 01:14:35 +00:00
|
|
|
lda SCCBREG ; sync
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
2021-12-06 03:47:40 +00:00
|
|
|
sta ssc_data+0
|
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
|
|
|
sta ssc_data+1
|
2021-12-07 01:14:35 +00:00
|
|
|
|
|
|
|
inx ;1
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
|
|
|
sta ssc_data+2
|
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
|
|
|
sta ssc_data+3
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
inx ;2
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
|
|
|
sta ssc_data+4
|
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
|
|
|
sta ssc_data+5
|
2021-12-07 01:14:35 +00:00
|
|
|
|
|
|
|
inx ;3
|
|
|
|
|
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
|
|
|
sta ssc_data+6
|
2021-12-06 03:47:40 +00:00
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
2021-12-07 01:14:35 +00:00
|
|
|
sta ssc_data+7
|
|
|
|
|
|
|
|
|
|
|
|
ldx #10 ; 10
|
|
|
|
|
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
|
|
|
sta ssc_data+8
|
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
|
|
|
sta ssc_data+9
|
|
|
|
|
|
|
|
|
|
|
|
ldx #12 ; 12
|
|
|
|
|
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
|
|
|
sta ssc_data+10
|
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
|
|
|
sta ssc_data+11
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
inx ; 13
|
2021-12-07 01:14:35 +00:00
|
|
|
|
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
|
|
|
sta ssc_data+12
|
2021-12-06 03:47:40 +00:00
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
2021-12-07 01:14:35 +00:00
|
|
|
sta ssc_data+13
|
|
|
|
|
|
|
|
ldx #15 ; 15
|
|
|
|
|
|
|
|
stx SCCAREG
|
|
|
|
lda SCCAREG
|
|
|
|
sta ssc_data+14
|
2021-12-06 03:47:40 +00:00
|
|
|
stx SCCBREG
|
|
|
|
lda SCCBREG
|
2021-12-07 01:14:35 +00:00
|
|
|
sta ssc_data+15
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
cli
|
|
|
|
rep #$10 ; long x
|
|
|
|
mx %10
|
|
|
|
jsr rr0
|
|
|
|
jsr rr1
|
2021-12-07 01:14:35 +00:00
|
|
|
jsr rr2
|
2021-12-06 03:47:40 +00:00
|
|
|
jsr rr3 ; only exists in channel A.
|
|
|
|
jsr rr10
|
|
|
|
jsr rr12 ; baud low
|
|
|
|
* jsr rr13 ; baud high
|
|
|
|
jsr rr15
|
|
|
|
plp
|
|
|
|
rts
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
ssc_data ds 16
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
rr0
|
|
|
|
mx %10
|
|
|
|
ldy #line_5+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
lda ssc_data+0
|
2021-12-07 01:14:35 +00:00
|
|
|
jsr print_binary
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
lda ssc_data+1
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_binary
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "RR 0: ",00
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
rr1
|
|
|
|
mx %10
|
|
|
|
ldy #line_6+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2021-12-07 01:14:35 +00:00
|
|
|
lda ssc_data+2
|
|
|
|
jsr print_binary
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
lda ssc_data+3
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_binary
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "RR 1: ",00
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
rr2
|
2021-12-06 03:47:40 +00:00
|
|
|
mx %10
|
|
|
|
ldy #line_7+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2021-12-07 01:14:35 +00:00
|
|
|
lda ssc_data+4
|
|
|
|
jsr print_binary
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
lda ssc_data+5
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_binary
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "RR 2: ",00
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
rr3
|
2021-12-06 03:47:40 +00:00
|
|
|
mx %10
|
|
|
|
ldy #line_8+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2021-12-07 01:14:35 +00:00
|
|
|
lda ssc_data+6
|
|
|
|
jsr print_binary
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
lda ssc_data+7
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_binary
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "RR 3: ",00
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
rr10
|
2021-12-06 03:47:40 +00:00
|
|
|
mx %10
|
|
|
|
ldy #line_9+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2021-12-07 01:14:35 +00:00
|
|
|
lda ssc_data+8
|
|
|
|
jsr print_binary
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
lda ssc_data+9
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_binary
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "RR 10: ",00
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
* 12/13 are baud
|
|
|
|
|
|
|
|
rr12
|
2021-12-06 03:47:40 +00:00
|
|
|
mx %10
|
|
|
|
ldy #line_10+4
|
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
iny
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
iny
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
lda ssc_data+12
|
|
|
|
jsr print_hex
|
|
|
|
lda ssc_data+10
|
|
|
|
jsr print_hex
|
2021-12-06 03:47:40 +00:00
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
iny
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
|
|
|
|
lda ssc_data+13
|
2021-12-06 03:47:40 +00:00
|
|
|
jsr print_hex
|
2021-12-07 01:14:35 +00:00
|
|
|
lda ssc_data+11
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_hex
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
|
|
|
|
:str asc "RR 12: ",00
|
|
|
|
|
2021-12-06 03:47:40 +00:00
|
|
|
|
|
|
|
rr15
|
|
|
|
mx %10
|
2021-12-07 01:14:35 +00:00
|
|
|
ldy #line_11+4
|
2021-12-06 03:47:40 +00:00
|
|
|
ldx #:str
|
|
|
|
jsr print_xy_str
|
2021-12-07 01:14:35 +00:00
|
|
|
|
|
|
|
lda ssc_data+14
|
|
|
|
jsr print_binary
|
|
|
|
iny
|
|
|
|
iny
|
|
|
|
lda ssc_data+15
|
2021-12-06 03:47:40 +00:00
|
|
|
jmp print_binary
|
|
|
|
|
2021-12-07 01:14:35 +00:00
|
|
|
:str asc "RR 15: ",00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-25 17:17:47 +00:00
|
|
|
|
2021-10-23 16:25:20 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-25 17:17:47 +00:00
|
|
|
line_0 equ $0400
|
|
|
|
line_1 equ $0480
|
|
|
|
line_2 equ $0500
|
|
|
|
line_3 equ $0580
|
|
|
|
line_4 equ $0600
|
|
|
|
line_5 equ $0680
|
|
|
|
line_6 equ $0700
|
|
|
|
line_7 equ $0780
|
|
|
|
line_8 equ $0428
|
|
|
|
line_9 equ $04a8
|
|
|
|
line_10 equ $0528
|
|
|
|
line_11 equ $05a8
|
|
|
|
line_12 equ $0628
|
|
|
|
line_13 equ $06a8
|
|
|
|
line_14 equ $0728
|
|
|
|
line_15 equ $07a8
|
|
|
|
line_16 equ $0450
|
|
|
|
line_17 equ $04d0
|
|
|
|
line_18 equ $0550
|
|
|
|
line_19 equ $05d0
|
|
|
|
line_20 equ $0650
|
|
|
|
line_21 equ $06d0
|
|
|
|
line_22 equ $0750
|
|
|
|
line_23 equ $07d0
|
|
|
|
|
|
|
|
|
2021-10-23 18:53:35 +00:00
|
|
|
sav vt100.cda.L
|