I'm using NOVIX error handler, which uses the following code in my QBinux.BI-file:
Code: Select all
'CODE STUFF HERE
ON ERROR GOTO OnError
Code: Select all
DEFINT A-Z
'$DYNAMIC
OnError:
IF ERR <> 0 THEN
IF ERR = 53 THEN
FileFound = "0"
ELSEIF ERR = 64 THEN
FileFound = "0"
ELSEIF ERR = 75 THEN
PathAccess = "0"
ELSEIF ERR = 76 THEN
DirFound = "0"
ELSE
CLOSE
PRINT "QBinux encounterd an unrecoverable error"
PRINT " Error code:"; ERR; " (h"; HEX$(ERR); " b"'; NUM2BITS(ERR, 8); ")"
PRINT
PRINT 'cTask
PRINT 'ErrorMessage
PRINT
SYSTEM
END IF
PRINT "RESUME":RESUME NEXT
END IF
It occures when I try to create a new dir in the NoViXFileSystem. The code to make a directory is a following:
Code: Select all
SUB MakDir (dir AS STRING)
odir$ = CurDir
dirn$ = WorkPath(dir)
IF dirn$ = "DNF" THEN CurDir = odir$: EXIT SUB
IF GetID(dirn$, 1) <> 0 THEN CurDir = odir$: EXIT SUB
IF INSTR(dirn$, ">") THEN CurDir = odir$: EXIT SUB
IF INSTR(dirn$, "<") THEN CurDir = odir$: EXIT SUB
IF INSTR(dirn$, "|") THEN CurDir = odir$: EXIT SUB
IF dirn$ = "FNF" THEN CurDir = odir$: EXIT SUB
IF INSTR(dirn$, CHR$(34)) THEN CurDir = odir$: EXIT SUB
DO
did$ = RHEX(8)
LOOP UNTIL FindFATFile ("NVXFS/" + did$ + ".nfd") = 0 AND VAL("&H" + did$) <> 0
ff = FREEFILE
OPEN "NVXFS/DirList.nfd" FOR BINARY AS #ff
IF LOF(ff) = 0 THEN g$ = MKI$(0): PUT #ff, 1, g$
t$ = " "
GET #ff, 1, t$
offs& = CVI(t$) * 272& + 3&
dirdate$ = SPACE$(271)
MID$(dirdata$, 1, 256) = CHR$(LEN(dirn$)) + dirn$
MID$(dirdata$, 257, 4) = CurDrive
MID$(dirdata$, 261, 4) = CurDir
MID$(dirdata$, 265, 4) = MKL$(VAL("&H" + did$))
MID$(dirdata$, 269, 1) = PriPub
MID$(dirdata$, 270, 1) = CurUser
MID$(dirdata$, 271, 1) = IsSystem
PUT #ff, offs&, dirdata$
t$ = " "
GET #ff, 1, t$
g$ = MKI$(CVI(t$) + 1): PUT #ff, 1, g$
CLOSE #ff
OPEN "NVXFS/" + did$ + ".nfd" FOR APPEND AS #ff
PRINT #ff, CHR$(2) + CHR$(5) + CHR$(1) + CHR$(1);
PRINT #ff, MKL$(VAL("&H" + did$));
PRINT #ff, CurDir;
PRINT #ff, CurDrive;
PRINT #ff, dirn$;
CLOSE #ff
CurDir = odir$
END SUB
Code: Select all
DO
did$ = RHEX(8)
LOOP UNTIL FindFATFile ("NVXFS/" + did$ + ".nfd") = 0 AND VAL("&H" + did$) <> 0
did$ is the name for the file to be written, and FindFATFile must find out of it exists or not.
For some odd reason the program stops running here and just quits.
Grtz