Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-05-18 17:38:31 +02:00
parent bd65f49469
commit dc8caae147
7 changed files with 85 additions and 48 deletions

Binary file not shown.

View File

@ -11,8 +11,13 @@ AUTO 4,1
.INB INC/ETH.I .INB INC/ETH.I
.INB INC/LIBTCPIP.I .INB INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN .DUMMY
ZPPTR2 .EQ ZPBIN+2 .OR ZPBIN
ZS.START
ZPPTR1 .BS 2
ZPPTR2 .BS 2
SocketIndex .BS 1
ZS.END .ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@ -21,10 +26,10 @@ CS.START cld
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA 0 .DA 0
.DA CS.END-CS.START CS .DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START DS .DA DS.END-DS.START Data SegmentSize
.DA #64 SS .DA #32 Stack Size
.DA #4 ZP .DA #ZS.END-ZS.START Zero Page Size
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Relocation Table * Relocation Table
@ -73,10 +78,9 @@ CS.RUN >LDYA L.MSG0
>LIBCALL hLIBTCPIP,LIBTCPIP.GetTable >LIBCALL hLIBTCPIP,LIBTCPIP.GetTable
>STYA ZPPTR1 >STYA ZPPTR1
>STZ.G SocketCount ldy SocketIndex
.1 tay .1 lda (ZPPTR1),y
lda (ZPPTR1),y
beq .7 beq .7
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
@ -84,34 +88,37 @@ CS.RUN >LDYA L.MSG0
lda (ZPPTR2) lda (ZPPTR2)
cmp #AF.INET cmp #AF.INET
* bne .7 bne .7
jsr CS.RUN.S jsr CS.RUN.S 2 bytes
ldy #S.SOCKET.O ldy #S.SOCKET.O
>PUSHB (ZPPTR2),y >PUSHB (ZPPTR2),y ..3
ldy #S.SOCKET.REM.PORT+1 ldy #S.SOCKET.REM.PORT+1
.2 >PUSHB (ZPPTR2),y .2 >PUSHB (ZPPTR2),y ..15
dey dey
cpy #S.SOCKET.LOC.ADDR-1 cpy #S.SOCKET.LOC.ADDR-1
bne .2 bne .2
jsr CS.RUN.P jsr CS.RUN.P ..17
jsr CS.RUN.T jsr CS.RUN.T ..19
>PUSHBI 19 >PUSHBI 19
>LDYA L.MSG1 >LDYA L.MSG1
>DEBUG
>SYSCALL printf >SYSCALL printf
bcs .9
.7 >INC.G SocketCount .7 inc SocketIndex
cmp #K.SKTTABLE.SIZE ldy SocketIndex
cpy #K.SKTTABLE.SIZE
bne .1 bne .1
lda #0 tell TSKMGR that all done ok, but lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory sec we do not want to stay in memory
rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.S ldy #S.SOCKET.TCP.S CS.RUN.S ldy #S.SOCKET.TCP.S
lda (ZPPTR2),y lda (ZPPTR2),y
@ -202,7 +209,6 @@ MSG1.S.INV .AZ "???"
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
SocketCount .BS 1
DS.END DS.END
.ED .ED
*-------------------------------------- *--------------------------------------

View File

@ -475,17 +475,22 @@ WRITE php
lda #PP.BusST lda #PP.BusST
sta PacketPagePTR,x sta PacketPagePTR,x
ldy #16 lda #16
.1 lda PacketPageDATA+1,x .1 pha
lda PacketPageDATA+1,x
ldy PacketPageDATA,x
and /PP.BusST.Rdy4TxNOW and /PP.BusST.Rdy4TxNOW
bne WRITE.1 bne WRITE.1
lda PacketPageDATA,x tya
and #PP.BusST.TxBidErr * and #PP.BusST.TxBidErr
bne .9 * bne .9
bmi .9
dey pla
dec
bne .1 bne .1
.9 lda #E.NODATA .9 lda #E.NODATA

View File

