mirror of
https://github.com/A2osX/A2osX.git
synced 2025-01-22 22:30:25 +00:00
Kernel 0.9.2
This commit is contained in:
parent
838a517fb0
commit
7f402fc02b
Binary file not shown.
Binary file not shown.
@ -453,7 +453,7 @@ DecTmpCount lda TmpCount
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
SEQ.DETECT .AZ "Querying terminal capabilities...\e[999;999H\e[6n"
|
||||
SEQ.INIT .AZ "\ec\e[2;%dr" \e[?6h
|
||||
SEQ.INIT .AZ "\ec\e[7h\e[2;%dr" \e[?6h
|
||||
SEQ.RESET .AZ "\ec"
|
||||
SEQ.SCROLLUP .AZ "\e[%d;%dH\eD"
|
||||
SEQ.SCROLLDN .AZ "\e[%d;%dH\eM"
|
||||
|
@ -99,7 +99,9 @@ J.EscCodes .DA Scroll.Dn M
|
||||
.DA Scroll.Up D
|
||||
.DA RESET c
|
||||
*--------------------------------------
|
||||
J.EscSequences .DA Esc.DispAttr m
|
||||
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
|
||||
@ -158,14 +160,6 @@ OPEN sta A2osX.SCRNDEVS DEV.ID in A
|
||||
stz OutCnt
|
||||
|
||||
jsr RESET
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda TelnetOpt,y
|
||||
jsr Char.Out.Put
|
||||
iny
|
||||
cpy #TelnetOpt.LEN
|
||||
bne .1
|
||||
*--------------------------------------
|
||||
CONTROL sta SETTEXT
|
||||
sta SETALTCHAR
|
||||
@ -304,9 +298,15 @@ WRITE.COUT bit bEscMode
|
||||
*--------------------------------------
|
||||
FS ldx CH
|
||||
cpx #79
|
||||
beq FS.8
|
||||
bne .1
|
||||
|
||||
bit LWFLG
|
||||
bpl FS.8
|
||||
|
||||
inc CH
|
||||
stz CH
|
||||
jmp LF
|
||||
|
||||
.1 inc CH
|
||||
|
||||
FS.8 clc
|
||||
rts
|
||||
@ -353,20 +353,19 @@ COUT.EscMode bit bEscModeCSI
|
||||
|
||||
.1 stz bEscMode
|
||||
|
||||
ldy #0
|
||||
ldx #0
|
||||
ldx #EscCodes.Cnt-1
|
||||
|
||||
.2 iny
|
||||
cmp EscCodes,y
|
||||
.2 cmp EscCodes,x
|
||||
beq .3
|
||||
inx
|
||||
inx
|
||||
cpy EscCodes
|
||||
dex
|
||||
bne .2
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 jmp (J.EscCodes,x)
|
||||
.3 txa
|
||||
asl
|
||||
tax
|
||||
jmp (J.EscCodes,x)
|
||||
*--------------------------------------
|
||||
COUT.EscModeCSI inc EscSeq
|
||||
ldx EscSeq
|
||||
@ -442,20 +441,20 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
stz bEscModeCSI
|
||||
stz bEscMode
|
||||
|
||||
ldy #0
|
||||
ldx #0
|
||||
ldx #EscSeqCmds.Cnt-1
|
||||
|
||||
.4 iny
|
||||
cmp EscSeqCmds,y
|
||||
.4 cmp EscSeqCmds,x
|
||||
beq .5
|
||||
inx
|
||||
inx
|
||||
cpy EscSeqCmds
|
||||
dex
|
||||
bne .4
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.5 jmp (J.EscSequences,x)
|
||||
.5 txa
|
||||
asl
|
||||
tax
|
||||
jmp (J.EscSequences,x)
|
||||
*--------------------------------------
|
||||
COUT.IAC inc IACBuf
|
||||
ldx IACBuf
|
||||
@ -591,10 +590,12 @@ COUT.IAC.DONT
|
||||
rts
|
||||
*--------------------------------------
|
||||
RESET jsr CLRSCR
|
||||
lda #0
|
||||
sta SCROLLTOP
|
||||
lda #23
|
||||
sta SCROLLBOT
|
||||
lda #0
|
||||
sta SCROLLTOP
|
||||
dec
|
||||
sta LWFLG
|
||||
*--------------------------------------
|
||||
RESETATTR lda #$80
|
||||
sta INVFLG
|
||||
@ -643,8 +644,6 @@ ClrScr stz CH
|
||||
|
||||
lda #" "
|
||||
|
||||
* php
|
||||
* sei
|
||||
sta SETWRITEAUX
|
||||
|
||||
ldy #39
|
||||
@ -653,7 +652,6 @@ ClrScr stz CH
|
||||
bpl .2
|
||||
|
||||
sta CLRWRITEAUX
|
||||
* plp
|
||||
|
||||
ldy #39
|
||||
.3 sta (ZPBaseL1),y
|
||||
@ -672,7 +670,7 @@ CROUT jsr CLREOL
|
||||
rts
|
||||
*--------------------------------------
|
||||
LF ldy CV
|
||||
cpy #23
|
||||
cpy SCROLLBOT
|
||||
beq SCROLL.UP
|
||||
inc CV
|
||||
clc
|
||||
@ -730,6 +728,24 @@ SCROLL.DN ldx 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 LWFLG
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Esc.DispAttr ldx EscSeqParamCnt
|
||||
beq .8
|
||||
|
||||
@ -1065,8 +1081,10 @@ 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
|
||||
CtrlChars .HS 05080A0C0D151B
|
||||
CtrlChars.Cnt .EQ *-CtrlChars
|
||||
*--------------------------------------
|
||||
EscCodes >PSTR "MDc"
|
||||
EscSeqCmds >PSTR "mnrKH"
|
||||
EscCodes .AZ "MDc"
|
||||
EscCodes.Cnt .EQ *-EscCodes
|
||||
EscSeqCmds .AS "hlmnrKH"
|
||||
EscSeqCmds.Cnt .EQ *-EscSeqCmds
|
||||
ENQ.String .AZ "XTERM"
|
||||
*--------------------------------------
|
||||
KeyRemapped .HS 05080A0B0D15 L,D,U,CR,R
|
||||
@ -1078,18 +1096,15 @@ KeyRemappedUP .HS 1B5B4100 esc[A
|
||||
KeyRemappedCR .HS 0D0A00 crlf
|
||||
KeyRemappedRGHT .HS 1B5B4300 esc[C
|
||||
*--------------------------------------
|
||||
TelnetOpt .DA #IAC,#DO,#TELOPT.ECHO
|
||||
TelnetOpt.LEN .EQ *-TelnetOpt
|
||||
*--------------------------------------
|
||||
TELOPS.STATUS
|
||||
*--------------------------------------
|
||||
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.NAWS,#TELOPT.TTYPE,#TELOPT.NAWS
|
||||
DOWILL .DA #TELOPT.BINARY,#TELOPT.SGA,#TELOPT.TTYPE,#TELOPT.NAWS
|
||||
DOWILL.CNT .EQ *-DOWILL
|
||||
DOWONT .DA #TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW
|
||||
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
|
||||
.AS 'XTERM'
|
||||
@ -1103,6 +1118,7 @@ SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
|
||||
*--------------------------------------
|
||||
CH .BS 1
|
||||
CV .BS 1
|
||||
LWFLG .BS 1
|
||||
INVFLG .BS 1
|
||||
SCROLLTOP .BS 1
|
||||
SCROLLBOT .BS 1
|
||||
|
@ -165,15 +165,23 @@ SKT.Close jsr SKT.Get.I get SKT in ZPPtrSKT, S.SOCKET.SOCK in A
|
||||
|
||||
bne * TO DO: Listening socket
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.STATUS.CLWAIT
|
||||
bne .11
|
||||
|
||||
lda #S.SOCKET.TCP.STATUS.LASTACK
|
||||
bra .12
|
||||
|
||||
.11 lda #S.SOCKET.TCP.STATUS.FINWT1
|
||||
.12 sta (ZPPtrSKT),y
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
jsr TCP.OUT SKT.Close, Try to push FIN
|
||||
|
||||
clc
|
||||
rts
|
||||
jmp TCP.OUT Try to push FIN/ACK
|
||||
*/--------------------------------------
|
||||
* # SKT.Get
|
||||
* Get Ptr to socket
|
||||
|
@ -255,27 +255,9 @@ TCP.IN.JMP.ESTBLSH
|
||||
lda (ZPFrameInPtr),y
|
||||
and #S.TCP.OPTIONS.FIN
|
||||
beq .8
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.ACK ACK the FIN....
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
jsr SKT.GetTCB
|
||||
|
||||
ldx #3
|
||||
ldy #S.TCP.ACKNUM+3
|
||||
|
||||
sec
|
||||
jsr TCP.IN.ACKTheFIN
|
||||
|
||||
.3 lda SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
adc #0
|
||||
sta SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
dey
|
||||
dex
|
||||
bpl .3
|
||||
|
||||
jsr TCP.OUT.I SKT.GetTCB called, try to ACK the FIN
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
@ -317,12 +299,7 @@ TCP.IN.JMP.FINWT2.1
|
||||
bit #S.TCP.OPTIONS.FIN
|
||||
bne .8
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.ACK
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
jsr TCP.OUT ACK the FIN
|
||||
jsr TCP.IN.ACKTheFIN
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
@ -350,6 +327,28 @@ TCP.IN.JMP.TIMEWT
|
||||
TCP.IN.JMP.CLOSED
|
||||
jmp SKT.Destroy
|
||||
*--------------------------------------
|
||||
TCP.IN.ACKTheFIN
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
ora #S.TCP.OPTIONS.ACK
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
jsr SKT.GetTCB
|
||||
|
||||
ldx #3
|
||||
ldy #S.TCP.ACKNUM+3
|
||||
|
||||
sec
|
||||
|
||||
.3 lda SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
adc #0
|
||||
sta SKT.TCBCache+S.TCB.OUTACKNUM,x
|
||||
dey
|
||||
dex
|
||||
bpl .3
|
||||
|
||||
jmp TCP.OUT ACK the FIN
|
||||
*--------------------------------------
|
||||
TCP.IN.SetDataInPtrAndLen
|
||||
ldy #S.IP.TOTAL.LENGTH+1
|
||||
lda (ZPFrameInPtr),y
|
||||
@ -465,8 +464,6 @@ TCP.OUT.SendOptA.1
|
||||
bit #S.TCP.OPTIONS.ACK
|
||||
beq .10
|
||||
|
||||
* pha
|
||||
|
||||
ldx #3
|
||||
ldy #S.TCP.ACKNUM+3
|
||||
|
||||
@ -476,20 +473,10 @@ TCP.OUT.SendOptA.1
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
* pla
|
||||
|
||||
.10
|
||||
* clc
|
||||
* bit #S.TCP.OPTIONS.FIN
|
||||
* beq .11
|
||||
* sec
|
||||
|
||||
.11 ldx #3
|
||||
.10 ldx #3
|
||||
ldy #S.TCP.SEQNUM+3
|
||||
|
||||
.2 lda SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
||||
* adc #0
|
||||
* sta SKT.TCBCache+S.TCB.OUTNEXTSEQ,x
|
||||
sta (ZPFrameOutPtr),y
|
||||
dey
|
||||
dex
|
||||
@ -506,19 +493,10 @@ TCP.OUT.SendOptA.1
|
||||
bcs .9
|
||||
|
||||
ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.TCP.OPTIONS.FIN
|
||||
beq .8
|
||||
|
||||
ldy #S.SOCKET.TCP.STATUS
|
||||
lda #S.SOCKET.TCP.STATUS.FINWT1
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
.8 ldy #S.SOCKET.TCP.OPTIONS
|
||||
lda #0
|
||||
sta (ZPPtrSKT),y
|
||||
|
||||
clc
|
||||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
TCP.NewFrame ldx #S.IP.PROTOCOL.TCP
|
||||
|
@ -34,6 +34,8 @@ CS.START cld
|
||||
L.MSG.USAGE .DA MSG.USAGE
|
||||
L.MSG.GREETINGS .DA MSG.GREETINGS
|
||||
L.TELNETOPTS .DA TELNETOPTS
|
||||
L.TELNETOPT.TTYPE .DA TELNETOPT.TTYPE
|
||||
L.TELNETOPT.LINEMODE .DA TELNETOPT.LINEMODE
|
||||
L.ENV.TERM .DA ENV.TERM
|
||||
L.MSG.DEBUG .DA MSG.DEBUG
|
||||
.DA 0 End Of Reloc Table
|
||||
@ -111,8 +113,6 @@ CS.RUN.LOOP
|
||||
.8 lda #2
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ExecPS
|
||||
|
||||
rts
|
||||
|
||||
CS.RUN.8 clc
|
||||
rts
|
||||
@ -125,7 +125,7 @@ CS.RUN.IACMODE jsr PrintHEX
|
||||
|
||||
jsr PrintHEX
|
||||
|
||||
>STA.G IAC.VERB
|
||||
>STA.G IAC.CMD
|
||||
|
||||
.1 >SLEEP Wait for IAC OPT
|
||||
>SYSCALL GetChar
|
||||
@ -133,15 +133,34 @@ CS.RUN.IACMODE jsr PrintHEX
|
||||
|
||||
jsr PrintHEX
|
||||
|
||||
>STA.G IAC.OPT
|
||||
>STA.G IAC.SUBCMD
|
||||
tax
|
||||
|
||||
>LDA.G IAC.VERB
|
||||
>LDA.G IAC.CMD
|
||||
cmp #SB
|
||||
beq CS.RUN.IACSB
|
||||
*--------------------------------------
|
||||
CS.RUN.IACVERB
|
||||
CS.RUN.IACVERB cmp #WILL
|
||||
bne .8
|
||||
|
||||
cpx #TELOPT.TTYPE
|
||||
bne .2
|
||||
|
||||
>PUSHWI TELNETOPT.TTYPE.LEN
|
||||
>PUSHW L.TELNETOPT.TTYPE
|
||||
bra .7
|
||||
|
||||
jmp CS.RUN.LOOP
|
||||
.2 cpx #TELOPT.LINEMODE
|
||||
bne .8
|
||||
|
||||
>PUSHWI TELNETOPT.LINEMODE.LEN
|
||||
>PUSHW L.TELNETOPT.LINEMODE
|
||||
|
||||
.7 ldy #S.PS.hStdOut
|
||||
lda (pPs),y
|
||||
>SYSCALL write
|
||||
|
||||
.8 jmp CS.RUN.LOOP
|
||||
*--------------------------------------
|
||||
CS.RUN.IACSB
|
||||
.1 >SLEEP
|
||||
@ -186,7 +205,7 @@ CS.RUN.IACSB
|
||||
cmp #SE
|
||||
bne .8
|
||||
|
||||
>LDA.G IAC.OPT
|
||||
>LDA.G IAC.SUBCMD
|
||||
cmp #TELOPT.TTYPE
|
||||
bne .8
|
||||
|
||||
@ -245,23 +264,25 @@ MSG.DEBUG .AZ "{%h}"
|
||||
*--------------------------------------
|
||||
TELNETOPTS .DA #IAC,#WILL,#TELOPT.BINARY
|
||||
.DA #IAC,#WILL,#TELOPT.ECHO
|
||||
* .DA #IAC,#DONT,#TELOPT.ECHO
|
||||
.DA #IAC,#WILL,#TELOPT.SGA
|
||||
.DA #IAC,#DO,#TELOPT.SGA
|
||||
.DA #IAC,#DO,#TELOPT.NAWS
|
||||
.DA #IAC,#DO,#TELOPT.TTYPE
|
||||
.DA #IAC,#DONT,#TELOPT.LINEMODE
|
||||
* .DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE
|
||||
* .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
|
||||
.DA #IAC,#DO,#TELOPT.LINEMODE
|
||||
TELNETOPTS.LEN .EQ *-TELNETOPTS
|
||||
TELNETOPT.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE
|
||||
TELNETOPT.TTYPE.LEN .EQ *-TELNETOPT.TTYPE
|
||||
TELNETOPT.LINEMODE
|
||||
.DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE
|
||||
TELNETOPT.LINEMODE.LEN
|
||||
ENV.TERM .AZ "TERM"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
IAC.SB.DATA .BS 64
|
||||
IAC.VERB .BS 1
|
||||
IAC.OPT .BS 1
|
||||
IAC.CMD .BS 1
|
||||
IAC.SUBCMD .BS 1
|
||||
IAC.SB .BS 1
|
||||
hDEV .BS 1
|
||||
TimeOut .BS 1
|
||||
|
@ -3,24 +3,25 @@ PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
CL.PrintPrompt >PUSHBI 0
|
||||
>LDYA L.ENV.PS1
|
||||
CL.PrintPrompt >LDYA L.ENV.PS1
|
||||
>SYSCALL GetEnv
|
||||
>SYSCALL ExpandStr
|
||||
phx
|
||||
>SYSCALL printf
|
||||
bcs .1
|
||||
|
||||
>SYSCALL ExpandStr
|
||||
bcs .9
|
||||
|
||||
phx
|
||||
pha
|
||||
>PUSHBI 0
|
||||
pla
|
||||
>SYSCALL printf
|
||||
pla
|
||||
>SYSCALL FreeMem
|
||||
|
||||
.1 >PUSHBI 0
|
||||
>LDYA L.MSG.PROMPT
|
||||
>SYSCALL printf
|
||||
plx
|
||||
php
|
||||
pha
|
||||
txa
|
||||
>SYSCALL FreeMem
|
||||
pla
|
||||
plp
|
||||
rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CL.CHARIN tax
|
||||
|
||||
|
@ -358,7 +358,7 @@ INTCMDS .AZ "CD"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
MSG.GREETINGS .AZ "\r\nA2osX-Shell %d.%d\r\n\r\n"
|
||||
MSG.PROMPT .AZ "$ "
|
||||
MSG.PROMPT .AZ "\e[7h$ "
|
||||
MSG.ECHO .AS ">%s"
|
||||
MSG.ECHOCRLF .AZ "\r\n"
|
||||
MSG.ERROR .AZ "[$%h]:%S.\r\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user