mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-30 15:57:29 +00:00
Kernel 0.94
This commit is contained in:
parent
975a731fa9
commit
691fa6a923
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -518,7 +518,7 @@ CS.RUN.SeekToX >PUSHB DSSS0000
|
|||||||
CS.RUN.ZeroPtr1 >LDYA ZPPtr1
|
CS.RUN.ZeroPtr1 >LDYA ZPPtr1
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
lda #0
|
lda #$AA
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.10 sta (ZPPtr2),y
|
.10 sta (ZPPtr2),y
|
||||||
|
123
BIN/LS.S.txt
123
BIN/LS.S.txt
@ -5,10 +5,10 @@ NEW
|
|||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/ls
|
.TF bin/ls
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB inc/macros.i
|
||||||
.INB INC/A2OSX.I
|
.INB inc/a2osx.i
|
||||||
.INB INC/MLI.I
|
.INB inc/mli.i
|
||||||
.INB INC/MLI.E.I
|
.INB inc/mli.e.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
X.ENTER.SUBDIR .EQ 1
|
X.ENTER.SUBDIR .EQ 1
|
||||||
X.COPY.TO.DEST .EQ 0
|
X.COPY.TO.DEST .EQ 0
|
||||||
@ -59,9 +59,8 @@ L.MSG.CRLF .DA MSG.CRLF
|
|||||||
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||||
L.FMT.Date .DA FMT.Date
|
L.FMT.Date .DA FMT.Date
|
||||||
L.FMT.Time .DA FMT.Time
|
L.FMT.Time .DA FMT.Time
|
||||||
|
L.FMT.string6 .DA FMT.string6
|
||||||
L.FMT.int16 .DA FMT.int16
|
L.FMT.int16 .DA FMT.int16
|
||||||
L.MSG.Users .DA MSG.Users
|
|
||||||
L.MSG.Root .DA MSG.Root
|
|
||||||
J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG
|
J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG
|
||||||
.DA CS.RUN.PRINT.DIR
|
.DA CS.RUN.PRINT.DIR
|
||||||
.DA CS.RUN.PRINT.CDEV
|
.DA CS.RUN.PRINT.CDEV
|
||||||
@ -166,6 +165,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
|||||||
|
|
||||||
.4 ldy #S.STAT.MODE+1
|
.4 ldy #S.STAT.MODE+1
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
|
|
||||||
and #$70
|
and #$70
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
@ -225,7 +225,8 @@ CS.RUN.PRINT.REG
|
|||||||
.1 >PUSHW L.MSG.REGEXT
|
.1 >PUSHW L.MSG.REGEXT
|
||||||
|
|
||||||
jsr Mod2CSTR (2)
|
jsr Mod2CSTR (2)
|
||||||
jsr CS.RUN.PushGidUid (4)
|
|
||||||
|
jsr CS.RUN.PushUidGid (4)
|
||||||
|
|
||||||
ldy #S.STAT.SIZE+3
|
ldy #S.STAT.SIZE+3
|
||||||
ldx #4
|
ldx #4
|
||||||
@ -312,7 +313,7 @@ CS.RUN.PRINT.DIR
|
|||||||
|
|
||||||
jsr Mod2CSTR
|
jsr Mod2CSTR
|
||||||
|
|
||||||
jsr CS.RUN.PushGidUid
|
jsr CS.RUN.PushUidGid
|
||||||
jsr CS.RUN.PUSHDATES
|
jsr CS.RUN.PUSHDATES
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>PUSHBI 12
|
>PUSHBI 12
|
||||||
@ -432,35 +433,19 @@ CS.RUN.PRINT.SRCPATH
|
|||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PushGidUid
|
CS.RUN.PushUidGid
|
||||||
>PUSHW L.MSG.Root
|
|
||||||
>PUSHW L.MSG.Root
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
ldy #S.STAT.GID
|
|
||||||
lda (ZPFileStat),y
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
>LDYA L.MSG.Users
|
|
||||||
bra .2
|
|
||||||
|
|
||||||
.1 >LDYA L.MSG.Root
|
|
||||||
|
|
||||||
.2 >PUSHYA
|
|
||||||
|
|
||||||
ldy #S.STAT.UID
|
ldy #S.STAT.UID
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW ZPPW
|
>PUSHW ZPPW
|
||||||
>SYSCALL GetPWUID
|
>SYSCALL GetPWUID
|
||||||
bcs .3
|
bcs .2
|
||||||
|
|
||||||
>PUSHW ZPPW
|
>PUSHEA.G USER
|
||||||
* clc
|
jsr CS.RUN.PushUidGidStr
|
||||||
rts
|
bra .3
|
||||||
|
|
||||||
.3 >PUSHEA.G UID
|
.2 >PUSHEA.G USER
|
||||||
>PUSHW L.FMT.int16
|
>PUSHW L.FMT.int16
|
||||||
|
|
||||||
ldy #S.STAT.UID+1
|
ldy #S.STAT.UID+1
|
||||||
@ -472,9 +457,41 @@ CS.RUN.PushGidUid
|
|||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL sprintf
|
>SYSCALL sprintf
|
||||||
|
|
||||||
>PUSHEA.G UID
|
.3 ldy #S.STAT.GID
|
||||||
|
lda (ZPFileStat),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHW ZPPW
|
||||||
|
>SYSCALL GetGRGID
|
||||||
|
bcs .5
|
||||||
|
|
||||||
|
>PUSHEA.G GROUP
|
||||||
|
jsr CS.RUN.PushUidGidStr
|
||||||
|
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.5 >PUSHEA.G GROUP
|
||||||
|
>PUSHW L.FMT.int16
|
||||||
|
|
||||||
|
ldy #S.STAT.GID+1
|
||||||
|
lda (ZPFileStat),y
|
||||||
|
>PUSHA
|
||||||
|
dey
|
||||||
|
lda (ZPFileStat),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI 2
|
||||||
|
>SYSCALL sprintf
|
||||||
|
|
||||||
|
.8 >PUSHEA.G USER
|
||||||
|
>PUSHEA.G GROUP
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
CS.RUN.PushUidGidStr
|
||||||
|
>PUSHW L.FMT.string6
|
||||||
|
>PUSHW ZPPW
|
||||||
|
>PUSHBI 2
|
||||||
|
>SYSCALL sprintf
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PUSHDATES
|
CS.RUN.PUSHDATES
|
||||||
ldy #TIME.Mod-1 Set NODATE as default
|
ldy #TIME.Mod-1 Set NODATE as default
|
||||||
@ -647,35 +664,38 @@ FileType2PSTR ldy #0
|
|||||||
Mod2CSTR ldy #S.STAT.MODE+1
|
Mod2CSTR ldy #S.STAT.MODE+1
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
lsr
|
lsr
|
||||||
|
php C = RU
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
tax
|
tax
|
||||||
lda TYPES,x
|
lda TYPES,x
|
||||||
>STA.G MOD
|
>STA.G MOD
|
||||||
ldx #0
|
|
||||||
|
plp
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
ldy #S.STAT.MODE
|
ldy #S.STAT.MODE
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
|
|
||||||
ldy #MOD+1
|
ldy #MOD+1
|
||||||
.1 lsr
|
|
||||||
pha
|
.1 pha
|
||||||
lda #'-'
|
lda #'-'
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
lda ACCESS,x
|
lda ACCESS,x
|
||||||
|
|
||||||
.2 sta (pData),y
|
.2 sta (pData),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
pla
|
pla
|
||||||
inx
|
asl
|
||||||
cpx #8
|
|
||||||
bne .1
|
dex
|
||||||
.3 ldy #S.STAT.MODE+1
|
bpl .1
|
||||||
lda (ZPFileStat),y
|
|
||||||
lsr
|
|
||||||
lda #'-'
|
|
||||||
bcc .4
|
|
||||||
lda ACCESS,x
|
|
||||||
.4 >STA.G MOD+9
|
|
||||||
|
|
||||||
>PUSHEA.G MOD
|
>PUSHEA.G MOD
|
||||||
rts
|
rts
|
||||||
@ -708,14 +728,13 @@ PRODOS.FT.TXT >PSTR "txt"
|
|||||||
>PSTR "pak"
|
>PSTR "pak"
|
||||||
>PSTR "sys"
|
>PSTR "sys"
|
||||||
PRODOS.FT.DFLT >PSTR "$ "
|
PRODOS.FT.DFLT >PSTR "$ "
|
||||||
MSG.Users .AZ "users"
|
|
||||||
MSG.Root .AZ "root"
|
|
||||||
MSG.NODATE .AZ "<no-date>"
|
MSG.NODATE .AZ "<no-date>"
|
||||||
FMT.Date .AZ "%d-%b-%y"
|
FMT.Date .AZ "%d-%b-%y"
|
||||||
FMT.Time .AZ "%H:%M:%S "
|
FMT.Time .AZ "%H:%M:%S "
|
||||||
FMT.int16 .AZ "%i"
|
FMT.string6 .AZ "%6s"
|
||||||
|
FMT.int16 .AZ "%6D"
|
||||||
TYPES .AS "-dbclssp"
|
TYPES .AS "-dbclssp"
|
||||||
ACCESS .AS "rwxrwxrwx"
|
ACCESS .AS "xwrxwrxwr"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
@ -723,10 +742,12 @@ DS.START
|
|||||||
ArgCount .BS 1
|
ArgCount .BS 1
|
||||||
|
|
||||||
MOD .BS 11 drwxrwxrwx0
|
MOD .BS 11 drwxrwxrwx0
|
||||||
|
USER .BS 7
|
||||||
|
GROUP .BS 7
|
||||||
|
|
||||||
TIME.Create .BS 20
|
TIME.Create .BS 20
|
||||||
TIME.Mod .BS 20
|
TIME.Mod .BS 20
|
||||||
TIME.SysTime .BS S.TIME
|
TIME.SysTime .BS S.TIME
|
||||||
UID .BS 6
|
|
||||||
|
|
||||||
bPause .BS 1
|
bPause .BS 1
|
||||||
bAllmostAll .BS 1
|
bAllmostAll .BS 1
|
||||||
@ -738,10 +759,10 @@ bRecurse .BS 1
|
|||||||
ColCount .BS 1
|
ColCount .BS 1
|
||||||
hPW .BS 1
|
hPW .BS 1
|
||||||
|
|
||||||
.INB USR/SRC/BIN/X.FILEENUM.G
|
.INB usr/src/bin/x.fileenum.g
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/BIN/LS.S
|
SAVE usr/src/bin/ls.s
|
||||||
ASM
|
ASM
|
||||||
|
@ -135,6 +135,8 @@ CS.RUN.DUMP lda ArgFile
|
|||||||
Mod2CSTR ldy #S.STAT.MODE+1
|
Mod2CSTR ldy #S.STAT.MODE+1
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
lsr
|
lsr
|
||||||
|
php
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
@ -142,35 +144,29 @@ Mod2CSTR ldy #S.STAT.MODE+1
|
|||||||
lda TYPES,x
|
lda TYPES,x
|
||||||
>STA.G MOD
|
>STA.G MOD
|
||||||
|
|
||||||
ldx #0
|
plp
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
ldy #S.STAT.MODE
|
ldy #S.STAT.MODE
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
|
||||||
ldy #MOD+1
|
ldy #MOD+1
|
||||||
|
|
||||||
.1 lsr
|
.1 pha
|
||||||
pha
|
|
||||||
lda #'-'
|
lda #'-'
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
lda ACCESS,x
|
lda ACCESS,x
|
||||||
|
|
||||||
.2 sta (pData),y
|
.2 sta (pData),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
pla
|
pla
|
||||||
inx
|
asl
|
||||||
cpx #8
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.3 ldy #S.STAT.MODE+1
|
dex
|
||||||
lda (pData),y
|
bpl .1
|
||||||
lsr
|
|
||||||
lda #'-'
|
|
||||||
bcc .4
|
|
||||||
|
|
||||||
lda ACCESS,x
|
|
||||||
|
|
||||||
.4 >STA.G MOD+9
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -257,7 +253,7 @@ CS.END
|
|||||||
OptionList .AS "Cc"
|
OptionList .AS "Cc"
|
||||||
OptionVars .DA #bFormatStr,#bFormatStr
|
OptionVars .DA #bFormatStr,#bFormatStr
|
||||||
TYPES .AS "-dbclssp"
|
TYPES .AS "-dbclssp"
|
||||||
ACCESS .AS "rwxrwxrwx"
|
ACCESS .AS "xwrxwrxwr"
|
||||||
MSG.NODATE .AZ "<No-Date>"
|
MSG.NODATE .AZ "<No-Date>"
|
||||||
FMT.DateTime .AZ "%d-%b-%y %H:%M:%S"
|
FMT.DateTime .AZ "%d-%b-%y %H:%M:%S"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -477,7 +477,10 @@ S.FD.REG .EQ 4
|
|||||||
S.FD.DIR.EL .EQ 4
|
S.FD.DIR.EL .EQ 4
|
||||||
S.FD.DIR.EPB .EQ 5
|
S.FD.DIR.EPB .EQ 5
|
||||||
S.FD.DIR.FC .EQ 6 word
|
S.FD.DIR.FC .EQ 6 word
|
||||||
S.FD.DIR.ACL .EQ 8
|
S.FD.DIR.ACL .EQ 8 57.00
|
||||||
|
S.FD.DIR.UID .EQ 10
|
||||||
|
S.FD.DIR.GID .EQ 12
|
||||||
|
S.FD.DIR.MODE .EQ 14
|
||||||
*
|
*
|
||||||
S.FD.DIR .EQ 16
|
S.FD.DIR .EQ 16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -604,14 +607,19 @@ S.STAT.MODE .EQ 0
|
|||||||
S.STAT.MODE.XO .EQ $0001
|
S.STAT.MODE.XO .EQ $0001
|
||||||
S.STAT.MODE.WO .EQ $0002
|
S.STAT.MODE.WO .EQ $0002
|
||||||
S.STAT.MODE.RO .EQ $0004
|
S.STAT.MODE.RO .EQ $0004
|
||||||
|
|
||||||
S.STAT.MODE.FO .EQ $0007
|
S.STAT.MODE.FO .EQ $0007
|
||||||
|
|
||||||
S.STAT.MODE.XG .EQ $0008
|
S.STAT.MODE.XG .EQ $0008
|
||||||
S.STAT.MODE.WG .EQ $0010
|
S.STAT.MODE.WG .EQ $0010
|
||||||
S.STAT.MODE.RG .EQ $0020
|
S.STAT.MODE.RG .EQ $0020
|
||||||
|
|
||||||
S.STAT.MODE.FG .EQ $0038
|
S.STAT.MODE.FG .EQ $0038
|
||||||
|
|
||||||
S.STAT.MODE.XU .EQ $0040
|
S.STAT.MODE.XU .EQ $0040
|
||||||
S.STAT.MODE.WU .EQ $0080
|
S.STAT.MODE.WU .EQ $0080
|
||||||
S.STAT.MODE.RU .EQ $0100
|
S.STAT.MODE.RU .EQ $0100
|
||||||
|
|
||||||
S.STAT.MODE.FU .EQ $01C0
|
S.STAT.MODE.FU .EQ $01C0
|
||||||
*S.STAT.MODE.SST .EQ $0200
|
*S.STAT.MODE.SST .EQ $0200
|
||||||
*S.STAT.MODE.SGID .EQ $0400
|
*S.STAT.MODE.SGID .EQ $0400
|
||||||
@ -658,9 +666,10 @@ S.PW.SHELL .EQ 182 64+1
|
|||||||
*
|
*
|
||||||
S.PW .EQ 247
|
S.PW .EQ 247
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.GRP.GID .EQ 0
|
S.GRP.NAME .EQ 0 16+1
|
||||||
S.GRP.NAME .EQ 1 16+1
|
S.GRP.GID .EQ 17
|
||||||
S.GRP.MEMBERS .EQ 18
|
*
|
||||||
|
S.GRP .EQ 18
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.SESSION.P .EQ 0
|
S.SESSION.P .EQ 0
|
||||||
S.SESSION.P.ROOT .EQ %10000000
|
S.SESSION.P.ROOT .EQ %10000000
|
||||||
|
@ -2,7 +2,7 @@ NEW
|
|||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.SeekTime .EQ 200
|
IO.D2.SeekTime .EQ 60
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.Ph0Off .EQ $C080
|
IO.D2.Ph0Off .EQ $C080
|
||||||
IO.D2.Ph0On .EQ $C081
|
IO.D2.Ph0On .EQ $C081
|
||||||
|
@ -80,7 +80,7 @@ S.FIEX.AUXTYPE .EQ 31
|
|||||||
S.FIEX.MTIME .EQ 33
|
S.FIEX.MTIME .EQ 33
|
||||||
S.FIEX.BLKPTR .EQ 37
|
S.FIEX.BLKPTR .EQ 37
|
||||||
|
|
||||||
S.FIEX.ACL .EQ 40 75.00
|
S.FIEX.ACL .EQ 40 57.00
|
||||||
S.FIEX.ACL.UID .EQ 42
|
S.FIEX.ACL.UID .EQ 42
|
||||||
S.FIEX.ACL.GID .EQ 44
|
S.FIEX.ACL.GID .EQ 44
|
||||||
S.FIEX.ACL.MOD .EQ 46
|
S.FIEX.ACL.MOD .EQ 46
|
||||||
|
@ -16,18 +16,6 @@ D2MotorControl >PULLB MotorOn
|
|||||||
tax
|
tax
|
||||||
lda $C000,x
|
lda $C000,x
|
||||||
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
@ -41,21 +29,10 @@ D2Recalibrate >PULLB DrvSlt
|
|||||||
|
|
||||||
lda IO.D2.DrvOn,x
|
lda IO.D2.DrvOn,x
|
||||||
|
|
||||||
ldy #30
|
|
||||||
|
|
||||||
.10 jsr D2.Wait25600usec
|
|
||||||
dey
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
ldy #168
|
ldy #168
|
||||||
|
|
||||||
* ldx Slotn0
|
|
||||||
|
|
||||||
.1 lda IO.D2.Ph0Off,x
|
.1 lda IO.D2.Ph0Off,x
|
||||||
|
|
||||||
* lda #IO.D2.SeekTime
|
|
||||||
* jsr D2.Wait100usecA
|
|
||||||
|
|
||||||
dey
|
dey
|
||||||
dey
|
dey
|
||||||
|
|
||||||
@ -72,17 +49,11 @@ D2Recalibrate >PULLB DrvSlt
|
|||||||
tya
|
tya
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
jsr D2.Wait25600usec
|
||||||
|
|
||||||
ldx Slotn0
|
ldx Slotn0
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
jsr D2.Wait25600usec
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
@ -114,14 +85,18 @@ D2MoveHead.1
|
|||||||
tay
|
tay
|
||||||
|
|
||||||
lda IO.D2.Ph0On,x
|
lda IO.D2.Ph0On,x
|
||||||
|
nop
|
||||||
|
nop
|
||||||
lda IO.D2.Ph0On,y
|
lda IO.D2.Ph0On,y
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
|
||||||
lda #IO.D2.SeekTime
|
lda #IO.D2.SeekTime
|
||||||
jsr D2.Wait100usecA
|
jsr D2.Wait100usecA
|
||||||
|
|
||||||
pla
|
pla
|
||||||
cmp MoveTo
|
cmp MoveTo
|
||||||
beq .8
|
beq .7
|
||||||
|
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
@ -137,17 +112,17 @@ D2MoveHead.1
|
|||||||
|
|
||||||
sta MoveFrom
|
sta MoveFrom
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
jsr .8
|
||||||
lda IO.D2.Ph0Off,y
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 jsr D2.Wait25600usec
|
.7 jsr D2.Wait25600usec
|
||||||
*--------------------------------------
|
|
||||||
D2.AllPhasesOff ldx Slotn0
|
.8 lda IO.D2.Ph0Off,y
|
||||||
|
nop
|
||||||
|
nop
|
||||||
lda IO.D2.Ph0Off,x
|
lda IO.D2.Ph0Off,x
|
||||||
lda IO.D2.Ph1Off,x
|
nop
|
||||||
lda IO.D2.Ph2Off,x
|
nop
|
||||||
lda IO.D2.Ph3Off,x
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
D2.Wait25600usec
|
D2.Wait25600usec
|
||||||
@ -210,13 +185,6 @@ D2TrkWrite16s >PULLW ZPPtr1
|
|||||||
jsr CheckDiskII
|
jsr CheckDiskII
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldx Slotn0
|
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
|
||||||
lda IO.D2.Ph1Off,x
|
|
||||||
lda IO.D2.Ph2Off,x
|
|
||||||
lda IO.D2.Ph3Off,x
|
|
||||||
|
|
||||||
>LDYAI TRACK16.LEN+1
|
>LDYAI TRACK16.LEN+1
|
||||||
>SYSCALL2 getmem
|
>SYSCALL2 getmem
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -432,10 +400,11 @@ PutData stz Checksum
|
|||||||
pla
|
pla
|
||||||
ora D2.0000XX00,x
|
ora D2.0000XX00,x
|
||||||
|
|
||||||
|
tax
|
||||||
|
|
||||||
eor Checksum
|
eor Checksum
|
||||||
sta Checksum
|
sta Checksum
|
||||||
|
|
||||||
tax
|
|
||||||
lda FC2Nib,x
|
lda FC2Nib,x
|
||||||
|
|
||||||
jsr PutBytePtr2
|
jsr PutBytePtr2
|
||||||
@ -446,10 +415,14 @@ PutData stz Checksum
|
|||||||
|
|
||||||
.4 lda (ZPPtr1),y
|
.4 lda (ZPPtr1),y
|
||||||
and #$FC
|
and #$FC
|
||||||
|
|
||||||
|
tax
|
||||||
|
|
||||||
eor Checksum
|
eor Checksum
|
||||||
sta Checksum
|
sta Checksum
|
||||||
tax
|
|
||||||
lda FC2Nib,x
|
lda FC2Nib,x
|
||||||
|
|
||||||
jsr PutBytePtr2
|
jsr PutBytePtr2
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
@ -166,22 +166,27 @@ L386C asl
|
|||||||
movhead jsr movhed0 move directory info.
|
movhead jsr movhed0 move directory info.
|
||||||
jmp lookfil0 do next local pathname.
|
jmp lookfil0 do next local pathname.
|
||||||
|
|
||||||
movhed0 .DO ACL=1
|
movhed0 ldx #9 move this directory info
|
||||||
ldx #9+8
|
|
||||||
.ELSE
|
|
||||||
ldx #9 move this directory info
|
|
||||||
.FIN
|
|
||||||
|
|
||||||
.1 .DO ACL=1
|
.1 lda gbuf+$1C,x
|
||||||
lda gbuf+$14,x
|
|
||||||
sta h_acl,x
|
|
||||||
.ELSE
|
|
||||||
lda gbuf+1C,x
|
|
||||||
sta h_credt,x
|
sta h_credt,x
|
||||||
.FIN
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
.DO ACL=1
|
||||||
|
lda gbuf+$14
|
||||||
|
cmp #$57
|
||||||
|
bne .20
|
||||||
|
|
||||||
|
ldx #7
|
||||||
|
|
||||||
|
.2 lda gbuf+$14,x
|
||||||
|
sta h_acl,x
|
||||||
|
dex
|
||||||
|
bpl .2
|
||||||
|
|
||||||
|
.20 .FIN
|
||||||
|
|
||||||
lda gbuf+4 if this is root, then nothing to do
|
lda gbuf+4 if this is root, then nothing to do
|
||||||
and #$F0
|
and #$F0
|
||||||
eor #$F0 test header type.
|
eor #$F0 test header type.
|
||||||
@ -189,10 +194,10 @@ movhed0 .DO ACL=1
|
|||||||
|
|
||||||
ldx #$03 otherwise, save owner info about
|
ldx #$03 otherwise, save owner info about
|
||||||
|
|
||||||
.2 lda gbuf+$27,x this header.
|
.3 lda gbuf+$27,x this header.
|
||||||
sta own_blk,x
|
sta own_blk,x
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .3
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -628,7 +633,7 @@ L3ACE .DO LOWERCASE=1
|
|||||||
* cpy #4
|
* cpy #4
|
||||||
* bne .1
|
* bne .1
|
||||||
|
|
||||||
lda gbuf+39,y save address of the 1st bitmap.
|
lda gbuf+39 save address of the 1st bitmap.
|
||||||
sta VCBs+VCB.BMAP,x
|
sta VCBs+VCB.BMAP,x
|
||||||
lda gbuf+40
|
lda gbuf+40
|
||||||
sta VCBs+VCB.BMAP+1,x
|
sta VCBs+VCB.BMAP+1,x
|
||||||
|
@ -758,13 +758,15 @@ XRW.Seek ldx XRW.UnitIndex
|
|||||||
tay
|
tay
|
||||||
|
|
||||||
lda IO.D2.Ph0On,x
|
lda IO.D2.Ph0On,x
|
||||||
|
nop
|
||||||
|
nop
|
||||||
lda IO.D2.Ph0On,y
|
lda IO.D2.Ph0On,y
|
||||||
|
|
||||||
jsr XRW.WaitSeekTime
|
jsr XRW.WaitSeekTime
|
||||||
|
|
||||||
pla
|
pla
|
||||||
cmp XRW.TargetQTrack
|
cmp XRW.TargetQTrack
|
||||||
beq .8
|
beq .7
|
||||||
|
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
@ -780,11 +782,18 @@ XRW.Seek ldx XRW.UnitIndex
|
|||||||
|
|
||||||
sta XRW.CurrentQTrack
|
sta XRW.CurrentQTrack
|
||||||
|
|
||||||
lda IO.D2.Ph0Off,x
|
jsr .8
|
||||||
lda IO.D2.Ph0Off,y
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 jsr XRW.Wait25600usec
|
.7 jsr XRW.Wait25600usec
|
||||||
|
|
||||||
|
.8 lda IO.D2.Ph0Off,y
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
lda IO.D2.Ph0Off,x
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XRW.AllPhasesOff
|
XRW.AllPhasesOff
|
||||||
ldx A2L
|
ldx A2L
|
||||||
|
@ -23,21 +23,24 @@ K.OpenDir jsr PFT.CheckPathYA
|
|||||||
lda K.Buf256+1 One char ("/") ?
|
lda K.Buf256+1 One char ("/") ?
|
||||||
beq .8 No, Go open dir....
|
beq .8 No, Go open dir....
|
||||||
|
|
||||||
>MLICALL MLIGETFILEINFO
|
jsr FS.Stat
|
||||||
bcs .98 file/dir does not exists....quit
|
bcs .98 file/dir does not exists....quit
|
||||||
lda K.MLI.PARAMS+4
|
|
||||||
cmp #$0F Directory ?
|
lda K.S.STAT+S.STAT.MODE+1
|
||||||
bne .98
|
and #$f0
|
||||||
|
cmp /S.STAT.MODE.DIR
|
||||||
|
bne .97
|
||||||
|
|
||||||
jsr IO.MLI.OPEN
|
jsr IO.MLI.OPEN
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
.8 jsr STDIO.NewHFile
|
.8 jsr STDIO.NewHFile
|
||||||
|
bcs .98
|
||||||
|
|
||||||
bcc K.ReadDir.RTS
|
.9 rts
|
||||||
|
|
||||||
|
.97 lda #MLI.E.UNSUPST
|
||||||
.98 jmp UNISTD.Open.ERR
|
.98 jmp UNISTD.Open.ERR
|
||||||
|
|
||||||
.9 >RET 2
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ReadDir
|
* # ReadDir
|
||||||
* ## C
|
* ## C
|
||||||
@ -55,12 +58,14 @@ K.OpenDir jsr PFT.CheckPathYA
|
|||||||
* note : A = 0 means no more entry
|
* note : A = 0 means no more entry
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPTMP 8 Bytes
|
.OR ZPTMP 9 Bytes
|
||||||
K.ReadDir.hBlk .BS 1
|
K.ReadDir.hBlk .BS 1
|
||||||
K.ReadDir.ECIB .BS 1
|
K.ReadDir.ECIB .BS 1
|
||||||
|
|
||||||
K.ReadDir.EL .BS 1
|
K.ReadDir.EL .BS 1
|
||||||
K.ReadDir.EPB .BS 1
|
K.ReadDir.EPB .BS 1
|
||||||
K.ReadDir.EC .BS 2
|
K.ReadDir.EC .BS 2
|
||||||
|
|
||||||
K.ReadDir.BufSize .BS 2
|
K.ReadDir.BufSize .BS 2
|
||||||
K.ReadDir.hBuf .BS 1
|
K.ReadDir.hBuf .BS 1
|
||||||
.ED
|
.ED
|
||||||
@ -214,6 +219,31 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
|||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
|
ldy #16
|
||||||
|
|
||||||
|
.10 lda (ZPPtr2),y
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne .10
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
|
ldy #S.FD.DIR.ACL+7
|
||||||
|
|
||||||
|
.20 pla
|
||||||
|
cpy #S.FD.DIR.MODE+1
|
||||||
|
bne .30
|
||||||
|
|
||||||
|
and #$0F
|
||||||
|
|
||||||
|
.30 sta (pFD),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bne .20
|
||||||
|
|
||||||
inc K.ReadDir.EC Add one to EC because we include VOL/DIR Header
|
inc K.ReadDir.EC Add one to EC because we include VOL/DIR Header
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
@ -316,15 +346,14 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf
|
|||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr K.ReadDir.ADD.
|
jsr K.ReadDir.ADD.
|
||||||
jsr SHARED.DirEnt2Stat
|
jsr K.ReadDir.AddStatACL
|
||||||
jsr K.ReadDir.AddStat
|
|
||||||
jsr K.ReadDir.ADD..
|
jsr K.ReadDir.ADD..
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.3 jsr K.ReadDir.AddFNToBuf
|
.3 jsr K.ReadDir.AddFNToBuf
|
||||||
|
|
||||||
.4 jsr SHARED.DirEnt2Stat
|
.4 jsr K.ReadDir.AddStatACL
|
||||||
jsr K.ReadDir.AddStat
|
|
||||||
|
|
||||||
lda K.ReadDir.EC decrease global counter...
|
lda K.ReadDir.EC decrease global counter...
|
||||||
sec
|
sec
|
||||||
@ -450,6 +479,29 @@ K.ReadDir.AddToBuf
|
|||||||
inc ZPPtr4+1
|
inc ZPPtr4+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
K.ReadDir.AddStatACL
|
||||||
|
jsr FS.DirEnt2Stat
|
||||||
|
|
||||||
|
ldy #S.FD.DIR.UID
|
||||||
|
ldx #S.STAT.UID
|
||||||
|
|
||||||
|
.1 lda (pFD),y
|
||||||
|
sta K.S.STAT,x
|
||||||
|
iny
|
||||||
|
inx
|
||||||
|
cpx #S.STAT.GID+2
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldy #S.FD.DIR.MODE+1
|
||||||
|
ldx #1
|
||||||
|
|
||||||
|
.2 lda (pFD),y
|
||||||
|
ora K.S.STAT+S.STAT.MODE,x
|
||||||
|
sta K.S.STAT+S.STAT.MODE,x
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .2
|
||||||
|
|
||||||
K.ReadDir.AddStat
|
K.ReadDir.AddStat
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
|
@ -154,43 +154,32 @@ IO.MLI.OPEN >LDYAI 1024 get a ProDOS IOBUF
|
|||||||
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9
|
||||||
*--------------------------------------
|
FS.OPEN.RTS rts
|
||||||
SHARED.ClrStat ldx #S.STAT-1
|
|
||||||
|
|
||||||
.1 stz K.S.STAT,x
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
lda CORE.FSID
|
|
||||||
sta K.S.STAT+S.STAT.FSID
|
|
||||||
SHARED.ClrStat.RTS
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FS.Stat bit CORE.FSID
|
FS.Stat bit CORE.FSID
|
||||||
bpl .1
|
bmi FS.StatEX
|
||||||
|
|
||||||
>MLICALL MLIGETFILEINFOEX
|
>MLICALL MLIGETFILEINFO
|
||||||
bcs SHARED.ClrStat.RTS
|
bcs FS.OPEN.RTS
|
||||||
|
|
||||||
>LDYAI K.MLI.PARAMS+3
|
|
||||||
>STYA ZPPtr3
|
|
||||||
|
|
||||||
jmp SHARED.DirEnt2Stat
|
|
||||||
|
|
||||||
.1 >MLICALL MLIGETFILEINFO
|
|
||||||
bcs SHARED.ClrStat.RTS
|
|
||||||
|
|
||||||
jsr SHARED.ClrStat
|
jsr SHARED.ClrStat
|
||||||
|
|
||||||
lda K.MLI.PARAMS+S.FI.A
|
lda K.MLI.PARAMS+S.FI.T
|
||||||
jsr SHARED.Access2Mode
|
cmp #S.FI.T.DIR
|
||||||
|
bne .1
|
||||||
|
|
||||||
ldx #SHARED.GFI.Cnt
|
lda /S.STAT.MODE.DIR
|
||||||
|
sta K.S.STAT+S.STAT.MODE+1
|
||||||
|
|
||||||
.3 ldy SHARED.GFI.Src-1,x
|
.1 lda K.MLI.PARAMS+S.FI.A
|
||||||
|
jsr FS.Access2Mode
|
||||||
|
|
||||||
|
ldx #FS.GFI.Cnt
|
||||||
|
|
||||||
|
.3 ldy FS.GFI.Src-1,x
|
||||||
lda K.MLI.PARAMS,y
|
lda K.MLI.PARAMS,y
|
||||||
ldy SHARED.Stat.Dst-1,x
|
ldy FS.Stat.Dst-1,x
|
||||||
sta K.S.STAT,y
|
sta K.S.STAT,y
|
||||||
dex
|
dex
|
||||||
bne .3
|
bne .3
|
||||||
@ -203,8 +192,13 @@ FS.Stat bit CORE.FSID
|
|||||||
ldx #K.S.STAT+S.STAT.MTIME
|
ldx #K.S.STAT+S.STAT.MTIME
|
||||||
jmp SHARED.PTime2StatYAX
|
jmp SHARED.PTime2StatYAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.DirEnt2Stat
|
FS.StatEX >MLICALL MLIGETFILEINFOEX
|
||||||
jsr SHARED.ClrStat
|
bcs FS.OPEN.RTS
|
||||||
|
|
||||||
|
>LDYAI K.MLI.PARAMS+3
|
||||||
|
>STYA ZPPtr3
|
||||||
|
*--------------------------------------
|
||||||
|
FS.DirEnt2Stat jsr SHARED.ClrStat
|
||||||
|
|
||||||
lda (ZPPtr3)
|
lda (ZPPtr3)
|
||||||
and #$F0
|
and #$F0
|
||||||
@ -214,62 +208,75 @@ SHARED.DirEnt2Stat
|
|||||||
lda /S.STAT.MODE.DIR
|
lda /S.STAT.MODE.DIR
|
||||||
sta K.S.STAT+S.STAT.MODE+1
|
sta K.S.STAT+S.STAT.MODE+1
|
||||||
|
|
||||||
.1 ldx #SHARED.DirEnt.Cnt
|
.1 ldx #FS.DirEnt.Cnt
|
||||||
|
|
||||||
.2 ldy SHARED.DirEnt.Src-1,x
|
.2 ldy FS.DirEnt.Src-1,x
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
ldy SHARED.Stat.Dst-1,x
|
ldy FS.Stat.Dst-1,x
|
||||||
sta K.S.STAT,y
|
sta K.S.STAT,y
|
||||||
dex
|
dex
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
ldy #$1E ProDOS Access
|
ldy #S.FIEX.ACCESS
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
|
|
||||||
jsr SHARED.Access2Mode
|
jsr FS.Access2Mode
|
||||||
|
|
||||||
lda #$18 creation Date/time
|
ldy #S.FIEX.ACL
|
||||||
|
lda (ZPPtr3),y
|
||||||
|
cmp #$57
|
||||||
|
bne .7
|
||||||
|
|
||||||
|
ldy #S.FIEX.ACL.UID
|
||||||
|
lda (ZPPtr3),y
|
||||||
|
sta K.S.STAT+S.STAT.UID
|
||||||
|
|
||||||
|
ldy #S.FIEX.ACL.GID
|
||||||
|
lda (ZPPtr3),y
|
||||||
|
sta K.S.STAT+S.STAT.GID
|
||||||
|
|
||||||
|
ldy #S.FIEX.ACL.MOD
|
||||||
|
lda (ZPPtr3),y
|
||||||
|
tsb K.S.STAT+S.STAT.MODE
|
||||||
|
iny
|
||||||
|
lda (ZPPtr3),y
|
||||||
|
tsb K.S.STAT+S.STAT.MODE+1
|
||||||
|
|
||||||
|
.7 lda #S.FIEX.CTIME
|
||||||
ldx #K.S.STAT+S.STAT.CTIME
|
ldx #K.S.STAT+S.STAT.CTIME
|
||||||
jsr SHARED.PTime2StatAX
|
jsr SHARED.PTime2StatAX
|
||||||
|
|
||||||
lda #$21 mod Date/time
|
lda #S.FIEX.MTIME
|
||||||
ldx #K.S.STAT+S.STAT.MTIME
|
ldx #K.S.STAT+S.STAT.MTIME
|
||||||
jmp SHARED.PTime2StatAX
|
jmp SHARED.PTime2StatAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.Mode2Access
|
SHARED.ClrStat ldx #S.STAT-1
|
||||||
clc
|
|
||||||
|
.1 stz K.S.STAT,x
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
lda CORE.FSID
|
||||||
|
sta K.S.STAT+S.STAT.FSID
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.Access2Mode
|
FS.Mode2Access clc
|
||||||
and #S.FI.A.FULL
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
FS.Access2Mode and #S.FI.A.FULL
|
||||||
cmp #S.FI.A.FULL
|
cmp #S.FI.A.FULL
|
||||||
beq .7
|
beq .7
|
||||||
tay
|
|
||||||
ldx #S.STAT.MODE.RO+S.STAT.MODE.RG+S.STAT.MODE.RU+S.STAT.MODE.XO+S.STAT.MODE.XG+S.STAT.MODE.XU
|
|
||||||
|
|
||||||
bit #S.FI.A.W
|
lda #S.STAT.MODE.XU
|
||||||
beq .1
|
|
||||||
txa
|
|
||||||
ora #S.STAT.MODE.WO
|
|
||||||
tax
|
|
||||||
tya
|
|
||||||
|
|
||||||
.1 asl D in C
|
|
||||||
|
|
||||||
bpl .2 RN in N
|
|
||||||
txa
|
|
||||||
ora #S.STAT.MODE.WG
|
|
||||||
tax
|
|
||||||
.2 txa
|
|
||||||
bcc .8
|
|
||||||
ora #S.STAT.MODE.WU
|
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
.7 lda #S.STAT.MODE.FO+S.STAT.MODE.FG+S.STAT.MODE.FU rwxrwxrwx
|
.7 lda #S.STAT.MODE.FU
|
||||||
|
|
||||||
.8 sta K.S.STAT+S.STAT.MODE
|
.8 sta K.S.STAT+S.STAT.MODE
|
||||||
|
|
||||||
lda /S.STAT.MODE.RU ??????R??
|
lda /S.STAT.MODE.RU
|
||||||
ora K.S.STAT+S.STAT.MODE+1 preserve DIR
|
tsb K.S.STAT+S.STAT.MODE+1 preserve DIR
|
||||||
sta K.S.STAT+S.STAT.MODE+1
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -288,15 +295,16 @@ SHARED.PTime2StatYAX
|
|||||||
>SYSCALL2 PTime2Time
|
>SYSCALL2 PTime2Time
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.GFI.Src .DA #S.FI.T,#S.FI.AUXTYPE,#S.FI.AUXTYPE+1
|
FS.GFI.Src .DA #S.FI.T,#S.FI.AUXTYPE,#S.FI.AUXTYPE+1
|
||||||
.DA #S.FI.UBLKS,#S.FI.UBLKS+1
|
.DA #S.FI.UBLKS,#S.FI.UBLKS+1
|
||||||
SHARED.GFI.Cnt .EQ *-SHARED.GFI.Src
|
FS.GFI.Cnt .EQ *-FS.GFI.Src
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.DirEnt.Src
|
FS.DirEnt.Src .DA #S.FIEX.T,#S.FIEX.AUXTYPE,#S.FIEX.AUXTYPE+1
|
||||||
.HS 10.1f20.1314.151617
|
.DA #S.FIEX.BLKUSED,#S.FIEX.BLKUSED+1
|
||||||
SHARED.DirEnt.Cnt .EQ *-SHARED.DirEnt.Src
|
.DA #S.FIEX.EOF,#S.FIEX.EOF+1,#S.FIEX.EOF+2
|
||||||
|
FS.DirEnt.Cnt .EQ *-FS.DirEnt.Src
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.Stat.Dst .DA #S.STAT.P.TYPE,#S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
FS.Stat.Dst .DA #S.STAT.P.TYPE,#S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
||||||
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
||||||
.DA #S.STAT.SIZE,#S.STAT.SIZE+1,#S.STAT.SIZE+2
|
.DA #S.STAT.SIZE,#S.STAT.SIZE+1,#S.STAT.SIZE+2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -203,8 +203,38 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
|||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.GetGRGID
|
PWDX.GetGRGID lda PWD.hGrpDB
|
||||||
|
beq PWD.GetGR.9
|
||||||
|
|
||||||
|
jsr K.GetmemPtr
|
||||||
|
>STYA ZPPtr3
|
||||||
|
|
||||||
|
.1 lda (ZPPtr3)
|
||||||
|
beq PWD.GetGR.99 EOF
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
jsr PWD.NextString skip USERNAME
|
||||||
|
|
||||||
|
jsr PWD.GetByte get UID
|
||||||
|
cmp ZPPtr1+1
|
||||||
|
beq PWD.GetGR.8
|
||||||
|
|
||||||
|
jsr PWD.NextLine
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
PWD.GetGR.8 ldx FORPNT+1
|
||||||
|
beq .8 Dry run, no output
|
||||||
|
jmp PWD.Record2GR
|
||||||
|
|
||||||
|
.8 clc a = UID
|
||||||
|
rts
|
||||||
|
|
||||||
|
PWD.GetGR.9 lda #E.IPWDDB
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
|
||||||
|
PWD.GetGR.99 lda #E.IUSR
|
||||||
|
sec
|
||||||
|
PWD.GetGR.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.GetGRName
|
PWDX.GetGRName
|
||||||
|
|
||||||
@ -385,24 +415,6 @@ PWD.FindRecord lda PWD.hUsrDB
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.NextString lda (ZPPtr3),y
|
|
||||||
iny
|
|
||||||
cmp #':'
|
|
||||||
bne PWD.NextString
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
PWD.NextLine iny
|
|
||||||
lda (ZPPtr3),y
|
|
||||||
cmp #C.CR
|
|
||||||
bne PWD.NextLine
|
|
||||||
tya
|
|
||||||
sec
|
|
||||||
adc ZPPtr3
|
|
||||||
sta ZPPtr3
|
|
||||||
bcc .8
|
|
||||||
inc ZPPtr3+1
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
* USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR
|
* USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.Record2Session
|
PWD.Record2Session
|
||||||
@ -412,9 +424,14 @@ PWD.Record2Session
|
|||||||
jsr PWD.NextString skip PASSWORD
|
jsr PWD.NextString skip PASSWORD
|
||||||
jsr PWD.GetByte get UID
|
jsr PWD.GetByte get UID
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
jsr PWD.GetByte get GID
|
jsr PWD.GetByte get GID
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
ldx ZPPtr1
|
ldx ZPPtr1
|
||||||
bne .1
|
bne .1
|
||||||
@ -475,9 +492,11 @@ PWD.Record2PW ldy #0
|
|||||||
iny
|
iny
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNT.PutNext
|
||||||
inx
|
inx
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 lda #0
|
.2 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNT.PutNext
|
||||||
inx
|
inx
|
||||||
@ -502,9 +521,13 @@ PWD.Record2PW ldy #0
|
|||||||
jsr PWD.GetByte UID
|
jsr PWD.GetByte UID
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNT.PutNext
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
jsr PWD.GetByte GID
|
jsr PWD.GetByte GID
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNT.PutNext
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
ldx #S.PW.GECOS
|
ldx #S.PW.GECOS
|
||||||
|
|
||||||
.5 lda (ZPPtr3),y
|
.5 lda (ZPPtr3),y
|
||||||
@ -546,10 +569,59 @@ PWD.Record2PW ldy #0
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.GetByte stz .8+1
|
PWD.Record2GR ldy #0
|
||||||
|
|
||||||
|
ldx #0 NAME
|
||||||
|
|
||||||
.1 lda (ZPPtr3),y
|
.1 lda (ZPPtr3),y
|
||||||
iny
|
iny
|
||||||
|
cmp #':'
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
jsr SHARED.FORPNT.PutNext
|
||||||
|
inx
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.2 lda #0
|
||||||
|
jsr SHARED.FORPNT.PutNext
|
||||||
|
|
||||||
|
jsr PWD.GetByte UID
|
||||||
|
jsr SHARED.FORPNT.PutNext
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
PWD.NextString lda (ZPPtr3),y
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
cmp #':'
|
||||||
|
bne PWD.NextString
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
PWD.NextLine lda (ZPPtr3),y
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
cmp #C.CR
|
||||||
|
bne PWD.NextLine
|
||||||
|
|
||||||
|
tya
|
||||||
|
clc
|
||||||
|
adc ZPPtr3
|
||||||
|
sta ZPPtr3
|
||||||
|
bcc .8
|
||||||
|
inc ZPPtr3+1
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
PWD.GetByte stz .8+1
|
||||||
|
|
||||||
|
.1 lda (ZPPtr3),y
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
cmp #C.CR
|
||||||
|
beq .8
|
||||||
|
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
@ -566,6 +638,9 @@ PWD.GetByte stz .8+1
|
|||||||
clc
|
clc
|
||||||
adc .8+1
|
adc .8+1
|
||||||
sta .8+1
|
sta .8+1
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 lda #$ff SELF MODIFIED
|
.8 lda #$ff SELF MODIFIED
|
||||||
@ -574,7 +649,6 @@ PWD.GetByte stz .8+1
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.AppendRecord
|
PWD.AppendRecord
|
||||||
|
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
@ -636,10 +710,10 @@ PWD.GetRecordLen
|
|||||||
PWD.GetRecordLen.RTS
|
PWD.GetRecordLen.RTS
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.StoreString iny
|
PWD.StoreString jsr SHARED.TXTPTR.GetY
|
||||||
jsr SHARED.TXTPTR.GetY
|
|
||||||
beq PWD.GetRecordLen.RTS
|
beq PWD.GetRecordLen.RTS
|
||||||
jsr PWD.StoreChar
|
jsr PWD.StoreChar
|
||||||
|
iny
|
||||||
bra PWD.StoreString
|
bra PWD.StoreString
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.StoreByte php
|
PWD.StoreByte php
|
||||||
@ -647,7 +721,9 @@ PWD.StoreByte php
|
|||||||
jsr MATH32.A2STR10NP
|
jsr MATH32.A2STR10NP
|
||||||
plx
|
plx
|
||||||
plp
|
plp
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda A2osX.NumStrBuf,y
|
.1 lda A2osX.NumStrBuf,y
|
||||||
beq PWD.GetRecordLen.RTS
|
beq PWD.GetRecordLen.RTS
|
||||||
iny
|
iny
|
||||||
|
Loading…
Reference in New Issue
Block a user