@ -397,12 +397,12 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
jsr SKT.CheckStream jsr SKT.CheckStream
bcs .99 I/O error bcs .99 I/O error
ldy #S.SOCKET.TCP.O * ldy #S.SOCKET.TCP.O
lda (ZPPtrSKT),y * lda (ZPPtrSKT),y
bit #S.TCP.OPTIONS.ACK * bit #S.TCP.OPTIONS.ACK
beq .8 * beq .8
jsr TCP.OUT.SendOptA * jsr TCP.OUT.SendOptA
.8 lda #E.NODATA .8 lda #E.NODATA
sec sec
@ -514,9 +514,12 @@ SKT.GetDataFromSktIn
.80 jsr SKT.StoreTCB .80 jsr SKT.StoreTCB
jsr TCP.SetSocketTCPO.ACK Send the new WSIZE lda #S.TCP.OPTIONS.ACK
jsr TCP.OUT.SendOptA
jsr TCP.OUT.I SKT.GetTCB already called * jsr TCP.SetSocketTCPO.ACK
* jsr TCP.OUT.I SKT.GetTCB already called
>LDYA ZPTmpPtr3 >LDYA ZPTmpPtr3
clc clc
@ -1053,13 +1056,31 @@ SKT.AddToQueueA pha
* Dst : hInMem/INHEAD * Dst : hInMem/INHEAD
*-------------------------------------- *--------------------------------------
SKT.AddDataToSktIn SKT.AddDataToSktIn
.DO IPDEBUG=2
ldx #3
.91 lda SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM,x
>PUSHA
dex
bpl .91
ldy #S.TCP.SEQNUM+3
.92 lda (ZPFrameInPtr),y
>PUSHA
dey
cpy #S.TCP.SEQNUM-1
bne .92
>PUSHBI 8
>LDYA L.MSG.SEQNUM
>SYSCALL printf
.FIN
ldx SKT.Cache+S.SOCKET.TCP.INFREE ldx SKT.Cache+S.SOCKET.TCP.INFREE
cpx ZPDataInLen cpx ZPDataInLen
lda SKT.Cache+S.SOCKET.TCP.INFREE+1 lda SKT.Cache+S.SOCKET.TCP.INFREE+1
sbc ZPDataInLen+1 sbc ZPDataInLen+1
bcc .9 Not enough room in Q bcc .9 Not enough room in Q
ldy #S.TCP.SEQNUM+3 .66 ldy #S.TCP.SEQNUM+3
ldx #3 ldx #3
.10 lda (ZPFrameInPtr),y .10 lda (ZPFrameInPtr),y

View File

@ -158,6 +158,9 @@ J.SKT.send .DA SKT.send.RAW
.DO IPDEBUG=1 .DO IPDEBUG=1
L.MSG.FRM.Dump .DA MSG.FRM.Dump L.MSG.FRM.Dump .DA MSG.FRM.Dump
L.MSG.SKT.Dump .DA MSG.SKT.Dump L.MSG.SKT.Dump .DA MSG.SKT.Dump
.FIN
.DO IPDEBUG=2
L.MSG.SEQNUM .DA MSG.SEQNUM
.FIN .FIN
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
@ -464,6 +467,9 @@ IP.CHECKSUM .BS 2
MSG.FRM.Dump .AZ "FRM:SRC=%d.%d.%d.%d:%D DST=%d.%d.%d.%d:%D\r\n" MSG.FRM.Dump .AZ "FRM:SRC=%d.%d.%d.%d:%D DST=%d.%d.%d.%d:%D\r\n"
MSG.SKT.Dump .AZ "SKT:LOC=%d.%d.%d.%d:%D REM=%d.%d.%d.%d:%D\r\n" MSG.SKT.Dump .AZ "SKT:LOC=%d.%d.%d.%d:%D REM=%d.%d.%d.%d:%D\r\n"
.FIN .FIN
.DO IPDEBUG=2
MSG.SEQNUM .AZ "FRM:%h%h%h%h,SKT:%h%h%h%h\r\n"
.FIN
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/LIB/LIBTCPIP.S SAVE USR/SRC/LIB/LIBTCPIP.S

View File

@ -59,15 +59,6 @@ L.ENV.TERM .DA ENV.TERM
*-------------------------------------- *--------------------------------------
CS.INIT clc CS.INIT clc
rts rts
TEST lda ArgProg
>SYSCALL ArgV
>PUSHYA
lda hErr
>SYSCALL fputs
rts
*-------------------------------------- *--------------------------------------
CS.RUN ldy #S.PS.ARGC CS.RUN ldy #S.PS.ARGC
lda (pPs),y lda (pPs),y
@ -208,7 +199,8 @@ CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB)
>SYSCALL GetChar Wait for IAC SUBCMD >SYSCALL GetChar Wait for IAC SUBCMD
bcs CS.RUN.9 bcs CS.RUN.9
ldx IAC.SUBCMD sta IAC.SUBCMD
tax
lda IAC.CMD lda IAC.CMD
cmp #SB cmp #SB

View File

@ -1245,22 +1245,29 @@ DRV.TERM.Title.ON
ldy #0 ldy #0
.1 lda (ZPTmpWord),y .1 lda (ZPTmpWord),y
beq .2 beq .3
cmp #$40
bcc .2
phy cmp #$60
bcs .2
and #$1F remap UPPERCASE
.2 phy
jsr SetCharAtY.SCR jsr SetCharAtY.SCR
ply ply
iny iny
bne .1 bne .1
.2 lda #C.SPACE .3 lda #C.SPACE
.3 phy .4 phy
jsr SetCharAtY.SCR jsr SetCharAtY.SCR
ply ply
iny iny
cpy #80 cpy #80
bne .3 bne .4
DRV.TERM.Title.RTS DRV.TERM.Title.RTS
rts rts