mirror of
https://github.com/A2osX/A2osX.git
synced 2024-05-31 16:41:30 +00:00
Kernel 0.9.2
This commit is contained in:
parent
62efb2d2e0
commit
92922a9308
|
@ -694,7 +694,7 @@ TODO: mode="w+t=TYP,x=AUXTYPE"
|
||||||
Close a file
|
Close a file
|
||||||
|
|
||||||
## C
|
## C
|
||||||
int fclose ( FILE * stream );
|
int fclose ( hFILE streamm );
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
@ -702,12 +702,13 @@ int fclose ( FILE * stream );
|
||||||
**Out:**
|
**Out:**
|
||||||
|
|
||||||
# FRead
|
# FRead
|
||||||
int fread ( void * ptr, int count, FILE * stream );
|
int fread (hFILE stream, void * ptr, int count );
|
||||||
Read bytes from file
|
Read bytes from file
|
||||||
**In:**
|
**In:**
|
||||||
PUSHW = Dest Ptr
|
`>PUSHWI count`
|
||||||
PUSHW = Bytes To Read
|
`>PUSHW ptr`
|
||||||
PUSHB = hFILE
|
`lda hFILE`
|
||||||
|
`>SYSCALL fread`
|
||||||
**Out:**
|
**Out:**
|
||||||
Y,A = Bytes Read
|
Y,A = Bytes Read
|
||||||
|
|
||||||
|
@ -715,13 +716,14 @@ Read bytes from file
|
||||||
Write bytes to file
|
Write bytes to file
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int fwrite ( const void * ptr, int count, hFILE stream );`
|
`int fwrite (hFILE stream, const void * ptr, int count );`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
`>PUSHB = hFILE`
|
`>PUSHWI count`
|
||||||
`>PUSHWI ptr`
|
`>PUSHW ptr`
|
||||||
`>LDYA count`
|
`lda hFILE`
|
||||||
|
`>SYSCALL fwrite`
|
||||||
|
|
||||||
# Out:
|
# Out:
|
||||||
Y,A = Bytes Written
|
Y,A = Bytes Written
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -146,7 +146,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GETCACHE
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
|
|
||||||
>LDYA L.MSG0
|
>LDYA L.MSG0
|
||||||
>SYSCALL printf
|
>SYSCALL puts
|
||||||
|
|
||||||
ldx #K.ARPCACHE.SIZE
|
ldx #K.ARPCACHE.SIZE
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ CS.END
|
||||||
LIBTCPIP .AZ "libtcpip.o"
|
LIBTCPIP .AZ "libtcpip.o"
|
||||||
SSCANF.IP .AZ "%d.%d.%d.%d"
|
SSCANF.IP .AZ "%d.%d.%d.%d"
|
||||||
SSCANF.MAC .AZ "%h:%h:%h:%h:%h:%h"
|
SSCANF.MAC .AZ "%h:%h:%h:%h:%h:%h"
|
||||||
MSG0 .AZ "STS TTL MAC Address IP Address\r\n"
|
MSG0 .AZ "STS TTL MAC Address IP Address"
|
||||||
MSG1 .AZ "$%h %5D %h:%h:%h:%h:%h:%h %d.%d.%d.%d\r\n"
|
MSG1 .AZ "$%h %5D %h:%h:%h:%h:%h:%h %d.%d.%d.%d\r\n"
|
||||||
MSG2 .AZ "%d.%d.%d.%d is at %h:%h:%h:%h:%h:%h\r\n"
|
MSG2 .AZ "%d.%d.%d.%d is at %h:%h:%h:%h:%h:%h\r\n"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
|
|
|
@ -305,7 +305,6 @@ FIO.ReadFromFile
|
||||||
adc #SRC.hFILES-1
|
adc #SRC.hFILES-1
|
||||||
tay
|
tay
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ MAC.Quit >LDA.G MAC.hCtxBuf
|
||||||
|
|
||||||
.1 >LDA.G MAC.hCtxList
|
.1 >LDA.G MAC.hCtxList
|
||||||
beq .2
|
beq .2
|
||||||
>SYSCALL SListFree.A
|
>SYSCALL SListFree
|
||||||
|
|
||||||
.2 >LDA.G MAC.hMacroBuf
|
.2 >LDA.G MAC.hMacroBuf
|
||||||
beq .3
|
beq .3
|
||||||
|
@ -51,7 +51,7 @@ MAC.Quit >LDA.G MAC.hCtxBuf
|
||||||
|
|
||||||
.3 >LDA.G MAC.hMacroList
|
.3 >LDA.G MAC.hMacroList
|
||||||
beq .8
|
beq .8
|
||||||
>SYSCALL SListFree.A
|
>SYSCALL SListFree
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -66,7 +66,7 @@ SYM.Quit >LDA.G SYM.hLookupBuf
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
.3 >LDA.G SYM.hGlobalList
|
.3 >LDA.G SYM.hGlobalList
|
||||||
beq .8
|
beq .8
|
||||||
>SYSCALL SListFree.A
|
>SYSCALL SListFree
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -4,7 +4,7 @@ AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BUILD/BIN/DEV/ASM
|
.TF BIN/DEV/ASM
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
|
|
@ -135,7 +135,6 @@ CS.RUN >SYSCALL GetChar
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
>PUSHWI 256
|
>PUSHWI 256
|
||||||
pla
|
pla
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
|
|
||||||
bcc CS.RUN.PRINT
|
bcc CS.RUN.PRINT
|
||||||
|
|
|
@ -429,7 +429,7 @@ SaveFile >PUSHWI 0 Aux type
|
||||||
|
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
|
|
|
@ -87,9 +87,9 @@ CS.RUN >LDYA L.MSG0
|
||||||
>SYSCALL GetDevStatus
|
>SYSCALL GetDevStatus
|
||||||
|
|
||||||
>LEA.G DCB.NIC
|
>LEA.G DCB.NIC
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
>STYA.G IOCTL+S.IOCTL.BUFPTR
|
||||||
lda S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.STATCODE.GETDCB
|
||||||
sta S.IOCTL.STATCODE
|
>STA.G IOCTL+S.IOCTL.STATCODE
|
||||||
|
|
||||||
>PUSHEA.G IOCTL
|
>PUSHEA.G IOCTL
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
|
@ -99,11 +99,14 @@ CS.RUN >LDYA L.MSG0
|
||||||
CS.RUN.DUMP >LDYA L.MSG0.L
|
CS.RUN.DUMP >LDYA L.MSG0.L
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
ldy #5
|
ldy #DCB.NIC+S.DCB.NIC.MAC+5
|
||||||
|
ldx #6
|
||||||
|
|
||||||
.1 >PUSHB DCB.NIC+S.DCB.NIC.MAC,y
|
.1 lda (pData),y
|
||||||
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
bpl .1
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
>PUSHEA.G DIB+S.DIB.IDS
|
>PUSHEA.G DIB+S.DIB.IDS
|
||||||
|
|
||||||
|
@ -142,18 +145,19 @@ CS.RUN.DUMP >LDYA L.MSG0.L
|
||||||
>LDYA L.MSG1.DEV.IP
|
>LDYA L.MSG1.DEV.IP
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
|
>LDYA L.MSG1.LINK
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
lda DCB.NIC+S.DCB.NIC.LINK
|
lda DCB.NIC+S.DCB.NIC.LINK
|
||||||
and #S.DCB.NIC.LINK.OK
|
and #S.DCB.NIC.LINK.OK
|
||||||
bne CS.RUN.LINK
|
bne CS.RUN.LINK
|
||||||
|
|
||||||
>PUSHW L.MSG1.LINK.KO
|
>LDYA L.MSG1.LINK.KO
|
||||||
>LDYA L.MSG1.LINK
|
>SYSCALL puts
|
||||||
>SYSCALL printf
|
|
||||||
bra CS.RUN.DUMPIP
|
bra CS.RUN.DUMPIP
|
||||||
|
|
||||||
CS.RUN.LINK >PUSHW L.MSG1.LINK.OK
|
CS.RUN.LINK >LDYA L.MSG1.LINK.OK
|
||||||
>LDYA L.MSG1.LINK
|
>SYSCALL puts
|
||||||
>SYSCALL printf
|
|
||||||
|
|
||||||
>LDYA L.MSG1.LINKSPEED
|
>LDYA L.MSG1.LINKSPEED
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
@ -177,7 +181,7 @@ CS.RUN.LINK >PUSHW L.MSG1.LINK.OK
|
||||||
bra .6
|
bra .6
|
||||||
|
|
||||||
.5 >LDYA L.MSG1.DPLX.FD
|
.5 >LDYA L.MSG1.DPLX.FD
|
||||||
.6 >SYSCALL printf
|
.6 >SYSCALL puts
|
||||||
|
|
||||||
CS.RUN.DUMPIP >LDYA L.MSG2
|
CS.RUN.DUMPIP >LDYA L.MSG2
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
@ -190,7 +194,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2
|
||||||
|
|
||||||
.11 >LDYA L.MSG2.U
|
.11 >LDYA L.MSG2.U
|
||||||
|
|
||||||
.10 >SYSCALL printf
|
.10 >SYSCALL puts
|
||||||
|
|
||||||
ldy #S.IPCFG.DHCPSRVR+3
|
ldy #S.IPCFG.DHCPSRVR+3
|
||||||
ldx #4
|
ldx #4
|
||||||
|
@ -275,16 +279,16 @@ MSG1.DEV .AS "\r\nDevice Configuration :\r\n"
|
||||||
.AZ " HW Address : %02h:%02h:%02h:%02h:%02h:%02h\r\n"
|
.AZ " HW Address : %02h:%02h:%02h:%02h:%02h:%02h\r\n"
|
||||||
MSG1.DEV.ARP .AZ " ARP Offload : %d\r\n"
|
MSG1.DEV.ARP .AZ " ARP Offload : %d\r\n"
|
||||||
MSG1.DEV.IP .AZ " IP Offload : %d\r\n"
|
MSG1.DEV.IP .AZ " IP Offload : %d\r\n"
|
||||||
MSG1.LINK .AZ " Link Status : %s\r\n"
|
MSG1.LINK .AZ " Link Status : "
|
||||||
MSG1.LINK.OK .AZ "OK"
|
MSG1.LINK.OK .AZ "OK"
|
||||||
MSG1.LINK.KO .AZ "Media Disconnected"
|
MSG1.LINK.KO .AZ "Media Disconnected"
|
||||||
MSG1.LINKSPEED .AZ " Link Speed : 1"
|
MSG1.LINKSPEED .AZ " Link Speed : 1"
|
||||||
MSG1.DPLX.FD .AZ " Mbit/s,Full Duplex\r\n"
|
MSG1.DPLX.FD .AZ " Mbit/s,Full Duplex"
|
||||||
MSG1.DPLX.HD .AZ " Mbit/s,Half Duplex\r\n"
|
MSG1.DPLX.HD .AZ " Mbit/s,Half Duplex"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG2 .AZ "\r\nIP Configuration : "
|
MSG2 .AZ "\r\nIP Configuration : "
|
||||||
MSG2.C .AZ "Configured\r\n"
|
MSG2.C .AZ "Configured"
|
||||||
MSG2.U .AZ "Not Configured\r\n"
|
MSG2.U .AZ "Not Configured"
|
||||||
MSG2.DHCPSRVR .AZ " DHCP Server : %d.%d.%d.%d\r\n"
|
MSG2.DHCPSRVR .AZ " DHCP Server : %d.%d.%d.%d\r\n"
|
||||||
MSG2.IP .AZ " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\r\n"
|
MSG2.IP .AZ " IP/Mask : %d.%d.%d.%d/%d.%d.%d.%d\r\n"
|
||||||
MSG2.GW .AZ " Gateway : %d.%d.%d.%d\r\n"
|
MSG2.GW .AZ " Gateway : %d.%d.%d.%d\r\n"
|
||||||
|
|
|
@ -158,7 +158,7 @@ CS.RUN.FILE >LDA.G Arg
|
||||||
|
|
||||||
.1 >PUSHW ZPDataBufPtr Dst Ptr
|
.1 >PUSHW ZPDataBufPtr Dst Ptr
|
||||||
>PUSHWI FILEBUF.SIZE Bytes To Read
|
>PUSHWI FILEBUF.SIZE Bytes To Read
|
||||||
>PUSHB.G hFile
|
>LDA.G hFile
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
|
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
|
@ -49,7 +49,7 @@ CS.RUN >LDYA L.MemStat
|
||||||
>SYSCALL GetMemStat
|
>SYSCALL GetMemStat
|
||||||
|
|
||||||
>LDYA L.MSG.Main
|
>LDYA L.MSG.Main
|
||||||
>SYSCALL printf
|
>SYSCALL puts
|
||||||
|
|
||||||
lda MemStat+S.MSTAT.MF
|
lda MemStat+S.MSTAT.MF
|
||||||
sec
|
sec
|
||||||
|
@ -67,7 +67,7 @@ CS.RUN >LDYA L.MemStat
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
>LDYA L.MSG.Aux
|
>LDYA L.MSG.Aux
|
||||||
>SYSCALL printf
|
>SYSCALL puts
|
||||||
|
|
||||||
lda MemStat+S.MSTAT.XF
|
lda MemStat+S.MSTAT.XF
|
||||||
sec
|
sec
|
||||||
|
@ -85,7 +85,7 @@ CS.RUN >LDYA L.MemStat
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
>LDYA L.MSG.Kernel
|
>LDYA L.MSG.Kernel
|
||||||
>SYSCALL printf
|
>SYSCALL puts
|
||||||
|
|
||||||
lda MemStat+S.MSTAT.DH
|
lda MemStat+S.MSTAT.DH
|
||||||
sec
|
sec
|
||||||
|
@ -103,7 +103,7 @@ CS.RUN >LDYA L.MemStat
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
>LDYA L.MSG.End
|
>LDYA L.MSG.End
|
||||||
>SYSCALL printf
|
>SYSCALL puts
|
||||||
lda #0
|
lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -115,11 +115,14 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.Main .AZ "--- Main Memory ---------------\r\n"
|
MSG.Main .AZ "--- Main Memory ---------------"
|
||||||
MSG.Aux .AZ "--- Aux Memory ----------------\r\n"
|
MSG.Aux .AZ "--- Aux Memory ----------------"
|
||||||
MSG.Kernel .AZ "--- Kernel (Drivers) Memory ---\r\n"
|
MSG.Kernel .AZ "--- Kernel (Drivers) Memory ---"
|
||||||
MSG.Stat .AZ " Low : $%H\r\n Free Ptr : $%H\r\n High : $%H\r\n Available Memory : %05D Bytes\r\n"
|
MSG.Stat .AS " Low : $%H\r\n"
|
||||||
MSG.End .AZ "-------------------------------\r\n"
|
.AS " Free Ptr : $%H\r\n"
|
||||||
|
.AS " High : $%H\r\n"
|
||||||
|
.AZ " Available Memory : %05D Bytes\r\n"
|
||||||
|
MSG.End .AZ "-------------------------------"
|
||||||
MemStat .BS S.MSTAT
|
MemStat .BS S.MSTAT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
|
|
|
@ -47,7 +47,8 @@ L.MSG5 .DA MSG5
|
||||||
L.MSG.FREE .DA MSG.FREE
|
L.MSG.FREE .DA MSG.FREE
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >INC.G MEM.COUNT Skip SLOT0
|
CS.INIT lda #1
|
||||||
|
>STA.G MEM.COUNT Skip SLOT0
|
||||||
|
|
||||||
>LEA.G MemStat
|
>LEA.G MemStat
|
||||||
>SYSCALL GetMemStat
|
>SYSCALL GetMemStat
|
||||||
|
@ -90,7 +91,7 @@ CS.RUN >SYSCALL GetChar
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG0
|
>LDYA L.MSG0
|
||||||
>SYSCALL printf
|
>SYSCALL puts
|
||||||
|
|
||||||
.1 >LDA.G MEM.COUNT
|
.1 >LDA.G MEM.COUNT
|
||||||
>SYSCALL GetMemByID
|
>SYSCALL GetMemByID
|
||||||
|
@ -282,7 +283,7 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .AZ " # Flags PID REF PTR LEN BINPATH/DATA\r\n"
|
MSG0 .AZ " # Flags PID REF PTR LEN BINPATH/DATA"
|
||||||
MSG1.INV .AZ "\e[7m"
|
MSG1.INV .AZ "\e[7m"
|
||||||
MSG1 .AZ "%03d %s %03d %03d $%H %05D "
|
MSG1 .AZ "%03d %s %03d %03d $%H %05D "
|
||||||
MSG1.BIN .AZ "{%s}\e[0m\r\n"
|
MSG1.BIN .AZ "{%s}\e[0m\r\n"
|
||||||
|
|
211
BIN/TELNET.S.txt
Normal file
211
BIN/TELNET.S.txt
Normal file
|
@ -0,0 +1,211 @@
|
||||||
|
NEW
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
AUTO 4,1
|
||||||
|
.LIST OFF
|
||||||
|
.OP 65C02
|
||||||
|
.OR $2000
|
||||||
|
.TF BIN/TELNET
|
||||||
|
*--------------------------------------
|
||||||
|
.INB INC/MACROS.I
|
||||||
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/ETH.I
|
||||||
|
.INB INC/LIBTCPIP.I
|
||||||
|
*--------------------------------------
|
||||||
|
TIMEOUT.MAX .EQ 20 2 sec.
|
||||||
|
*--------------------------------------
|
||||||
|
ZPFrameBase .EQ ZPBIN
|
||||||
|
ZPFrameLen .EQ ZPBIN+2
|
||||||
|
ZPFramePtr1 .EQ ZPBIN+4
|
||||||
|
ZPIPCfgPtr .EQ ZPBIN+6
|
||||||
|
*--------------------------------------
|
||||||
|
* File Header (16 Bytes)
|
||||||
|
*--------------------------------------
|
||||||
|
CS.START cld
|
||||||
|
jmp (.1,x)
|
||||||
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
|
.DA #1 BIN Layout Version 1
|
||||||
|
.DA 0
|
||||||
|
.DA CS.END-CS.START Code Length To Relocate
|
||||||
|
.DA DS.END-DS.START Data Segment to Allocate
|
||||||
|
.DA #16 SS
|
||||||
|
.DA #8 ZP
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
.1 .DA CS.INIT
|
||||||
|
.DA CS.RUN
|
||||||
|
.DA CS.DOEVENT
|
||||||
|
.DA CS.QUIT
|
||||||
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
|
L.Socket .DA Socket
|
||||||
|
L.MSG.IPKO .DA MSG.IPKO
|
||||||
|
L.MSG.USAGE .DA MSG.USAGE
|
||||||
|
L.MSG.UNKNOWN .DA MSG.UNKNOWN
|
||||||
|
L.MSG.HOSTOK .DA MSG.HOSTOK
|
||||||
|
L.MSG.SKTKO .DA MSG.SKTKO
|
||||||
|
.DA 0
|
||||||
|
*--------------------------------------
|
||||||
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
|
>SYSCALL LoadLib
|
||||||
|
bcs .9
|
||||||
|
sta hLIBTCPIP
|
||||||
|
|
||||||
|
lda (pPs)
|
||||||
|
ora #S.PS.F.EVENT Now accept events
|
||||||
|
sta (pPs)
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
||||||
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
|
bmi CS.RUN.IPOK
|
||||||
|
|
||||||
|
>LDYA L.MSG.IPKO
|
||||||
|
>SYSCALL printf
|
||||||
|
lda #K.E.SYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
CS.RUN.IPOK ldy #S.PS.ARGC
|
||||||
|
lda (pPs),y
|
||||||
|
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
jsr Init.Timeout
|
||||||
|
|
||||||
|
.2 >PUSHW pData DST.IP
|
||||||
|
lda #1
|
||||||
|
>SYSCALL GetArg
|
||||||
|
>PUSHYA
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||||
|
bcc CS.RUN.HOSTOK
|
||||||
|
>SLEEP
|
||||||
|
jsr Wait.Timeout
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
>SYSCALL GetArg
|
||||||
|
>PUSHYA
|
||||||
|
>LDYA L.MSG.UNKNOWN
|
||||||
|
bra .99
|
||||||
|
|
||||||
|
.9 >LDYA L.MSG.USAGE
|
||||||
|
.99 >SYSCALL printf
|
||||||
|
lda #K.E.SYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
CS.RUN.HOSTOK lda #1
|
||||||
|
>SYSCALL GetArg
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
ldy #DST.IP+3
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.1 lda (pData),y
|
||||||
|
sta Socket.Dst.Addr,x
|
||||||
|
>PUSHA
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
>LDYA L.MSG.HOSTOK
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
|
CS.RUN.OPENSKT ldx #3
|
||||||
|
ldy #S.IPCFG.IP+3
|
||||||
|
|
||||||
|
.1 lda (ZPIPCfgPtr),y
|
||||||
|
sta Socket.Src.Addr,x
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
>PUSHW L.Socket
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
>LDYA L.MSG.SKTKO
|
||||||
|
>SYSCALL printf
|
||||||
|
lda #K.E.SYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.2 txa
|
||||||
|
ldy #hSocket
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
.9 lda #0
|
||||||
|
sec
|
||||||
|
CS.RUN.ERR rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.DOEVENT lda (pEvent)
|
||||||
|
bpl .9 is it a TIMER event?
|
||||||
|
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
dec
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
|
.9 sec do not discard TIMER event
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.QUIT ldy #hSocket
|
||||||
|
lda (pData),y
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Close
|
||||||
|
|
||||||
|
.1 lda hLIBTCPIP
|
||||||
|
>SYSCALL UnloadLib
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
Init.Timeout ldy #TimeOut
|
||||||
|
lda #TIMEOUT.MAX
|
||||||
|
sta (pData),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
Wait.TimeOut sec
|
||||||
|
ldy #TimeOut
|
||||||
|
lda (pData),y
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.END
|
||||||
|
LIBTCPIP .AZ "libtcpip.o"
|
||||||
|
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured.\r\n"
|
||||||
|
MSG.USAGE .AZ "Usage : TELNET <ip|host> [port]\r\n"
|
||||||
|
MSG.UNKNOWN .AZ "%s: Unknown host\r\n"
|
||||||
|
MSG.HOSTOK .AZ "Connecting to %d.%d.%d.%d (%s) ...\r\n"
|
||||||
|
MSG.SKTKO .AZ "Failed to Open Socket.\r\n"
|
||||||
|
hLIBTCPIP .BS 1
|
||||||
|
TimeOut.ms .BS 2
|
||||||
|
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||||
|
.BS 1
|
||||||
|
.DA #S.IP.PROTOCOL.TCP
|
||||||
|
.BS 1
|
||||||
|
Socket.Src.Addr .BS 4
|
||||||
|
Socket.Src.Port .DA 0 Dynamic
|
||||||
|
Socket.Dst.Addr .BS 4
|
||||||
|
Socket.Dst.Port .DA TCP.PORT.TELNET
|
||||||
|
*--------------------------------------
|
||||||
|
.DUMMY
|
||||||
|
.OR 0
|
||||||
|
DS.START
|
||||||
|
DST.IP .BS 4
|
||||||
|
hSocket .BS 1
|
||||||
|
TimeOut .BS 1
|
||||||
|
DS.END
|
||||||
|
.ED
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/BIN/TELNET.S
|
||||||
|
ASM
|
|
@ -622,8 +622,7 @@ CS.RUN.Copy stz .90+1
|
||||||
|
|
||||||
>PUSHW ZPPtr1 Dst Ptr
|
>PUSHW ZPPtr1 Dst Ptr
|
||||||
>PUSHWI X.COPY.BUF.SIZE Bytes To Read
|
>PUSHWI X.COPY.BUF.SIZE Bytes To Read
|
||||||
ldy #hSrcFile
|
>LDA.G hSrcFile
|
||||||
>PUSHB (pData),y
|
|
||||||
>SYSCALL FRead
|
>SYSCALL FRead
|
||||||
bcc .1
|
bcc .1
|
||||||
cmp #MLI.E.EOF
|
cmp #MLI.E.EOF
|
||||||
|
@ -635,8 +634,7 @@ CS.RUN.Copy stz .90+1
|
||||||
|
|
||||||
>PUSHW ZPPtr1 Src Ptr
|
>PUSHW ZPPtr1 Src Ptr
|
||||||
>PUSHW ZPPtr2 Bytes To Write
|
>PUSHW ZPPtr2 Bytes To Write
|
||||||
ldy #hDstFile
|
>LDA.G hDstFile
|
||||||
>PUSHB (pData),y
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -252,7 +252,6 @@ CS.RUN lda #S.BM.F.BBP1
|
||||||
>PUSHEA.G PIX.Header
|
>PUSHEA.G PIX.Header
|
||||||
>PUSHWI S.BM
|
>PUSHWI S.BM
|
||||||
>LDA.G hOutputFile
|
>LDA.G hOutputFile
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
|
@ -290,7 +289,6 @@ CS.RUN.LOOP inc ZPLineCount
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
>PUSHW ZPPIXRowBytes
|
>PUSHW ZPPIXRowBytes
|
||||||
>LDA.G hOutputFile
|
>LDA.G hOutputFile
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,6 @@ NEW
|
||||||
PREFIX /A2OSX.BUILD
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
# put your IP address and your hostname and aliases below
|
# put your IP address and your hostname and aliases below
|
||||||
# 1.2.3.4 myserver.mydomain myserver
|
1.2.3.4 myserver.mydomain myserver
|
||||||
MAN
|
MAN
|
||||||
TEXT ETC/HOSTS
|
TEXT ETC/HOSTS
|
||||||
|
|
|
@ -703,7 +703,6 @@ CS.RUN.WriteByte
|
||||||
>PUSHW ZPOutPutBufPtr
|
>PUSHW ZPOutPutBufPtr
|
||||||
>PUSHWI 256
|
>PUSHWI 256
|
||||||
>LDA.G hOutputFile
|
>LDA.G hOutputFile
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -726,7 +725,6 @@ CS.RUN.FlushOutPutBuf
|
||||||
lda #0
|
lda #0
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDA.G hOutputFile
|
>LDA.G hOutputFile
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
|
@ -754,7 +752,6 @@ CS.RUN.WriteBMAndTbl
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI S.FON
|
>PUSHWI S.FON
|
||||||
>LDA.G hOutputFile
|
>LDA.G hOutputFile
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -774,7 +771,6 @@ CS.RUN.WriteBMAndTbl
|
||||||
ply
|
ply
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDA.G hOutputFile
|
>LDA.G hOutputFile
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
|
@ -68,6 +68,8 @@ ERR.DEV .EQ $B3
|
||||||
UDP.PORT.DNS .EQ 53
|
UDP.PORT.DNS .EQ 53
|
||||||
UDP.PORT.PMAP .EQ 111
|
UDP.PORT.PMAP .EQ 111
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TCP.PORT.TELNET .EQ 23
|
||||||
|
*--------------------------------------
|
||||||
S.IPCFG.STATUS .EQ 0
|
S.IPCFG.STATUS .EQ 0
|
||||||
S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured
|
S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured
|
||||||
S.IPCFG.STATUS.SDISC .EQ %00000001 DISCOVERY Sent
|
S.IPCFG.STATUS.SDISC .EQ %00000001 DISCOVERY Sent
|
||||||
|
@ -83,8 +85,8 @@ S.IPCFG.MASK .EQ 16
|
||||||
S.IPCFG.GW .EQ 20
|
S.IPCFG.GW .EQ 20
|
||||||
S.IPCFG.DNS1 .EQ 24
|
S.IPCFG.DNS1 .EQ 24
|
||||||
S.IPCFG.DNS2 .EQ 28
|
S.IPCFG.DNS2 .EQ 28
|
||||||
S.IPCFG.HOSTNAME .EQ 32 1+15 char PSTR
|
S.IPCFG.HOSTNAME .EQ 32 15+\0 C String
|
||||||
S.IPCFG.DOMAIN .EQ 48 1+79 char PSTR
|
S.IPCFG.DOMAIN .EQ 48 79+\0 C String
|
||||||
*
|
*
|
||||||
S.IPCFG .EQ 128
|
S.IPCFG .EQ 128
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -231,7 +231,6 @@ CS.RUN.Save >PUSHWI 0 AUXTYPE
|
||||||
|
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
>PUSHA
|
|
||||||
>SYSCALL FWrite
|
>SYSCALL FWrite
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
|
|
|
@ -13,22 +13,22 @@ CFG.Read >PUSHW L.HOSTNAME
|
||||||
lda IPCFG+S.IPCFG.HOSTNAME
|
lda IPCFG+S.IPCFG.HOSTNAME
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
ldy DefaultHostName
|
ldy #$ff
|
||||||
|
|
||||||
.2 lda DefaultHostName,y
|
.2 iny
|
||||||
|
lda DefaultHostName,y
|
||||||
sta IPCFG+S.IPCFG.HOSTNAME,y
|
sta IPCFG+S.IPCFG.HOSTNAME,y
|
||||||
dey
|
bne .2
|
||||||
bpl .2
|
|
||||||
|
|
||||||
.3 lda A2osX.TIMER16
|
.3 lda A2osX.TIMER16
|
||||||
jsr CFG.A2CharAX
|
jsr CFG.A2CharAX
|
||||||
sta IPCFG+S.IPCFG.HOSTNAME+7
|
sta IPCFG+S.IPCFG.HOSTNAME+6
|
||||||
stx IPCFG+S.IPCFG.HOSTNAME+8
|
stx IPCFG+S.IPCFG.HOSTNAME+7
|
||||||
|
|
||||||
lda A2osX.TIMER16+1
|
lda A2osX.TIMER16+1
|
||||||
jsr CFG.A2CharAX
|
jsr CFG.A2CharAX
|
||||||
sta IPCFG+S.IPCFG.HOSTNAME+9
|
sta IPCFG+S.IPCFG.HOSTNAME+8
|
||||||
stx IPCFG+S.IPCFG.HOSTNAME+10
|
stx IPCFG+S.IPCFG.HOSTNAME+9
|
||||||
|
|
||||||
.4 >PUSHW L.TCPIP.CONF
|
.4 >PUSHW L.TCPIP.CONF
|
||||||
>LDYA L.MSG.CFG
|
>LDYA L.MSG.CFG
|
||||||
|
@ -71,12 +71,13 @@ CFG.Read.HOSTNAME
|
||||||
cmp #13
|
cmp #13
|
||||||
beq .8 A CR, end of name
|
beq .8 A CR, end of name
|
||||||
|
|
||||||
iny
|
|
||||||
sta IPCFG+S.IPCFG.HOSTNAME,y
|
sta IPCFG+S.IPCFG.HOSTNAME,y
|
||||||
|
iny
|
||||||
dex
|
dex
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.8 sty IPCFG+S.IPCFG.HOSTNAME
|
.8 lda #0
|
||||||
|
sta IPCFG+S.IPCFG.HOSTNAME,y
|
||||||
|
|
||||||
jsr CFG.Read.CleanUp
|
jsr CFG.Read.CleanUp
|
||||||
clc
|
clc
|
||||||
|
|
|
@ -138,7 +138,7 @@ MSG.CFG.OK .AZ "OK.\r\n"
|
||||||
HOSTNAME .AZ "${A2OSX}ETC/HOSTNAME"
|
HOSTNAME .AZ "${A2OSX}ETC/HOSTNAME"
|
||||||
TCPIP.CONF .AZ "${A2OSX}ETC/TCPIP.CONF"
|
TCPIP.CONF .AZ "${A2OSX}ETC/TCPIP.CONF"
|
||||||
HOSTS .AZ "${A2OSX}ETC/HOSTS"
|
HOSTS .AZ "${A2OSX}ETC/HOSTS"
|
||||||
DefaultHostName >PSTR "a2osx-XXXX"
|
DefaultHostName .AZ "a2osx-XXXX"
|
||||||
CFG.Keywords >PSTR "DOMAIN"
|
CFG.Keywords >PSTR "DOMAIN"
|
||||||
>PSTR "IP"
|
>PSTR "IP"
|
||||||
>PSTR "MASK"
|
>PSTR "MASK"
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
NEW
|
NEW
|
||||||
INC 1
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 6
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
|
@ -10,6 +8,7 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/ETH.I
|
||||||
.INB INC/LIBTCPIP.I
|
.INB INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TIMEOUT.MAX .EQ 30 30 sec.
|
TIMEOUT.MAX .EQ 30 30 sec.
|
||||||
|
@ -175,7 +174,7 @@ CS.RUN.CLIENT ldy #SktIndex
|
||||||
sta .1+1 hSocket
|
sta .1+1 hSocket
|
||||||
sta .3+1
|
sta .3+1
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetC.A
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetC
|
||||||
bcc .10
|
bcc .10
|
||||||
|
|
||||||
tax
|
tax
|
||||||
|
@ -283,7 +282,7 @@ Socket .DA #S.SOCKET.SOCK.STREAM
|
||||||
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
||||||
.BS 1
|
.BS 1
|
||||||
Socket.Src.Addr .BS 4
|
Socket.Src.Addr .BS 4
|
||||||
Socket.Src.Port .DA 23
|
Socket.Src.Port .DA TCP.PORT.TELNET
|
||||||
Socket.Dst.Addr .BS 4
|
Socket.Dst.Addr .BS 4
|
||||||
Socket.Dst.Port .BS 2
|
Socket.Dst.Port .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -58,7 +58,7 @@ K.LoadFile clc
|
||||||
|
|
||||||
>PUSHW FIO.Mem
|
>PUSHW FIO.Mem
|
||||||
>PUSHW FIO.FSize
|
>PUSHW FIO.FSize
|
||||||
>PUSHB FIO.hFile
|
lda FIO.hFile
|
||||||
jsr K.FRead
|
jsr K.FRead
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
|
|
|
@ -115,29 +115,6 @@ IO.Read.I lda (pFD) #S.FD.T
|
||||||
|
|
||||||
K.Read.9 >RET 4
|
K.Read.9 >RET 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.READ.REG
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
IO.READ.CDEV ldy #S.FD.DEV.DRVPTR
|
|
||||||
lda (pFD),y
|
|
||||||
sta .1+1
|
|
||||||
iny
|
|
||||||
lda (pFD),y
|
|
||||||
sta .1+2
|
|
||||||
|
|
||||||
>LDYAI K.S.IOCTL
|
|
||||||
ldx #IOCTL.READ
|
|
||||||
.1 jmp $ffff
|
|
||||||
*--------------------------------------
|
|
||||||
IO.READ.SSOCK
|
|
||||||
*--------------------------------------
|
|
||||||
IO.READ.FIFO
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
* int write(int fd, const void *buf, size_t count);
|
* int write(int fd, const void *buf, size_t count);
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.Write jsr IO.SELECT
|
K.Write jsr IO.SELECT
|
||||||
|
@ -161,14 +138,25 @@ IO.Write.I lda (pFD) #S.FD.T
|
||||||
|
|
||||||
K.Write.9 >RET 4
|
K.Write.9 >RET 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.WRITE.REG >PUSHW K.S.IOCTL+S.IOCTL.BUFPTR
|
IO.READ.REG clc
|
||||||
|
.HS B0 BCS
|
||||||
|
*--------------------------------------
|
||||||
|
IO.WRITE.REG sec
|
||||||
|
>PUSHW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||||
>PUSHW K.S.IOCTL+S.IOCTL.BYTECNT
|
>PUSHW K.S.IOCTL+S.IOCTL.BYTECNT
|
||||||
ldy #S.FD.REG.REF
|
ldy #S.FD.REG.REF
|
||||||
>PUSHB (pFD),y
|
lda (pFD),y
|
||||||
|
bcs .1
|
||||||
jmp K.FWrite
|
|
||||||
|
jmp K.FRead
|
||||||
|
.1 jmp K.FWrite
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.WRITE.CDEV ldy #S.FD.DEV.DRVPTR
|
IO.READ.CDEV ldx #IOCTL.READ
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
*--------------------------------------
|
||||||
|
IO.WRITE.CDEV ldx #IOCTL.WRITE
|
||||||
|
|
||||||
|
ldy #S.FD.DEV.DRVPTR
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta .1+1
|
sta .1+1
|
||||||
iny
|
iny
|
||||||
|
@ -176,10 +164,18 @@ IO.WRITE.CDEV ldy #S.FD.DEV.DRVPTR
|
||||||
sta .1+2
|
sta .1+2
|
||||||
|
|
||||||
>LDYAI K.S.IOCTL
|
>LDYAI K.S.IOCTL
|
||||||
ldx #IOCTL.WRITE
|
|
||||||
.1 jmp $ffff
|
.1 jmp $ffff
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.WRITE.SSOCK lda (pFD) #S.FD.HANDLER
|
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
*--------------------------------------
|
||||||
|
IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
||||||
|
lda (pFD),y
|
||||||
|
tax Function Offset in LIB
|
||||||
|
|
||||||
|
ldy #S.FD.HANDLER
|
||||||
|
lda (pFD),y
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA .1
|
>STYA .1
|
||||||
|
|
||||||
|
@ -187,11 +183,13 @@ IO.WRITE.SSOCK lda (pFD) #S.FD.HANDLER
|
||||||
>PUSHB (pFD),y
|
>PUSHB (pFD),y
|
||||||
>PUSHB K.IOBuf
|
>PUSHB K.IOBuf
|
||||||
|
|
||||||
ldy #S.FD.SSOCK.WRITE
|
|
||||||
lda (pFD),y
|
|
||||||
tax Function Offset for write
|
|
||||||
.1 jmp $ffff
|
.1 jmp $ffff
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
IO.READ.FIFO
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
IO.WRITE.FIFO ldy #S.FD.FIFO.S
|
IO.WRITE.FIFO ldy #S.FD.FIFO.S
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
beq .9 Remote PS did not opened yet the pipe
|
beq .9 Remote PS did not opened yet the pipe
|
||||||
|
|
|
@ -894,7 +894,7 @@ K.FOpen.AUXTYPE .BS 2
|
||||||
* # FClose
|
* # FClose
|
||||||
* Close a file
|
* Close a file
|
||||||
* ## C
|
* ## C
|
||||||
* int fclose ( FILE * stream );
|
* int fclose ( hFILE streamm );
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* A = hFILE
|
* A = hFILE
|
||||||
|
@ -923,35 +923,36 @@ K.FClose jsr PFT.CheckNodeA
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FRead
|
* # FRead
|
||||||
* int fread ( void * ptr, int count, FILE * stream );
|
* int fread (hFILE stream, void * ptr, int count );
|
||||||
* Read bytes from file
|
* Read bytes from file
|
||||||
* **In:**
|
* **In:**
|
||||||
* PUSHW = Dest Ptr
|
* `>PUSHWI count`
|
||||||
* PUSHW = Bytes To Read
|
* `>PUSHW ptr`
|
||||||
* PUSHB = hFILE
|
* `lda hFILE`
|
||||||
|
* `>SYSCALL fread`
|
||||||
* **Out:**
|
* **Out:**
|
||||||
* Y,A = Bytes Read
|
* Y,A = Bytes Read
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FRead jsr PFT.CheckNodeSTK
|
K.FRead jsr PFT.CheckNodeA
|
||||||
ldx #MLIREAD
|
ldx #MLIREAD
|
||||||
bra K.FReadWrite.1
|
bra K.FReadWrite.1
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FWrite
|
* # FWrite
|
||||||
* Write bytes to file
|
* Write bytes to file
|
||||||
* ## C
|
* ## C
|
||||||
* `int fwrite ( const void * ptr, int count, hFILE stream );`
|
* `int fwrite (hFILE stream, const void * ptr, int count );`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* `>PUSHB = hFILE`
|
* `>PUSHWI count`
|
||||||
* `>PUSHWI ptr`
|
* `>PUSHW ptr`
|
||||||
* `>LDYA count`
|
* `lda hFILE`
|
||||||
|
* `>SYSCALL fwrite`
|
||||||
* # Out:
|
* # Out:
|
||||||
* Y,A = Bytes Written
|
* Y,A = Bytes Written
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FWrite jsr PFT.CheckNodeSTK
|
K.FWrite jsr PFT.CheckNodeA
|
||||||
ldx #MLIWRITE
|
ldx #MLIWRITE
|
||||||
K.FReadWrite.1 >PULLA
|
K.FReadWrite.1 jsr STDIO.GetRefNum
|
||||||
jsr STDIO.GetRefNum
|
|
||||||
>PULLW K.MLI.PARAMS+4
|
>PULLW K.MLI.PARAMS+4
|
||||||
>PULLW K.MLI.PARAMS+2
|
>PULLW K.MLI.PARAMS+2
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user