Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-11-08 15:23:06 +01:00
parent 617bf82063
commit bb787e2247
17 changed files with 227 additions and 231 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -41,6 +41,7 @@ L.MSG.USAGE .DA MSG.USAGE
*--------------------------------------
CS.INIT ldy #S.PS.ARGC
lda (pPs),y
dec
beq .99
.1 >INC.G ArgIndex
@ -90,10 +91,6 @@ CS.INIT ldy #S.PS.ARGC
sta hLIBCRYPT
* lda (pPs)
* ora #S.PS.F.EVENT Now accept events
* sta (pPs)
clc
.9 rts
*--------------------------------------
@ -111,15 +108,7 @@ CS.RUN.TEXT >LDA.G Arg
jmp CS.RUN.PRINT
CS.RUN.TEXT.RTS rts
*--------------------------------------
CS.RUN.FILE >LDA.G Arg
>SYSCALL ArgV
>SYSCALL RealPath
bcs CS.RUN.TEXT.RTS
txa
>STA.G hFullPath
>LDYAI FILEBUF.SIZE
CS.RUN.FILE >LDYAI FILEBUF.SIZE
>SYSCALL getmem
bcs .9
>STYA ZPDataBufPtr
@ -130,8 +119,9 @@ CS.RUN.FILE >LDA.G Arg
>PUSHBI 0
>PUSHBI O.RDONLY
>LDA.G hFullPath
>SYSCALL GetMemPtr
>LDA.G Arg
>SYSCALL ArgV
>SYSCALL FOpen
bcs .9
>STA.G hFile
@ -172,11 +162,9 @@ CS.RUN.PRINT >LEA.G MD5Buf
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT ldy #hFullPath
jsr .8
ldy #hDataBuf
jsr .8
CS.QUIT >LDA.G hDataBuf
beq .2
>SYSCALL FreeMem
.2 >LDA.G hFile
beq .3
@ -190,11 +178,6 @@ CS.QUIT ldy #hFullPath
.4 clc
rts
.8 lda (pData),y
beq .9
>SYSCALL FreeMem
.9 rts
*--------------------------------------
CS.END
*--------------------------------------
@ -203,7 +186,7 @@ OptionVars .DA #bText,#bText
*--------------------------------------
MSG.USAGE .AZ "Usage : MD5 [ -d input text | input file ]\r\n"
*--------------------------------------
LIBCRYPT .AZ "libcrypt.o"
LIBCRYPT .AZ "libcrypt"
hLIBCRYPT .BS 1
*--------------------------------------
.DUMMY
@ -212,7 +195,6 @@ DS.START
ArgIndex .BS 1
Arg .BS 1
bText .BS 1
hFullPath .BS 1
hFile .BS 1
hDataBuf .BS 1
hMD5Ctx .BS 1

View File

@ -55,8 +55,10 @@ LIBTCPIP.Send .EQ 50
LIBTCPIP.RecvFrom .EQ 52
LIBTCPIP.SendTo .EQ 54
LIBTCPIP.GetTable .EQ 56
LIBTCPIP.getsockopt .EQ 56
LIBTCPIP.setsockopt .EQ 58
LIBTCPIP.GetTable .EQ 60
*--------------------------------------
ERR.SKT.OOS .EQ $BF
ERR.SKT.BUSY .EQ $BE

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF
.OP 65C02
.OR $2000
.TF LIB/LIBCRYPT.O
.TF LIB/LIBCRYPT
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
@ -163,14 +163,14 @@ MD5Init >LDYAI S.MD5
.1 lda MD5.ABCDINIT,y
sta (ZPCtxPtr),y
iny
cpy #16
cpy #S.MD5.BITCOUNT
bne .1
lda #0
.2 sta (ZPCtxPtr),y
iny
cpy #S.MD5.SIZE Includes S.MD5.FINALIZED Flag
cpy #S.MD5 Includes S.MD5.FINALIZED Flag
bne .2
txa

View File

@ -63,8 +63,6 @@ ICMP.IN.ECHOREP jsr FRM.GetTargetSKT.RAW
jsr SKT.FindMatchingLocRem
bcs .9
>STYA ZPPtrSKT
ldy #S.SOCKET.PROTO
lda (ZPPtrSKT),y
ldy #S.SOCKET.PROTO

View File

@ -21,7 +21,6 @@ IP.IN ldy #S.IP.PROTOCOL
.9 lda hFrameIn
beq .8
>SYSCALL FreeMem
rts
.8 clc
rts

View File

