From 9099848c6a5e71f98de2cc1bcb35e0510139e762 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 3 Apr 2017 23:13:46 +0200 Subject: [PATCH] Kernel version 0.9 : CHTYP and related API entries added to kernel....still in progress --- BIN/CHGRP.S.txt | 0 BIN/CHOWN.S.txt | 0 BIN/CHTYP.S.txt | 128 ++++++++++++++++++++++++++++++++-------- BIN/CP.S.txt | 4 +- BIN/MV.S.txt | 4 +- BIN/RM.S.txt | 4 +- BIN/X.CPMVRM.S.txt | 4 +- Floppies/A2OSX.BUILD.po | Bin 819200 -> 819200 bytes Floppies/A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/A2osX.I.txt | 8 +-- README.md | 8 +++ SYS/KERNEL.S.FIO.txt | 43 ++++++++++++++ SYS/KERNEL.S.JMP.txt | 13 ++-- SYS/KERNEL.S.txt | 21 ++----- _Docs/KERNEL.md | 24 ++++++++ 15 files changed, 202 insertions(+), 59 deletions(-) create mode 100644 BIN/CHGRP.S.txt create mode 100644 BIN/CHOWN.S.txt diff --git a/BIN/CHGRP.S.txt b/BIN/CHGRP.S.txt new file mode 100644 index 00000000..e69de29b diff --git a/BIN/CHOWN.S.txt b/BIN/CHOWN.S.txt new file mode 100644 index 00000000..e69de29b diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index f17d2111..a14d95a2 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -38,6 +38,7 @@ CS.START cld .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE +L.MSG.FILE .DA MSG.FILE L.MSG.OK .DA MSG.OK L.MSG.ERR .DA MSG.ERR L.STAT .DA STAT @@ -46,11 +47,16 @@ L.PRODOS.FT.TXT .DA PRODOS.FT.TXT-1 *-------------------------------------- CS.INIT >SYSCALL GetArgC sta ArgCount + cmp #1 + beq .99 -.1 dec ArgCount - beq .98 + stz ArgIndex - lda ArgCount +.1 dec ArgCount + beq .7 + + inc ArgIndex + lda ArgIndex >SYSCALL GetArgA >STYA ZPPtr1 @@ -73,24 +79,44 @@ CS.INIT >SYSCALL GetArgC dex bne .2 - bra .98 +.99 >LDYA L.MSG.USAGE + >SYSCALL PPrintFYA + lda #SYSMGR.ERRSYN + sec + rts .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 -.4 >LDYA ZPPtr1 +.4 ldy #index + lda (pData),y + bne .5 + + >LDYA ZPPtr1 jsr InitSrcDirYA - bcs .9 + bcc .1 + rts - bra .1 scan for any other args +.5 ldy #HexFileType + lda (pData),y + bne .99 -.98 >LDYA L.MSG.USAGE - >SYSCALL PPrintFYA -.99 lda #SYSMGR.ERRSYN - sec -.9 rts + jsr GetHexFileType + bcs .99 + bra .1 + +.7 ldy #index processed all args + lda (pData),y + beq .99 , no src ? ERROR + + ldy #HexFileType + lda (pData),y + beq .99 we also have a TYPE + + clc + rts *-------------------------------------- CS.RUN >SYSCALL GetC bcs .10 no char @@ -150,21 +176,70 @@ CS.RUN >SYSCALL GetC sec .99 rts *-------------------------------------- -CS.RUN.DEV +CS.RUN.DIR .8 jsr GetNextEntry clc .9 rts *-------------------------------------- -CS.RUN.DIR +CS.RUN.DEV +.8 jsr GetNextEntry + clc +.9 rts +*-------------------------------------- +CS.RUN.FILE jsr CS.RUN.GetFilePath + + >PUSHWI UsrBuf256 + + >LDYA L.MSG.FILE + >SYSCALL PPrintFYA + bcs .9 + + jsr CS.RUN.CheckErr + .8 jsr GetNextEntry clc .9 rts *-------------------------------------- -CS.RUN.FILE -.8 jsr GetNextEntry - clc +CS.RUN.CheckErr bcs .1 + >LDYA L.MSG.OK + >SYSCALL PPrintFYA + rts + +.1 pha + + ldy #bContinue + lda (pData),y + bpl .2 + + pla + >PUSHA + >LDYA L.MSG.ERR + + >SYSCALL CPrintFYA + bcs .9 + rts + +.2 lda #13 + >SYSCALL PutCA + lda #10 + >SYSCALL PutCA + pla + sec .9 rts *-------------------------------------- +CS.RUN.GetFilePath + ldy #hSrcBasePath + lda (pData),y + >SYSCALL GetMemPtrA + >PUSHYA + >PUSHWI UsrBuf256 + >SYSCALL PStrCpy + + >PUSHW ZPFileName + >PUSHWI UsrBuf256 + >SYSCALL PStrCat + rts +*-------------------------------------- CS.DOEVENT sec rts *-------------------------------------- @@ -179,15 +254,13 @@ CS.QUIT jsr LeaveSubDir .3 clc rts *-------------------------------------- -GetHexFileTypeA >SYSCALL GetMemPtrA - >STYA ZPPtr1 - lda (ZPPtr1) +GetHexFileType lda (ZPPtr1) cmp #3 bne .9 ldy #1 lda (ZPPtr1),y - cmp #'%' + cmp #'0' bne .1 iny @@ -255,14 +328,16 @@ GetHexFileTypeA >SYSCALL GetMemPtrA *-------------------------------------- CS.END *-------------------------------------- -OptionList >PSTR "R" -OptionVars .DA #bRecurse +OptionList >PSTR "CR" +OptionVars .DA #bContinue,#bRecurse *-------------------------------------- -MSG.USAGE >PSTR "Usage : CHTYP <-R> [File *,? wildcards allowed] [File type : %HH, SYS,TXT....]\n" -MSG.OK >PSTR " [Ok]\n" -MSG.ERR >PSTR " [%h]\n" +MSG.USAGE >PSTR "Usage : CHTYP [File *,? wildcards allowed] [File type : 0HH, SYS,TXT....]\r\n -C : Continue on error\r\n -R : Recurse subdirectories\r\n" +MSG.OK >PSTR " [Ok]\r\n" +MSG.ERR >PSTR " [%h]\r\n" +MSG.FILE >PSTR "CHTYP File:%S..." STAT .BS S.STAT ArgCount .BS 1 +ArgIndex .BS 1 Tmp .BS 1 *-------------------------------------- PRODOS.FT.COUNT .EQ 7 @@ -285,6 +360,7 @@ oDIRENTs .BS X.MAX.RECURSE*2 hSrcBasePath .BS 1 hFilter .BS 1 bPause .BS 1 +bContinue .BS 1 bRecurse .BS 1 HexFileType .BS 1 DS.END diff --git a/BIN/CP.S.txt b/BIN/CP.S.txt index 2b4954e3..f97d2273 100644 --- a/BIN/CP.S.txt +++ b/BIN/CP.S.txt @@ -27,8 +27,8 @@ MSG.USAGE >CSTR "Usage : CP [Src File/Dir, *,? wildcards allowed]\r\n -C : Co MSG.DIR >CSTR "CP Dir :%S%S to %S%S..." MSG.FILE >CSTR "CP File:%S%S to %S%S..." MSG.OVERWRTE >CSTR "Overwrite [Yes,No,All]?" -MSG.OK >CSTR "[OK]\r\n" -MSG.ERR >CSTR "[%h]\r\n" +MSG.OK >PSTR "[OK]\r\n" +MSG.ERR >PSTR "[%h]\r\n" *-------------------------------------- STAT .BS S.STAT ArgCount .BS 1 diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 29c7ebbd..9c39a89a 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -27,8 +27,8 @@ MSG.USAGE >CSTR "Usage : MV [Src File/Dir, *,? wildcards allowed]\r\n -C : Co MSG.DIR >CSTR "MV Dir :%S%S to %S%S..." MSG.FILE >CSTR "MV File:%S%S to %S%S..." MSG.OVERWRTE >CSTR "Overwrite [Yes,No,All]?" -MSG.OK >CSTR "[OK]\r\n" -MSG.ERR >CSTR "[%h]\r\n" +MSG.OK >PSTR "[OK]\r\n" +MSG.ERR >PSTR "[%h]\r\n" *-------------------------------------- STAT .BS S.STAT ArgCount .BS 1 diff --git a/BIN/RM.S.txt b/BIN/RM.S.txt index 01954155..9e6e71c3 100644 --- a/BIN/RM.S.txt +++ b/BIN/RM.S.txt @@ -26,8 +26,8 @@ OptionVars .DA #bContinue,#bRecurse,#bNoConfirm MSG.USAGE >CSTR "Usage : RM [File/Dir, *,? wildcards allowed]\r\n -C : Continue on error\r\n -R : Recurse subdirectories\r\n" MSG.DIR >CSTR "RM Dir :%S%S..." MSG.FILE >CSTR "RM File:%S%S..." -MSG.OK >CSTR "[OK]\r\n" -MSG.ERR >CSTR "[%h]\r\n" +MSG.OK >PSTR "[OK]\r\n" +MSG.ERR >PSTR "[%h]\r\n" *-------------------------------------- STAT .BS S.STAT ArgCount .BS 1 diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 5860d841..aee36685 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -576,11 +576,13 @@ CS.RUN.CheckErr bcs .1 >PUSHA >LDYA L.MSG.ERR - >SYSCALL CPrintFYA + >SYSCALL PPrintFYA bcs .9 rts .2 lda #13 + >SYSCALL PutCA + lda #10 >SYSCALL PutCA pla sec diff --git a/Floppies/A2OSX.BUILD.po b/Floppies/A2OSX.BUILD.po index 49bff8bbe6f2e6ec14cd2aa7f13ef51526a610cc..c9c5fec34b1ba9d40bc9877856c5e60d1be06ced 100644 GIT binary patch delta 4502 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 ln^CKi)#~K6Iz_E6saBU{|BiMgG~Sc delta 4442 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 delta 8423 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 K.MLI.PARAMS+1 + >PULLB .1+1 + >MLICALL MLIGETFILEINFO + bcs .9 + +.1 lda #$ff + sta K.MLI.PARAMS+S.FILEINFO.TYPE + >MLICALL MLIGETFILEINFO +.9 rts +*/-------------------------------------- +* # ChMod +* ## In: +* PUSHW = MODE ... +* PUSHW = PATH ...FOpen) +*\-------------------------------------- +K.ChMod + sec + rts +*/-------------------------------------- +* # ChOwn +* ## In: +* PUSHW = UID ... +* PUSHW = PATH ...FOpen) +*\-------------------------------------- +K.ChOwn + sec + rts +*/-------------------------------------- +* # ChGrp +* ## In: +* PUSHW = GID ... +* PUSHW = PATH ...FOpen) +*\-------------------------------------- +K.ChGrp + sec + rts *-------------------------------------- MAN SAVE /A2OSX.SRC/SYS/KERNEL.S.FIO diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 04016b7e..ecbba2f6 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -1,6 +1,6 @@ PR#3 PREFIX /A2OSX.BUILD -NEW +LOMEM $A00 INC 1 AUTO 6 *-------------------------------------- @@ -14,10 +14,10 @@ KERNEL.SYSCALL .DA K.GetFullPathYA .DA K.LoadFile .DA K.SaveFile - .DA 0 - .DA 0 - .DA 0 - .DA 0 + .DA K.ChTyp + .DA K.ChMod + .DA K.ChOwn + .DA K.ChGrp *-------------------------------------- .DA K.LoadDrvYA $10 .DA K.LoadLibYA @@ -113,7 +113,7 @@ KERNEL.SYSCALL .DA 0 .DA 0 *-------------------------------------- - .DA K.FPutCAY + .DA K.FPutCAY $B0 .DA K.PutCA .DA K.FGetCA .DA K.GetC @@ -124,7 +124,6 @@ KERNEL.SYSCALL *-------------------------------------- * LO Byte : * #RRAMWRAMBNK1 or #RRAMWRAMBNK2 -* LO Byte : *-------------------------------------- KERNEL.SYSCALL.FLAGS *-------------------------------------- diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index ee1fb4ad..d21ba368 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -6,13 +6,13 @@ AUTO 6 .LIST OFF .OP 65C02 .OR $2000 - .TF /A2OSX.BUILD/SYS/KERNEL + .TF SYS/KERNEL *-------------------------------------- - .INB /A2OSX.BUILD/INC/MACROS.I - .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/IO.I - .INB /A2OSX.BUILD/INC/PRODOS.I - .INB /A2OSX.BUILD/INC/MLI.ERR.I + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/IO.I + .INB INC/PRODOS.I + .INB INC/MLI.ERR.I *-------------------------------------- TmpPtr1 .EQ $0 for X.PRINTF.S ZPPtr1 .EQ ZPKERNEL @@ -38,16 +38,12 @@ ZPPtr4 .EQ ZPKERNEL+6 .INB /A2OSX.SRC/X.PRINTF.S .INB /A2OSX.SRC/SYS/KERNEL.S.INIT2 .INB /A2OSX.SRC/SYS/KERNEL.S.INIT3 - * Global Page - A2osX.GP .PH $BD00 .INB /A2OSX.SRC/SYS/KERNEL.S.GP .EP A2osX.GP.E .EQ * - * LC AUX $D000 BANK1 API Calls $00-$3E - A2osX.D1 .PH $D000 .DA #RRAMWRAMBNK1 .INB /A2OSX.SRC/SYS/KERNEL.S.FIO @@ -61,9 +57,7 @@ A2osX.D1 .PH $D000 .INB /A2OSX.SRC/SYS/KERNEL.S.BIN .EP A2osX.D1.E .EQ * - * LC AUX $D000 BANK2 API Calls $40-$8E - A2osX.D2 .PH $D000 .DA #RRAMWRAMBNK2 .INB /A2OSX.SRC/SYS/KERNEL.S.CIO @@ -78,9 +72,7 @@ A2osX.D2 .PH $D000 .INB /A2OSX.SRC/SYS/KERNEL.S.TSK .EP A2osX.D2.E .EQ * - * LC AUX $E000 API Calls $80-$FE - A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.JMP .INB /A2OSX.SRC/SYS/KERNEL.S.DAT @@ -92,7 +84,6 @@ A2osX.E0 .PH $E000 .INB /A2OSX.SRC/SYS/KERNEL.S.D01 .EP A2osX.E0.E .EQ * - * CONTROL SECTION : .LIST ON A2osX.GP.S .EQ A2osX.GP.E-A2osX.GP diff --git a/_Docs/KERNEL.md b/_Docs/KERNEL.md index c32d6189..4c81f700 100644 --- a/_Docs/KERNEL.md +++ b/_Docs/KERNEL.md @@ -452,6 +452,30 @@ And return, if found, the full path to it. + PUSHB = MODE ... + PUSHW = PATH ...FOpen) +# ChTyp + +## In: ++ PUSHB = TYPE ... ++ PUSHW = PATH ...FOpen) + +# ChMod + +## In: ++ PUSHW = MODE ... ++ PUSHW = PATH ...FOpen) + +# ChOwn + +## In: ++ PUSHW = UID ... ++ PUSHW = PATH ...FOpen) + +# ChGrp + +## In: ++ PUSHW = GID ... ++ PUSHW = PATH ...FOpen) + # GetMem ## In: