From e702d711fc4aa0731a8fb846b36273ef63f610f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 18 Oct 2016 17:56:06 +0200 Subject: [PATCH] Kernel version 0.8 : Migrating CMDs to new CIO/DIR/TIME API --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/LS.S.txt | 107 ++++++++++++++++++++++++++++++++----------- INC/A2osX.I.txt | 15 ++++-- SYS/KERNEL.S.CIO.txt | 32 ++++++++++++- SYS/KERNEL.S.DIR.txt | 74 +++++++++++++++++++----------- 6 files changed, 170 insertions(+), 58 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 25d499704ab5e9e3975866348894dcbc933985b0..4c0d220dc5adedb3d86a825d15be952941c51f8a 100644 GIT binary patch delta 3813 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 delta 3653 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%0AYq@@@$7(@*htmf`vd&xIdyOP(^%9T9Sz|ehBd)& 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 E|9@C8RsaA1 diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 406a87a8..3692eba4 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -43,20 +43,62 @@ L.TIME.Mod .DA TIME.Mod .DA 0 *-------------------------------------- CS.INIT >SYSCALL SYS.GetArgC - cmp #1 - bne .1 + sta ArgCount +.1 dec ArgCount + beq .8 + + lda ArgCount + >SYSCALL SYS.GetArgA + >STYA ZPPtr1 + + lda (ZPPtr1) + cmp #2 + bcc .7 + + ldy #1 + lda (ZPPtr1),y + cmp #'-' + bne .7 + iny + lda (ZPPtr1),y + cmp #'R' + bne .90 + ldy bRecurse + lda #$80 + sta (pData),y + bra .1 + +.7 >LDYA ZPPtr1 + jsr CS.INIT.OPENDIR + bcc .1 + bcs .99 + +.8 ldy #hDIR + lda (pData),y + bne .80 + ldy #S.PS.hPREFIX lda (pPs),y >SYSCALL SYS.GetMemPtrA >SYSCALL SYS.OPENDIRYA - bcc .8 A=hDir -.99 rts - -.1 lda #1 - >SYSCALL SYS.GetArgA + bcs .99 - >SYSCALL SYS.GetFullPathYA + ldy #hDIR + sta (pData),y + +.80 lda (pPs) + ora #S.PS.F.EVENT Now accept events + sta (pPs) + + clc + rts + +.90 lda #SYSMGR.ERRSYN +.99 sec + rts +*-------------------------------------- +CS.INIT.OPENDIR >SYSCALL SYS.GetFullPathYA bcs .99 stx hFullPath >STYA ZPPtr1 @@ -105,25 +147,20 @@ CS.INIT >SYSCALL SYS.GetArgC .7 >LDYA ZPPtr1 >SYSCALL SYS.OPENDIRYA bcs .9 - - jsr .9 Cleanup - -.8 ldy #hDIR A=hDir + ldy #hDIR A=hDir sta (pData),y - lda (pPs) - ora #S.PS.F.EVENT Now accept events - sta (pPs) - + jsr .9 Cleanup clc - rts +.99 rts + .9 pha lda hFullPath >SYSCALL SYS.FreeMemA pla sec - rts + rts *-------------------------------------- CS.RUN ldy #bCANCEL lda (pData),y @@ -220,6 +257,13 @@ CS.RUN.DEV ldy #S.STAT.PRODOS.DEVBLOCKS+1 *-------------------------------------- CS.RUN.DIR jsr CS.RUN.PUSHDATES + ldy #S.STAT.MODE+1 + lda (ZPPtr2),y + >PUSHA + dey + lda (ZPPtr2),y + >PUSHA File Mode + >PUSHW ZPPtr1 >LDYA L.MSG.DIR >SYSCALL SYS.PrintFYA @@ -235,6 +279,13 @@ CS.RUN.FILE jsr CS.RUN.PUSHDATES adc #0 >PUSHYA File Size + ldy #S.STAT.MODE+1 + lda (ZPPtr2),y + >PUSHA + dey + lda (ZPPtr2),y + >PUSHA File Mode + ldy #S.STAT.PRODOS.AUXTYPE+1 lda (ZPPtr2),y >PUSHA @@ -333,10 +384,10 @@ CS.QUIT ldy #hDIR FileType2PSTR ldy #0 .1 cmp PRODOS.FT.HEX,y - beq .3 + beq .2 -.2 iny - cpy #PRODOS.FT.TXT-PRODOS.FT.TXT + iny + cpy #PRODOS.FT.TXT-PRODOS.FT.HEX bne .1 pha @@ -354,7 +405,7 @@ FileType2PSTR ldy #0 lda HEXDIGIT,x sta PRODOS.FT.DFLT+3 -.3 tya +.2 tya asl asl CC adc L.PRODOS.FT.TXT @@ -364,9 +415,14 @@ FileType2PSTR ldy #0 rts *-------------------------------------- CS.END +*-------------------------------------- +hFullPath .BS 1 +STAT .BS S.STAT +ArgCount .BS 1 +*-------------------------------------- MSG.DEV >CSTRING "%15S S%d,D%d Blocks Used:%5D,Total:%5D\n" -MSG.DIR >CSTRING "/%15S %S %S\n" -MSG.FILE >CSTRING "%15S %S $%H %10u %S %S\n" +MSG.DIR >CSTRING "/%15S %a %S %S\n" +MSG.FILE >CSTRING "%15S %S $%H %a %10u %S %S\n" *-------------------------------------- PRODOS.FT.HEX .HS 0406FAFCFDE2FF PRODOS.FT.TXT >PSTRING "TXT" @@ -381,8 +437,6 @@ TIME.Format >PSTRING "%d-%b-%y %H:%M" TIME.Create .BS 20 TIME.Mod .BS 20 HEXDIGIT .AS '0123456789ABCDEF' -hFullPath .BS 1 -STAT .BS S.STAT *-------------------------------------- .DUMMY .OR 0 @@ -392,6 +446,7 @@ hDIR .BS 1 hFilter .BS 1 bSTOP .BS 1 bCANCEL .BS 1 +bRecurse .BS 1 DS.END .ED *-------------------------------------- diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 23a37ca5..42f7d09a 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -439,9 +439,18 @@ S.STAT.MODE.RG .EQ $0020 S.STAT.MODE.XU .EQ $0040 S.STAT.MODE.WU .EQ $0080 S.STAT.MODE.RU .EQ $0100 -S.STAT.MODE.SST .EQ $0200 -S.STAT.MODE.SGID .EQ $0400 -S.STAT.MODE.SUID .EQ $0800 +*S.STAT.MODE.SST .EQ $0200 +*S.STAT.MODE.SGID .EQ $0400 +*S.STAT.MODE.SUID .EQ $0800 + +S.STAT.MODE.REG .EQ $0000 +S.STAT.MODE.FIFO .EQ $1000 +S.STAT.MODE.CHR .EQ $2000 +S.STAT.MODE.BLK .EQ $2000 +S.STAT.MODE.DIR .EQ $4000 +S.STAT.MODE.LNK .EQ $5000 +S.STAT.MODE.SOCK .EQ $6000 + S.STAT.DEV .EQ 2 WORD S.STAT.UID .EQ 4 WORD S.STAT.GID .EQ 6 WORD diff --git a/SYS/KERNEL.S.CIO.txt b/SYS/KERNEL.S.CIO.txt index 00063384..9ab63f99 100644 --- a/SYS/KERNEL.S.CIO.txt +++ b/SYS/KERNEL.S.CIO.txt @@ -230,6 +230,35 @@ PrintFJMP .DA PrintF.A .DA PrintF.S,PrintF.SS *-------------------------------------- PrintF.A >PULLW HEXBUF + + lda HEXBUF+1 + lsr + lsr + lsr + lsr + tax + lda TYPES,x + jsr K.COutA + + ldx #0 + +.1 lda #'-' + lsr HEXBUF + bcc .2 + lda ACCESS,x + +.2 jsr K.COutA + + inx + cpx #8 + bne .1 + +.3 lda #'-' + lsr HEXBUF+1 + bcc .4 + lda ACCESS,x + +.4 jsr K.COutA rts *-------------------------------------- PrintF.BB >PULLYA @@ -593,7 +622,8 @@ DEC2HEX stz HEXBUF * pla *.99 rts *-------------------------------------- -*ACCESS .AS "drwxrwxrwx" +TYPES .AS "-pcbdls" +ACCESS .AS "rwxrwxrwx" HEXBUF .BS 4 32 bits max BCDBUF .BS 5 5, enough to handle 10 digits (32bits) ASCBUF .BS 12 LEN + sign + 10 digits ($FFFFFFFF=4.294.967.295) diff --git a/SYS/KERNEL.S.DIR.txt b/SYS/KERNEL.S.DIR.txt index ddf5924f..4de6b0c6 100644 --- a/SYS/KERNEL.S.DIR.txt +++ b/SYS/KERNEL.S.DIR.txt @@ -107,18 +107,13 @@ K.READDIRA jsr PFT.CheckDirA *-------------------------------------- K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes - >PUSHWI 256 Get a 256 bytes buffer for ONLINE call... - >PUSHBI 0 - jsr K.GetMem - bcs .99 - stx K.READDIRA.hMem - + >LDYAI KrnBuf256 >STYA MLICALL.PARAMS+2 - >STYA ZPQuickPtr2 For PASS #1 & #2 + >STYA ZPQuickPtr2 >MLICALL MLIONLINE bcc .10 -.98 jsr K.READDIRA.CLN + sec .99 rts * pass #1 compute BufSize..... @@ -151,7 +146,7 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes * pass #2 Fill Buffer... jsr K.READDIRA.GetBuf - bcs .98 + bcs .99 .3 lda (ZPQuickPtr2) and #$0F @@ -185,23 +180,23 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes lda #0 rol inc - sta KrnBuf256+S.STAT.PRODOS.DRIVE + sta KrnSTAT+S.STAT.PRODOS.DRIVE pla lsr CC lsr lsr lsr lsr - sta KrnBuf256+S.STAT.PRODOS.SLOT + sta KrnSTAT+S.STAT.PRODOS.SLOT >MLICALL MLIGETFILEINFO - sta KrnBuf256+S.STAT.PRODOS.DEVSTATUS + sta KrnSTAT+S.STAT.PRODOS.DEVSTATUS bcs .80 >LDYA MLICALL.PARAMS+5 AUXTYPE=TOTAL BLOCKS - >STYA KrnBuf256+S.STAT.PRODOS.DEVBLOCKS + >STYA KrnSTAT+S.STAT.PRODOS.DEVBLOCKS >LDYA MLICALL.PARAMS+8 - >STYA KrnBuf256+S.STAT.BLOCKS + >STYA KrnSTAT+S.STAT.BLOCKS .80 jsr K.READDIRA.ADDSTAT @@ -221,9 +216,7 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes ldy #S.DIR.F lda #S.DIR.F.NOMORE sta (ZPQuickPtr1),y - - jsr K.READDIRA.CLN Discard ONLINE BUFFER - + lda K.READDIRA.hDIRENT tax jmp K.GetMemPtrA @@ -453,36 +446,61 @@ K.READDIRA.ADD.. * ldy #$25 total_blocks * lda (ZPQuickPtr3),y -* sta KrnBuf256+S.STAT.BLOCKS +* sta KrnSTAT+S.STAT.BLOCKS * iny * lda (ZPQuickPtr3),y -* sta KrnBuf256+S.STAT.BLOCKS+1 +* sta KrnSTAT+S.STAT.BLOCKS+1 *-------------------------------------- K.READDIRA.ADDD lda #$0F - sta KrnBuf256+S.STAT.PRODOS.TYPE + sta KrnSTAT+S.STAT.PRODOS.TYPE - bra K.READDIRA.ADDSTAT + lda /S.STAT.MODE.DIR + sta KrnSTAT+S.STAT.MODE+1 + bra K.READDIRA.AddAccess *-------------------------------------- -K.READDIRA.ADDF ldx #ADDF.DST-ADDF.SRC +K.READDIRA.ADDF lda /S.STAT.MODE.REG + sta KrnSTAT+S.STAT.MODE+1 + + ldx #ADDF.DST-ADDF.SRC + .1 ldy ADDF.SRC-1,x lda (ZPQuickPtr3),y ldy ADDF.DST-1,x - sta KrnBuf256,y + sta KrnSTAT,y dex bpl .1 - - >PUSHWI KrnBuf256+S.STAT.CTIME +*-------------------------------------- +K.READDIRA.AddAccess + ldy #$1E ProDOS Access + lda (ZPQuickPtr3),y + + ldx #0 + bit #$01 ProDOS R + beq .2 + ldx #S.STAT.MODE.RO + +.2 bit #$C2 ProDOS D,Rn,W + beq .3 + txa + ora #S.STAT.MODE.XO+S.STAT.MODE.WO + .HS 89 bit imm to skip txa + +.3 txa + sta KrnSTAT+S.STAT.MODE +*-------------------------------------- +K.READDIRA.AddTime + >PUSHWI KrnSTAT+S.STAT.CTIME lda #$18 creation Date/time jsr K.READDIRA.ConvertTime - >PUSHWI KrnBuf256+S.STAT.MTIME + >PUSHWI KrnSTAT+S.STAT.MTIME lda #$21 mod Date/time jsr K.READDIRA.ConvertTime *-------------------------------------- K.READDIRA.AddStat ldy #S.STAT-1 -.1 lda KrnBuf256,y +.1 lda KrnSTAT,y sta (ZPQuickPtr4),y dey bpl .1 @@ -498,7 +516,7 @@ K.READDIRA.AddStat K.READDIRA.ClrStat ldx #S.STAT-1 -.1 stz KrnBuf256,x +.1 stz KrnSTAT,x dex bpl .1 rts