mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-07 09:37:34 +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
|
||||
>STYA ZPPtr2
|
||||
|
||||
lda #0
|
||||
lda #$AA
|
||||
tay
|
||||
|
||||
.10 sta (ZPPtr2),y
|
||||
|
125
BIN/LS.S.txt
125
BIN/LS.S.txt
@ -5,10 +5,10 @@ NEW
|
||||
.OR $2000
|
||||
.TF bin/ls
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/MLI.I
|
||||
.INB INC/MLI.E.I
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
.INB inc/mli.i
|
||||
.INB inc/mli.e.i
|
||||
*--------------------------------------
|
||||
X.ENTER.SUBDIR .EQ 1
|
||||
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.FMT.Date .DA FMT.Date
|
||||
L.FMT.Time .DA FMT.Time
|
||||
L.FMT.string6 .DA FMT.string6
|
||||
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
|
||||
.DA CS.RUN.PRINT.DIR
|
||||
.DA CS.RUN.PRINT.CDEV
|
||||
@ -166,6 +165,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||
|
||||
.4 ldy #S.STAT.MODE+1
|
||||
lda (ZPFileStat),y
|
||||
|
||||
and #$70
|
||||
lsr
|
||||
lsr
|
||||
@ -225,7 +225,8 @@ CS.RUN.PRINT.REG
|
||||
.1 >PUSHW L.MSG.REGEXT
|
||||
|
||||
jsr Mod2CSTR (2)
|
||||
jsr CS.RUN.PushGidUid (4)
|
||||
|
||||
jsr CS.RUN.PushUidGid (4)
|
||||
|
||||
ldy #S.STAT.SIZE+3
|
||||
ldx #4
|
||||
@ -312,7 +313,7 @@ CS.RUN.PRINT.DIR
|
||||
|
||||
jsr Mod2CSTR
|
||||
|
||||
jsr CS.RUN.PushGidUid
|
||||
jsr CS.RUN.PushUidGid
|
||||
jsr CS.RUN.PUSHDATES
|
||||
>PUSHW ZPFileName
|
||||
>PUSHBI 12
|
||||
@ -432,35 +433,19 @@ CS.RUN.PRINT.SRCPATH
|
||||
>SYSCALL PrintF
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.PushGidUid
|
||||
>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
|
||||
|
||||
CS.RUN.PushUidGid
|
||||
ldy #S.STAT.UID
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA
|
||||
>PUSHW ZPPW
|
||||
>SYSCALL GetPWUID
|
||||
bcs .3
|
||||
bcs .2
|
||||
|
||||
>PUSHEA.G USER
|
||||
jsr CS.RUN.PushUidGidStr
|
||||
bra .3
|
||||
|
||||
>PUSHW ZPPW
|
||||
* clc
|
||||
rts
|
||||
|
||||
.3 >PUSHEA.G UID
|
||||
.2 >PUSHEA.G USER
|
||||
>PUSHW L.FMT.int16
|
||||
|
||||
ldy #S.STAT.UID+1
|
||||
@ -471,10 +456,42 @@ CS.RUN.PushGidUid
|
||||
>PUSHA
|
||||
>PUSHBI 2
|
||||
>SYSCALL sprintf
|
||||
|
||||
.3 ldy #S.STAT.GID
|
||||
lda (ZPFileStat),y
|
||||
>PUSHA
|
||||
>PUSHW ZPPW
|
||||
>SYSCALL GetGRGID
|
||||
bcs .5
|
||||
|
||||
>PUSHEA.G UID
|
||||
>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
|
||||
rts
|
||||
|
||||
CS.RUN.PushUidGidStr
|
||||
>PUSHW L.FMT.string6
|
||||
>PUSHW ZPPW
|
||||
>PUSHBI 2
|
||||
>SYSCALL sprintf
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.PUSHDATES
|
||||
ldy #TIME.Mod-1 Set NODATE as default
|
||||
@ -647,35 +664,38 @@ FileType2PSTR ldy #0
|
||||
Mod2CSTR ldy #S.STAT.MODE+1
|
||||
lda (ZPFileStat),y
|
||||
lsr
|
||||
php C = RU
|
||||
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tax
|
||||
lda TYPES,x
|
||||
>STA.G MOD
|
||||
ldx #0
|
||||
|
||||
plp
|
||||
|
||||
ldx #8
|
||||
|
||||
ldy #S.STAT.MODE
|
||||
lda (ZPFileStat),y
|
||||
|
||||
ldy #MOD+1
|
||||
.1 lsr
|
||||
pha
|
||||
|
||||
.1 pha
|
||||
lda #'-'
|
||||
bcc .2
|
||||
|
||||
lda ACCESS,x
|
||||
|
||||
.2 sta (pData),y
|
||||
|
||||
iny
|
||||
pla
|
||||
inx
|
||||
cpx #8
|
||||
bne .1
|
||||
.3 ldy #S.STAT.MODE+1
|
||||
lda (ZPFileStat),y
|
||||
lsr
|
||||
lda #'-'
|
||||
bcc .4
|
||||
lda ACCESS,x
|
||||
.4 >STA.G MOD+9
|
||||
asl
|
||||
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
>PUSHEA.G MOD
|
||||
rts
|
||||
@ -708,14 +728,13 @@ PRODOS.FT.TXT >PSTR "txt"
|
||||
>PSTR "pak"
|
||||
>PSTR "sys"
|
||||
PRODOS.FT.DFLT >PSTR "$ "
|
||||
MSG.Users .AZ "users"
|
||||
MSG.Root .AZ "root"
|
||||
MSG.NODATE .AZ "<no-date>"
|
||||
FMT.Date .AZ "%d-%b-%y"
|
||||
FMT.Time .AZ "%H:%M:%S "
|
||||
FMT.int16 .AZ "%i"
|
||||
FMT.string6 .AZ "%6s"
|
||||
FMT.int16 .AZ "%6D"
|
||||
TYPES .AS "-dbclssp"
|
||||
ACCESS .AS "rwxrwxrwx"
|
||||
ACCESS .AS "xwrxwrxwr"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
@ -723,10 +742,12 @@ DS.START
|
||||
ArgCount .BS 1
|
||||
|
||||
MOD .BS 11 drwxrwxrwx0
|
||||
USER .BS 7
|
||||
GROUP .BS 7
|
||||
|
||||
TIME.Create .BS 20
|
||||
TIME.Mod .BS 20
|
||||
TIME.SysTime .BS S.TIME
|
||||
UID .BS 6
|
||||
|
||||
bPause .BS 1
|
||||
bAllmostAll .BS 1
|
||||
@ -738,10 +759,10 @@ bRecurse .BS 1
|
||||
ColCount .BS 1
|
||||
hPW .BS 1
|
||||
|
||||
.INB USR/SRC/BIN/X.FILEENUM.G
|
||||
.INB usr/src/bin/x.fileenum.g
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/LS.S
|
||||
SAVE usr/src/bin/ls.s
|
||||
ASM
|
||||
|
@ -135,6 +135,8 @@ CS.RUN.DUMP lda ArgFile
|
||||
Mod2CSTR ldy #S.STAT.MODE+1
|
||||
lda (pData),y
|
||||
lsr
|
||||
php
|
||||
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
@ -142,35 +144,29 @@ Mod2CSTR ldy #S.STAT.MODE+1
|
||||
lda TYPES,x
|
||||
>STA.G MOD
|
||||
|
||||
ldx #0
|
||||
plp
|
||||
|
||||
ldx #8
|
||||
|
||||
ldy #S.STAT.MODE
|
||||
lda (pData),y
|
||||
|
||||
ldy #MOD+1
|
||||
|
||||
.1 lsr
|
||||
pha
|
||||
.1 pha
|
||||
lda #'-'
|
||||
bcc .2
|
||||
|
||||
lda ACCESS,x
|
||||
|
||||
.2 sta (pData),y
|
||||
|
||||
iny
|
||||
pla
|
||||
inx
|
||||
cpx #8
|
||||
bne .1
|
||||
|
||||
.3 ldy #S.STAT.MODE+1
|
||||
lda (pData),y
|
||||
lsr
|
||||
lda #'-'
|
||||
bcc .4
|
||||
|
||||
lda ACCESS,x
|
||||
|
||||
.4 >STA.G MOD+9
|
||||
asl
|
||||
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -257,7 +253,7 @@ CS.END
|
||||
OptionList .AS "Cc"
|
||||
OptionVars .DA #bFormatStr,#bFormatStr
|
||||
TYPES .AS "-dbclssp"
|
||||
ACCESS .AS "rwxrwxrwx"
|
||||
ACCESS .AS "xwrxwrxwr"
|
||||
MSG.NODATE .AZ "<No-Date>"
|
||||
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.EPB .EQ 5
|
||||
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
|
||||
*--------------------------------------
|
||||
@ -604,14 +607,19 @@ S.STAT.MODE .EQ 0
|
||||
S.STAT.MODE.XO .EQ $0001
|
||||
S.STAT.MODE.WO .EQ $0002
|
||||
S.STAT.MODE.RO .EQ $0004
|
||||
|
||||
S.STAT.MODE.FO .EQ $0007
|
||||
|
||||
S.STAT.MODE.XG .EQ $0008
|
||||
S.STAT.MODE.WG .EQ $0010
|
||||
S.STAT.MODE.RG .EQ $0020
|
||||
|
||||
S.STAT.MODE.FG .EQ $0038
|
||||
|
||||
S.STAT.MODE.XU .EQ $0040
|
||||
S.STAT.MODE.WU .EQ $0080
|
||||
S.STAT.MODE.RU .EQ $0100
|
||||
|
||||
S.STAT.MODE.FU .EQ $01C0
|
||||
*S.STAT.MODE.SST .EQ $0200
|
||||
*S.STAT.MODE.SGID .EQ $0400
|
||||
@ -658,9 +666,10 @@ S.PW.SHELL .EQ 182 64+1
|
||||
*
|
||||
S.PW .EQ 247
|
||||
*--------------------------------------
|
||||
S.GRP.GID .EQ 0
|
||||
S.GRP.NAME .EQ 1 16+1
|
||||
S.GRP.MEMBERS .EQ 18
|
||||
S.GRP.NAME .EQ 0 16+1
|
||||
S.GRP.GID .EQ 17
|
||||
*
|
||||
S.GRP .EQ 18
|
||||
*--------------------------------------
|
||||
S.SESSION.P .EQ 0
|
||||
S.SESSION.P.ROOT .EQ %10000000
|
||||
|
@ -2,7 +2,7 @@ NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
IO.D2.SeekTime .EQ 200
|
||||
IO.D2.SeekTime .EQ 60
|
||||
*--------------------------------------
|
||||
IO.D2.Ph0Off .EQ $C080
|
||||
IO.D2.Ph0On .EQ $C081
|
||||
|
@ -80,7 +80,7 @@ S.FIEX.AUXTYPE .EQ 31
|
||||
S.FIEX.MTIME .EQ 33
|
||||
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.GID .EQ 44
|
||||
S.FIEX.ACL.MOD .EQ 46
|
||||
|
@ -16,18 +16,6 @@ D2MotorControl >PULLB MotorOn
|
||||
tax
|
||||
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
|
||||
|
||||
.9 rts
|
||||
@ -41,21 +29,10 @@ D2Recalibrate >PULLB DrvSlt
|
||||
|
||||
lda IO.D2.DrvOn,x
|
||||
|
||||
ldy #30
|
||||
|
||||
.10 jsr D2.Wait25600usec
|
||||
dey
|
||||
bne .10
|
||||
|
||||
ldy #168
|
||||
|
||||
* ldx Slotn0
|
||||
|
||||
|
||||
.1 lda IO.D2.Ph0Off,x
|
||||
|
||||
* lda #IO.D2.SeekTime
|
||||
* jsr D2.Wait100usecA
|
||||
|
||||
dey
|
||||
dey
|
||||
|
||||
@ -72,16 +49,10 @@ D2Recalibrate >PULLB DrvSlt
|
||||
tya
|
||||
bne .1
|
||||
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
ldx Slotn0
|
||||
lda IO.D2.Ph0Off,x
|
||||
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
jsr D2.Wait25600usec
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
@ -114,14 +85,18 @@ D2MoveHead.1
|
||||
tay
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0On,y
|
||||
nop
|
||||
nop
|
||||
|
||||
lda #IO.D2.SeekTime
|
||||
jsr D2.Wait100usecA
|
||||
|
||||
pla
|
||||
cmp MoveTo
|
||||
beq .8
|
||||
beq .7
|
||||
|
||||
bcs .2
|
||||
|
||||
@ -137,17 +112,17 @@ D2MoveHead.1
|
||||
|
||||
sta MoveFrom
|
||||
|
||||
lda IO.D2.Ph0Off,x
|
||||
lda IO.D2.Ph0Off,y
|
||||
jsr .8
|
||||
bra .1
|
||||
|
||||
.8 jsr D2.Wait25600usec
|
||||
*--------------------------------------
|
||||
D2.AllPhasesOff ldx Slotn0
|
||||
.7 jsr D2.Wait25600usec
|
||||
|
||||
.8 lda IO.D2.Ph0Off,y
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0Off,x
|
||||
lda IO.D2.Ph1Off,x
|
||||
lda IO.D2.Ph2Off,x
|
||||
lda IO.D2.Ph3Off,x
|
||||
nop
|
||||
nop
|
||||
rts
|
||||
*--------------------------------------
|
||||
D2.Wait25600usec
|
||||
@ -210,13 +185,6 @@ D2TrkWrite16s >PULLW ZPPtr1
|
||||
jsr CheckDiskII
|
||||
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
|
||||
>SYSCALL2 getmem
|
||||
bcs .9
|
||||
@ -432,10 +400,11 @@ PutData stz Checksum
|
||||
pla
|
||||
ora D2.0000XX00,x
|
||||
|
||||
tax
|
||||
|
||||
eor Checksum
|
||||
sta Checksum
|
||||
|
||||
tax
|
||||
lda FC2Nib,x
|
||||
|
||||
jsr PutBytePtr2
|
||||
@ -446,10 +415,14 @@ PutData stz Checksum
|
||||
|
||||
.4 lda (ZPPtr1),y
|
||||
and #$FC
|
||||
|
||||
tax
|
||||
|
||||
eor Checksum
|
||||
sta Checksum
|
||||
tax
|
||||
|
||||
lda FC2Nib,x
|
||||
|
||||
jsr PutBytePtr2
|
||||
|
||||
iny
|
||||
|
@ -166,22 +166,27 @@ L386C asl
|
||||
movhead jsr movhed0 move directory info.
|
||||
jmp lookfil0 do next local pathname.
|
||||
|
||||
movhed0 .DO ACL=1
|
||||
ldx #9+8
|
||||
.ELSE
|
||||
ldx #9 move this directory info
|
||||
.FIN
|
||||
|
||||
.1 .DO ACL=1
|
||||
lda gbuf+$14,x
|
||||
sta h_acl,x
|
||||
.ELSE
|
||||
lda gbuf+1C,x
|
||||
movhed0 ldx #9 move this directory info
|
||||
|
||||
.1 lda gbuf+$1C,x
|
||||
sta h_credt,x
|
||||
.FIN
|
||||
dex
|
||||
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
|
||||
and #$F0
|
||||
eor #$F0 test header type.
|
||||
@ -189,10 +194,10 @@ movhed0 .DO ACL=1
|
||||
|
||||
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
|
||||
dex
|
||||
bpl .2
|
||||
bpl .3
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
@ -628,7 +633,7 @@ L3ACE .DO LOWERCASE=1
|
||||
* cpy #4
|
||||
* 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
|
||||
lda gbuf+40
|
||||
sta VCBs+VCB.BMAP+1,x
|
||||
|
@ -758,13 +758,15 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
tay
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0On,y
|
||||
|
||||
jsr XRW.WaitSeekTime
|
||||
|
||||
pla
|
||||
cmp XRW.TargetQTrack
|
||||
beq .8
|
||||
beq .7
|
||||
|
||||
bcs .2
|
||||
|
||||
@ -780,11 +782,18 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
|
||||
sta XRW.CurrentQTrack
|
||||
|
||||
lda IO.D2.Ph0Off,x
|
||||
lda IO.D2.Ph0Off,y
|
||||
jsr .8
|
||||
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
|
||||
ldx A2L
|
||||
|
@ -6,8 +6,8 @@ NEW
|
||||
* `int hDIR opendir (const char * dirpath);`
|
||||
* ## ASM
|
||||
* `>LDYA dirpath`
|
||||
* `>SYSCALL opendir`
|
||||
* ## RETURN VALUE
|
||||
* `>SYSCALL opendir`
|
||||
* ## RETURN VALUE
|
||||
* CC : success
|
||||
* A = hDIR
|
||||
* CS : error
|
||||
@ -23,21 +23,24 @@ K.OpenDir jsr PFT.CheckPathYA
|
||||
lda K.Buf256+1 One char ("/") ?
|
||||
beq .8 No, Go open dir....
|
||||
|
||||
>MLICALL MLIGETFILEINFO
|
||||
jsr FS.Stat
|
||||
bcs .98 file/dir does not exists....quit
|
||||
lda K.MLI.PARAMS+4
|
||||
cmp #$0F Directory ?
|
||||
bne .98
|
||||
|
||||
lda K.S.STAT+S.STAT.MODE+1
|
||||
and #$f0
|
||||
cmp /S.STAT.MODE.DIR
|
||||
bne .97
|
||||
|
||||
jsr IO.MLI.OPEN
|
||||
bcs .98
|
||||
bcs .98
|
||||
|
||||
.8 jsr STDIO.NewHFile
|
||||
bcs .98
|
||||
|
||||
bcc K.ReadDir.RTS
|
||||
.9 rts
|
||||
|
||||
.97 lda #MLI.E.UNSUPST
|
||||
.98 jmp UNISTD.Open.ERR
|
||||
|
||||
.9 >RET 2
|
||||
*/--------------------------------------
|
||||
* # ReadDir
|
||||
* ## C
|
||||
@ -46,7 +49,7 @@ K.OpenDir jsr PFT.CheckPathYA
|
||||
* `>PUSHW dirent`
|
||||
* `lda hDIR`
|
||||
* `>SYSCALL readdir`
|
||||
* ## RETURN VALUE
|
||||
* ## RETURN VALUE
|
||||
* CC : success
|
||||
* X = hDIRENT
|
||||
* Y,A = PTR to S.DIRENT
|
||||
@ -54,13 +57,15 @@ K.OpenDir jsr PFT.CheckPathYA
|
||||
* A = EC
|
||||
* note : A = 0 means no more entry
|
||||
*\--------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPTMP 8 Bytes
|
||||
.DUMMY
|
||||
.OR ZPTMP 9 Bytes
|
||||
K.ReadDir.hBlk .BS 1
|
||||
K.ReadDir.ECIB .BS 1
|
||||
|
||||
K.ReadDir.EL .BS 1
|
||||
K.ReadDir.EPB .BS 1
|
||||
K.ReadDir.EC .BS 2
|
||||
|
||||
K.ReadDir.BufSize .BS 2
|
||||
K.ReadDir.hBuf .BS 1
|
||||
.ED
|
||||
@ -71,9 +76,9 @@ K.ReadDir jsr PFT.CheckNodeA
|
||||
ldy #S.FD.REG.REF
|
||||
lda (pFD),y
|
||||
beq K.ReadDir.ROOT
|
||||
|
||||
|
||||
bpl .1
|
||||
|
||||
|
||||
jmp K.ReadDir.DEV
|
||||
|
||||
.1 jmp K.ReadDir.DIR
|
||||
@ -97,10 +102,10 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||
|
||||
jsr K.ReadDir.GetBufYA
|
||||
bcs K.ReadDir.RTS
|
||||
|
||||
|
||||
lda #16
|
||||
sta K.ReadDir.EC
|
||||
|
||||
|
||||
.1 lda (ZPPtr2)
|
||||
and #$0F
|
||||
beq .6
|
||||
@ -111,22 +116,22 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||
lda #'/'
|
||||
sta K.MLI.PATH+1
|
||||
ldy #1
|
||||
|
||||
|
||||
.2 lda (ZPPtr2),y
|
||||
sta K.MLI.PATH+1,y
|
||||
jsr K.ReadDir.AddToBuf
|
||||
iny
|
||||
dex
|
||||
bne .2
|
||||
|
||||
txa Add ending 0 for C String
|
||||
|
||||
txa Add ending 0 for C String
|
||||
jsr K.ReadDir.AddToBuf
|
||||
|
||||
|
||||
jsr SHARED.ClrStat
|
||||
|
||||
lda /S.STAT.MODE.BDEV
|
||||
sta K.S.STAT+S.STAT.MODE+1
|
||||
|
||||
|
||||
lda (ZPPtr2)
|
||||
asl DRIVE in Carry
|
||||
pha
|
||||
@ -162,19 +167,19 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||
sta ZPPtr2
|
||||
bcc .7
|
||||
inc ZPPtr2+1
|
||||
|
||||
|
||||
.7 dec K.ReadDir.EC
|
||||
bne .1
|
||||
|
||||
bne .1
|
||||
|
||||
* lda #0 done by S.MEM.F.INIT0
|
||||
* sta (ZPPtr4) Ending 0
|
||||
|
||||
ldy #S.FD.DIR.FC
|
||||
lda #16
|
||||
sta (pFD),y Flag that we returned something for next time
|
||||
sta (pFD),y Flag that we returned something for next time
|
||||
jmp K.ReadDir.EXIT
|
||||
*--------------------------------------
|
||||
K.ReadDir.DEV
|
||||
K.ReadDir.DEV
|
||||
jmp K.ReadDir.NoMore
|
||||
*--------------------------------------
|
||||
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||
@ -188,7 +193,7 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||
pha
|
||||
tya
|
||||
* clc CC from K.GetMem
|
||||
adc #4 Skip 4 bytes linked list
|
||||
adc #4 Skip 4 bytes linked list
|
||||
sta ZPPtr2 PTR to Buffer for PASS #1
|
||||
sta ZPPtr3 PTR to Buffer for PASS #2
|
||||
pla
|
||||
@ -214,6 +219,31 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||
dex
|
||||
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
|
||||
bne .4
|
||||
|
||||
@ -316,15 +346,14 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf
|
||||
bne .3
|
||||
|
||||
jsr K.ReadDir.ADD.
|
||||
jsr SHARED.DirEnt2Stat
|
||||
jsr K.ReadDir.AddStat
|
||||
jsr K.ReadDir.AddStatACL
|
||||
|
||||
jsr K.ReadDir.ADD..
|
||||
bra .4
|
||||
|
||||
.3 jsr K.ReadDir.AddFNToBuf
|
||||
|
||||
.4 jsr SHARED.DirEnt2Stat
|
||||
jsr K.ReadDir.AddStat
|
||||
|
||||
.4 jsr K.ReadDir.AddStatACL
|
||||
|
||||
lda K.ReadDir.EC decrease global counter...
|
||||
sec
|
||||
@ -345,7 +374,7 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf
|
||||
sta ZPPtr3
|
||||
bcc .1
|
||||
|
||||
inc ZPPtr3+1
|
||||
inc ZPPtr3+1
|
||||
bra .1
|
||||
|
||||
.8 ldx #3
|
||||
@ -414,7 +443,7 @@ K.ReadDir.AddFNToBuf
|
||||
beq .3
|
||||
|
||||
lda (ZPPtr3),y
|
||||
ora #$20 convert a-z to A-Z adding from $4x to $6x
|
||||
ora #$20 convert a-z to A-Z adding from $4x to $6x
|
||||
sta (ZPPtr3),y
|
||||
|
||||
.3 asl .2+1
|
||||
@ -432,7 +461,7 @@ K.ReadDir.AddFNToBuf
|
||||
tax
|
||||
ldy #1
|
||||
|
||||
.8 lda (ZPPtr3),y
|
||||
.8 lda (ZPPtr3),y
|
||||
jsr K.ReadDir.AddToBuf
|
||||
iny
|
||||
dex
|
||||
@ -450,6 +479,29 @@ K.ReadDir.AddToBuf
|
||||
inc ZPPtr4+1
|
||||
.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
|
||||
ldy #0
|
||||
|
||||
@ -468,7 +520,7 @@ K.ReadDir.AddStat
|
||||
* `lda hDIR`
|
||||
* `>SYSCALL closedir`
|
||||
* ## RETURN VALUE
|
||||
* none, always succeed.
|
||||
* none, always succeed.
|
||||
*\-------------------------------------
|
||||
*K.CloseDir .EQ K.FClose
|
||||
*--------------------------------------
|
||||
|
@ -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
|
||||
|
||||
* clc
|
||||
.9 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
|
||||
.9
|
||||
FS.OPEN.RTS rts
|
||||
*--------------------------------------
|
||||
FS.Stat bit CORE.FSID
|
||||
bpl .1
|
||||
bmi FS.StatEX
|
||||
|
||||
>MLICALL MLIGETFILEINFOEX
|
||||
bcs SHARED.ClrStat.RTS
|
||||
|
||||
>LDYAI K.MLI.PARAMS+3
|
||||
>STYA ZPPtr3
|
||||
|
||||
jmp SHARED.DirEnt2Stat
|
||||
|
||||
.1 >MLICALL MLIGETFILEINFO
|
||||
bcs SHARED.ClrStat.RTS
|
||||
>MLICALL MLIGETFILEINFO
|
||||
bcs FS.OPEN.RTS
|
||||
|
||||
jsr SHARED.ClrStat
|
||||
|
||||
lda K.MLI.PARAMS+S.FI.A
|
||||
jsr SHARED.Access2Mode
|
||||
lda K.MLI.PARAMS+S.FI.T
|
||||
cmp #S.FI.T.DIR
|
||||
bne .1
|
||||
|
||||
lda /S.STAT.MODE.DIR
|
||||
sta K.S.STAT+S.STAT.MODE+1
|
||||
|
||||
.1 lda K.MLI.PARAMS+S.FI.A
|
||||
jsr FS.Access2Mode
|
||||
|
||||
ldx #SHARED.GFI.Cnt
|
||||
ldx #FS.GFI.Cnt
|
||||
|
||||
.3 ldy SHARED.GFI.Src-1,x
|
||||
.3 ldy FS.GFI.Src-1,x
|
||||
lda K.MLI.PARAMS,y
|
||||
ldy SHARED.Stat.Dst-1,x
|
||||
ldy FS.Stat.Dst-1,x
|
||||
sta K.S.STAT,y
|
||||
dex
|
||||
bne .3
|
||||
@ -203,8 +192,13 @@ FS.Stat bit CORE.FSID
|
||||
ldx #K.S.STAT+S.STAT.MTIME
|
||||
jmp SHARED.PTime2StatYAX
|
||||
*--------------------------------------
|
||||
SHARED.DirEnt2Stat
|
||||
jsr SHARED.ClrStat
|
||||
FS.StatEX >MLICALL MLIGETFILEINFOEX
|
||||
bcs FS.OPEN.RTS
|
||||
|
||||
>LDYAI K.MLI.PARAMS+3
|
||||
>STYA ZPPtr3
|
||||
*--------------------------------------
|
||||
FS.DirEnt2Stat jsr SHARED.ClrStat
|
||||
|
||||
lda (ZPPtr3)
|
||||
and #$F0
|
||||
@ -214,62 +208,75 @@ SHARED.DirEnt2Stat
|
||||
lda /S.STAT.MODE.DIR
|
||||
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
|
||||
ldy SHARED.Stat.Dst-1,x
|
||||
ldy FS.Stat.Dst-1,x
|
||||
sta K.S.STAT,y
|
||||
dex
|
||||
bne .2
|
||||
|
||||
ldy #$1E ProDOS Access
|
||||
ldy #S.FIEX.ACCESS
|
||||
lda (ZPPtr3),y
|
||||
|
||||
jsr SHARED.Access2Mode
|
||||
jsr FS.Access2Mode
|
||||
|
||||
ldy #S.FIEX.ACL
|
||||
lda (ZPPtr3),y
|
||||
cmp #$57
|
||||
bne .7
|
||||
|
||||
lda #$18 creation Date/time
|
||||
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
|
||||
jsr SHARED.PTime2StatAX
|
||||
|
||||
lda #$21 mod Date/time
|
||||
lda #S.FIEX.MTIME
|
||||
ldx #K.S.STAT+S.STAT.MTIME
|
||||
jmp SHARED.PTime2StatAX
|
||||
*--------------------------------------
|
||||
SHARED.Mode2Access
|
||||
clc
|
||||
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
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.Access2Mode
|
||||
and #S.FI.A.FULL
|
||||
FS.Mode2Access clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
FS.Access2Mode and #S.FI.A.FULL
|
||||
cmp #S.FI.A.FULL
|
||||
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
|
||||
beq .1
|
||||
txa
|
||||
ora #S.STAT.MODE.WO
|
||||
tax
|
||||
tya
|
||||
lda #S.STAT.MODE.XU
|
||||
|
||||
.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
|
||||
.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
|
||||
|
||||
lda /S.STAT.MODE.RU ??????R??
|
||||
ora K.S.STAT+S.STAT.MODE+1 preserve DIR
|
||||
sta K.S.STAT+S.STAT.MODE+1
|
||||
lda /S.STAT.MODE.RU
|
||||
tsb K.S.STAT+S.STAT.MODE+1 preserve DIR
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -288,15 +295,16 @@ SHARED.PTime2StatYAX
|
||||
>SYSCALL2 PTime2Time
|
||||
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
|
||||
SHARED.GFI.Cnt .EQ *-SHARED.GFI.Src
|
||||
FS.GFI.Cnt .EQ *-FS.GFI.Src
|
||||
*--------------------------------------
|
||||
SHARED.DirEnt.Src
|
||||
.HS 10.1f20.1314.151617
|
||||
SHARED.DirEnt.Cnt .EQ *-SHARED.DirEnt.Src
|
||||
FS.DirEnt.Src .DA #S.FIEX.T,#S.FIEX.AUXTYPE,#S.FIEX.AUXTYPE+1
|
||||
.DA #S.FIEX.BLKUSED,#S.FIEX.BLKUSED+1
|
||||
.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.SIZE,#S.STAT.SIZE+1,#S.STAT.SIZE+2
|
||||
*--------------------------------------
|
||||
|
@ -203,8 +203,38 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
||||
sec
|
||||
.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
|
||||
|
||||
@ -385,24 +415,6 @@ PWD.FindRecord lda PWD.hUsrDB
|
||||
sec
|
||||
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
|
||||
*--------------------------------------
|
||||
PWD.Record2Session
|
||||
@ -412,9 +424,14 @@ PWD.Record2Session
|
||||
jsr PWD.NextString skip PASSWORD
|
||||
jsr PWD.GetByte get UID
|
||||
sta ZPPtr1
|
||||
|
||||
iny
|
||||
|
||||
jsr PWD.GetByte get GID
|
||||
sta ZPPtr1+1
|
||||
|
||||
iny
|
||||
|
||||
lda #0
|
||||
ldx ZPPtr1
|
||||
bne .1
|
||||
@ -475,9 +492,11 @@ PWD.Record2PW ldy #0
|
||||
iny
|
||||
cmp #':'
|
||||
beq .2
|
||||
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
bra .1
|
||||
|
||||
.2 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
inx
|
||||
@ -502,9 +521,13 @@ PWD.Record2PW ldy #0
|
||||
jsr PWD.GetByte UID
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
|
||||
iny
|
||||
|
||||
jsr PWD.GetByte GID
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
|
||||
iny
|
||||
|
||||
ldx #S.PW.GECOS
|
||||
|
||||
.5 lda (ZPPtr3),y
|
||||
@ -546,10 +569,59 @@ PWD.Record2PW ldy #0
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWD.GetByte stz .8+1
|
||||
PWD.Record2GR ldy #0
|
||||
|
||||
ldx #0 NAME
|
||||
|
||||
.1 lda (ZPPtr3),y
|
||||
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 #':'
|
||||
beq .8
|
||||
|
||||
@ -566,6 +638,9 @@ PWD.GetByte stz .8+1
|
||||
clc
|
||||
adc .8+1
|
||||
sta .8+1
|
||||
|
||||
iny
|
||||
|
||||
bra .1
|
||||
|
||||
.8 lda #$ff SELF MODIFIED
|
||||
@ -574,7 +649,6 @@ PWD.GetByte stz .8+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWD.AppendRecord
|
||||
|
||||
.1 lda (ZPPtr3)
|
||||
beq .8
|
||||
|
||||
@ -636,10 +710,10 @@ PWD.GetRecordLen
|
||||
PWD.GetRecordLen.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWD.StoreString iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
PWD.StoreString jsr SHARED.TXTPTR.GetY
|
||||
beq PWD.GetRecordLen.RTS
|
||||
jsr PWD.StoreChar
|
||||
iny
|
||||
bra PWD.StoreString
|
||||
*--------------------------------------
|
||||
PWD.StoreByte php
|
||||
@ -647,7 +721,9 @@ PWD.StoreByte php
|
||||
jsr MATH32.A2STR10NP
|
||||
plx
|
||||
plp
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda A2osX.NumStrBuf,y
|
||||
beq PWD.GetRecordLen.RTS
|
||||
iny
|
||||
|
Loading…
x
Reference in New Issue
Block a user