mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-21 06:29:08 +00:00
KERNEL:bugfix for ReadDir on directory blocks filled by deleted entries
This commit is contained in:
parent
f76765cb13
commit
9190fc0a94
Binary file not shown.
@ -110,7 +110,7 @@ CODE.PutChar lda #$A9 LDA #imm
|
|||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
txa
|
txa
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
ldx #SYS.PutChar
|
ldx #_PutChar
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.SYSCALL lda #$A2 LDX #imm
|
CODE.SYSCALL lda #$A2 LDX #imm
|
||||||
jsr CODE.EmitByte
|
jsr CODE.EmitByte
|
||||||
|
162
BIN/CC.S.txt
162
BIN/CC.S.txt
@ -828,85 +828,85 @@ CC.MAIN.DEF .DA #SYM.T.SINT,#0,#SYM.T.SINT,#0,#SYM.T.UCHAR,#SYM.Q.PPOINTER,0
|
|||||||
CC.MAIN.DEF.LEN .EQ *-CC.MAIN.DEF
|
CC.MAIN.DEF.LEN .EQ *-CC.MAIN.DEF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CC.SYSCALL .PS "chtyp"
|
CC.SYSCALL .PS "chtyp"
|
||||||
.DA #SYS.ChTyp
|
.DA #_ChTyp
|
||||||
.PS "chmod"
|
.PS "chmod"
|
||||||
.DA #SYS.ChMod
|
.DA #_ChMod
|
||||||
.PS "fstat"
|
.PS "fstat"
|
||||||
.DA #SYS.FStat
|
.DA #_FStat
|
||||||
.PS "stat"
|
.PS "stat"
|
||||||
.DA #SYS.Stat
|
.DA #_Stat
|
||||||
.PS "mkdir"
|
.PS "mkdir"
|
||||||
.DA #SYS.MKDir
|
.DA #_MKDir
|
||||||
.PS "mknod"
|
.PS "mknod"
|
||||||
.DA #SYS.MKNod
|
.DA #_MKNod
|
||||||
.PS "mkfifo"
|
.PS "mkfifo"
|
||||||
.DA #SYS.MKFIFO
|
.DA #_MKFIFO
|
||||||
.PS "pipe"
|
.PS "pipe"
|
||||||
.DA #SYS.Pipe
|
.DA #_Pipe
|
||||||
.PS "opendir"
|
.PS "opendir"
|
||||||
.DA #SYS.OpenDir
|
.DA #_OpenDir
|
||||||
.PS "readdir"
|
.PS "readdir"
|
||||||
.DA #SYS.ReadDir
|
.DA #_ReadDir
|
||||||
.PS "closedir"
|
.PS "closedir"
|
||||||
.DA #SYS.CloseDir
|
.DA #_CloseDir
|
||||||
.PS "open"
|
.PS "open"
|
||||||
.DA #SYS.Open
|
.DA #_Open
|
||||||
.PS "close"
|
.PS "close"
|
||||||
.DA #SYS.Close
|
.DA #_Close
|
||||||
.PS "read"
|
.PS "read"
|
||||||
.DA #SYS.Read
|
.DA #_Read
|
||||||
.PS "write"
|
.PS "write"
|
||||||
.DA #SYS.Write
|
.DA #_Write
|
||||||
.PS "chown"
|
.PS "chown"
|
||||||
.DA #SYS.ChOwn
|
.DA #_ChOwn
|
||||||
.PS "fputc"
|
.PS "fputc"
|
||||||
.DA #SYS.FPutC
|
.DA #_FPutC
|
||||||
.PS "putchar"
|
.PS "putchar"
|
||||||
.DA #SYS.PutChar
|
.DA #_PutChar
|
||||||
.PS "getc"
|
.PS "getc"
|
||||||
.DA #SYS.GetC
|
.DA #_GetC
|
||||||
.PS "getchar"
|
.PS "getchar"
|
||||||
.DA #SYS.GetChar
|
.DA #_GetChar
|
||||||
.PS "fputs"
|
.PS "fputs"
|
||||||
.DA #SYS.FPutS
|
.DA #_FPutS
|
||||||
.PS "puts"
|
.PS "puts"
|
||||||
.DA #SYS.PutS
|
.DA #_PutS
|
||||||
.PS "fgets"
|
.PS "fgets"
|
||||||
.DA #SYS.FGetS
|
.DA #_FGetS
|
||||||
.PS "ungetc"
|
.PS "ungetc"
|
||||||
.DA #SYS.UngetC
|
.DA #_UngetC
|
||||||
.PS "fopen"
|
.PS "fopen"
|
||||||
.DA #SYS.FOpen
|
.DA #_FOpen
|
||||||
.PS "fclose"
|
.PS "fclose"
|
||||||
.DA #SYS.FClose
|
.DA #_FClose
|
||||||
.PS "fread"
|
.PS "fread"
|
||||||
.DA #SYS.FRead
|
.DA #_FRead
|
||||||
.PS "fwrite"
|
.PS "fwrite"
|
||||||
.DA #SYS.FWrite
|
.DA #_FWrite
|
||||||
.PS "fflush"
|
.PS "fflush"
|
||||||
.DA #SYS.FFlush
|
.DA #_FFlush
|
||||||
.PS "fseek"
|
.PS "fseek"
|
||||||
.DA #SYS.FSeek
|
.DA #_FSeek
|
||||||
.PS "ftell"
|
.PS "ftell"
|
||||||
.DA #SYS.FTell
|
.DA #_FTell
|
||||||
.PS "feof"
|
.PS "feof"
|
||||||
.DA #SYS.FEOF
|
.DA #_FEOF
|
||||||
.PS "remove"
|
.PS "remove"
|
||||||
.DA #SYS.Remove
|
.DA #_Remove
|
||||||
.PS "rename"
|
.PS "rename"
|
||||||
.DA #SYS.Rename
|
.DA #_Rename
|
||||||
.PS "printf"
|
.PS "printf"
|
||||||
.DA #SYS.PrintF
|
.DA #_PrintF
|
||||||
.PS "fprintf"
|
.PS "fprintf"
|
||||||
.DA #SYS.FPrintF
|
.DA #_FPrintF
|
||||||
.PS "sprintf"
|
.PS "sprintf"
|
||||||
.DA #SYS.SPrintF
|
.DA #_SPrintF
|
||||||
.PS "scanf"
|
.PS "scanf"
|
||||||
.DA #SYS.ScanF
|
.DA #_ScanF
|
||||||
.PS "fscanf"
|
.PS "fscanf"
|
||||||
.DA #SYS.FScanF
|
.DA #_FScanF
|
||||||
.PS "sscanf"
|
.PS "sscanf"
|
||||||
.DA #SYS.SScanF
|
.DA #_SScanF
|
||||||
* .PS "$50"
|
* .PS "$50"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
* .PS "$52"
|
* .PS "$52"
|
||||||
@ -922,7 +922,7 @@ CC.SYSCALL .PS "chtyp"
|
|||||||
* .PS "$5C"
|
* .PS "$5C"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
.PS "setattr"
|
.PS "setattr"
|
||||||
.DA #SYS.SetAttr
|
.DA #_SetAttr
|
||||||
* .PS "mount"
|
* .PS "mount"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
* .PS "umount"
|
* .PS "umount"
|
||||||
@ -940,37 +940,37 @@ CC.SYSCALL .PS "chtyp"
|
|||||||
* .PS "geterrmsg"
|
* .PS "geterrmsg"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
.PS "atof"
|
.PS "atof"
|
||||||
.DA #SYS.AToF
|
.DA #_AToF
|
||||||
.PS "atoi"
|
.PS "atoi"
|
||||||
.DA #SYS.AToI
|
.DA #_AToI
|
||||||
.PS "atol"
|
.PS "atol"
|
||||||
.DA #SYS.AToL
|
.DA #_AToL
|
||||||
.PS "strtof"
|
.PS "strtof"
|
||||||
.DA #SYS.StrToF
|
.DA #_StrToF
|
||||||
.PS "strtol"
|
.PS "strtol"
|
||||||
.DA #SYS.StrToL
|
.DA #_StrToL
|
||||||
.PS "strtoul"
|
.PS "strtoul"
|
||||||
.DA #SYS.StrToUL
|
.DA #_StrToUL
|
||||||
.PS "realpath"
|
.PS "realpath"
|
||||||
.DA #SYS.RealPath
|
.DA #_RealPath
|
||||||
.PS "expand"
|
.PS "expand"
|
||||||
.DA #SYS.Expand
|
.DA #_Expand
|
||||||
.PS "strlen"
|
.PS "strlen"
|
||||||
.DA #SYS.StrLen
|
.DA #_StrLen
|
||||||
.PS "strcpy"
|
.PS "strcpy"
|
||||||
.DA #SYS.StrCpy
|
.DA #_StrCpy
|
||||||
.PS "strcat"
|
.PS "strcat"
|
||||||
.DA #SYS.StrCat
|
.DA #_StrCat
|
||||||
.PS "strdup"
|
.PS "strdup"
|
||||||
.DA #SYS.StrDup
|
.DA #_StrDup
|
||||||
.PS "strupr"
|
.PS "strupr"
|
||||||
.DA #SYS.StrUpr
|
.DA #_StrUpr
|
||||||
.PS "strlwr"
|
.PS "strlwr"
|
||||||
.DA #SYS.StrLwr
|
.DA #_StrLwr
|
||||||
.PS "strcmp"
|
.PS "strcmp"
|
||||||
.DA #SYS.StrCmp
|
.DA #_StrCmp
|
||||||
.PS "strcasecmp"
|
.PS "strcasecmp"
|
||||||
.DA #SYS.StrCaseCmp
|
.DA #_StrCaseCmp
|
||||||
* .PS "getdevbyname"
|
* .PS "getdevbyname"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
* .PS "getdevstatus"
|
* .PS "getdevstatus"
|
||||||
@ -988,13 +988,13 @@ CC.SYSCALL .PS "chtyp"
|
|||||||
* .PS "insdrv"
|
* .PS "insdrv"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
.PS "execl"
|
.PS "execl"
|
||||||
.DA #SYS.ExecL
|
.DA #_ExecL
|
||||||
* .PS "execv"
|
* .PS "execv"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
.PS "fork"
|
.PS "fork"
|
||||||
.DA #SYS.Fork
|
.DA #_Fork
|
||||||
.PS "kill"
|
.PS "kill"
|
||||||
.DA #SYS.Kill
|
.DA #_Kill
|
||||||
* .PS "loadfile"
|
* .PS "loadfile"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
* .PS "loadtxtfile"
|
* .PS "loadtxtfile"
|
||||||
@ -1012,41 +1012,41 @@ CC.SYSCALL .PS "chtyp"
|
|||||||
* .PS "strvfree"
|
* .PS "strvfree"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
.PS "putenv"
|
.PS "putenv"
|
||||||
.DA #SYS.PutEnv
|
.DA #_PutEnv
|
||||||
.PS "setenv"
|
.PS "setenv"
|
||||||
.DA #SYS.SetEnv
|
.DA #_SetEnv
|
||||||
.PS "getenv"
|
.PS "getenv"
|
||||||
.DA #SYS.GetEnv
|
.DA #_GetEnv
|
||||||
.PS "unsetenv"
|
.PS "unsetenv"
|
||||||
.DA #SYS.UnsetEnv
|
.DA #_UnsetEnv
|
||||||
.PS "time"
|
.PS "time"
|
||||||
.DA #SYS.Time
|
.DA #_Time
|
||||||
.PS "strftime"
|
.PS "strftime"
|
||||||
.DA #SYS.StrFTime
|
.DA #_StrFTime
|
||||||
* .PS "ptime2time"
|
* .PS "ptime2time"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
.PS "ctime2time"
|
.PS "ctime2time"
|
||||||
.DA #SYS.CTime2Time
|
.DA #_CTime2Time
|
||||||
.PS "md5"
|
.PS "md5"
|
||||||
.DA #SYS.MD5
|
.DA #_MD5
|
||||||
.PS "md5init"
|
.PS "md5init"
|
||||||
.DA #SYS.MD5Init
|
.DA #_MD5Init
|
||||||
.PS "md5update"
|
.PS "md5update"
|
||||||
.DA #SYS.MD5Update
|
.DA #_MD5Update
|
||||||
.PS "md5finalize"
|
.PS "md5finalize"
|
||||||
.DA #SYS.MD5Finalize
|
.DA #_MD5Finalize
|
||||||
.PS "getpwuid"
|
.PS "getpwuid"
|
||||||
.DA #SYS.GetPWUID
|
.DA #_GetPWUID
|
||||||
.PS "getpwname"
|
.PS "getpwname"
|
||||||
.DA #SYS.GetPWName
|
.DA #_GetPWName
|
||||||
.PS "putpw"
|
.PS "putpw"
|
||||||
.DA #SYS.PutPW
|
.DA #_PutPW
|
||||||
.PS "getgrpgid"
|
.PS "getgrpgid"
|
||||||
.DA #SYS.GetGRGID
|
.DA #_GetGRGID
|
||||||
.PS "getgrpname"
|
.PS "getgrpname"
|
||||||
.DA #SYS.GetGRName
|
.DA #_GetGRName
|
||||||
.PS "putgr"
|
.PS "putgr"
|
||||||
.DA #SYS.PutGR
|
.DA #_PutGR
|
||||||
* .PS "opensession"
|
* .PS "opensession"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
* .PS "closesession"
|
* .PS "closesession"
|
||||||
@ -1068,15 +1068,15 @@ CC.SYSCALL .PS "chtyp"
|
|||||||
* .PS "slistnew"
|
* .PS "slistnew"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
.PS "malloc"
|
.PS "malloc"
|
||||||
.DA #SYS.GetMem
|
.DA #_GetMem
|
||||||
.PS "realloc"
|
.PS "realloc"
|
||||||
.DA #SYS.Realloc
|
.DA #_Realloc
|
||||||
* .PS "getmemptr"
|
* .PS "getmemptr"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
* .PS "freemem"
|
* .PS "freemem"
|
||||||
* .DA #SYS.FreeMem
|
* .DA #_FreeMem
|
||||||
.PS "free"
|
.PS "free"
|
||||||
.DA #SYS.Free
|
.DA #_Free
|
||||||
* .PS "newstkobj"
|
* .PS "newstkobj"
|
||||||
* .DA #0
|
* .DA #0
|
||||||
* .PS "getstkobjptr"
|
* .PS "getstkobjptr"
|
||||||
|
@ -42,7 +42,7 @@ CP.PRINT ldy #$ff
|
|||||||
>LDYA ZPDataPtr
|
>LDYA ZPDataPtr
|
||||||
jsr CP.Emit.LDYAI
|
jsr CP.Emit.LDYAI
|
||||||
|
|
||||||
ldx #SYS.PutS
|
ldx #_PutS
|
||||||
jsr CP.Emit.SYSCALL
|
jsr CP.Emit.SYSCALL
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
246
INC/A2osX.I.txt
246
INC/A2osX.I.txt
@ -173,161 +173,161 @@ SL.EndDollar .EQ %00000001
|
|||||||
*--------------------------------------D1
|
*--------------------------------------D1
|
||||||
* STAT
|
* STAT
|
||||||
* .EQ $00
|
* .EQ $00
|
||||||
SYS.ChMod .EQ $02
|
_ChMod .EQ $02
|
||||||
SYS.FStat .EQ $04
|
_FStat .EQ $04
|
||||||
SYS.Stat .EQ $06
|
_Stat .EQ $06
|
||||||
SYS.MKDir .EQ $08
|
_MKDir .EQ $08
|
||||||
SYS.MKNod .EQ $0A
|
_MKNod .EQ $0A
|
||||||
SYS.MKFIFO .EQ $0C
|
_MKFIFO .EQ $0C
|
||||||
SYS.Pipe .EQ $0E
|
_Pipe .EQ $0E
|
||||||
* DIRENT
|
* DIRENT
|
||||||
SYS.OpenDir .EQ $10
|
_OpenDir .EQ $10
|
||||||
SYS.ReadDir .EQ $12
|
_ReadDir .EQ $12
|
||||||
SYS.CloseDir .EQ $14
|
_CloseDir .EQ $14
|
||||||
* UNISTD
|
* UNISTD
|
||||||
SYS.Open .EQ $16
|
_Open .EQ $16
|
||||||
SYS.Close .EQ $18
|
_Close .EQ $18
|
||||||
SYS.Read .EQ $1A
|
_Read .EQ $1A
|
||||||
SYS.Write .EQ $1C
|
_Write .EQ $1C
|
||||||
SYS.ChOwn .EQ $1E
|
_ChOwn .EQ $1E
|
||||||
* STDIO
|
* STDIO
|
||||||
SYS.FPutC .EQ $20
|
_FPutC .EQ $20
|
||||||
SYS.PutChar .EQ $22
|
_PutChar .EQ $22
|
||||||
SYS.GetC .EQ $24
|
_GetC .EQ $24
|
||||||
SYS.GetChar .EQ $26
|
_GetChar .EQ $26
|
||||||
SYS.FPutS .EQ $28
|
_FPutS .EQ $28
|
||||||
SYS.PutS .EQ $2A
|
_PutS .EQ $2A
|
||||||
SYS.FGetS .EQ $2C
|
_FGetS .EQ $2C
|
||||||
SYS.UngetC .EQ $2E
|
_UngetC .EQ $2E
|
||||||
|
|
||||||
SYS.FOpen .EQ $30
|
_FOpen .EQ $30
|
||||||
SYS.FClose .EQ $32
|
_FClose .EQ $32
|
||||||
SYS.FRead .EQ $34
|
_FRead .EQ $34
|
||||||
SYS.FWrite .EQ $36
|
_FWrite .EQ $36
|
||||||
SYS.FFlush .EQ $38
|
_FFlush .EQ $38
|
||||||
SYS.FSeek .EQ $3A
|
_FSeek .EQ $3A
|
||||||
SYS.FTell .EQ $3C
|
_FTell .EQ $3C
|
||||||
SYS.FEOF .EQ $3E
|
_FEOF .EQ $3E
|
||||||
|
|
||||||
SYS.Remove .EQ $40
|
_Remove .EQ $40
|
||||||
SYS.Rename .EQ $42
|
_Rename .EQ $42
|
||||||
SYS.PrintF .EQ $44
|
_PrintF .EQ $44
|
||||||
SYS.FPrintF .EQ $46
|
_FPrintF .EQ $46
|
||||||
SYS.SPrintF .EQ $48
|
_SPrintF .EQ $48
|
||||||
SYS.ScanF .EQ $4A
|
_ScanF .EQ $4A
|
||||||
SYS.FScanF .EQ $4C
|
_FScanF .EQ $4C
|
||||||
SYS.SScanF .EQ $4E
|
_SScanF .EQ $4E
|
||||||
|
|
||||||
* .EQ $50
|
* .EQ $50
|
||||||
* .EQ $52
|
* .EQ $52
|
||||||
* .EQ $54
|
* .EQ $54
|
||||||
* .EQ $56
|
* .EQ $56
|
||||||
* PRODOS
|
* PRODOS
|
||||||
SYS.Online .EQ $58
|
_Online .EQ $58
|
||||||
SYS.ChTyp .EQ $5A
|
_ChTyp .EQ $5A
|
||||||
SYS.ChAux .EQ $5C
|
_ChAux .EQ $5C
|
||||||
SYS.SetAttr .EQ $5E
|
_SetAttr .EQ $5E
|
||||||
*--------------------------------------D2
|
*--------------------------------------D2
|
||||||
* MOUNT
|
* MOUNT
|
||||||
SYS.Mount .EQ $60
|
_Mount .EQ $60
|
||||||
SYS.UMount .EQ $62
|
_UMount .EQ $62
|
||||||
* STKOBJ
|
* STKOBJ
|
||||||
SYS.LoadStkObj .EQ $64
|
_LoadStkObj .EQ $64
|
||||||
SYS.GetStkObj .EQ $66
|
_GetStkObj .EQ $66
|
||||||
* ARG
|
* ARG
|
||||||
SYS.Shift .EQ $68
|
_Shift .EQ $68
|
||||||
SYS.ArgV .EQ $6A
|
_ArgV .EQ $6A
|
||||||
SYS.ArgVDup .EQ $6C
|
_ArgVDup .EQ $6C
|
||||||
* ERROR
|
* ERROR
|
||||||
SYS.GetErrMsg .EQ $6E
|
_GetErrMsg .EQ $6E
|
||||||
* STDLIB
|
* STDLIB
|
||||||
SYS.AToF .EQ $70
|
_AToF .EQ $70
|
||||||
SYS.AToI .EQ $72
|
_AToI .EQ $72
|
||||||
SYS.AToL .EQ $74
|
_AToL .EQ $74
|
||||||
SYS.StrToF .EQ $76
|
_StrToF .EQ $76
|
||||||
SYS.StrToL .EQ $78
|
_StrToL .EQ $78
|
||||||
SYS.StrToUL .EQ $7A
|
_StrToUL .EQ $7A
|
||||||
SYS.RealPath .EQ $7C
|
_RealPath .EQ $7C
|
||||||
SYS.Expand .EQ $7E
|
_Expand .EQ $7E
|
||||||
* STRING
|
* STRING
|
||||||
SYS.StrLen .EQ $80
|
_StrLen .EQ $80
|
||||||
SYS.StrCpy .EQ $82
|
_StrCpy .EQ $82
|
||||||
SYS.StrCat .EQ $84
|
_StrCat .EQ $84
|
||||||
SYS.StrDup .EQ $86
|
_StrDup .EQ $86
|
||||||
SYS.StrUpr .EQ $88
|
_StrUpr .EQ $88
|
||||||
SYS.StrLwr .EQ $8A
|
_StrLwr .EQ $8A
|
||||||
SYS.StrCmp .EQ $8C
|
_StrCmp .EQ $8C
|
||||||
SYS.StrCaseCmp .EQ $8E
|
_StrCaseCmp .EQ $8E
|
||||||
* DEV
|
* DEV
|
||||||
SYS.GetDevByName .EQ $90
|
_GetDevByName .EQ $90
|
||||||
* .EQ $92
|
* .EQ $92
|
||||||
SYS.MKDev .EQ $94
|
_MKDev .EQ $94
|
||||||
SYS.IOCTL .EQ $96
|
_IOCTL .EQ $96
|
||||||
* BIN
|
* BIN
|
||||||
SYS.LoadLib .EQ $98
|
_LoadLib .EQ $98
|
||||||
SYS.UnloadLib .EQ $9A
|
_UnloadLib .EQ $9A
|
||||||
SYS.LoadDrv .EQ $9C
|
_LoadDrv .EQ $9C
|
||||||
SYS.InsDrv .EQ $9E
|
_InsDrv .EQ $9E
|
||||||
* PS
|
* PS
|
||||||
SYS.ExecL .EQ $A0
|
_ExecL .EQ $A0
|
||||||
SYS.ExecV .EQ $A2
|
_ExecV .EQ $A2
|
||||||
SYS.Fork .EQ $A4
|
_Fork .EQ $A4
|
||||||
SYS.Kill .EQ $A6
|
_Kill .EQ $A6
|
||||||
SYS.LoadFile .EQ $A8
|
_LoadFile .EQ $A8
|
||||||
SYS.LoadTxtFile .EQ $AA
|
_LoadTxtFile .EQ $AA
|
||||||
SYS.FileSearch .EQ $AC
|
_FileSearch .EQ $AC
|
||||||
SYS.GetMemStat .EQ $AE
|
_GetMemStat .EQ $AE
|
||||||
*--------------------------------------E0/AUX
|
*--------------------------------------E0/AUX
|
||||||
* STRV / STRVX
|
* STRV / STRVX
|
||||||
SYS.StrVNew .EQ $B0
|
_StrVNew .EQ $B0
|
||||||
SYS.StrVSet .EQ $B2
|
_StrVSet .EQ $B2
|
||||||
SYS.StrVGet .EQ $B4
|
_StrVGet .EQ $B4
|
||||||
SYS.StrVFree .EQ $B6
|
_StrVFree .EQ $B6
|
||||||
* ENV / ENVX
|
* ENV / ENVX
|
||||||
SYS.PutEnv .EQ $B8
|
_PutEnv .EQ $B8
|
||||||
SYS.SetEnv .EQ $BA
|
_SetEnv .EQ $BA
|
||||||
SYS.GetEnv .EQ $BC
|
_GetEnv .EQ $BC
|
||||||
SYS.UnsetEnv .EQ $BE
|
_UnsetEnv .EQ $BE
|
||||||
* TIME / TIMEX
|
* TIME / TIMEX
|
||||||
SYS.Time .EQ $C0
|
_Time .EQ $C0
|
||||||
SYS.StrFTime .EQ $C2
|
_StrFTime .EQ $C2
|
||||||
SYS.PTime2Time .EQ $C4
|
_PTime2Time .EQ $C4
|
||||||
SYS.CTime2Time .EQ $C6
|
_CTime2Time .EQ $C6
|
||||||
* MD5 / MD5X
|
* MD5 / MD5X
|
||||||
SYS.MD5 .EQ $C8
|
_MD5 .EQ $C8
|
||||||
SYS.MD5Init .EQ $CA
|
_MD5Init .EQ $CA
|
||||||
SYS.MD5Update .EQ $CC
|
_MD5Update .EQ $CC
|
||||||
SYS.MD5Finalize .EQ $CE
|
_MD5Finalize .EQ $CE
|
||||||
* PWD / PWDX
|
* PWD / PWDX
|
||||||
SYS.GetPWUID .EQ $D0
|
_GetPWUID .EQ $D0
|
||||||
SYS.GetPWName .EQ $D2
|
_GetPWName .EQ $D2
|
||||||
SYS.PutPW .EQ $D4
|
_PutPW .EQ $D4
|
||||||
SYS.GetGRGID .EQ $D6
|
_GetGRGID .EQ $D6
|
||||||
SYS.GetGRName .EQ $D8
|
_GetGRName .EQ $D8
|
||||||
SYS.PutGR .EQ $DA
|
_PutGR .EQ $DA
|
||||||
SYS.OpenSession .EQ $DC
|
_OpenSession .EQ $DC
|
||||||
SYS.CloseSession .EQ $DE
|
_CloseSession .EQ $DE
|
||||||
* SLIST / SLISTX
|
* SLIST / SLISTX
|
||||||
SYS.SListGetData .EQ $E0
|
_SListGetData .EQ $E0
|
||||||
SYS.SListAddData .EQ $E2
|
_SListAddData .EQ $E2
|
||||||
SYS.SListSetData .EQ $E4
|
_SListSetData .EQ $E4
|
||||||
SYS.SListGetByID .EQ $E6
|
_SListGetByID .EQ $E6
|
||||||
SYS.SListNewKey .EQ $E8
|
_SListNewKey .EQ $E8
|
||||||
SYS.SListLookup .EQ $EA
|
_SListLookup .EQ $EA
|
||||||
SYS.SListFree .EQ $EC
|
_SListFree .EQ $EC
|
||||||
SYS.SListNew .EQ $EE
|
_SListNew .EQ $EE
|
||||||
*--------------------------------------F0
|
*--------------------------------------F0
|
||||||
* MEM
|
* MEM
|
||||||
SYS.GetMem .EQ $F0
|
_GetMem .EQ $F0
|
||||||
SYS.Malloc .EQ $F0
|
_Malloc .EQ $F0
|
||||||
SYS.Realloc .EQ $F2
|
_Realloc .EQ $F2
|
||||||
SYS.GetMemPtr .EQ $F4
|
_GetMemPtr .EQ $F4
|
||||||
SYS.FreeMem .EQ $F6
|
_FreeMem .EQ $F6
|
||||||
SYS.Free .EQ $F8
|
_Free .EQ $F8
|
||||||
|
|
||||||
SYS.NewStkObj .EQ $FA
|
_NewStkObj .EQ $FA
|
||||||
SYS.GetStkObjPtr .EQ $FC
|
_GetStkObjPtr .EQ $FC
|
||||||
SYS.FreeStkObj .EQ $FE
|
_FreeStkObj .EQ $FE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* MEM STRUCT
|
* MEM STRUCT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -17,7 +17,7 @@ NEW
|
|||||||
* SYSCALLs Macros
|
* SYSCALLs Macros
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA SYSCALL
|
.MA SYSCALL
|
||||||
ldx #SYS.]1
|
ldx #_]1
|
||||||
jsr A2osX.SYSCALL
|
jsr A2osX.SYSCALL
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -32,7 +32,7 @@ NEW
|
|||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA SYSCALL2
|
.MA SYSCALL2
|
||||||
ldx #SYS.]1
|
ldx #_]1
|
||||||
jsr A2osX.SYSCALL2
|
jsr A2osX.SYSCALL2
|
||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -43,7 +43,7 @@ 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.BufS .BS 2
|
||||||
K.ReadDir.hBuf .BS 1
|
K.ReadDir.hBuf .BS 1
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -94,13 +94,13 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
|||||||
|
|
||||||
.2 lda (ZPPtr2),y
|
.2 lda (ZPPtr2),y
|
||||||
sta K.MLI.PATH+1,y
|
sta K.MLI.PATH+1,y
|
||||||
jsr K.ReadDir.AddToBuf
|
jsr K.ReadDir.Add2B
|
||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
txa Add ending 0 for C String
|
txa Add ending 0 for C String
|
||||||
jsr K.ReadDir.AddToBuf
|
jsr K.ReadDir.Add2B
|
||||||
|
|
||||||
jsr FS.ClrStat
|
jsr FS.ClrStat
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
|||||||
|
|
||||||
.7 iny
|
.7 iny
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
jsr K.ReadDir.AddToBuf
|
jsr K.ReadDir.Add2B
|
||||||
eor #0
|
eor #0
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
|||||||
lda /512
|
lda /512
|
||||||
sta K.MLI.PARAMS+5
|
sta K.MLI.PARAMS+5
|
||||||
|
|
||||||
>MLICALL MLI.READ Read A block from directory
|
K.ReadDir.DIR0 >MLICALL MLI.READ Read A block from directory
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
ldy #S.FD.DIR.EL Check if first run....
|
ldy #S.FD.DIR.EL Check if first run....
|
||||||
@ -245,29 +245,33 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
|||||||
tay
|
tay
|
||||||
|
|
||||||
inx Any entry remaining ?
|
inx Any entry remaining ?
|
||||||
bne .5
|
bne K.ReadDir.DIR1
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bne .5
|
bne K.ReadDir.DIR1
|
||||||
|
|
||||||
lda #MLI.E.EOF
|
lda #MLI.E.EOF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* pass #1 compute BufSize...
|
* pass #1 compute BufS...
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.5 lda K.ReadDir.EPB
|
K.ReadDir.DIR1 lda K.ReadDir.EPB
|
||||||
sta K.ReadDir.ECIB
|
sta K.ReadDir.ECIB
|
||||||
|
|
||||||
lda #1 For Ending 0
|
lda #1 For Ending 0
|
||||||
sta K.ReadDir.BufSize
|
sta K.ReadDir.BufS
|
||||||
stz K.ReadDir.BufSize+1
|
stz K.ReadDir.BufS+1
|
||||||
|
|
||||||
jsr K.ReadDir.P3Init
|
jsr K.ReadDir.P3Init
|
||||||
|
|
||||||
|
stz .8+1
|
||||||
|
|
||||||
K.ReadDir.DIR1 lda (ZPPtr3)
|
.10 lda (ZPPtr3)
|
||||||
beq .7 Free slot....goto next
|
beq .7 Free slot....goto next
|
||||||
|
|
||||||
|
inc .8+1
|
||||||
|
|
||||||
and #$F0 get storage_type
|
and #$F0 get storage_type
|
||||||
cmp #$F0 Volume header ?
|
cmp #$F0 Volume header ?
|
||||||
beq .1
|
beq .1
|
||||||
@ -285,11 +289,11 @@ K.ReadDir.DIR1 lda (ZPPtr3)
|
|||||||
.2 lda #2+S.STAT+3+S.STAT add "1." + S.STAT + "2.." + S.STAT...
|
.2 lda #2+S.STAT+3+S.STAT add "1." + S.STAT + "2.." + S.STAT...
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc K.ReadDir.BufSize
|
adc K.ReadDir.BufS
|
||||||
sta K.ReadDir.BufSize
|
sta K.ReadDir.BufS
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
inc K.ReadDir.BufSize+1
|
inc K.ReadDir.BufS+1
|
||||||
|
|
||||||
.3 inx X,Y = !Total entry Count
|
.3 inx X,Y = !Total entry Count
|
||||||
bne .7
|
bne .7
|
||||||
@ -298,14 +302,19 @@ K.ReadDir.DIR1 lda (ZPPtr3)
|
|||||||
beq K.ReadDir.DIR2 we reached last entry in whole DIR
|
beq K.ReadDir.DIR2 we reached last entry in whole DIR
|
||||||
|
|
||||||
.7 jsr K.ReadDir.P3Next
|
.7 jsr K.ReadDir.P3Next
|
||||||
bne K.ReadDir.DIR1
|
bne .10
|
||||||
|
|
||||||
|
.8 lda #$FF
|
||||||
|
bne K.ReadDir.DIR2
|
||||||
|
|
||||||
|
jmp K.ReadDir.DIR0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* pass #2 Fill Buffer...(ZPPtr1 & Ptr2 can now be trashed)
|
* pass #2 Fill Buffer...(ZPPtr1 & Ptr2 can now be trashed)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.DIR2 lda K.ReadDir.EPB
|
K.ReadDir.DIR2 lda K.ReadDir.EPB
|
||||||
sta K.ReadDir.ECIB
|
sta K.ReadDir.ECIB
|
||||||
|
|
||||||
>LDYA K.ReadDir.BufSize Get a BufSize bytes buffer for storing results
|
>LDYA K.ReadDir.BufS Get a BufS bytes buffer for storing results
|
||||||
jsr K.ReadDir.GetBuf
|
jsr K.ReadDir.GetBuf
|
||||||
bcc .10
|
bcc .10
|
||||||
|
|
||||||
@ -327,14 +336,14 @@ K.ReadDir.DIR2 lda K.ReadDir.EPB
|
|||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr K.ReadDir.ADD.
|
jsr K.ReadDir.ADD.
|
||||||
jsr K.ReadDir.AddStatACL
|
jsr K.ReadDir.SA2B
|
||||||
|
|
||||||
jsr K.ReadDir.ADD..
|
jsr K.ReadDir.ADD..
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.3 jsr K.ReadDir.AddFNToBuf
|
.3 jsr K.ReadDir.FN2B
|
||||||
|
|
||||||
.4 jsr K.ReadDir.AddStatACL
|
.4 jsr K.ReadDir.SA2B
|
||||||
|
|
||||||
lda K.ReadDir.EC decrease global counter...
|
lda K.ReadDir.EC decrease global counter...
|
||||||
sec
|
sec
|
||||||
@ -398,15 +407,14 @@ K.ReadDir.ADD..
|
|||||||
ldx #2 filename="2.."
|
ldx #2 filename="2.."
|
||||||
lda #'.'
|
lda #'.'
|
||||||
|
|
||||||
.1 jsr K.ReadDir.AddToBuf Add X dot(s)
|
.1 jsr K.ReadDir.Add2B Add X dot(s)
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jmp K.ReadDir.AddToBuf Add Ending 0
|
jmp K.ReadDir.Add2B Add Ending 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.AddFNToBuf
|
K.ReadDir.FN2B ldy #$1D version/min_version for lowercase bitmap
|
||||||
ldy #$1D version/min_version for lowercase bitmap
|
|
||||||
lda (ZPPtr3),y check bxxxxxxx.xxxxxxxx...
|
lda (ZPPtr3),y check bxxxxxxx.xxxxxxxx...
|
||||||
bpl .7 not set, no lowercase bitmap present
|
bpl .7 not set, no lowercase bitmap present
|
||||||
|
|
||||||
@ -445,18 +453,17 @@ K.ReadDir.AddFNToBuf
|
|||||||
ldy #1
|
ldy #1
|
||||||
|
|
||||||
.8 lda (ZPPtr3),y
|
.8 lda (ZPPtr3),y
|
||||||
jsr K.ReadDir.AddToBuf
|
jsr K.ReadDir.Add2B
|
||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
txa
|
txa
|
||||||
* jsr K.ReadDir.AddToBuf
|
* jsr K.ReadDir.Add2B
|
||||||
|
|
||||||
* rts
|
* rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.AddToBuf
|
K.ReadDir.Add2B sta (ZPPtr4)
|
||||||
sta (ZPPtr4)
|
|
||||||
inc ZPPtr4
|
inc ZPPtr4
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
@ -464,8 +471,7 @@ K.ReadDir.AddToBuf
|
|||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.AddStatACL
|
K.ReadDir.SA2B jsr FS.DirEnt2Stat
|
||||||
jsr FS.DirEnt2Stat
|
|
||||||
|
|
||||||
ldy #S.FD.DIR.UID
|
ldy #S.FD.DIR.UID
|
||||||
ldx #S.STAT.UID
|
ldx #S.STAT.UID
|
||||||
@ -491,7 +497,7 @@ K.ReadDir.AddStat
|
|||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda K.S.STAT,y
|
.1 lda K.S.STAT,y
|
||||||
jsr K.ReadDir.AddToBuf
|
jsr K.ReadDir.Add2B
|
||||||
iny
|
iny
|
||||||
cpy #S.STAT
|
cpy #S.STAT
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -183,7 +183,7 @@ ENVX.GetEnv sta ENVX.hEnv
|
|||||||
bne .2
|
bne .2
|
||||||
inc
|
inc
|
||||||
|
|
||||||
.2 ldx #SYS.GetMem
|
.2 ldx #_GetMem
|
||||||
jsr JMP.M !!! Get a buffer In MAIN Mem !!!
|
jsr JMP.M !!! Get a buffer In MAIN Mem !!!
|
||||||
|
|
||||||
bcs .99
|
bcs .99
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
JMPX jmp (.1-SYS.StrVNew,x)
|
JMPX jmp (.1-_StrVNew,x)
|
||||||
|
|
||||||
.1 .DA STRVX.StrVNew
|
.1 .DA STRVX.StrVNew
|
||||||
.DA STRVX.StrVSet
|
.DA STRVX.StrVSet
|
||||||
|
@ -52,7 +52,7 @@ SLISTX.GetData jsr SLISTX.Select
|
|||||||
sec
|
sec
|
||||||
ror SLISTX.b0
|
ror SLISTX.b0
|
||||||
|
|
||||||
.11 ldx #SYS.GetMem
|
.11 ldx #_GetMem
|
||||||
jsr JMP.M !!! Get a buffer In MAIN Mem !!!
|
jsr JMP.M !!! Get a buffer In MAIN Mem !!!
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -306,7 +306,7 @@ STDIO.Get1 >PUSHA
|
|||||||
>PUSHA
|
>PUSHA
|
||||||
inc read 1 byte
|
inc read 1 byte
|
||||||
>PUSHA
|
>PUSHA
|
||||||
ldx #SYS.FRead
|
ldx #_FRead
|
||||||
jmp K.FRead
|
jmp K.FRead
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ungetc
|
* # ungetc
|
||||||
@ -465,7 +465,7 @@ K.FRead.RTS rts
|
|||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* Y,A = Bytes Written
|
* Y,A = Bytes Written
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FWrite.PFT ldx #SYS.FWrite Needed by PFT
|
K.FWrite.PFT ldx #_FWrite Needed by PFT
|
||||||
|
|
||||||
K.FWrite jsr PFT.CheckNode4
|
K.FWrite jsr PFT.CheckNode4
|
||||||
bcs K.FWrite.RET5
|
bcs K.FWrite.RET5
|
||||||
|
@ -387,7 +387,7 @@ K.Expand ldy #2
|
|||||||
lda /K.Buf256
|
lda /K.Buf256
|
||||||
>STYA FORPNT
|
>STYA FORPNT
|
||||||
|
|
||||||
ldx #SYS.GetEnv
|
ldx #_GetEnv
|
||||||
jsr K.GetEnv.I
|
jsr K.GetEnv.I
|
||||||
bcs .70
|
bcs .70
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ K.Time >PULLW FORPNT
|
|||||||
>MLICALL MLI.GETTIME
|
>MLICALL MLI.GETTIME
|
||||||
>LDYAI GP.DATE
|
>LDYAI GP.DATE
|
||||||
>STYA TXTPTR
|
>STYA TXTPTR
|
||||||
ldx #SYS.PTime2Time
|
ldx #_PTime2Time
|
||||||
jmp JMP.X
|
jmp JMP.X
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # StrFTime
|
* # StrFTime
|
||||||
|
Loading…
x
Reference in New Issue
Block a user