@ -168,7 +168,7 @@ SKT.connect.SEQPACKET
bcs .9
lda #S.SOCKET.TCP.S.SYNSENT
sta SKT.TmpCache+S.SOCKET.TCP.S
sta SKT.Cache+S.SOCKET.TCP.S
jmp SKT.StoreTCB
@ -613,17 +613,21 @@ SKT.Send.9 rts
SKT.Send.SEQPACKET
bra *
*/--------------------------------------
* # GetTable
* Get socket table
* # GetSockOpt
* Set Socket Options
* ## C
* `void * gettable();`
* `int getsockopt(hFD fd);`
* ## ASM
* **In:**
* `>LIBCALL hLIBTCPIP,LIBTCPIP.GetTable`
* `lda fd`
* `>LIBCALL hLIBTCPIP,LIBTCPIP.GetSockOpt`
* ## RETURN VALUE
*\--------------------------------------
SKT.GetTable >LDYA L.SKT.Table
clc
SKT.getsockopt >SYSCALL GetMemPtr
>STYA ZPPtrSKT
ldy #S.SOCKET.O
lda (ZPPtrSKT),y
* clc
rts
*/--------------------------------------
* # SetSockOpt
@ -643,6 +647,19 @@ SKT.setsockopt >SYSCALL GetMemPtr
ldy #S.SOCKET.O
ora (ZPPtrSKT),y
sta (ZPPtrSKT),y
* clc
rts
*/--------------------------------------
* # GetTable
* Get socket table
* ## C
* `void * gettable();`
* ## ASM
* **In:**
* `>LIBCALL hLIBTCPIP,LIBTCPIP.GetTable`
* ## RETURN VALUE
*\--------------------------------------
SKT.GetTable >LDYA L.SKT.Table
clc
rts
*--------------------------------------
@ -686,22 +703,22 @@ SKT.FindMatchingLocRem
phx
>SYSCALL GetMemPtr
>STYA ZPTmpPtr1
>STYA ZPPtrSKT
plx
ldy #S.SOCKET.AF
lda (ZPTmpPtr1),y
lda (ZPPtrSKT),y
cmp #AF.INET
bne .8
ldy #S.SOCKET.LOC.ADDR
.2 lda (ZPTmpPtr1),y
.2 lda (ZPPtrSKT),y
bne .4
ldy #S.SOCKET.LOC.PORT bound to 0.0.0.0,check only LOC port
.3 lda (ZPTmpPtr1),y
.3 lda (ZPPtrSKT),y
.4 cmp SKT.LOC.ADDR+S.SOCKADDR.ADDR-S.SOCKET.LOC.ADDR,y
bne .8
@ -710,7 +727,7 @@ SKT.FindMatchingLocRem
bne .3
ldy #S.SOCKET.O
lda (ZPTmpPtr1),y
lda (ZPPtrSKT),y
and #S.SOCKET.O.ACCEPTCONN
beq .6
@ -725,7 +742,7 @@ SKT.FindMatchingLocRem
bne .41
* ldy #S.SOCKET.O
lda (ZPTmpPtr1),y
lda (ZPPtrSKT),y
and #S.SOCKET.O.BROADCAST
beq .9 this socket does not accept broadcast
@ -734,14 +751,14 @@ SKT.FindMatchingLocRem
.41 ldy #S.SOCKET.REM.ADDR
.5 lda (ZPTmpPtr1),y
.5 lda (ZPPtrSKT),y
cmp SKT.REM.ADDR+S.SOCKADDR.ADDR-S.SOCKET.REM.ADDR,y
bne .8 wrong remote host, exit....
iny
cpy #S.SOCKET.REM.PORT+2
bne .5
.7 >LDYA ZPTmpPtr1 x = SKT.TABLE index
.7 stx SKT.Index x = SKT.TABLE index
clc
rts
@ -822,9 +839,9 @@ SKT.AddToQueueA pha
* Dst : hInMem/INHEAD
*--------------------------------------
SKT.AddDataToSktIn
ldx SKT.TmpCache+S.SOCKET.TCP.INFREE
ldx SKT.Cache+S.SOCKET.TCP.INFREE
cpx ZPDataInLen
lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1
lda SKT.Cache+S.SOCKET.TCP.INFREE+1
sbc ZPDataInLen+1
bcc .9 Not enough room in Q
@ -832,7 +849,7 @@ SKT.AddDataToSktIn
ldx #3
.10 lda (ZPFrameInPtr),y
eor SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM,x
eor SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM,x
bne .9
dey
dex
@ -845,11 +862,11 @@ SKT.AddDataToSktIn
lda ZPTmpPtr1
clc
adc SKT.TmpCache+S.SOCKET.TCP.INHEAD
adc SKT.Cache+S.SOCKET.TCP.INHEAD
sta ZPTmpPtr2
lda ZPTmpPtr1+1
adc SKT.TmpCache+S.SOCKET.TCP.INHEAD+1
adc SKT.Cache+S.SOCKET.TCP.INHEAD+1
sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail
lda ZPDataInLen
@ -880,13 +897,13 @@ SKT.AddDataToSktIn
bne .4
inc ZPTmpPtr2+1
.4 inc SKT.TmpCache+S.SOCKET.TCP.INHEAD
.4 inc SKT.Cache+S.SOCKET.TCP.INHEAD
bne .1
inc SKT.TmpCache+S.SOCKET.TCP.INHEAD+1
lda SKT.TmpCache+S.SOCKET.TCP.INHEAD+1
inc SKT.Cache+S.SOCKET.TCP.INHEAD+1
lda SKT.Cache+S.SOCKET.TCP.INHEAD+1
cmp /K.TCP.WSIZE
bne .1
stz SKT.TmpCache+S.SOCKET.TCP.INHEAD+1
stz SKT.Cache+S.SOCKET.TCP.INHEAD+1
lda ZPTmpPtr1 Dst Ptr=Buffer Base
sta ZPTmpPtr2
@ -897,37 +914,37 @@ SKT.AddDataToSktIn
.9 sec
rts
.8 lda SKT.TmpCache+S.SOCKET.TCP.INFREE
.8 lda SKT.Cache+S.SOCKET.TCP.INFREE
sec
sbc ZPDataInLen
sta SKT.TmpCache+S.SOCKET.TCP.INFREE
sta SKT.Cache+S.SOCKET.TCP.INFREE
lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1
lda SKT.Cache+S.SOCKET.TCP.INFREE+1
sbc ZPDataInLen+1
sta SKT.TmpCache+S.SOCKET.TCP.INFREE+1
sta SKT.Cache+S.SOCKET.TCP.INFREE+1
lda SKT.TmpCache+S.SOCKET.TCP.INUSED
lda SKT.Cache+S.SOCKET.TCP.INUSED
clc
adc ZPDataInLen
sta SKT.TmpCache+S.SOCKET.TCP.INUSED
sta SKT.Cache+S.SOCKET.TCP.INUSED
lda SKT.TmpCache+S.SOCKET.TCP.INUSED+1
lda SKT.Cache+S.SOCKET.TCP.INUSED+1
adc ZPDataInLen+1
sta SKT.TmpCache+S.SOCKET.TCP.INUSED+1
sta SKT.Cache+S.SOCKET.TCP.INUSED+1
clc
lda SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM+3
lda SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM+3
adc ZPDataInLen
sta SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM+3
sta SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM+3
lda SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM+2
lda SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM+2
adc ZPDataInLen+1
sta SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM+2
sta SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM+2
bcc .80
inc SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM+1
inc SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM+1
bne .80
inc SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM
inc SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM
.80 clc
rts
@ -941,8 +958,8 @@ SKT.AddDataToSktIn
*--------------------------------------
SKT.GetDataFromSktIn
jsr SKT.GetTCB
lda SKT.TmpCache+S.SOCKET.TCP.INUSED
ora SKT.TmpCache+S.SOCKET.TCP.INUSED+1
lda SKT.Cache+S.SOCKET.TCP.INUSED
ora SKT.Cache+S.SOCKET.TCP.INUSED+1
bne .10
sec
rts A=0,NO DATA
@ -954,11 +971,11 @@ SKT.GetDataFromSktIn
lda ZPTmpPtr1
clc
adc SKT.TmpCache+S.SOCKET.TCP.INTAIL
adc SKT.Cache+S.SOCKET.TCP.INTAIL
sta ZPTmpPtr2
lda ZPTmpPtr1+1
adc SKT.TmpCache+S.SOCKET.TCP.INTAIL+1
adc SKT.Cache+S.SOCKET.TCP.INTAIL+1
sta ZPTmpPtr2+1
lda ZPDataInLen
@ -982,25 +999,25 @@ SKT.GetDataFromSktIn
pha
.2 lda SKT.TmpCache+S.SOCKET.TCP.INTAIL
eor SKT.TmpCache+S.SOCKET.TCP.INHEAD
.2 lda SKT.Cache+S.SOCKET.TCP.INTAIL
eor SKT.Cache+S.SOCKET.TCP.INHEAD
bne .3
lda SKT.TmpCache+S.SOCKET.TCP.INTAIL+1
eor SKT.TmpCache+S.SOCKET.TCP.INHEAD+1
lda SKT.Cache+S.SOCKET.TCP.INTAIL+1
eor SKT.Cache+S.SOCKET.TCP.INHEAD+1
beq .7
.3 lda (ZPTmpPtr2)
pha
inc SKT.TmpCache+S.SOCKET.TCP.INTAIL
inc SKT.Cache+S.SOCKET.TCP.INTAIL
bne .4
inc SKT.TmpCache+S.SOCKET.TCP.INTAIL+1
lda SKT.TmpCache+S.SOCKET.TCP.INTAIL+1
inc SKT.Cache+S.SOCKET.TCP.INTAIL+1
lda SKT.Cache+S.SOCKET.TCP.INTAIL+1
cmp /K.TCP.WSIZE
bne .4
stz SKT.TmpCache+S.SOCKET.TCP.INTAIL+1
stz SKT.Cache+S.SOCKET.TCP.INTAIL+1
lda ZPTmpPtr1
sta ZPTmpPtr2
lda ZPTmpPtr1+1
@ -1030,34 +1047,34 @@ SKT.GetDataFromSktIn
ora ZPTmpPtr3+1
beq .9
lda SKT.TmpCache+S.SOCKET.TCP.INFREE
lda SKT.Cache+S.SOCKET.TCP.INFREE
clc
adc ZPTmpPtr3
sta SKT.TmpCache+S.SOCKET.TCP.INFREE
lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1
sta SKT.Cache+S.SOCKET.TCP.INFREE
lda SKT.Cache+S.SOCKET.TCP.INFREE+1
adc ZPTmpPtr3+1
sta SKT.TmpCache+S.SOCKET.TCP.INFREE+1
sta SKT.Cache+S.SOCKET.TCP.INFREE+1
lda SKT.TmpCache+S.SOCKET.TCP.INUSED
lda SKT.Cache+S.SOCKET.TCP.INUSED
sec
sbc ZPTmpPtr3
sta SKT.TmpCache+S.SOCKET.TCP.INUSED
lda SKT.TmpCache+S.SOCKET.TCP.INUSED+1
sta SKT.Cache+S.SOCKET.TCP.INUSED
lda SKT.Cache+S.SOCKET.TCP.INUSED+1
sbc ZPTmpPtr3+1
sta SKT.TmpCache+S.SOCKET.TCP.INUSED+1
sta SKT.Cache+S.SOCKET.TCP.INUSED+1
lda SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+3
lda SKT.Cache+S.SOCKET.TCP.OUTACKNUM+3
clc
adc ZPTmpPtr3
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+3
lda SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2
sta SKT.Cache+S.SOCKET.TCP.OUTACKNUM+3
lda SKT.Cache+S.SOCKET.TCP.OUTACKNUM+2
adc ZPTmpPtr3+1
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+2
sta SKT.Cache+S.SOCKET.TCP.OUTACKNUM+2
bcc .80
inc SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM+1
inc SKT.Cache+S.SOCKET.TCP.OUTACKNUM+1
bne .80
inc SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM
inc SKT.Cache+S.SOCKET.TCP.OUTACKNUM
.80 jsr SKT.StoreTCB
@ -1082,9 +1099,9 @@ SKT.GetDataFromSktIn
*--------------------------------------
SKT.AddDataToSktOut
jsr SKT.GetTCB
ldx SKT.TmpCache+S.SOCKET.TCP.OUTFREE
ldx SKT.Cache+S.SOCKET.TCP.OUTFREE
cpx ZPDataInLen
lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1
lda SKT.Cache+S.SOCKET.TCP.OUTFREE+1
sbc ZPDataInLen+1
bcc .9 Not enough room in Q
@ -1095,11 +1112,11 @@ SKT.AddDataToSktOut
lda ZPTmpPtr1
clc
adc SKT.TmpCache+S.SOCKET.TCP.OUTHEAD
adc SKT.Cache+S.SOCKET.TCP.OUTHEAD
sta ZPTmpPtr2
lda ZPTmpPtr1+1
adc SKT.TmpCache+S.SOCKET.TCP.OUTHEAD+1
adc SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail
lda ZPDataInLen
@ -1130,13 +1147,13 @@ SKT.AddDataToSktOut
bne .4
inc ZPTmpPtr2+1
.4 inc SKT.TmpCache+S.SOCKET.TCP.OUTHEAD
.4 inc SKT.Cache+S.SOCKET.TCP.OUTHEAD
bne .1
inc SKT.TmpCache+S.SOCKET.TCP.OUTHEAD+1
lda SKT.TmpCache+S.SOCKET.TCP.OUTHEAD+1
inc SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
lda SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
cmp /K.TCP.WSIZE
bne .1
stz SKT.TmpCache+S.SOCKET.TCP.OUTHEAD+1
stz SKT.Cache+S.SOCKET.TCP.OUTHEAD+1
lda ZPTmpPtr1 Dst Ptr=Buffer Base
sta ZPTmpPtr2
@ -1147,29 +1164,29 @@ SKT.AddDataToSktOut
.9 sec
rts
.8 lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE
.8 lda SKT.Cache+S.SOCKET.TCP.OUTFREE
sec
sbc ZPDataInLen
sta SKT.TmpCache+S.SOCKET.TCP.OUTFREE
lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1
sta SKT.Cache+S.SOCKET.TCP.OUTFREE
lda SKT.Cache+S.SOCKET.TCP.OUTFREE+1
sbc ZPDataInLen+1
sta SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1
sta SKT.Cache+S.SOCKET.TCP.OUTFREE+1
lda SKT.TmpCache+S.SOCKET.TCP.OUTUSED
lda SKT.Cache+S.SOCKET.TCP.OUTUSED
clc
adc ZPDataInLen
sta SKT.TmpCache+S.SOCKET.TCP.OUTUSED
lda SKT.TmpCache+S.SOCKET.TCP.OUTUSED+1
sta SKT.Cache+S.SOCKET.TCP.OUTUSED
lda SKT.Cache+S.SOCKET.TCP.OUTUSED+1
adc ZPDataInLen+1
sta SKT.TmpCache+S.SOCKET.TCP.OUTUSED+1
sta SKT.Cache+S.SOCKET.TCP.OUTUSED+1
lda SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND
lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND
clc
adc ZPDataInLen
sta SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND
lda SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND+1
sta SKT.Cache+S.SOCKET.TCP.OUTTOSEND
lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
adc ZPDataInLen+1
sta SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND+1
sta SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
jmp SKT.StoreTCB
*--------------------------------------
* From TCP.OUT
@ -1185,11 +1202,11 @@ SKT.GetDataFromSktOut
lda ZPTmpPtr1
clc
adc SKT.TmpCache+S.SOCKET.TCP.OUTTAILNEXT
adc SKT.Cache+S.SOCKET.TCP.OUTTAILNEXT
sta ZPTmpPtr2 Make ZPTmpPtr2=base+nexttail
lda ZPTmpPtr1+1
adc SKT.TmpCache+S.SOCKET.TCP.OUTTAILNEXT+1
adc SKT.Cache+S.SOCKET.TCP.OUTTAILNEXT+1
sta ZPTmpPtr2+1
lda ZPDataOutLen
@ -1220,13 +1237,13 @@ SKT.GetDataFromSktOut
bne .4
inc ZPTmpPtr2+1
.4 inc SKT.TmpCache+S.SOCKET.TCP.OUTTAILNEXT
.4 inc SKT.Cache+S.SOCKET.TCP.OUTTAILNEXT
bne .1
inc SKT.TmpCache+S.SOCKET.TCP.OUTTAILNEXT+1
lda SKT.TmpCache+S.SOCKET.TCP.OUTTAILNEXT+1
inc SKT.Cache+S.SOCKET.TCP.OUTTAILNEXT+1
lda SKT.Cache+S.SOCKET.TCP.OUTTAILNEXT+1
cmp /K.TCP.WSIZE
bne .1
stz SKT.TmpCache+S.SOCKET.TCP.OUTTAILNEXT+1
stz SKT.Cache+S.SOCKET.TCP.OUTTAILNEXT+1
lda ZPTmpPtr1 Dst Ptr=Buffer Base
sta ZPTmpPtr2
@ -1234,13 +1251,13 @@ SKT.GetDataFromSktOut
sta ZPTmpPtr2+1
bra .1
.8 lda SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND
.8 lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND
sec
sbc ZPDataOutLen
sta SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND
lda SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND+1
sta SKT.Cache+S.SOCKET.TCP.OUTTOSEND
lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
sbc ZPDataOutLen+1
sta SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND+1
sta SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
clc
rts
@ -1257,10 +1274,10 @@ SKT.AckDataToSktOut
.1 lda (ZPFrameInPtr),y
pha
sbc SKT.TmpCache+S.SOCKET.TCP.OUTSEQNUM,x
sbc SKT.Cache+S.SOCKET.TCP.OUTSEQNUM,x
sta TmpDWord,x
pla ....and Set SEQ = new SEQ
sta SKT.TmpCache+S.SOCKET.TCP.OUTSEQNUM,x
sta SKT.Cache+S.SOCKET.TCP.OUTSEQNUM,x
dey
dex
bpl .1
@ -1272,40 +1289,40 @@ SKT.AckDataToSktOut
beq .8
.2 clc
adc SKT.TmpCache+S.SOCKET.TCP.OUTTAIL
sta SKT.TmpCache+S.SOCKET.TCP.OUTTAIL
adc SKT.Cache+S.SOCKET.TCP.OUTTAIL
sta SKT.Cache+S.SOCKET.TCP.OUTTAIL
txa
adc SKT.TmpCache+S.SOCKET.TCP.OUTTAIL+1
adc SKT.Cache+S.SOCKET.TCP.OUTTAIL+1
and /K.TCP.WSIZE-1
sta SKT.TmpCache+S.SOCKET.TCP.OUTTAIL+1
lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE
sta SKT.Cache+S.SOCKET.TCP.OUTTAIL+1
lda SKT.Cache+S.SOCKET.TCP.OUTFREE
clc
adc TmpDWord+3
sta SKT.TmpCache+S.SOCKET.TCP.OUTFREE
lda SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1
sta SKT.Cache+S.SOCKET.TCP.OUTFREE
lda SKT.Cache+S.SOCKET.TCP.OUTFREE+1
adc TmpDWord+2
sta SKT.TmpCache+S.SOCKET.TCP.OUTFREE+1
sta SKT.Cache+S.SOCKET.TCP.OUTFREE+1
lda SKT.TmpCache+S.SOCKET.TCP.OUTUSED
lda SKT.Cache+S.SOCKET.TCP.OUTUSED
sec
sbc TmpDWord+3
sta SKT.TmpCache+S.SOCKET.TCP.OUTUSED
lda SKT.TmpCache+S.SOCKET.TCP.OUTUSED+1
sta SKT.Cache+S.SOCKET.TCP.OUTUSED
lda SKT.Cache+S.SOCKET.TCP.OUTUSED+1
sbc TmpDWord+2
sta SKT.TmpCache+S.SOCKET.TCP.OUTUSED+1
sta SKT.Cache+S.SOCKET.TCP.OUTUSED+1
.8 rts
*--------------------------------------
SKT.NewTCB ldx #S.SOCKET
.1 stz SKT.TmpCache,x
.1 stz SKT.Cache,x
inx
cpx #S.SOCKET.TCP
bne .1
>LDYAI K.TCP.WSIZE
>STYA SKT.TmpCache+S.SOCKET.TCP.INFREE
>STYA SKT.Cache+S.SOCKET.TCP.INFREE
>SYSCALL getmem
bcs SKT.StoreTCB.RTS
txa
@ -1313,7 +1330,7 @@ SKT.NewTCB ldx #S.SOCKET
sta (ZPPtrSKT),y
>LDYAI K.TCP.WSIZE
>STYA SKT.TmpCache+S.SOCKET.TCP.OUTFREE
>STYA SKT.Cache+S.SOCKET.TCP.OUTFREE
>SYSCALL getmem
bcs SKT.StoreTCB.RTS
txa
@ -1323,12 +1340,12 @@ SKT.NewTCB ldx #S.SOCKET
ldx #3
.2 lda A2osX.TIMER16,x
sta SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ,x
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
dex
bpl .2
*--------------------------------------
SKT.StoreTCB ldy #S.SOCKET
.1 lda SKT.TmpCache,y
.1 lda SKT.Cache,y
sta (ZPPtrSKT),y
iny
cpy #S.SOCKET.TCP
@ -1339,25 +1356,12 @@ SKT.StoreTCB.RTS
*--------------------------------------
SKT.GetTCB ldy #S.SOCKET
.1 lda (ZPPtrSKT),y
sta SKT.TmpCache,y
sta SKT.Cache,y
iny
cpy #S.SOCKET.TCP
bne .1
rts
*--------------------------------------
SKT.Destroy ldy #S.SOCKET.SQ.hOutMem
lda (ZPPtrSKT),y
beq .1
>SYSCALL FreeMem
.1 ldy #S.SOCKET.SQ.hInMem
lda (ZPPtrSKT),y
beq .2
>SYSCALL FreeMem
.2 clc
rts
*--------------------------------------
SKT.SetFrameOutDstIP
ldy #S.SOCKET.REM.ADDR
ldx #4

