mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 18:30:26 +00:00
Kernel 0.9.2
This commit is contained in:
parent
617bf82063
commit
bb787e2247
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -21,7 +21,6 @@ IP.IN ldy #S.IP.PROTOCOL
|
||||
.9 lda hFrameIn
|
||||
beq .8
|
||||
>SYSCALL FreeMem
|
||||
rts
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user