/* Literals */ DCL appendFilename LIT '01H'; DCL attachToDir LIT '02H'; DCL aFile LIT '01H'; DCL aDirFile LIT '03H'; DCL aDirectory LIT '02H'; DCL closeFiles LIT '0'; DCL flushFiles LIT '1'; DCL defaultDevice LIT '0'; /* States for the . and .. directories */ DCL atSelfDirDot LIT '0'; DCL atPrevDirDot LIT '1'; DCL afterDirDots LIT '2'; /* Bit definitions of the conn flags */ DCL accessBit LIT '80H'; DCL readOnly LIT '0H'; DCL writable LIT '80H'; DCL cleanBit LIT '40H'; DCL fileWritten LIT '0H'; DCL fileClean LIT '40H'; DCL lastModifiedBit LIT '20H'; DCL useCurDateTime LIT '0H'; DCL useSetDateTime LIT '20H'; DCL fileSystemBit LIT '10H'; DCL xnxFileSystem LIT '0H'; DCL fcbFileSystem LIT '10H'; DCL prnAliasBit LIT '08H'; DCL notPrnAlias LIT '0H'; DCL prnAlias LIT '08H'; /* Signature value for GetEntrypoint */ DCL entrypointFlag LIT '98H'; /* ddCalls recognized at lower level */ DCL firstValidCall LIT '31100'; DCL lastValidCall LIT '31199'; DCL ddXnxDirAccess LIT '31100'; /* Modes for fcb reads and writes */ /* If bit 0 = 1 then Read, else Write */ /* Bits 1 and 2 represent xfer type */ DCL sequential LIT '00b'; DCL random LIT '01b'; DCL randomBlock LIT '10b'; DCL seqRead LIT '001b'; DCL seqWrite LIT '000b'; DCL rndRead LIT '011b'; DCL rndWrite LIT '010b'; DCL rndBlkRead LIT '101b'; DCL rndBlkWrite LIT '100b'; DCL directoryDot LIT '2EH'; /* . */ DCL extSeparator LIT '2EH'; /* . */ DCL pathSeparator LIT '3AH'; /* : */ DCL levelSeparator LIT '5CH'; /* \ */ DCL numFcbCalls LIT '15'; /* <- This lit */ DCL numPathFcbCalls LIT '3'; /* must be the */ DCL numSelfFcbCalls LIT '4'; /* sum of these */ DCL numConnFcbCalls LIT '2'; /* four other */ DCL numXferFcbCalls LIT '6'; /* literals. */ DCL numXnxCalls LIT '20'; /* <- This lit */ DCL numPathXnxCalls LIT '9'; /* must be the */ DCL numConnXnxCalls LIT '8'; /* sum of these */ DCL numDiskXnxCalls LIT '2'; /* four other */ DCL numNullXnxCalls LIT '1'; /* literals. */ DCL numMiscCalls LIT '9'; DCL maxConnections LIT '10'; /* These two values must be at least "maxConnections" apart */ /* They are 10H apart for now for easy readability during debugging */ DCL intrceptBaseConnPL LIT '80H'; DCL intrceptBaseConnGL LIT '90H'; DCL maxVfsDevSize LIT '40'; DCL maxCurDirSize LIT '64'; $EJECT DCL cpmPrinterCall LIT '05H'; DCL flushKbdCall LIT '0CH'; DCL exitProgramCall LIT '00H'; DCL keepProcessCall LIT '31H'; DCL loadAndExecuteCall LIT '4BH'; DCL exitProcessCall LIT '4CH'; DCL diskResetCall LIT '0DH'; DCL selectDiskCall LIT '0EH'; DCL currentDiskCall LIT '19H'; DCL setDiskXferAddrCall LIT '1AH'; DCL diskFreeSpaceCall LIT '36H'; DCL fcbOpenCall LIT '0FH'; DCL fcbCloseCall LIT '10H'; DCL fcbSearchFirstCall LIT '11H'; DCL fcbSearchNextCall LIT '12H'; DCL fcbDeleteCall LIT '13H'; DCL fcbSeqReadCall LIT '14H'; DCL fcbSeqWriteCall LIT '15H'; DCL fcbCreateCall LIT '16H'; DCL fcbRenameCall LIT '17H'; DCL fcbRndReadCall LIT '21H'; DCL fcbRndWriteCall LIT '22H'; DCL fcbFileSizeCall LIT '23H'; DCL fcbSetRelRecdCall LIT '24H'; DCL fcbRndBlkReadCall LIT '27H'; DCL fcbRndBlkWriteCall LIT '28H'; DCL fcbParseFilenameCall LIT '29H'; DCL xnxCreateDirCall LIT '39H'; DCL xnxDeleteDirCall LIT '3AH'; DCL xnxSetCurrentDirCall LIT '3BH'; DCL xnxGetCurrentDirCall LIT '47H'; DCL xnxCreateCall LIT '3CH'; DCL xnxOpenCall LIT '3DH'; DCL xnxCloseCall LIT '3EH'; DCL xnxReadCall LIT '3FH'; DCL xnxWriteCall LIT '40H'; DCL xnxDeleteCall LIT '41H'; DCL xnxSeekCall LIT '42H'; DCL xnxChangeAttrCall LIT '43H'; DCL xnxIOControlCall LIT '44H'; DCL xnxDuplConnCall LIT '45H'; DCL xnxForceDuplConnCall LIT '46H'; DCL xnxMatchFirstCall LIT '4EH'; DCL xnxMatchNextCall LIT '4FH'; DCL xnxRenameCall LIT '56H'; $EJECT /* Types */ DCL ParametersType LIT 'STRUCTURE (es SELECTOR, ds SELECTOR, bp WORD, di WORD, si WORD, dx WORD, cx WORD, bx ConnectionType, ax WORD, ip WORD, cs WORD, flags WORD)'; DCL WordResultsType LIT 'STRUCTURE (es SELECTOR, ds SELECTOR, bp WORD, di WORD, si WORD, dx WORD, cx WORD, bx WORD, ax WORD, ip WORD, cs WORD, flags WORD)'; DCL ByteResultsType LIT 'STRUCTURE (es SELECTOR, ds SELECTOR, bp WORD, di WORD, si WORD, dx WORD, cx WORD, bx WORD, al BYTE, ah BYTE, ip WORD, cs WORD, flags WORD)'; $EJECT DCL NormalFcbType LIT 'STRUCTURE (NormalFcbPart1, NormalFcbPart2)'; DCL NormalFcbPart1 LIT 'driveNumber BYTE, fileName (8) BYTE, extension (3) BYTE, currentBlock WORD, recordSize WORD, fileSize DWORD, lastModDate WORD'; DCL NormalFcbPart2 LIT 'lastModTime WORD, deviceID BYTE, connID WORD, conn ConnectionType, reserved2 (3) BYTE, currentRecd BYTE, relativeRecd DWORD'; DCL RenameFcbType LIT 'STRUCTURE (driveNumber BYTE, fileName (8) BYTE, extension (3) BYTE, notUsed1 WORD, notUsed2 WORD, newDriveNum BYTE, newName (8) BYTE, newExt (3) BYTE, notUsed3 (9) BYTE)'; DCL SearchFcbType LIT 'STRUCTURE (driveNumber BYTE, fileName (8) BYTE, extension (3) BYTE, attribute BYTE, intUse1 (10) BYTE, lastModTime WORD, lastModDate WORD, intUse2 WORD, fileSize DWORD)'; DCL DeviceFcbType LIT 'STRUCTURE (driveNumber BYTE, fileName (8) BYTE, extension (3) BYTE, notUsed1 (13) BYTE, pDevEntry PTR, notUsed2 (8) BYTE)'; $EJECT /* This describes a Xenix Match First/Next entry */ DCL DirMatchType LIT 'STRUCTURE (DirMatchInternalPart, DirMatchReturnedPart)'; DCL DirMatchAliasType LIT 'STRUCTURE (DirMatchInternalPart, whoCares (8) BYTE, nameLength BYTE, name (13) BYTE)'; DCL DirMatchInternalPart LIT 'matchAttr BYTE, driveNumber BYTE, fileName (8) BYTE, extension (3) BYTE, connID WORD, notUsed DWORD, conn ConnectionType'; DCL DirMatchReturnedPart LIT 'attribute BYTE, lastModTime WORD, lastModDate WORD, fileSize DWORD, name (13) BYTE'; /* This describes an MsDos device entry */ DCL MsDevEntryType LIT 'STRUCTURE (pNext PTR, attr WORD, stategyEntry WORD, intEntry WORD, name (8) BYTE)'; DCL MsFilenameType LIT 'STRUCTURE (length BYTE, chars (8) BYTE)'; DCL MsExtensionType LIT 'STRUCTURE (length BYTE, chars (3) BYTE)'; DCL CharDevAliasType LIT 'STRUCTURE (index BYTE, devLength BYTE, devChars (11) BYTE, aliasLength BYTE, aliasChars (8) BYTE)'; DCL DirLevelsType LIT 'STRUCTURE (length BYTE, chars (64) BYTE)'; /* This describes each vfs device entry */ DCL VfsDevType LIT 'STRUCTURE (next SELECTOR, driveNumber BYTE, attribute WORD, curDirLen BYTE, curDirChars (maxCurDirSize) BYTE, nameLen BYTE, nameChars (1) BYTE)'; DCL MsVfsConnCBType LIT 'STRUCTURE (MsVfsConnCBPart1, MsVfsConnCBPart2)'; /* Note: The field objectMode must stay in this */ /* position, because the drivers use it too. */ DCL MsVfsConnCBPart1 LIT 'QElementPrefix, dirState BYTE, deviceID BYTE, lastModDate WORD, lastModTime WORD, filePosition DWORD, objectMode BYTE, propLength WORD, fileLength DWORD'; DCL MsVfsConnCBPart2 LIT 'workSpace (sizeOfACCBSpace) BYTE, flags BYTE, filename (9) BYTE, extension (4) BYTE, pDirLevels PTR, lastAccess DWORD'; /* sizeOfACCBSpace and QElementPrefix */ /* are defined in the file Os.Type.Inc */