diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 050896f7..fd37d978 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 552a4b50..9d0bb10c 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/BIN/TELNET.S.txt b/BIN/TELNET.S.txt index 30a960c2..b5a98a55 100644 --- a/BIN/TELNET.S.txt +++ b/BIN/TELNET.S.txt @@ -181,8 +181,6 @@ CS.RUN.LOOP >SLEEP jmp CS.RUN.SKTERR .1 >PUSHYA len -* lda #'@' -* >SYSCALL putchar >PUSHW ZPBufPtr ldy #S.PS.hStdOut lda (pPs),y diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 2d31fad5..029470cb 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -1081,18 +1081,25 @@ 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 +DOWILL .DA #TELOPT.BINARY,#TELOPT.SGA,#TELOPT.NAWS,#TELOPT.TTYPE,#TELOPT.NAWS DOWILL.CNT .EQ *-DOWILL -DOWONT .DA #TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW,#TELOPT.NAWS +DOWONT .DA #TELOPT.NEWENVIRON,#TELOPT.XDISPLOC,#TELOPT.TSPEED,#TELOPT.LFLOW DOWONT.CNT .EQ *-DOWONT SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS .AS 'XTERM' .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 *-------------------------------------- CH .BS 1 CV .BS 1 diff --git a/DRV/X.SSC.DRV.S.txt b/DRV/X.SSC.DRV.S.txt index f79b52e2..af256543 100644 --- a/DRV/X.SSC.DRV.S.txt +++ b/DRV/X.SSC.DRV.S.txt @@ -291,6 +291,7 @@ CONTROL >STYA ZPIOCTL *-------------------------------------- OPEN php sei + ldx DEVSLOTn08F stz SSC.RESET-$8F,x @@ -318,14 +319,22 @@ OPEN php lda SSC.DATA-$8F,x discard any garbage byte lda SSC.STATUS-$8F,x clear any IRQ pending + lda #S.DIB.S.OPENED + tsb DIB+S.DIB.S + plp clc rts *-------------------------------------- CLOSE php sei + ldx DEVSLOTn08F stz SSC.RESET-$8F,x + + lda #S.DIB.S.OPENED + trb DIB+S.DIB.S + plp clc rts diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index 28a26af8..8e1b1bec 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -150,8 +150,9 @@ TCP.IN.JMP.LISTEN TCP.IN.JMP.SYNSENT ldy #S.TCP.OPTIONS SYN Send, only accept SYN.ACK packet, then Send ACK lda (ZPFrameInPtr),y - bit #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK - beq .8 + and #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK + cmp #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK + bne .9 jsr SKT.GetTCB @@ -164,7 +165,7 @@ TCP.IN.JMP.SYNSENT adc #0 sta SKT.TCBCache+S.TCB.OUTNEXTSEQ,x eor (ZPFrameInPtr),y - bne .8 + bne .9 dey dex bpl .1 @@ -192,8 +193,10 @@ TCP.IN.JMP.SYNSENT jmp SKT.StoreTCB -.8 clc -.9 rts +.9 lda #S.TCP.OPTIONS.RST + jsr TCP.OUT.SendOptA + + jmp SKT.Destroy *-------------------------------------- TCP.IN.JMP.SYNRCVD ldy #S.TCP.OPTIONS SYN Recieved, SYN.ACK Sent, only accept ACK packet diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index f0cfb3fd..b7a9853f 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -10,7 +10,7 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/NET.TELNET.I *-------------------------------------- -TIMEOUT.MAX .EQ 100 1 sec. +TIMEOUT.MAX .EQ 100 10 sec. *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -32,8 +32,8 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE -L.MSG.TELNETOPT .DA MSG.TELNETOPT L.MSG.GREETINGS .DA MSG.GREETINGS +L.TELNETOPTS .DA TELNETOPTS L.ENV.TERM .DA ENV.TERM .DA 0 End Of Reloc Table *-------------------------------------- @@ -76,54 +76,42 @@ CS.INIT ldy #S.PS.ARGC sec .9 rts *-------------------------------------- -CS.RUN >SLEEP - - >SYSCALL GetChar - bcs CS.RUN - - -.11 >SLEEP - >SYSCALL GetChar - bcc .11 - - jsr Init.Timeout - - ldy #0 - -.1 lda MSG.TELNETOPT,y - phy - >SYSCALL PutChar - ply - iny - cpy #MSG.TELNETOPT.LEN - bne .1 - -CS.RUN.LOOP -.1 >SLEEP - >SYSCALL GetChar - bcs .4 - - cmp #IAC - beq CS.RUN.IACMODE - - - -.4 jsr Wait.Timeout - bcc .1 +CS.RUN >PUSHWI TELNETOPTS.LEN + >PUSHW L.TELNETOPTS + ldy #S.PS.hStdOut + lda (pPs),y + >SYSCALL write + bcs CS.RUN.8 + >PUSHWI K.VER >PUSHBI 2 >LDYA L.MSG.GREETINGS >SYSCALL printf - bcs .8 unable to send greetings...reset.. + bcs CS.RUN.8 unable to send greetings...reset.. + + jsr Init.Timeout + +CS.RUN.LOOP +* >SLEEP + +*.1 >SYSCALL GetChar +* bcs .2 + +* cmp #IAC +* beq CS.RUN.IACMODE + +*.2 jsr Wait.Timeout +* bcc .1 + lda #2 >SYSCALL GetArg >SYSCALL ExecPS -.9 rts + rts -.8 clc +CS.RUN.8 clc rts *-------------------------------------- CS.RUN.IACMODE >SLEEP Wait for IAC VERB (or SB) @@ -144,7 +132,7 @@ CS.RUN.IACMODE >SLEEP Wait for IAC VERB (or SB) *-------------------------------------- CS.RUN.IACVERB - jmp CS.RUN.LOOP + jmp CS.RUN.LOOP *-------------------------------------- CS.RUN.IACSB .1 >SLEEP @@ -202,8 +190,7 @@ CS.RUN.IACSB CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - ldy #TimeOut - lda (pData),y + >LDA.G TimeOut beq .9 dec @@ -220,32 +207,31 @@ CS.QUIT >LDA.G hDEV .8 clc rts *-------------------------------------- -Init.Timeout ldy #TimeOut - lda #TIMEOUT.MAX - sta (pData),y +Init.Timeout lda #TIMEOUT.MAX + >STA.G TimeOut rts *-------------------------------------- Wait.TimeOut sec - ldy #TimeOut - lda (pData),y + >LDA.G TimeOut beq .9 clc .9 rts *-------------------------------------- CS.END MSG.USAGE .AZ "Usage : GETTY " -MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY - .DA #IAC,#DO,#TELOPT.LINEMODE - .DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE - .DA #IAC,#DONT,#TELOPT.ECHO +MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d\r\n" +*-------------------------------------- +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.NAWS .DA #IAC,#DO,#TELOPT.TTYPE - .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE -MSG.TELNETOPT.LEN .EQ *-MSG.TELNETOPT -MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d\r\n" + .DA #IAC,#DONT,#TELOPT.LINEMODE +* .DA #IAC,#SB,#TELOPT.LINEMODE,#SB.SEND,#0,#IAC,#SE +* .DA #IAC,#SB,#TELOPT.TTYPE,#SB.SEND,#IAC,#SE +TELNETOPTS.LEN .EQ *-TELNETOPTS ENV.TERM .AZ "TERM" *-------------------------------------- .DUMMY