View File

@ -8,8 +8,6 @@ TCP.IN jsr FRM.GetTargetSKT.TCPUDP
jsr SKT.FindMatchingLocRem
bcs TCP.IN.JMP.CLOSED no socket, go discard
>STYA ZPPtrSKT
ldy #S.SOCKET.PROTO
lda (ZPPtrSKT),y
cmp #S.IP.PROTOCOL.TCP
@ -107,7 +105,7 @@ TCP.IN.JMP.LISTEN
bcs .9
lda #S.SOCKET.TCP.S.SYNRCVD
sta SKT.TmpCache+S.SOCKET.TCP.S
sta SKT.Cache+S.SOCKET.TCP.S
jmp SKT.StoreTCB
.9 lda #ERR.SKT.OOS
@ -127,9 +125,9 @@ TCP.IN.JMP.SYNSENT
sec Check if ACK=OUTNEXTSEQ+1
.1 lda SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ,x
.1 lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
adc #0
sta SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ,x
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
eor (ZPFrameInPtr),y
bne .9
dey
@ -143,13 +141,15 @@ TCP.IN.JMP.SYNSENT
bcs .9
lda #S.SOCKET.TCP.S.ESTBLSH
sta SKT.TmpCache+S.SOCKET.TCP.S
sta SKT.Cache+S.SOCKET.TCP.S
jmp SKT.StoreTCB
.9 lda #S.TCP.OPTIONS.RST
jsr TCP.OUT.SendOptA
jmp SKT.Destroy
ldx SKT.Index
lda SKT.TABLE,x
jmp SKT.shutdown
*--------------------------------------
TCP.IN.JMP.SYNRCVD
ldy #S.TCP.OPTIONS SYN Received, SYN.ACK Sent, only accept ACK packet
@ -164,10 +164,10 @@ TCP.IN.JMP.SYNRCVD
sec
.1 lda SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ,x Check if ACK=OUTNEXTSEQ+1
.1 lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x Check if ACK=OUTNEXTSEQ+1
adc #0
sta SKT.TmpCache+S.SOCKET.TCP.OUTSEQNUM,x setup SEQNUM
sta SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ,x ...and update NEXTSEQ
sta SKT.Cache+S.SOCKET.TCP.OUTSEQNUM,x setup SEQNUM
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x ...and update NEXTSEQ
eor (ZPFrameInPtr),y
bne .8
dey
@ -175,7 +175,7 @@ TCP.IN.JMP.SYNRCVD
bpl .1
lda #S.SOCKET.TCP.S.ESTBLSH
sta SKT.TmpCache+S.SOCKET.TCP.S
sta SKT.Cache+S.SOCKET.TCP.S
jmp SKT.StoreTCB
.8 clc
@ -230,7 +230,9 @@ TCP.IN.JMP.LASTACK
bit #S.TCP.OPTIONS.ACK
beq .8
jmp SKT.Destroy
ldx SKT.Index
lda SKT.TABLE,x
jmp SKT.shutdown
.8 clc
rts
@ -287,8 +289,8 @@ TCP.IN.ACKTheSYN
.3 lda (ZPFrameInPtr),y Set OUTACK=SEQ+1 for new socket...
adc #0
sta SKT.TmpCache+S.SOCKET.TCP.INLASTSEQNUM,x
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM,x
sta SKT.Cache+S.SOCKET.TCP.INLASTSEQNUM,x
sta SKT.Cache+S.SOCKET.TCP.OUTACKNUM,x
dey
dex
bpl .3
@ -307,9 +309,9 @@ TCP.IN.ACKTheFIN
sec
.3 lda SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM,x
.3 lda SKT.Cache+S.SOCKET.TCP.OUTACKNUM,x
adc #0
sta SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM,x
sta SKT.Cache+S.SOCKET.TCP.OUTACKNUM,x
dey
dex
bpl .3
@ -365,8 +367,8 @@ TCP.IN.SetDataInPtrAndLen
*--------------------------------------
TCP.OUT jsr SKT.GetTCB
TCP.OUT.I lda SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND+1
ldy SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND
TCP.OUT.I lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
ldy SKT.Cache+S.SOCKET.TCP.OUTTOSEND
bne .1
@ -401,18 +403,18 @@ TCP.OUT.I lda SKT.TmpCache+S.SOCKET.TCP.OUTTOSEND+1
bcs TCP.OUT.9
lda SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ+3
lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+3
clc
adc ZPDataOutLen
sta SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ+3
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+3
lda SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ+2
lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+2
adc ZPDataOutLen+1
sta SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ+2
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+2
bcc .80
inc SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ+1
inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+1
bne .80
inc SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ
inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ
.80 jmp SKT.StoreTCB exits with CC
TCP.OUT.9 rts
@ -434,7 +436,7 @@ TCP.OUT.SendOptA.1
ldx #3
ldy #S.TCP.ACKNUM+3
.1 lda SKT.TmpCache+S.SOCKET.TCP.OUTACKNUM,x
.1 lda SKT.Cache+S.SOCKET.TCP.OUTACKNUM,x
sta (ZPFrameOutPtr),y
dey
dex
@ -443,17 +445,17 @@ TCP.OUT.SendOptA.1
.10 ldx #3
ldy #S.TCP.SEQNUM+3
.2 lda SKT.TmpCache+S.SOCKET.TCP.OUTNEXTSEQ,x
.2 lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
sta (ZPFrameOutPtr),y
dey
dex
bpl .2
ldy #S.TCP.WINDOW
lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1
lda SKT.Cache+S.SOCKET.TCP.INFREE+1
sta (ZPFrameOutPtr),y
iny
lda SKT.TmpCache+S.SOCKET.TCP.INFREE
lda SKT.Cache+S.SOCKET.TCP.INFREE
sta (ZPFrameOutPtr),y
jsr FRM.SendIP
@ -479,10 +481,10 @@ TCP.NewFrame ldx #S.IP.PROTOCOL.TCP
sta (ZPFrameOutPtr),y
ldy #S.TCP.WINDOW
lda SKT.TmpCache+S.SOCKET.TCP.INFREE+1
lda SKT.Cache+S.SOCKET.TCP.INFREE+1
sta (ZPFrameOutPtr),y
iny
lda SKT.TmpCache+S.SOCKET.TCP.INFREE
lda SKT.Cache+S.SOCKET.TCP.INFREE
sta (ZPFrameOutPtr),y
clc

View File

@ -8,8 +8,6 @@ UDP.IN jsr FRM.GetTargetSKT.TCPUDP
jsr SKT.FindMatchingLocRem
bcs .9
>STYA ZPPtrSKT
ldy #S.SOCKET.PROTO
lda (ZPPtrSKT),y
cmp #S.IP.PROTOCOL.UDP

View File

@ -88,9 +88,10 @@ CS.START cld
.DA SKT.RecvFrom
.DA SKT.SendTo
.DA SKT.GetTable
.DA SKT.getsockopt
.DA SKT.setsockopt
.DA SKT.GetTable
*--------------------------------------
L.DEVNAME .DA DEVNAME
L.MSG.DEV.KO .DA MSG.DEV.KO
@ -389,10 +390,11 @@ hDNSSocket .BS 1
DNS.TmpCache .BS S.DNSCACHE
ARP.TmpCache .BS S.ARP
*--------------------------------------
SKT.Index .BS 1
SKT.TABLE .BS K.SKTTABLE.SIZE
SKT.LOC.ADDR .BS S.SOCKADDR
SKT.REM.ADDR .BS S.SOCKADDR
SKT.TmpCache .BS S.SOCKET.TCP
SKT.Cache .BS S.SOCKET.TCP
TmpDWord .BS 4
TmpOffset .BS 2
hFrameIn .BS 1

