diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index ed8fc032..14b14266 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 5d647c88..0a4d1b48 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -3,22 +3,18 @@ NEW .LIST OFF *-------------------------------------- BUF.InsertA sta TmpByte - jsr BUF.ComputeCOffset + cpy #255 beq .8 - lda BUF.COffset - clc - >ADC.G BufBase - tax - - lda BUF.COffset+1 - >ADC.G BufBase+1 - sta BufPtr+1 + >LDYAI 1 + jsr BUF.BufPtrSetup + bcs .9 inx bne .1 inc + .1 stx BufPtrDst sta BufPtrDst+1 @@ -34,18 +30,76 @@ BUF.InsertA sta TmpByte .8 clc .9 rts *-------------------------------------- -BUF.DelCharAtCursor - lda (BufPtr) - pha Save deleted char for later +BUF.InsertTAB >LDA.G FileX + and #TABMASK + bne .1 + + lda #TABLEN - >LDYA BufPtr - >STYA BufPtrDst +.1 sta TmpByte + + jsr BUF.ComputeCOffset + tya + sec + adc TmpByte + bcs .8 + + ldy TmpByte + lda #0 + jsr BUF.BufPtrSetup + bcs .9 + + pha + txa + clc + adc TmpByte + sta BufPtrDst + pla + adc #0 + sta BufPtrDst+1 + + jsr BUF.MoveForwardTail + + lda #C.SPACE + ldy TmpByte + dey + +.2 sta (BufPtr),y + + dey + bpl .2 + +.4 lda FileLen + clc + adc TmpByte + sta FileLen + bcc .8 + + inc FileLen+1 + +.8 clc +.9 rts +*-------------------------------------- +BUF.DelCharAtCursor + lda BUF.COffset + clc + >ADC.G BufBase + sta BufPtrDst + + lda BUF.COffset+1 + >ADC.G BufBase+1 + sta BufPtrDst+1 + + >LDYA BufPtrDst iny bne .1 inc .1 >STYA BufPtr + lda (BufPtr) + pha Save deleted char for later + jsr BUF.MoveBackTail lda FileLen @@ -65,27 +119,65 @@ BUF.InsertClipboard >SYSCALL GetMemPtr >STYA ClipboardPtr + jsr BUF.ComputeCOffset lda FileLen sec - ldy #ClipboardLen - adc (pData),y + >ADC.G ClipboardLen pha lda FileLen+1 iny adc (pData),y ply - jsr BUF.GetNewYA + + cpy BufLen + sbc BufLen+1 + bcc .8 + + >LDYA.G ClipboardLen + jsr BUF.BufPtrSetup bcs .9 - - >LDYA BUF.COffset - jsr BUF.Start2YA - - jsr BUF.CopyClipboard - jsr BUF.CopyTail - - >LDA.G ClipboardLen + + pha + txa + clc + >ADC.G ClipboardLen + sta BufPtrDst + pla + >ADC.G ClipboardLen+1 + sta BufPtrDst+1 + + jsr BUF.MoveForwardTail + + lda ClipboardLen + eor #$ff + tax + + lda ClipboardLen+1 + eor #$ff + pha + + ldy #0 + +.1 inx + bne .2 + + pla + inc + beq .3 + + pha + +.2 lda (ClipboardPtr),y + sta (BufPtr),y + iny + bne .1 + inc ClipboardPtr+1 + inc BufPtr+1 + bra .1 + +.3 >LDA.G ClipboardLen clc adc FileLen sta FileLen @@ -98,83 +190,41 @@ BUF.InsertClipboard .8 clc .9 rts *-------------------------------------- -BUF.InsertTAB jsr BUF.ComputeCOffset - cpy #256-TABLEN - beq .8 - - lda FileLen - sec - adc #TABLEN - tay - lda FileLen+1 - adc #0 - - jsr BUF.GetNewYA - bcs .9 - - >LDYA BUF.COffset - jsr BUF.Start2YA - - ldy #TABLEN - lda #C.SPACE - -.1 sta (BufPtr) - inc BufPtr - bne .2 - inc BufPtr+1 - -.2 dey - bne .1 - -.3 jsr BUF.CopyTail - -.4 lda FileLen - clc - adc #TABLEN - sta FileLen - bcc .8 - - inc FileLen+1 - -.8 clc -.9 rts -*-------------------------------------- BUF.DelSel jsr BUF.GetSelLen bcs .8 - lda FileLen - sec - sbc SelLen - tay - lda FileLen+1 - sbc SelLen+1 - iny - bne .1 - inc + lda SelStart + clc + >ADC.G BufBase + sta BufPtrDst -.1 jsr BUF.GetNewYA - bcs .9 - - >LDYA.G SelStart - jsr BUF.Start2YA - lda BufPtrBackup + lda SelStart+1 + >ADC.G BufBase+1 + sta BufPtrDst+1 + + lda BufPtrDst clc adc SelLen - sta BufPtrBackup - lda BufPtrBackup+1 + sta BufPtr + + lda BufPtrDst+1 adc SelLen+1 - sta BufPtrBackup+1 - jsr BUF.CopyTail + sta BufPtr+1 + + jsr BUF.MoveBackTail lda FileLen sec sbc SelLen sta FileLen + lda FileLen+1 sbc SelLen+1 sta FileLen+1 jsr BUF.ResetSel + jmp SCRN.CursorAdjust + .8 clc .9 rts *-------------------------------------- @@ -289,54 +339,6 @@ BUF.CopyAddY tya inc BufPtr+1 .2 rts *-------------------------------------- -BUF.Start2YA eor #$ff - pha - tya - eor #$ff - tax - - ldy #0 - -.1 inx - bne .2 - pla - inc - beq .3 - - pha - -.2 lda (BufPtrBackup),y - sta (BufPtr),y - iny - bne .1 - - inc BufPtrBackup+1 - inc BufPtr+1 - bra .1 - -.3 tya - clc - adc BufPtrBackup - sta BufPtrBackup - bcc BUF.CopyAddY - inc BufPtrBackup+1 - bra BUF.CopyAddY -*-------------------------------------- -BUF.CopyTail ldy #0 - -.1 lda (BufPtrBackup),y - sta (BufPtr),y - beq .8 - - iny - bne .1 - - inc BufPtrBackup+1 - inc BufPtr+1 - bra .1 - -.8 rts -*-------------------------------------- BUF.MoveBackTail ldy #0 @@ -366,7 +368,7 @@ BUF.MoveForwardTail phx .1 lda (BufPtr),y - beq .4 + beq .3 dex bne .2 @@ -380,25 +382,27 @@ BUF.MoveForwardTail inc BufPtrDst+1 bra .1 -.4 lda (BufPtr),y +.3 lda (BufPtr),y sta (BufPtrDst),y - tya - bne .5 - - dec BufPtr+1 - dec BufPtrDst+1 - -.5 dey - inx bne .4 pla inc beq .8 + pha - bra .4 + +.4 tya + bne .5 + + dec BufPtr+1 + dec BufPtrDst+1 + +.5 dey + + bra .3 .8 rts *-------------------------------------- @@ -446,8 +450,7 @@ BUF.GetLineAX sta BUF.TmpLine1 Requested Line stz BUF.LOffset stz BUF.LOffset+1 - >LDA.G hBuffer - >SYSCALL GetMemPtr + >LDYA.G BufBase >STYA BufPtr .1 ldy #0 @@ -501,48 +504,6 @@ BUF.GetLineAX sta BUF.TmpLine1 Requested Line .9 sec rts *-------------------------------------- -BUF.GetNewYA tax In 256 bytes page to avoid fragmentation - - tya - beq .10 - inx - -.10 phx - - >LDA.G hBufferBackup - beq .1 - - >SYSCALL FreeMem - -.1 >LDA.G hBuffer - >STA.G hBufferBackup - - >SYSCALL GetMemPtr - >STYA BufPtrBackup - - >STZ.G hBuffer - - pla - ldy #0 - - >SYSCALL GetMem - bcs .9 - >STYA.G BufBase - txa - >STA.G hBuffer - - >LDA.G bSaved - beq .8 - - lda #0 - sta (pData),y - - jsr SCRN.UpdateTopBar - bcs .9 -.8 -* clc -.9 rts -*-------------------------------------- BUF.ResetSel lda #$ff ldy #SelStart @@ -601,6 +562,18 @@ BUF.GetSelLen ldy #SelEnd .9 sec rts *-------------------------------------- +BUF.BufPtrSetup lda BUF.COffset + clc + >ADC.G BufBase + sta BufPtr + tax + + lda BUF.COffset+1 + >ADC.G BufBase+1 + sta BufPtr+1 + clc + rts +*-------------------------------------- MAN SAVE USR/SRC/BIN/EDIT.S.BUF LOAD USR/SRC/BIN/EDIT.S diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 74989a39..5e994169 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -34,6 +34,9 @@ Prompt.Editor cmp #C.DEL cmp #C.SPACE bcc .3 + pha + jsr BUF.ComputeCOffset + pla jsr BUF.InsertA bcs .9 @@ -66,22 +69,28 @@ Ctrl.Invalid Ctrl.Invalid.RTS rts *-------------------------------------- -Ctrl.A lda #PromptModeHelp - >STA.G PromptMode - >LDYA L.MSG.HELP +Ctrl.A >LDYA L.MSG.HELP >STYA ZPPTR1 - stz .1+1 -.1 ldy #0 + + stz TmpByte + +.1 ldx #0 + ldy TmpByte jsr SCRN.GotoXY + bcs .9 + lda (ZPPTR1) beq .8 + >PUSHW ZPPTR1 >PUSHBI 2 >LDYA L.MSG.HELPLINE >SYSCALL printf - bcs Ctrl.Invalid.RTS - inc .1+1 + bcs .9 + + inc TmpByte + lda (ZPPTR1) sec adc ZPPTR1 @@ -90,7 +99,18 @@ Ctrl.A lda #PromptModeHelp inc ZPPTR1+1 bra .1 -.8 jmp SCRN.UpdateStatusBar +.8 lda #PromptModeHelp + >STA.G PromptMode + jsr SCRN.UpdateStatusBar + bcs .9 + + >SYSCALL getchar + bcs .9 + + >STZ.G PromptMode + jmp SCRN.UpDateMain + +.9 rts *-------------------------------------- Ctrl.B jsr BUF.ComputeCOffset @@ -162,20 +182,20 @@ Ctrl.TAB jsr BUF.InsertTAB >LDA.G FileX clc - adc #TABLEN - and #$FC + adc TmpByte sta (pData),y >LDA.G CurX clc - adc #TABLEN - and #$FC + adc TmpByte sta (pData),y + sec >SBC.G ScreenX + sec >SBC.G ScreenW - bcs .8 + jsr SCRN.UpdateCurrentLine bcs .9 jmp SCRN.UpdateStatusBar @@ -241,13 +261,41 @@ Ctrl.L jsr BUF.GetLine jmp SCRN.UpdateViewPort *-------------------------------------- -Ctrl.CR lda #C.CR +Ctrl.CR jsr BUF.ComputeCOffset + + lda #C.CR jsr BUF.InsertA bcs .9 + >PUSHBI 0 + >LDYA L.SEQ.CEOL + >SYSCALL printf + bcs .9 + + >INCW.G FileY >STZ.G FileX + + >LDA.G ScreenH + dec + >PUSHA + >LDA.G CurY + inc + inc + >PUSHA + >PUSHBI 2 + >LDYA L.SEQ.SCROLLCURDN + >SYSCALL printf + bcs .9 - jmp SCRN.UpdateMain + jsr SCRN.UpdateCurrentLine + + >LDA.G ScreenH + dec + >PUSHA + >PUSHBI 1 + >LDYA L.SEQ.SCROLLRGN + >SYSCALL printf + .9 rts *-------------------------------------- diff --git a/BIN/EDIT.S.FILE.txt b/BIN/EDIT.S.FILE.txt index 6753c327..a56fd781 100644 --- a/BIN/EDIT.S.FILE.txt +++ b/BIN/EDIT.S.FILE.txt @@ -7,6 +7,7 @@ FILE.New >LDYAI 4096 >SYSCALL GetMem bcs .9 + >STYA BufPtr >STYA.G BufBase txa @@ -51,7 +52,7 @@ FILE.Load.TXT stz FileLen jsr FILE.GetBuffer bcs .99 - >LDYA 256 + >LDYAI 256 >SYSCALL GetMem bcs .99 @@ -67,102 +68,152 @@ FILE.Load.TXT stz FileLen .99 bcs .9 sta TmpIndex - + .1 >PUSHWI 254 >PUSHW ZPPTR1 lda TmpIndex >SYSCALL fread - bcs .8 + bcs .7 lda #0 sta (ZPPTR1),y Y = line len + ldx #0 + ldy #0 lda (ZPPTR1) - - clc + beq .8 + eor #C.LF bne .2 + phy + lda #2 >STA.G FileType - sec -.2 lda ZPPTR1 - adc #0 - tay + ply + iny - lda ZPPTR1+1 - adc #0 - >PUSHYA - >LDYA BufPtr - >SYSCALL strcat +.2 lda (ZPPTR1),y + beq .4 + + sta (BufPtr) + inc BufPtr + bne .3 + + inc BufPtr+1 + +.3 inx + iny + bra .2 + +.4 txa + clc + adc FileLen + sta FileLen + bcc .1 + + inc FileLen+1 bra .1 -.8 cmp #MLI.E.EOF +.7 cmp #MLI.E.EOF bne .9 - - >LDYA BufPtr - >SYSCALL strlen - >STYA FileLen + +.8 lda #0 + sta (BufPtr) clc -.9 jmp FILE.Load.Cleanup + .HS B0 BCS +.9 sec + jmp FILE.Close *-------------------------------------- FILE.Load.ASM lda #MLI.E.INCFF sec rts *-------------------------------------- -FILE.Load.Cleanup - php - pha - lda TmpByte - beq .1 - >SYSCALL freemem +FILE.Save >LDYAI 256 + >SYSCALL GetMem + bcs .9 + + >STYA ZPPTR1 + stx TmpByte -.1 lda TmpIndex - beq .2 + >LDA.G FileType + tax - >SYSCALL fclose - -.2 pla - plp - rts + jmp (J.SAVE,x) +.9 rts *-------------------------------------- -FILE.Save >PUSHWZ Aux type +FILE.Save.CR clc + .HS B0 BCS +FILE.Save.CRLF sec + ror TmpIndex+1 + + >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.CREATE+O.WRONLY >LDA.G hFileName >SYSCALL GetMemPtr - >SYSCALL FOpen bcs .9 - pha - >PUSHW FileLen - >LDA.G hBuffer - >SYSCALL GetMemPtr - >PUSHYA - pla - pha - - >SYSCALL FWrite - bcc .1 - tax - pla - phx - >SYSCALL FClose - pla - sec - rts + sta TmpIndex -.1 pla - >SYSCALL FClose + >LDYA.G BufBase + >STYA BufPtr + +.1 lda (BufPtr) + beq .8 + + ldy #$ff + +.2 iny + lda (BufPtr),y + sta (ZPPTR1),y + beq .3 - lda #$80 + cmp #C.CR + bne .2 + + iny + + bit TmpIndex+1 + bpl .3 + + iny + + lda #C.LF + sta (ZPPTR1),y + +.3 tya + beq .8 + + clc + adc BufPtr + sta BufPtr + bcc .4 + + inc BufPtr+1 + +.4 lda #0 + >PUSHYA + >PUSHW ZPPTR1 + lda TmpIndex + >SYSCALL FWrite + bcs .9 + + bra .1 + +.8 lda #$80 >STA.G bSaved jsr SCRN.UpdateTopBar -.9 rts + clc +.9 jmp FILE.Close +*-------------------------------------- +FILE.Save.ASM + clc + rts *-------------------------------------- FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3 dey @@ -183,7 +234,8 @@ FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3 >SYSCALL GetMem bcs .99 - >STYA.G BufBase + >STYA BufPtr + >STYA.G BufBase txa >STA.G hBuffer @@ -196,6 +248,21 @@ FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3 sec .99 rts *-------------------------------------- +FILE.Close php + pha + lda TmpByte + beq .1 + >SYSCALL freemem + +.1 lda TmpIndex + beq .2 + + >SYSCALL fclose + +.2 pla + plp + rts +*-------------------------------------- MAN SAVE USR/SRC/BIN/EDIT.S.FILE LOAD USR/SRC/BIN/EDIT.S diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index 5f145890..dbdcad59 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -14,12 +14,13 @@ SCRN.Init >LDA.G ScreenH jsr SCRN.UpdateTopBar bcs .9 + jmp SCRN.UpdateMain .9 rts *-------------------------------------- SCRN.Home lda #0 - ldy #FileX Zero all + ldy #FileX Zero FileXY,ScreenXY & CurXY .1 sta (pData),y iny @@ -89,6 +90,7 @@ SCRN.UpdateMain >LDA.G ScreenY .1 lda TmpIndex ldx TmpIndex+1 + jsr BUF.GetLineAX Y = line length bcs .5 @@ -167,9 +169,7 @@ SCRN.UpdateLineAtALenY jsr SCRN.ToLineBuf bra .10 -.11 ldy #0 - - >LDA.G ScreenW +.11 >LDA.G ScreenW tax >LDA.G ScreenX cmp TmpLen diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 8b3ac2c4..639deadf 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -3,12 +3,16 @@ NEW .LIST OFF .OP 65C02 .OR $2000 - .TF BIN/EDIT2 + .TF BIN/EDIT *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/MLI.I .INB INC/MLI.E.I +*-------------------------------------- +PROMPTBUFMAX .EQ 64 +TABLEN .EQ 4 +TABMASK .EQ 3 *-------------------------------------- .DUMMY .OR ZPBIN @@ -40,9 +44,6 @@ bSelected .BS 1 ZS.END .ED *-------------------------------------- -PROMPTBUFMAX .EQ 64 -TABLEN .EQ 4 -*-------------------------------------- PromptModeHelp .EQ 2 PromptModeFind .EQ 4 PromptModeReplace .EQ 6 @@ -70,9 +71,11 @@ CS.START cld .DA CS.QUIT L.SEQ.DETECT .DA SEQ.DETECT L.SEQ.INIT .DA SEQ.INIT +L.SEQ.SCROLLRGN .DA SEQ.SCROLLRGN L.SEQ.RESET .DA SEQ.RESET L.SEQ.SCROLLUP .DA SEQ.SCROLLUP L.SEQ.SCROLLDN .DA SEQ.SCROLLDN +L.SEQ.SCROLLCURDN .DA SEQ.SCROLLCURDN L.SEQ.CEOL .DA SEQ.CEOL L.SEQ.BAR .DA SEQ.BAR L.MSG.TOPBAR .DA MSG.TOPBAR @@ -89,6 +92,9 @@ L.MSG.NEWFILE .DA MSG.NEWFILE L.MSG.GOTOXY .DA MSG.GOTOXY L.MSG.HELPLINE .DA MSG.HELPLINE L.MSG.HELP .DA MSG.HELP +J.SAVE .DA FILE.Save.CR + .DA FILE.Save.CRLF + .DA FILE.Save.ASM J.PROMPT .DA Prompt.Editor .DA Prompt.Help .DA Prompt.Find @@ -357,10 +363,12 @@ CharIn.Esc >STZ.G bEscMode *-------------------------------------- CS.END SEQ.DETECT .AZ "Querying terminal capabilities...\e[999;999H\e[6n" -SEQ.INIT .AZ "\ec\e[?7l\e[2;%dr" SEQ.RESET .AZ "\ec" +SEQ.INIT .AS "\ec" +SEQ.SCROLLRGN .AZ "\e[?7l\e[2;%dr" SEQ.SCROLLUP .AZ "\eD" SEQ.SCROLLDN .AZ "\eM" +SEQ.SCROLLCURDN .AZ "\e[?7l\e[%d;%dr\eM" SEQ.BAR .AS "\e[40;37m\e[7m%s" +SEQ.NORM SEQ.NORM .AZ "\e[0m" SEQ.INV .AZ "\e[7m" @@ -370,7 +378,7 @@ MSG.TOPBAR .AZ "A2osX Edit:%s %s" MSG.TXTCR .AZ "TXT/CR" MSG.TXTCRLF .AZ "TXT/CRLF" MSG.TXTASM .AZ "S-C/ASM" -MSG.STATUSBAR .AZ "(Press Ctrl-A For Help) Len: %5D Pos: %5D Col: %3d Line: %5D" +MSG.STATUSBAR .AZ "Press Ctrl-A For Help Len: %5D Pos: %5D Col: %3d Line: %5D" MSG.STATUSBAR.H .AZ "Press any key to exit this screen:" MSG.STATUSBAR.F .AZ "Find:%s" MSG.STATUSBAR.R .AZ "Replace:%s" diff --git a/LIB/LIBTCPIP.S.ARP.txt b/LIB/LIBTCPIP.S.ARP.txt index 001031e9..aa9dabd8 100644 --- a/LIB/LIBTCPIP.S.ARP.txt +++ b/LIB/LIBTCPIP.S.ARP.txt @@ -117,13 +117,7 @@ ARP.IN ldy #S.ARP.TPA+3 cmp #S.ARP.OPERATION.REP beq ARP.IN.REP -ARP.IN.EXIT lda hFrameIn - beq .8 - - stz hFrameIn - >SYSCALL2 FreeMem -.8 clc - rts +ARP.IN.EXIT jmp FRM.DiscardIn ARP.IN.REQ ldy #S.ARP.SPA+3 ldx #3 diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index 617b7886..cac7ee2a 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -493,10 +493,8 @@ DNS.POLL lda hDNSSocket cpx #4 bne .5 jsr DNS.UPDATE.BY.ID -.9 lda hFrameIn - >SYSCALL2 FreeMem - clc - rts + +.9 jmp FRM.DiscardIn *-------------------------------------- DNS.NextCache lda ZPCachePtr clc diff --git a/LIB/LIBTCPIP.S.FRM.txt b/LIB/LIBTCPIP.S.FRM.txt index e45e00ab..e308f750 100644 --- a/LIB/LIBTCPIP.S.FRM.txt +++ b/LIB/LIBTCPIP.S.FRM.txt @@ -275,8 +275,8 @@ FRM.Queue plp FRM.Discard lda hFrameOut beq FRM.Discard.9 - >SYSCALL2 FreeMem stz hFrameOut + >SYSCALL2 FreeMem FRM.Discard.9 sec rts @@ -313,6 +313,7 @@ FRM.Retry ldx FRM.QUEUE.Tail inx cpx #K.FRMQUEUE.SIZE bne .5 + ldx #0 .5 stx FRM.QUEUE.Tail >SYSCALL2 FreeMem @@ -333,6 +334,14 @@ FRM.Send.IOCTL >PUSHW L.IOCTL >SYSCALL2 IOCTL rts *-------------------------------------- +FRM.DiscardIn lda hFrameIn + beq .8 + stz hFrameIn + + >SYSCALL2 FreeMem +.8 clc + rts +*-------------------------------------- MAN SAVE USR/SRC/LIB/LIBTCPIP.S.FRM LOAD USR/SRC/LIB/LIBTCPIP.S diff --git a/LIB/LIBTCPIP.S.ICMP.txt b/LIB/LIBTCPIP.S.ICMP.txt index c953f959..b684ed2f 100644 --- a/LIB/LIBTCPIP.S.ICMP.txt +++ b/LIB/LIBTCPIP.S.ICMP.txt @@ -37,11 +37,8 @@ ICMP.IN.ECHOREQ ldy #S.IP.DST+3 bpl .3 clc Queue if fail jmp FRM.SendIP -ICMP.IN.EXIT lda hFrameIn - beq .8 - >SYSCALL2 FreeMem - stz hFrameIn -.8 rts + +ICMP.IN.EXIT jmp FRM.DiscardIn *-------------------------------------- ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW ldy #S.ICMP.IDENTIFIER @@ -53,9 +50,12 @@ ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW jsr SKT.FindMatchingLocRem bcs ICMP.IN.EXIT + ldy #S.SOCKET.PROTO lda (ZPPtrSKT),y - cmp #S.IP.PROTOCOL.ICMP bne ICMP.IN.EXIT + cmp #S.IP.PROTOCOL.ICMP + bne ICMP.IN.EXIT + lda hFrameIn jsr SKT.AddToQueueA bcs ICMP.IN.EXIT Q full, discard... diff --git a/LIB/LIBTCPIP.S.IP.txt b/LIB/LIBTCPIP.S.IP.txt index 22d48774..b402f246 100644 --- a/LIB/LIBTCPIP.S.IP.txt +++ b/LIB/LIBTCPIP.S.IP.txt @@ -18,15 +18,15 @@ IP.IN ldy #S.IP.PROTOCOL lda hFrameIn jsr SKT.AddToQueueA bcs .9 Q full, discard... + rts + .3 cmp #S.IP.PROTOCOL.TCP bne .9 + jsr TCP.IN TCP may NOT discard FrameIn -.9 lda hFrameIn - beq .8 - >SYSCALL2 FreeMem -.8 clc - rts + +.9 jmp FRM.DiscardIn *-------------------------------------- IP.ComputeICMPChecksum stz IP.CHECKSUM diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 3545f91e..8cd69c86 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -340,7 +340,7 @@ SKT.shutdown.SEQPACKET pla inc cmp #S.SOCKET.HQ.MAX - beq .2 + bne .2 lda #0 @@ -954,6 +954,7 @@ SKT.Send clc jsr SKT.PullhFDDataInPtrLen plp bcc .1 + jsr SKT.PullRemAddr .1 ldy #S.SOCKET.T @@ -993,9 +994,14 @@ SKT.Send.SEQPACKET jsr SKT.CopyDataInToOut - jmp TCP.OUT.Send + ldy #S.TCP.WINDOW + lda /K.TCP.WSIZE + sta (ZPFrameOutPtr),y + iny + lda #K.TCP.WSIZE + sta (ZPFrameOutPtr),y -* TODO add ZPDataInLen to SEQ + jmp TCP.OUT.SEQSEND */-------------------------------------- * # GetSockOpt * Set Socket Options diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index f6f64c4a..2b1e3668 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -23,10 +23,7 @@ TCP.IN.RST lda SKT.TABLE,x TCP.IN.JMP.OPENED TCP.IN.JMP.CLOSED TCP.IN.JMP.DISCARD - lda hFrameIn - stz hFrameIn - >SYSCALL2 FreeMem - rts + jmp FRM.DiscardIn *-------------------------------------- TCP.IN.JMP.LISTEN ldy #S.SOCKET.T Create a new client socket @@ -465,15 +462,18 @@ TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1 bcs .9 jsr SKT.GetDataFromSktOut + ldy #S.TCP.WINDOW lda SKT.Cache+S.SOCKET.TCP.INFREE+1 sta (ZPFrameOutPtr),y iny lda SKT.Cache+S.SOCKET.TCP.INFREE sta (ZPFrameOutPtr),y - lda #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH + +TCP.OUT.SEQSEND lda #S.TCP.OPTIONS.ACK+S.TCP.OPTIONS.PSH jsr TCP.OUT.Send - bcs .9 + bcs TCP.OUT.Send.RTS + lda ZPDataOutLen ldy ZPDataOutLen+1 ldx #S.SOCKET.TCP.OUTNEXTSEQ @@ -486,7 +486,7 @@ TCP.OUT.SendOptA >LDYAI 0 jsr TCP.NewFrame - bcs TCP.OUT.Send.9 + bcs TCP.OUT.Send.RTS ldy #S.SOCKET.TCP.INFREE+1 lda (ZPPtrSKT),y @@ -528,13 +528,14 @@ TCP.OUT.Send ldy #S.TCP.OPTIONS sec DONT Queue if fail jsr FRM.SendIP - bcs TCP.OUT.Send.9 + bcs TCP.OUT.Send.RTS ldy #S.SOCKET.TCP.O lda #0 sta (ZPPtrSKT),y * clc -TCP.OUT.Send.9 rts +TCP.OUT.Send.RTS + rts *-------------------------------------- TCP.SetSocketTCPO.ACK lda #S.TCP.OPTIONS.ACK diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index c7971efd..a3c09323 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -225,6 +225,7 @@ CS.RUN.CLIENT .3 jsr CS.RUN.MSG.GetStr bcs .7 + >PUSHYA >PUSHW ZPStrPtr ldy #S.PS.hStdOut lda (pPS),y @@ -305,7 +306,7 @@ CS.RUN.MSG.GetStr .31 eor #C.LF bne .9 - sta (ZPStrPtr),y + sta (ZPStrPtr),y Y,A = StrLen clc rts @@ -359,7 +360,7 @@ HTTP.200OK .AS "HTTP/1.1 200 OK" .AS "Connection: Close" .DA #C.CR,#C.LF .DA #C.CR,#C.LF - .AS "Hello!" + .AS "Hello From A2osX-HTTPD 0.93 !" .DA #C.CR,#C.LF HTTP.200OK.len .EQ *-HTTP.200OK *-------------------------------------- diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index b982ffbb..5ed32435 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -1197,7 +1197,7 @@ 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 .AS "vt100" ENQ.String.Len .EQ *-ENQ.String .DA #IAC,#SE SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE