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