View File

@ -123,7 +123,7 @@ Cmd.CheckCmd ldy #$ff
and #$ff^S.PS.F.HOLD
sta (pData),y ...and toggle S.PS.F.HOLD flag
clc
rts
.9 rts
.3 jsr CMD.AddYAToArgV X unmodified
bcs .9
@ -132,7 +132,7 @@ Cmd.CheckCmd ldy #$ff
>STA.G CMD.IntCmd
clc
.9 rts
rts
.4 >LDYAI 256 Get a buffer for found path
>SYSCALL GetMem
@ -239,8 +239,8 @@ Cmd.INT.PWD ldy #S.PS.hPREFIX
lda (pPs),y
>SYSCALL GetMemPtr
>SYSCALL puts
rts
*--------------------------------------
Cmd.INT.PWD.RTS rts
*--------------------------------------
Cmd.INT.CD ldx #1
jsr Cmd.GetArgX
bcc .1
@ -250,22 +250,22 @@ Cmd.INT.CD ldx #1
bcs Cmd.INT.PWD
>SYSCALL ExpandStr
bcs .9
bcs Cmd.INT.PWD.RTS
bra .4
.1 >SYSCALL RealPath
bcs .9
.4 >STYA ZPCMDBuf
.4 >STYA ZPPtr1
txa
>STA.G CMD.hCmdLine
>STA.G CMD.hCmdLine
ldy #1
lda (ZPCMDBuf),y
lda (ZPPtr1),y
beq .8 we have '/'
>PUSHEA.G CMD.Stat
>LDYA ZPCMDBuf
>LDYA ZPPtr1
>SYSCALL STAT
bcs .90
@ -276,21 +276,21 @@ Cmd.INT.CD ldx #1
ldy #0
.5 iny
lda (ZPCMDBuf),y
lda (ZPPtr1),y
bne .5
dey
lda #'/'
cmp (ZPCMDBuf),y
cmp (ZPPtr1),y
beq .8
iny
sta (ZPCMDBuf),y
sta (ZPPtr1),y
iny
lda #0
sta (ZPCMDBuf),y
sta (ZPPtr1),y
.8 >LDYA ZPCMDBuf
.8 >LDYA ZPPtr1
>SYSCALL NewStr
bcs .90
phx
@ -303,10 +303,10 @@ Cmd.INT.CD ldx #1
ldy #S.PS.hPREFIX
sta (pPs),y
jsr SetPWD
jsr SetPWD.I
.90 php
pla
pha
>LDA.G CMD.hCmdLine
>SYSCALL FreeMem
pla

