From c0fbe3b8e343884eff587e4262b0592174ea6516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 23 Aug 2018 17:16:20 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/CHTYP.S.txt | 9 ++-- BIN/CP.S.txt | 2 +- BIN/DNSINFO.S.txt | 7 ++- BIN/IPCONFIG.S.txt | 42 ++++++++++++------ BIN/MD5.S.txt | 59 +++++-------------------- BIN/MV.S.txt | 2 +- BIN/NETSTAT.S.txt | 5 ++- BIN/PING.S.txt | 59 +++++++++++++------------ BIN/PS.S.txt | 10 ++--- BIN/RM.S.txt | 2 +- BIN/RPCDUMP.S.txt | 21 +++++---- BIN/X.CPMVRM.S.txt | 19 +++++++- DRV/UTHERNET.DRV.S.txt | 2 +- INC/MACROS.I.txt | 36 +++++++++++++++- LIB/LIBTCPIP.S.CFG.txt | 21 +++++---- LIB/LIBTCPIP.S.txt | 4 +- SBIN/DHCPCLNT.S.txt | 13 +++--- SYS/KERNEL.S.STDIO.txt | 54 +++++++++++------------ TEST.S.txt | 91 ++++++++++++++++++++------------------- 21 files changed, 252 insertions(+), 206 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index c4f508efe6e9cc95e3282186fbdd3a2d4ac74a3c..facf4b52de9a7873c0dcc9eca4ec8c911755a8a3 100644 GIT binary patch delta 23772 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 delta 23206 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�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 L.MSG.USAGE +.99 >PUSHBI 0 + >LDYA L.MSG.USAGE >SYSCALL printf lda #K.E.SYN sec @@ -180,6 +181,7 @@ CS.RUN.FILE jsr CS.RUN.GetFilePath >PUSHW ZPFullPath + >PUSHBI 2 >LDYA L.MSG.FILE >SYSCALL printf bcs .9 @@ -208,7 +210,7 @@ CS.RUN.FILE jsr CS.RUN.GetFilePath *-------------------------------------- CS.RUN.CheckErr bcs .1 >LDYA L.MSG.OK - >SYSCALL printf + >SYSCALL puts rts .1 pha @@ -218,6 +220,7 @@ CS.RUN.CheckErr bcs .1 pla >PUSHA + >PUSHBI 1 >LDYA L.MSG.ERR >SYSCALL printf @@ -345,7 +348,7 @@ OptionList >PSTR "CRcr" OptionVars .DA #bContinue,#bRecurse,#bContinue,#bRecurse *-------------------------------------- MSG.USAGE .AZ "Usage : CHTYP [File *,? wildcards allowed] [File type : 0xx (Hexadecimal byte),SYS,TXT....]\r\n -C : Continue on error\r\n -R : Recurse subdirectories\r\n" -MSG.OK .AZ "[OK]\r\n" +MSG.OK .AZ "[OK]" MSG.ERR .AZ "[%h]\r\n" MSG.FILE .AZ "CHTYP File:%S..." diff --git a/BIN/CP.S.txt b/BIN/CP.S.txt index a38c0ac1..a48d63c8 100644 --- a/BIN/CP.S.txt +++ b/BIN/CP.S.txt @@ -25,7 +25,7 @@ MSG.USAGE .AZ "Usage : CP [Src File/Dir, *,? wildcards allowed]\r\n -C : Cont MSG.DIR .AZ "CP Dir :%s to %s..." MSG.FILE .AZ "CP File:%s to %s..." MSG.OVERWRITE .AZ "Overwrite %s [Yes,No,All]?" -MSG.OK .AZ "[OK]\r\n" +MSG.OK .AZ "[OK]" MSG.ERR .AZ "[%h]\r\n" MSG.DONE .AZ "%D File(s) Copied.\r\n" *-------------------------------------- diff --git a/BIN/DNSINFO.S.txt b/BIN/DNSINFO.S.txt index 78deceb8..c08ee46d 100644 --- a/BIN/DNSINFO.S.txt +++ b/BIN/DNSINFO.S.txt @@ -88,7 +88,7 @@ CS.RUN.ADD cmp #2 CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache >STYA ZPPTR1 >LDYA L.MSG0 - >SYSCALL printf + >SYSCALL puts lda #K.DNSCACHE.SIZE >STA.G EntryCount @@ -97,6 +97,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache beq .2 ldy #S.DNSCACHE.TTL+4 + .6 dey lda (ZPPTR1),y >PUSHA @@ -104,6 +105,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache bne .6 ldy #S.DNSCACHE.IP+4 + .5 dey lda (ZPPTR1),y >PUSHA @@ -122,6 +124,7 @@ CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.GetCache >PUSHB (ZPPTR1) Entry Status + >PUSHBI 13 >LDYA L.MSG1 >SYSCALL printf @@ -150,7 +153,7 @@ CS.QUIT lda hLIBTCPIP CS.END LIBTCPIP .AZ "libtcpip.o" SSCANF.IP .AZ "%d.%d.%d.%d" -MSG0 .AZ "STS TR.ID Hostname IP Address TTL\r\n" +MSG0 .AZ "STS TR.ID Hostname IP Address TTL" MSG1 .AZ "$%h $%H %32s %03d.%03d.%03d.%03d %u\r\n" hLIBTCPIP .BS 1 *-------------------------------------- diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index cd830dd5..4f9d00eb 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -42,7 +42,6 @@ L.MSG0.L .DA MSG0.L L.MSG1.DEV .DA MSG1.DEV L.MSG1.DEV.ARP .DA MSG1.DEV.ARP L.MSG1.DEV.IP .DA MSG1.DEV.IP -L.MSG1.LINK .DA MSG1.LINK L.MSG1.LINK.OK .DA MSG1.LINK.OK L.MSG1.LINK.KO .DA MSG1.LINK.KO L.MSG1.LINKSPEED .DA MSG1.LINKSPEED @@ -65,7 +64,8 @@ CS.INIT >LDYA L.LIBTCPIP clc .9 rts *-------------------------------------- -CS.RUN >LDYA L.MSG0 +CS.RUN >PUSHBI 0 + >LDYA L.MSG0 >SYSCALL printf >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG @@ -76,7 +76,7 @@ CS.RUN >LDYA L.MSG0 bne .1 >LDYA L.MSG0.NL - >SYSCALL printf + >SYSCALL puts jmp CS.RUN.DONE .1 >STA.G FD.ETH @@ -98,7 +98,7 @@ CS.RUN >LDYA L.MSG0 >SYSCALL IOCTL CS.RUN.DUMP >LDYA L.MSG0.L - >SYSCALL printf + >SYSCALL puts ldy #DCB.NIC+S.DCB.NIC.MAC+5 ldx #6 @@ -121,7 +121,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L >PUSHYA >PUSHB.G FD.ETH - + >PUSHBI 11 >LDYA L.MSG1.DEV >SYSCALL printf @@ -131,7 +131,8 @@ CS.RUN.DUMP >LDYA L.MSG0.L lda #1 -.2 >PUSHA +.2 >PUSHA + >PUSHBI 1 >LDYA L.MSG1.DEV.ARP >SYSCALL printf @@ -143,11 +144,9 @@ CS.RUN.DUMP >LDYA L.MSG0.L lda #1 .3 >PUSHA + >PUSHBI 1 >LDYA L.MSG1.DEV.IP >SYSCALL printf - - >LDYA L.MSG1.LINK - >SYSCALL printf lda DCB.NIC+S.DCB.NIC.LINK and #S.DCB.NIC.LINK.OK @@ -160,6 +159,7 @@ CS.RUN.DUMP >LDYA L.MSG0.L CS.RUN.LINK >LDYA L.MSG1.LINK.OK >SYSCALL puts + >PUSHBI 0 >LDYA L.MSG1.LINKSPEED >SYSCALL printf @@ -184,7 +184,8 @@ CS.RUN.LINK >LDYA L.MSG1.LINK.OK .5 >LDYA L.MSG1.DPLX.FD .6 >SYSCALL puts -CS.RUN.DUMPIP >LDYA L.MSG2 +CS.RUN.DUMPIP >PUSHBI 0 + >LDYA L.MSG2 >SYSCALL printf lda (pIPCFG) and #S.IPCFG.STATUS.OK @@ -199,37 +200,49 @@ CS.RUN.DUMPIP >LDYA L.MSG2 ldy #S.IPCFG.DHCPSRVR+3 ldx #4 + .2 >PUSHB (pIPCFG),y dey dex bne .2 + + >PUSHBI 4 >LDYA L.MSG2.DHCPSRVR >SYSCALL printf ldy #S.IPCFG.IP+7 IP/MASK ldx #8 + .3 >PUSHB (pIPCFG),y dey dex bne .3 + + >PUSHBI 8 >LDYA L.MSG2.IP >SYSCALL printf ldy #S.IPCFG.GW+3 ldx #4 + .4 >PUSHB (pIPCFG),y dey dex bne .4 + + >PUSHBI 4 >LDYA L.MSG2.GW >SYSCALL printf ldy #S.IPCFG.DNS1+7 ldx #8 + .5 >PUSHB (pIPCFG),y dey dex bne .5 + + >PUSHBI 8 >LDYA L.MSG2.DNS >SYSCALL printf @@ -249,6 +262,7 @@ CS.RUN.DUMPIP >LDYA L.MSG2 adc #0 >PUSHYA + >PUSHBI 4 >LDYA L.MSG2.HOSTNAME >SYSCALL printf @@ -273,21 +287,21 @@ MSG0 .AZ "TCP/IP Status : " MSG0.L .AZ "Loaded\r\n" MSG0.NL .AZ "Not Loaded\r\n" *-------------------------------------- -MSG1.DEV .AS "\r\nDevice Configuration :\r\n" +MSG1.DEV .AS "Device Configuration :\r\n" .AS " FD.ETH : $%h\r\n" .AS " Device Name : %s\r\n" .AS " Device Type : %S\r\n" .AZ " HW Address : %02h:%02h:%02h:%02h:%02h:%02h\r\n" MSG1.DEV.ARP .AZ " ARP Offload : %d\r\n" -MSG1.DEV.IP .AZ " IP Offload : %d\r\n" -MSG1.LINK .AZ " Link Status : " +MSG1.DEV.IP .AS " IP Offload : %d\r\n" + .AZ " Link Status : " MSG1.LINK.OK .AZ "OK" MSG1.LINK.KO .AZ "Media Disconnected" MSG1.LINKSPEED .AZ " Link Speed : 1" MSG1.DPLX.FD .AZ " Mbit/s,Full Duplex" MSG1.DPLX.HD .AZ " Mbit/s,Half Duplex" *-------------------------------------- -MSG2 .AZ "\r\nIP Configuration : " +MSG2 .AZ "IP Configuration : " MSG2.C .AZ "Configured" MSG2.U .AZ "Not Configured" MSG2.DHCPSRVR .AZ " DHCP Server : %d.%d.%d.%d\r\n" diff --git a/BIN/MD5.S.txt b/BIN/MD5.S.txt index 952f3b23..9d402c41 100644 --- a/BIN/MD5.S.txt +++ b/BIN/MD5.S.txt @@ -37,9 +37,6 @@ CS.START cld .DA CS.QUIT L.LIBCRYPT .DA LIBCRYPT L.MSG.USAGE .DA MSG.USAGE -L.MSG.INIT .DA MSG.INIT -L.MSG.OK .DA MSG.OK -L.MSG.ERR .DA MSG.ERR .DA 0 *-------------------------------------- CS.INIT ldy #S.PS.ARGC @@ -68,7 +65,8 @@ CS.INIT ldy #S.PS.ARGC dex bne .2 -.99 >LDYA L.MSG.USAGE +.99 >PUSHBI 0 + >LDYA L.MSG.USAGE >SYSCALL printf lda #K.E.SYN sec @@ -108,27 +106,17 @@ CS.RUN.TEXT >LDA.G Arg >PUSHEA.G MD5Buf >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 - bcs .9 + bcs CS.RUN.TEXT.RTS - >LEA.G MD5Buf - >SYSCALL printf - - lda #13 - >SYSCALL PutChar - lda #10 - >SYSCALL PutChar - - lda #0 - sec -.9 rts + jmp CS.RUN.PRINT +CS.RUN.TEXT.RTS rts *-------------------------------------- CS.RUN.FILE >LDA.G Arg >SYSCALL GetArg >SYSCALL RealPath - bcc .10 - rts - -.10 txa + bcs CS.RUN.TEXT.RTS + + txa >STA.G hFullPath >LDYAI FILEBUF.SIZE @@ -173,14 +161,9 @@ CS.RUN.FILE >LDA.G Arg >PUSHB.G hMD5Ctx >LIBCALL hLIBCRYPT,LIBCRYPT.MD5Finalize - >LEA.G MD5Buf - >SYSCALL printf +CS.RUN.PRINT >LEA.G MD5Buf + >SYSCALL puts - lda #13 - >SYSCALL PutChar - lda #10 - >SYSCALL PutChar - lda #0 sec rts @@ -193,7 +176,6 @@ CS.QUIT >LDA.G hFullPath >SYSCALL FreeMem - .1 >LDA.G hDataBuf beq .2 >SYSCALL FreeMem @@ -212,33 +194,12 @@ CS.QUIT >LDA.G hFullPath .8 clc rts *-------------------------------------- -A2CharAX pha - lsr - lsr - lsr - lsr - and #$0F - cmp #'9'+1 - bcc .1 - adc #6 -.1 tax - pla - and #$0F - ora #$30 - cmp #'9'+1 - bcc .8 - adc #6 -.8 rts -*-------------------------------------- CS.END *-------------------------------------- OptionList >PSTR "Dd" OptionVars .DA #bText,#bText *-------------------------------------- MSG.USAGE .AZ "Usage : MD5 [ -d input text | input file ]\r\n" -MSG.OK .AZ "[OK]\r\n" -MSG.ERR .AZ "[%h]\r\n" -MSG.INIT .AZ "Computing %s ..." *-------------------------------------- LIBCRYPT .AZ "libcrypt.o" hLIBCRYPT .BS 1 diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 319823b5..4eab457b 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -25,7 +25,7 @@ MSG.USAGE .AZ "Usage : MV [Src File/Dir, *,? wildcards allowed]\r\n -C : Cont MSG.DIR .AZ "MV Dir :%S to %S..." MSG.FILE .AZ "MV File:%S to %S..." MSG.OVERWRITE .AZ "Overwrite %S [Yes,No,All]?" -MSG.OK .AZ "[OK]\r\n" +MSG.OK .AZ "[OK]" MSG.ERR .AZ "[%h]\r\n" MSG.DONE .AZ "%D File(s) Moved.\r\n" *-------------------------------------- diff --git a/BIN/NETSTAT.S.txt b/BIN/NETSTAT.S.txt index 89c5a1d5..1e349baf 100644 --- a/BIN/NETSTAT.S.txt +++ b/BIN/NETSTAT.S.txt @@ -61,7 +61,7 @@ CS.INIT >LDYA L.LIBTCPIP .9 rts *-------------------------------------- CS.RUN >LDYA L.MSG0 - >SYSCALL printf + >SYSCALL puts >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETTABLE >STYA ZPPTR1 @@ -99,6 +99,7 @@ CS.RUN >LDYA L.MSG0 tax >PUSHB L.MSG1+1,x >PUSHB L.MSG1,x + >PUSHBI 17 >LDYA L.MSG1 >SYSCALL printf @@ -130,7 +131,7 @@ CS.QUIT lda hLIBTCPIP *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip.o" -MSG0 .AZ "Proto Local Remote Options Status\r\n" +MSG0 .AZ "Proto Local Remote Options Status" MSG1 .AZ "%s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n" MSG1.UDP .AZ "UDP" MSG1.TCP .AZ "TCP" diff --git a/BIN/PING.S.txt b/BIN/PING.S.txt index 7bbf03ee..57de1341 100644 --- a/BIN/PING.S.txt +++ b/BIN/PING.S.txt @@ -27,7 +27,7 @@ CS.START cld .DA 0 .DA CS.END-CS.START Code Length To Relocate .DA DS.END-DS.START Data Segment to Allocate - .DA #16 SS + .DA #64 SS .DA #8 ZP .DA 0 *-------------------------------------- @@ -67,7 +67,7 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ? bmi CS.RUN.IPOK >LDYA L.MSG.IPKO - >SYSCALL printf + >SYSCALL puts lda #K.E.SYN sec rts @@ -96,7 +96,7 @@ CS.RUN.IPOK ldy #S.PS.ARGC bra .99 .9 >LDYA L.MSG.USAGE -.99 >SYSCALL printf +.99 >SYSCALL puts lda #K.E.SYN sec rts @@ -115,6 +115,7 @@ CS.RUN.HOSTOK lda #1 dex bpl .1 + >PUSHBI 6 >LDYA L.MSG.HOSTOK >SYSCALL printf @@ -141,7 +142,7 @@ CS.RUN.OPENSKT ldx #3 bcc .2 >LDYA L.MSG.SKTKO - >SYSCALL printf + >SYSCALL puts lda #K.E.SYN sec rts @@ -238,14 +239,15 @@ CS.DOEVENT lda (pEvent) rts *-------------------------------------- CS.Print.UNREACH + ldx #4 ldy #DST.IP+3 - >PUSHB (pData),y DST.IP+3 + +.1 >PUSHB (pData),y dey - >PUSHB (pData),y DST.IP+2 - dey - >PUSHB (pData),y DST.IP+1 - dey - >PUSHB (pData),y DST.IP + dex + bne .1 + + >PUSHBI 4 >LDYA L.MSG.UNREACH >SYSCALL printf rts @@ -255,22 +257,24 @@ CS.Print.REPLY lda #TIMEOUT.MAX ldy #TimeOut sbc (pData),y - stz TimeOut.ms - stz TimeOut.ms+1 + >STZ.G TimeOut.ms + >STA.G TimeOut.ms+1 tay beq .3 -.1 lda TimeOut.ms +.1 >LDA.G TimeOut.ms clc adc #100 - sta TimeOut.ms + >STA.G TimeOut.ms bcc .2 - inc TimeOut + + >INC.G TimeOut.ms+1 .2 dey bne .1 -.3 >PUSHW TimeOut.ms +.3 >PUSHW.G TimeOut.ms + ldy #S.IP.TTL >PUSHB (ZPFrameBase),y @@ -279,15 +283,15 @@ CS.Print.REPLY lda #TIMEOUT.MAX dey >PUSHB (ZPFrameBase),y + ldx #4 ldy #S.IP.SRC+3 - >PUSHB (ZPFrameBase),y - dey - >PUSHB (ZPFrameBase),y - dey - >PUSHB (ZPFrameBase),y - dey - >PUSHB (ZPFrameBase),y +.4 >PUSHB (ZPFrameBase),y + dey + dex + bne .4 + + >PUSHBI 9 >LDYA L.MSG.REPLY >SYSCALL printf rts @@ -323,15 +327,15 @@ Wait.TimeOut sec *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip.o" -MSG.IPKO .AZ "TCP/IP Not Loaded/Configured.\r\n" -MSG.USAGE .AZ "Usage : PING \r\n" +MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." +MSG.USAGE .AZ "Usage : PING " MSG.UNKNOWN .AZ "%s: Unknown host\r\n" MSG.HOSTOK .AZ "PING %d.%d.%d.%d (%s)\r\n" -MSG.SKTKO .AZ "Failed to Open Socket.\r\n" +MSG.SKTKO .AZ "Failed to Open Socket." MSG.UNREACH .AZ "%d.%d.%d.%d: TimeOut/Host unreachable\r\n" MSG.REPLY .AZ "32 bytes from %d.%d.%d.%d, icmp_seq=%D, ttl=%d, time=%D ms\r\n" hLIBTCPIP .BS 1 -TimeOut.ms .BS 2 +*-------------------------------------- Socket .DA #S.SOCKET.SOCK.RAW .BS 1 .DA #S.IP.PROTOCOL.ICMP @@ -359,6 +363,7 @@ hFrame .BS 1 Identifier .BS 2 Sequence .BS 2 TimeOut .BS 1 +TimeOut.ms .BS 2 DS.END .ED *-------------------------------------- diff --git a/BIN/PS.S.txt b/BIN/PS.S.txt index 579edae1..62f12b91 100644 --- a/BIN/PS.S.txt +++ b/BIN/PS.S.txt @@ -43,16 +43,13 @@ CS.RUN >LDYA pData >SYSCALL GetPSStat >LDYA L.MSG0 - >SYSCALL printf + >SYSCALL puts >PUSHB.G PS.KCPU - + >PUSHBI 1 >LDYA L.MSGK >SYSCALL printf - >LDA.G PS.Count - beq .8 - lda #1 >STA.G PS.Index @@ -89,6 +86,7 @@ CS.RUN >LDYA pData ldy #S.PS.PID lda (ZPPtr),y >PUSHA + >PUSHBI 8 >LDYA L.MSG1 >SYSCALL printf @@ -126,7 +124,7 @@ CS.QUIT clc rts *-------------------------------------- CS.END -MSG0 .AZ "ID CPU\% Flags UID PID Command Line\r\n" +MSG0 .AZ "ID CPU% Flags UID PID Command Line" MSGK .AZ "000 %03d\% -------- 000 --- *KERNEL*\r\n" MSG1 .AZ "%03d %03d\% %s %03d %03d %s\r\n" MSG.FLAGS .AS "IRQDHSed" diff --git a/BIN/RM.S.txt b/BIN/RM.S.txt index 7573aad7..ffcfcf55 100644 --- a/BIN/RM.S.txt +++ b/BIN/RM.S.txt @@ -24,7 +24,7 @@ OptionVars .DA #bContinue,#bRecurse,#bNoConfirm,#bQuiet,#bContinue,#bRecurse,#b MSG.USAGE .AZ "Usage : RM [File/Dir, *,? wildcards allowed]\r\n -C : Continue on error\r\n -Q : Quiet\r\n -R : Recurse subdirectories\r\n" MSG.DIR .AZ "RM Dir :%S..." MSG.FILE .AZ "RM File:%S..." -MSG.OK .AZ "[OK]\r\n" +MSG.OK .AZ "[OK]" MSG.ERR .AZ "[%h]\r\n" MSG.DONE .AZ "%D File(s) Removed.\r\n" *-------------------------------------- diff --git a/BIN/RPCDUMP.S.txt b/BIN/RPCDUMP.S.txt index 12472bdb..274aac3f 100644 --- a/BIN/RPCDUMP.S.txt +++ b/BIN/RPCDUMP.S.txt @@ -74,7 +74,7 @@ CS.INIT ldy #S.PS.ARGC rts .99 >LDYA L.MSG.USAGE - >SYSCALL printf + >SYSCALL puts lda #K.E.SYN sec rts @@ -95,6 +95,8 @@ CS.RUN jsr Init.Timeout lda #1 >SYSCALL GetArg >PUSHYA + + >PUSHBI 2 >LDYA L.MSG.UNKNOWN >SYSCALL printf sec @@ -157,6 +159,7 @@ CS.RUN jsr Init.Timeout .99 lda #1 >SYSCALL GetArg >PUSHYA + >PUSHBI 2 >LDYA L.MSG.TIMEOUT >SYSCALL printf sec @@ -207,7 +210,7 @@ DumpRPCFrame lda #S.UDP+24 sta ZPFrameBase+1 >LDYA L.MSG.DUMP0 - >SYSCALL printf + >SYSCALL puts .1 ldy #3 lda (ZPFrameBase),y Value follows? @@ -230,6 +233,7 @@ DumpRPCFrame lda #S.UDP+24 cpy #8 bne .7 + >PUSHBI 8 >LDYA L.MSG.DUMP1 >SYSCALL printf @@ -244,12 +248,14 @@ DumpRPCFrame lda #S.UDP+24 .9 rts *-------------------------------------- CS.END -LIBTCPIP >PSTR "libtcpip.o" -MSG.USAGE .AZ "Usage : RPCDUMP \r\n" -MSG.UNKNOWN .AZ "%S: Unknown host\r\n" -MSG.TIMEOUT .AZ "No response from %S\r\n" -MSG.DUMP0 .AZ "Program Ver Proto:Port\r\n" +LIBTCPIP .AZ "libtcpip.o" +hLIBTCPIP .BS 1 +MSG.USAGE .AZ "Usage : RPCDUMP " +MSG.UNKNOWN .AZ "%s: Unknown host\r\n" +MSG.TIMEOUT .AZ "No response from %s\r\n" +MSG.DUMP0 .AZ "Program Ver Proto:Port" MSG.DUMP1 .AZ "%10L %2d %2d:%D\r\n" +*-------------------------------------- Socket .DA #S.SOCKET.SOCK.DGRAM .BS 3 Socket.Src.Addr .BS 4 @@ -268,7 +274,6 @@ RPC.Request .BS 4 XID .HS 00000000 VERF .HS 00000000 RPC.Request.End .EQ * -hLIBTCPIP .BS 1 *-------------------------------------- .DUMMY .OR 0 diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 1625cf86..7590fd4b 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -65,7 +65,8 @@ CS.INIT dex bne .2 -.99 >LDYA L.MSG.USAGE +.99 >PUSHBI 0 + >LDYA L.MSG.USAGE >SYSCALL printf lda #K.E.SYN sec @@ -301,6 +302,8 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... >PUSHB (pData),y dey >PUSHB (pData),y + + >PUSHBI 2 >LDYA L.MSG.DONE >SYSCALL printf @@ -476,6 +479,16 @@ CS.RUN.FILE.MSG clc ldy #hSrcFullPath jsr CS.RUN.GetPathY + .DO X.COPY.TO.DEST=1 + + >PUSHBI 4 + + .ELSE + + >PUSHBI 2 + + .FIN + >PUSHYA plp @@ -500,6 +513,7 @@ CS.RUN.OVERWRITE.MSG .1 ldy #hDstFullPath jsr CS.RUN.GetPathY >PUSHYA + >PUSHBI 2 >LDYA L.MSG.OVERWRITE >SYSCALL printf rts @@ -664,7 +678,7 @@ CS.RUN.CheckErr bcs .1 bmi .8 >LDYA L.MSG.OK - >SYSCALL printf + >SYSCALL puts rts .1 ldy #RC @@ -677,6 +691,7 @@ CS.RUN.CheckErr bcs .1 pla >PUSHA + >PUSHBI 1 >LDYA L.MSG.ERR >SYSCALL printf diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index b31cb846..4a09a3cf 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -47,7 +47,7 @@ L.MAC5 .DA DCB+S.DCB.NIC.MAC+5 Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT - >SYSCALL printf + >SYSCALL puts ldx #$70 ldy #7 diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index 67be4a0d..073ce9bc 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -167,7 +167,7 @@ AUTO 4,1 .EM *-------------------------------------- .MA PUSHF.G - ldy #]1+5 + ldy #]1+5 :1 dey lda (pData),y >PUSHA @@ -330,6 +330,40 @@ AUTO 4,1 >PULLA sta ]1+1 .EM +*-------------------------------------- + .MA PUSHL + ldy #3 +:1 lda (pData),y + >PUSHA + dey + bpl :1 + .EM +*-------------------------------------- + .MA PULLL + ldy #0 +:1 >PULLA + sta (pData),y + iny + cpy #4 + bne :1 + .EM +*-------------------------------------- + .MA PUSHF + ldy #4 +:1 lda (pData),y + >PUSHA + dey + bpl :1 + .EM +*-------------------------------------- + .MA PULLF + ldy #0 +:1 >PULLA + sta (pData),y + iny + cpy #5 + bne :1 + .EM *-------------------------------------- .MA RET .DO ]1=1 diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 406ed992..b8bfebb4 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -15,7 +15,7 @@ CFG.Init >PUSHBI 0 bne CFG.Init >LDYA L.MSG.DEV.KO - >SYSCALL printf + >SYSCALL puts lda #MLI.E.NODEV .9 sec @@ -24,6 +24,7 @@ CFG.Init >PUSHBI 0 .1 sta IPCFG+S.IPCFG.hFD >PUSHW L.DEVNAME + >PUSHBI 2 >LDYA L.MSG.DEV.OK >SYSCALL printf @@ -36,6 +37,7 @@ CFG.EtcFiles >LDYAI 256 stx CFG.hBuf >PUSHW L.HOSTNAME + >PUSHBI 2 >LDYA L.MSG.CFG >SYSCALL printf @@ -62,6 +64,7 @@ CFG.EtcFiles >LDYAI 256 stx IPCFG+S.IPCFG.HOSTNAME+9 .4 >PUSHW L.TCPIP.CONF + >PUSHBI 2 >LDYA L.MSG.CFG >SYSCALL printf @@ -74,6 +77,7 @@ CFG.EtcFiles >LDYAI 256 sta IPCFG+S.IPCFG.STATUS .5 >PUSHW L.HOSTS + >PUSHBI 2 >LDYA L.MSG.CFG >SYSCALL printf @@ -328,7 +332,8 @@ CFG.DNS.ADD >STYA ZPTmpPtr1 >LDYA L.MSG.DNS.ADD bcc .8 >LDYA L.MSG.DNS.ERR -.8 >SYSCALL printf +.8 >PUSHBI 2 + >SYSCALL printf rts *-------------------------------------- @@ -367,16 +372,16 @@ CFG.Read.Close php plp rts *-------------------------------------- -CFG.Read.Result php - bcc .1 +CFG.Read.Result bcc .1 >PUSHA + >PUSHBI 1 >LDYA L.MSG.CFG.KO - bra .2 + >SYSCALL printf + sec + rts .1 >LDYA L.MSG.CFG.OK -.2 >SYSCALL printf - - plp + >SYSCALL puts rts *-------------------------------------- CFG.Read.GetS >PUSHWI 255 diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 8814a27d..2520fb44 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -259,11 +259,11 @@ GetDynPort inc DYNPORT.LAST CS.END *-------------------------------------- DEVNAME .AZ "/DEV/ETH1" -MSG.DEV.KO .AZ "TCPIPD:No Device Found, exiting.\r\n" +MSG.DEV.KO .AZ "TCPIPD:No Device Found, exiting." MSG.DEV.OK .AZ "TCPIPD:Bound To Device : %s\r\n" MSG.CFG .AZ "TCPIPD:Reading %s..." MSG.CFG.KO .AZ "Failed!!! [%h]\r\n" -MSG.CFG.OK .AZ "OK.\r\n" +MSG.CFG.OK .AZ "OK." MSG.DNS.ADD .AZ "Added static host %d.%d.%d.%d %s\r\n" MSG.DNS.ERR .AZ "***ERROR adding static host %d.%d.%d.%d %s\r\n" *-------------------------------------- diff --git a/SBIN/DHCPCLNT.S.txt b/SBIN/DHCPCLNT.S.txt index c51d43f5..793a5650 100644 --- a/SBIN/DHCPCLNT.S.txt +++ b/SBIN/DHCPCLNT.S.txt @@ -102,7 +102,7 @@ CS.INIT >LDYA L.LIBTCPIP .98 >LDYA L.MSG.CFG.ND bra .90 .99 >LDYA L.MSG.CFG.NA -.90 >SYSCALL printf +.90 >SYSCALL puts lda #0 sec rts @@ -117,7 +117,7 @@ CS.RUN >PUSHW L.Socket >STA.G hSocket >LDYA L.MSG.CFG1 - >SYSCALL printf + >SYSCALL puts jsr Init.Timeout @@ -154,6 +154,7 @@ CS.RUN.SREQ ldx #3 dex bpl .1 + >PUSHBI 4 >LDYA L.MSG.CFG2 >SYSCALL printf @@ -196,6 +197,7 @@ CS.RUN.OK lda #S.IPCFG.STATUS.OK dex bpl .2 + >PUSHBI 8 >LDYA L.MSG.CFG.OK >SYSCALL printf lda #0 Leave with NO ERROR @@ -204,6 +206,7 @@ CS.RUN.OK lda #S.IPCFG.STATUS.OK CS.RUN.KO pha >PUSHA + >PUSHBI 1 >LDYA L.MSG.CFG.KO >SYSCALL printf pla @@ -437,12 +440,12 @@ Wait.TimeOut ldy #TimeOut *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip.o" -MSG.CFG1 .AZ "DHCPCLNT:Searching for DHCP servers...\r\n" +MSG.CFG1 .AZ "DHCPCLNT:Searching for DHCP servers..." MSG.CFG2 .AZ "DHCPCLNT:Reply from DHCP Server at %d.%d.%d.%d, requesting...\r\n" MSG.CFG.KO .AZ "DHCPCLNT:Time Out [%h].\r\n" MSG.CFG.OK .AZ "DHCPCLNT:Success:[IP=%d.%d.%d.%d/%d.%d.%d.%d]\r\n" -MSG.CFG.ND .AZ "DHCPCLNT:No Device, exiting.\r\n" -MSG.CFG.NA .AZ "DHCPCLNT:TCPIP Already configured, exiting.\r\n" +MSG.CFG.ND .AZ "DHCPCLNT:No Device, exiting." +MSG.CFG.NA .AZ "DHCPCLNT:TCPIP Already configured, exiting." hLIBTCPIP .BS 1 IPCFG .BS S.IPCFG *-------------------------------------- diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index cb6d504b..805c5717 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -503,13 +503,31 @@ PrintF.E sec Force "E+12" .HS 90 BCC PrintF.F clc - jsr PrintF.GetFloatPtrYA - bcs .9 - >STYA INDEX + lda PrintF.GetByte+1 get current stack Ptr + tay + clc at least 5 bytes remaining ? + adc #5 + + cmp (pStack) + bcc .1 + bne .9 + +.1 tya + sec +1 + adc pStack + sta INDEX + + lda pStack+1 + sta INDEX+1 ldx #ROM.SETFAC jsr GP.ROMCALL + lda PrintF.GetByte+1 + clc + adc #5 + sta PrintF.GetByte+1 + ldy #3 In order not to trash A2osX.SaveSM,A2osX.SaveSX ldx #ROM.FOUT jsr GP.ROMCALL @@ -525,8 +543,10 @@ PrintF.F clc bne .2 .8 clc - -.9 rts + rts + +.9 sec + rts *-------------------------------------- PrintF.HH jsr PrintF.GetByte bcs PrintF.H.9 @@ -616,30 +636,6 @@ PrintF.SS ldy #$00 PSTR .8 clc .9 rts *-------------------------------------- -PrintF.GetFloatPtrYA - lda PrintF.GetByte+1 - clc - adc #5 - cmp (pStack) - bcc .9 - - pha Save new Ptr - - lda PrintF.GetByte+1 -* sec - adc pStack - tay - - pla - sta PrintF.GetByte+1 - - lda pStack+1 -* clc - rts - -.9 sec - rts -*-------------------------------------- PrintF.GetByte lda #$FF SELF MODIFIED LStack Ptr cmp (pStack) beq .9 CS diff --git a/TEST.S.txt b/TEST.S.txt index 2bd609c4..89ccfd7f 100644 --- a/TEST.S.txt +++ b/TEST.S.txt @@ -41,14 +41,8 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.LIBPAK .DA LIBPAK -L.FLOAT1 .DA FLOAT1 -L.FLOAT2 .DA FLOAT2 -L.FLOAT3 .DA FLOAT3 -L.FLOAT4 .DA FLOAT4 -L.FLOAT5 .DA FLOAT5 -L.CONST1 .DA CONST1 -L.CONST2 .DA CONST2 -L.LONG1 .DA LONG1 +L.CONST.PI .DA CONST.PI +L.CONST.3 .DA CONST.3 L.MSG1 .DA MSG1 L.MSG2 .DA MSG2 L.MSG3 .DA MSG3 @@ -121,7 +115,7 @@ CS.RUN.Pak >PUSHWI 0 Aux type >PUSHW.G PAK.Stat+S.PAKSTAT.PASS2 >PUSHW.G PAK.Stat+S.PAKSTAT.PASS1 >PUSHW.G PAK.FileSize - + >PUSHBI 16 >LDYA L.MSG6 >SYSCALL printf *-------------------------------------- @@ -250,6 +244,7 @@ CS.RUN.Unpak lda ZPPakHdrPtr bra .42 .9 >PUSHW UNPAK.Ofs + >PUSHBI 2 >LDYA L.MSG.UnpakErr >SYSCALL printf @@ -315,6 +310,7 @@ DEBUG.S3 pha phx phy >PUSHA + >PUSHBI 1 >LDYA L.MSG.DEBUG.S3 >SYSCALL printf ply @@ -323,56 +319,62 @@ DEBUG.S3 pha rts *-------------------------------------- CS.RUN.Math >PUSHEA.G ENDPTR - >PUSHW L.CONST2 - >PUSHEA.G MYFLOAT2 + >LDYA L.CONST.PI >SYSCALL StrToF + >PULLF.G MYFLOAT.PI >PUSHEA.G ENDPTR - >PUSHW L.CONST1 - >PUSHEA.G MYFLOAT1 + >LDYA L.CONST.3 >SYSCALL StrToF + >PULLF.G MYFLOAT.3 - >PUSHEA.G MYFLOAT2 - >PUSHEA.G MYFLOAT1 - >PUSHW L.FLOAT5 - >PUSHW L.FLOAT4 - >PUSHW L.FLOAT3 - >PUSHW L.FLOAT2 - >PUSHW L.FLOAT1 + >PUSHF.G MYFLOAT.PI + >PUSHF.G MYFLOAT.3 + + >PUSHF FLOAT5 + >PUSHF FLOAT4 + >PUSHF FLOAT3 + >PUSHF FLOAT2 + >PUSHF FLOAT1 + >PUSHBI 35 >LDYA L.MSG1 >SYSCALL printf *-------------------------------------- - >PUSHEA.G MYFLOAT1 - >PUSHEA.G MYFLOAT2 - >LEA.G MYFLOAT3 + >PUSHF.G MYFLOAT.PI + >PUSHF.G MYFLOAT.3 >SYSCALL FDiv + >PULLF.G MYFLOAT3 - >PUSHEA.G MYFLOAT3 + >PUSHF.G MYFLOAT3 + >PUSHBI 5 >LDYA L.MSG2 >SYSCALL printf *-------------------------------------- - >PUSHEA.G MYFLOAT3 - >LEA.G MYFLOAT3 + >PUSHF.G MYFLOAT3 >SYSCALL Cos - - >PUSHEA.G MYFLOAT3 + >PULLF.G MYFLOAT3 + + >PUSHF.G MYFLOAT3 + >PUSHBI 5 >LDYA L.MSG3 >SYSCALL printf *-------------------------------------- - >PUSHW L.FLOAT1 - >LEA.G MYLONG + >PUSHF FLOAT1 >SYSCALL LRIntF - - >PUSHEA.G MYLONG + >PULLL.G MYLONG + + >PUSHL.G MYLONG + >PUSHBI 4 >LDYA L.MSG4 >SYSCALL printf *-------------------------------------- - >PUSHW L.LONG1 - >LEA.G MYFLOAT1 + >PUSHL LONG1 >SYSCALL Float - - >PUSHEA.G MYFLOAT1 +* >PULLF.G MYFLOAT3 + +* >PUSHF.G MYFLOAT3 + >PUSHBI 5 >LDYA L.MSG5 >SYSCALL printf lda #0 @@ -408,18 +410,19 @@ hLIBPAK .BS 1 MSG1 .AS "PrintF:%e, %e, %e\r\n" .AS "%e, %e\r\n" .AZ "StrToF:%e, %e\r\n" +MSG2 .AZ "PI/3=%e\r\n" +MSG3 .AZ "COS(PI/3)=%e\r\n" +MSG4 .AZ "Long=%L\r\n" +MSG5 .AZ "Float=%e\r\n" +CONST.PI .AZ "3.141592653" +CONST.3 .AZ "3" FLOAT1 .HS 9B3EBC1FFD 99,999,999.9 FLOAT2 .HS 9E6E6B27FD 999,999,999 FLOAT3 .HS 9E6E6B2800 1,000,000,000 FLOAT4 .HS 8100000000 1 FLOAT5 .HS 9080000000 -32768 -CONST1 .AZ "3.141592653" -CONST2 .AZ "3" LONG1 .DA >123456789 -MSG2 .AZ "PI/3=%e\r\n" -MSG3 .AZ "COS(PI/3)=%e\r\n" -MSG4 .AZ "Long=%L\r\n" -MSG5 .AZ "Float=%e\r\n" +*-------------------------------------- MSG6 .AS "Src Length : %D\r\n" .AS "Pass #1 : %D\r\n" .AS "Pass #2 : %D\r\n" @@ -434,8 +437,8 @@ MSG.DEBUG.S3 .AZ "S3:%h\r\n" .DUMMY .OR 0 DS.START -MYFLOAT1 .BS 5 -MYFLOAT2 .BS 5 +MYFLOAT.PI .BS 5 +MYFLOAT.3 .BS 5 MYFLOAT3 .BS 5 MYLONG .BS 4 ENDPTR .BS 2