From 7f402fc02b3ddd9341efa98648ce0fcd72420464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 13 Sep 2018 17:29:02 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/EDIT.S.txt | 2 +- DRV/CONSOLE.DRV.S.txt | 96 +++++++++++++++++++++++---------------- LIB/LIBTCPIP.S.SKT.txt | 16 +++++-- LIB/LIBTCPIP.S.TCP.txt | 74 +++++++++++------------------- SBIN/GETTY.S.txt | 49 ++++++++++++++------ SBIN/SHELL.S.CL.txt | 27 +++++------ SBIN/SHELL.S.txt | 2 +- 9 files changed, 145 insertions(+), 121 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 0669ba65acdd10bcfc1a66561e5d706a7999bd46..1be90b2d327146954244b99433e06a30d3db41f6 100644 GIT binary patch delta 9469 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 delta 9299 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

40^YO_!CGJWx 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 delta 32533 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 J1}oeP{~wraC$9hi diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 2a4ce3af..3f510194 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -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" diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 029470cb..4da80fb7 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -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 diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index b42e364e..4593bdf1 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -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 diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index 8e1b1bec..21a52e41 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -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 diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index cc7179f9..59a88156 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -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 diff --git a/SBIN/SHELL.S.CL.txt b/SBIN/SHELL.S.CL.txt index 4dd31497..eabd35cf 100644 --- a/SBIN/SHELL.S.CL.txt +++ b/SBIN/SHELL.S.CL.txt @@ -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 diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index ea6bda7c..3456aa75 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -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"