View File

@ -117,8 +117,7 @@ IO.PrintErrMsg pha Save EC for PrintF
inc ZPPTR1+1
bra .3
.8
>PUSHW ZPPTR1
.8 >PUSHW ZPPTR1
pla
>PUSHA
>PUSHBI 3

View File

@ -362,7 +362,7 @@ CheckSleep ldy #Sleep+3
*--------------------------------------
SetPWD ldy #S.PS.hPREFIX
lda (pPs),y
>SYSCALL GetMemPtr
SetPWD.I >SYSCALL GetMemPtr
>PUSHYA
>LDYA L.ENV.PWD
>SYSCALL SetEnv

View File

@ -331,8 +331,9 @@ IO.WRITE.REG ldx #MLIWRITE
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
jsr GP.MLICall
bcs .9
>LDYA K.MLI.PARAMS+6
rts
.9 rts
*--------------------------------------
IO.READ.CDEV ldx #IOCTL.READ
.HS 2C BIT ABS

View File

@ -236,24 +236,32 @@ Mem.NextSlot lda ZPMemMgrSPtr
* none.
* (X unmodified)
*\--------------------------------------
K.FreeMem.ERR >PUSHA
>PUSHBI 1
>LDYAI K.FreeMem.ERR1
K.FreeMem.BAD pha
ldy #S.PS.hARGV
lda (pPS),y
jsr K.GetMemPtr
>PUSHYA
pla
>PUSHA
>PUSHBI 3
phx
>LDYAI K.FreeMem.ERRBAD
>SYSCALL printf
plx
>DEBUGOA
sec
rts
K.FreeMem tay
beq K.FreeMem.ERR Slot=0, reserved by Kernel
beq K.FreeMem.BAD Slot=0, reserved by Kernel
cmp Mem.LastSlot
bcc .10
bne K.FreeMem.ERR
bne K.FreeMem.BAD
.10 jsr K.GetMemByID X unmodified
lda (ZPMemMgrSPtr)
bpl .9 In use ?
bpl K.FreeMem.FREED In use ?
ldy #S.MEM.REFCNT
lda (ZPMemMgrSPtr),y Get count of those referencing this hMem
@ -306,20 +314,21 @@ K.FreeMem tay
clc
rts
*--------------------------------------
.9 ply
pla
pha
phy
K.FreeMem.FREED ldy #S.PS.hARGV
lda (pPS),y
jsr K.GetMemPtr
>PUSHYA
>PUSHBI 2
>LDYAI K.FreeMem.ERR2
phx
>LDYAI K.FreeMem.ERRFREED
>SYSCALL printf
plx
>DEBUGOA
sec
rts
*--------------------------------------
K.FreeMem.ERR1 .AZ "FreeMem:Bad hMem:%h.\r\n"
K.FreeMem.ERR2 .AZ "FreeMem:hMem already freed At $%H.\r\n"
K.FreeMem.ERRBAD .AZ "FreeMem:%h=Bad hMem,BIN=%s\r\n"
K.FreeMem.ERRFREED .AZ "FreeMem:hMem already freed,BIN=%s\r\n"
*/--------------------------------------
* # GetMemPtr
* A = hMem