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