0001 * 0002 * PTDOS 1.4 SYSTEM DEFINITIONS 0003 * 0004 * $$$$ $$$$$ $$$$ $$$ $$$ 0005 * $ $ $ $ $ $ $ $ $ 0006 * $ $ $ $ $ $ $ $ 0007 * $$$$ $ $ $ $ $ $$$ 0008 * $ $ $ $ $ $ $ 0009 * $ $ $ $ $ $ $ $ 0010 * $ $ $$$$ $$$ $$$ 0011 * 0012 * 0013 * 0014 * 0015 * 1) MAIN ENTRY POINTS (EP AREA) 0016 * 0017 SYS EQU 0BCBCH 0018 RB EQU SYS-3 READ SINGLE BYTE 0019 WB EQU RB-3 WRITE SINGLE BYTE 0020 UTIL EQU WB-3 UTILITY HANDLER 0021 RESET EQU UTIL-3 RESET TO SYSTEM 0022 ERRL0 EQU RESET-3 ERROR LEVEL 0 RETURN FROM DRIVER 0023 ERRL1 EQU ERRL0-3 ERROR LEVEL 1 RETURN FROM DRIVER 0024 ERRL2 EQU ERRL1-3 ERROR LEVEL 2 RETURN FROM DRIVER 0025 SYSGLO EQU ERRL2-2 POINTER TO SYSTEM GLOBAL AREA 0026 CONIN EQU SYSGLO-3 CONSOLE INPUT ONE CHARACTER 0027 CONOUT EQU CONIN-3 CONSOLE OUTPUT ONE CHARACTER 0028 CONTST EQU CONOUT-3 CONSOLE INPUT READY TEST 0029 PSCAN EQU CONTST-3 PARAMETER SCANNER ENTRY 0030 INTDN EQU PSCAN-3 INTERRUPT DONE ENTRY POINT 0031 INTDK EQU INTDN-3 INTERRUPT PROCESSING ENTRY 0032 SDIRY EQU INTDK-3 SEARCH DIRECTORY (INTERNAL ONLY) 0033 CIVDM EQU PSCAN-2 VDM DRIVER ADDRESS 0034 CIWCH EQU CIVDM-2 TERMINAL DRIVER ADDRESS 0035 * 0036 * 0037 * 0038 * 0039 * 2) SYS CALL OPERATIONS (CODE FOR OPERATION BYTE) 0040 * 0041 * 0042 CREOP EQU 0 CREATE FILE (DE -> PARMS) 0043 OPEOP EQU CREOP+1 OPEN FILE (DE -> NAME, HL = BUFF OPT) 0044 KILOP EQU OPEOP+1 KILL FILE (DE -> NAME) 0045 RBLOP EQU KILOP+1 READ BLOCK OF DATA 0046 WBLOP EQU RBLOP+1 WRITE BLOCK OF DATA 0047 SPAOP EQU WBLOP+1 MOVE FILE CURSOR 0048 EOFOP EQU SPAOP+1 ENDFILE A FILE 0049 CLOOP EQU EOFOP+1 CLOSE A FILE 0050 CHTOP EQU CLOOP+1 CHANGE TYPE OF FILE 0051 CHAOP EQU CHTOP+1 CHANGE ATTRIBUTES OF A FILE 0052 CHNOP EQU CHAOP+1 CHANGE NAME OF A FILE 0053 INFOP EQU CHNOP+1 GET INFO ABOUT A FILE 0054 SUNOP EQU INFOP+1 SET DEFAULT UNIT 0055 RETOP EQU SUNOP+1 RETURN TO CI 0056 RESOP EQU RETOP+1 RESET 0057 ABTOP EQU RESOP+1 ABORT, THEN RETURN TO CI 0058 SEKOP EQU ABTOP+1 SET FILE CURSOR TO ARBITRARY POINT (SEEK 0059 RNDOP EQU SEKOP+1 MAKE FILE RANDOMLY ACCESSIBLE 0060 CAOP EQU RNDOP+1 CLOSE ALL FILES (OR ALL ON A UNIT) 0061 CTLOP EQU CAOP+1 CONTROL/STATUS OF DRIVER 0062 SREOP EQU CTLOP+1 SHORT RESET TO CI 0063 DRDOP EQU SREOP+1 DELIMITED READ 0064 DWROP EQU DRDOP+1 DELIMITED WRITE 0065 DSPOP EQU DWROP+1 DELIMITED SPACE 0066 RTROP EQU DSPOP+1 RETURN AND SET TRAP 0067 * 0068 * 0069 * 0070 * 0071 * 0072 * 3) ATTRIBUTES OF FILES 0073 * 0074 PKIL EQU 1 DELETE PROTECT 0075 PWRI EQU 2 WRITE PROTECTION 0076 PREA EQU 4 READ PROTECTION 0077 PFINF EQU 8 INFORMATION PROTECTION (FILES WON'T LIST) 0078 PATR EQU 16 ATTRIBUTE CHANGE PROTECTION 0079 PNAT EQU 32 NAME AND TYPE CHANGE PROTECTION 0080 PALO EQU 64 DISK ALLOCATION PROHIBITION 0081 PUSR EQU 128 USER ATTRIBUTE 0082 * 0083 * 0084 * 0085 * 0086 * 0087 * 0088 * 4) SYSTEM GLOBAL AREA 0089 * 0090 * THESE ARE THE STANDARD SYMBOLS 0091 * 0092 GLCIF EQU 0 CI INPUT FILE # 0093 GLCOF EQU GLCIF+1 CI OUTPUT FILE # 0094 GLUTF EQU GLCOF+1 UTILITY FILE # 0095 GLECF EQU GLUTF+1 CI ECHO FILE # 0096 GLUNI EQU GLECF+1 DEFAULT UNIT # 0097 GLPRM EQU GLUNI+1 # OF PERMANENTLY OPEN FILES 0098 GLMXU EQU GLPRM+1 MAX UNIT NUMBER (= # DRIVES+1) 0099 GLSWI EQU GLMXU+1 SYSTEM SWITCHES 0100 GLERS EQU GLSWI+2 SOFT (LEVEL 2) ERROR WORD 0101 GLERM EQU GLERS+2 MODERATE (LEVEL 1) ERROR WORD 0102 GLERH EQU GLERM+2 HARD (LEVEL 0) ERROR WORD 0103 GLTRP EQU GLERH+2 CI RETURN TRAP WORD 0104 GLPRO EQU GLTRP+2 USER MEMORY PROTECT WORD 0105 GLFLG EQU GLPRO+2 CHARACTER WAITING FLAG 0106 GLBYT EQU GLFLG+1 THE CHARACTER 0107 GLRCH EQU GLBYT+1 FILE #0 READ CHARACTER ROUTINE POINTER 0108 GLWCH EQU GLRCH+2 FILE #1 WRITE CHARACTER ROUTINE POINTER 0109 GLTCH EQU GLWCH+2 CONSOLE TEST CHARACTER READY ROUTINE PTR 0110 GLNCT EQU GLTCH+2 NULL COUNT FOLLOWING CR 0111 GLVER EQU GLNCT+1 SYSTEM VERSION 0112 GLDAT EQU GLVER+1 DATE (MM,DD,YY) 0113 GLNAM EQU GLDAT+3 DISK NAME (8 ASCII CHARACTERS) 0114 GLPAS EQU GLNAM+8 PASSWORD 0115 GLBD1 EQU GLPAS+8 DISK BUSY TRAP POINT 0116 GLBD2 EQU GLBD1+2 DISK WAIT TRAP POINT 0117 GLIF1 EQU GLBD2+2 INT FLAG 1 0118 GLIF2 EQU GLIF1+1 INT FLAG 2 0119 GLLOW EQU GLIF2+1 LOW ADDRESS OF BUFFER AREA 0120 GLECH EQU GLLOW+2 ECHO DISABLE SWITCH 0121 GLLOK EQU GLECH+1 DISK WRITE LOCK 0122 GLUPS EQU GLLOK+1 UPSHIFT 0123 GLRBC EQU GLUPS+1 READ-BACK CHECK 0124 GLBIO EQU GLRBC+1 BINARY CONSOLE I/O 0125 GLRBW EQU GLBIO+1 READ-BEFORE-WRITE 0126 GLVRB EQU GLRBW+1 VERBOSE 0127 * EXTRA SWITCH 0128 GLVDC EQU GLVRB+2 VDM CLEAR SET TO LINE 0129 GLSP2 EQU GLVDC+2 EXTRAS 0130 GLHI EQU GLSP2+2 HIGHEST AVAILABLE MEMORY LOCATION 0131 GLMIN EQU GLHI+2 LOWEST ADDRESS ALLOCATED 0132 GLFCB EQU GLMIN+2 FCB BASE ADDRESS (INTERNAL USE) 0133 GLNFC EQU GLFCB+2 # OF FCB'S (INTERNAL USE) 0134 * 0135 * 0136 * 0137 * 6) CXBUF 0138 * 0139 CXBUF EQU 0BCC0H 0140 * 0141 * 0142 * 7) STATUS BITS IN USER DEVICE WORD 0143 * 0144 SBDUP EQU 128 DUPLICATIVE 0145 SBIAT EQU 64 INTERACTIVE 0146 SBTAB EQU 32 DOES TAB'S (CONTROL-I) 0147 SBSTB EQU 16 SETTABLE TABS 0148 SBFF EQU 8 DOES FORM-FEEDS 0149 SBATB EQU 4 DOES ABSOLUTE TABS 0150 SBINT EQU 2 INTERRUPT DRIVEN 0151 SBPRO EQU 1 SETTABLE PROMPT MESSAGE 0152 * 0153 * 0154 * 0155 * 8) ERROR NUMBERS 0156 * THESE ARE THE CORRECT ERROR NUMBERS 0157 * 0158 ERNEX EQU 1 NONEXISTENT FILE 0159 ERAEX EQU ERNEX+1 FILE ALREADY EXISTS 0160 ERUFN EQU ERAEX+1 UNASSIGNED FILE NUMBER 0161 ERPRO EQU ERUFN+1 PROTECTION VIOLATION 0162 ERNIF EQU ERPRO+1 FILE NOT TYPE IMAGE 0163 ERMOP EQU ERNIF+1 ILLEGAL OPERATION ON MULTIPLY OPEN FILE 0164 ERRAC EQU ERMOP+1 RANDOM ACCESS TO NON-RANDON FILE 0165 ERRDV EQU ERRAC+1 RANDOM ACCESS TO DEVICE FILE 0166 ERZBC EQU ERRDV+1 ZERO BLOCK COUNT IN DEVICE IMAGE FILE 0167 * 0168 ERIOP EQU ERZBC+1 ILLEGAL PTDOS OPERATION 0169 ERIBF EQU ERIOP+1 ILLEGAL BUFFER ADDRESS 0170 ERIBS EQU ERIBF+1 ILLEGAL BLOCK SIZE 0171 ERINM EQU ERIBS+1 ILLEGAL CHARACTER IN NAME 0172 ERICU EQU ERINM+1 ILLEGAL CHARACTER IN UNIT 0173 ERIUN EQU ERICU+1 ILLEGAL UNIT 0174 ERNTL EQU ERIUN+1 NAME TOO LONG 0175 ERMEM EQU ERIUN+1 USER MEMORY PROTECT VIOLATION 0176 ERSMP EQU ERMEM+1 SYSTEM MEMORY PROTECT VIOLATION 0177 ERUCN EQU ERSMP+1 UNIT CONFLICT 0178 ERIUP EQU ERUCN+1 ILLEGAL UTILITY OPERATION 0179 ERDRI EQU ERIUP+1 DRIVER ERROR 0180 ERIDA EQU ERDRI+1 ILLEGAL DRIVER ACCESS 0181 ERNCT EQU ERIDA+1 DRIVER NOT PARTICIPATING IN THIS CTRL 0182 * OPERATION 0183 * 0184 EREOF EQU 24 END OF FILE ENCOUNTERED (OR BOF) 0185 ERSEK EQU EREOF+1 SEEK ADDRESS OUT OF RANGE 0186 * 0187 ERTOP EQU ERSEK+1 TOO MANY FILES OPEN 0188 ERMOV EQU ERTOP+1 MEMORY OVERFLOW 0189 ERNID EQU ERMOV+1 NO FILE ID'S LEFT 0190 ERDFL EQU ERNID+1 DISK FULL 0191 ERDIR EQU ERDFL+1 DIRECTORY FULL 0192 * 0193 * 0194 ERFSB EQU 32 FILE STRUCTURE BAD 0195 ERFIC EQU ERFSB+1 FILE ID CONFLICT 0196 ERBSC EQU ERFIC+1 BLOCK SIZE CONFLICT 0197 ERSCC EQU ERBSC+1 SECTOR CONFLICT 0198 ERCFS EQU ERSCC+1 CAN'T FIND SECTOR 0199 ERCRC EQU ERCFS+1 CRC ERROR OR READ/WRITE ABORTS 0200 ERCFT EQU ERCRC+1 CAN'T FIND TRACK 0201 ERRBC EQU ERCFT+1 READ-BACK-CHECK FAILED 0202 ERLOK EQU ERRBC+1 DISK IS WRITE LOCKED 0203 ERXXX EQU ERLOK+1 CATESTROPHIC ERROR 0204 ERSYN EQU ERXXX+1 COMMAND SYNTAX ERROR 0205 ERNAX EQU ERSYN+1 NAME EXPECTED 0206 ERNUX EQU ERNAX+1 FILE NUMBER EXPECTED 0207 ERBCX EQU ERNUX+1 BYTE COUNT EXPECTED 0208 ERADX EQU ERBCX+1 ADDRESS EXPECTED 0209 ERVAX EQU ERADX+1 VALUE EXPECTED 0210 EROPX EQU ERVAX+1 OPTIONAL PARAMETER EXPECTED 0211 ERINA EQU EROPX+1 ILLEGAL FILE NAME 0212 ERIFI EQU ERINA+1 ILLEGAL FILE NUMBER 0213 ERIAD EQU ERIFI+1 ILLEGAL ADDRESS 0214 ERIBC EQU ERIAD+1 ILLEGAL BYTE COUNT 0215 ERIVA EQU ERIBC+1 ILLEGAL VALUE 0216 ERIOS EQU ERIVA+1 ILLEGAL OPTION SPECIFIER 0217 ERITY EQU ERIOS+1 ILLEGAL TYPE 0218 ERIAT EQU ERITY+1 ILLEGAL ATTRIBUTES 0219 * 0220 * 0221 * 9) PARAMETER SCANNER OPERATIONS 0222 * 0223 * PTDOS PARAMETER SCANNER - COMMON VALUE EQUATES 0224 * 0225 * COMMON VALUES: 0226 * VALUE +40H = MY BUFFER FROM REG HL 0227 * 0228 PSN EQU 5 READ NAME TO REG DE 0229 PSV EQU 85H CONVERT VALUE INTO REG DE 0230 PSFC EQU 6 FORCE CREATE FILE 0231 PSFCO EQU 2 FORCE CREATE AND OPEN FILE 0232 PSC EQU 4 CREATE FILE IF NONE EXIST 0233 PSCO EQU 0 CREATE IF NONE EXIST AND OPEN 0234 PSOP EQU 1 OPEN FILE 0235 PSONE EQU 0A5H READ SINGLE BYTE 0236 PSOPT EQU 8 READ ALL CHRS UNTIL , ; cr 0 0237 * 0238 * NOTE: ABOVE VALUES + 40H = USER INPUT BUFFER IN REG HL 0239 * 0240 PSCN EQU 0D5H CONVERT MY VALUE TO DE, BASE IN REG B 0241 * 0242 * 0243 * 0244 * 0245 * 10) UTILITIES 0246 UXOP EQU 0 EXPLAIN ERROR 0247 UXOP1 EQU 1 DITTO, PART 2 0248 UXOP2 EQU 2 0249 UCAT EQU 3 CATALOG ROUTINE 0250 *