From b9a3c10329405060053611f6487fcbaae3d43540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 13 Oct 2016 18:00:27 +0200 Subject: [PATCH] Kernel version 0.8 : Migrating LS to new DIR/TIME API --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/LS.S.txt | 216 +++++++++++++++++++++++++++++++++---------- INC/A2osX.I.txt | 7 +- SYS/KERNEL.S.DIR.txt | 68 +++++++++++--- 5 files changed, 227 insertions(+), 64 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index b0665ab8665fa1da779ab8ec65dcc1ae424843ec..8af81521124bda710d81ef061529a9c73ce7d042 100644 GIT binary patch delta 2428 zcmai0e{2)?6~8x(*tv$J>z0lpPb$sE*0J|J zhmh=_S*P#&e&4-cpZC7+orAO1;H))0ypJjx#v}XERb>BoE8A`{Y)J0p!v`NFY5s$Q z$Y4+I8UOTPZx#75zrWW_p5?>6Pm>>y&-F?a^^GDQ{n6*-DgL#-X6txS%m+d|RcAY{s2U0Qo%TJ`j7^IufqO~i2Hk~(7VsYyiUP*Wj&HiJd> zkHsy=&1F!7b?D1NvIQ3KOaaN}l|?jL$WWCXNusfiYodLR>p!lMUP8n*(`mb8wxvuq zu7w`jN=p^Cl-0&D^pJx_`9homk0B~TePWoHR+S-vOa`L_#4BCk|8U4jPVs*^^l;#^ z8qU`&2G{901dC{pi8srH37l?@Awg@WPQS;X>RzS>02^X|iL%Ui{vV?}A6fBNv|o%2OD;~btZa&vdCeTFF6 zp#!*?;!qK!ik^jg$9z6%uGo3|HmuMqTyAD4%cl>!1GyPJg;^kIVLH8CYNS(cnmexz zozu=ZW6lx0KyJ9}MSbI!65GG;Tuk`OjA&w#IJzR!R^ zr3qGCIAp1{L()%@7qRMhpsuC;`kdFbKVl zUqkKnb{A;5!H&J2)3R~{_IqBF+OI7+l)iSY>{6Q0bXHcACN<2;VJW*mt8sZPVFfvV zPUFtHu&ce58xx9)MSQueC%}ZM`qR zrK<tO=DTOV)34eE_Q2KHKm$9#G);Jf9FQ*Mhn!(}2ctB+0PV_@ku0dJ3A;t$I6z^VPMk*`)n^8jAf_ezn^}vq3Xs_!)bGz#R zYJ2X5?|!crJ=xoRV3%u0d-J{*e)#R@U`Mv|(#=g($o0Usmyl~OJbeCU|=lkd6 GFa8UtvMyf$ delta 1895 zcmYjSeQXnD7=Pbu*Ot-I!Vt55%=`p+1fl2hq#ZL zop>7;ZvGI5`foIg6!mwGi+=t9Z{)t*Rbi^j3&TtispC%WT4vdpCsSqNavT%GX&SKq zc7@Bvv8!?Y5@Fz}7Fhpn_gvMzs+;DH?^(L&tZbt_9hHwkwv4osVb^=dH zs9>z^;%0t9f&((ED`}%jLb?`8xS+)qDI%lS+;kkX=jFqL^5G$wM-t_<6eiyvlHL9V zf%7t)M0EEDFH049VHkJdQI_1m4ASoPKXP9^jmNmj^G%;bH3|W{MUSZxnPA`eqzE zIwaq{D2r)%3`KNDFUsv1`S7s(EbtUnc&*o2$P@~bGNXl(`@?dl(*p5V#9yz7Z?e6V z1_TngAdd$!oE=irY2@`1%FamXok6gWEh5D^W@%V6l4#~-4EdVwx zN9LsTg-PHs3-UENMn~Swb?Y_LddRWpN=DB9An17GsS9!xsYz+6%8A-5H?`zE;($yZ z-SE*D%f&%CRu1gE98`I{DppR;Tu&O?&&eTUivhZ$7Iz^K63oRd?0hpnSJJZ%a~kLz zGqW06`Ap!23^R{}pDQqB;~U-zDxg0bm{ZetnR(XVc`9rDKNMhO8>Z&x=!0JzP8w*Sd?Ce2|ijCYam2Zvk%M!uy=Y zs(jm9d9j5%zHiowmOPy*Z*R%72cBKj6e`%@&a(USZTmnf?;d+K;q!?H^0iN%0EOGl z){nILIm>=$uzo}b;|KL3dD z9zmy*v&4oGlGCOwg(i>~YUOoN1YiOT!gQ*~&|hspd9yU%rg{x1X=%Rdw^0$-UVrLP zeEa&iOL4oRL4HNtp{P*3DrF1!6}Ca?HGy29USYR!tAksO^~$;@9?{SB1(z5*6>*!= z*TCHhI)givD1wLsO~83;1&lLFq$i_7X}HxEc=<5R-0E~geh9jaQ)qqS)YM;-`t|TR zEnk@m3!O%f`idmdcLR!qAeu;7>)q|@a)*+%w1Tbh3r{|^QmUnXmT5M|j(COew0`fA zE*$Ie3cR7;+XKso-c+xtHrRy?+LKjIf@GGx&faBD*pv1%_8;vCi8Dx_jR;eqz^vXO z>;MkWUnyTCxrBqT(MsQ5W7iq~_>gR*H&-Bs?Us!&aLwI7An@bjgbj3qmxV`mkfKAl;{yQCWRI)$Gz(q!i* z|M`ktoK5;>5#b%M+FhfLOI7z8uu#pk`ZQOzj&K!r1dE~$#+)h5n&5G9ta}o5*l36W zOAcWbXhK^Yg(6K}ggmDLWTScX%Vm3EX8J73KJ=)KNSu0LXMeZ*VE)wAANJ1T;s7DN zqMi5=ZQADlxcSqjh1)CVZrI$2D(5aY9GfAuwN*ZzW4I)Lm-{Kleek%qLvO~O4yzgKJ8I3iRQT6=%xlJ7_)t6c u_DsS{zKu$l>Z!rC$Gq(-d=Ps(u78H79h(-xcXY?R2La@)l(**){`!AGIXFK6 diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 9ba5943ee0faa270b66eff29926b0dba3f579f62..d074a1857214a46a4d35f4f65ae4d7d040798fb3 100644 GIT binary patch delta 12768 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 u!jx@TGee^yprjGOT{wb13WFJllp^XEb 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 u$6qZ=LHa}$?o%P0LDYA L.LIBSTR - >SYSCALL SYS.LoadLibYA - sta hLIBSTR - - >SYSCALL SYS.GetArgC +CS.INIT >SYSCALL SYS.GetArgC cmp #1 bne .1 ldy #S.PS.hPREFIX lda (pPs),y >SYSCALL SYS.GetMemPtrA - >SYSCALL SYS.NewPStrYA no arg, go get current prefix - stx hFullPath - bra .2 + >SYSCALL SYS.OPENDIRYA + bcc .8 A=hDir +.99 rts .1 lda #1 >SYSCALL SYS.GetArgA >SYSCALL SYS.GetFullPathYA - stx hFullPath - -.2 >SYSCALL SYS.OPENDIRYA bcs .99 - ldy #hDIR + stx hFullPath + >STYA ZPPtr1 + + >PUSHW L.STAT + >PUSHW ZPPtr1 + >SYSCALL SYS.STAT + + bcc .7 File exists, do not extract wildcard + + lda (ZPPtr1) + tay + +.2 lda (ZPPtr1),y search backward for a / + cmp #'/' + beq .3 + dey + bne .2 + +.3 tya + cmp (ZPPtr1) + beq .7 Make sure at least one char + + ldx #0 + phy save / pos to trunk string later + +.4 iny + inx + lda (ZPPtr1),y + sta UsrBuf256,x + tya + cmp (ZPPtr1) + bne .4 + + pla get back / pos + sta (ZPPtr1) trunk it for Opendir + + stx UsrBuf256 + >LDYAI UsrBuf256 + >SYSCALL SYS.NewPstrYA + bcs .9 + txa + ldy #hFilter + sta (pData),y + +.7 >LDYA ZPPtr1 + >SYSCALL SYS.OPENDIRYA + bcs .9 + + jsr .9 Cleanup + +.8 ldy #hDIR A=hDir sta (pData),y - - jsr .99 lda (pPs) ora #S.PS.F.EVENT Now accept events @@ -75,7 +118,7 @@ CS.INIT >LDYA L.LIBSTR clc rts -.99 pha +.9 pha lda hFullPath >SYSCALL SYS.FreeMemA pla @@ -105,9 +148,9 @@ CS.RUN ldy #bCANCEL .3 lda (ZPPtr1) - beq .8 + beq .8 No more entry..exit - lda ZPPtr1 + lda ZPPtr1 set Ptr2=Ptr1+LEN-> S.STAT sec adc (ZPPtr1) sta ZPPtr2 @@ -115,31 +158,32 @@ CS.RUN ldy #bCANCEL adc #0 sta ZPPtr2+1 - ldy #S.STAT.PRODOS.TYPE - lda (ZPPtr2),y - cmp #$0F Directory ? - bne .31 - + ldy #hFilter + lda (pData),y + beq .4 No filter.... + + >SYSCALL SYS.GetMemPtrA + >PUSHYA >PUSHW ZPPtr1 - >LDYA L.MSG.DIR - >SYSCALL SYS.PrintFYA + >SYSCALL SYS.PStrMatch + bcs .7 no match, skip.... + +.4 ldy #S.STAT.PRODOS.DRIVE + lda (ZPPtr2),y ProDOS Device ? + beq .5 + + jsr CS.RUN.DEV bra .7 -.31 ldy #S.STAT.PRODOS.AUXTYPE+1 +.5 ldy #S.STAT.PRODOS.TYPE lda (ZPPtr2),y - >PUSHA - dey - lda (ZPPtr2),y - >PUSHA + cmp #$0F Directory ? + bne .6 + + jsr CS.RUN.DIR + bra .7 - dey - lda (ZPPtr2),y - jsr FileType2PSTR - >PUSHYA - - >PUSHW ZPPtr1 - >LDYA L.MSG.FILE - >SYSCALL SYS.PrintFYA +.6 jsr CS.RUN.FILE .7 lda ZPPtr2 clc @@ -155,6 +199,81 @@ CS.RUN ldy #bCANCEL clc rts *-------------------------------------- +CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1 + >PUSHB (ZPPtr2),y + dey + >PUSHB (ZPPtr2),y + ldy #S.STAT.BLOCKS+1 + >PUSHB (ZPPtr2),y + dey + >PUSHB (ZPPtr2),y + + ldy #S.STAT.PRODOS.DRIVE + >PUSHB (ZPPtr2),y + dey SLOT + >PUSHB (ZPPtr2),y + + >PUSHW ZPPtr1 + >LDYA L.MSG.DEV + >SYSCALL SYS.PrintFYA + rts +*-------------------------------------- +CS.RUN.DIR >PUSHW ZPPtr1 + >LDYA L.MSG.DIR + >SYSCALL SYS.PrintFYA + rts +*-------------------------------------- +CS.RUN.FILE >PUSHW L.TIME.Buffer + >PUSHW L.TIME.Format + lda ZPPtr2 + clc + adc #S.STAT.MTIME + tay + lda ZPPtr2+1 + adc #0 + >PUSHYA + >SYSCALL SYS.PStrFTime + + >PUSHW L.TIME.Buffer ModTime + + >PUSHW L.TIME.Buffer + >PUSHW L.TIME.Format + lda ZPPtr2 + clc + adc #S.STAT.CTIME + tay + lda ZPPtr2+1 + adc #0 + >PUSHYA + >SYSCALL SYS.PStrFTime + + >PUSHW L.TIME.Buffer Create Time + + lda ZPPtr2 + clc + adc #S.STAT.SIZE + tay + lda ZPPtr2+1 + adc #0 + >PUSHYA File Size + + ldy #S.STAT.PRODOS.AUXTYPE+1 + lda (ZPPtr2),y + >PUSHA + dey + lda (ZPPtr2),y + >PUSHA AuxType + + dey + lda (ZPPtr2),y + jsr FileType2PSTR + >PUSHYA Type + + >PUSHW ZPPtr1 + >LDYA L.MSG.FILE + >SYSCALL SYS.PrintFYA + rts +*-------------------------------------- CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device? lda (pEvent),y ldy #S.PS.hINDEV @@ -198,15 +317,12 @@ CS.QUIT ldy #hDIR >SYSCALL SYS.CLOSEDIRA - ldy #hDIRPATH + ldy #hFilter lda (pData),y beq .3 >SYSCALL SYS.FreeMemA -.3 lda hLIBSTR - >SYSCALL SYS.UnloadLibA - - clc +.3 clc rts *-------------------------------------- FileType2PSTR ldy #0 @@ -243,10 +359,9 @@ FileType2PSTR ldy #0 rts *-------------------------------------- CS.END -LIBSTR >PSTRING "libstr.o" -MSG.VOL >CSTRING "/%S\n" +MSG.DEV >CSTRING "%15S S%d,D%d Blocks Used:%5D,Total:%5D\n" MSG.DIR >CSTRING "/%15S \n" -MSG.FILE >CSTRING "%15S %S $%H\n" +MSG.FILE >CSTRING "%15S %S $%H %10u %S %S\n" *-------------------------------------- PRODOS.FT.HEX .HS 0406FAFCFDE2FF PRODOS.FT.TXT >PSTRING "TXT" @@ -257,17 +372,18 @@ PRODOS.FT.TXT >PSTRING "TXT" >PSTRING "ATK" >PSTRING "SYS" PRODOS.FT.DFLT >PSTRING "$ " +TIME.Format >PSTRING "%y-%b-%b %H:%M" +TIME.Buffer .BS 16 HEXDIGIT .AS '0123456789ABCDEF' -hLIBSTR .BS 1 hFullPath .BS 1 +STAT .BS S.STAT *-------------------------------------- .DUMMY .OR 0 DS.START hDIRPATH .BS 1 hDIR .BS 1 -hVOLHEADER .BS 1 -hDIRHEADER .BS 1 +hFilter .BS 1 bSTOP .BS 1 bCANCEL .BS 1 DS.END diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 5fccfee6..32c22261 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -455,8 +455,13 @@ S.STAT.BLOCKS .EQ 34 DWORD S.STAT.BLKSIZE .EQ 38 WORD S.STAT.PRODOS.TYPE .EQ 40 BYTE S.STAT.PRODOS.AUXTYPE .EQ 41 WORD +S.STAT.PRODOS.SLOT .EQ 42 +S.STAT.PRODOS.DRIVE .EQ 43 +S.STAT.PRODOS.DEVSTATUS .EQ 44 +S.STAT.PRODOS.DEVCNFLCT .EQ 45 +S.STAT.PRODOS.DEVBLOCKS .EQ 46 * -S.STAT .EQ 43 +S.STAT .EQ 48 *-------------------------------------- * S.FILE for FOPEN,FREAD...... *-------------------------------------- diff --git a/SYS/KERNEL.S.DIR.txt b/SYS/KERNEL.S.DIR.txt index b350d034..8c4690c0 100644 --- a/SYS/KERNEL.S.DIR.txt +++ b/SYS/KERNEL.S.DIR.txt @@ -14,7 +14,7 @@ AUTO 6 *-------------------------------------- K.OPENDIRYA jsr PFT.CheckPathYA >STYA ZPQuickPtr2 - >STYA MLICALL.PARAMS+1 For MLIOPEN + >STYA MLICALL.PARAMS+1 For GETFILEINFO,MLIOPEN >PUSHWI S.DIR.PRODOS >PUSHBI S.MEM.F.INIT0 @@ -36,7 +36,13 @@ K.OPENDIRYA jsr PFT.CheckPathYA sec .9 rts -.7 >PUSHWI 1024 get a ProDOS IOBUF +.7 >MLICALL MLIGETFILEINFO + bcs .98 file/dir does not exists....quit + lda MLICALL.PARAMS+4 + cmp #$0F Directory ? + bne .98 + + >PUSHWI 1024 get a ProDOS IOBUF >PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE jsr K.GetMem bcs .98 @@ -152,7 +158,7 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes tax - >LDYAI ZPQuickPtr4 Store actual PTR for MLIGETFILEINFO + >LDYA ZPQuickPtr4 Store actual PTR for MLIGETFILEINFO >STYA MLICALL.PARAMS+1 txa @@ -169,9 +175,32 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes dex bne .4 - >MLICALL MLIGETFILEINFO - bcs .80 + jsr K.READDIRA.ClrStat + lda (ZPQuickPtr2) + + asl DRIVE in Carry + pha + lda #0 + rol + inc + sta KrnBuf256+S.STAT.PRODOS.DRIVE + pla + lsr CC + lsr + lsr + lsr + lsr + sta KrnBuf256+S.STAT.PRODOS.SLOT + + >MLICALL MLIGETFILEINFO + sta KrnBuf256+S.STAT.PRODOS.DEVSTATUS + + bcs .80 + >LDYA MLICALL.PARAMS+5 AUXTYPE=TOTAL BLOCKS + >STYA KrnBuf256+S.STAT.PRODOS.DEVBLOCKS + >LDYA MLICALL.PARAMS+8 + >STYA KrnBuf256+S.STAT.BLOCKS .80 jsr K.READDIRA.ADDSTAT @@ -453,6 +482,23 @@ K.READDIRA.ADDF jsr K.READDIRA.AddFNToBuf lda (ZPQuickPtr3),y sta KrnBuf256+S.STAT.PRODOS.TYPE + ldy #$13 blocks_used + lda (ZPQuickPtr3),y + sta KrnBuf256+S.STAT.BLOCKS + iny + lda (ZPQuickPtr3),y + sta KrnBuf256+S.STAT.BLOCKS+1 + + iny $15 EOF + lda (ZPQuickPtr3),y + sta KrnBuf256+S.STAT.SIZE + iny + lda (ZPQuickPtr3),y + sta KrnBuf256+S.STAT.SIZE+1 + iny + lda (ZPQuickPtr3),y + sta KrnBuf256+S.STAT.SIZE+2 + ldy #$1F auxtype lda (ZPQuickPtr3),y sta KrnBuf256+S.STAT.PRODOS.AUXTYPE @@ -481,7 +527,7 @@ K.READDIRA.ClrStat ldx #S.STAT-1 .1 stz KrnBuf256,x - dey + dex bpl .1 rts *-------------------------------------- @@ -506,19 +552,15 @@ K.READDIRA.AddToBuf bne .8 inc ZPQuickPtr4+1 .8 rts -*-------------------------------------- - ldy #S.STAT.BLKSIZE+1 - lda #2 Block size is $200 for ProDOS - sta (ZPQuickPtr3),y *-------------------------------------- * In : * A = hDIR *-------------------------------------- K.CLOSEDIRA jsr PFT.CheckDirA - pha + sta K.OPENDIRYA.hDIR jsr K.GetMemPtrA >STYA ZPQuickPtr1 - + K.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF lda (ZPQuickPtr1),y beq .1 @@ -530,7 +572,7 @@ K.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF beq .2 jsr K.FreeMemA -.2 pla +.2 lda K.OPENDIRYA.hDIR jsr K.FreeMemA clc rts