mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-12 17:30:23 +00:00
Kernel 0.92
This commit is contained in:
parent
e1011e4ae9
commit
5d04ad0cf2
6
ETC/INIT
6
ETC/INIT
@ -5,8 +5,10 @@ AUTO 4,1
|
||||
ECHO *** A2osX INIT Script ***
|
||||
SET PS1='$PWD'
|
||||
# Main Screen
|
||||
# INSDRV CONSOLE.DRV
|
||||
# STARTPROC GETTY /DEV/CON ${ROOT}SBIN/LOGIN
|
||||
GETTY /DEV/TTY1 ${ROOT}SBIN/LOGIN &
|
||||
GETTY /DEV/TTY2 ${ROOT}SBIN/LOGIN &
|
||||
GETTY /DEV/TTY3 ${ROOT}SBIN/LOGIN &
|
||||
GETTY /DEV/TTY4 ${ROOT}SBIN/LOGIN &
|
||||
# Serial Login
|
||||
#INSDRV SSC.DRV 9600,N,8,1,X
|
||||
#INSDRV SSC.I.DRV 9600,N,8,1,X
|
||||
|
@ -14,6 +14,7 @@ K.OF.MAX .EQ 32
|
||||
K.FLT.MAX .EQ 4
|
||||
K.EVT.MAX .EQ 4
|
||||
K.SCR.MAX .EQ 6
|
||||
K.TTY.MAX .EQ 4
|
||||
*--------------------------------------
|
||||
ZPDRV .EQ $20 32 bytes
|
||||
ZPLIB .EQ $40 32 bytes
|
||||
@ -45,7 +46,7 @@ A2osX.SLEEP .EQ $BD10
|
||||
* $BEE0->$BEEF : Public Variables
|
||||
*--------------------------------------
|
||||
A2osX.ASCREEN .EQ $BEE0 Active Screen
|
||||
A2osX.SCRNDEVS .EQ $BEE1 -> $BEE4 (5 screen devices)
|
||||
A2osX.SCRNDEVS .EQ $BEE1 -> $BEE5 (5 screen devices)
|
||||
|
||||
A2osX.CPUTYPE .EQ $BEE6
|
||||
A2osX.CPUSPEED .EQ $BEE7 WORD, (->255.99 Mhz)
|
||||
@ -60,7 +61,7 @@ A2osX.RANDOM16 .EQ $BEEE WORD
|
||||
*--------------------------------------
|
||||
A2osX.KCONFIG .EQ $BEF0
|
||||
A2osX.HZ .EQ $BEF0 5/6 for 50/60Hz
|
||||
A2osX.TTYDEVS .EQ $BEF1 K.SCR.MAX = 6 !
|
||||
A2osX.TTYDEVS .EQ $BEF1 K.TTY.MAX = 4 !
|
||||
A2osX.F .EQ $BEF8
|
||||
A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
|
||||
A2osX.F.PMODE .EQ %01000000 Preemptive Mode
|
||||
|
@ -122,8 +122,11 @@ CS.RUN.LOOP0 >LDYA L.ENV.TERM
|
||||
|
||||
bra .1 no data sent, loop
|
||||
|
||||
.2 >PUSHWI K.VER
|
||||
>PUSHBI 2
|
||||
.2 >LDA.G ArgDev
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHWI K.VER
|
||||
>PUSHBI 4
|
||||
>LDYA L.MSG.GREETINGS
|
||||
>SYSCALL printf
|
||||
|
||||
@ -320,7 +323,7 @@ OptionList >PSTR "Ee"
|
||||
OptionVars .DA #bExitOnClose,#bExitOnClose
|
||||
MSG.USAGE .AS "Usage : GETTY <DEV> <PROGRAM>\r\n"
|
||||
.AZ " -E : Exit on disconnect\r\n"
|
||||
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d\r\n"
|
||||
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d on %s\r\n"
|
||||
*--------------------------------------
|
||||
TELNETOPTS .DA #IAC,#WILL,#TELOPT.BINARY
|
||||
.DA #IAC,#WILL,#TELOPT.ECHO
|
||||
|
@ -155,6 +155,7 @@ S.DCB.TTY.CURCHAR .EQ 8
|
||||
S.DCB.TTY.bINVERSE .EQ 9
|
||||
S.DCB.TTY.bLINEWRAP .EQ 10
|
||||
|
||||
S.DCB.TTY.bTITLE .EQ 13
|
||||
S.DCB.TTY.OUTTAIL .EQ 14
|
||||
S.DCB.TTY.OUTHEAD .EQ 15
|
||||
S.DCB.TTY.INBUFFER .EQ 16
|
||||
|
@ -145,14 +145,14 @@ Kernel.Init3 sta SETALTZP
|
||||
>LDYAI MSG.Prefix
|
||||
>SYSCALL printf
|
||||
|
||||
* lda KBD
|
||||
* bpl .1
|
||||
* sta KBDSTROBE
|
||||
* cmp #146 CTRL-R for Maintenance mode
|
||||
* bne .1
|
||||
lda KBD
|
||||
bpl .1
|
||||
sta KBDSTROBE
|
||||
cmp #146 CTRL-R for Maintenance mode
|
||||
bne .1
|
||||
|
||||
>PUSHBI 0
|
||||
>LDYAI MSG.CTRLD
|
||||
>LDYAI MSG.CTRLR
|
||||
>SYSCALL printf
|
||||
|
||||
>PUSHBI 0 PS Flags
|
||||
@ -672,11 +672,9 @@ IrqMgrInit.TClock
|
||||
sta $c080,y
|
||||
|
||||
lda #$40
|
||||
sta SET80STORE
|
||||
sta CLRPAGE2
|
||||
sta $478,x
|
||||
sta $7f8,x
|
||||
sta CLR80STORE
|
||||
|
||||
lda #64
|
||||
sta CORE.TickPerSec
|
||||
@ -1069,7 +1067,7 @@ MSG.IRQ.POLL .AZ " Polling Mode."
|
||||
MSG.EVT .AZ "Event Manager..."
|
||||
MSG.TSK .AZ "Task Manager..."
|
||||
MSG.Prefix .AZ "Root:%s\r\n"
|
||||
MSG.CTRLD .AZ "Ctrl-D Pressed, entering Maintenance mode..."
|
||||
MSG.CTRLR .AZ "Ctrl-R Pressed, entering ROOT mode..."
|
||||
MSG.ETCINIT .AZ "Executing ETC/INIT Script:%s "
|
||||
MSG.StartupErr .AZ "Failed : [$%h]\r\n"
|
||||
MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n"
|
||||
|
@ -16,6 +16,11 @@ ZPScrBaseL1 .BS 2
|
||||
ZPScrBaseL2 .BS 2
|
||||
ZPTmpWord .BS 2
|
||||
ZPTmpBool .BS 1
|
||||
*--------------------------------------
|
||||
bActive .BS 1
|
||||
bCsiInNum .BS 1
|
||||
CsiParamCnt .BS 1
|
||||
CsiParams .BS 4
|
||||
.ED
|
||||
*--------------------------------------
|
||||
DRV.TERM cld
|
||||
@ -33,7 +38,7 @@ DRV.TERM cld
|
||||
*--------------------------------------
|
||||
DRV.TERM.STATUS >STYA ZPIOCTL
|
||||
|
||||
jsr GetIOCTLBuf
|
||||
jsr DRV.TERM.GetIOCTLBuf
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
lda (ZPIOCTL),y
|
||||
@ -81,7 +86,9 @@ DRV.TERM.OPEN ldx #0 DEV.ID in A
|
||||
sec
|
||||
rts
|
||||
|
||||
.2 pha DEV.ID in A
|
||||
.2 sta A2osX.SCRNDEVS,x
|
||||
|
||||
pha
|
||||
|
||||
jsr DRV.TERM.GetDCB
|
||||
|
||||
@ -146,7 +153,7 @@ DRV.TERM.CLOSE jsr DRV.TERM.GetDCB
|
||||
*--------------------------------------
|
||||
DRV.TERM.READ >STYA ZPIOCTL
|
||||
|
||||
jsr GetIOCTLBufAndCnt
|
||||
jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||
|
||||
jsr DRV.TERM.GetDCB
|
||||
|
||||
@ -160,7 +167,7 @@ DRV.TERM.READ >STYA ZPIOCTL
|
||||
ldy #S.DCB.TTY.bCURON
|
||||
eor (ZPDCBPtr),y
|
||||
beq .1
|
||||
|
||||
|
||||
jsr CURBLNK
|
||||
|
||||
.1 lda OPENAPPLE
|
||||
@ -171,7 +178,7 @@ DRV.TERM.READ >STYA ZPIOCTL
|
||||
sta KBDSTROBE
|
||||
|
||||
and #$7F
|
||||
|
||||
|
||||
ldx KeyRemapped
|
||||
.2 cmp KeyRemapped,x
|
||||
beq .3
|
||||
@ -181,23 +188,22 @@ DRV.TERM.READ >STYA ZPIOCTL
|
||||
bra .7 and flush
|
||||
|
||||
.3 lda KeyRemappedIdx,x
|
||||
tay
|
||||
tax
|
||||
|
||||
.4 lda KeyRemappedTbl,y
|
||||
.4 lda KeyRemappedTbl,x
|
||||
beq .7 end of remap....flush
|
||||
jsr Char.Out.Put
|
||||
iny
|
||||
inx
|
||||
bra .4
|
||||
|
||||
.6 ldy #S.DCB.TTY.OUTHEAD
|
||||
.6 ldy #S.DCB.TTY.OUTTAIL
|
||||
lda (ZPDCBPtr),y
|
||||
dey OUTTAIL
|
||||
cmp (ZPDCBPtr),y
|
||||
iny
|
||||
cmp (ZPDCBPtr),y OUTHEAD
|
||||
|
||||
beq .9 no char in output buffer...
|
||||
|
||||
.7 stz .8+1
|
||||
jsr GetIOCTLBufAndCnt
|
||||
|
||||
.70 inc ZPCount
|
||||
bne .71
|
||||
@ -229,7 +235,7 @@ DRV.TERM.READ >STYA ZPIOCTL
|
||||
*--------------------------------------
|
||||
DRV.TERM.WRITE >STYA ZPIOCTL
|
||||
|
||||
jsr GetIOCTLBufAndCnt
|
||||
jsr DRV.TERM.GetIOCTLBufAndCnt
|
||||
|
||||
jsr DRV.TERM.GetDCB
|
||||
|
||||
@ -240,7 +246,7 @@ DRV.TERM.WRITE >STYA ZPIOCTL
|
||||
inc ZPCount+1
|
||||
beq .8
|
||||
|
||||
.2 ldy #S.DCB.TTY.MODE
|
||||
.2 ldy #S.DCB.TTY.MODE
|
||||
lda (ZPDCBPtr),y
|
||||
tax
|
||||
|
||||
@ -357,11 +363,12 @@ DRV.TERM.ESC lda (ZPBufPtr)
|
||||
clc
|
||||
rts
|
||||
|
||||
.1 lda #0
|
||||
.1 lda #0 y = #S.DCB.TTY.MODE
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
ldx #EscCodes.Cnt-1
|
||||
|
||||
lda (ZPBufPtr)
|
||||
|
||||
.2 cmp EscCodes,x
|
||||
beq .3
|
||||
dex
|
||||
@ -373,9 +380,9 @@ DRV.TERM.ESC lda (ZPBufPtr)
|
||||
.3 txa
|
||||
asl
|
||||
tax
|
||||
jmp (J.EscCodes,x)
|
||||
*--------------------------------------
|
||||
J.EscCodes .DA Scroll.Dn M
|
||||
jmp (.4,x)
|
||||
|
||||
.4 .DA Scroll.Dn M
|
||||
.DA Scroll.Up D
|
||||
.DA RESET c
|
||||
*--------------------------------------
|
||||
@ -388,7 +395,7 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER
|
||||
lda (ZPBufPtr)
|
||||
sta (ZPDCBPtr),y
|
||||
cmp #64 End of Seq ?
|
||||
bcs COUT.ExecEscSeq
|
||||
bcs DRV.TERM.CSI.Exec
|
||||
|
||||
cpy #S.DCB.TTY.INBUFFER.MAX-1 buffer full?
|
||||
bne .8
|
||||
@ -400,12 +407,11 @@ DRV.TERM.CSI ldy #S.DCB.TTY.INBUFFER
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
stz bEscSeqInNum
|
||||
DRV.TERM.CSI.Exec
|
||||
stz CsiParamCnt
|
||||
stz bCsiInNum
|
||||
|
||||
ldy #S.DCB.TTY.INBUFFER EscSeq Ptr
|
||||
lda (ZPDCBPtr),y
|
||||
tay
|
||||
|
||||
.10 stz ZPTmpWord
|
||||
stz ZPTmpWord+1
|
||||
@ -418,19 +424,23 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
cmp #'9'+1
|
||||
bcs .2
|
||||
|
||||
dec bEscSeqInNum
|
||||
dec bCsiInNum
|
||||
|
||||
and #$0F
|
||||
pha
|
||||
|
||||
lda ZPTmpWord
|
||||
ldy ZPTmpWord+1
|
||||
ldx ZPTmpWord+1
|
||||
|
||||
asl ZPTmpWord param=param*10
|
||||
rol ZPTmpWord+1
|
||||
asl ZPTmpWord
|
||||
rol ZPTmpWord+1
|
||||
|
||||
clc
|
||||
adc ZPTmpWord
|
||||
sta ZPTmpWord
|
||||
tya
|
||||
txa
|
||||
adc ZPTmpWord+1
|
||||
sta ZPTmpWord+1
|
||||
asl ZPTmpWord
|
||||
@ -444,30 +454,34 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
inc ZPTmpWord+1
|
||||
bra .1
|
||||
|
||||
.2 bit bEscSeqInNum
|
||||
.2 bit bCsiInNum
|
||||
bpl .3
|
||||
|
||||
stz bEscSeqInNum
|
||||
stz bCsiInNum
|
||||
lda #255
|
||||
ldx ZPTmpWord+1
|
||||
bne .21
|
||||
|
||||
lda ZPTmpWord
|
||||
.21 ldx EscSeqParamCnt
|
||||
sta EscSeqParam,x
|
||||
inc EscSeqParamCnt
|
||||
.21 ldx CsiParamCnt
|
||||
sta CsiParams,x
|
||||
inc CsiParamCnt
|
||||
|
||||
.3 lda (ZPDCBPtr),y
|
||||
cmp #';'
|
||||
beq .10
|
||||
|
||||
pha
|
||||
|
||||
lda #0
|
||||
ldy #S.DCB.TTY.MODE
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
ldx #EscSeqCmds.Cnt-1
|
||||
pla
|
||||
|
||||
ldx #CsiCodes.Cnt-1
|
||||
|
||||
.4 cmp EscSeqCmds,x
|
||||
.4 cmp CsiCodes,x
|
||||
beq .5
|
||||
dex
|
||||
bne .4
|
||||
@ -478,15 +492,178 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
.5 txa
|
||||
asl
|
||||
tax
|
||||
jmp (J.EscSequences,x)
|
||||
jmp (.8,x)
|
||||
|
||||
.8 .DA Csi.LWEnable h
|
||||
.DA Csi.LWDisable l
|
||||
.DA Csi.DispAttr m
|
||||
.DA Csi.Query n
|
||||
.DA Csi.Scroll r
|
||||
.DA Csi.Erase K
|
||||
.DA Csi.Home H
|
||||
*--------------------------------------
|
||||
J.EscSequences .DA Esc.LWEnable h
|
||||
.DA Esc.LWDisable l
|
||||
.DA Esc.DispAttr m
|
||||
.DA Esc.Query n
|
||||
.DA Esc.Scroll r
|
||||
.DA Esc.Erase K
|
||||
.DA Esc.Home H
|
||||
Csi.LWEnable sec
|
||||
.HS 90 BCC
|
||||
*--------------------------------------
|
||||
Csi.LWDisable clc
|
||||
ldx CsiParamCnt
|
||||
beq .8
|
||||
dex
|
||||
bne .8
|
||||
|
||||
lda CsiParams
|
||||
eor #7
|
||||
bne .8
|
||||
|
||||
ror
|
||||
ldy #S.DCB.TTY.bLINEWRAP
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.DispAttr ldx CsiParamCnt
|
||||
beq .8
|
||||
|
||||
.1 lda CsiParams-1,x
|
||||
bne .2
|
||||
|
||||
jsr RESETATTR
|
||||
bra .7
|
||||
|
||||
.2 eor #7
|
||||
bne .8
|
||||
|
||||
ldy #S.DCB.TTY.bINVERSE
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.7 dex
|
||||
bne .1
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.Query ldx CsiParamCnt
|
||||
beq .8
|
||||
dex
|
||||
bne .8
|
||||
|
||||
lda CsiParams
|
||||
cmp #6
|
||||
bne .8
|
||||
|
||||
lda #C.ESC
|
||||
jsr Char.Out.Put
|
||||
|
||||
lda #'['
|
||||
jsr Char.Out.Put
|
||||
|
||||
ldy #S.DCB.TTY.CV
|
||||
lda (ZPDCBPtr),y
|
||||
inc
|
||||
jsr Decimal.Out
|
||||
|
||||
lda #';'
|
||||
jsr Char.Out.Put
|
||||
|
||||
ldy #S.DCB.TTY.CH
|
||||
lda (ZPDCBPtr),y
|
||||
inc
|
||||
jsr Decimal.Out
|
||||
|
||||
lda #'R'
|
||||
jsr Char.Out.Put
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.Scroll ldy CsiParamCnt
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
ldx #23
|
||||
bra .8
|
||||
|
||||
.1 cpy #2
|
||||
bne .9
|
||||
|
||||
lda CsiParams
|
||||
dec
|
||||
ldx CsiParams+1
|
||||
dex
|
||||
|
||||
.8 ldy #S.DCB.TTY.SCROLLTOP
|
||||
sta (ZPDCBPtr),y
|
||||
iny S.DCB.TTY.SCROLLBOT
|
||||
txa
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.9 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.Erase ldx CsiParamCnt
|
||||
|
||||
bne .1
|
||||
jmp CLREOL
|
||||
|
||||
.1 lda CsiParams
|
||||
cmp #1
|
||||
bne .2
|
||||
jmp CLRSOL
|
||||
|
||||
.2 cmp #2
|
||||
bne .9
|
||||
jmp CLRLINE
|
||||
|
||||
.9 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.Home lda CsiParamCnt
|
||||
bne .1
|
||||
|
||||
ldy #S.DCB.TTY.CH
|
||||
sta (ZPDCBPtr),y
|
||||
iny
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.1 ldx #1
|
||||
lda CsiParams
|
||||
beq .2
|
||||
|
||||
ldx #24
|
||||
cmp #24
|
||||
bcs .2
|
||||
|
||||
tax
|
||||
|
||||
.2 dex
|
||||
txa
|
||||
ldy #S.DCB.TTY.CV
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
dec CsiParamCnt
|
||||
beq .8
|
||||
|
||||
ldx #1
|
||||
lda CsiParams+1
|
||||
beq .3
|
||||
|
||||
ldx #80
|
||||
cmp #80
|
||||
|
||||
bcs .3
|
||||
|
||||
tax
|
||||
|
||||
.3 dex
|
||||
txa
|
||||
ldy #S.DCB.TTY.CH
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER
|
||||
lda (ZPDCBPtr),y
|
||||
@ -534,7 +711,6 @@ J.COUT.IAC.CMDS .DA COUT.IAC.SB
|
||||
.DA COUT.IAC.WONT
|
||||
.DA COUT.IAC.DO
|
||||
.DA COUT.IAC.DONT
|
||||
.DA 0 end of relocation
|
||||
*--------------------------------------
|
||||
COUT.IAC.SB cmp #TELOPT.TTYPE
|
||||
bne .9
|
||||
@ -544,12 +720,12 @@ COUT.IAC.SB cmp #TELOPT.TTYPE
|
||||
cmp #SB.SEND
|
||||
bne .9
|
||||
|
||||
ldy #0
|
||||
ldx #0
|
||||
|
||||
.1 lda SB.IS.TTYPE,y
|
||||
.1 lda SB.IS.TTYPE,x
|
||||
jsr Char.Out.Put
|
||||
iny
|
||||
cpy #SB.IS.TTYPE.LEN
|
||||
inx
|
||||
cpx #SB.IS.TTYPE.LEN
|
||||
bne .1
|
||||
|
||||
.9 bra RESET.MODE
|
||||
@ -648,6 +824,13 @@ RESET jsr RESET.MODE
|
||||
lda #23
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
lda #S.DCB.TTY.OUTBUFFER
|
||||
|
||||
ldy #S.DCB.TTY.OUTTAIL
|
||||
sta (ZPDCBPtr),y
|
||||
iny
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
jsr DRV.TERM.CLRSCR
|
||||
*--------------------------------------
|
||||
RESETATTR lda #$80
|
||||
@ -664,12 +847,12 @@ J.CtrlChars .DA ENQ 5
|
||||
.DA FS 21
|
||||
.DA ESC 27
|
||||
*--------------------------------------
|
||||
ENQ ldy #0
|
||||
ENQ ldx #0
|
||||
|
||||
.1 lda ENQ.String,y
|
||||
.1 lda ENQ.String,x
|
||||
beq .8
|
||||
jsr Char.Out.Put
|
||||
iny
|
||||
inx
|
||||
bne .1
|
||||
|
||||
.8 clc
|
||||
@ -729,7 +912,7 @@ SCROLL.UP ldy #S.DCB.TTY.SCROLLTOP
|
||||
|
||||
tax
|
||||
|
||||
.1 jsr SETUP.L1X
|
||||
.1 jsr DRV.TERM.SETUP.L1X
|
||||
|
||||
inx
|
||||
|
||||
@ -782,7 +965,7 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
|
||||
|
||||
tax
|
||||
|
||||
.1 jsr SETUP.L1X
|
||||
.1 jsr DRV.TERM.SETUP.L1X
|
||||
|
||||
dex
|
||||
|
||||
@ -796,175 +979,13 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Esc.LWEnable sec
|
||||
.HS 90 BCC
|
||||
*--------------------------------------
|
||||
Esc.LWDisable clc
|
||||
ldx EscSeqParamCnt
|
||||
beq .8
|
||||
dex
|
||||
bne .8
|
||||
|
||||
lda EscSeqParam
|
||||
eor #7
|
||||
bne .8
|
||||
|
||||
ror
|
||||
ldy #S.DCB.TTY.bLINEWRAP
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Esc.DispAttr ldx EscSeqParamCnt
|
||||
beq .8
|
||||
|
||||
.1 lda EscSeqParam-1,x
|
||||
bne .2
|
||||
jsr RESETATTR
|
||||
bra .7
|
||||
|
||||
.2 eor #7
|
||||
bne .8
|
||||
|
||||
ldy #S.DCB.TTY.bINVERSE
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.7 dex
|
||||
bne .1
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Esc.Query ldx EscSeqParamCnt
|
||||
beq .8
|
||||
dex
|
||||
bne .8
|
||||
|
||||
lda EscSeqParam
|
||||
cmp #6
|
||||
bne .8
|
||||
|
||||
lda #C.ESC
|
||||
jsr Char.Out.Put
|
||||
|
||||
lda #'['
|
||||
jsr Char.Out.Put
|
||||
|
||||
ldy #S.DCB.TTY.CV
|
||||
lda (ZPDCBPtr),y
|
||||
inc
|
||||
jsr Decimal.Out
|
||||
|
||||
lda #';'
|
||||
jsr Char.Out.Put
|
||||
|
||||
ldy #S.DCB.TTY.CH
|
||||
lda (ZPDCBPtr),y
|
||||
inc
|
||||
jsr Decimal.Out
|
||||
|
||||
lda #'R'
|
||||
jsr Char.Out.Put
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Esc.Scroll ldy EscSeqParamCnt
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
ldx #23
|
||||
bra .8
|
||||
|
||||
.1 cpy #2
|
||||
bne .9
|
||||
|
||||
lda EscSeqParam
|
||||
dec
|
||||
ldx EscSeqParam+1
|
||||
dex
|
||||
|
||||
.8 ldy #S.DCB.TTY.SCROLLTOP
|
||||
sta (ZPDCBPtr),y
|
||||
iny S.DCB.TTY.SCROLLBOT
|
||||
txa
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.9 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Esc.Erase ldx EscSeqParamCnt
|
||||
|
||||
bne .1
|
||||
jmp CLREOL
|
||||
|
||||
.1 lda EscSeqParam
|
||||
cmp #1
|
||||
bne .2
|
||||
jmp CLRSOL
|
||||
|
||||
.2 cmp #2
|
||||
bne .9
|
||||
jmp CLRLINE
|
||||
|
||||
.9 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Esc.Home lda EscSeqParamCnt
|
||||
bne .1
|
||||
|
||||
ldy #S.DCB.TTY.CH
|
||||
sta (ZPDCBPtr),y
|
||||
iny
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
rts
|
||||
|
||||
.1 ldx #1
|
||||
lda EscSeqParam
|
||||
beq .2
|
||||
|
||||
ldx #24
|
||||
cmp #24
|
||||
bcs .2
|
||||
|
||||
tax
|
||||
|
||||
.2 dex
|
||||
txa
|
||||
ldy #S.DCB.TTY.CV
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
dec EscSeqParamCnt
|
||||
beq .8
|
||||
|
||||
ldx #1
|
||||
lda EscSeqParam+1
|
||||
beq .3
|
||||
|
||||
ldx #80
|
||||
cmp #80
|
||||
|
||||
bcs .3
|
||||
|
||||
tax
|
||||
|
||||
.3 dex
|
||||
txa
|
||||
ldy #S.DCB.TTY.CH
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CUROFF ldy #S.DCB.TTY.bCURON
|
||||
lda (ZPDCBPtr),y
|
||||
|
||||
beq CUREXIT.RTS
|
||||
|
||||
CURBLNK bit bActive
|
||||
bpl CURBLNK1
|
||||
bmi CURBLNK1
|
||||
|
||||
ldy #S.DCB.TTY.bCURON
|
||||
lda (ZPDCBPtr),y
|
||||
@ -1042,12 +1063,12 @@ Decimal.Out stz ZPTmpWord
|
||||
*--------------------------------------
|
||||
Char.Out.Put30 ora #$30
|
||||
|
||||
Char.Out.Put pha
|
||||
Char.Out.Put pha save char
|
||||
|
||||
ldy #S.DCB.TTY.OUTHEAD
|
||||
lda (ZPDCBPtr),y
|
||||
|
||||
pha
|
||||
pha save actual HEAD
|
||||
inc
|
||||
|
||||
cmp #S.DCB.TTY.OUTBUFFER.MAX
|
||||
@ -1055,9 +1076,9 @@ Char.Out.Put pha
|
||||
|
||||
lda #S.DCB.TTY.OUTBUFFER
|
||||
|
||||
.1 dey
|
||||
.1 dey OUTTAIL
|
||||
|
||||
cmp (ZPDCBPtr),y
|
||||
cmp (ZPDCBPtr),y HEAD+1 = TAIL ?
|
||||
beq .9 CS, full!
|
||||
|
||||
iny
|
||||
@ -1073,9 +1094,9 @@ Char.Out.Put pha
|
||||
pla
|
||||
rts
|
||||
*--------------------------------------
|
||||
Char.Out.Get ldy #S.DCB.TTY.OUTHEAD
|
||||
Char.Out.Get ldy #S.DCB.TTY.OUTTAIL
|
||||
lda (ZPDCBPtr),y
|
||||
dey OUTTAIL
|
||||
iny OUTHEAD
|
||||
cmp (ZPDCBPtr),y
|
||||
beq .9 CS
|
||||
|
||||
@ -1116,7 +1137,7 @@ DRV.TERM.GetActive
|
||||
.1 ror bActive
|
||||
rts
|
||||
*--------------------------------------
|
||||
GetIOCTLBufAndCnt
|
||||
DRV.TERM.GetIOCTLBufAndCnt
|
||||
ldy #S.IOCTL.BYTECNT
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
@ -1127,7 +1148,8 @@ GetIOCTLBufAndCnt
|
||||
eor #$ff
|
||||
sta ZPCount+1
|
||||
|
||||
GetIOCTLBuf ldy #S.IOCTL.BUFPTR
|
||||
DRV.TERM.GetIOCTLBuf
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr
|
||||
iny
|
||||
@ -1136,16 +1158,16 @@ GetIOCTLBuf ldy #S.IOCTL.BUFPTR
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SETUP.L1X clc
|
||||
|
||||
DRV.TERM.SETUP.L1X
|
||||
ldy #S.FD.DEV.BUFPTR
|
||||
lda BUF.BASEL,x
|
||||
adc (pFD),y
|
||||
lda (pFD),y
|
||||
clc
|
||||
adc BUF.BASEL,x
|
||||
sta ZPBufBaseL1
|
||||
|
||||
iny
|
||||
lda BUF.BASEH,x
|
||||
adc (pFD),y
|
||||
lda (pFD),y
|
||||
adc BUF.BASEH,x
|
||||
sta ZPBufBaseL1+1
|
||||
|
||||
bit bActive
|
||||
@ -1214,8 +1236,8 @@ CtrlChars.Cnt .EQ *-CtrlChars
|
||||
*--------------------------------------
|
||||
EscCodes .AZ "MDc"
|
||||
EscCodes.Cnt .EQ *-EscCodes
|
||||
EscSeqCmds .AS "hlmnrKH"
|
||||
EscSeqCmds.Cnt .EQ *-EscSeqCmds
|
||||
CsiCodes .AS "hlmnrKH"
|
||||
CsiCodes.Cnt .EQ *-CsiCodes
|
||||
ENQ.String .AZ "XTERM"
|
||||
*--------------------------------------
|
||||
KeyRemapped .HS 05080A0B0D15 L,D,U,CR,R
|
||||
@ -1227,8 +1249,6 @@ KeyRemappedUP .HS 1B5B4100 esc[A
|
||||
KeyRemappedCR .HS 0D0A00 crlf
|
||||
KeyRemappedRGHT .HS 1B5B4300 esc[C
|
||||
*--------------------------------------
|
||||
TELOPS.STATUS
|
||||
*--------------------------------------
|
||||
WILLDO .DA #TELOPT.BINARY,#TELOPT.SGA
|
||||
WILLDO.CNT .EQ *-WILLDO
|
||||
WILLDONT .DA #TELOPT.TSPEED,#TELOPT.LINEMODE,#TELOPT.STATUS
|
||||
@ -1247,11 +1267,6 @@ SB.IS.NAWS .DA #IAC,#SB,#TELOPT.NAWS,#SB.IS
|
||||
.DA #IAC,#SE
|
||||
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
|
||||
*--------------------------------------
|
||||
bActive .BS 1
|
||||
bEscSeqInNum .BS 1
|
||||
EscSeqParamCnt .BS 1
|
||||
EscSeqParam .BS 4
|
||||
*--------------------------------------
|
||||
DRV.TERM.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||||
.DA #0,#0,#0
|
||||
>PSTR "A2osX VT100 TERM"
|
||||
|
@ -3,8 +3,9 @@ PREFIX
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
DRV.TERM.CLRSCR ldx #23
|
||||
|
||||
.1 jsr SETUP.L1X
|
||||
sta SET80STORE
|
||||
|
||||
.1 jsr DRV.TERM.SETUP.L1X
|
||||
|
||||
lda #" "
|
||||
|
||||
@ -48,6 +49,7 @@ DRV.TERM.CLRSCR ldx #23
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.TERM.SCRCPY ldx #0
|
||||
sta SET80STORE
|
||||
|
||||
.1 ldy #S.FD.DEV.BUFPTR
|
||||
lda (pFD),y
|
||||
@ -71,7 +73,7 @@ DRV.TERM.SCRCPY ldx #0
|
||||
|
||||
sta SETREADAUX
|
||||
|
||||
ldx #79
|
||||
ldx #78
|
||||
ldy #39
|
||||
sta SETPAGE2
|
||||
|
||||
@ -82,7 +84,7 @@ DRV.TERM.SCRCPY ldx #0
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
ldx #78
|
||||
ldx #79
|
||||
ldy #39
|
||||
sta CLRPAGE2
|
||||
|
||||
@ -118,7 +120,7 @@ SetCharAtYX cmp #$40
|
||||
|
||||
.1 pha
|
||||
phy
|
||||
jsr SETUP.L1X
|
||||
jsr DRV.TERM.SETUP.L1X
|
||||
ply
|
||||
|
||||
pla
|
||||
@ -137,7 +139,7 @@ SetCharAtYX cmp #$40
|
||||
|
||||
pla
|
||||
bcs .2
|
||||
|
||||
sta SET80STORE
|
||||
sta SETPAGE2
|
||||
.2 sta (ZPScrBaseL1),y
|
||||
sta CLRPAGE2
|
||||
@ -147,7 +149,7 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV
|
||||
lda (ZPDCBPtr),y
|
||||
tax
|
||||
|
||||
jsr SETUP.L1X
|
||||
jsr DRV.TERM.SETUP.L1X
|
||||
|
||||
ldy #S.DCB.TTY.CH
|
||||
lda (ZPDCBPtr),y
|
||||
@ -179,7 +181,7 @@ COPY.XtoL1 ldy #79
|
||||
sta ZPScrBaseL2
|
||||
lda SCR.BASEH,x
|
||||
sta ZPScrBaseL2+1
|
||||
|
||||
sta SET80STORE
|
||||
sta SETPAGE2
|
||||
|
||||
jsr .6
|
||||
|
Loading…
x
Reference in New Issue
Block a user