From 1b5baa2aff0f0eedbcf15b4c6d3feede9fa134fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 22 Jun 2018 16:59:24 +0200 Subject: [PATCH] Kernel 0.9.2 --- .Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes .Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/A2osX.I.txt | 3 ++ SYS/KERNEL.S.BIN.txt | 2 +- SYS/KERNEL.S.CORE.txt | 2 +- SYS/KERNEL.S.DEV.txt | 8 ++-- SYS/KERNEL.S.DIRENT.txt | 2 +- SYS/KERNEL.S.DRV.txt | 11 ++--- SYS/KERNEL.S.ENV.txt | 10 ++--- SYS/KERNEL.S.INIT.txt | 87 ++++++++++++++++++++------------------- SYS/KERNEL.S.MATH.txt | 2 +- SYS/KERNEL.S.MEM.txt | 6 +-- SYS/KERNEL.S.PS.txt | 8 ++-- SYS/KERNEL.S.STAT.txt | 10 ++--- SYS/KERNEL.S.STDIO.txt | 8 ++-- SYS/KERNEL.S.STDLIB.txt | 2 +- SYS/KERNEL.S.STRING.txt | 4 +- 17 files changed, 83 insertions(+), 82 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 4e9059dabb328081da9d10c9548b8775fc90bfa8..76f0979219ef3f3bfbb29663ffc3b494cb323360 100644 GIT binary patch delta 7333 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 S8x64=4HGsRCUzR)?)iTL98@j< diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 4b56db1c1ba8f8a0f3fe2f3d8bc0ddfc385dec79..0f024fffb573ab52aadcaa5ad0ebbee2be3c6580 100644 GIT binary patch delta 14759 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 delta 15191 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 GetDevByID.A + >SYSCALL GetDevByID >STYA ZPPtr2 setup Ptr2 to dest HEADER ldy #H.BIN.DRV.HEADER.O diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 9abd6a65..3a204707 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -525,7 +525,7 @@ CORE.PSResume sei DevMgr.Stat .DA DevMgr.FreeMem DevMgr.Free .DA DevMgr.FreeMem .DA DevMgr.HiMem -DevMgr.Count .DA #2 NUL,SYS +DevMgr.Count .DA 0 *-------------------------------------- CORE.VBLState .BS 1 CORE.IRQMode .BS 1 diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index 3081b24c..0350b40f 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -75,10 +75,10 @@ K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq * **Out:** * Y,A = S.DSTAT *\-------------------------------------- -K.DevClose ldx #DEVMGR.CLOSE +K.DevClose ldx #IOCTL.CLOSE .HS 2C BIT ABS -K.GetDevStatus ldx #DEVMGR.STATUS - jsr K.GetDevByID.A +K.GetDevStatus ldx #IOCTL.STATUS + jsr K.GetDevByID bcs K.IOCTL.9 >STYA pDev @@ -103,7 +103,7 @@ K.IOCTL tax op tya id - jsr K.GetDevByID.A + jsr K.GetDevByID bcs K.IOCTL.9 >STYA pDev diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 0ce635fd..7de63b02 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -78,7 +78,7 @@ K.ReadDir.EL .BS 1 K.ReadDir.EPB .BS 1 K.ReadDir.EC .BS 2 *-------------------------------------- -K.ReadDir.A jsr PFT.CheckNodeA +K.ReadDir jsr PFT.CheckNodeA sta K.ReadDir.hDir jsr K.GetMemPtr >STYA ZPPtr1 diff --git a/SYS/KERNEL.S.DRV.txt b/SYS/KERNEL.S.DRV.txt index 98b0d6f3..1225a07f 100644 --- a/SYS/KERNEL.S.DRV.txt +++ b/SYS/KERNEL.S.DRV.txt @@ -228,9 +228,9 @@ DRV.SmartPort cld *-------------------------------------- DRV.SmartPort.S jsr DRV.SmartPort.GetDev >LDYAI K.S.DSTAT - >STYA K.S.IOCTL+2 - lda #3 - sta K.S.IOCTL+4 + >STYA K.S.IOCTL+S.IOCTL.BUFPTR + lda #S.IOCTL.STATCODE.GETDIB + sta K.S.IOCTL+S.IOCTL.CTRLCODE jsr DRV.SmartPort.Go bcs .9 >LDYAI K.S.DSTAT @@ -273,10 +273,7 @@ DRV.SmartPort.GetDev sta DRV.SmartPort.Go.Cmd tax lda DRV.SmartPort.Cnt,x - sta K.S.IOCTL - ldy #S.DEV.DEVID - lda (pDev),y - sta K.S.IOCTL+1 + sta K.S.IOCTL+S.IOCTL.CNT rts DRV.SmartPort.Cnt .HS 03030301030101010404 diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 5159881c..c6ea32a4 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -103,13 +103,13 @@ K.ExpandStr stz .88+1 Reset Intermediate string... .80 lda .88+1 working from our temp string ? beq .81 no... - jsr K.FreeMem.A yes, discard.... + jsr K.FreeMem yes, discard.... .81 ldx ENV.BufLen stz K.Buf256,x >LDYAI K.Buf256 - jsr K.NewStr.YA + jsr K.NewStr bcs .9 stx .88+1 save this as temp string, in case of recurse @@ -300,7 +300,7 @@ ENV.GetValue jsr ENV.ExpandSysVar bcc K.UnsetEnv.I.9 >LDYAI ENV.VarName - jsr K.GetEnv.YA + jsr K.GetEnv bcs K.UnsetEnv.I.9 *-------------------------------------- ENV.AddYAToBuf >STYA ZPPtr3 @@ -337,7 +337,7 @@ ENV.ExpandSysVar and #$0F - jsr K.GetArg.A + jsr K.GetArg bcs K.UnsetEnv.I.8 Arg# is undefined, do not append anything jmp ENV.AddYAToBuf @@ -367,7 +367,7 @@ ENV.SysVarsJmp .DA ENV.SysVarsArgs .DA ENV.SysVarsCPID *-------------------------------------- ENV.SysVarsArgs lda #1 - jsr K.GetArg.A + jsr K.GetArg bcs .8 >STYA ZPPtr3 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index eee9577f..75963a63 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -461,9 +461,7 @@ MemMgrInit >LDYAI Mem.MHiMem rts *-------------------------------------- -PS0Init sta SET80STORE - - ldx #0 +PS0Init ldx #0 ldy #0 @@ -476,12 +474,9 @@ PS0Init sta SET80STORE bcs .10 and #$3F -.10 php - sei - sta SETPAGE2 +.10 sta SETWRITEAUX sta SYS.BASL0,x - sta CLRPAGE2 - plp + sta CLRWRITEAUX iny @@ -502,31 +497,30 @@ PS0Init sta SET80STORE .3 lda #$20 -.4 php - sei - sta SETPAGE2 +.4 sta SETWRITEAUX sta SYS.BASL0,x - sta CLRPAGE2 - plp - + sta CLRWRITEAUX + .5 lda #$20 sta SYS.BASL0,x inx cpx #40 bne .4 - - sta CLR80STORE - + >LDYAI CORE.S.PS0 Select Process 0 (Kernel) >STYA pPs >LDYAI K.STACKTOP >STYA pStack - >LDYAI DEV.SYS - >SYSCALL MkNod Will open SYS - bcs .9 + >LDYAI NODE.NULL + jsr DevMgrInit.AddNode + + >LDYAI NODE.SYS + jsr DevMgrInit.AddNode + + lda #DEVID.SYS ldy #S.PS.hStdIn sta (pPs),y @@ -543,19 +537,19 @@ PS0Init sta SET80STORE *-------------------------------------- DevMgr.SYS.TITLE .AZ "A2osX System Screen" *-------------------------------------- -IOCTL.NULL .DA #S.NODE.T.CDEV +NODE.NULL .DA #S.NODE.T.CDEV .DA #0 HANDLER .DA #0 BUSID - .DA #0 DEVID + .DA #DEVID.NULL .DA DRV.NULL .DA 0 ROMPTR .AZ "NULL" NAME .HS 000000 *-------------------------------------- -IOCTL.SYS .DA #S.NODE.T.CDEV +NODE.SYS .DA #S.NODE.T.CDEV .DA #0 HANDLER .DA #0 BUSID - .DA #1 DEVID + .DA #DEVID.SYS .DA DRV.SYS .DA 0 ROMPTR .AZ "SYS" NAME @@ -812,13 +806,13 @@ DevMgrInit >LDYAI MSG.DEV tax 000DSSS0 lsr 0000DSSS and #$7 - sta IOCTL.BDEV+S.NODE.DEV.BUSID + sta NODE.BDEV+S.NODE.DEV.BUSID lda DEVPTRS,x - sta IOCTL.BDEV+S.NODE.DEV.ROMPTR + sta NODE.BDEV+S.NODE.DEV.ROMPTR lda DEVPTRS+1,x - sta IOCTL.BDEV+S.NODE.DEV.ROMPTR+1 + sta NODE.BDEV+S.NODE.DEV.ROMPTR+1 sta ZPPtr1+1 stz ZPPtr1 @@ -826,7 +820,7 @@ DevMgrInit >LDYAI MSG.DEV plp lda #0 adc #1 Make DevID 1 or 2 - sta IOCTL.BDEV+S.NODE.DEV.DEVID + sta NODE.BDEV+S.NODE.DEV.DEVID lda ZPPtr1+1 @@ -864,11 +858,11 @@ DevMgrInit >LDYAI MSG.DEV lda ZPPtr1 get $Cn and #$f get $0n - cmp IOCTL.BDEV+S.NODE.DEV.DEVID same as SSS ? + cmp NODE.BDEV+S.NODE.DEV.DEVID same as SSS ? beq .51 - inc IOCTL.BDEV+S.NODE.DEV.DEVID Remapped SP devices.... - inc IOCTL.BDEV+S.NODE.DEV.DEVID Add 2 to DEVID (2 & 3) + inc NODE.BDEV+S.NODE.DEV.DEVID Remapped SP devices.... + inc NODE.BDEV+S.NODE.DEV.DEVID Add 2 to DEVID (2 & 3) .51 jsr DevMgrInit.SP lda #A2osX.S.SP @@ -877,7 +871,7 @@ DevMgrInit >LDYAI MSG.DEV .6 jsr DevMgrInit.BLK lda #A2osX.S.BLK -.7 ldx IOCTL.BDEV+S.NODE.DEV.DEVID +.7 ldx NODE.BDEV+S.NODE.DEV.DEVID sta A2osX.S,x .8 dec DevMgrInit.DEVCNT @@ -900,7 +894,7 @@ DevMgrInit.USR >LDYAI DRV.BlkDevice *-------------------------------------- DevMgrInit.BLK ldy #$ff lda (ZPPtr1),y - sta IOCTL.BDEV+S.NODE.DEV.ROMPTR + sta NODE.BDEV+S.NODE.DEV.ROMPTR >LDYAI DRV.BlkDevice jmp DevMgrInit.AddDev @@ -910,11 +904,11 @@ DevMgrInit.SP ldy #$ff clc adc #3 Compute smartport entry point sta .1+1 - sta IOCTL.BDEV+S.NODE.DEV.ROMPTR + sta NODE.BDEV+S.NODE.DEV.ROMPTR lda ZPPtr1+1 sta .1+2 - lda IOCTL.BDEV+S.NODE.DEV.DEVID + lda NODE.BDEV+S.NODE.DEV.DEVID sta SP.DEV.STATUS.DEVID .1 jsr $ffff Self Modified @@ -928,18 +922,25 @@ DevMgrInit.SP ldy #$ff .9 rts *-------------------------------------- DevMgrInit.AddDev - >STYA IOCTL.BDEV+S.NODE.DEV.DRVPTR + >STYA NODE.BDEV+S.NODE.DEV.DRVPTR - lda IOCTL.BDEV+S.NODE.DEV.BUSID + lda NODE.BDEV+S.NODE.DEV.BUSID ora #$30 - sta IOCTL.BDEV+S.NODE.DEV.NAME+1 SnDy + sta NODE.BDEV+S.NODE.DEV.NAME+1 SnDy - lda IOCTL.BDEV+S.NODE.DEV.DEVID + lda NODE.BDEV+S.NODE.DEV.DEVID ora #$30 - sta IOCTL.BDEV+S.NODE.DEV.NAME+3 SxDn + sta NODE.BDEV+S.NODE.DEV.NAME+3 SxDn - >LDYAI IOCTL.BDEV - + >LDYAI NODE.BDEV + +DevMgrInit.AddNode + ldx DevMgr.Count + sta Dev.Table+1,x + tya + sta Dev.Table,x + inc DevMgr.Count + inc DevMgr.Count clc rts @@ -947,7 +948,7 @@ DevMgrInit.AddDev sec rts *-------------------------------------- -IOCTL.BDEV .DA #S.NODE.T.BDEV +NODE.BDEV .DA #S.NODE.T.BDEV .DA #0 HANDLER .DA #0 BUSID .DA #0 DEVID diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index d6d3a246..87c6c0aa 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -123,7 +123,7 @@ K.lrintf jsr MATH.PullFAC >PUSHW FAC+1 >PUSHW FAC+3 - + clc rts *-------------------------------------- diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index c6c4eae8..c14c20d4 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -303,7 +303,7 @@ K.FreeMem phy jsr CORE.PSSelect0 Select PS0 for proper I/O devices - jsr DevMgr.SYS.Control + jsr DRV.SYS.Control pla Get PC and sub 2 for calling address sec @@ -586,7 +586,7 @@ K.LoadStkObj >SYSCALL LoadFile stx .8+1 Save MAIN hMem >STYA A2L Save LEN temporarly - jsr K.NewStkObj.YA + jsr K.NewStkObj bcs .9 stx .80+1 >STYA A4L Save Destination Address in AUX @@ -609,7 +609,7 @@ K.LoadStkObj >SYSCALL LoadFile jsr AuxMove .8 lda #$ff SELF MODIFIED - jsr K.FreeMem.A release MAIN memory + jsr K.FreeMem release MAIN memory .80 lda #$ff Returns AUX hMem rts diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index dccd1f3f..bb95ad14 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -81,7 +81,7 @@ PS.CreateChild ldx #0 .4 inc CORE.LastPSID Get a PSID not alredy running beq .4 not = 0 lda CORE.LastPSID - jsr CORE.GetPSByID.A + jsr CORE.GetPSByID bcc .4 plx @@ -113,7 +113,7 @@ PS.CreateChild ldx #0 ldy #S.PS.hPREFIX copy hPREFIX... lda (pPs),y jsr K.GetMemPtr - jsr K.NewStr.YA + jsr K.NewStr bcs .9 jsr PS.SetMemOwner Set Ownership @@ -124,7 +124,7 @@ PS.CreateChild ldx #0 ldy #S.PS.hENV ...and hENV from parent PS lda (pPs),y - jsr PS.DupEnv.A + jsr PS.DupEnv bcs .9 ldy #S.PS.hENV @@ -253,7 +253,7 @@ PS.CmdLine2Args >STYA ZPPtr1 PS.bInQuote .BS 1 *-------------------------------------- -PS.Init jsr BIN.Load.YA Y,A=filename full path +PS.Init jsr BIN.Load Y,A=filename full path bcs .9 >STYA ZPPtr4 save PTR to Code Segment diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index c02c6729..7fb03b6a 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -125,13 +125,13 @@ K.MkNod jsr K.GetDevByName Ptr1=NAME >STYA .1+1 stx .2+1 - ldy #S.DEV.S + ldy #S.NODE.T lda (pDev),y - bit #S.DEV.S.BLOCK + cmp #S.NODE.T.CDEV bne .99 txa Pass DEV.ID to OPEN - ldx #DEVMGR.OPEN + ldx #IOCTL.OPEN .1 jsr $FFFF SELF MODIFIED bcs .9 @@ -145,12 +145,12 @@ K.MkNod jsr K.GetDevByName Ptr1=NAME lda #S.NODE.T.CDEV sta (ZPPtr3),y - ldy #S.NODE.DEV.ID + ldy #S.NODE.DEV.DEVID .2 lda #$ff Self Modified sta (ZPPtr3),y - ldy #S.NODE.DEV.JMP + ldy #S.NODE.DEV.DRVPTR lda .1+1 sta (ZPPtr3),y diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index f8a3863b..4bd3d05c 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -593,7 +593,7 @@ K.GetChar ldy #S.PS.hStdIn * CC = success * A = char *\-------------------------------------- -K.GetC.A jsr K.GetMemPtr +K.GetC jsr K.GetMemPtr >STYA pDev ldy #S.NODE.T @@ -621,8 +621,8 @@ K.GetC.REG >PUSHWI K.IOBuf lda K.Buf256 .9 rts *-------------------------------------- -K.GetC.CDEV ldx #DEVMGR.READ - ldy #S.NODE.DEV.JMP +K.GetC.CDEV ldx #IOCTL.READ + ldy #S.NODE.DEV.DRVPTR lda (pDev),y sta .1+1 iny @@ -943,7 +943,7 @@ K.FClose.DIR ldy #S.NODE.REG.REF jsr K.FreeMem bra K.FClose.8 -K.FClose.CDEV ldy #S.NODE.DEV.ID +K.FClose.CDEV ldy #S.NODE.DEV.DEVID lda (ZPPtr1),y jsr K.DevClose bcs K.FClose.9 diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 47c57c62..22019417 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -384,7 +384,7 @@ K.realpath >STYA ZPPtr1 bra .5 .89 >LDYAI K.Buf256 - jmp K.NewStr.YA + jmp K.NewStr .90 lda #K.E.SYN sec diff --git a/SYS/KERNEL.S.STRING.txt b/SYS/KERNEL.S.STRING.txt index 76c292a5..b002b8a4 100644 --- a/SYS/KERNEL.S.STRING.txt +++ b/SYS/KERNEL.S.STRING.txt @@ -164,9 +164,9 @@ K.StrMatch jsr MEM.PullP1P2 * **Out:** * Uppercased/lowercased String in Buffer *\-------------------------------------- -K.StrUpr.YA ldx #0 +K.StrUpr ldx #0 .HS 2C bit abs -K.StrLwr.YA ldx #2 +K.StrLwr ldx #2 >STYA ZPPtr1 pha save Y,A to restore them at exit