From f8c1e12990746f7c0d39627388e93d5256a0382b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 29 Jul 2020 17:29:54 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/ATTR.S.txt | 68 +++++++++------------------------------ INC/A2osX.I.txt | 1 + SYS/KERNEL.S.FS.txt | 25 +++----------- 4 files changed, 21 insertions(+), 73 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 64e812cec0a98eb65cbfccbf06bb3c07836c0ef4..d6d903e477a5f7d6eeac1a820c48aef2ac7e66a6 100644 GIT binary patch delta 8396 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 CJX9tC delta 4783 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.G hSrcBasePath beq .9 @@ -210,9 +209,7 @@ CS.RUN.DIR lda (ZPFileName) >SYSCALL PrintF bcs .9 - >PUSHW ZPFullPath - >PUSHW ZPMode - >SYSCALL chmod + jsr CS.RUN.CheckErr bcs .9 @@ -226,56 +223,23 @@ CS.RUN.DIR lda (ZPFileName) .8 clc .9 rts *-------------------------------------- -CS.RUN.FILE clc -.9 rts -*-------------------------------------- -CS.RUN.Str2Mode >SYSCALL ArgV - >STYA ZPPtr1 - - ldy #$ff - -.1 iny - lda (ZPPtr1),y - bne .1 - - cpy #4 must be "765" max +CS.RUN.FILE jsr CS.RUN.GetFilePath + >PUSHW L.MSG.FILE + >PUSHW ZPFullPath + >PUSHBI 2 + >SYSCALL PrintF bcs .9 + + - stz ZPMode - stz ZPMode+1 - - ldy #0 - -.2 lda (ZPPtr1),y - beq .8 - cmp #'0' - bcc .9 - - cmp #'7'+1 + jsr CS.RUN.CheckErr bcs .9 - - asl ZPMode - rol ZPMode+1 - asl ZPMode - rol ZPMode+1 - asl ZPMode - rol ZPMode+1 - and #7 + + + + clc - adc ZPMode - sta ZPMode - bcc .3 - - inc ZPMode+1 - -.3 iny - bra .2 - -.8 clc - rts - -.9 sec - rts +.9 rts *-------------------------------------- CS.RUN.CheckErr bcs .1 >LDYA L.MSG.OK @@ -350,7 +314,7 @@ MSG.USAGE .AS "Usage : ATTR File(s) (*,? wildcards allowed)\r\n" * W: Write enable bit * R: Read enable bit * -* Bit 2 = Invisible Bit +* Bit 2 = Invisible Bit (TECH NOTE #23) *-------------------------------------- MSG.OK .AZ "[OK]" MSG.ERR .AZ "[%h]\r\n" diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 606a6e1a..5e0f1814 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -655,6 +655,7 @@ S.STAT.P.DEVSTATUS .EQ 57 BYTE S.STAT.P.DEVCNFLCT .EQ 58 BYTE S.STAT.P.DEVBLOCKS .EQ 59 WORD S.STAT.FSID .EQ 61 BYTE +S.STAT.P.ACCESS .EQ 62 BYTE * S.STAT .EQ 64 *-------------------------------------- diff --git a/SYS/KERNEL.S.FS.txt b/SYS/KERNEL.S.FS.txt index 21adf739..40d85aa3 100644 --- a/SYS/KERNEL.S.FS.txt +++ b/SYS/KERNEL.S.FS.txt @@ -173,7 +173,7 @@ FS.Stat bit CORE.FSID sta K.S.STAT+S.STAT.MODE+1 .1 lda K.MLI.PARAMS+S.FI.A - jsr FS.Access2Mode + sta K.S.STAT+S.STAT.P.ACCESS ldx #FS.GFI.Cnt @@ -217,10 +217,9 @@ FS.DirEnt2Stat jsr FS.ClrStat dex bne .2 -* ldy #S.FIEX.ACCESS -* lda (ZPPtr3),y - -* jsr FS.Access2Mode + ldy #S.FIEX.ACCESS + lda (ZPPtr3),y + sta K.S.STAT+S.STAT.P.ACCESS ldy #S.FIEX.ACL lda (ZPPtr3),y @@ -261,22 +260,6 @@ FS.ClrStat ldx #S.STAT-1 rts *-------------------------------------- -FS.Access2Mode and #S.FI.A.FULL - cmp #S.FI.A.FULL - beq .7 - - lda #S.STAT.MODE.XU - - .HS 2C BIT ABS -.7 lda #S.STAT.MODE.FU - -.8 sta K.S.STAT+S.STAT.MODE - - lda /S.STAT.MODE.RU - tsb K.S.STAT+S.STAT.MODE+1 preserve DIR - - rts -*-------------------------------------- SHARED.PTime2StatAX clc adc ZPPtr3