mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94++
This commit is contained in:
parent
dc36e6373d
commit
ee7b606612
|
@ -5,9 +5,9 @@ Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.
|
||||||
|
|
||||||
# ARP.Clear
|
# ARP.Clear
|
||||||
Clear ARP Cache
|
Clear ARP Cache
|
||||||
**In:**
|
**In:**
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
|
||||||
# ARP.Query
|
# ARP.Query
|
||||||
Query ARP Cache and returns HW address
|
Query ARP Cache and returns HW address
|
||||||
|
@ -17,7 +17,7 @@ Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
CC: hit: MAC filled
|
CC: hit: MAC filled
|
||||||
CS: missed
|
CS: missed
|
||||||
|
|
||||||
# ARP.Add
|
# ARP.Add
|
||||||
Add a static ARP cache record
|
Add a static ARP cache record
|
||||||
|
@ -34,19 +34,19 @@ Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.
|
||||||
|
|
||||||
# DNS.Clear
|
# DNS.Clear
|
||||||
Clear DNS Cache
|
Clear DNS Cache
|
||||||
**In:**
|
**In:**
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
|
||||||
# DNS.Query
|
# DNS.Query
|
||||||
Query DNS for specified host
|
Query DNS for specified host
|
||||||
**In:**
|
**In:**
|
||||||
PUSHW = PTR to IP to fill with cached data
|
PUSHW = PTR to IP to fill with cached data
|
||||||
* PUSHW = hostname PTR to PSTR
|
* PUSHW = hostname PTR to PSTR
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
CC: hit: IP filled with address
|
CC: hit: IP filled with address
|
||||||
CS: missed
|
CS: missed
|
||||||
|
|
||||||
# DNS.Add
|
# DNS.Add
|
||||||
Add a static DNS record
|
Add a static DNS record
|
||||||
|
@ -69,8 +69,8 @@ Create a new socket
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHB type`
|
||||||
`>PUSHB protocol`
|
`>PUSHB protocol`
|
||||||
`lda type`
|
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -85,8 +85,8 @@ bind a name to a socket
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHB fd`
|
||||||
`>PUSHW addr`
|
`>PUSHW addr`
|
||||||
`lda fd`
|
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -101,8 +101,8 @@ Initiate a connection on a socket
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHB fd`
|
||||||
`>PUSHW addr`
|
`>PUSHW addr`
|
||||||
`lda fd`
|
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -157,9 +157,9 @@ Close socket
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
`>PUSHWI count`
|
`>PUSHB fd`
|
||||||
`>PUSHW buf`
|
`>PUSHW buf`
|
||||||
`lda fd`
|
`>PUSHW count`
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.read`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.read`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -173,26 +173,37 @@ CS: A = EC
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
`>PUSHWI count`
|
`>PUSHB fd`
|
||||||
`>PUSHW buf`
|
`>PUSHW buf`
|
||||||
`lda fd`
|
`>PUSHW count`
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.write`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.write`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
CC: Y,A = bytes written
|
CC: Y,A = bytes written
|
||||||
CS: A = EC
|
CS: A = EC
|
||||||
|
|
||||||
# Recv (RAW,DGRAM,SEQPKT)
|
|
||||||
|
|
||||||
# RecvFrom (RAW,DGRAM,SEQPKT)
|
# RecvFrom (RAW,DGRAM,SEQPKT)
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`hMem recv(hFD fd);`
|
|
||||||
`hMem recvfrom(hFD fd, struct sockaddr *addr);`
|
`hMem recvfrom(hFD fd, struct sockaddr *addr);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHB fd`
|
||||||
`>PUSHW addr` (RecvFrom)
|
`>PUSHW addr` (RecvFrom)
|
||||||
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
CC: A = hMem
|
||||||
|
CS: A = EC
|
||||||
|
|
||||||
|
# Recv (RAW,DGRAM,SEQPKT)
|
||||||
|
|
||||||
|
## C
|
||||||
|
`hMem recv(hFD fd);`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
**In:**
|
||||||
`lda fd`
|
`lda fd`
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
|
||||||
|
|
||||||
|
@ -200,20 +211,33 @@ CS: A = EC
|
||||||
CC: A = hMem
|
CC: A = hMem
|
||||||
CS: A = EC
|
CS: A = EC
|
||||||
|
|
||||||
# Send (RAW,DGRAM,SEQPKT)
|
|
||||||
|
|
||||||
# SendTo (RAW,DGRAM,SEQPKT)
|
# SendTo (RAW,DGRAM,SEQPKT)
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int skt.send(hFD fd, const void *buf, int count);`
|
|
||||||
`int skt.sendto(hFD fd, const void *buf, int count, const struct sockaddr *addr);`
|
`int skt.sendto(hFD fd, const void *buf, int count, const struct sockaddr *addr);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
`>PUSHW addr` (SendTo)
|
`>PUSHB fd`
|
||||||
`>PUSHWI count`
|
|
||||||
`>PUSHW buf`
|
`>PUSHW buf`
|
||||||
`lda fd`
|
`>PUSHWI count`
|
||||||
|
`>PUSHW addr`
|
||||||
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.sendto`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
CC: Y,A = bytes written
|
||||||
|
CS: A = EC
|
||||||
|
|
||||||
|
# Send (RAW,DGRAM,SEQPKT)
|
||||||
|
|
||||||
|
## C
|
||||||
|
`int skt.send(hFD fd, const void *buf, int count);`
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
**In:**
|
||||||
|
`>PUSHB fd`
|
||||||
|
`>PUSHW buf`
|
||||||
|
`>PUSHWI count`
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.send`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.send`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -241,8 +265,8 @@ Set Socket Options
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
`>PUSHBI opts`
|
`>PUSHB fd`
|
||||||
`lda fd`
|
`>PUSHB opts`
|
||||||
`>LIBCALL hLIBTCPIP,LIBTCPIP.SetSockOpt`
|
`>LIBCALL hLIBTCPIP,LIBTCPIP.SetSockOpt`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
|
Binary file not shown.
|
@ -244,6 +244,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .13
|
bne .13
|
||||||
|
|
||||||
|
|
|
@ -341,8 +341,7 @@ MSG.DIFF .AZ "%H%h:%h %h\r\n"
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
DS.END
|
DS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/cmp.s
|
SAVE usr/src/bin/cmp.s
|
||||||
|
|
|
@ -55,7 +55,7 @@ CP.PRINT ldy #$ff
|
||||||
inc ZPCLBufPtr+1
|
inc ZPCLBufPtr+1
|
||||||
|
|
||||||
.3 pla
|
.3 pla
|
||||||
clc
|
sec include \0
|
||||||
adc ZPDataPtr
|
adc ZPDataPtr
|
||||||
sta ZPDataPtr
|
sta ZPDataPtr
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
|
@ -588,8 +588,7 @@ KW.NEGATIVE inc pStack
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.ZERO clc
|
KW.ZERO clc
|
||||||
|
|
||||||
ldy #1
|
>PULLA
|
||||||
lda (pStack),y
|
|
||||||
ora (pStack)
|
ora (pStack)
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
|
@ -598,7 +597,6 @@ KW.ZERO clc
|
||||||
.9 lda #0
|
.9 lda #0
|
||||||
ror
|
ror
|
||||||
|
|
||||||
inc pStack
|
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
|
@ -703,7 +701,7 @@ KW.PRINT >LDYAI 256
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
eor #'"
|
eor #'"
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.2 sta (ZPPtr1),y
|
.2 sta (ZPPtr1),y
|
||||||
|
|
|
@ -1048,12 +1048,12 @@ CODE.RPDROP2.L .EQ *-CODE.RPDROP2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.TESTTRUE >PULLA
|
CODE.TESTTRUE >PULLA
|
||||||
tax
|
tax
|
||||||
.1 bpl .1+5
|
.1 bmi .1+5
|
||||||
CODE.TESTTRUE.L .EQ *-CODE.TESTTRUE
|
CODE.TESTTRUE.L .EQ *-CODE.TESTTRUE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.TESTFALSE >PULLA
|
CODE.TESTFALSE >PULLA
|
||||||
tax
|
tax
|
||||||
.1 bmi .1+5
|
.1 bpl .1+5
|
||||||
CODE.TESTFALSE.L .EQ *-CODE.TESTFALSE
|
CODE.TESTFALSE.L .EQ *-CODE.TESTFALSE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.PULLA >PULLA
|
CODE.PULLA >PULLA
|
||||||
|
|
|
@ -240,15 +240,15 @@ CS.RUN.ARGSOK >PUSHW L.MSG.CONNECT
|
||||||
>PUSHBI 8
|
>PUSHBI 8
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
CS.RUN.OPENSKT >PUSHBI 0 no protocol
|
CS.RUN.OPENSKT >PUSHBI S.SOCKET.T.SEQPKT
|
||||||
lda #S.SOCKET.T.SEQPKT
|
>PUSHBI 0 no protocol
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hSocket
|
sta hSocket
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
|
@ -263,8 +263,8 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol
|
||||||
|
|
||||||
.2 >SLEEP
|
.2 >SLEEP
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW L.SA.REMOTE
|
>PUSHW L.SA.REMOTE
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
|
@ -463,10 +463,11 @@ CS.RUN.REQUEST jsr Init.TimeOut
|
||||||
>SYSCALL SPrintF
|
>SYSCALL SPrintF
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
>PUSHYA Byte count
|
pha
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW ZPSendBufPtr
|
>PUSHW ZPSendBufPtr
|
||||||
|
pla
|
||||||
lda hSocket
|
>PUSHYA Byte count
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||||
|
|
||||||
.90 php
|
.90 php
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DHCP.INIT lda IPCFG+S.NETCFG.STATUS
|
DHCP.INIT lda IPCFG+S.NETCFG.STATUS
|
||||||
and #S.IPCFG.STATUS.OK
|
and #S.IPCFG.STATUS.OK
|
||||||
|
@ -9,7 +8,7 @@ DHCP.INIT lda IPCFG+S.NETCFG.STATUS
|
||||||
stz IPCFG+S.NETCFG.STATUS
|
stz IPCFG+S.NETCFG.STATUS
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
.1 eor A2osX.TIMER16,x
|
.1 eor A2osX.TIMER16,x
|
||||||
sta DHCP.DISC.XID,x
|
sta DHCP.DISC.XID,x
|
||||||
sta DHCP.REQ.XID,x
|
sta DHCP.REQ.XID,x
|
||||||
|
@ -34,42 +33,43 @@ DHCP.INIT lda IPCFG+S.NETCFG.STATUS
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DHCP.RUN >PUSHBI 0 no protocol
|
DHCP.RUN >PUSHBI S.SOCKET.T.DGRAM
|
||||||
lda #S.SOCKET.T.DGRAM
|
>PUSHBI 0 no protocol
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
.9 jmp DHCP.RUN.KO
|
.9 jmp DHCP.RUN.KO
|
||||||
|
|
||||||
.1 sta hSocket
|
.1 sta hSocket
|
||||||
pha
|
>PUSHA
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
pla
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>SLEEP
|
>SLEEP
|
||||||
|
|
||||||
>PUSHWI S.SOCKET.O.BROADCAST
|
>PUSHB hSocket
|
||||||
lda hSocket
|
>PUSHBI S.SOCKET.O.BROADCAST
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt
|
>LIBCALL hLIBTCPIP,LIBTCPIP.setsockopt
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW L.SA.REMOTE
|
>PUSHW L.SA.REMOTE
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.MSG.DHCP.CFG1
|
>LDYA L.MSG.DHCP.CFG1
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
|
||||||
>SLEEP
|
>SLEEP
|
||||||
|
|
||||||
DHCP.RUN.SDISC >PUSHW L.SA.DEST
|
DHCP.RUN.SDISC >PUSHB hSocket
|
||||||
>PUSHWI DHCP.DISC.LEN
|
|
||||||
>PUSHW L.DHCP.DISC
|
>PUSHW L.DHCP.DISC
|
||||||
lda hSocket
|
>PUSHWI DHCP.DISC.LEN
|
||||||
|
>PUSHW L.SA.DEST
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SendTo
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SendTo
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
jmp DHCP.RUN.KO
|
jmp DHCP.RUN.KO
|
||||||
|
|
||||||
.1 lda #S.IPCFG.STATUS.SDISC
|
.1 lda #S.IPCFG.STATUS.SDISC
|
||||||
|
@ -77,15 +77,15 @@ DHCP.RUN.SDISC >PUSHW L.SA.DEST
|
||||||
|
|
||||||
DHCP.RUN.ROFFER jsr DHCP.RUN.SKT.RECV
|
DHCP.RUN.ROFFER jsr DHCP.RUN.SKT.RECV
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
jmp DHCP.RUN.KO
|
jmp DHCP.RUN.KO
|
||||||
|
|
||||||
.1 jsr CheckDHCPOffer
|
.1 jsr CheckDHCPOffer
|
||||||
bcs DHCP.RUN.ROFFER
|
bcs DHCP.RUN.ROFFER
|
||||||
lda #S.IPCFG.STATUS.ROFFER
|
lda #S.IPCFG.STATUS.ROFFER
|
||||||
sta IPCFG
|
sta IPCFG
|
||||||
|
|
||||||
DHCP.RUN.SREQ >PUSHW L.MSG.DHCP.CFG2
|
DHCP.RUN.SREQ >PUSHW L.MSG.DHCP.CFG2
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
|
@ -97,19 +97,19 @@ DHCP.RUN.SREQ >PUSHW L.MSG.DHCP.CFG2
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHW L.SA.DEST
|
>PUSHB hSocket
|
||||||
>PUSHWI DHCP.REQ.LEN
|
|
||||||
>PUSHW L.DHCP.REQ
|
>PUSHW L.DHCP.REQ
|
||||||
lda hSocket
|
>PUSHWI DHCP.REQ.LEN
|
||||||
|
>PUSHW L.SA.DEST
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SendTo
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SendTo
|
||||||
bcs DHCP.RUN.KO
|
bcs DHCP.RUN.KO
|
||||||
|
|
||||||
lda #S.IPCFG.STATUS.SREQ
|
lda #S.IPCFG.STATUS.SREQ
|
||||||
sta IPCFG
|
sta IPCFG
|
||||||
|
|
||||||
DHCP.RUN.RACK jsr DHCP.RUN.SKT.RECV
|
DHCP.RUN.RACK jsr DHCP.RUN.SKT.RECV
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
lda #2
|
lda #2
|
||||||
bra DHCP.RUN.KO
|
bra DHCP.RUN.KO
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ DHCP.RUN.OK lda #S.IPCFG.STATUS.OK
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SETCFG
|
||||||
|
|
||||||
>PUSHW L.MSG.DHCP.OK
|
>PUSHW L.MSG.DHCP.OK
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 lda IPCFG+S.IPCFG.IP,x
|
.1 lda IPCFG+S.IPCFG.IP,x
|
||||||
|
@ -130,7 +130,7 @@ DHCP.RUN.OK lda #S.IPCFG.STATUS.OK
|
||||||
inx
|
inx
|
||||||
cpx #4
|
cpx #4
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.2 lda IPCFG+S.IPCFG.MASK,x
|
.2 lda IPCFG+S.IPCFG.MASK,x
|
||||||
|
@ -138,7 +138,7 @@ DHCP.RUN.OK lda #S.IPCFG.STATUS.OK
|
||||||
inx
|
inx
|
||||||
cpx #4
|
cpx #4
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>PUSHBI 8
|
>PUSHBI 8
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
@ -162,20 +162,20 @@ DHCP.RUN.SKT.RECV
|
||||||
sta TimeOut
|
sta TimeOut
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
|
|
||||||
lda hSocket
|
lda hSocket
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
cmp #E.NODATA
|
cmp #E.NODATA
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda TimeOut
|
lda TimeOut
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 sta hFrame
|
.8 sta hFrame
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
|
@ -194,7 +194,7 @@ CheckDHCPOffer jsr CheckDHCPXID
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda ZPFrameBase
|
lda ZPFrameBase
|
||||||
clc
|
clc
|
||||||
adc #S.DHCP.OPTIONS
|
adc #S.DHCP.OPTIONS
|
||||||
sta ZPFramePtr
|
sta ZPFramePtr
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ GetDHCPOption cmp #S.DHCP.OPTIONS.MASK
|
||||||
sta IPCFG+S.IPCFG.DOMAIN-1,y
|
sta IPCFG+S.IPCFG.DOMAIN-1,y
|
||||||
dex
|
dex
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetDHCPOption.CopyIP
|
GetDHCPOption.CopyIP
|
||||||
|
@ -350,7 +350,7 @@ CheckDHCPAck jsr CheckDHCPXID
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda ZPFrameBase
|
lda ZPFrameBase
|
||||||
clc
|
clc
|
||||||
adc #S.DHCP.OPTIONS
|
adc #S.DHCP.OPTIONS
|
||||||
sta ZPFramePtr
|
sta ZPFramePtr
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ETC.ReadFiles >LDYAI 256
|
ETC.ReadFiles >LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
|
@ -20,7 +19,7 @@ ETC.ReadFiles >LDYAI 256
|
||||||
>PUSHW A2osX.TIMER16
|
>PUSHW A2osX.TIMER16
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL SPrintF
|
>SYSCALL SPrintF
|
||||||
|
|
||||||
.4 >LDYA L.TCPIP.CONF
|
.4 >LDYA L.TCPIP.CONF
|
||||||
jsr CFG.Read.PrintF
|
jsr CFG.Read.PrintF
|
||||||
jsr CFG.Read.TCPIP.CONF
|
jsr CFG.Read.TCPIP.CONF
|
||||||
|
@ -80,25 +79,25 @@ CFG.Read.TCPIP.CONF
|
||||||
jsr CFG.Read.Open
|
jsr CFG.Read.Open
|
||||||
jsr CFG.Read.Result
|
jsr CFG.Read.Result
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 jsr CFG.Read.GetS
|
.1 jsr CFG.Read.GetS
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
lda (ZPTmpPtr1)
|
lda (ZPTmpPtr1)
|
||||||
beq .1 empty line...
|
beq .1 empty line...
|
||||||
|
|
||||||
cmp #'#'
|
cmp #'#'
|
||||||
beq .1 comment...
|
beq .1 comment...
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
lda (ZPTmpPtr1),y
|
lda (ZPTmpPtr1),y
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.3 lda L.CFG.Keywords
|
.3 lda L.CFG.Keywords
|
||||||
sta ZPTmpPtr2
|
sta ZPTmpPtr2
|
||||||
lda L.CFG.Keywords+1
|
lda L.CFG.Keywords+1
|
||||||
|
@ -111,36 +110,36 @@ CFG.Read.TCPIP.CONF
|
||||||
tya
|
tya
|
||||||
cmp (ZPTmpPtr2)
|
cmp (ZPTmpPtr2)
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
.5 lda (ZPTmpPtr2),y
|
.5 lda (ZPTmpPtr2),y
|
||||||
dey
|
dey
|
||||||
cmp (ZPTmpPtr1),y
|
cmp (ZPTmpPtr1),y
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
tya
|
tya
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
ply discard keyword len
|
ply discard keyword len
|
||||||
|
|
||||||
jsr .80
|
jsr .80
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.6 lda (ZPTmpPtr2)
|
.6 lda (ZPTmpPtr2)
|
||||||
sec
|
sec
|
||||||
adc ZPTmpPtr2
|
adc ZPTmpPtr2
|
||||||
sta ZPTmpPtr2
|
sta ZPTmpPtr2
|
||||||
bcc .7
|
bcc .7
|
||||||
|
|
||||||
inc ZPTmpPtr2+1
|
inc ZPTmpPtr2+1
|
||||||
|
|
||||||
.7 inx
|
.7 inx
|
||||||
inx
|
inx
|
||||||
ply reset keyword len
|
ply reset keyword len
|
||||||
lda (ZPTmpPtr2)
|
lda (ZPTmpPtr2)
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.HS B0 BCS
|
.HS B0 BCS
|
||||||
.9 sec
|
.9 sec
|
||||||
|
@ -161,14 +160,14 @@ CFG.Read.nameserver
|
||||||
ldx #S.IPCFG.DNS1
|
ldx #S.IPCFG.DNS1
|
||||||
lda IPCFG,x
|
lda IPCFG,x
|
||||||
beq CFG.Read.IP
|
beq CFG.Read.IP
|
||||||
|
|
||||||
ldx #S.IPCFG.DNS2
|
ldx #S.IPCFG.DNS2
|
||||||
lda IPCFG,x
|
lda IPCFG,x
|
||||||
beq CFG.Read.IP
|
beq CFG.Read.IP
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
CFG.Read.IP lda (ZPTmpPtr2)
|
CFG.Read.IP lda (ZPTmpPtr2)
|
||||||
sec
|
sec
|
||||||
adc ZPTmpPtr1
|
adc ZPTmpPtr1
|
||||||
|
@ -229,7 +228,7 @@ CFG.Read.HOSTS stz CFG.hBuf2
|
||||||
|
|
||||||
>STYA ZPTmpPtr2
|
>STYA ZPTmpPtr2
|
||||||
stx CFG.hBuf2
|
stx CFG.hBuf2
|
||||||
|
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -292,12 +291,12 @@ CFG.Read.HOSTS.Scan
|
||||||
inx
|
inx
|
||||||
cpx #4
|
cpx #4
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>PUSHW ZPTmpPtr2
|
>PUSHW ZPTmpPtr2
|
||||||
>PUSHW ZPTmpPtr3
|
>PUSHW ZPTmpPtr3
|
||||||
|
|
||||||
>PUSHBI 12 6 PTRs on stack
|
>PUSHBI 12 6 PTRs on stack
|
||||||
|
|
||||||
>SYSCALL SScanF
|
>SYSCALL SScanF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -139,7 +139,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG
|
||||||
lda #MLI.E.NODEV
|
lda #MLI.E.NODEV
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
CS.RUN.SETUP
|
CS.RUN.SETUP
|
||||||
.1 inc ArgIndex
|
.1 inc ArgIndex
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
|
@ -150,14 +150,14 @@ CS.RUN.SETUP
|
||||||
cmp #'-'
|
cmp #'-'
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPTmpPtr1),y
|
lda (ZPTmpPtr1),y
|
||||||
|
|
||||||
ldx #OptionVars-OptionList-1
|
ldx #OptionVars-OptionList-1
|
||||||
|
|
||||||
.2 cmp OptionList,x
|
.2 cmp OptionList,x
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ CS.RUN.SETUP
|
||||||
CS.RUN.DUMP >PUSHB IPCFG+S.NETCFG.DevID
|
CS.RUN.DUMP >PUSHB IPCFG+S.NETCFG.DevID
|
||||||
>PUSHEA.G DIB
|
>PUSHEA.G DIB
|
||||||
>SYSCALL GetDevStatus
|
>SYSCALL GetDevStatus
|
||||||
|
|
||||||
>LEA.G DCB.NIC
|
>LEA.G DCB.NIC
|
||||||
>STYA.G IOCTL+S.IOCTL.BUFPTR
|
>STYA.G IOCTL+S.IOCTL.BUFPTR
|
||||||
lda #S.IOCTL.S.GETDCB
|
lda #S.IOCTL.S.GETDCB
|
||||||
|
@ -233,33 +233,33 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
|
||||||
adc /S.FD.DEV
|
adc /S.FD.DEV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>PUSHEA.G DIB+S.DIB.IDS
|
>PUSHEA.G DIB+S.DIB.IDS
|
||||||
|
|
||||||
ldy #DCB.NIC+S.DCB.NIC.MAC
|
ldy #DCB.NIC+S.DCB.NIC.MAC
|
||||||
ldx #6
|
ldx #6
|
||||||
.1 lda (pData),y
|
.1 lda (pData),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>PUSHBI 11
|
>PUSHBI 11
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHW L.MSG1.DEV.ARP
|
>PUSHW L.MSG1.DEV.ARP
|
||||||
|
|
||||||
>LDA.G DCB.NIC+S.DCB.NIC.FLAGS
|
>LDA.G DCB.NIC+S.DCB.NIC.FLAGS
|
||||||
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
and #S.DCB.NIC.FLAGS.ARPOFFLOAD
|
||||||
beq .2
|
beq .2
|
||||||
lda #1
|
lda #1
|
||||||
.2 >PUSHA
|
.2 >PUSHA
|
||||||
>PUSHBI 1
|
>PUSHBI 1
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHW L.MSG1.DEV.IP
|
>PUSHW L.MSG1.DEV.IP
|
||||||
|
|
||||||
>LDA.G DCB.NIC+S.DCB.NIC.FLAGS
|
>LDA.G DCB.NIC+S.DCB.NIC.FLAGS
|
||||||
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
and #S.DCB.NIC.FLAGS.IPOFFLOAD
|
||||||
|
|
||||||
|
@ -267,9 +267,9 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
.3
|
.3
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 1
|
>PUSHBI 1
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>LDA.G DCB.NIC+S.DCB.NIC.LINK
|
>LDA.G DCB.NIC+S.DCB.NIC.LINK
|
||||||
|
@ -281,11 +281,11 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
|
||||||
|
|
||||||
CS.RUN.LINK >LDYA L.MSG1.LINK.OK
|
CS.RUN.LINK >LDYA L.MSG1.LINK.OK
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
|
||||||
>PUSHW L.MSG1.LINKSPEED
|
>PUSHW L.MSG1.LINKSPEED
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>LDA.G DCB.NIC+S.DCB.NIC.SPEED
|
>LDA.G DCB.NIC+S.DCB.NIC.SPEED
|
||||||
and #$0F
|
and #$0F
|
||||||
tax
|
tax
|
||||||
|
@ -316,30 +316,30 @@ CS.RUN.DUMPIP >PUSHW L.MSG2
|
||||||
.10 >SYSCALL PutS
|
.10 >SYSCALL PutS
|
||||||
|
|
||||||
>PUSHW L.MSG2.DHCPSRVR
|
>PUSHW L.MSG2.DHCPSRVR
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
.2 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x
|
.2 >PUSHB IPCFG+S.IPCFG.DHCPSRVR,x
|
||||||
inx
|
inx
|
||||||
cpx #4
|
cpx #4
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHW L.MSG2.IPMASK
|
>PUSHW L.MSG2.IPMASK
|
||||||
|
|
||||||
ldx #0 IP/MASK
|
ldx #0 IP/MASK
|
||||||
.3 >PUSHB IPCFG+S.IPCFG.IP,x
|
.3 >PUSHB IPCFG+S.IPCFG.IP,x
|
||||||
inx
|
inx
|
||||||
cpx #8
|
cpx #8
|
||||||
bne .3
|
bne .3
|
||||||
>PUSHBI 8
|
>PUSHBI 8
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHW L.MSG2.GW
|
>PUSHW L.MSG2.GW
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
.4 >PUSHB IPCFG+S.IPCFG.GW,x
|
.4 >PUSHB IPCFG+S.IPCFG.GW,x
|
||||||
inx
|
inx
|
||||||
|
@ -347,25 +347,25 @@ CS.RUN.DUMPIP >PUSHW L.MSG2
|
||||||
bne .4
|
bne .4
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHW L.MSG2.DNS
|
>PUSHW L.MSG2.DNS
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
.5 >PUSHB IPCFG+S.IPCFG.DNS1,x
|
.5 >PUSHB IPCFG+S.IPCFG.DNS1,x
|
||||||
inx
|
inx
|
||||||
cpx #8
|
cpx #8
|
||||||
bne .5
|
bne .5
|
||||||
>PUSHBI 8
|
>PUSHBI 8
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHW L.MSG2.HOSTNAME
|
>PUSHW L.MSG2.HOSTNAME
|
||||||
>PUSHW L.IPCFG.HOSTNAME
|
>PUSHW L.IPCFG.HOSTNAME
|
||||||
>PUSHW L.IPCFG.DOMAIN
|
>PUSHW L.IPCFG.DOMAIN
|
||||||
|
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
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
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -478,7 +478,7 @@ DHCP.DISC.XID .BS 4
|
||||||
.HS 00000000 CIADDR
|
.HS 00000000 CIADDR
|
||||||
DHCP.DISC.YIADDR .HS 00000000
|
DHCP.DISC.YIADDR .HS 00000000
|
||||||
.HS 00000000 SIADDR
|
.HS 00000000 SIADDR
|
||||||
DHCP.DISC.GIADDR .HS 00000000
|
DHCP.DISC.GIADDR .HS 00000000
|
||||||
DHCP.DISC.CHADDR .HS 00000000.00000000.00000000.00000000
|
DHCP.DISC.CHADDR .HS 00000000.00000000.00000000.00000000
|
||||||
.BS 64 SNAME
|
.BS 64 SNAME
|
||||||
.BS 128 FILE
|
.BS 128 FILE
|
||||||
|
|
|
@ -263,15 +263,15 @@ CS.RUN.CheckArgs
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.Connect >PUSHBI 0 no protocol
|
CS.RUN.Connect >PUSHBI S.SOCKET.T.STREAM
|
||||||
lda #S.SOCKET.T.STREAM
|
>PUSHBI 0 no protocol
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hSocket
|
sta hSocket
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -280,8 +280,8 @@ CS.RUN.Connect >PUSHBI 0 no protocol
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW L.SA.REMOTE
|
>PUSHW L.SA.REMOTE
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
|
@ -370,9 +370,9 @@ CS.RUN.GetMsg bit bPendingMsg
|
||||||
.10 ldy BufLen
|
.10 ldy BufLen
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.1 >PUSHWI 255
|
.1 >PUSHB hSocket
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
lda hSocket
|
>PUSHWI 255
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
||||||
bcs .7
|
bcs .7
|
||||||
|
|
||||||
|
@ -700,9 +700,11 @@ CS.RUN.DUMPMSG >PUSHW L.SEQ.DUMPMSG
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.SendMsg >PUSHYA
|
CS.RUN.SendMsg pha
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW ZPRespPtr
|
>PUSHW ZPRespPtr
|
||||||
lda hSocket
|
pla
|
||||||
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Write
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Write
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -204,7 +204,7 @@ CheckArgs.A lda iArg
|
||||||
>SYSCALL AToL
|
>SYSCALL AToL
|
||||||
>PUSHWI 0
|
>PUSHWI 0
|
||||||
>PUSHWI 3600
|
>PUSHWI 3600
|
||||||
>FPU IMUL32
|
>FPU uMUL
|
||||||
>PULLL Adjust
|
>PULLL Adjust
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
@ -264,20 +264,20 @@ OpenSocket >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 >PUSHBI S.IP.PROTOCOL.UDP
|
.3 >PUSHBI S.SOCKET.T.DGRAM
|
||||||
lda #S.SOCKET.T.DGRAM
|
>PUSHBI S.IP.PROTOCOL.UDP
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hSocket
|
sta hSocket
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW L.SA.REMOTE
|
>PUSHW L.SA.REMOTE
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
|
@ -289,10 +289,9 @@ OpenSocket >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||||
sec
|
sec
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SendNTPRequest >PUSHWI NTP.Request.End-NTP.Request
|
SendNTPRequest >PUSHB hSocket
|
||||||
>PUSHW L.NTP.Request
|
>PUSHW L.NTP.Request
|
||||||
|
>PUSHWI NTP.Request.End-NTP.Request
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -191,20 +191,20 @@ CS.RUN.OPENSKT ldx #3
|
||||||
>STA.G SA.REMOTE+S.SOCKADDR.PORT+1
|
>STA.G SA.REMOTE+S.SOCKADDR.PORT+1
|
||||||
sta Identifier+1
|
sta Identifier+1
|
||||||
|
|
||||||
|
>PUSHBI S.SOCKET.T.RAW
|
||||||
>PUSHBI S.IP.PROTOCOL.ICMP
|
>PUSHBI S.IP.PROTOCOL.ICMP
|
||||||
lda #S.SOCKET.T.RAW
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hSocket
|
sta hSocket
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHEA.G SA.LOCAL
|
>PUSHEA.G SA.LOCAL
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHEA.G SA.REMOTE
|
>PUSHEA.G SA.REMOTE
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcc CS.RUN.SEND.ECHO
|
bcc CS.RUN.SEND.ECHO
|
||||||
|
|
||||||
|
@ -236,10 +236,9 @@ CS.RUN.SEND.ECHO
|
||||||
dey
|
dey
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
>PUSHWI ICMP.RequestLen
|
>PUSHB hSocket
|
||||||
>PUSHW pData
|
>PUSHW pData
|
||||||
lda hSocket
|
>PUSHWI ICMP.RequestLen
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
L.SA.LOCAL .DA SA.LOCAL
|
L.SA.LOCAL .DA SA.LOCAL
|
||||||
|
@ -69,7 +69,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||||
>STYA ZPIPCfgPtr
|
>STYA ZPIPCfgPtr
|
||||||
lda (ZPIPCfgPtr) Configured ?
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
bmi CS.RUN.IPOK
|
bmi CS.RUN.IPOK
|
||||||
|
|
||||||
>LDYA L.MSG.IPKO
|
>LDYA L.MSG.IPKO
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
lda #E.SYN
|
lda #E.SYN
|
||||||
|
@ -92,7 +92,7 @@ CS.RUN.IPOK ldy #S.PS.ARGC
|
||||||
sta TimeOut
|
sta TimeOut
|
||||||
|
|
||||||
.2 >SLEEP
|
.2 >SLEEP
|
||||||
|
|
||||||
>PUSHW L.SA.REMOTE.AD
|
>PUSHW L.SA.REMOTE.AD
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
|
@ -135,19 +135,19 @@ CS.RUN.PORTOK >PUSHW L.MSG.HOSTOK
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>PUSHBI 8
|
>PUSHBI 8
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
CS.RUN.OPENSKT >PUSHBI 0 no protocol
|
CS.RUN.OPENSKT >PUSHBI S.SOCKET.T.STREAM
|
||||||
lda #S.SOCKET.T.STREAM
|
>PUSHBI 0 no protocol
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hSocket
|
sta hSocket
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
|
@ -162,29 +162,29 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol
|
||||||
sta TimeOut
|
sta TimeOut
|
||||||
|
|
||||||
.3 >SLEEP
|
.3 >SLEEP
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHW L.SA.REMOTE
|
>PUSHW L.SA.REMOTE
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
||||||
cmp #ERR.SKT.NOCONN
|
cmp #ERR.SKT.NOCONN
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda TimeOut
|
lda TimeOut
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
lda #ERR.SKT.NOCONN
|
lda #ERR.SKT.NOCONN
|
||||||
bra .9
|
bra .9
|
||||||
|
|
||||||
.4 >PUSHW L.MSG.SKTOK
|
.4 >PUSHW L.MSG.SKTOK
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>LDYAI BUFSIZE
|
>LDYAI BUFSIZE
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPBufPtr
|
>STYA ZPBufPtr
|
||||||
stx hBuf
|
stx hBuf
|
||||||
|
|
||||||
|
@ -197,23 +197,20 @@ CS.RUN.LOOP >SLEEP
|
||||||
tay
|
tay
|
||||||
bne .2 EOF, no char
|
bne .2 EOF, no char
|
||||||
|
|
||||||
>PUSHWI BUFSIZE
|
>PUSHB hSocket
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
lda hSocket
|
>PUSHWI BUFSIZE
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
|
||||||
.98 bcs .99
|
.98 bcs .99
|
||||||
|
|
||||||
pha
|
>STYA ZPBufLen
|
||||||
phy
|
|
||||||
|
|
||||||
ldy #S.PS.hStdOut
|
ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
|
|
||||||
ply
|
>PUSHW ZPBufLen
|
||||||
pla
|
|
||||||
>PUSHYA len
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs .11
|
bcs .11
|
||||||
|
|
||||||
|
@ -229,7 +226,7 @@ CS.RUN.LOOP >SLEEP
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
>PUSHWI BUFSIZE
|
>PUSHWI BUFSIZE
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
.11 bcc .3
|
.11 bcc .3
|
||||||
|
|
||||||
|
@ -237,13 +234,14 @@ CS.RUN.LOOP >SLEEP
|
||||||
.99 bra CS.RUN.SKTERR
|
.99 bra CS.RUN.SKTERR
|
||||||
|
|
||||||
.3 >STYA ZPBufLen
|
.3 >STYA ZPBufLen
|
||||||
|
|
||||||
lda (ZPBufPtr)
|
lda (ZPBufPtr)
|
||||||
cmp #$14 Ctrl-T
|
cmp #$14 Ctrl-T
|
||||||
beq CS.RUN.USER
|
beq CS.RUN.USER
|
||||||
|
|
||||||
>PUSHW ZPBufLen
|
>PUSHB hSocket
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
lda hSocket
|
>PUSHW ZPBufLen
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Write
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Write
|
||||||
.9 bcs CS.RUN.SKTERR
|
.9 bcs CS.RUN.SKTERR
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ BUFSIZE .EQ 256
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPBufPtr .BS 2
|
ZPBufPtr .BS 2
|
||||||
|
ZPDataLen .BS 2
|
||||||
hBuf .BS 1
|
hBuf .BS 1
|
||||||
hDev .BS 1
|
hDev .BS 1
|
||||||
TimeOut .BS 1
|
TimeOut .BS 1
|
||||||
|
@ -81,27 +82,19 @@ CS.RUN.LOOP >SLEEP
|
||||||
|
|
||||||
lda hDev
|
lda hDev
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
bcs CS.RUN.RTS
|
bcs .9
|
||||||
tay
|
tay
|
||||||
bne .1 EOF, no char
|
bne .1 EOF, no char
|
||||||
|
|
||||||
>PUSHB hDev
|
lda hDev
|
||||||
>PUSHW ZPBufPtr
|
jsr CS.Read
|
||||||
>PUSHWI BUFSIZE
|
|
||||||
>SYSCALL FRead
|
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
pha
|
>STYA ZPDataLen
|
||||||
phy
|
|
||||||
|
|
||||||
ldy #S.PS.hStdOut
|
ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>PUSHA
|
jsr CS.Write
|
||||||
>PUSHW ZPBufPtr
|
|
||||||
ply
|
|
||||||
pla
|
|
||||||
>PUSHYA len
|
|
||||||
>SYSCALL FWrite
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 ldy #S.PS.hStdIn
|
.1 ldy #S.PS.hStdIn
|
||||||
|
@ -114,33 +107,33 @@ CS.RUN.LOOP >SLEEP
|
||||||
|
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>PUSHA
|
jsr CS.Read
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA ZPDataLen
|
||||||
|
|
||||||
|
lda (ZPBufPtr)
|
||||||
|
eor #$14 Ctrl-T
|
||||||
|
clc
|
||||||
|
beq .9 exit with A=0,CC
|
||||||
|
|
||||||
|
lda hDev
|
||||||
|
jsr CS.Write
|
||||||
|
bcc CS.RUN.LOOP
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.Read >PUSHA
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
>PUSHWI BUFSIZE
|
>PUSHWI BUFSIZE
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
bcs .9
|
rts
|
||||||
|
*--------------------------------------
|
||||||
tax
|
CS.Write >PUSHA
|
||||||
lda (ZPBufPtr)
|
|
||||||
eor #$14 Ctrl-T
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
txa
|
|
||||||
|
|
||||||
pha
|
|
||||||
phy
|
|
||||||
>PUSHB hDev
|
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
ply
|
>PUSHW ZPDataLen
|
||||||
pla
|
|
||||||
>PUSHYA len
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs .9
|
rts
|
||||||
|
|
||||||
jmp CS.RUN.LOOP
|
|
||||||
|
|
||||||
.8 sec
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT lda (pEvent)
|
||||||
bpl .9 is it a TIMER event?
|
bpl .9 is it a TIMER event?
|
||||||
|
@ -172,8 +165,7 @@ MSG.DEVOK .AZ "Connected (Exit key is Ctrl-T)"
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
DS.END
|
DS.END .ED
|
||||||
.ED
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/term.s
|
SAVE usr/src/bin/term.s
|
||||||
|
|
29
BIN/WC.S.txt
29
BIN/WC.S.txt
|
@ -96,9 +96,11 @@ CS.RUN inc ArgIndex
|
||||||
|
|
||||||
.4 >LDA.G hSrcBasePath
|
.4 >LDA.G hSrcBasePath
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
jsr InitSrcDirYA
|
jsr InitSrcDirYA
|
||||||
bcc CS.RUN
|
bcc CS.RUN
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.5 lda bChar
|
.5 lda bChar
|
||||||
|
@ -129,6 +131,7 @@ CS.RUN inc ArgIndex
|
||||||
.6 >LDYAI 256
|
.6 >LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPFullPath
|
>STYA ZPFullPath
|
||||||
stx hSrcFullPath
|
stx hSrcFullPath
|
||||||
|
|
||||||
|
@ -153,6 +156,7 @@ CS.RUN inc ArgIndex
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPLineBuf
|
>STYA ZPLineBuf
|
||||||
stx hMem
|
stx hMem
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -160,12 +164,16 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
cmp #$03 Ctrl-C
|
cmp #$03 Ctrl-C
|
||||||
beq .99 Abort....
|
beq .99 Abort....
|
||||||
|
|
||||||
cmp #$13 Ctrl-S
|
cmp #$13 Ctrl-S
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
|
@ -173,16 +181,20 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta bPause
|
sta bPause
|
||||||
bne CS.RUN.LOOP
|
bne CS.RUN.LOOP
|
||||||
|
|
||||||
.10 lda bPause
|
.10 lda bPause
|
||||||
bne CS.RUN.LOOP Pause...
|
bne CS.RUN.LOOP Pause...
|
||||||
|
|
||||||
jsr GetEntry
|
jsr GetEntry
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.STAT.P.DRIVE
|
ldy #S.STAT.P.DRIVE
|
||||||
lda (ZPFileStat),y ProDOS Device ?
|
lda (ZPFileStat),y ProDOS Device ?
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
jsr CS.RUN.DEV
|
jsr CS.RUN.DEV
|
||||||
bcc CS.RUN.LOOP
|
bcc CS.RUN.LOOP
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.5 ldy #S.STAT.MODE+1
|
.5 ldy #S.STAT.MODE+1
|
||||||
|
@ -193,9 +205,12 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
|
|
||||||
jsr CS.RUN.DIR
|
jsr CS.RUN.DIR
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.6 jsr CS.RUN.FILE
|
.6 jsr CS.RUN.FILE
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.9 jsr LeaveSubDir
|
.9 jsr LeaveSubDir
|
||||||
|
@ -213,6 +228,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
CS.RUN.PIPE >LDYAI 256
|
CS.RUN.PIPE >LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPLineBuf
|
>STYA ZPLineBuf
|
||||||
stx hMem
|
stx hMem
|
||||||
|
|
||||||
|
@ -268,6 +284,7 @@ CS.RUN.FILE jsr FilterMatch
|
||||||
jsr CS.RUN.AddFstat2Tstat
|
jsr CS.RUN.AddFstat2Tstat
|
||||||
lda bTotal
|
lda bTotal
|
||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
beq .61
|
beq .61
|
||||||
|
|
||||||
lda #$fe
|
lda #$fe
|
||||||
|
@ -283,6 +300,7 @@ CS.RUN.FILE jsr FilterMatch
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
.9 jmp CS.RUN.CheckErr
|
.9 jmp CS.RUN.CheckErr
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.FILE.LOOP
|
CS.RUN.FILE.LOOP
|
||||||
|
@ -308,6 +326,7 @@ CS.RUN.FILE.LOOP
|
||||||
|
|
||||||
.21 cmp #C.SPACE
|
.21 cmp #C.SPACE
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
cmp #C.TAB
|
cmp #C.TAB
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
|
@ -325,6 +344,7 @@ CS.RUN.FILE.LOOP
|
||||||
|
|
||||||
.8 cmp #MLI.E.EOF
|
.8 cmp #MLI.E.EOF
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -332,6 +352,7 @@ CS.RUN.FILE.LOOP
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.CheckErr bcc .9
|
CS.RUN.CheckErr bcc .9
|
||||||
|
|
||||||
pha
|
pha
|
||||||
>PUSHW L.MSG.ERR
|
>PUSHW L.MSG.ERR
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
@ -341,6 +362,7 @@ CS.RUN.CheckErr bcc .9
|
||||||
eor #$80
|
eor #$80
|
||||||
asl
|
asl
|
||||||
pla
|
pla
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
@ -413,17 +435,17 @@ CS.RUN.IncF lda (pData),y
|
||||||
CS.RUN.AddFstat2Tstat
|
CS.RUN.AddFstat2Tstat
|
||||||
>PUSHL.G fWordCount
|
>PUSHL.G fWordCount
|
||||||
>PUSHL.G tWordCount
|
>PUSHL.G tWordCount
|
||||||
>FPU ADD32
|
>FPU uADD
|
||||||
>PULLL.G tWordCount
|
>PULLL.G tWordCount
|
||||||
|
|
||||||
>PUSHL.G fLineCount
|
>PUSHL.G fLineCount
|
||||||
>PUSHL.G tLineCount
|
>PUSHL.G tLineCount
|
||||||
>FPU ADD32
|
>FPU uADD
|
||||||
>PULLL.G tLineCount
|
>PULLL.G tLineCount
|
||||||
|
|
||||||
>PUSHL.G fCharCount
|
>PUSHL.G fCharCount
|
||||||
>PUSHL.G tCharCount
|
>PUSHL.G tCharCount
|
||||||
>FPU ADD32
|
>FPU uADD
|
||||||
>PULLL.G tCharCount
|
>PULLL.G tCharCount
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -558,6 +580,7 @@ CS.RUN.CheckOpt ldy #1
|
||||||
|
|
||||||
.2 cmp OptionList,x
|
.2 cmp OptionList,x
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
|
|
|
@ -128,7 +128,7 @@ NEW
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* FPU Entry Point
|
* FPU Entry Point
|
||||||
*--------------------------------------
|
*-------------------------------------- uint16
|
||||||
FPU.wMUL .EQ 0
|
FPU.wMUL .EQ 0
|
||||||
FPU.wDIV .EQ 2
|
FPU.wDIV .EQ 2
|
||||||
FPU.wMOD .EQ 4
|
FPU.wMOD .EQ 4
|
||||||
|
@ -152,7 +152,7 @@ FPU.wxOR .EQ 30
|
||||||
|
|
||||||
FPU.wLAND .EQ 32
|
FPU.wLAND .EQ 32
|
||||||
FPU.wLOR .EQ 34
|
FPU.wLOR .EQ 34
|
||||||
*--------------------------------------
|
*-------------------------------------- int16
|
||||||
FPU.iMUL .EQ 36
|
FPU.iMUL .EQ 36
|
||||||
FPU.iDIV .EQ 38
|
FPU.iDIV .EQ 38
|
||||||
FPU.iMOD .EQ 40
|
FPU.iMOD .EQ 40
|
||||||
|
@ -176,7 +176,7 @@ FPU.iXOR .EQ 66
|
||||||
|
|
||||||
FPU.iLAND .EQ 68
|
FPU.iLAND .EQ 68
|
||||||
FPU.iLOR .EQ 70
|
FPU.iLOR .EQ 70
|
||||||
*--------------------------------------
|
*-------------------------------------- uint32
|
||||||
FPU.uMUL .EQ 72
|
FPU.uMUL .EQ 72
|
||||||
FPU.uDIV .EQ 74
|
FPU.uDIV .EQ 74
|
||||||
FPU.uMOD .EQ 76
|
FPU.uMOD .EQ 76
|
||||||
|
@ -200,7 +200,7 @@ FPU.uXOR .EQ 102
|
||||||
|
|
||||||
FPU.uLAND .EQ 104
|
FPU.uLAND .EQ 104
|
||||||
FPU.uLOR .EQ 106
|
FPU.uLOR .EQ 106
|
||||||
*--------------------------------------
|
*-------------------------------------- int32
|
||||||
FPU.lMUL .EQ 108
|
FPU.lMUL .EQ 108
|
||||||
FPU.lDIV .EQ 110
|
FPU.lDIV .EQ 110
|
||||||
FPU.lMOD .EQ 112
|
FPU.lMOD .EQ 112
|
||||||
|
@ -224,7 +224,7 @@ FPU.lXOR .EQ 138
|
||||||
|
|
||||||
FPU.lLAND .EQ 140
|
FPU.lLAND .EQ 140
|
||||||
FPU.lLOR .EQ 142
|
FPU.lLOR .EQ 142
|
||||||
*--------------------------------------
|
*-------------------------------------- float
|
||||||
FPU.fMUL .EQ 144
|
FPU.fMUL .EQ 144
|
||||||
FPU.fDIV .EQ 146
|
FPU.fDIV .EQ 146
|
||||||
FPU.fMOD .EQ 148
|
FPU.fMOD .EQ 148
|
||||||
|
|
|
@ -0,0 +1,571 @@
|
||||||
|
NEW
|
||||||
|
AUTO 3,1
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.ChTyp
|
||||||
|
CIFS2.ChTyp
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.ChMod
|
||||||
|
CIFS2.ChMod
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.FStat
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.FStat lda #MLI.E.BADCALL
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.Stat >STYA pPath resolved path
|
||||||
|
|
||||||
|
jsr ClearSocket
|
||||||
|
jsr MakeTrans2Reg
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
.1 lda SMB.QueryPathInfo,x
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
inx
|
||||||
|
cpx #SMB.QueryPathInfo.Len
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
jsr AppendPath
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
|
||||||
|
jsr SetT2ReqLenYA
|
||||||
|
|
||||||
|
pha
|
||||||
|
>PUSHB MountTable+3 hSocket
|
||||||
|
>PUSHW ZPReqPtr
|
||||||
|
|
||||||
|
pla
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
ldx #LIBTCPIP.Send
|
||||||
|
jsr GO.LIBTCPIP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jmp Sleep
|
||||||
|
|
||||||
|
.9 >RET 4
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.Stat jsr ReadSocket
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr GetRespData
|
||||||
|
|
||||||
|
ldy #S.NETBIOS+S.SMB.H.STATUS
|
||||||
|
lda (ZPRespPtr),y
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
lda #MLI.E.FNOTFND
|
||||||
|
bra .99
|
||||||
|
|
||||||
|
.1 >PULLW ZPPtr2 Stat Buffer
|
||||||
|
|
||||||
|
inc pStack Skip Filename
|
||||||
|
inc pStack
|
||||||
|
|
||||||
|
jsr GetRespDataOffset
|
||||||
|
jsr FileInfo2StatBuf
|
||||||
|
jsr StatBuf2Ptr2
|
||||||
|
|
||||||
|
lda hResp
|
||||||
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
|
stz CIFS.Status
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 cmp #E.NODATA
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
dec CIFS.Retries
|
||||||
|
beq .90
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.90 lda #MLI.E.IO
|
||||||
|
|
||||||
|
.99 sec
|
||||||
|
stz CIFS.Status
|
||||||
|
>RET 4
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.MKDir >STYA pPath resolved path
|
||||||
|
|
||||||
|
jsr MakeTrans2Reg
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
.1 lda SMB.CreateDirectory,x
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
inx
|
||||||
|
cpx #SMB.CreateDirectory.Len
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
jsr AppendPath
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
|
||||||
|
jsr SetT2ReqLenYA
|
||||||
|
|
||||||
|
pha
|
||||||
|
>PUSHB MountTable+3 hSocket
|
||||||
|
>PUSHW ZPReqPtr
|
||||||
|
pla
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
ldx #LIBTCPIP.Send
|
||||||
|
jsr GO.LIBTCPIP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jmp Sleep
|
||||||
|
|
||||||
|
.9 >RET 4
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.MKDir jsr ReadSocket
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr GetRespData
|
||||||
|
|
||||||
|
ldy #S.NETBIOS+S.SMB.H.STATUS
|
||||||
|
lda (ZPRespPtr),y
|
||||||
|
clc
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
lda #MLI.E.DUPFILE
|
||||||
|
sec
|
||||||
|
|
||||||
|
.8 jsr FreeRespData
|
||||||
|
|
||||||
|
stz CIFS.Status
|
||||||
|
>RET 4
|
||||||
|
|
||||||
|
.9 cmp #E.NODATA
|
||||||
|
bne .99
|
||||||
|
|
||||||
|
dec CIFS.Retries
|
||||||
|
beq .98
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.98 lda #MLI.E.IO
|
||||||
|
|
||||||
|
.99 sec
|
||||||
|
stz CIFS.Status
|
||||||
|
>RET 4
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.OpenDir >STYA pPath resolved path
|
||||||
|
|
||||||
|
>LDYAI S.FD.DIR
|
||||||
|
>SYSCALL2 GetMem
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA ZPPtr2
|
||||||
|
|
||||||
|
lda #S.FD.T.DIR
|
||||||
|
sta (ZPPtr2)
|
||||||
|
|
||||||
|
lda hHandler
|
||||||
|
ldy #S.FD.PFT
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
ldy #S.FD.DIR.EPB
|
||||||
|
sta (ZPPtr2),y EOF Flag
|
||||||
|
iny
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
iny
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
>PUSHW pPath
|
||||||
|
>PUSHWI 0
|
||||||
|
txa
|
||||||
|
>PUSHA
|
||||||
|
>SYSCALL2 mknod
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.OpenDir lda #MLI.E.BADCALL
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.ReadDir jsr GetPFD
|
||||||
|
|
||||||
|
jsr ClearSocket
|
||||||
|
|
||||||
|
ldy #S.FD.DIR.EPB
|
||||||
|
lda (pFD),y
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
lda #MLI.E.EOF
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
lda (pFD),y
|
||||||
|
iny
|
||||||
|
ora (pFD),y
|
||||||
|
bne CIFS.ReadDir.Next
|
||||||
|
|
||||||
|
jsr MakeTrans2Reg
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
.2 lda SMB.FindFirst2,x
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
inx
|
||||||
|
cpx #SMB.FindFirst2.Len
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
bra CIFS.ReadDir.Send
|
||||||
|
|
||||||
|
CIFS.ReadDir.Next
|
||||||
|
jsr MakeTrans2Reg
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
.2 lda SMB.FindNext2,x
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
inx
|
||||||
|
cpx #SMB.FindNext2.Len
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
phy
|
||||||
|
|
||||||
|
ldy #S.FD.DIR.FC+1
|
||||||
|
lda (pFD),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
lda (pFD),y
|
||||||
|
|
||||||
|
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7 Search ID
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
txa
|
||||||
|
iny
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
|
||||||
|
ply
|
||||||
|
CIFS.ReadDir.Send
|
||||||
|
lda (pPath)
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
jsr AppendPath
|
||||||
|
|
||||||
|
lda #'\'
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
|
||||||
|
.1 lda #'*'
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
lda #0
|
||||||
|
sta (ZPReqPtr),y
|
||||||
|
iny
|
||||||
|
|
||||||
|
jsr SetT2ReqLenYA
|
||||||
|
|
||||||
|
pha
|
||||||
|
|
||||||
|
>PUSHB MountTable+3 hSocket
|
||||||
|
>PUSHW ZPReqPtr
|
||||||
|
pla
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
ldx #LIBTCPIP.Send
|
||||||
|
jsr GO.LIBTCPIP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jmp Sleep
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.ReadDir jsr GetPFD
|
||||||
|
|
||||||
|
jsr ReadSocket
|
||||||
|
bcs .90
|
||||||
|
|
||||||
|
jsr GetRespData
|
||||||
|
|
||||||
|
ldy #S.NETBIOS+S.SMB.H.STATUS
|
||||||
|
lda (ZPRespPtr),y
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
.91 sec
|
||||||
|
lda #MLI.E.IO
|
||||||
|
bra .9
|
||||||
|
|
||||||
|
.1 ldy #S.FD.DIR.FC
|
||||||
|
lda (pFD),y
|
||||||
|
iny
|
||||||
|
ora (pFD),y
|
||||||
|
sta bFlag
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H+1 Search ID
|
||||||
|
lda (ZPRespPtr),y
|
||||||
|
tax
|
||||||
|
dey
|
||||||
|
ora (ZPRespPtr),y
|
||||||
|
beq .91
|
||||||
|
|
||||||
|
lda (ZPRespPtr),y
|
||||||
|
|
||||||
|
ldy #S.FD.DIR.FC
|
||||||
|
sta (pFD),y
|
||||||
|
iny
|
||||||
|
txa
|
||||||
|
sta (pFD),y
|
||||||
|
|
||||||
|
.2 jsr GetRespDataOffset
|
||||||
|
jsr CIFS2.ReadDir.GetBuf
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr GetRespDataOffset
|
||||||
|
jsr CIFS2.ReadDir.FillBuf
|
||||||
|
|
||||||
|
lda hResp
|
||||||
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
|
>LDYA BufPtr
|
||||||
|
ldx hBuf
|
||||||
|
|
||||||
|
stz CIFS.Status
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 stz CIFS.Status
|
||||||
|
|
||||||
|
jmp FreeRespData
|
||||||
|
|
||||||
|
.90 cmp #E.NODATA
|
||||||
|
bne .99
|
||||||
|
|
||||||
|
dec CIFS.Retries
|
||||||
|
beq .98
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.98 lda #MLI.E.IO
|
||||||
|
|
||||||
|
.99 stz CIFS.Status
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.ReadDir.GetBuf
|
||||||
|
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H Search Count
|
||||||
|
lda bFlag
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
|
||||||
|
.10 iny
|
||||||
|
iny
|
||||||
|
lda (ZPRespPtr),y End Of Search
|
||||||
|
phy
|
||||||
|
ldy #S.FD.DIR.EPB
|
||||||
|
sta (pFD),y
|
||||||
|
ply
|
||||||
|
|
||||||
|
dey
|
||||||
|
dey
|
||||||
|
|
||||||
|
lda (ZPRespPtr),y Search Count
|
||||||
|
beq .99
|
||||||
|
tax
|
||||||
|
|
||||||
|
lda #1 +Ending 0
|
||||||
|
sta ZPPtr2
|
||||||
|
stz ZPPtr2+1
|
||||||
|
|
||||||
|
.1 lda ZPPtr2
|
||||||
|
clc
|
||||||
|
adc #S.STAT
|
||||||
|
sta ZPPtr2
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
inc ZPPtr2+1
|
||||||
|
|
||||||
|
.2 lda ZPPtr1
|
||||||
|
clc
|
||||||
|
adc #22
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .3
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.3 lda (ZPPtr1) Filename Len
|
||||||
|
pha
|
||||||
|
sec
|
||||||
|
adc ZPPtr2
|
||||||
|
sta ZPPtr2
|
||||||
|
bcc .4
|
||||||
|
|
||||||
|
inc ZPPtr2+1
|
||||||
|
|
||||||
|
.4 pla
|
||||||
|
inc
|
||||||
|
sec
|
||||||
|
adc ZPPtr1
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .5
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.5 dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
>LDYA ZPPtr2
|
||||||
|
>SYSCALL2 GetMem
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA BufPtr
|
||||||
|
>STYA ZPPtr2
|
||||||
|
stx hBuf
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
|
||||||
|
.99 lda #MLI.E.EOF
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.ReadDir.FillBuf
|
||||||
|
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H Search Count
|
||||||
|
lda bFlag
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
|
||||||
|
.10 lda (ZPRespPtr),y
|
||||||
|
tax
|
||||||
|
|
||||||
|
.1 jsr FileInfo2StatBuf
|
||||||
|
|
||||||
|
lda ZPPtr1
|
||||||
|
sec skip Filename Len
|
||||||
|
adc #22
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.2 ldy #$ff
|
||||||
|
|
||||||
|
.3 iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
tya
|
||||||
|
sec
|
||||||
|
adc ZPPtr1
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .4
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.4 tya
|
||||||
|
sec
|
||||||
|
adc ZPPtr2
|
||||||
|
sta ZPPtr2
|
||||||
|
bcc .5
|
||||||
|
|
||||||
|
inc ZPPtr2+1
|
||||||
|
|
||||||
|
.5 jsr StatBuf2Ptr2
|
||||||
|
|
||||||
|
lda #S.STAT
|
||||||
|
clc
|
||||||
|
adc ZPPtr2
|
||||||
|
sta ZPPtr2
|
||||||
|
bcc .7
|
||||||
|
|
||||||
|
inc ZPPtr2+1
|
||||||
|
|
||||||
|
.7 dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPPtr2)
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.CloseDir tax
|
||||||
|
|
||||||
|
lda Nod.Table.hName-2,x
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
phx
|
||||||
|
|
||||||
|
stz Nod.Table.hName-2,x
|
||||||
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
|
plx
|
||||||
|
|
||||||
|
.1 lda Nod.Table.hFD-2,x
|
||||||
|
stz Nod.Table.hFD-2,x
|
||||||
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
|
stz CIFS.Status
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS2.CloseDir lda #MLI.E.INVPATH
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.ChOwn
|
||||||
|
CIFS2.ChOwn
|
||||||
|
lda #MLI.E.BADCALL
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.FOpen
|
||||||
|
|
||||||
|
|
||||||
|
CIFS2.FOpen
|
||||||
|
|
||||||
|
lda #MLI.E.BADCALL
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CIFS.FClose
|
||||||
|
CIFS2.FClose
|
||||||
|
CIFS.FRead
|
||||||
|
CIFS2.FRead
|
||||||
|
CIFS.FWrite
|
||||||
|
CIFS2.FWrite
|
||||||
|
CIFS.FFlush
|
||||||
|
CIFS2.FFlush
|
||||||
|
CIFS.FSeek
|
||||||
|
CIFS2.FSeek
|
||||||
|
CIFS.FTell
|
||||||
|
CIFS2.FTell
|
||||||
|
CIFS.FEOF
|
||||||
|
CIFS2.FEOF
|
||||||
|
CIFS.Remove
|
||||||
|
CIFS2.Remove
|
||||||
|
CIFS.Rename
|
||||||
|
CIFS2.Rename
|
||||||
|
lda #MLI.E.BADCALL
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE usr/src/lib/libcifs.io.s
|
||||||
|
LOAD usr/src/lib/libcifs.s
|
||||||
|
ASM
|
|
@ -62,33 +62,79 @@ J.CIFS .DA CIFS.ChTyp
|
||||||
.DA CIFS.FStat
|
.DA CIFS.FStat
|
||||||
.DA CIFS.Stat
|
.DA CIFS.Stat
|
||||||
.DA CIFS.MKDir
|
.DA CIFS.MKDir
|
||||||
.DA CIFS.MKNod
|
.DA CIFS.BADCALL MKNod
|
||||||
.DA CIFS.MKFIFO
|
.DA CIFS.BADCALL MKFIFO
|
||||||
.DA CIFS.Pipe
|
.DA CIFS.BADCALL Pipe
|
||||||
|
|
||||||
.DA CIFS.OpenDir
|
.DA CIFS.OpenDir
|
||||||
.DA CIFS.ReadDir
|
.DA CIFS.ReadDir
|
||||||
.DA CIFS.CloseDir
|
.DA CIFS.CloseDir
|
||||||
.DA CIFS.Open
|
|
||||||
.DA CIFS.Close
|
.DA CIFS.BADCALL Open
|
||||||
.DA CIFS.Read
|
.DA CIFS.BADCALL Close
|
||||||
.DA CIFS.Write
|
.DA CIFS.BADCALL Read
|
||||||
|
.DA CIFS.BADCALL Write
|
||||||
.DA CIFS.ChOwn
|
.DA CIFS.ChOwn
|
||||||
|
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
|
||||||
|
.DA CIFS.FOpen
|
||||||
|
.DA CIFS.FClose
|
||||||
|
.DA CIFS.FRead
|
||||||
|
.DA CIFS.FWrite
|
||||||
|
.DA CIFS.FFlush
|
||||||
|
.DA CIFS.FSeek
|
||||||
|
.DA CIFS.FTell
|
||||||
|
.DA CIFS.FEOF
|
||||||
|
.DA CIFS.Remove
|
||||||
|
.DA CIFS.Rename
|
||||||
|
*--------------------------------------
|
||||||
J.CIFS2 .DA CIFS2.ChTyp
|
J.CIFS2 .DA CIFS2.ChTyp
|
||||||
.DA CIFS2.ChMod
|
.DA CIFS2.ChMod
|
||||||
.DA CIFS2.FStat
|
.DA CIFS2.FStat
|
||||||
.DA CIFS2.Stat
|
.DA CIFS2.Stat
|
||||||
.DA CIFS2.MKDir
|
.DA CIFS2.MKDir
|
||||||
.DA CIFS2.MKNod
|
.DA CIFS.BADCALL MKNod
|
||||||
.DA CIFS2.MKFIFO
|
.DA CIFS.BADCALL MKFIFO
|
||||||
.DA CIFS2.Pipe
|
.DA CIFS.BADCALL Pipe
|
||||||
|
|
||||||
.DA CIFS2.OpenDir
|
.DA CIFS2.OpenDir
|
||||||
.DA CIFS2.ReadDir
|
.DA CIFS2.ReadDir
|
||||||
.DA CIFS2.CloseDir
|
.DA CIFS2.CloseDir
|
||||||
.DA CIFS2.Open
|
|
||||||
.DA CIFS2.Close
|
.DA CIFS.BADCALL Open
|
||||||
.DA CIFS2.Read
|
.DA CIFS.BADCALL Close
|
||||||
.DA CIFS2.Write
|
.DA CIFS.BADCALL Read
|
||||||
|
.DA CIFS.BADCALL Write
|
||||||
.DA CIFS2.ChOwn
|
.DA CIFS2.ChOwn
|
||||||
|
|
||||||
|
.DA CIFS.BADCALL FPutC...
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL
|
||||||
|
.DA CIFS.BADCALL ...UngetC
|
||||||
|
|
||||||
|
.DA CIFS2.FOpen
|
||||||
|
.DA CIFS2.FClose
|
||||||
|
.DA CIFS2.FRead
|
||||||
|
.DA CIFS2.FWrite
|
||||||
|
.DA CIFS2.FFlush
|
||||||
|
.DA CIFS2.FSeek
|
||||||
|
.DA CIFS2.FTell
|
||||||
|
.DA CIFS2.FEOF
|
||||||
|
.DA CIFS2.Remove
|
||||||
|
.DA CIFS2.Rename
|
||||||
|
*--------------------------------------
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
L.NETBIOS .DA NETBIOS
|
L.NETBIOS .DA NETBIOS
|
||||||
.DA 0
|
.DA 0
|
||||||
|
@ -134,10 +180,11 @@ CIFS.Negotiate lda (pStack)
|
||||||
dec
|
dec
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
>PUSHWI SMB.NegReq.end-NETBIOS
|
ldy #1 hSocket
|
||||||
>PUSHW L.NETBIOS
|
|
||||||
ldy #1+4 hSocket
|
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHW L.NETBIOS
|
||||||
|
>PUSHWI SMB.NegReq.end-NETBIOS
|
||||||
|
|
||||||
ldx #LIBTCPIP.Send
|
ldx #LIBTCPIP.Send
|
||||||
jsr GO.LIBTCPIP
|
jsr GO.LIBTCPIP
|
||||||
|
@ -266,10 +313,17 @@ CIFS.SessionSetup
|
||||||
|
|
||||||
jsr SetReqLenYAtA
|
jsr SetReqLenYAtA
|
||||||
|
|
||||||
>PUSHYA
|
phy
|
||||||
>PUSHW ZPReqPtr
|
pha
|
||||||
ldy #6+4 hSocket
|
|
||||||
|
ldy #6 hSocket
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHW ZPReqPtr
|
||||||
|
|
||||||
|
pla
|
||||||
|
ply
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
ldx #LIBTCPIP.Send
|
ldx #LIBTCPIP.Send
|
||||||
jsr GO.LIBTCPIP
|
jsr GO.LIBTCPIP
|
||||||
|
@ -391,10 +445,17 @@ CIFS.TreeConnect
|
||||||
|
|
||||||
jsr SetReqLenYAtA
|
jsr SetReqLenYAtA
|
||||||
|
|
||||||
>PUSHYA
|
phy
|
||||||
>PUSHW ZPReqPtr
|
pha
|
||||||
ldy #4+4 hSocket
|
|
||||||
|
ldy #4 hSocket
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHW ZPReqPtr
|
||||||
|
|
||||||
|
pla
|
||||||
|
ply
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
ldx #LIBTCPIP.Send
|
ldx #LIBTCPIP.Send
|
||||||
jsr GO.LIBTCPIP
|
jsr GO.LIBTCPIP
|
||||||
|
@ -504,556 +565,7 @@ CIFS.CallBack bit CIFS.Status
|
||||||
ply
|
ply
|
||||||
jmp (J.CIFS2,x)
|
jmp (J.CIFS2,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CIFS.ChTyp
|
.INB usr/src/lib/libcifs.io.s
|
||||||
CIFS2.ChTyp
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.ChMod
|
|
||||||
CIFS2.ChMod
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.FStat
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.FStat lda #MLI.E.BADCALL
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.Stat >STYA pPath resolved path
|
|
||||||
|
|
||||||
jsr ClearSocket
|
|
||||||
jsr MakeTrans2Reg
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.1 lda SMB.QueryPathInfo,x
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
inx
|
|
||||||
cpx #SMB.QueryPathInfo.Len
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
jsr AppendPath
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
|
|
||||||
jsr SetT2ReqLenYA
|
|
||||||
|
|
||||||
>PUSHYA
|
|
||||||
>PUSHW ZPReqPtr
|
|
||||||
lda MountTable+3 hSocket
|
|
||||||
|
|
||||||
ldx #LIBTCPIP.Send
|
|
||||||
jsr GO.LIBTCPIP
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jmp Sleep
|
|
||||||
|
|
||||||
.9 >RET 4
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.Stat jsr ReadSocket
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr GetRespData
|
|
||||||
|
|
||||||
ldy #S.NETBIOS+S.SMB.H.STATUS
|
|
||||||
lda (ZPRespPtr),y
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
lda #MLI.E.FNOTFND
|
|
||||||
bra .99
|
|
||||||
|
|
||||||
.1 >PULLW ZPPtr2 Stat Buffer
|
|
||||||
|
|
||||||
inc pStack Skip Filename
|
|
||||||
inc pStack
|
|
||||||
|
|
||||||
jsr GetRespDataOffset
|
|
||||||
jsr FileInfo2StatBuf
|
|
||||||
jsr StatBuf2Ptr2
|
|
||||||
|
|
||||||
lda hResp
|
|
||||||
>SYSCALL2 FreeMem
|
|
||||||
|
|
||||||
stz CIFS.Status
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 cmp #E.NODATA
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
dec CIFS.Retries
|
|
||||||
beq .90
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.90 lda #MLI.E.IO
|
|
||||||
|
|
||||||
.99 sec
|
|
||||||
stz CIFS.Status
|
|
||||||
>RET 4
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.MKDir >STYA pPath resolved path
|
|
||||||
|
|
||||||
jsr MakeTrans2Reg
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.1 lda SMB.CreateDirectory,x
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
inx
|
|
||||||
cpx #SMB.CreateDirectory.Len
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
jsr AppendPath
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
|
|
||||||
jsr SetT2ReqLenYA
|
|
||||||
|
|
||||||
>PUSHYA
|
|
||||||
>PUSHW ZPReqPtr
|
|
||||||
lda MountTable+3 hSocket
|
|
||||||
|
|
||||||
ldx #LIBTCPIP.Send
|
|
||||||
jsr GO.LIBTCPIP
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jmp Sleep
|
|
||||||
|
|
||||||
.9 >RET 4
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.MKDir jsr ReadSocket
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr GetRespData
|
|
||||||
|
|
||||||
ldy #S.NETBIOS+S.SMB.H.STATUS
|
|
||||||
lda (ZPRespPtr),y
|
|
||||||
clc
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
lda #MLI.E.DUPFILE
|
|
||||||
sec
|
|
||||||
|
|
||||||
.8 jsr FreeRespData
|
|
||||||
|
|
||||||
stz CIFS.Status
|
|
||||||
>RET 4
|
|
||||||
|
|
||||||
.9 cmp #E.NODATA
|
|
||||||
bne .99
|
|
||||||
|
|
||||||
dec CIFS.Retries
|
|
||||||
beq .98
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.98 lda #MLI.E.IO
|
|
||||||
|
|
||||||
.99 sec
|
|
||||||
stz CIFS.Status
|
|
||||||
>RET 4
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.MKNod
|
|
||||||
CIFS2.MKNod
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.MKFIFO
|
|
||||||
CIFS2.MKFIFO
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.Pipe
|
|
||||||
CIFS2.Pipe lda #MLI.E.BADCALL
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.OpenDir >STYA pPath resolved path
|
|
||||||
|
|
||||||
>LDYAI S.FD.DIR
|
|
||||||
>SYSCALL2 GetMem
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA ZPPtr2
|
|
||||||
|
|
||||||
lda #S.FD.T.DIR
|
|
||||||
sta (ZPPtr2)
|
|
||||||
|
|
||||||
lda hHandler
|
|
||||||
ldy #S.FD.HANDLER
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
ldy #S.FD.DIR.EPB
|
|
||||||
sta (ZPPtr2),y EOF Flag
|
|
||||||
iny
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
iny
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
|
|
||||||
>PUSHW pPath
|
|
||||||
>PUSHWI 0
|
|
||||||
txa
|
|
||||||
>PUSHA
|
|
||||||
>SYSCALL2 mknod
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.OpenDir lda #MLI.E.BADCALL
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.ReadDir jsr GetPFD
|
|
||||||
|
|
||||||
jsr ClearSocket
|
|
||||||
|
|
||||||
ldy #S.FD.DIR.EPB
|
|
||||||
lda (pFD),y
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
lda #MLI.E.EOF
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 iny
|
|
||||||
lda (pFD),y
|
|
||||||
iny
|
|
||||||
ora (pFD),y
|
|
||||||
bne CIFS.ReadDir.Next
|
|
||||||
|
|
||||||
jsr MakeTrans2Reg
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.2 lda SMB.FindFirst2,x
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
inx
|
|
||||||
cpx #SMB.FindFirst2.Len
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
bra CIFS.ReadDir.Send
|
|
||||||
|
|
||||||
CIFS.ReadDir.Next
|
|
||||||
jsr MakeTrans2Reg
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.2 lda SMB.FindNext2,x
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
inx
|
|
||||||
cpx #SMB.FindNext2.Len
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
phy
|
|
||||||
|
|
||||||
ldy #S.FD.DIR.FC+1
|
|
||||||
lda (pFD),y
|
|
||||||
tax
|
|
||||||
dey
|
|
||||||
lda (pFD),y
|
|
||||||
|
|
||||||
ldy #S.NETBIOS+S.SMB.H+SMB.Trans2.H.Len+7 Search ID
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
txa
|
|
||||||
iny
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
|
|
||||||
ply
|
|
||||||
CIFS.ReadDir.Send
|
|
||||||
lda (pPath)
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
jsr AppendPath
|
|
||||||
|
|
||||||
lda #'\'
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
|
|
||||||
.1 lda #'*'
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
lda #0
|
|
||||||
sta (ZPReqPtr),y
|
|
||||||
iny
|
|
||||||
|
|
||||||
jsr SetT2ReqLenYA
|
|
||||||
|
|
||||||
>PUSHYA
|
|
||||||
>PUSHW ZPReqPtr
|
|
||||||
lda MountTable+3 hSocket
|
|
||||||
|
|
||||||
ldx #LIBTCPIP.Send
|
|
||||||
jsr GO.LIBTCPIP
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jmp Sleep
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.ReadDir jsr GetPFD
|
|
||||||
|
|
||||||
jsr ReadSocket
|
|
||||||
bcs .90
|
|
||||||
|
|
||||||
jsr GetRespData
|
|
||||||
|
|
||||||
ldy #S.NETBIOS+S.SMB.H.STATUS
|
|
||||||
lda (ZPRespPtr),y
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
.91 sec
|
|
||||||
lda #MLI.E.IO
|
|
||||||
bra .9
|
|
||||||
|
|
||||||
.1 ldy #S.FD.DIR.FC
|
|
||||||
lda (pFD),y
|
|
||||||
iny
|
|
||||||
ora (pFD),y
|
|
||||||
sta bFlag
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H+1 Search ID
|
|
||||||
lda (ZPRespPtr),y
|
|
||||||
tax
|
|
||||||
dey
|
|
||||||
ora (ZPRespPtr),y
|
|
||||||
beq .91
|
|
||||||
|
|
||||||
lda (ZPRespPtr),y
|
|
||||||
|
|
||||||
ldy #S.FD.DIR.FC
|
|
||||||
sta (pFD),y
|
|
||||||
iny
|
|
||||||
txa
|
|
||||||
sta (pFD),y
|
|
||||||
|
|
||||||
.2 jsr GetRespDataOffset
|
|
||||||
jsr CIFS2.ReadDir.GetBuf
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr GetRespDataOffset
|
|
||||||
jsr CIFS2.ReadDir.FillBuf
|
|
||||||
|
|
||||||
lda hResp
|
|
||||||
>SYSCALL2 FreeMem
|
|
||||||
|
|
||||||
>LDYA BufPtr
|
|
||||||
ldx hBuf
|
|
||||||
|
|
||||||
stz CIFS.Status
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 stz CIFS.Status
|
|
||||||
|
|
||||||
jmp FreeRespData
|
|
||||||
|
|
||||||
.90 cmp #E.NODATA
|
|
||||||
bne .99
|
|
||||||
|
|
||||||
dec CIFS.Retries
|
|
||||||
beq .98
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.98 lda #MLI.E.IO
|
|
||||||
|
|
||||||
.99 stz CIFS.Status
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.ReadDir.GetBuf
|
|
||||||
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H Search Count
|
|
||||||
lda bFlag
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
|
|
||||||
.10 iny
|
|
||||||
iny
|
|
||||||
lda (ZPRespPtr),y End Of Search
|
|
||||||
phy
|
|
||||||
ldy #S.FD.DIR.EPB
|
|
||||||
sta (pFD),y
|
|
||||||
ply
|
|
||||||
|
|
||||||
dey
|
|
||||||
dey
|
|
||||||
|
|
||||||
lda (ZPRespPtr),y Search Count
|
|
||||||
beq .99
|
|
||||||
tax
|
|
||||||
|
|
||||||
lda #1 +Ending 0
|
|
||||||
sta ZPPtr2
|
|
||||||
stz ZPPtr2+1
|
|
||||||
|
|
||||||
.1 lda ZPPtr2
|
|
||||||
clc
|
|
||||||
adc #S.STAT
|
|
||||||
sta ZPPtr2
|
|
||||||
bcc .2
|
|
||||||
|
|
||||||
inc ZPPtr2+1
|
|
||||||
|
|
||||||
.2 lda ZPPtr1
|
|
||||||
clc
|
|
||||||
adc #22
|
|
||||||
sta ZPPtr1
|
|
||||||
bcc .3
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
|
|
||||||
.3 lda (ZPPtr1) Filename Len
|
|
||||||
pha
|
|
||||||
sec
|
|
||||||
adc ZPPtr2
|
|
||||||
sta ZPPtr2
|
|
||||||
bcc .4
|
|
||||||
|
|
||||||
inc ZPPtr2+1
|
|
||||||
|
|
||||||
.4 pla
|
|
||||||
inc
|
|
||||||
sec
|
|
||||||
adc ZPPtr1
|
|
||||||
sta ZPPtr1
|
|
||||||
bcc .5
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
|
|
||||||
.5 dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
>LDYA ZPPtr2
|
|
||||||
>SYSCALL2 GetMem
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA BufPtr
|
|
||||||
>STYA ZPPtr2
|
|
||||||
stx hBuf
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
|
|
||||||
.99 lda #MLI.E.EOF
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.ReadDir.FillBuf
|
|
||||||
ldy #S.NETBIOS+S.SMB.H+S.TRANS2.H Search Count
|
|
||||||
lda bFlag
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
|
|
||||||
.10 lda (ZPRespPtr),y
|
|
||||||
tax
|
|
||||||
|
|
||||||
.1 jsr FileInfo2StatBuf
|
|
||||||
|
|
||||||
lda ZPPtr1
|
|
||||||
sec skip Filename Len
|
|
||||||
adc #22
|
|
||||||
sta ZPPtr1
|
|
||||||
bcc .2
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
|
|
||||||
.2 ldy #$ff
|
|
||||||
|
|
||||||
.3 iny
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sta (ZPPtr2),y
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
tya
|
|
||||||
sec
|
|
||||||
adc ZPPtr1
|
|
||||||
sta ZPPtr1
|
|
||||||
bcc .4
|
|
||||||
|
|
||||||
inc ZPPtr1+1
|
|
||||||
|
|
||||||
.4 tya
|
|
||||||
sec
|
|
||||||
adc ZPPtr2
|
|
||||||
sta ZPPtr2
|
|
||||||
bcc .5
|
|
||||||
|
|
||||||
inc ZPPtr2+1
|
|
||||||
|
|
||||||
.5 jsr StatBuf2Ptr2
|
|
||||||
|
|
||||||
lda #S.STAT
|
|
||||||
clc
|
|
||||||
adc ZPPtr2
|
|
||||||
sta ZPPtr2
|
|
||||||
bcc .7
|
|
||||||
|
|
||||||
inc ZPPtr2+1
|
|
||||||
|
|
||||||
.7 dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta (ZPPtr2)
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.CloseDir tax
|
|
||||||
|
|
||||||
lda Nod.Table.hName-2,x
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
phx
|
|
||||||
|
|
||||||
stz Nod.Table.hName-2,x
|
|
||||||
>SYSCALL2 FreeMem
|
|
||||||
|
|
||||||
plx
|
|
||||||
|
|
||||||
.1 lda Nod.Table.hFD-2,x
|
|
||||||
stz Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL2 FreeMem
|
|
||||||
|
|
||||||
stz CIFS.Status
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS2.CloseDir lda #MLI.E.INVPATH
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.Open
|
|
||||||
CIFS2.Open
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.Close
|
|
||||||
CIFS2.Close
|
|
||||||
lda #MLI.E.INVPATH
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.Read
|
|
||||||
CIFS2.Read
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.Write
|
|
||||||
CIFS2.Write
|
|
||||||
*--------------------------------------
|
|
||||||
CIFS.ChOwn
|
|
||||||
CIFS2.ChOwn
|
|
||||||
lda #MLI.E.BADCALL
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetPFD tax
|
GetPFD tax
|
||||||
phx
|
phx
|
||||||
|
@ -1205,7 +717,7 @@ Sleep ldy #S.PS.PID
|
||||||
dec CIFS.Status
|
dec CIFS.Status
|
||||||
|
|
||||||
stz CIFS.Retries
|
stz CIFS.Retries
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -1370,17 +882,21 @@ StatBuf2Ptr2 ldy #S.STAT-1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ClearSocket jsr ReadSocket
|
ClearSocket jsr ReadSocket
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
>SYSCALL2 FreeMem
|
>SYSCALL2 FreeMem
|
||||||
bra ClearSocket
|
bra ClearSocket
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ReadSocket lda MountTable+3 hSocket
|
ReadSocket lda MountTable+3 hSocket
|
||||||
ldx #LIBTCPIP.Recv
|
ldx #LIBTCPIP.Recv
|
||||||
GO.LIBTCPIP jmp (pLIBTCPIP)
|
GO.LIBTCPIP jmp (pLIBTCPIP)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CIFS.BADCALL lda #MLI.E.BADCALL
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NETBIOS .DA #0 DIRECT TCP TRANSPORT
|
NETBIOS .DA #0 DIRECT TCP TRANSPORT
|
||||||
|
@ -1470,7 +986,7 @@ SMB.ComRead.H .DA #10 WORD COUNT
|
||||||
.HS 00000000 Timeout
|
.HS 00000000 Timeout
|
||||||
.HS 0000 Remaining
|
.HS 0000 Remaining
|
||||||
.HS 0000 ByteCount
|
.HS 0000 ByteCount
|
||||||
SMB.ComRead.H.Len .EQ *-SMB.ComRead.H
|
SMB.ComRead.H.Len .EQ *-SMB.ComRead.H
|
||||||
*-------------------------------------- #$2F
|
*-------------------------------------- #$2F
|
||||||
SMB.ComWrite.H .DA #12 WORD COUNT
|
SMB.ComWrite.H .DA #12 WORD COUNT
|
||||||
.HS FF000000 NO MORE CMD
|
.HS FF000000 NO MORE CMD
|
||||||
|
@ -1481,18 +997,18 @@ SMB.ComWrite.H .DA #12 WORD COUNT
|
||||||
.BS 2 Remaining
|
.BS 2 Remaining
|
||||||
.HS 0000 Reserved
|
.HS 0000 Reserved
|
||||||
.BS 2 DataLength
|
.BS 2 DataLength
|
||||||
.BS 2 DataOffset
|
.BS 2 DataOffset
|
||||||
SMB.ComWrite.H.Len .EQ *-SMB.ComWrite.H
|
SMB.ComWrite.H.Len .EQ *-SMB.ComWrite.H
|
||||||
.BS 2 ByteCount
|
.BS 2 ByteCount
|
||||||
SMB.ComWrite.T
|
SMB.ComWrite.T
|
||||||
* DATA.....
|
* DATA.....
|
||||||
SMB.ComWrite.T.Len .EQ *-SMB.ComWrite.T
|
SMB.ComWrite.T.Len .EQ *-SMB.ComWrite.T
|
||||||
*-------------------------------------- #$04
|
*-------------------------------------- #$04
|
||||||
SMB.ComClose.H .DA #3 WORD COUNT
|
SMB.ComClose.H .DA #3 WORD COUNT
|
||||||
.BS 2 FID
|
.BS 2 FID
|
||||||
.HS 00000000 LastTimeModified
|
.HS 00000000 LastTimeModified
|
||||||
.HS 0000 ByteCount
|
.HS 0000 ByteCount
|
||||||
SMB.ComClose.H.Len .EQ *-SMB.ComClose.H
|
SMB.ComClose.H.Len .EQ *-SMB.ComClose.H
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SMB.Trans2.H .DA #15 WORD COUNT
|
SMB.Trans2.H .DA #15 WORD COUNT
|
||||||
.BS 2 TotalParamCount
|
.BS 2 TotalParamCount
|
||||||
|
@ -1518,11 +1034,11 @@ SMB.Open2 .DA 0 TRANS2_OPEN2
|
||||||
.HS 0000 Flags
|
.HS 0000 Flags
|
||||||
.BS 2 Access Mode
|
.BS 2 Access Mode
|
||||||
.HS 0000 Reserved1
|
.HS 0000 Reserved1
|
||||||
.BS 2 FileAttributes
|
.BS 2 FileAttributes
|
||||||
.HS 00000000 CreationTime
|
.HS 00000000 CreationTime
|
||||||
.BS 2 OpenMode
|
.BS 2 OpenMode
|
||||||
.HS 00000000 AllocationSize
|
.HS 00000000 AllocationSize
|
||||||
.HS 00000000000000000000 Reserved
|
.HS 00000000000000000000 Reserved
|
||||||
* .AZ "filename"
|
* .AZ "filename"
|
||||||
SMB.Open2.Len .EQ *-SMB.Open2
|
SMB.Open2.Len .EQ *-SMB.Open2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # AARP.Clear
|
* # AARP.Clear
|
||||||
* Clear AARP Cache
|
* Clear AARP Cache
|
||||||
|
@ -328,6 +327,6 @@ AARP.Send >STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
jmp FRM.Send.IOCTL
|
jmp FRM.Send.IOCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBETALK.S.AARP
|
SAVE usr/src/lib/libetalk.s.aarp
|
||||||
LOAD USR/SRC/LIB/LIBETALK.S
|
LOAD usr/src/lib/libetalk.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.SET >PULLW ZPTmpPtr1 ETKCFG
|
CFG.SET >PULLW ZPTmpPtr1 ETKCFG
|
||||||
|
|
||||||
|
@ -29,6 +28,6 @@ CFG.GET >LDYA L.ETKCFG
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBETALK.S.CFG
|
SAVE usr/src/lib/libetalk.s.cfg
|
||||||
LOAD USR/SRC/LIB/LIBETALK.S
|
LOAD usr/src/lib/libetalk.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DDP.IN clc
|
DDP.IN clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBETALK.S.DDP
|
SAVE usr/src/lib/libetalk.s.ddp
|
||||||
LOAD USR/SRC/LIB/LIBETALK.S
|
LOAD usr/src/lib/libetalk.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBETALK.S.ELAP
|
SAVE usr/src/lib/libetalk.s.elap
|
||||||
LOAD USR/SRC/LIB/LIBETALK.S
|
LOAD usr/src/lib/libetalk.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FRM.Send ldx #3
|
FRM.Send ldx #3
|
||||||
|
|
||||||
|
@ -17,6 +17,6 @@ FRM.Send.IOCTL >PUSHB ETKCFG+S.NETCFG.DevID
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBETALK.S.FRM
|
SAVE usr/src/lib/libetalk.s.frm
|
||||||
LOAD USR/SRC/LIB/LIBETALK.S
|
LOAD usr/src/lib/libetalk.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBETALK.S.RTMP
|
SAVE usr/src/lib/libetalk.s.rtmp
|
||||||
LOAD USR/SRC/LIB/LIBETALK.S
|
LOAD usr/src/lib/libetalk.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -5,12 +5,12 @@ NEW
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF lib/libetalk
|
.TF lib/libetalk
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB inc/macros.i
|
||||||
.INB INC/A2OSX.I
|
.INB inc/a2osx.i
|
||||||
.INB INC/NIC.I
|
.INB inc/nic.i
|
||||||
.INB INC/ETH.I
|
.INB inc/eth.i
|
||||||
.INB INC/LIB.NET.I
|
.INB inc/lib.net.i
|
||||||
.INB INC/LIBETALK.I
|
.INB inc/libetalk.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPFrameInPtr .EQ ZPLIB
|
ZPFrameInPtr .EQ ZPLIB
|
||||||
ZPFrameInLen .EQ ZPLIB+2
|
ZPFrameInLen .EQ ZPLIB+2
|
||||||
|
@ -117,12 +117,12 @@ PULSE and #S.EVT.F.T1SEC
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB USR/SRC/LIB/LIBETALK.S.AARP
|
.INB usr/src/lib/libetalk.s.aarp
|
||||||
.INB USR/SRC/LIB/LIBETALK.S.CFG
|
.INB usr/src/lib/libetalk.s.cfg
|
||||||
.INB USR/SRC/LIB/LIBETALK.S.DDP
|
.INB usr/src/lib/libetalk.s.ddp
|
||||||
.INB USR/SRC/LIB/LIBETALK.S.ELAP
|
.INB usr/src/lib/libetalk.s.elap
|
||||||
.INB USR/SRC/LIB/LIBETALK.S.FRM
|
.INB usr/src/lib/libetalk.s.frm
|
||||||
.INB USR/SRC/LIB/LIBETALK.S.RTMP
|
.INB usr/src/lib/libetalk.s.rtmp
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -169,5 +169,5 @@ TmpDWord .BS 4
|
||||||
TmpOffset .BS 2
|
TmpOffset .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/LIB/LIBETALK.S
|
SAVE usr/src/lib/libetalk.s
|
||||||
ASM
|
ASM
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ARP.Clear
|
* # ARP.Clear
|
||||||
* Clear ARP Cache
|
* Clear ARP Cache
|
||||||
* **In:**
|
* **In:**
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
ARP.Clear jsr ARP.GetCache
|
ARP.Clear jsr ARP.GetCache
|
||||||
|
|
||||||
|
@ -27,7 +26,7 @@ ARP.Clear.I lda #0
|
||||||
* PUSHW PTR to IP
|
* PUSHW PTR to IP
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: hit: MAC filled
|
* CC: hit: MAC filled
|
||||||
* CS: missed
|
* CS: missed
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
ARP.Query jsr ARP.GetIP
|
ARP.Query jsr ARP.GetIP
|
||||||
|
|
||||||
|
@ -55,7 +54,7 @@ ARP.Query jsr ARP.GetIP
|
||||||
ARP.Add jsr ARP.GetIP
|
ARP.Add jsr ARP.GetIP
|
||||||
|
|
||||||
>PULLW ZPPtrMAC MAC
|
>PULLW ZPPtrMAC MAC
|
||||||
|
|
||||||
ldy #5
|
ldy #5
|
||||||
|
|
||||||
.2 lda (ZPPtrMAC),y
|
.2 lda (ZPPtrMAC),y
|
||||||
|
@ -199,8 +198,8 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP
|
||||||
jsr ARP.ADD.I
|
jsr ARP.ADD.I
|
||||||
|
|
||||||
.9 lda #ERR.ARP.PENDING
|
.9 lda #ERR.ARP.PENDING
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ARP.FIND.BY.IP jsr ARP.GetCache
|
ARP.FIND.BY.IP jsr ARP.GetCache
|
||||||
|
|
||||||
|
@ -215,7 +214,7 @@ ARP.FIND.BY.IP jsr ARP.GetCache
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
iny
|
iny
|
||||||
cpy #S.ARPCACHE.IP+4
|
cpy #S.ARPCACHE.IP+4
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
@ -308,18 +307,18 @@ ARP.NextCache lda ZPCachePtr
|
||||||
sta ZPCachePtr
|
sta ZPCachePtr
|
||||||
bcc .8
|
bcc .8
|
||||||
inc ZPCachePtr+1
|
inc ZPCachePtr+1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ARP.GetIP >PULLW ZPPtrIP
|
ARP.GetIP >PULLW ZPPtrIP
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
|
|
||||||
.1 lda (ZPPtrIP),y
|
.1 lda (ZPPtrIP),y
|
||||||
sta ARP.TmpCache+S.ARPCACHE.IP,y
|
sta ARP.TmpCache+S.ARPCACHE.IP,y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ARP.AddFromFrameInPtr
|
ARP.AddFromFrameInPtr
|
||||||
|
@ -328,7 +327,7 @@ ARP.AddFromFrameInPtr
|
||||||
|
|
||||||
ldy #S.ETH.SRCMAC+5
|
ldy #S.ETH.SRCMAC+5
|
||||||
jsr ARP.GetMacFromFrameInPtrY
|
jsr ARP.GetMacFromFrameInPtrY
|
||||||
|
|
||||||
lda #K.ARP.TTL
|
lda #K.ARP.TTL
|
||||||
sta ARP.TmpCache+S.ARPCACHE.TTL
|
sta ARP.TmpCache+S.ARPCACHE.TTL
|
||||||
lda /K.ARP.TTL
|
lda /K.ARP.TTL
|
||||||
|
@ -355,7 +354,7 @@ ARP.GetMacFromFrameInPtrY
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ARP.Send >STYA IOCTL+S.IOCTL.BUFPTR
|
ARP.Send >STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
||||||
|
|
||||||
|
@ -43,7 +42,7 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
||||||
ldx #IOCTL.STATUS
|
ldx #IOCTL.STATUS
|
||||||
jsr CFG.SET.IOCTL
|
jsr CFG.SET.IOCTL
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldx #11 IP/MASK/GW
|
ldx #11 IP/MASK/GW
|
||||||
|
|
||||||
.4 lda IPCFG+S.IPCFG.IP,x
|
.4 lda IPCFG+S.IPCFG.IP,x
|
||||||
|
@ -61,8 +60,8 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
||||||
.5 stz SA.LOCAL+S.SOCKADDR.PORT
|
.5 stz SA.LOCAL+S.SOCKADDR.PORT
|
||||||
stz SA.LOCAL+S.SOCKADDR.PORT+1
|
stz SA.LOCAL+S.SOCKADDR.PORT+1
|
||||||
|
|
||||||
|
>PUSHB hDNSSocket
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hDNSSocket
|
|
||||||
jmp SKT.Bind
|
jmp SKT.Bind
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # DNS.Clear
|
* # DNS.Clear
|
||||||
* Clear DNS Cache
|
* Clear DNS Cache
|
||||||
* **In:**
|
* **In:**
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
DNS.Clear ldx #K.DNSCACHE.SIZE*S.DNSCACHE
|
DNS.Clear ldx #K.DNSCACHE.SIZE*S.DNSCACHE
|
||||||
|
|
||||||
|
@ -20,10 +19,10 @@ DNS.Clear ldx #K.DNSCACHE.SIZE*S.DNSCACHE
|
||||||
* Query DNS for specified host
|
* Query DNS for specified host
|
||||||
* **In:**
|
* **In:**
|
||||||
* PUSHW = PTR to IP to fill with cached data
|
* PUSHW = PTR to IP to fill with cached data
|
||||||
* PUSHW = hostname PTR to PSTR
|
* PUSHW = hostname PTR to PSTR
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: hit: IP filled with address
|
* CC: hit: IP filled with address
|
||||||
* CS: missed
|
* CS: missed
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
DNS.Query >PULLW ZPPtrDNS Get host string
|
DNS.Query >PULLW ZPPtrDNS Get host string
|
||||||
>PULLW ZPPtrIP Get IP address to fill
|
>PULLW ZPPtrIP Get IP address to fill
|
||||||
|
@ -126,10 +125,10 @@ DNS.REQUEST.SEND
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
.4 >PUSHW L.SA.REMOTE
|
.4 >PUSHB hDNSSocket
|
||||||
>PUSHW DNS.MSG.LEN
|
|
||||||
>PUSHW L.DNS.MSG
|
>PUSHW L.DNS.MSG
|
||||||
lda hDNSSocket
|
>PUSHW DNS.MSG.LEN
|
||||||
|
>PUSHW L.SA.REMOTE
|
||||||
jmp SKT.SendTo
|
jmp SKT.SendTo
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
|
@ -165,7 +164,7 @@ DNS.CSTR2DNS lda (ZPPtrDNS)
|
||||||
|
|
||||||
cmp #'Z'+1
|
cmp #'Z'+1
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
adc #$20
|
adc #$20
|
||||||
|
|
||||||
.2 inx
|
.2 inx
|
||||||
|
@ -248,13 +247,13 @@ DNS.ADD.I sta DNS.TmpCache
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
DNS.GetCAche >LDYA L.DNS.CACHE
|
DNS.GetCAche >LDYA L.DNS.CACHE
|
||||||
>STYA ZPCachePtr
|
>STYA ZPCachePtr
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DNS.FIND.BY.NAME
|
DNS.FIND.BY.NAME
|
||||||
jsr DNS.GetCAche
|
jsr DNS.GetCAche
|
||||||
|
|
||||||
ldx #K.DNSCACHE.SIZE
|
ldx #K.DNSCACHE.SIZE
|
||||||
|
|
||||||
.1 lda (ZPCachePtr)
|
.1 lda (ZPCachePtr)
|
||||||
|
@ -271,7 +270,7 @@ DNS.FIND.BY.NAME
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
.6 jsr DNS.NextCache
|
.6 jsr DNS.NextCache
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
@ -280,7 +279,7 @@ DNS.FIND.BY.NAME
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DNS.UPDATE.BY.ID
|
DNS.UPDATE.BY.ID
|
||||||
jsr DNS.GetCAche
|
jsr DNS.GetCAche
|
||||||
|
|
||||||
ldx #K.DNSCACHE.SIZE
|
ldx #K.DNSCACHE.SIZE
|
||||||
|
|
||||||
.1 lda (ZPCachePtr)
|
.1 lda (ZPCachePtr)
|
||||||
|
@ -299,13 +298,13 @@ DNS.UPDATE.BY.ID
|
||||||
lda #S.DNSCACHE.STATUS.RESOLVED
|
lda #S.DNSCACHE.STATUS.RESOLVED
|
||||||
sta (ZPCachePtr)
|
sta (ZPCachePtr)
|
||||||
ldy #S.DNSCACHE.TTL
|
ldy #S.DNSCACHE.TTL
|
||||||
|
|
||||||
.2 lda DNS.TmpCache,y
|
.2 lda DNS.TmpCache,y
|
||||||
sta (ZPCachePtr),y
|
sta (ZPCachePtr),y
|
||||||
iny
|
iny
|
||||||
cpy #S.DNSCACHE
|
cpy #S.DNSCACHE
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -390,7 +389,7 @@ DNS.EXPIRE jsr DNS.GetCAche
|
||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
bcs .6
|
bcs .6
|
||||||
jsr DNS.FREE
|
jsr DNS.FREE
|
||||||
.6 plx
|
.6 plx
|
||||||
|
@ -461,7 +460,7 @@ DNS.POLL lda hDNSSocket
|
||||||
tay
|
tay
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
iny
|
iny
|
||||||
iny Skip QTYPE & QCLASS
|
iny Skip QTYPE & QCLASS
|
||||||
iny
|
iny
|
||||||
|
@ -473,11 +472,11 @@ DNS.POLL lda hDNSSocket
|
||||||
|
|
||||||
.3 lda (ZPFrameInPtr),y
|
.3 lda (ZPFrameInPtr),y
|
||||||
beq .32
|
beq .32
|
||||||
bpl .31 Pointer ?
|
bpl .31 Pointer ?
|
||||||
iny yes, skip 2 bytes
|
iny yes, skip 2 bytes
|
||||||
iny
|
iny
|
||||||
bra .32
|
bra .32
|
||||||
|
|
||||||
.31 tya
|
.31 tya
|
||||||
sec
|
sec
|
||||||
adc (ZPFrameInPtr),y Skip LEN+1 bytes
|
adc (ZPFrameInPtr),y Skip LEN+1 bytes
|
||||||
|
@ -523,7 +522,7 @@ DNS.POLL lda hDNSSocket
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
jsr DNS.UPDATE.BY.ID
|
jsr DNS.UPDATE.BY.ID
|
||||||
|
|
||||||
.9 jmp FRM.DiscardIn
|
.9 jmp FRM.DiscardIn
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DNS.NextCache lda ZPCachePtr
|
DNS.NextCache lda ZPCachePtr
|
||||||
|
@ -532,7 +531,7 @@ DNS.NextCache lda ZPCachePtr
|
||||||
sta ZPCachePtr
|
sta ZPCachePtr
|
||||||
bcc .8
|
bcc .8
|
||||||
inc ZPCachePtr+1
|
inc ZPCachePtr+1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FRM.GetTargetSKT.TCPUDP
|
FRM.GetTargetSKT.TCPUDP
|
||||||
ldy #S.TCPUDP.SRCPORT
|
ldy #S.TCPUDP.SRCPORT
|
||||||
|
@ -97,7 +96,7 @@ FRM.NewIP stx .8+1
|
||||||
|
|
||||||
ldy #S.ETH.EII.TYPE
|
ldy #S.ETH.EII.TYPE
|
||||||
lda /S.ETH.EII.TYPE.IP
|
lda /S.ETH.EII.TYPE.IP
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
iny
|
iny
|
||||||
lda #S.ETH.EII.TYPE.IP
|
lda #S.ETH.EII.TYPE.IP
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
|
@ -109,7 +108,7 @@ FRM.NewIP stx .8+1
|
||||||
* lda #$0
|
* lda #$0
|
||||||
* sta (ZPFrameOutPtr),y
|
* sta (ZPFrameOutPtr),y
|
||||||
|
|
||||||
* ldy #S.IP.FRAGMENT.FLAGS
|
* ldy #S.IP.FRAGMENT.FLAGS
|
||||||
* sta (ZPFrameOutPtr),y
|
* sta (ZPFrameOutPtr),y
|
||||||
* iny
|
* iny
|
||||||
* sta (ZPFrameOutPtr),y
|
* sta (ZPFrameOutPtr),y
|
||||||
|
@ -132,7 +131,7 @@ FRM.NewIP stx .8+1
|
||||||
ldy #S.IP.TTL
|
ldy #S.IP.TTL
|
||||||
lda #K.IP.TTL
|
lda #K.IP.TTL
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
|
|
||||||
.7 ldy #S.IP.PROTOCOL
|
.7 ldy #S.IP.PROTOCOL
|
||||||
|
|
||||||
.8 lda #$ff
|
.8 lda #$ff
|
||||||
|
@ -147,7 +146,7 @@ FRM.SendIP php
|
||||||
ldy #S.IP.SRC+3 for proper UDP/TCP CRC calculation
|
ldy #S.IP.SRC+3 for proper UDP/TCP CRC calculation
|
||||||
|
|
||||||
.1 lda IPCFG+S.IPCFG.IP,x
|
.1 lda IPCFG+S.IPCFG.IP,x
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -236,7 +235,7 @@ FRM.SendIP php
|
||||||
|
|
||||||
jsr IP.SetDestMAC
|
jsr IP.SetDestMAC
|
||||||
bcs FRM.Queue
|
bcs FRM.Queue
|
||||||
|
|
||||||
.6 jsr FRM.Send
|
.6 jsr FRM.Send
|
||||||
bcs FRM.Queue
|
bcs FRM.Queue
|
||||||
|
|
||||||
|
@ -256,7 +255,7 @@ FRM.Queue plp
|
||||||
inx
|
inx
|
||||||
cpx #K.FRMQUEUE.SIZE
|
cpx #K.FRMQUEUE.SIZE
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 cpx FRM.QUEUE.Tail
|
.1 cpx FRM.QUEUE.Tail
|
||||||
|
@ -309,9 +308,9 @@ FRM.Retry ldx FRM.QUEUE.Tail
|
||||||
|
|
||||||
.3 ldx FRM.QUEUE.Tail
|
.3 ldx FRM.QUEUE.Tail
|
||||||
sta FRM.QUEUE.State,x save error...
|
sta FRM.QUEUE.State,x save error...
|
||||||
dec FRM.QUEUE.Retry,x
|
dec FRM.QUEUE.Retry,x
|
||||||
bne .8 exit....until next run!
|
bne .8 exit....until next run!
|
||||||
|
|
||||||
.4 ldx FRM.QUEUE.Tail
|
.4 ldx FRM.QUEUE.Tail
|
||||||
lda FRM.QUEUE.hMem,x Success,or max retry, discard entry
|
lda FRM.QUEUE.hMem,x Success,or max retry, discard entry
|
||||||
inx
|
inx
|
||||||
|
@ -331,7 +330,7 @@ FRM.Send ldx #3
|
||||||
sta IOCTL+S.IOCTL.BUFPTR,x
|
sta IOCTL+S.IOCTL.BUFPTR,x
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
FRM.Send.IOCTL >PUSHB IPCFG+S.NETCFG.DevID
|
FRM.Send.IOCTL >PUSHB IPCFG+S.NETCFG.DevID
|
||||||
>PUSHBI IOCTL.WRITE
|
>PUSHBI IOCTL.WRITE
|
||||||
>PUSHW L.IOCTL
|
>PUSHW L.IOCTL
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HST.GetByName >PULLW ZPPtrDNS
|
HST.GetByName >PULLW ZPPtrDNS
|
||||||
>PULLW ZPPtrIP
|
>PULLW ZPPtrIP
|
||||||
|
|
||||||
>PUSHW ZPPtrDNS
|
>PUSHW ZPPtrDNS
|
||||||
>PUSHW L.HST.SScanF
|
>PUSHW L.HST.SScanF
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 txa
|
.1 txa
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ICMP.IN ldy #S.ICMP.TYPE
|
ICMP.IN ldy #S.ICMP.TYPE
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
|
@ -30,18 +29,18 @@ ICMP.IN.ECHOREQ ldy #S.IP.DST+3
|
||||||
* stz hFrameIn DO NOT DISCARD this frame,it is SOURCE frame!!!
|
* stz hFrameIn DO NOT DISCARD this frame,it is SOURCE frame!!!
|
||||||
sta hFrameOut
|
sta hFrameOut
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
.2 lda ZPFrameInPtr,x
|
.2 lda ZPFrameInPtr,x
|
||||||
sta ZPFrameOutPtr,x
|
sta ZPFrameOutPtr,x
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
ldy #S.IP.DST+3
|
ldy #S.IP.DST+3
|
||||||
|
|
||||||
.3 lda ARP.TmpCache+S.ARPCACHE.IP,x
|
.3 lda ARP.TmpCache+S.ARPCACHE.IP,x
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .3
|
bpl .3
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IP.IN ldy #S.IP.PROTOCOL
|
IP.IN ldy #S.IP.PROTOCOL
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
|
@ -202,7 +201,7 @@ IP.SetDestMAC ldy #S.IP.DST
|
||||||
dex
|
dex
|
||||||
bpl .5
|
bpl .5
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.6 ldx #3 Not Same network, query ARP for GW
|
.6 ldx #3 Not Same network, query ARP for GW
|
||||||
|
|
||||||
.7 lda IPCFG+S.IPCFG.GW,x
|
.7 lda IPCFG+S.IPCFG.GW,x
|
||||||
|
|
|
@ -7,15 +7,18 @@ NEW
|
||||||
* `hFD socket(short int type, short int protocol);`
|
* `hFD socket(short int type, short int protocol);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHB type`
|
||||||
* `>PUSHB protocol`
|
* `>PUSHB protocol`
|
||||||
* `lda type`
|
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: A = hSOCKET
|
* CC: A = hSOCKET
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.Socket tax
|
SKT.Socket >PULLA get protocol (RAW)
|
||||||
>PULLA get protocol (RAW)
|
pha
|
||||||
|
>PULLA
|
||||||
|
tax
|
||||||
|
pla
|
||||||
SKT.Socket.I jmp (J.SKT.Socket,x)
|
SKT.Socket.I jmp (J.SKT.Socket,x)
|
||||||
|
|
||||||
SKT.Socket.RAW ldy #S.SOCKET
|
SKT.Socket.RAW ldy #S.SOCKET
|
||||||
|
@ -98,7 +101,7 @@ SKT.Socket.FindFree
|
||||||
|
|
||||||
.8 ldy #$FF SELF MODIFIED
|
.8 ldy #$FF SELF MODIFIED
|
||||||
sta SKT.TABLE,y
|
sta SKT.TABLE,y
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -108,16 +111,15 @@ SKT.Socket.FindFree
|
||||||
* `int bind(hFD fd, const struct sockaddr *addr);`
|
* `int bind(hFD fd, const struct sockaddr *addr);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHB fd`
|
||||||
* `>PUSHW addr`
|
* `>PUSHW addr`
|
||||||
* `lda fd`
|
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: A = hSOCKET
|
* CC: A = hSOCKET
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.bind >SYSCALL2 GetMemPtr
|
SKT.bind jsr SKT.PullLocAddr
|
||||||
>STYA ZPPtrSKT
|
jsr SKT.PullhFD
|
||||||
jsr SKT.PullLocAddr
|
|
||||||
|
|
||||||
lda SKT.LOC.ADDR+S.SOCKADDR.PORT
|
lda SKT.LOC.ADDR+S.SOCKADDR.PORT
|
||||||
ora SKT.LOC.ADDR+S.SOCKADDR.PORT+1
|
ora SKT.LOC.ADDR+S.SOCKADDR.PORT+1
|
||||||
|
@ -168,17 +170,15 @@ SKT.bind >SYSCALL2 GetMemPtr
|
||||||
* `int connect(hFD fd, const struct sockaddr *addr);`
|
* `int connect(hFD fd, const struct sockaddr *addr);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHB fd`
|
||||||
* `>PUSHW addr`
|
* `>PUSHW addr`
|
||||||
* `lda fd`
|
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.socket`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: A = hSOCKET
|
* CC: A = hSOCKET
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.connect >SYSCALL2 GetMemPtr
|
SKT.connect jsr SKT.PullRemAddr
|
||||||
>STYA ZPPtrSKT
|
jsr SKT.PullhFD
|
||||||
|
|
||||||
jsr SKT.PullRemAddr
|
|
||||||
|
|
||||||
ldy #S.SOCKET.T
|
ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
@ -238,8 +238,7 @@ SKT.connect.SEQPKT
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.listen >SYSCALL2 GetMemPtr
|
SKT.listen jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
|
|
||||||
ldy #S.SOCKET.T
|
ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
@ -275,8 +274,7 @@ SKT.listen.RTS rts
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* A = hSocket
|
* A = hSocket
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.Accept >SYSCALL2 GetMemPtr
|
SKT.Accept jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
|
|
||||||
ldy #S.SOCKET.O
|
ldy #S.SOCKET.O
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
@ -321,8 +319,7 @@ SKT.GetFromQueue
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.shutdown pha
|
SKT.shutdown pha
|
||||||
>SYSCALL2 GetMemPtr
|
jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
|
|
||||||
ldy #S.SOCKET.O
|
ldy #S.SOCKET.O
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
@ -338,7 +335,7 @@ SKT.shutdown pha
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
cmp #S.SOCKET.TCP.S.TIMEWT
|
cmp #S.SOCKET.TCP.S.TIMEWT
|
||||||
bcs .7
|
bcs .7
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
|
||||||
jsr SKT.GetTCB
|
jsr SKT.GetTCB
|
||||||
|
@ -397,9 +394,9 @@ SKT.shutdown.RTS
|
||||||
* `int skt.read(hFD fd, void *buf, int count);`
|
* `int skt.read(hFD fd, void *buf, int count);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* `>PUSHWI count`
|
* `>PUSHB fd`
|
||||||
* `>PUSHW buf`
|
* `>PUSHW buf`
|
||||||
* `lda fd`
|
* `>PUSHW count`
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.read`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.read`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: Y,A = bytes read
|
* CC: Y,A = bytes read
|
||||||
|
@ -422,8 +419,8 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
|
||||||
stx ZPDataInLen less data than INUSED, Get only INUSED data
|
stx ZPDataInLen less data than INUSED, Get only INUSED data
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
sta ZPDataInLen+1
|
sta ZPDataInLen+1
|
||||||
|
|
||||||
bra SKT.GetDataFromSktIn
|
bra SKT.GetDataFromSktIn
|
||||||
|
|
||||||
.7 jsr SKT.CheckStream
|
.7 jsr SKT.CheckStream
|
||||||
bcs .99 I/O error
|
bcs .99 I/O error
|
||||||
|
|
||||||
|
@ -599,9 +596,9 @@ SKT.AddDataToSktIn
|
||||||
* `int skt.write(hFD fd, const void *buf, int count);`
|
* `int skt.write(hFD fd, const void *buf, int count);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* `>PUSHWI count`
|
* `>PUSHB fd`
|
||||||
* `>PUSHW buf`
|
* `>PUSHW buf`
|
||||||
* `lda fd`
|
* `>PUSHW count`
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.write`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.write`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: Y,A = bytes written
|
* CC: Y,A = bytes written
|
||||||
|
@ -611,6 +608,7 @@ SKT.Write jsr SKT.PullhFDDataInPtrLen
|
||||||
|
|
||||||
jsr SKT.CheckStream
|
jsr SKT.CheckStream
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr SKT.GetTCB
|
jsr SKT.GetTCB
|
||||||
|
|
||||||
ldx SKT.Cache+S.SOCKET.TCP.OUTFREE
|
ldx SKT.Cache+S.SOCKET.TCP.OUTFREE
|
||||||
|
@ -765,6 +763,7 @@ SKT.GetDataFromSktOut
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -779,6 +778,7 @@ SKT.GetDataFromSktOut
|
||||||
sta (ZPDataOutPtr)
|
sta (ZPDataOutPtr)
|
||||||
inc ZPDataOutPtr
|
inc ZPDataOutPtr
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
inc ZPDataOutPtr+1
|
inc ZPDataOutPtr+1
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
|
@ -788,6 +788,7 @@ SKT.GetDataFromSktOut
|
||||||
lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
lda SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
cmp /K.TCP.WSIZE
|
cmp /K.TCP.WSIZE
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
stz SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
stz SKT.Cache+S.SOCKET.TCP.OUTTAILSENT+1
|
||||||
|
|
||||||
lda ZPTmpPtr1+1
|
lda ZPTmpPtr1+1
|
||||||
|
@ -803,30 +804,37 @@ SKT.GetDataFromSktOut
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Recv (RAW,DGRAM,SEQPKT)
|
|
||||||
* # RecvFrom (RAW,DGRAM,SEQPKT)
|
* # RecvFrom (RAW,DGRAM,SEQPKT)
|
||||||
* ## C
|
* ## C
|
||||||
* `hMem recv(hFD fd);`
|
|
||||||
* `hMem recvfrom(hFD fd, struct sockaddr *addr);`
|
* `hMem recvfrom(hFD fd, struct sockaddr *addr);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHB fd`
|
||||||
* `>PUSHW addr` (RecvFrom)
|
* `>PUSHW addr` (RecvFrom)
|
||||||
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
|
||||||
|
* ## RETURN VALUE
|
||||||
|
* CC: A = hMem
|
||||||
|
* CS: A = EC
|
||||||
|
*\--------------------------------------
|
||||||
|
SKT.RecvFrom >PULLW ZPTmpPtr1 addr
|
||||||
|
>PULLA
|
||||||
|
sec
|
||||||
|
.HS 90 BCC
|
||||||
|
*/--------------------------------------
|
||||||
|
* # Recv (RAW,DGRAM,SEQPKT)
|
||||||
|
* ## C
|
||||||
|
* `hMem recv(hFD fd);`
|
||||||
|
* ## ASM
|
||||||
|
* **In:**
|
||||||
* `lda fd`
|
* `lda fd`
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: A = hMem
|
* CC: A = hMem
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.RecvFrom pha
|
|
||||||
>PULLW ZPTmpPtr1 addr
|
|
||||||
pla
|
|
||||||
sec
|
|
||||||
.HS 90 BCC
|
|
||||||
|
|
||||||
SKT.Recv clc
|
SKT.Recv clc
|
||||||
php
|
php
|
||||||
>SYSCALL2 GetMemPtr
|
jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
|
|
||||||
ldy #S.SOCKET.T
|
ldy #S.SOCKET.T
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
@ -837,7 +845,7 @@ SKT.Recv clc
|
||||||
|
|
||||||
jsr SKT.GetFromQueue SEQPKT
|
jsr SKT.GetFromQueue SEQPKT
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
jsr SKT.CheckTCP
|
jsr SKT.CheckTCP
|
||||||
bcs .91
|
bcs .91
|
||||||
|
|
||||||
|
@ -845,10 +853,10 @@ SKT.Recv clc
|
||||||
plp
|
plp
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.10 jsr SKT.GetFromQueue
|
.10 jsr SKT.GetFromQueue
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
.1 plp if CS, RecvFrom
|
.1 plp if CS, RecvFrom
|
||||||
bcc .9 CC, Recv : Exit with CC and A=hFrame
|
bcc .9 CC, Recv : Exit with CC and A=hFrame
|
||||||
|
|
||||||
|
@ -902,33 +910,38 @@ SKT.Recv clc
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Send (RAW,DGRAM,SEQPKT)
|
|
||||||
* # SendTo (RAW,DGRAM,SEQPKT)
|
* # SendTo (RAW,DGRAM,SEQPKT)
|
||||||
* ## C
|
* ## C
|
||||||
* `int skt.send(hFD fd, const void *buf, int count);`
|
|
||||||
* `int skt.sendto(hFD fd, const void *buf, int count, const struct sockaddr *addr);`
|
* `int skt.sendto(hFD fd, const void *buf, int count, const struct sockaddr *addr);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* `>PUSHW addr` (SendTo)
|
* `>PUSHB fd`
|
||||||
* `>PUSHWI count`
|
|
||||||
* `>PUSHW buf`
|
* `>PUSHW buf`
|
||||||
* `lda fd`
|
* `>PUSHWI count`
|
||||||
|
* `>PUSHW addr`
|
||||||
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.sendto`
|
||||||
|
* ## RETURN VALUE
|
||||||
|
* CC: Y,A = bytes written
|
||||||
|
* CS: A = EC
|
||||||
|
*\--------------------------------------
|
||||||
|
SKT.SendTo jsr SKT.PullRemAddr
|
||||||
|
*/--------------------------------------
|
||||||
|
* # Send (RAW,DGRAM,SEQPKT)
|
||||||
|
* ## C
|
||||||
|
* `int skt.send(hFD fd, const void *buf, int count);`
|
||||||
|
* ## ASM
|
||||||
|
* **In:**
|
||||||
|
* `>PUSHB fd`
|
||||||
|
* `>PUSHW buf`
|
||||||
|
* `>PUSHWI count`
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.send`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.send`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC: Y,A = bytes written
|
* CC: Y,A = bytes written
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.SendTo sec
|
SKT.Send jsr SKT.PullhFDDataInPtrLen
|
||||||
.HS 90 BCC
|
|
||||||
SKT.Send clc
|
|
||||||
php
|
|
||||||
jsr SKT.PullhFDDataInPtrLen
|
|
||||||
plp
|
|
||||||
bcc .1
|
|
||||||
|
|
||||||
jsr SKT.PullRemAddr
|
ldy #S.SOCKET.T
|
||||||
|
|
||||||
.1 ldy #S.SOCKET.T
|
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
tax
|
tax
|
||||||
jmp (J.SKT.send,x)
|
jmp (J.SKT.send,x)
|
||||||
|
@ -979,8 +992,7 @@ SKT.Send.9 rts
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.GetSockOpt`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.GetSockOpt`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.getsockopt >SYSCALL2 GetMemPtr
|
SKT.getsockopt jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
ldy #S.SOCKET.O
|
ldy #S.SOCKET.O
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
* clc
|
* clc
|
||||||
|
@ -992,14 +1004,17 @@ SKT.getsockopt >SYSCALL2 GetMemPtr
|
||||||
* `int setsockopt(hFD fd, short int opts);`
|
* `int setsockopt(hFD fd, short int opts);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* `>PUSHBI opts`
|
* `>PUSHB fd`
|
||||||
* `lda fd`
|
* `>PUSHB opts`
|
||||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.SetSockOpt`
|
* `>LIBCALL hLIBTCPIP,LIBTCPIP.SetSockOpt`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.setsockopt >SYSCALL2 GetMemPtr
|
SKT.setsockopt >PULLA
|
||||||
>STYA ZPPtrSKT
|
pha
|
||||||
>PULLA
|
|
||||||
|
jsr SKT.PullhFD
|
||||||
|
|
||||||
|
pla
|
||||||
ldy #S.SOCKET.O
|
ldy #S.SOCKET.O
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
* clc
|
* clc
|
||||||
|
@ -1017,10 +1032,9 @@ SKT.setsockopt >SYSCALL2 GetMemPtr
|
||||||
* CC : A = 0 if some data, A = $ff if EOF
|
* CC : A = 0 if some data, A = $ff if EOF
|
||||||
* CS : A = Socket Error
|
* CS : A = Socket Error
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
SKT.EOF >SYSCALL2 GetMemPtr
|
SKT.EOF jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
|
|
||||||
SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
|
ldy #S.SOCKET.TCP.INUSED
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
iny
|
iny
|
||||||
ora (ZPPtrSKT),y
|
ora (ZPPtrSKT),y
|
||||||
|
@ -1034,7 +1048,8 @@ SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 lda #0 ...EOF = false
|
.8 lda #0 ...EOF = false
|
||||||
clc
|
|
||||||
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.CheckStream lda #S.SOCKET.T.STREAM
|
SKT.CheckStream lda #S.SOCKET.T.STREAM
|
||||||
|
@ -1085,10 +1100,13 @@ SKT.GetTable >LDYA L.SKT.Table
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.PullhFDDataInPtrLen
|
SKT.PullhFDDataInPtrLen
|
||||||
>SYSCALL2 GetMemPtr
|
|
||||||
>STYA ZPPtrSKT
|
|
||||||
>PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT
|
|
||||||
>PULLW ZPDataInLen !!!use DataInPtr/Len
|
>PULLW ZPDataInLen !!!use DataInPtr/Len
|
||||||
|
>PULLW ZPDataInPtr !!!DataOut trashed when sending ACK in TCP.OUT
|
||||||
|
|
||||||
|
SKT.PullhFD >PULLA
|
||||||
|
|
||||||
|
SKT.GetFD >SYSCALL2 GetMemPtr
|
||||||
|
>STYA ZPPtrSKT
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SKT.PullLocAddr clc
|
SKT.PullLocAddr clc
|
||||||
|
@ -1100,6 +1118,7 @@ SKT.PullRemAddr sec
|
||||||
|
|
||||||
ldx #S.SOCKADDR-1
|
ldx #S.SOCKADDR-1
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
ldx #S.SOCKADDR+S.SOCKADDR-1
|
ldx #S.SOCKADDR+S.SOCKADDR-1
|
||||||
|
|
||||||
.1 lda (ZPTmpPtr1),y
|
.1 lda (ZPTmpPtr1),y
|
||||||
|
@ -1140,8 +1159,7 @@ SKT.FindMatchingLocRem
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
phx
|
phx
|
||||||
>SYSCALL2 GetMemPtr
|
jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
plx
|
plx
|
||||||
|
|
||||||
ldy #S.SOCKET.AF
|
ldy #S.SOCKET.AF
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN jsr FRM.GetTargetSKT.TCPUDP
|
TCP.IN jsr FRM.GetTargetSKT.TCPUDP
|
||||||
jsr SKT.FindMatchingLocRem
|
jsr SKT.FindMatchingLocRem
|
||||||
|
@ -91,11 +90,12 @@ TCP.IN.JMP.SYNSENT
|
||||||
|
|
||||||
jsr TCP.IN.ACKTheSYN
|
jsr TCP.IN.ACKTheSYN
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.ACK
|
jsr TCP.OUT.SendACK SYN.ACK received, Send, ACK
|
||||||
jsr TCP.OUT.SendOptA SYN.ACK received, Send, ACK
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.ESTBLSH
|
lda #S.SOCKET.TCP.S.ESTBLSH
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.9 lda #S.TCP.OPTIONS.RST
|
.9 lda #S.TCP.OPTIONS.RST
|
||||||
jsr TCP.OUT.SendOptA Send RST
|
jsr TCP.OUT.SendOptA Send RST
|
||||||
ldx SKT.Index
|
ldx SKT.Index
|
||||||
|
@ -120,9 +120,11 @@ TCP.IN.JMP.SYNRCVD
|
||||||
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x ...and update NEXTSEQ
|
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x ...and update NEXTSEQ
|
||||||
eor (ZPFrameInPtr),y
|
eor (ZPFrameInPtr),y
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.ESTBLSH
|
lda #S.SOCKET.TCP.S.ESTBLSH
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
|
@ -266,9 +268,8 @@ TCP.IN.JMP.LASTACK
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
bit #S.TCP.OPTIONS.ACK
|
bit #S.TCP.OPTIONS.ACK
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.ACK
|
jsr TCP.OUT.SendACK
|
||||||
jsr TCP.OUT.SendOptA
|
|
||||||
|
|
||||||
ldy #S.SOCKET.TCP.S
|
ldy #S.SOCKET.TCP.S
|
||||||
lda #S.SOCKET.TCP.S.TIMEWT
|
lda #S.SOCKET.TCP.S.TIMEWT
|
||||||
|
@ -296,8 +297,8 @@ TCP.IN.JMP.FINWT1
|
||||||
.1 jsr TCP.IN.ACKTheFIN FIN/ACK
|
.1 jsr TCP.IN.ACKTheFIN FIN/ACK
|
||||||
|
|
||||||
* lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
* lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
||||||
lda #S.TCP.OPTIONS.ACK
|
|
||||||
jsr TCP.OUT.SendOptA FIN received, Send ACK
|
jsr TCP.OUT.SendACK FIN received, Send ACK
|
||||||
bcs TCP.IN.JMP.TIMEWT.RTS
|
bcs TCP.IN.JMP.TIMEWT.RTS
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.LASTACK
|
lda #S.SOCKET.TCP.S.LASTACK
|
||||||
|
@ -313,9 +314,7 @@ TCP.IN.JMP.FINWT2
|
||||||
|
|
||||||
jsr TCP.IN.ACKTheFIN
|
jsr TCP.IN.ACKTheFIN
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.ACK
|
jsr TCP.OUT.SendACK FIN received, Send ACK
|
||||||
|
|
||||||
jsr TCP.OUT.SendOptA FIN received, Send ACK
|
|
||||||
bcs TCP.IN.JMP.TIMEWT.RTS
|
bcs TCP.IN.JMP.TIMEWT.RTS
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.TIMEWT
|
lda #S.SOCKET.TCP.S.TIMEWT
|
||||||
|
@ -409,8 +408,7 @@ TCP.SENDCLOSE ldx #0
|
||||||
lda SKT.TABLE,x
|
lda SKT.TABLE,x
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
>SYSCALL2 GetMemPtr
|
jsr SKT.GetFD
|
||||||
>STYA ZPPtrSKT
|
|
||||||
|
|
||||||
ldy #S.SOCKET.AF
|
ldy #S.SOCKET.AF
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
|
@ -450,10 +448,6 @@ TCP.SENDCLOSE ldx #0
|
||||||
lda #S.SOCKET.TCP.S.SYNSENT
|
lda #S.SOCKET.TCP.S.SYNSENT
|
||||||
jsr SKT.StoreTCB.S
|
jsr SKT.StoreTCB.S
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.SYN
|
|
||||||
jsr TCP.OUT.SendOptA Send SYN
|
|
||||||
bra .8
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.4 cpx #S.SOCKET.T.SEQPKT
|
.4 cpx #S.SOCKET.T.SEQPKT
|
||||||
bne .6
|
bne .6
|
||||||
|
@ -539,6 +533,8 @@ TCP.OUT.SEQSEND ldy #S.TCP.WINDOW
|
||||||
|
|
||||||
jmp SKT.StoreTCB exits with CC
|
jmp SKT.StoreTCB exits with CC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TCP.OUT.SendACK lda #S.TCP.OPTIONS.ACK
|
||||||
|
|
||||||
TCP.OUT.SendOptA
|
TCP.OUT.SendOptA
|
||||||
jsr TCP.SetSocketTCPO
|
jsr TCP.SetSocketTCPO
|
||||||
|
|
||||||
|
@ -607,12 +603,14 @@ TCP.SetSocketTCPO
|
||||||
TCP.NewFrame ldx #S.IP.PROTOCOL.TCP
|
TCP.NewFrame ldx #S.IP.PROTOCOL.TCP
|
||||||
jsr FRM.NewIP
|
jsr FRM.NewIP
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr SKT.SetFrameOutDstIP
|
jsr SKT.SetFrameOutDstIP
|
||||||
|
|
||||||
jsr SKT.SetFrameOutTCPUDPPorts
|
jsr SKT.SetFrameOutTCPUDPPorts
|
||||||
ldy #S.TCP.DATAOFFSET
|
ldy #S.TCP.DATAOFFSET
|
||||||
lda #$50 Header size = 5 DWORDS
|
lda #$50 Header size = 5 DWORDS
|
||||||
sta (ZPFrameOutPtr),y
|
sta (ZPFrameOutPtr),y
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -624,9 +622,12 @@ TCP.AddAYToSktCacheAtX
|
||||||
adc SKT.Cache+2,x
|
adc SKT.Cache+2,x
|
||||||
sta SKT.Cache+2,x
|
sta SKT.Cache+2,x
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
inc SKT.Cache+1,x
|
inc SKT.Cache+1,x
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
inc SKT.Cache,x
|
inc SKT.Cache,x
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -167,22 +167,22 @@ LIB.LOAD ldx RefCount
|
||||||
|
|
||||||
jsr ARP.Clear.I
|
jsr ARP.Clear.I
|
||||||
|
|
||||||
|
>PUSHBI S.SOCKET.T.DGRAM
|
||||||
>PUSHBI 0 no protocol
|
>PUSHBI 0 no protocol
|
||||||
lda #S.SOCKET.T.DGRAM
|
|
||||||
jsr SKT.Socket
|
jsr SKT.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hDNSSocket
|
sta hDNSSocket
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
>PUSHW L.SA.LOCAL IP/PORT=All ZERO
|
>PUSHW L.SA.LOCAL IP/PORT=All ZERO
|
||||||
lda hDNSSocket
|
|
||||||
jsr SKT.Bind
|
jsr SKT.Bind
|
||||||
|
|
||||||
>LDYAI UDP.PORT.DNS
|
>LDYAI UDP.PORT.DNS
|
||||||
>STYA SA.REMOTE+S.SOCKADDR.PORT
|
>STYA SA.REMOTE+S.SOCKADDR.PORT
|
||||||
|
|
||||||
|
>PUSHB hDNSSocket
|
||||||
>PUSHW L.SA.REMOTE IP=All ZERO
|
>PUSHW L.SA.REMOTE IP=All ZERO
|
||||||
lda hDNSSocket
|
|
||||||
jsr SKT.Connect
|
jsr SKT.Connect
|
||||||
|
|
||||||
jsr DNS.CLEAR
|
jsr DNS.CLEAR
|
||||||
|
@ -256,17 +256,20 @@ PULSE and #S.EVT.F.T1SEC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetDynPort inc DYNPORT.LAST
|
GetDynPort inc DYNPORT.LAST
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc DYNPORT.LAST+1
|
inc DYNPORT.LAST+1
|
||||||
lda DYNPORT.LAST
|
lda DYNPORT.LAST
|
||||||
cmp #K.DYNPORT.END
|
cmp #K.DYNPORT.END
|
||||||
lda DYNPORT.LAST+1
|
lda DYNPORT.LAST+1
|
||||||
sbc /K.DYNPORT.END
|
sbc /K.DYNPORT.END
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
lda #K.DYNPORT.START
|
lda #K.DYNPORT.START
|
||||||
ldx /K.DYNPORT.START
|
ldx /K.DYNPORT.START
|
||||||
sta DYNPORT.LAST
|
sta DYNPORT.LAST
|
||||||
stx DYNPORT.LAST+1
|
stx DYNPORT.LAST+1
|
||||||
rts CC
|
rts CC
|
||||||
|
|
||||||
.1 lda DYNPORT.LAST
|
.1 lda DYNPORT.LAST
|
||||||
ldx DYNPORT.LAST+1
|
ldx DYNPORT.LAST+1
|
||||||
clc
|
clc
|
||||||
|
@ -303,13 +306,13 @@ SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
|
||||||
.BS 2 S.SOCKADDR.PORT
|
.BS 2 S.SOCKADDR.PORT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FD.DSOCK .DA #S.FD.T.DSOCK
|
FD.DSOCK .DA #S.FD.T.DSOCK
|
||||||
.DA #0 S.FD.HANDLER
|
.DA #0 S.FD.PFT
|
||||||
.BS 1 S.FD.DSOCK.IOHANDLER
|
.BS 1 S.FD.DSOCK.IOH
|
||||||
.DA #0 S.FD.DSOCK.OPEN
|
.DA #0 S.FD.DSOCK.OPEN
|
||||||
.DA #LIBTCPIP.shutdown
|
.DA #LIBTCPIP.shutdown
|
||||||
.DA #LIBTCPIP.Recv
|
.DA #LIBTCPIP.Recv
|
||||||
.DA #LIBTCPIP.Send
|
.DA #LIBTCPIP.Send
|
||||||
.DA #0 S.FD.DSOCK.STATUS
|
.DA #0 S.FD.DSOCK.EOF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA #AF.INET S.SOCKET.AF
|
.DA #AF.INET S.SOCKET.AF
|
||||||
.BS 1 S.SOCKET.T
|
.BS 1 S.SOCKET.T
|
||||||
|
@ -317,8 +320,8 @@ FD.DSOCK .DA #S.FD.T.DSOCK
|
||||||
FD.DSOCK.SIZE .EQ *-FD.DSOCK
|
FD.DSOCK.SIZE .EQ *-FD.DSOCK
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FD.SSOCK .DA #S.FD.T.SSOCK
|
FD.SSOCK .DA #S.FD.T.SSOCK
|
||||||
.DA #0 S.FD.HANDLER
|
.DA #0 S.FD.PFT
|
||||||
.BS 1 S.FD.SSOCK.IOHANDLER
|
.BS 1 S.FD.SSOCK.IOH
|
||||||
.DA #0 S.FD.SSOCK.OPEN
|
.DA #0 S.FD.SSOCK.OPEN
|
||||||
.DA #LIBTCPIP.shutdown
|
.DA #LIBTCPIP.shutdown
|
||||||
.DA #LIBTCPIP.Read
|
.DA #LIBTCPIP.Read
|
||||||
|
|
|
@ -128,17 +128,17 @@ CS.RUN lda hSocket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hMount
|
sta hMount
|
||||||
|
|
||||||
>PUSHW L.MSG.MOUNTED
|
>PUSHW L.MSG.MOUNTED
|
||||||
|
|
||||||
lda #2
|
lda #2
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
lda #3
|
lda #3
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
@ -233,15 +233,15 @@ CS.RUN.CheckArgs
|
||||||
CS.RUN.CheckArgs.RTS
|
CS.RUN.CheckArgs.RTS
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.Connect >PUSHBI 0 no protocol
|
CS.RUN.Connect >PUSHBI S.SOCKET.T.SEQPKT
|
||||||
lda #S.SOCKET.T.SEQPKT
|
>PUSHBI 0 no protocol
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hSocket
|
sta hSocket
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
>PUSHEA.G SA.LOCAL
|
>PUSHEA.G SA.LOCAL
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -250,8 +250,8 @@ CS.RUN.Connect >PUSHBI 0 no protocol
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
|
|
||||||
|
>PUSHB hSocket
|
||||||
>PUSHEA.G SA.REMOTE
|
>PUSHEA.G SA.REMOTE
|
||||||
lda hSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
|
@ -259,7 +259,7 @@ CS.RUN.Connect >PUSHBI 0 no protocol
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.9 pha
|
.9 pha
|
||||||
|
|
||||||
>PUSHW L.MSG.NOCONN
|
>PUSHW L.MSG.NOCONN
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
|
|
|
@ -70,6 +70,7 @@ CS.RUN ldy #S.PS.ARGC
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
jsr CkeckOption
|
jsr CkeckOption
|
||||||
|
@ -146,9 +147,9 @@ CS.RUN.LOOP1 >SLEEP
|
||||||
|
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
bcs CS.RUN.9 I/O error
|
bcs CS.RUN.9 I/O error
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .1 no char
|
bne .1 no char
|
||||||
|
|
||||||
|
@ -239,6 +240,7 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
|
||||||
|
|
||||||
cmp #IAC
|
cmp #IAC
|
||||||
beq .4 end of DATA, go wait SE
|
beq .4 end of DATA, go wait SE
|
||||||
|
|
||||||
ldy IAC.SB.LEN
|
ldy IAC.SB.LEN
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
iny
|
iny
|
||||||
|
@ -247,15 +249,19 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
|
||||||
sty IAC.SB.LEN
|
sty IAC.SB.LEN
|
||||||
cpy #IAC.BUF.MAX
|
cpy #IAC.BUF.MAX
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.4 >SYSCALL GetChar
|
.4 >SYSCALL GetChar
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #SE
|
cmp #SE
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda IAC.SUBCMD
|
lda IAC.SUBCMD
|
||||||
cmp #TN.O.TTYPE
|
cmp #TN.O.TTYPE
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda IAC.SB.CMD
|
lda IAC.SB.CMD
|
||||||
cmp #SB.IS
|
cmp #SB.IS
|
||||||
bne .8
|
bne .8
|
||||||
|
@ -268,8 +274,7 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GREETINGS
|
CS.RUN.GREETINGS
|
||||||
>PUSHW L.MSG.GREETINGS
|
>PUSHW L.MSG.GREETINGS
|
||||||
>PUSHB #K.VER
|
>PUSHW A2osX.KVER
|
||||||
>PUSHB /K.VER
|
|
||||||
lda ArgDev
|
lda ArgDev
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
@ -282,7 +287,9 @@ CS.DOEVENT lda (pEvent)
|
||||||
|
|
||||||
lda TimeOut
|
lda TimeOut
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
dec TimeOut
|
dec TimeOut
|
||||||
|
|
||||||
.9 sec do not discard TIMER event
|
.9 sec do not discard TIMER event
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -290,6 +297,7 @@ CS.QUIT lda hFILE
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
>SYSCALL FClose
|
>SYSCALL FClose
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
207
SBIN/HTTPD.S.txt
207
SBIN/HTTPD.S.txt
|
@ -109,7 +109,7 @@ CS.RUN >LDYA L.MSG.TCPWAIT
|
||||||
|
|
||||||
lda #TIMEOUT.MAX
|
lda #TIMEOUT.MAX
|
||||||
sta TimeOut
|
sta TimeOut
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||||
bcs .99
|
bcs .99
|
||||||
|
@ -125,6 +125,7 @@ CS.RUN >LDYA L.MSG.TCPWAIT
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
bcs CS.RUN.RTS I/O err
|
bcs CS.RUN.RTS I/O err
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
@ -141,7 +142,7 @@ CS.RUN >LDYA L.MSG.TCPWAIT
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
CS.RUN.SYN
|
CS.RUN.SYN
|
||||||
lda #E.SYN
|
lda #E.SYN
|
||||||
sec
|
sec
|
||||||
CS.RUN.RTS rts
|
CS.RUN.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.INIT ldx #3
|
CS.RUN.INIT ldx #3
|
||||||
|
@ -156,32 +157,32 @@ CS.RUN.INIT ldx #3
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
>STYA ZPLinePtr
|
>STYA ZPLinePtr
|
||||||
stx hLineBuf
|
stx hLineBuf
|
||||||
|
|
||||||
>PUSHW L.MSG.INITCONF
|
>PUSHW L.MSG.INITCONF
|
||||||
>PUSHW L.ETCHTTPDCONF
|
>PUSHW L.ETCHTTPDCONF
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
jsr CS.RUN.CONF
|
jsr CS.RUN.CONF
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
|
>PUSHBI S.SOCKET.T.SEQPKT
|
||||||
>PUSHBI 0 no protocol
|
>PUSHBI 0 no protocol
|
||||||
lda #S.SOCKET.T.SEQPKT
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
sta hSrvSocket
|
sta hSrvSocket
|
||||||
|
|
||||||
|
>PUSHB hSrvSocket
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hSrvSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
lda hSrvSocket
|
lda hSrvSocket
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Listen
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Listen
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
@ -189,8 +190,8 @@ CS.RUN.INIT ldx #3
|
||||||
>PUSHW L.MSG.INITOK
|
>PUSHW L.MSG.INITOK
|
||||||
>PUSHW SA.LOCAL+S.SOCKADDR.PORT
|
>PUSHW SA.LOCAL+S.SOCKADDR.PORT
|
||||||
>PUSHW ZPRootDirPtr
|
>PUSHW ZPRootDirPtr
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP >SLEEP
|
CS.RUN.LOOP >SLEEP
|
||||||
|
@ -201,7 +202,7 @@ CS.RUN.LOOP >SLEEP
|
||||||
CS.RUN.ERR >LDYA L.MSG.SKTERR
|
CS.RUN.ERR >LDYA L.MSG.SKTERR
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
lda #E.SYN
|
lda #E.SYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.CONF >PUSHW L.ETCHTTPDCONF
|
CS.RUN.CONF >PUSHW L.ETCHTTPDCONF
|
||||||
|
@ -221,53 +222,53 @@ CS.RUN.CONF >PUSHW L.ETCHTTPDCONF
|
||||||
|
|
||||||
tya
|
tya
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
lda (ZPLinePtr)
|
lda (ZPLinePtr)
|
||||||
cmp #'#'
|
cmp #'#'
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>LDYA L.KEYWORDS.CONF
|
>LDYA L.KEYWORDS.CONF
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.2 ldy #0
|
.2 ldy #0
|
||||||
|
|
||||||
.3 lda (ZPPtr1),y
|
.3 lda (ZPPtr1),y
|
||||||
cmp (ZPLinePtr),y
|
cmp (ZPLinePtr),y
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
iny
|
iny
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr CS.RUN.CONF.JMP
|
jsr CS.RUN.CONF.JMP
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
bra .97
|
bra .97
|
||||||
|
|
||||||
.4 inx
|
.4 inx
|
||||||
inx
|
inx
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.5 iny
|
.5 iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
tya
|
tya
|
||||||
sec
|
sec
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
bcc .6
|
bcc .6
|
||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
|
|
||||||
.6 lda (ZPPtr1)
|
.6 lda (ZPPtr1)
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.97 lda #E.SYN
|
.97 lda #E.SYN
|
||||||
|
|
||||||
.98 pha
|
.98 pha
|
||||||
jsr .8
|
jsr .8
|
||||||
pla
|
pla
|
||||||
|
@ -286,13 +287,13 @@ CS.RUN.CONF.JMP tya
|
||||||
lda #0
|
lda #0
|
||||||
adc ZPLinePtr+1
|
adc ZPLinePtr+1
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
jmp (J.KEYWORDS.CONF,x)
|
jmp (J.KEYWORDS.CONF,x)
|
||||||
|
|
||||||
CS.RUN.CONF.SERVERNAME
|
CS.RUN.CONF.SERVERNAME
|
||||||
>SYSCALL StrDup
|
>SYSCALL StrDup
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPSrvNamePtr
|
>STYA ZPSrvNamePtr
|
||||||
stx hSrvName
|
stx hSrvName
|
||||||
|
|
||||||
|
@ -309,7 +310,7 @@ CS.RUN.CONF.DOCUMENTROOT
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWI 0 Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPRootDirPtr
|
>STYA ZPRootDirPtr
|
||||||
stx hRootdir
|
stx hRootdir
|
||||||
|
|
||||||
|
@ -318,7 +319,7 @@ CS.RUN.CONF.DOCUMENTROOT
|
||||||
CS.RUN.SERVER lda hSrvSocket
|
CS.RUN.SERVER lda hSrvSocket
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
sta CLN.hSocket
|
sta CLN.hSocket
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPSktPtr
|
>STYA ZPSktPtr
|
||||||
|
@ -344,10 +345,10 @@ CS.RUN.SERVER lda hSrvSocket
|
||||||
>PUSHB CLN.hSocket
|
>PUSHB CLN.hSocket
|
||||||
>PUSHBI 1
|
>PUSHBI 1
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
lda CLN.hSocket
|
lda CLN.hSocket
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9
|
.9
|
||||||
CS.RUN.SERVER.RTS
|
CS.RUN.SERVER.RTS
|
||||||
|
@ -356,10 +357,10 @@ CS.RUN.SERVER.RTS
|
||||||
CS.RUN.CLIENT >LDYAI 1024
|
CS.RUN.CLIENT >LDYAI 1024
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs CS.RUN.SERVER.RTS
|
bcs CS.RUN.SERVER.RTS
|
||||||
|
|
||||||
>STYA ZPRepPtr
|
>STYA ZPRepPtr
|
||||||
stx REP.hBuf
|
stx REP.hBuf
|
||||||
|
|
||||||
.10 >STZ.G REQ.FullPath
|
.10 >STZ.G REQ.FullPath
|
||||||
stz REQ.hReq
|
stz REQ.hReq
|
||||||
stz REQ.KeepAlive
|
stz REQ.KeepAlive
|
||||||
|
@ -380,84 +381,84 @@ CS.RUN.CLIENT >LDYAI 1024
|
||||||
|
|
||||||
.3 jsr CS.RUN.REQ.GetLine
|
.3 jsr CS.RUN.REQ.GetLine
|
||||||
bcs .4
|
bcs .4
|
||||||
|
|
||||||
>LDYA ZPLinePtr
|
>LDYA ZPLinePtr
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
>LDYA L.KEYWORDS.REQ
|
>LDYA L.KEYWORDS.REQ
|
||||||
jsr CS.RUN.GET.KW
|
jsr CS.RUN.GET.KW
|
||||||
bcs .3
|
bcs .3
|
||||||
|
|
||||||
jsr CS.RUN.REQ.JMP
|
jsr CS.RUN.REQ.JMP
|
||||||
bcc .3
|
bcc .3
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
.4 lda REQ.hReq
|
.4 lda REQ.hReq
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
stz REQ.hReq
|
stz REQ.hReq
|
||||||
|
|
||||||
>LDA.G REQ.FullPath
|
>LDA.G REQ.FullPath
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
jsr CS.RUN.OpenFile
|
jsr CS.RUN.OpenFile
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr CS.RUN.SendFile
|
jsr CS.RUN.SendFile
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.9 >PUSHWI HTTP.404.len
|
.9 >PUSHB CLN.hSocket
|
||||||
>PUSHW L.HTTP.404
|
>PUSHW L.HTTP.404
|
||||||
lda CLN.hSocket
|
>PUSHWI HTTP.404.len
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||||
|
|
||||||
.8 bit REQ.KeepAlive
|
.8 bit REQ.KeepAlive
|
||||||
bpl .99
|
bpl .99
|
||||||
jmp .10
|
jmp .10
|
||||||
|
|
||||||
.98 lda REQ.hReq
|
.98 lda REQ.hReq
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
.99 lda REP.hBuf
|
.99 lda REP.hBuf
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.REQ.GetReq
|
CS.RUN.REQ.GetReq
|
||||||
sta REQ.hReq
|
sta REQ.hReq
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPRequestPtr
|
>STYA ZPRequestPtr
|
||||||
|
|
||||||
>PUSHW L.MSG.REQ
|
>PUSHW L.MSG.REQ
|
||||||
>PUSHB REQ.hReq
|
>PUSHB REQ.hReq
|
||||||
>PUSHB CLN.hSocket
|
>PUSHB CLN.hSocket
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
ldy #S.IP.TOTAL.LENGTH+1
|
ldy #S.IP.TOTAL.LENGTH+1
|
||||||
lda (ZPRequestPtr),y
|
lda (ZPRequestPtr),y
|
||||||
sec
|
sec
|
||||||
sbc #S.TCP-S.IP
|
sbc #S.TCP-S.IP
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta ZPnRequestLen
|
sta ZPnRequestLen
|
||||||
|
|
||||||
dey
|
dey
|
||||||
|
|
||||||
lda (ZPRequestPtr),y
|
lda (ZPRequestPtr),y
|
||||||
sbc /S.TCP-S.IP
|
sbc /S.TCP-S.IP
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta ZPnRequestLen+1
|
sta ZPnRequestLen+1
|
||||||
|
|
||||||
lda ZPRequestPtr
|
lda ZPRequestPtr
|
||||||
clc
|
clc
|
||||||
adc #S.TCP
|
adc #S.TCP
|
||||||
sta ZPRequestPtr
|
sta ZPRequestPtr
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
inc ZPRequestPtr+1
|
inc ZPRequestPtr+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -473,15 +474,15 @@ CS.RUN.REQ.GetLine
|
||||||
inc ZPRequestPtr
|
inc ZPRequestPtr
|
||||||
bne .21
|
bne .21
|
||||||
inc ZPRequestPtr+1
|
inc ZPRequestPtr+1
|
||||||
|
|
||||||
.21 cmp #C.CR
|
.21 cmp #C.CR
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
inc ZPnRequestLen
|
inc ZPnRequestLen
|
||||||
bne .3
|
bne .3
|
||||||
inc ZPnRequestLen+1
|
inc ZPnRequestLen+1
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
.3 lda (ZPRequestPtr)
|
.3 lda (ZPRequestPtr)
|
||||||
inc ZPRequestPtr
|
inc ZPRequestPtr
|
||||||
bne .31
|
bne .31
|
||||||
|
@ -493,11 +494,11 @@ CS.RUN.REQ.GetLine
|
||||||
sta (ZPLinePtr),y Y,A = StrLen
|
sta (ZPLinePtr),y Y,A = StrLen
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.4 sta (ZPLinePtr),y
|
.4 sta (ZPLinePtr),y
|
||||||
iny
|
iny
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -506,58 +507,58 @@ CS.RUN.OpenFile >PUSHW L.MSG.FILE
|
||||||
>PUSHEA.G REQ.FullPath
|
>PUSHEA.G REQ.FullPath
|
||||||
>PUSHBI 3
|
>PUSHBI 3
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>PUSHEA.G REQ.FullPath
|
>PUSHEA.G REQ.FullPath
|
||||||
>PUSHBI O.RDONLY
|
>PUSHBI O.RDONLY
|
||||||
>PUSHBI 0 type
|
>PUSHBI 0 type
|
||||||
>PUSHWZ Aux type
|
>PUSHWZ Aux type
|
||||||
>SYSCALL FOpen
|
>SYSCALL FOpen
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx REQ.hFile
|
stx REQ.hFile
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHEA.G REQ.Stat
|
>PUSHEA.G REQ.Stat
|
||||||
>SYSCALL FStat
|
>SYSCALL FStat
|
||||||
|
|
||||||
>LEA.G REQ.FullPath
|
>LEA.G REQ.FullPath
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
ldx #$ff
|
ldx #$ff
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
cmp #'.'
|
cmp #'.'
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
tya
|
tya
|
||||||
tax
|
tax
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 txa
|
.2 txa
|
||||||
bpl .3
|
bpl .3
|
||||||
|
|
||||||
lda #MIME.DEFAULT.ID
|
lda #MIME.DEFAULT.ID
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.3 sec
|
.3 sec
|
||||||
|
|
||||||
adc ZPPtr2
|
adc ZPPtr2
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
|
|
||||||
.4 >LDYA L.MIME.TYPES
|
.4 >LDYA L.MIME.TYPES
|
||||||
jsr CS.RUN.GET.KW
|
jsr CS.RUN.GET.KW
|
||||||
|
|
||||||
txa
|
txa
|
||||||
|
|
||||||
.8 sta REQ.MimeType
|
.8 sta REQ.MimeType
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -568,28 +569,28 @@ CS.RUN.SendFile >PUSHW ZPRepPtr
|
||||||
>PUSHW T.MIME,x
|
>PUSHW T.MIME,x
|
||||||
>PUSHL.G REQ.Stat+S.STAT.SIZE
|
>PUSHL.G REQ.Stat+S.STAT.SIZE
|
||||||
>PUSHBI 6
|
>PUSHBI 6
|
||||||
|
|
||||||
>SYSCALL SPrintF
|
>SYSCALL SPrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr CS.RUN.SendBuf Y,A = car count
|
jsr CS.RUN.SendBuf Y,A = car count
|
||||||
|
|
||||||
.1 >PUSHB REQ.hFile
|
.1 >PUSHB REQ.hFile
|
||||||
>PUSHW ZPRepPtr
|
>PUSHW ZPRepPtr
|
||||||
>PUSHWI 1024
|
>PUSHWI 1024
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
jsr CS.RUN.SendBuf
|
jsr CS.RUN.SendBuf
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 cmp #MLI.E.EOF
|
.8 cmp #MLI.E.EOF
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 php
|
.9 php
|
||||||
pha
|
pha
|
||||||
lda REQ.hFile
|
lda REQ.hFile
|
||||||
|
@ -598,9 +599,11 @@ CS.RUN.SendFile >PUSHW ZPRepPtr
|
||||||
plp
|
plp
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.SendBuf >PUSHYA
|
CS.RUN.SendBuf pha
|
||||||
|
>PUSHB CLN.hSocket
|
||||||
>PUSHW ZPRepPtr
|
>PUSHW ZPRepPtr
|
||||||
lda CLN.hSocket
|
pla
|
||||||
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -610,32 +613,32 @@ CS.RUN.REQ.GET ldy #0
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
|
|
||||||
eor #C.SPACE
|
eor #C.SPACE
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
sta (ZPPtr2),y
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
lda (ZPPtr2)
|
lda (ZPPtr2)
|
||||||
|
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
>PUSHEA.G REQ.FullPath
|
>PUSHEA.G REQ.FullPath
|
||||||
>PUSHW ZPRootDirPtr
|
>PUSHW ZPRootDirPtr
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
>PUSHEA.G REQ.FullPath
|
>PUSHEA.G REQ.FullPath
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>LDYA L.INDEX.HTML
|
>LDYA L.INDEX.HTML
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.2 >LDYA ZPPtr2
|
.2 >LDYA ZPPtr2
|
||||||
|
|
||||||
.3 >PUSHYA
|
.3 >PUSHYA
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
|
@ -649,11 +652,11 @@ CS.RUN.REQ.Connection
|
||||||
lda (ZPPtr2)
|
lda (ZPPtr2)
|
||||||
eor #'k'
|
eor #'k'
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
|
|
||||||
.1 sta REQ.KeepAlive
|
.1 sta REQ.KeepAlive
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -663,18 +666,18 @@ CS.RUN.GET.KW >STYA ZPPtr1
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.2 ldy #$ff
|
.2 ldy #$ff
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp (ZPPtr2),y
|
cmp (ZPPtr2),y
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
cmp #0
|
cmp #0
|
||||||
beq .33
|
beq .33
|
||||||
|
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
.33 tya
|
.33 tya
|
||||||
sec
|
sec
|
||||||
adc ZPPtr2
|
adc ZPPtr2
|
||||||
|
@ -684,23 +687,23 @@ CS.RUN.GET.KW >STYA ZPPtr1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.4 inx
|
.4 inx
|
||||||
inx
|
inx
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.5 iny
|
.5 iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
tya
|
tya
|
||||||
sec
|
sec
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
bcc .6
|
bcc .6
|
||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
|
|
||||||
.6 lda (ZPPtr1)
|
.6 lda (ZPPtr1)
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
|
@ -718,12 +721,12 @@ CS.DOEVENT lda (pEvent)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hSrvSocket
|
CS.QUIT lda hSrvSocket
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||||
|
|
||||||
.1 lda hLineBuf
|
.1 lda hLineBuf
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ CS.RUN lda #TIMEOUT.MAX
|
||||||
>LDYA L.MSG.TCPIPERR
|
>LDYA L.MSG.TCPIPERR
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
CS.RUN.INIT ldx #3
|
CS.RUN.INIT ldx #3
|
||||||
|
@ -118,15 +118,15 @@ CS.RUN.INIT ldx #3
|
||||||
>SYSCALL AToI
|
>SYSCALL AToI
|
||||||
>STYA SA.LOCAL+S.SOCKADDR.PORT
|
>STYA SA.LOCAL+S.SOCKADDR.PORT
|
||||||
|
|
||||||
CS.RUN.PORTOK >PUSHBI 0 no protocol
|
CS.RUN.PORTOK >PUSHBI S.SOCKET.T.STREAM
|
||||||
lda #S.SOCKET.T.STREAM
|
>PUSHBI 0 no protocol
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hSrvSocket
|
sta hSrvSocket
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHW L.SA.LOCAL
|
||||||
lda hSrvSocket
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol
|
||||||
pha
|
pha
|
||||||
jsr CS.RUN.CLIENT
|
jsr CS.RUN.CLIENT
|
||||||
pla
|
pla
|
||||||
|
|
||||||
bcc .2
|
bcc .2
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||||
bra .2
|
bra .2
|
||||||
|
@ -155,7 +155,7 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol
|
||||||
>LDYA L.MSG.SKTERR
|
>LDYA L.MSG.SKTERR
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK
|
CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK
|
||||||
|
|
|
@ -41,7 +41,10 @@ BLISTX.Free pha
|
||||||
.1 lda $ffff,x SELF MODIFIED
|
.1 lda $ffff,x SELF MODIFIED
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
|
phx
|
||||||
jsr K.FreeMem
|
jsr K.FreeMem
|
||||||
|
|
||||||
|
plx
|
||||||
inx
|
inx
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
|
|
|
@ -57,22 +57,17 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
|
||||||
bcs .7
|
bcs .7
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
lda Nod.Table.hFD-2,x
|
||||||
jsr K.GetMemPtr Y,A = pPD, X = hDevNod
|
jmp K.GetMemPtr Y,A = pPD, X = hDevNod
|
||||||
|
|
||||||
>STYA pFD for IO.Open
|
|
||||||
|
|
||||||
* clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.7 inx
|
.7 inx
|
||||||
inx
|
inx
|
||||||
cpx #K.NOD.MAX*2+2
|
cpx #K.NOD.MAX*2+2
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
.9 lda #MLI.E.NODEV
|
lda #MLI.E.NODEV
|
||||||
sec
|
* sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.8 >STYA ZPPtr2
|
.8 >STYA ZPPtr2
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
@ -87,9 +82,9 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.89 sec
|
.89 sec
|
||||||
|
|
||||||
K.GetDev.9 rts
|
K.GetDev.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetDevStatus
|
* # GetDevStatus
|
||||||
|
@ -122,6 +117,37 @@ DEV.GetStatus sta K.S.IOCTL+S.IOCTL.S
|
||||||
ldx #IOCTL.STATUS
|
ldx #IOCTL.STATUS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.pDrvJmp jmp (pDrv)
|
DEV.pDrvJmp jmp (pDrv)
|
||||||
|
*--------------------------------------
|
||||||
|
DEV.OPEN ldx #IOCTL.OPEN
|
||||||
|
lda IO.hDevNod
|
||||||
|
jsr DEV.pDrvJmp
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda IO.hDevNod
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
DEV.CLOSE ldx #IOCTL.CLOSE
|
||||||
|
lda IO.hDevNod
|
||||||
|
jmp (pDrv)
|
||||||
|
*--------------------------------------
|
||||||
|
DEV.READ ldx #IOCTL.READ
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
*--------------------------------------
|
||||||
|
DEV.WRITE ldx #IOCTL.WRITE
|
||||||
|
|
||||||
|
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
|
||||||
|
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||||
|
|
||||||
|
inc pStack pop hFD
|
||||||
|
|
||||||
|
>LDYAI K.S.IOCTL
|
||||||
|
jsr DEV.pDrvJmp
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
|
||||||
|
|
||||||
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # MKDev
|
* # MKDev
|
||||||
* Create a hDEV
|
* Create a hDEV
|
||||||
|
@ -147,7 +173,7 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
bra .9
|
bra .9
|
||||||
|
|
||||||
.11 stx IO.hDevNod
|
.11 stx IO.hDevNod
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
@ -257,9 +283,9 @@ K.IOCTL ldy #3 hDev
|
||||||
.9 >RET 4
|
.9 >RET 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.GetPFD sta IO.hDevNod
|
DEV.GetPFD sta IO.hDevNod
|
||||||
|
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
|
@ -324,12 +350,12 @@ DEV.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE
|
||||||
DEV.Destroy ldx IO.hDevNod
|
DEV.Destroy ldx IO.hDevNod
|
||||||
lda Nod.Table.hName-2,x
|
lda Nod.Table.hName-2,x
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
stz Nod.Table.hName-2,x
|
stz Nod.Table.hName-2,x
|
||||||
jsr K.FreeMem
|
jsr K.FreeMem
|
||||||
|
|
||||||
ldx IO.hDevNod
|
ldx IO.hDevNod
|
||||||
|
|
||||||
.1 lda Nod.Table.hFD-2,x
|
.1 lda Nod.Table.hFD-2,x
|
||||||
stz Nod.Table.hFD-2,x
|
stz Nod.Table.hFD-2,x
|
||||||
jmp K.FreeMem
|
jmp K.FreeMem
|
||||||
|
|
|
@ -337,7 +337,7 @@ K.FreeMem.ERR >PUSHWI K.FreeMem.MSG
|
||||||
|
|
||||||
tya hMem n Y
|
tya hMem n Y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
* >DEBUG
|
||||||
ldy #S.PS.PID
|
ldy #S.PS.PID
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
|
@ -7,7 +7,6 @@ PIPE.CNT .EQ ZPDRV+4
|
||||||
PIPE.BASEH .EQ ZPDRV+6
|
PIPE.BASEH .EQ ZPDRV+6
|
||||||
PIPE.BUFH .EQ ZPDRV+7
|
PIPE.BUFH .EQ ZPDRV+7
|
||||||
PIPE.SIZEH .EQ ZPDRV+8
|
PIPE.SIZEH .EQ ZPDRV+8
|
||||||
PIPE.nCNT .EQ ZPDRV+10
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PIPE.OPEN ldy #S.FD.PIPE.S
|
PIPE.OPEN ldy #S.FD.PIPE.S
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
|
@ -40,8 +39,8 @@ PIPE.CLOSE ldy #S.FD.PIPE.S
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PIPE.WRITE ldy #S.FD.PIPE.S
|
PIPE.WRITE ldy #S.FD.PIPE.S
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
|
|
||||||
bpl .10
|
bpl .10
|
||||||
|
|
||||||
jmp PIPE.eEOF Remote PS closed the Pipe
|
jmp PIPE.eEOF Remote PS closed the Pipe
|
||||||
|
|
||||||
.10 ldy #S.FD.PIPE.Free
|
.10 ldy #S.FD.PIPE.Free
|
||||||
|
@ -233,7 +232,7 @@ PIPE.READ ldy #S.FD.PIPE.Used+1
|
||||||
jsr PIPE.SubCnt
|
jsr PIPE.SubCnt
|
||||||
|
|
||||||
PIPE.EXIT >LDYA PIPE.CNT Y,A = bytes written
|
PIPE.EXIT >LDYA PIPE.CNT Y,A = bytes written
|
||||||
inc pStack
|
inc pStack Discard hFILE
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
NEW
|
||||||
|
AUTO 3,1
|
||||||
|
*--------------------------------------
|
||||||
|
SOCK.OPEN lda IO.hDevNod
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
SOCK.CLOSE ldy #S.FD.SSOCK.CLOSE
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
*--------------------------------------
|
||||||
|
SOCK.EOF ldy #S.FD.SSOCK.EOF
|
||||||
|
jsr SOCK.SETUP
|
||||||
|
SOCK.JMP jmp (pDrv)
|
||||||
|
*--------------------------------------
|
||||||
|
SOCK.READ ldy #S.FD.SSOCK.READ
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
*--------------------------------------
|
||||||
|
SOCK.WRITE ldy #S.FD.SSOCK.WRITE
|
||||||
|
jsr SOCK.SETUP
|
||||||
|
|
||||||
|
>PUSHA hFD
|
||||||
|
|
||||||
|
phx
|
||||||
|
|
||||||
|
ldx #4
|
||||||
|
ldy #4
|
||||||
|
|
||||||
|
.1 lda (pStack),y
|
||||||
|
>PUSHA
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
plx
|
||||||
|
jsr SOCK.JMP
|
||||||
|
|
||||||
|
>RET 5
|
||||||
|
*--------------------------------------
|
||||||
|
SOCK.SETUP lda (pFD),y
|
||||||
|
tax Function Offset in LIB
|
||||||
|
|
||||||
|
ldy #S.FD.SSOCK.IOH
|
||||||
|
lda (pFD),y
|
||||||
|
jsr K.GetMemPtr
|
||||||
|
>STYA pDrv
|
||||||
|
|
||||||
|
lda IO.hFD
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE usr/src/sys/kernel.s.sock
|
||||||
|
LOAD usr/src/sys/kernel.s
|
||||||
|
ASM
|
|
@ -54,7 +54,7 @@ STDIO.Put1 >PUSHWI K.IOBuf buf
|
||||||
inc write 1 byte
|
inc write 1 byte
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
jsr K.FWrite
|
STDIO.Write jsr K.FWrite
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
@ -108,15 +108,7 @@ K.PutS >STYA .1+1
|
||||||
txa
|
txa
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
jsr K.FWrite
|
bra STDIO.Write
|
||||||
bcc .99
|
|
||||||
|
|
||||||
tay
|
|
||||||
bne .99
|
|
||||||
|
|
||||||
>POP 5 pop hFile, buffer & len
|
|
||||||
|
|
||||||
.99 rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # fputs (BLOCKING)
|
* # fputs (BLOCKING)
|
||||||
* Write Str to hFILE
|
* Write Str to hFILE
|
||||||
|
@ -166,14 +158,8 @@ K.FPutS lda (pStack)
|
||||||
pla
|
pla
|
||||||
>PUSHA push len LO
|
>PUSHA push len LO
|
||||||
|
|
||||||
jsr K.Write
|
jsr STDIO.Write
|
||||||
bcc .8
|
bcs K.FPutS.RTS
|
||||||
|
|
||||||
tay
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
>POP 5
|
|
||||||
rts
|
|
||||||
|
|
||||||
.8 >POP 2
|
.8 >POP 2
|
||||||
|
|
||||||
|
@ -381,10 +367,10 @@ K.FOpen jsr PFT.CheckPath4
|
||||||
inc pStack discard filename
|
inc pStack discard filename
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
jmp IO.Open
|
jmp UNISTD.Open
|
||||||
|
|
||||||
.9 >POP 6
|
.9 >POP 6
|
||||||
.99 rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FClose
|
* # FClose
|
||||||
* Close a file
|
* Close a file
|
||||||
|
@ -399,7 +385,7 @@ K.FOpen jsr PFT.CheckPath4
|
||||||
K.FClose jsr PFT.CheckNodeA
|
K.FClose jsr PFT.CheckNodeA
|
||||||
bcs K.FRead.RTS
|
bcs K.FRead.RTS
|
||||||
|
|
||||||
jmp IO.Close
|
jmp UNISTD.Close
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FRead (BLOCKING)
|
* # FRead (BLOCKING)
|
||||||
* Read bytes from file
|
* Read bytes from file
|
||||||
|
@ -577,7 +563,7 @@ K.FEOF jsr PFT.CheckNodeA
|
||||||
.DA STDIO.IOERR BDEV
|
.DA STDIO.IOERR BDEV
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA STDIO.IOERR DSOCK
|
.DA STDIO.IOERR DSOCK
|
||||||
.DA IO.EOF.SSOCK
|
.DA SOCK.EOF
|
||||||
.DA PIPE.EOF
|
.DA PIPE.EOF
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FTell
|
* # FTell
|
||||||
|
|
|
@ -21,13 +21,14 @@ K.Open jsr PFT.CheckPath1
|
||||||
stz IO.Open.AUXTYPE
|
stz IO.Open.AUXTYPE
|
||||||
stz IO.Open.AUXTYPE+1
|
stz IO.Open.AUXTYPE+1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.Open ldx #5 /dev/
|
UNISTD.Open ldx #5 /dev/
|
||||||
cpx K.MLI.PATH
|
cpx K.MLI.PATH
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
.1 lda K.MLI.PATH,x
|
.1 lda K.MLI.PATH,x
|
||||||
cmp IO.DEV-1,x
|
cmp IO.DEV-1,x
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -37,8 +38,10 @@ IO.Open ldx #5 /dev/
|
||||||
|
|
||||||
jsr K.GetDevByName
|
jsr K.GetDevByName
|
||||||
bcs .9
|
bcs .9
|
||||||
*--------------------------------------
|
|
||||||
stx IO.hDevNod pFD set by GetDevByName
|
>STYA pFD
|
||||||
|
|
||||||
|
stx IO.hDevNod
|
||||||
|
|
||||||
lda (pFD) #S.FD.T
|
lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
|
@ -47,11 +50,11 @@ IO.Open ldx #5 /dev/
|
||||||
.2
|
.2
|
||||||
* .DA STDIO.IOERR REG
|
* .DA STDIO.IOERR REG
|
||||||
.DA STDIO.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA IO.OPEN.DEV
|
.DA DEV.OPEN
|
||||||
.DA IO.OPEN.DEV
|
.DA DEV.OPEN
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA IO.OPEN.SOCK
|
.DA SOCK.OPEN
|
||||||
.DA IO.OPEN.SOCK
|
.DA SOCK.OPEN
|
||||||
.DA PIPE.OPEN
|
.DA PIPE.OPEN
|
||||||
|
|
||||||
.8 jmp FS.OPEN.REG
|
.8 jmp FS.OPEN.REG
|
||||||
|
@ -68,16 +71,16 @@ IO.Open ldx #5 /dev/
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Close jsr DEV.GetPFD
|
K.Close jsr DEV.GetPFD
|
||||||
|
|
||||||
IO.Close lda (pFD) #S.FD.T
|
UNISTD.Close lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA FS.CLOSE.REG
|
.1 .DA FS.CLOSE.REG
|
||||||
.DA FS.CLOSE.DIR
|
.DA FS.CLOSE.DIR
|
||||||
.DA IO.CLOSE.DEV
|
.DA DEV.CLOSE
|
||||||
.DA IO.CLOSE.DEV
|
.DA DEV.CLOSE
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA IO.CLOSE.SOCK
|
.DA SOCK.CLOSE
|
||||||
.DA IO.CLOSE.SOCK
|
.DA SOCK.CLOSE
|
||||||
.DA PIPE.CLOSE
|
.DA PIPE.CLOSE
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # read
|
* # read
|
||||||
|
@ -103,11 +106,11 @@ UNISTD.Read lda (pFD) #S.FD.T
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA FS.READ.REG
|
.1 .DA FS.READ.REG
|
||||||
.DA STDIO.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA IO.READ.CDEV
|
.DA DEV.READ
|
||||||
.DA STDIO.IOERR BDEV
|
.DA STDIO.IOERR BDEV
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA STDIO.IOERR DSOCK
|
.DA STDIO.IOERR DSOCK
|
||||||
.DA IO.READ.SSOCK
|
.DA SOCK.READ
|
||||||
.DA PIPE.READ
|
.DA PIPE.READ
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # write
|
* # write
|
||||||
|
@ -133,65 +136,12 @@ UNISTD.Write lda (pFD) #S.FD.T
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA FS.WRITE.REG
|
.1 .DA FS.WRITE.REG
|
||||||
.DA STDIO.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA IO.WRITE.CDEV
|
.DA DEV.WRITE
|
||||||
.DA STDIO.IOERR BDEV
|
.DA STDIO.IOERR BDEV
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA STDIO.IOERR DSOCK
|
.DA STDIO.IOERR DSOCK
|
||||||
.DA IO.WRITE.SSOCK
|
.DA SOCK.WRITE
|
||||||
.DA PIPE.WRITE
|
.DA PIPE.WRITE
|
||||||
*--------------------------------------
|
|
||||||
IO.OPEN.DEV ldx #IOCTL.OPEN
|
|
||||||
lda IO.hDevNod
|
|
||||||
jsr DEV.pDrvJmp
|
|
||||||
bcs IO.RTS
|
|
||||||
*--------------------------------------
|
|
||||||
IO.OPEN.SOCK lda IO.hDevNod
|
|
||||||
clc
|
|
||||||
|
|
||||||
IO.RTS rts
|
|
||||||
*--------------------------------------
|
|
||||||
IO.CLOSE.DEV ldx #IOCTL.CLOSE
|
|
||||||
lda IO.hDevNod
|
|
||||||
jmp DEV.pDrvJmp
|
|
||||||
*--------------------------------------
|
|
||||||
IO.READ.CDEV ldx #IOCTL.READ
|
|
||||||
.HS 2C BIT ABS
|
|
||||||
*--------------------------------------
|
|
||||||
IO.WRITE.CDEV ldx #IOCTL.WRITE
|
|
||||||
|
|
||||||
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
|
|
||||||
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
|
||||||
|
|
||||||
inc pStack pop hFD
|
|
||||||
|
|
||||||
>LDYAI K.S.IOCTL
|
|
||||||
jsr DEV.pDrvJmp
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
IO.CLOSE.SOCK ldy #S.FD.SSOCK.CLOSE
|
|
||||||
.HS 2C BIT ABS
|
|
||||||
*--------------------------------------
|
|
||||||
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
|
|
||||||
.HS 2C BIT ABS
|
|
||||||
*--------------------------------------
|
|
||||||
IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
|
||||||
.HS 2C BIT ABS
|
|
||||||
*--------------------------------------
|
|
||||||
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
|
||||||
|
|
||||||
lda (pFD),y
|
|
||||||
tax Function Offset in LIB
|
|
||||||
|
|
||||||
ldy #S.FD.SSOCK.IOH
|
|
||||||
lda (pFD),y
|
|
||||||
jsr K.GetMemPtr
|
|
||||||
>STYA .1+1
|
|
||||||
lda IO.hFD
|
|
||||||
.1 jmp $FFFF SELF MODIFIED
|
|
||||||
*/-------------------------------------
|
*/-------------------------------------
|
||||||
* # LSeek
|
* # LSeek
|
||||||
* Set the file-position indicator for hFD
|
* Set the file-position indicator for hFD
|
||||||
|
@ -204,7 +154,7 @@ IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
||||||
* `>PUSHB whence`
|
* `>PUSHB whence`
|
||||||
* `>SYSCALL fseek`
|
* `>SYSCALL fseek`
|
||||||
*\-------------------------------------
|
*\-------------------------------------
|
||||||
K.LSeek
|
*K.LSeek
|
||||||
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ChOwn
|
* # ChOwn
|
||||||
|
|
|
@ -81,6 +81,7 @@ D1.B .PH $D000
|
||||||
.INB usr/src/sys/kernel.s.unistd
|
.INB usr/src/sys/kernel.s.unistd
|
||||||
.INB usr/src/sys/kernel.s.stdio
|
.INB usr/src/sys/kernel.s.stdio
|
||||||
.INB usr/src/sys/kernel.s.dev
|
.INB usr/src/sys/kernel.s.dev
|
||||||
|
.INB usr/src/sys/kernel.s.sock
|
||||||
.INB usr/src/sys/kernel.s.pipe
|
.INB usr/src/sys/kernel.s.pipe
|
||||||
.EP
|
.EP
|
||||||
D1.S .EQ *-D1.B
|
D1.S .EQ *-D1.B
|
||||||
|
|
Loading…
Reference in New Issue