mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-30 08:51:06 +00:00
405 lines
7.4 KiB
Plaintext
405 lines
7.4 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
DRV.TERM.CLRSCR.DN
|
||
ldy #S.DCB.TTY.CV
|
||
sta (ZPDCBPtr),y
|
||
tax
|
||
bra DRV.TERM.CLRSCR.1
|
||
|
||
DRV.TERM.CLRSCR.UP
|
||
ldx #0
|
||
ldy #S.DCB.TTY.CV
|
||
sta (ZPDCBPtr),y
|
||
tay
|
||
bra DRV.TERM.CLRSCR.2
|
||
|
||
DRV.TERM.CLRSCR ldx #0
|
||
|
||
DRV.TERM.CLRSCR.1
|
||
ldy #24
|
||
|
||
DRV.TERM.CLRSCR.2
|
||
sty .1+1
|
||
|
||
sta SET80STORE
|
||
|
||
.1 cpx #$ff SELF MODIFIED
|
||
beq .9
|
||
|
||
jsr DRV.TERM.SETUP.L1X
|
||
|
||
lda #" "
|
||
|
||
bit bActive
|
||
bpl .4
|
||
|
||
sta SETPAGE2
|
||
jsr .7
|
||
|
||
sta CLRPAGE2
|
||
jsr .7
|
||
|
||
.4 sta SETWRITEAUX
|
||
|
||
ldy #79
|
||
|
||
.5 sta (ZPBufBaseL1),y
|
||
dey
|
||
bpl .5
|
||
|
||
sta CLRWRITEAUX
|
||
|
||
inx
|
||
bra .1
|
||
|
||
.7 ldy #39
|
||
|
||
.8 sta (ZPScrBaseL1),y
|
||
dey
|
||
bpl .8
|
||
.9 rts
|
||
*--------------------------------------
|
||
DRV.TERM.LINE0CPY
|
||
ldx #0
|
||
.HS 2C BIT ABS
|
||
DRV.TERM.SCRCPY ldx #23
|
||
|
||
sta SET80STORE
|
||
|
||
.1 ldy #S.FD.DEV.BUFPTR
|
||
lda (pFD),y
|
||
clc
|
||
adc BUF.BASEL,x
|
||
sta .80+1
|
||
|
||
iny
|
||
lda (pFD),y
|
||
adc BUF.BASEH,x
|
||
sta .80+2
|
||
|
||
jsr DRV.TERM.SETUP.L1X.SCR
|
||
|
||
phx
|
||
|
||
sta SETREADAUX
|
||
|
||
ldx #78
|
||
sta SETPAGE2
|
||
|
||
ldy #39
|
||
|
||
jsr .8
|
||
|
||
ldx #79
|
||
sta CLRPAGE2
|
||
|
||
ldy #39
|
||
|
||
jsr .8
|
||
|
||
sta CLRREADAUX
|
||
|
||
plx
|
||
dex
|
||
|
||
bpl .1
|
||
rts
|
||
|
||
.8 ldy #39
|
||
|
||
.80 lda $ffff,x SELF MODIFIED
|
||
|
||
.81 sta (ZPScrBaseL1),y
|
||
dex
|
||
dex
|
||
dey
|
||
bpl .80
|
||
rts
|
||
*--------------------------------------
|
||
DRV.TERM.COPY.XtoL1
|
||
ldy #S.FD.DEV.BUFPTR
|
||
lda (pFD),y
|
||
clc
|
||
adc BUF.BASEL,x
|
||
sta ZPBufBaseL2
|
||
|
||
iny
|
||
lda (pFD),y
|
||
adc BUF.BASEH,x
|
||
sta ZPBufBaseL2+1
|
||
|
||
ldy #79
|
||
|
||
sta SETWRITEAUX
|
||
sta SETREADAUX
|
||
|
||
.1 lda (ZPBufBaseL2),y
|
||
sta (ZPBufBaseL1),y
|
||
dey
|
||
bpl .1
|
||
|
||
sta CLRWRITEAUX
|
||
sta CLRREADAUX
|
||
|
||
bit bActive
|
||
bpl .8
|
||
|
||
lda SCR.BASEL,x
|
||
sta ZPScrBaseL2
|
||
lda SCR.BASEH,x
|
||
sta ZPScrBaseL2+1
|
||
|
||
sta SET80STORE
|
||
sta SETPAGE2
|
||
|
||
jsr .6
|
||
|
||
sta CLRPAGE2
|
||
|
||
.6 ldy #39
|
||
|
||
.7 lda (ZPScrBaseL2),y
|
||
sta (ZPScrBaseL1),y
|
||
dey
|
||
bpl .7
|
||
|
||
.8 rts
|
||
*--------------------------------------
|
||
SetCharAtCurPos pha
|
||
ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
tax
|
||
dey
|
||
lda (ZPDCBPtr),y
|
||
tay
|
||
pla
|
||
*--------------------------------------
|
||
SetCharAtYX cmp #$40
|
||
bcc .1
|
||
|
||
cmp #$60
|
||
bcs .1
|
||
|
||
and #$1F remap UPPERCASE
|
||
|
||
.1 phy
|
||
|
||
ldy #S.DCB.TTY.bNORMAL
|
||
ora (ZPDCBPtr),y
|
||
sta ZPTmpChar
|
||
|
||
ldy #S.DCB.TTY.bG0G1 Select Active Font
|
||
lda (ZPDCBPtr),y
|
||
bpl .2
|
||
iny
|
||
|
||
.2 iny
|
||
|
||
lda (ZPDCBPtr),y
|
||
bpl .3 not Graphic mode
|
||
|
||
lda ZPTmpChar
|
||
cmp #$E0 Normal lowercase ?
|
||
bcc .3
|
||
|
||
tay
|
||
|
||
lda REMAP.E0.FF-$E0,y
|
||
sta ZPTmpChar
|
||
|
||
|
||
.3 jsr DRV.TERM.SETUP.L1X
|
||
ply
|
||
|
||
lda ZPTmpChar
|
||
sta SETWRITEAUX
|
||
sta (ZPBufBaseL1),y
|
||
sta CLRWRITEAUX
|
||
|
||
bit bActive
|
||
bpl SetCharAtYX.8
|
||
|
||
SetCharAtY.SCR pha
|
||
|
||
tya
|
||
lsr
|
||
tay
|
||
|
||
pla
|
||
sta SET80STORE
|
||
bcs .2
|
||
sta SETPAGE2
|
||
.2 sta (ZPScrBaseL1),y
|
||
sta CLRPAGE2
|
||
|
||
SetCharAtYX.8 rts
|
||
*--------------------------------------
|
||
GetCharAtCurPos ldy #S.DCB.TTY.CV
|
||
lda (ZPDCBPtr),y
|
||
tax
|
||
|
||
jsr DRV.TERM.SETUP.L1X
|
||
|
||
ldy #S.DCB.TTY.CH
|
||
lda (ZPDCBPtr),y
|
||
tay
|
||
|
||
sta SETREADAUX
|
||
lda (ZPBufBaseL1),y
|
||
sta CLRREADAUX
|
||
|
||
cmp #$20
|
||
bcs .8
|
||
|
||
* clc
|
||
adc #40 remap $00-$1F uppercase
|
||
|
||
.8 rts
|
||
*--------------------------------------
|
||
DRV.TERM.SETUP.L1X
|
||
ldy #S.FD.DEV.BUFPTR
|
||
lda (pFD),y
|
||
clc
|
||
adc BUF.BASEL,x
|
||
sta ZPBufBaseL1
|
||
|
||
iny
|
||
lda (pFD),y
|
||
adc BUF.BASEH,x
|
||
sta ZPBufBaseL1+1
|
||
|
||
bit bActive
|
||
bpl DRV.TERM.SETUP.L1X.8
|
||
|
||
DRV.TERM.SETUP.L1X.SCR
|
||
lda SCR.BASEL,x
|
||
sta ZPScrBaseL1
|
||
lda SCR.BASEH,x
|
||
sta ZPScrBaseL1+1
|
||
DRV.TERM.SETUP.L1X.8
|
||
rts
|
||
*--------------------------------------
|
||
* ` a b c d e f g h i j k l m n o
|
||
REMAP.E0.FF .HS 5B4142434445464748495FA0DF544e4f
|
||
* p q r s t u v w x y z { | } ~ DEL
|
||
.HS 50DF5253545556575F595a5b5c5d5e5f
|
||
*--------------------------------------
|
||
RESET.VALUES .DA #0 S.DCB.TTY.MODE
|
||
.DA #0 S.DCB.TTY.CH
|
||
.DA #0 S.DCB.TTY.CV
|
||
.DA #0 S.DCB.TTY.SCROLLTOP
|
||
.DA #23 S.DCB.TTY.SCROLLBOT
|
||
.DA #0 S.DCB.TTY.bCURON
|
||
.DA #0 S.DCB.TTY.bTITLE
|
||
|
||
.DA #$80 S.DCB.TTY.bNORMAL
|
||
.DA #$80 S.DCB.TTY.bLINEWRAP
|
||
.DA #$80 S.DCB.TTY.bCRLF
|
||
|
||
.DA #0
|
||
|
||
.DA #0 S.DCB.TTY.bG0G1
|
||
.DA #0 S.DCB.TTY.bG0ALT
|
||
.DA #$80 S.DCB.TTY.bG1ALT
|
||
|
||
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTTAIL
|
||
.DA #S.DCB.TTY.OUTBUFFER S.DCB.TTY.OUTHEAD
|
||
.DA #S.DCB.TTY.INBUFFER S.DCB.TTY.INBUFFER
|
||
*--------------------------------------
|
||
CtrlChars .DA #C.ENQ,#C.BS,#C.LF,#C.FF,#C.CR,#C.SO,#C.SI,#C.FS,#C.ESC
|
||
CtrlChars.Cnt .EQ *-CtrlChars
|
||
*--------------------------------------
|
||
EscCodes .AZ "MDc[()"
|
||
EscCodes.Cnt .EQ *-EscCodes
|
||
EscModes .DA #0,#0,#0,#S.DCB.TTY.MODE.CSI,#S.DCB.TTY.MODE.G0,#S.DCB.TTY.MODE.G1
|
||
CsiCodes .AS "hlmnrJKH"
|
||
CsiCodes.Cnt .EQ *-CsiCodes
|
||
*--------------------------------------
|
||
KeyRemapped .HS 080A0B15 Left,Down,Up,Right
|
||
KeyRemapped.Cnt .EQ *-KeyRemapped
|
||
KeyRemapped.Tbl .HS 44424143 esc[D,esc[B,esc[A,esc[C
|
||
*--------------------------------------
|
||
WILLDO .DA #TELOPT.BINARY,#TELOPT.SGA
|
||
WILLDO.CNT .EQ *-WILLDO
|
||
WILLDONT .DA #TELOPT.TSPEED,#TELOPT.LINEMODE,#TELOPT.STATUS
|
||
WILLDONT.CNT .EQ *-WILLDONT
|
||
DOWILL .DA #TELOPT.BINARY,#TELOPT.SGA,#TELOPT.TTYPE,#TELOPT.NAWS
|
||
DOWILL.CNT .EQ *-DOWILL
|
||
DOWONT .DA #TELOPT.ECHO,#TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW
|
||
DOWONT.CNT .EQ *-DOWONT
|
||
SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS
|
||
ENQ.String .AS "xterm"
|
||
ENQ.String.Len .EQ *-ENQ.String
|
||
.DA #IAC,#SE
|
||
SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE
|
||
SB.IS.NAWS .DA #IAC,#SB,#TELOPT.NAWS,#SB.IS
|
||
.DA 80
|
||
.DA 24
|
||
.DA #IAC,#SE
|
||
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
|
||
*--------------------------------------
|
||
DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||
.DA #0,#0,#0
|
||
>PSTR "A2osX VT100 TERM"
|
||
.DA #S.DIB.T.CHAR
|
||
.DA #0
|
||
.DA K.VER
|
||
*--------------------------------------
|
||
BUF.BASEL .DA #0
|
||
.DA #80
|
||
.DA #160
|
||
.DA #240
|
||
.DA #320
|
||
.DA #400
|
||
.DA #480
|
||
.DA #560
|
||
.DA #640
|
||
.DA #720
|
||
.DA #800
|
||
.DA #880
|
||
.DA #960
|
||
.DA #1040
|
||
.DA #1120
|
||
.DA #1200
|
||
.DA #1280
|
||
.DA #1360
|
||
.DA #1440
|
||
.DA #1520
|
||
.DA #1600
|
||
.DA #1680
|
||
.DA #1760
|
||
.DA #1840
|
||
BUF.BASEH .DA /0
|
||
.DA /80
|
||
.DA /160
|
||
.DA /240
|
||
.DA /320
|
||
.DA /400
|
||
.DA /480
|
||
.DA /560
|
||
.DA /640
|
||
.DA /720
|
||
.DA /800
|
||
.DA /880
|
||
.DA /960
|
||
.DA /1040
|
||
.DA /1120
|
||
.DA /1200
|
||
.DA /1280
|
||
.DA /1360
|
||
.DA /1440
|
||
.DA /1520
|
||
.DA /1600
|
||
.DA /1680
|
||
.DA /1760
|
||
.DA /1840
|
||
*--------------------------------------
|
||
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
||
SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE USR/SRC/SYS/KERNEL.S.TERMLC
|
||
LOAD USR/SRC/SYS/KERNEL.S
|
||
ASM
|