From c305aee13e5ed56555b3417b0851a14660d6a71d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 9 Aug 2020 21:47:42 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/ETCONFIG.S.txt | 20 +++---- BIN/IPCONFIG.S.DHCP.txt | 20 ++++--- BIN/IPCONFIG.S.ETC.txt | 14 +++-- BIN/IPCONFIG.S.txt | 100 ++++++++++++++++---------------- BIN/SH.S.txt | 2 +- SBIN/CIFSD.S.txt | 2 +- SBIN/HTTPD.S.txt | 70 +++++++++++----------- SYS/KERNEL.S.MEM.txt | 2 +- SYS/KERNEL.S.PS.txt | 122 ++++++++++++++++++++++++++++++++------- 10 files changed, 219 insertions(+), 133 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d179403fe7ff53f38fcc0c7537fd9624a824ec49..1afb0cb28a3e5ef4ebb3442ea9420b48dc7bec7e 100644 GIT binary patch delta 44323 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 ArT_o{ delta 41586 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 0 no protocol >LDYA L.MSG.DHCP.CFG1 >SYSCALL PutS - jsr Init.Timeout + lda #TIMEOUT.MAX + sta TimeOut + DHCP.RUN.SDISC >PUSHW L.SA.DEST >PUSHWI DHCP.DISC.LEN >PUSHW L.DHCP.DISC @@ -69,7 +70,8 @@ DHCP.RUN.SDISC >PUSHW L.SA.DEST DHCP.RUN.ROFFER >SLEEP jsr DHCP.RUN.SKT.RCVD bcc .1 - jsr Wait.Timeout + + lda TimeOut bne DHCP.RUN.ROFFER lda #1 @@ -98,13 +100,17 @@ DHCP.RUN.SREQ >PUSHW L.MSG.DHCP.CFG2 lda #S.IPCFG.STATUS.SREQ sta IPCFG + DHCP.RUN.RACK >SLEEP jsr DHCP.RUN.SKT.RCVD bcc .1 - jsr Wait.Timeout + + lda TimeOut bne DHCP.RUN.RACK + lda #2 bra DHCP.RUN.KO + .1 jsr CheckDHCPAck bcs DHCP.RUN.RACK @@ -329,6 +335,6 @@ CheckDHCPXID ldy #S.DHCP.XID+3 rts *-------------------------------------- MAN -SAVE USR/SRC/SBIN/IPCONFIG.S.DHCP -LOAD USR/SRC/SBIN/IPCONFIG.S +SAVE usr/src/bin/ipconfig.s.dhcp +LOAD usr/src/bin/ipconfig.s ASM diff --git a/BIN/IPCONFIG.S.ETC.txt b/BIN/IPCONFIG.S.ETC.txt index 9fc443fb..af199235 100644 --- a/BIN/IPCONFIG.S.ETC.txt +++ b/BIN/IPCONFIG.S.ETC.txt @@ -1,6 +1,5 @@ NEW -PREFIX -AUTO 4,1 + AUTO 3,1 .LIST OFF *-------------------------------------- CFG.EtcFiles >LDYAI 256 @@ -227,22 +226,29 @@ CFG.Read.HOSTS stz CFG.hBuf2 >STYA ZPTmpPtr2 stx CFG.hBuf2 + >LDYAI 256 >SYSCALL GetMem bcs .9 >STYA ZPTmpPtr3 stx CFG.hBuf3 + .1 jsr CFG.Read.GetS bcs .8 + lda (ZPTmpPtr1) beq .1 empty line... + cmp #'# beq .1 comment... + jsr CFG.Read.HOSTS.Scan bcs .1 + cmp #5 bcc .1 less than 5 parameters, ignore + beq .2 no alias >LDYA ZPTmpPtr3 jsr CFG.DNS.Add @@ -341,6 +347,6 @@ CFG.Read.GetS >PUSHWI 255 rts *-------------------------------------- MAN -SAVE USR/SRC/SBIN/IPCONFIG.S.ETC -LOAD USR/SRC/SBIN/IPCONFIG.S +SAVE usr/src/bin/ipconfig.s.etc +LOAD usr/src/bin/ipconfig.s ASM diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index 6b0dbb7a..a2e9f5e3 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -5,16 +5,16 @@ NEW .OR $2000 .TF bin/ipconfig *-------------------------------------- - .INB INC/MACROS.I - .INB INC/A2OSX.I - .INB INC/KERNEL.I - .INB INC/MLI.I - .INB INC/MLI.E.I - .INB INC/NIC.I - .INB INC/ETH.I - .INB INC/LIB.NET.I - .INB INC/LIBTCPIP.I - .INB INC/NET.DHCP.I + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/kernel.i + .INB inc/mli.i + .INB inc/mli.e.i + .INB inc/nic.i + .INB inc/eth.i + .INB inc/lib.net.i + .INB inc/libtcpip.i + .INB inc/net.dhcp.i *-------------------------------------- TIMEOUT.MAX .EQ 200 20 sec. *-------------------------------------- @@ -22,14 +22,27 @@ TIMEOUT.MAX .EQ 200 20 sec. .OR ZPBIN ZS.START pIPCFG .BS 2 -ZPFrameBase .BS 2 -ZPFramePtr .BS 2 ZPTmpPtr1 .BS 2 ZPTmpPtr2 .BS 2 ZPTmpPtr3 .BS 2 -*-------------------------------------- -ZS.END - .ED + +ArgIndex .BS 1 +TimeOut .BS 1 +hSocket .BS 1 +hFrame .BS 1 +ZPFrameBase .BS 2 +ZPFramePtr .BS 2 + +bDHCP .BS 1 +bETC .BS 1 +bSET .BS 1 + +CFG.hBuf1 .BS 1 +CFG.hBuf2 .BS 1 +CFG.hBuf3 .BS 1 +CFG.hCfgFile .BS 1 + +ZS.END .ED *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -128,7 +141,8 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG sec rts CS.RUN.SETUP -.1 >INC.G ArgIndex +.1 inc ArgIndex + lda ArgIndex >SYSCALL ArgV bcs .4 @@ -156,29 +170,29 @@ CS.RUN.SETUP rts .3 ldy OptionVars,x - lda #$80 - sta (pData),y + lda #$ff + sta $0,y bra .1 *-------------------------------------- -.4 >LDA.G bSET +.4 lda bSET bne .41 Force ... lda IPCFG+S.NETCFG.STATUS bne .5 .41 lda #$ff no config, force all - >STA.G bETC - >STA.G bDHCP + sta bETC + sta bDHCP -.5 >LDA.G bETC - >ORA.G bDHCP +.5 lda bETC + ora bDHCP beq CS.RUN.DUMP - >LDA.G bETC + lda bETC bpl .6 jsr CFG.EtcFiles -.6 >LDA.G bDHCP +.6 lda bDHCP bpl .8 jsr DHCP.INIT @@ -358,30 +372,25 @@ CS.RUN.DUMPIP >PUSHW L.MSG2 *-------------------------------------- CS.DOEVENT lda (pEvent) bpl .9 is it a TIMER event? - >LDA.G TimeOut + + lda TimeOut beq .9 - dec - sta (pData),y + + dec TimeOut + .9 sec do not discard TIMER event rts *-------------------------------------- CS.QUIT lda hLIBTCPIP beq .8 + >SYSCALL UnloadLib + .8 clc rts *-------------------------------------- -Init.Timeout ldy #TimeOut - lda #TIMEOUT.MAX - sta (pData),y - rts -*-------------------------------------- -Wait.TimeOut ldy #TimeOut - lda (pData),y - rts -*-------------------------------------- - .INB USR/SRC/SBIN/IPCONFIG.S.DHCP - .INB USR/SRC/SBIN/IPCONFIG.S.ETC + .INB usr/src/bin/ipconfig.s.dhcp + .INB usr/src/bin/ipconfig.s.etc *-------------------------------------- CS.END LIBTCPIP .AZ "libtcpip" @@ -446,10 +455,6 @@ MSG.DHCP.OK .AZ "IPCONFIG:Success:[IP=%d.%d.%d.%d/%d.%d.%d.%d]\r\n" MSG.DHCP.NA .AZ "IPCONFIG:TCPIP Already configured, exiting." *-------------------------------------- IPCFG .BS S.IPCFG -CFG.hBuf1 .BS 1 -CFG.hBuf2 .BS 1 -CFG.hBuf3 .BS 1 -CFG.hCfgFile .BS 1 CFG.IP .BS 4 *-------------------------------------- SA.LOCAL .DA #AF.INET S.SOCKADDR.AF @@ -508,18 +513,11 @@ DHCP.REQ.LEN .EQ *-DHCP.REQ .DUMMY .OR 0 DS.START -ArgIndex .BS 1 -bDHCP .BS 1 -bETC .BS 1 -bSET .BS 1 DIB .BS S.DIB IOCTL .BS S.IOCTL DCB.NIC .BS S.DCB.NIC -TimeOut .BS 1 -hSocket .BS 1 -hFrame .BS 1 DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/SBIN/IPCONFIG.S +SAVE usr/src/bin/ipconfig.s ASM diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index f423aeef..c2ed2e20 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -720,5 +720,5 @@ IO.FIFO .BS 12 /DEV/FIFOxx\0 DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/BIN/SH.S +SAVE usr/src/bin/sh.s ASM diff --git a/SBIN/CIFSD.S.txt b/SBIN/CIFSD.S.txt index caae4b26..1c11134c 100644 --- a/SBIN/CIFSD.S.txt +++ b/SBIN/CIFSD.S.txt @@ -646,5 +646,5 @@ DS.END .ED *-------------------------------------- MAN -SAVE usr/src/sbin/cifsd +SAVE usr/src/sbin/cifsd.s ASM diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index b633d43c..45b884d5 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -37,6 +37,12 @@ ZPnRequestLen .BS 2 ZPLinePtr .BS 2 ZPRepPtr .BS 2 +CLN.hSocket .BS 1 +REP.hBuf .BS 1 +REQ.hFile .BS 1 +REQ.KeepAlive .BS 1 +REQ.MimeType .BS 1 +REQ.hReq .BS 1 ZS.END .ED *-------------------------------------- @@ -313,13 +319,13 @@ CS.RUN.SERVER lda hSrvSocket >LIBCALL hLIBTCPIP,LIBTCPIP.accept bcs .8 - >STA.G CLN.hSocket + sta CLN.hSocket >SYSCALL GetMemPtr >STYA ZPSktPtr >PUSHW L.MSG.INCOMING - >PUSHB.G CLN.hSocket + >PUSHB CLN.hSocket ldx #3 ldy #S.SOCKET.REM.ADDR @@ -335,11 +341,11 @@ CS.RUN.SERVER lda hSrvSocket jsr CS.RUN.CLIENT >PUSHW L.MSG.SKTCLOSE - >PUSHB.G CLN.hSocket + >PUSHB CLN.hSocket >PUSHBI 1 >SYSCALL printf - >LDA.G CLN.hSocket + lda CLN.hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown .8 clc @@ -352,17 +358,16 @@ CS.RUN.CLIENT >LDYAI 1024 bcs CS.RUN.SERVER.RTS >STYA ZPRepPtr - txa - >STA.G REP.hBuf + stx REP.hBuf .10 >STZ.G REQ.FullPath - >STA.G REQ.hReq - >STA.G REQ.KeepAlive - >STA.G REQ.hFile + stz REQ.hReq + stz REQ.KeepAlive + stz REQ.hFile .1 >SLEEP - >LDA.G CLN.hSocket + lda CLN.hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Recv bcc .2 @@ -386,10 +391,10 @@ CS.RUN.CLIENT >LDYAI 1024 bcc .3 bcs .98 -.4 >LDA.G REQ.hReq +.4 lda REQ.hReq >SYSCALL FreeMem - >STZ.G REQ.hReq + stz REQ.hReq >LDA.G REQ.FullPath beq .9 @@ -404,31 +409,31 @@ CS.RUN.CLIENT >LDYAI 1024 .9 >PUSHWI HTTP.404.len >PUSHW L.HTTP.404 - >LDA.G CLN.hSocket + lda CLN.hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Send -.8 >LDA.G REQ.KeepAlive - beq .99 +.8 bit REQ.KeepAlive + bpl .99 jmp .10 -.98 >LDA.G REQ.hReq +.98 lda REQ.hReq beq .99 >SYSCALL FreeMem -.99 >LDA.G REP.hBuf +.99 lda REP.hBuf >SYSCALL freemem rts *-------------------------------------- CS.RUN.REQ.GetReq - >STA.G REQ.hReq + sta REQ.hReq >SYSCALL GetMemPtr >STYA ZPRequestPtr >PUSHW L.MSG.REQ - >PUSHB.G REQ.hReq - >PUSHB.G CLN.hSocket + >PUSHB REQ.hReq + >PUSHB CLN.hSocket >PUSHBI 2 >SYSCALL printf @@ -496,7 +501,7 @@ CS.RUN.REQ.GetLine rts *-------------------------------------- CS.RUN.OpenFile >PUSHW L.MSG.FILE - >PUSHB.G CLN.hSocket + >PUSHB CLN.hSocket >PUSHEA.G REQ.FullPath >PUSHBI 3 >SYSCALL printf @@ -508,8 +513,7 @@ CS.RUN.OpenFile >PUSHW L.MSG.FILE >SYSCALL FOpen bcs .9 - txa - >STA.G REQ.hFile + stx REQ.hFile >PUSHA >PUSHEA.G REQ.Stat @@ -551,15 +555,15 @@ CS.RUN.OpenFile >PUSHW L.MSG.FILE txa -.8 >STA.G REQ.MimeType +.8 sta REQ.MimeType clc .9 rts *-------------------------------------- CS.RUN.SendFile >PUSHW ZPRepPtr >PUSHW L.HTTP.200 - >LDA.G REQ.MimeType - tax + + ldx REQ.MimeType >PUSHW T.MIME,x >PUSHL.G REQ.Stat+S.STAT.SIZE >PUSHBI 6 @@ -571,7 +575,7 @@ CS.RUN.SendFile >PUSHW ZPRepPtr .1 >PUSHWI 1024 >PUSHW ZPRepPtr - >LDA.G REQ.hFile + lda REQ.hFile >SYSCALL fread bcs .8 @@ -587,7 +591,7 @@ CS.RUN.SendFile >PUSHW ZPRepPtr .9 php pha - >LDA.G REQ.hFile + lda REQ.hFile >SYSCALL FClose pla plp @@ -595,7 +599,7 @@ CS.RUN.SendFile >PUSHW ZPRepPtr *-------------------------------------- CS.RUN.SendBuf >PUSHYA >PUSHW ZPRepPtr - >LDA.G CLN.hSocket + lda CLN.hSocket >LIBCALL hLIBTCPIP,LIBTCPIP.Send rts *-------------------------------------- @@ -647,7 +651,7 @@ CS.RUN.REQ.Connection lda #$ff -.1 >STA.G REQ.KeepAlive +.1 sta REQ.KeepAlive clc rts @@ -809,12 +813,6 @@ SA.LOCAL .DA #AF.INET S.SOCKADDR.AF DS.START REQ.FullPath .BS MLI.MAXPATH+1 REQ.Stat .BS S.STAT -CLN.hSocket .BS 1 -REQ.hReq .BS 1 -REQ.hFile .BS 1 -REQ.MimeType .BS 1 -REQ.KeepAlive .BS 1 -REP.hBuf .BS 1 DS.END .ED *-------------------------------------- diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 3394eb3f..f5983df2 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -343,7 +343,7 @@ K.FreeMem.ERR >PUSHWI K.FreeMem.MSG >PUSHBI 2 .1 >SYSCALL2 printf - + >DEBUG lda #E.INVH sec rts diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index d1da137d..ad318fb3 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -74,7 +74,8 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem .8 lda #$ff SELF MODIFIED * clc -.9 rts +.9 +PS.Exec.RTS rts */-------------------------------------- * # Fork * ## C @@ -85,7 +86,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem * A = Child PSID *\-------------------------------------- K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem - bcs .9 + bcs PS.Exec.RTS sta .8+1 ldy #S.PS.S @@ -93,7 +94,87 @@ K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem sta (PS.NewPSPtr),y ldy #S.PS.hCS + lda (pPS),y + sta (PS.NewPSPtr),y + jsr MEM.GetMemByID + jsr Mem.IncRefCnt + ldy #S.MEM.PTR+1 + lda (ZPMemMgrSPtr),y + pha + dey + lda (ZPMemMgrSPtr),y + ldy #S.PS.ZP.CODE+1 + sta (PS.NewPSPtr),y + dey + pla + sta (PS.NewPSPtr),y + + ldy #S.PS.hDS + lda (pPS),y + jsr MEM.Dup + bcs .9 + + ldy #S.PS.hDS + sta (PS.NewPSPtr),y + jsr K.GetMemPtr + phy + ldy #S.PS.ZP.DATA+1 + sta (PS.NewPSPtr),y + dey + pla + sta (PS.NewPSPtr),y + + ldy #S.PS.hSS + lda (pPS),y + jsr MEM.Dup + bcs .9 + + ldy #S.PS.hSS + sta (PS.NewPSPtr),y + jsr K.GetMemPtr + phy + ldy #S.PS.ZP.STACK+1 + sta (PS.NewPSPtr),y + dey + pla + sta (PS.NewPSPtr),y + + ldy #S.PS.hARGV + lda (pPS),y + jsr MEM.Dup + bcs .9 + + ldy #S.PS.hARGV + sta (PS.NewPSPtr),y + dey + lda (pPS),y S.PS.ARGC + sta (PS.NewPSPtr),y + + ldy #S.PS.ARGC + sta (PS.NewPSPtr),y + iny S.PS.hARGV + txa + sta (PS.NewPSPtr),y + + ldy #S.PS.A + lda #0 + sta (PS.NewPSPtr),y Forked PS will get A=PSID=0 + iny + +.1 lda (pPS),y + sta (PS.NewPSPtr),y + iny + cpy #S.PS.hSession + bne .1 + + ldy #S.PS.ZP.LOCAL + +.2 lda (pPS),y + sta (PS.NewPSPtr),y + iny + cpy #S.PS + bne .2 .8 lda #$ff SELF MODIFIED * clc @@ -153,24 +234,20 @@ PS.CreateChild ldx #0 lda CORE.LastPSID ldy #S.PS.PID sta (PS.NewPSPtr),y + + ldy #S.PS.PPID lda #S.PS.F.NOHUP - bit PS.Flags - beq .5 + and PS.Flags + beq .5 set PPID = 0 - lda PS.Table.hPS Select PS0 - jsr K.GetMemPtr - bra .6 - -.5 >LDYA pPs - -.6 >STYA ZPPtr1 - ldy #S.PS.PID - lda (ZPPtr1),y + iny #S.PS.PID + lda (pPS),y dey #S.PS.PPID - sta (PS.NewPSPtr),y - ldy #S.PS.hCWD copy hPREFIX... - lda (ZPPtr1),y +.5 sta (PS.NewPSPtr),y + + ldy #S.PS.hCWD copy hPREFIX... + lda (pPS),y jsr K.GetMemPtr jsr K.StrDup @@ -183,7 +260,7 @@ PS.CreateChild ldx #0 sta (PS.NewPSPtr),y ldy #S.PS.hENV - lda (ZPPtr1),y + lda (pPS),y jsr MEM.DupX dup hENV from parent PS bcs .9 @@ -193,14 +270,14 @@ PS.CreateChild ldx #0 ldy #S.PS.hStdIn -.7 lda (ZPPtr1),y +.7 lda (pPS),y sta (PS.NewPSPtr),y iny cpy #S.PS.hStdErr+1 bne .7 ldy #S.PS.hSession - lda (ZPPtr1),y + lda (pPS),y sta (PS.NewPSPtr),y * tax @@ -211,11 +288,12 @@ PS.CreateChild ldx #0 lda #S.PS.F.HOLD bit PS.Flags beq .8 - ora (ZPPtr1) - sta (ZPPtr1) HOLD parent PS + + ora (pPS) + sta (pPS) HOLD parent PS lda CORE.LastPSID ldy #S.PS.CPID - sta (ZPPtr1),y + sta (pPS),y .8 * lda #S.PS.S.INIT * ldy #S.PS.S