DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 54708 (0xd5b4) Types: TextFile Names: »TOS.P«
└─⟦8c095a7f3⟧ Bits:30005798 CR80 Disc Pack ( Vol ILS systemdisk XAMOS TOS 10:01 hard boot #43c 19-7-87/JFJ ) └─ ⟦this⟧ »MXTOS_V0202.D!TOS.P« └─⟦c2e810e96⟧ Bits:30005799 CR80 Disc Pack ( XAMOS 841129 ILS TOS 10-01 System Disk Tilhører ILS/MSG hard boot boot entry #43c ) └─ ⟦this⟧ »MXTOS_V0202.D!TOS.P«
*** *** CR80 LARGEPASCAL Compiler (Version: 09.00 From 841105) *** Compilation Started 841108 at 10:58 *** Source File: @FILSYS-FILE*SSD*MXSYS.D*USERS.D*FP.D*TOS_0202.D*TOS.S *** Object File: @FILSYS-FILE*SSD*MXSYS.D*USERS.D*FP.D*TOS_0202.D*TOS.L *** Print File: @FILSYS-FILE*SSD*MXSYS.D*USERS.D*FP.D*TOS_0202.D*TOS.P *** Usercode : #0003 *** Options : /B /C /U /S /N /X /NF *** 0001 0.0001 %LIST 0002 0.0002 $@FILSYS-FILE*SSD*GENS.D*PREFIX 0003 1.0001 "---------------------------------------------------------------------- 0004 1.0002 0005 1.0003 PROJECT: 0006 1.0004 0007 1.0005 MODULE NAME: AMOS/XAMOS PASCAL PREFIX 0008 1.0006 MODULE ID NMB: CSS860 0009 1.0007 MODULE VERSION: 302 0010 1.0008 MODULE TYPE: PREFIX 0011 1.0009 MODULE FILES: 0012 1.0010 MERGE FILES: 0013 1.0011 0014 1.0012 SPECIFICATIONS: 0015 1.0013 AUTHOR/DATE: PHF 800522 0016 1.0014 0017 1.0015 DELIVERABLE: YES 0018 1.0016 SOURCE LANGUAGE: CR80 PASCAL 0019 1.0017 COMPILE COMPUTER: CR80 0020 1.0018 TARGET COMPUTER: CR80 0021 1.0019 OPER. SYSTEM: XAMOS/MX-AMOS 0022 1.0020 0023 1.0021 ----------------------------------------------------------------------- 0024 1.0022 0025 1.0023 CHANGE RECORD: 0026 1.0024 0027 1.0025 VERSION AUTHOR/DATE DESCRIPTION OF CHANGE 0028 1.0026 ------- ----------- --------------------- 0029 1.0027 0030 1.0028 01xx PHF/830128 UPDATED WITH 'F_USERS' 0031 1.0029 0032 1.0030 0201 HS/830505 Standard PASCAL header included. 0033 1.0031 Cosmetic changes. 0034 1.0032 0035 1.0033 0301 JAS/831027 New FMS completion codes. 0036 1.0034 MT completion codes added. 0037 1.0035 New MOUNT parameter. 0038 1.0036 0039 1.0037 0302 FP/840727 Volume use extended with partial_dualizable_vol 0040 1.0038 BITNUMBER is now UNIV in TESTBIT, SETBIT, and 0041 1.0039 CLEARBIT. 0042 1.0040 ----------------------------------------------------------------------" 0043 1.0041 0044 1.0042 CONST NL = '(:10:)'; FF = '(:12:)'; CR = '(:13:)'; EM = '(:25:)'; 0045 1.0043 CONST NULL = '(:0:)'; SP = ' '; 0046 1.0044 0047 1.0045 CONST LINELENGTH = 132; 0048 1.0046 TYPE LINE = ARRAY [1..LINELENGTH] OF CHAR; 0049 1.0047 TYPE TEXT = LINE; 0050 1.0048 0051 1.0049 TYPE PROGRESULT = (TERMINATED, OVERFLOW, POINTERERROR, 0052 1.0050 RANGEERROR, VARIANTERROR, HEAPLIMIT, 0053 1.0051 STACKLIMIT, CODELIMIT, TIMELIMIT, 0054 1.0052 CALLERROR, DATALIMIT); 0055 1.0053 0056 1.0054 TYPE BITPOSITION = 0..15; 0057 1.0055 TYPE BITFIELDLENGTH = 0..16; 0058 1.0056 TYPE BITVALUE = (LOW, HIGH); 0059 1.0057 0060 1.0058 TYPE MESSAGE_BUFFER = ARRAY [1..5] OF INTEGER; 0061 1.0059 0062 1.0060 TYPE WORD_ADDRESS = RECORD 0063 1.0061 MEMORY_SECTION: INTEGER; 0064 1.0062 WORD_DISPLACEMENT:INTEGER 0065 1.0063 END; 0066 1.0064 0067 1.0065 TYPE BYTE_ADDRESS = RECORD 0068 1.0066 BYTE_DISPLACEMENT: INTEGER; 0069 1.0067 WORD_ADDR: WORD_ADDRESS 0070 1.0068 END; 0071 1.0069 0072 1.0070 TYPE FILE = INTEGER; 0073 1.0071 TYPE COMPLETION_CODE = INTEGER; 0074 1.0072 TYPE ELEMENT = ARRAY [1..1] OF INTEGER; 0075 1.0073 TYPE PACKED_NAME = ARRAY [0..7] OF INTEGER; 0076 1.0074 TYPE PACKED_NAME3 = ARRAY [0..2] OF INTEGER; 0077 1.0075 TYPE PACKED_NAME2 = ARRAY [0..1] OF INTEGER; 0078 1.0076 0079 1.0077 TYPE PROCESS_NAME = RECORD 0080 1.0078 NAME: PACKED_NAME3; 0081 1.0079 NAME_IDENT: INTEGER 0082 1.0080 END; 0083 1.0081 0084 1.0082 TYPE FILE_SYSTEM_NAME = RECORD 0085 1.0083 PNAME: PROCESS_NAME; 0086 1.0084 GNAME: PACKED_NAME2 0087 1.0085 END; 0088 1.0086 TYPE VOLUME_NAME = PACKED_NAME; 0089 1.0087 TYPE VOLUME_USE = (SINGLE_VOL, DUAL_VOL, DUALIZABLE_VOL, 0090 1.0088 PARTIAL_DUALIZABLE_VOL); 0091 1.0089 CONST DIRECTORY = 10; CONTIGUOUS = 12; RANDOM = 14; 0092 1.0090 TYPE FILE_ORGANIZATION = DIRECTORY..RANDOM; 0093 1.0091 TYPE FILE_ATTRIBUTES = RECORD 0094 1.0092 VOLUME: VOLUME_NAME; 0095 1.0093 ORGANIZATION: FILE_ORGANIZATION; 0096 1.0094 ALLOC_SIZE: LONG_INTEGER; 0097 1.0095 AREA_SIZE: INTEGER 0098 1.0096 END; 0099 1.0097 TYPE USERID = ARRAY [0..1] OF INTEGER; 0100 1.0098 TYPE ACCESS_DESCRIPTION = RECORD 0101 1.0099 USER: USERID; 0102 1.0100 RIGHTS: ARRAY [0..1] OF INTEGER 0103 1.0101 END; 0104 1.0102 TYPE FILE_INFORMATION_TYPE = (F_ORGANIZATION, F_SIZE, F_ALLOCSIZE, 0105 1.0103 F_BODYADDR, F_AREASIZE, F_THRESHOLD, 0106 1.0104 F_LINKS, F_INBFD, F_BFDNBR, F_USERS); 0107 1.0105 TYPE DEVICE_NAME = PACKED_NAME2; 0108 1.0106 TYPE DEVICE_DESCRIPTION = RECORD 0109 1.0107 DEVICE_KIND: INTEGER; 0110 1.0108 DEVICE_ADDR: INTEGER; 0111 1.0109 UNIT: INTEGER; 0112 1.0110 SUBUNIT: INTEGER; 0113 1.0111 DEVICE: DEVICE_NAME 0114 1.0112 END; 0115 1.0113 TYPE PARTNER_DEVICE_ATTRIBUTES = RECORD 0116 1.0114 DEVICE_ADDR: INTEGER; 0117 1.0115 UNIT: INTEGER 0118 1.0116 END; 0119 1.0117 TYPE DUAL_DEVICE_DESCRIPTION = RECORD 0120 1.0118 DEVICE: DEVICE_DESCRIPTION; 0121 1.0119 PARTNER: PARTNER_DEVICE_ATTRIBUTES 0122 1.0120 END; 0123 1.0121 TYPE FILE_NAME = PACKED_NAME; 0124 1.0122 TYPE FILE_ADDRESS = RECORD 0125 1.0123 FIRST_BYTE: LONG_INTEGER; 0126 1.0124 BYTE_COUNT: LONG_INTEGER; 0127 1.0125 TRANSFERRED_BYTES: LONG_INTEGER 0128 1.0126 END; 0129 1.0127 TYPE SECTOR_ADDRESS = RECORD 0130 1.0128 FIRST_SECTOR: LONG_INTEGER; 0131 1.0129 SECTOR_COUNT: LONG_INTEGER; 0132 1.0130 TRANSFERRED_SECTORS: LONG_INTEGER 0133 1.0131 END; 0134 1.0132 TYPE MODE = (INPUT_MODE, OUTPUT_MODE); 0135 1.0133 TYPE STREAM = INTEGER; 0136 1.0134 TYPE STREAM_POSITION = LONG_INTEGER; 0137 1.0135 TYPE BYTE = 0..255; 0138 1.0136 TYPE OPERATION_REFERENCE = INTEGER; 0139 1.0137 TYPE MEMORY_PARM = INTEGER; 0140 1.0138 0141 1.0139 TYPE BUFFER_LOCATION = (LOCAL, EXTERNAL); 0142 1.0140 TYPE BLEPTR = @BLE; 0143 1.0141 TYPE BLE = RECORD 0144 1.0142 LINK: BLEPTR; 0145 1.0143 CASE XL: BUFFER_LOCATION OF 0146 1.0144 LOCAL: (BUFADDR, BUFSIZE_IN_BYTES: INTEGER); 0147 1.0145 EXTERNAL: (MEMORY: MEMORY_PARM) 0148 1.0146 END; 0149 1.0147 0150 1.0148 TYPE EVENT_TYPE = (SIGNAL, MESSAGE, ANSWER, SYSTEM_MESSAGE, 0151 1.0149 SYSTEM_ANSWER, PATH_MESSAGE, PATH_ANSWER, 0152 1.0150 INTERRUPT, TIME_OUT, PARENT_SIGNAL); 0153 1.0151 0154 1.0152 TYPE EVENT_MASK = INTEGER; 0155 1.0153 0156 1.0154 TYPE DATE_TIME_GROUP = RECORD 0157 1.0155 YEAR, MONTH, DAY: INTEGER; 0158 1.0156 HOUR, MIN, SEC: INTEGER 0159 1.0157 END; 0160 1.0158 0161 1.0159 TYPE PROC_TIME = ARRAY [0..2] OF INTEGER; 0162 1.0160 0163 1.0161 TYPE PROCESS_ATTRIBUTES = RECORD 0164 1.0162 ACCESS_RIGHTS, STATE: INTEGER; 0165 1.0163 ERROR_CODE, ERROR_LOC: INTEGER; 0166 1.0164 CONSUMED_TIME, CREATION_TIME: PROC_TIME 0167 1.0165 END; 0168 1.0166 0169 1.0167 TYPE CREATION_BLOCK = RECORD 0170 1.0168 VNAME: PROCESS_NAME; 0171 1.0169 VPROG, VINIT, VMICRO, VCAPAB: INTEGER; 0172 1.0170 VCPU, VPRIO, VLEVEL, VBASE: INTEGER; 0173 1.0171 VSIZE, VBOUND, VMEMORY, VMSGS: INTEGER; 0174 1.0172 VUSER: USERID 0175 1.0173 END; 0176 1.0174 0177 1.0175 TYPE CPUPARAMETER = (VCPUNMB, VINTERRUPTMASK, VSCHEDULERESETCOUNT, 0178 1.0176 VSLICESIZE, VELAPSEDTIME, VHWPRIORITY); 0179 1.0177 0180 1.0178 TYPE CHAR_TYPE = (TSPACE, TDIGIT, TLETTER, TOTHER); 0181 1.0179 0182 1.0180 CONST PAGELENGTH = 256; 0183 1.0181 TYPE PAGE = ARRAY [1..PAGELENGTH] OF INTEGER; 0184 1.0182 0185 1.0183 TYPE ELEMENT_TYPE = (TERROR, TINTEGER, TIDENTIFIER, 0186 1.0184 TSPECIAL, TLONG_INTEGER); 0187 1.0185 0188 1.0186 TYPE ELEM_REC = RECORD 0189 1.0187 DELIM: CHAR; 0190 1.0188 BYTE_COUNT: INTEGER; 0191 1.0189 CASE ELEM_TYPE: ELEMENT_TYPE OF 0192 1.0190 TINTEGER: (INT: INTEGER); 0193 1.0191 TLONG_INTEGER: (LINT: LONG_INTEGER); 0194 1.0192 TIDENTIFIER: (NAME: PACKED_NAME); 0195 1.0193 TSPECIAL: (SPEC_CHAR: CHAR) 0196 1.0194 END; 0197 1.0195 0198 1.0196 TYPE POINTER = @INTEGER; 0199 1.0197 TYPE PARAMTYPE = RECORD 0200 1.0198 FSN: FILE_SYSTEM_NAME; "CURRENT FILE SYSTEM NAME" 0201 1.0199 VOL: VOLUME_NAME; "CURRENT VOLUME NAME" 0202 1.0200 PFILE: FILE; "CURRENT PARAMETER FILE" 0203 1.0201 DFILE: FILE; "CURRENT DIRECTORY FILE" 0204 1.0202 IFILE: FILE; "CURRENT INPUT FILE" 0205 1.0203 OFILE: FILE; "CURRENT OUTPUT FILE" 0206 1.0204 PARENT: PROCESS_NAME; "PARENT OF PROCESS" 0207 1.0205 PTR: POINTER 0208 1.0206 END; 0209 1.0207 0210 1.0208 CONST 0211 1.0209 IO_OK = 0; EOF = #201; 0212 1.0210 NO_FDS_AVAILABLE = #202; ILLEGAL_FD = #203; 0213 1.0211 NO_IOCBS_AVAILABLE = #204; ILLEGAL_IOCB = #205; 0214 1.0212 NO_STREAMS_AVAILABLE = #206; ILLEGAL_STREAM = #207; 0215 1.0213 NO_XFELEMS_AVAILABLE = #208; ILLEGAL_ADDRESS = #209; 0216 1.0214 ILLEGAL_BLE = #20A; FILE_NOT_OPEN = #20B; 0217 1.0215 DIFFERENT_FILE_SYSTEMS = #20C; UNKNOWN_FILE_SYSTEM = #20D; 0218 1.0216 ILLEGAL_COMMAND = #20E; IO_SYSTEM_ERROR = #20F; 0219 1.0217 NOT_ENOUGH_SPACE = #210; ILLEGAL_MODE = #211; 0220 1.0218 ILLEGAL_MEMORY_PARM = #212; NO_BUFFER_SPACE = #213; 0221 1.0219 NOT_CONNECTED = #214; NOT_OUTPUT_MODE = #215; 0222 1.0220 NOT_INPUT_MODE = #216; ELEMENT_OVERFLOW = #217; 0223 1.0221 SYNTAX_ERROR = #218; 0224 1.0222 0225 1.0223 NONEXISTING_DEVICE = #400; ILLEGAL_DEVICE_KIND = #401; 0226 1.0224 ILLEGAL_CR80_ADDR = #402; DEVICE_NAME_IN_USE = #403; 0227 1.0225 ILLEGAL_UNIT = #404; ILLEGAL_SUBUNIT = #405; 0228 1.0226 WRONG_VOLUME_NAME = #406; NONEXISTING_VOLUME = #407; 0229 1.0227 VOLUME_MOUNTED = #408; DIFFERENT_VOLUMES = #409; 0230 1.0228 ILLEGAL_FILE = #40A; ILLEGAL_ORGANIZATION = #40B; 0231 1.0229 ILLEGAL_ALLOC_SIZE = #40C; ILLEGAL_AREA_SIZE = #40D; 0232 1.0230 ILLEGAL_WRITE = #40E; FILE_CLOSED = #40F; 0233 1.0231 FILES_OPEN = #410; NO_FILE_TO_ACCEPT = #411; 0234 1.0232 NONEXISTING_USER = #412; USER_ALREADY_ACTIVE = #413; 0235 1.0233 NO_CONNECTION = #414; ILLEGAL_USERGROUP = #415; 0236 1.0234 ILLEGAL_CALLER = #416; OTHER_USERS = #417; 0237 1.0235 NOT_CONTIGUOUS_DUALIZE = #418; OUT_OF_RANGE = #419; 0238 1.0236 FILE_FULL = #41B; 0239 1.0237 ACL_FULL = #41C; PROTECTION_FAILURE = #41D; 0240 1.0238 0241 1.0239 ILLEGAL_DIRECTORY = #420; NAME_EXISTS = #421; 0242 1.0240 NONEXISTING_NAME = #422; NOT_ALLOCATABLE = #423; 0243 1.0241 KIND_UNIT_CONFLICT = #425; 0244 1.0242 KIND_CTRLR_CONFLICT = #426; 0245 1.0243 ILLEGAL_FILE_INF_TYPE = #428; NOT_A_DUAL_DISK = #429; 0246 1.0244 ILLEGAL_DISCARD = #42A; 0247 1.0245 UNKNOWN_COMMAND = #42C; BAD_SECTOR_DURING_FORMAT = #42D; 0248 1.0246 BAD_SECTOR_TABLE_FULL = #42E; UNIT_IS_IN_USE = #42F; 0249 1.0247 VOLUME_NAME_IS_IN_USE = #430; DEVICE_NOT_RESERVED = #431; 0250 1.0248 DEVICE_ALREADY_RESERVED = #432; DEVICE_NOT_SINGLE = #433; 0251 1.0249 DEVICE_NOT_DUAL = #434; ILLEGAL_DCB_INDEX = #435; 0252 1.0250 UNKNOWN_VOLUME_USE = #436; ILLEGAL_FINISH_DUALIZE = #437; 0253 1.0251 ILLEGAL_START_DUALIZE = #43B; 0254 1.0252 NOT_DUALIZING = #43C; DUALIZING_WITHOUT_MOUNT = #43D; 0255 1.0253 BAD_SECTOR_READ = #441; 0256 1.0254 CORRUPT_HOMEBLOCK = #442; BAD_SECTOR_IN_ASF = #443; 0257 1.0255 BST_FULL = #444; 0258 1.0256 BAD_SECTOR_REPLACED = #448; LAST_BAD_SECTOR_REPLACED = #449; 0259 1.0257 DIFFERENT_VOLUME_NAMES = #44A; DIFFERENT_ACCESS_DATES = #44B; 0260 1.0258 NOT_ASSIGNED_DUAL = #44C; NOT_DISMOUNTED_DUAL = #44D; 0261 1.0259 NOT_MOUNTED_DUAL = #44E; SECTOR_COUNT_CONFLICT = #44F; 0262 1.0260 0263 1.0261 DRIVE_NOT_READY = #481; 0264 1.0262 WRITE_PROTECTED_DEVICE = #482; UNEXPEC_DISK_I_F_STATUS = #483; 0265 1.0263 DATA_OR_SYNC_ERROR = #484; ADDRESS_OR_SYNC_ERROR = #485; 0266 1.0264 BAD_SECTOR = #486; WRITE_PROTECTED_SECTOR = #487; 0267 1.0265 ILLEGAL_SECTOR = #488; TIMING_ERROR = #489; 0268 1.0266 SUBBUS_OVERRUN = #48A; PARITY_ERROR = #48B; 0269 1.0267 SELFTEST_RUNNING = #48C; CONTROLLER_RESET = #48D; 0270 1.0268 SELFTEST_FAILED = #48E; CONTROLLER_FAILURE = #48F; 0271 1.0269 0272 1.0270 TAPE_DEVICE_FAILURE = #B00; TAPE_SOFT_FAILURE = #B01; 0273 1.0271 TAPE_NOT_INITIATED = #B03; TAPE_WRITE_PROTECTED = #B04; 0274 1.0272 BEGINNING_OF_TAPE_SENSED = #B05; END_OF_TAPE_SENSED = #B06; 0275 1.0273 LOGICAL_EOT_SENSED = #B07; FILE_MARK_SENSED = #B08; 0276 1.0274 INVALID_RECORD_LENGTH = #B09; SHORT_DATA_RECORD = #B0A; 0277 1.0275 LONG_DATA_RECORD = #B0B; TAPE_MUST_BE_LABELED = #B0C; 0278 1.0276 FILE_MUST_BE_OPEN_FOR_INPUT = #B0D; 0279 1.0277 FILE_NOT_BREAKABLE = #B0E; ILLEGAL_RESUME_TAPE = #B0F; 0280 1.0278 END_OF_VOLUME = #B10; 0281 1.0279 0282 1.0280 CONST NAMELISTMAXINDEX = 10; 0283 1.0281 TYPE NAMELISTTYPE = ARRAY [1..NAMELISTMAXINDEX] OF PACKED_NAME; 0284 1.0282 «ff» 0285 1.0283 FUNCTION IAND(MASK1, MASK2: UNIV INTEGER): INTEGER; 0286 1.0284 FUNCTION IOR(MASK1, MASK2: UNIV INTEGER): INTEGER; 0287 1.0285 FUNCTION XOR(MASK1, MASK2: UNIV INTEGER): INTEGER; 0288 1.0286 FUNCTION INV(MASK: UNIV INTEGER): INTEGER; 0289 1.0287 0290 1.0288 FUNCTION LEFTSHIFT(BITS: UNIV INTEGER; SHIFTS: INTEGER): INTEGER; 0291 1.0289 FUNCTION RIGHTSHIFT(BITS: UNIV INTEGER; SHIFTS: INTEGER): INTEGER; 0292 1.0290 0293 1.0291 FUNCTION ADD(A, B: INTEGER): INTEGER; 0294 1.0292 FUNCTION SUBTRACT(A, B: INTEGER): INTEGER; 0295 1.0293 0296 1.0294 FUNCTION GETBITS(BITS: UNIV INTEGER; LEFTMOST: BITPOSITION; 0297 1.0295 FIELDLENGTH: BITFIELDLENGTH): INTEGER; 0298 1.0296 PROCEDURE PUTBITS(FROM: UNIV INTEGER; VAR TO_: UNIV INTEGER; 0299 1.0297 LEFTTO: BITPOSITION; FIELDLENGTH: BITFIELDLENGTH); 0300 1.0298 FUNCTION TESTBIT(BITS: UNIV INTEGER; BITNUMBER: UNIV BITPOSITION): BOOLEAN; 0301 1.0299 PROCEDURE SETBIT(VAR BITS: UNIV INTEGER; BITNUMBER: UNIV BITPOSITION); 0302 1.0300 PROCEDURE CLEARBIT(VAR BITS: UNIV INTEGER; BITNUMBER: UNIV BITPOSITION); 0303 1.0301 0304 1.0302 PROCEDURE SENSE_IO(DEVICE: INTEGER; VAR STATUS: UNIV INTEGER); 0305 1.0303 PROCEDURE READ_IO(DEVICE: INTEGER; VAR DATA: UNIV INTEGER); 0306 1.0304 PROCEDURE CONTROL_IO(DEVICE: INTEGER; STATUS: UNIV INTEGER); 0307 1.0305 PROCEDURE WRITE_IO(DEVICE: INTEGER; DATA: UNIV INTEGER); 0308 1.0306 0309 1.0307 PROCEDURE RESERVE_INTERRUPT(DEVPR: INTEGER; VAR INTRPT: INTEGER); 0310 1.0308 PROCEDURE RELEASE_INTERRUPT(INTRPT: INTEGER); 0311 1.0309 PROCEDURE CLEAR_INTERRUPT(INTRPT: INTEGER); 0312 1.0310 PROCEDURE WAIT_INTERRUPT(DELAY, INTRPT: INTEGER; VAR TIMED_OUT: BOOLEAN); 0313 1.0311 PROCEDURE SET_INTERRUPT(INTRPT: INTEGER); 0314 1.0312 PROCEDURE SET_CYCLE(CYCLE: INTEGER); 0315 1.0313 0316 1.0314 PROCEDURE SEND_MESSAGE(VAR RECEIVER: PROCESS_NAME; 0317 1.0315 MSG: UNIV MESSAGE_BUFFER; 0318 1.0316 VAR EVENT: INTEGER); 0319 1.0317 PROCEDURE SEND_SYSTEM_MESSAGE(VAR RECEIVER: PROCESS_NAME; 0320 1.0318 MSG: UNIV MESSAGE_BUFFER; 0321 1.0319 VAR EVENT: INTEGER); 0322 1.0320 PROCEDURE SEND_ANSWER(ANS: UNIV MESSAGE_BUFFER; EVENT: INTEGER); 0323 1.0321 PROCEDURE SEND_SYSTEM_ANSWER(ANS: UNIV MESSAGE_BUFFER; EVENT: INTEGER); 0324 1.0322 PROCEDURE SEND_SIGNAL(VAR RECEIVER: PROCESS_NAME); 0325 1.0323 PROCEDURE IDENTIFY_SENDER(EVENT: INTEGER; VAR PROC: INTEGER; VAR OK: BOOLEAN); 0326 1.0324 0327 1.0325 PROCEDURE GET_PROC_NAME(VAR PROC_NAME: PROCESS_NAME); 0328 1.0326 PROCEDURE GET_PROC_IDENT(VAR PROC_NAME: PROCESS_NAME; VAR FOUND: BOOLEAN); 0329 1.0327 0330 1.0328 PROCEDURE WAIT_MESSAGE(DELAY: INTEGER; VAR MSG: UNIV MESSAGE_BUFFER; 0331 1.0329 VAR EVENT: INTEGER; VAR EVTTYPE: EVENT_TYPE); 0332 1.0330 PROCEDURE WAIT_SYSTEM_MESSAGE(DELAY: INTEGER; 0333 1.0331 VAR MSG: UNIV MESSAGE_BUFFER; 0334 1.0332 VAR EVENT: INTEGER; 0335 1.0333 VAR EVTTYPE: EVENT_TYPE); 0336 1.0334 PROCEDURE WAIT_ANSWER(DELAY: INTEGER; EVENT: INTEGER; 0337 1.0335 VAR ANS: UNIV MESSAGE_BUFFER; 0338 1.0336 VAR EVTTYPE: EVENT_TYPE); 0339 1.0337 PROCEDURE WAIT_SYSTEM_ANSWER(DELAY: INTEGER; EVENT: INTEGER; 0340 1.0338 VAR ANS: UNIV MESSAGE_BUFFER; 0341 1.0339 VAR EVTTYPE: EVENT_TYPE); 0342 1.0340 PROCEDURE WAIT_EVENT(DELAY: INTEGER; EVTMSK: EVENT_MASK; 0343 1.0341 VAR MSG: UNIV MESSAGE_BUFFER; 0344 1.0342 VAR EVENT: INTEGER; 0345 1.0343 VAR EVTTYPE: EVENT_TYPE); 0346 1.0344 PROCEDURE SAVE_EVENT(EVENT: INTEGER); 0347 1.0345 PROCEDURE RESTORE_EVENTS(EVTTYPE: EVENT_TYPE); 0348 1.0346 0349 1.0347 PROCEDURE TERMINATE(CC: COMPLETION_CODE); 0350 1.0348 0351 1.0349 PROCEDURE READ_TIME(VAR TIME: DATE_TIME_GROUP); 0352 1.0350 0353 1.0351 PROCEDURE START_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); 0354 1.0352 PROCEDURE STOP_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); 0355 1.0353 PROCEDURE PROCESS_STATUS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN; 0356 1.0354 VAR PROC_ATTR: PROCESS_ATTRIBUTES); 0357 1.0355 PROCEDURE REMOVE_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); 0358 1.0356 PROCEDURE GET_NEXT_PROCESS(VAR PROC: INTEGER; VAR NONE: BOOLEAN); 0359 1.0357 PROCEDURE ADOPT_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); 0360 1.0358 PROCEDURE CREATE_PROCESS(VAR CB: CREATION_BLOCK; VAR RESULT: INTEGER); 0361 1.0359 PROCEDURE GET_CPU_PARAMETER(CPU: INTEGER; PAR: CPUPARAMETER; 0362 1.0360 PRIORITY: INTEGER; VAR VAL: INTEGER; 0363 1.0361 VAR OK: BOOLEAN); 0364 1.0362 PROCEDURE SET_CPU_PARAMETER(CPU: INTEGER; PAR: CPUPARAMETER; 0365 1.0363 PRIORITY: INTEGER; VAL: INTEGER; 0366 1.0364 VAR OK: BOOLEAN); 0367 1.0365 PROCEDURE LOOKUP_CPU(VAR CPU_NAME: PROCESS_NAME; VAR FOUND: BOOLEAN); 0368 1.0366 0369 1.0367 PROCEDURE GET_BUFFER(WORD_CLAIM: INTEGER; 0370 1.0368 VAR MEMORY: MEMORY_PARM; 0371 1.0369 VAR ADDR: WORD_ADDRESS; 0372 1.0370 VAR WORDS_ALLOCATED: INTEGER; 0373 1.0371 VAR OK: BOOLEAN); 0374 1.0372 PROCEDURE GET_BUFFER_ADDR(MEMORY: MEMORY_PARM; 0375 1.0373 VAR ADDR: WORD_ADDRESS; 0376 1.0374 VAR SIZE_IN_WORDS: INTEGER; 0377 1.0375 VAR OK: BOOLEAN); 0378 1.0376 PROCEDURE RELEASE_BUFFER(MEMORY: MEMORY_PARM; VAR OK: BOOLEAN); 0379 1.0377 0380 1.0378 PROCEDURE CREATE(FSN: FILE_SYSTEM_NAME; 0381 1.0379 ATTRIBUTES: FILE_ATTRIBUTES; 0382 1.0380 VAR F: FILE; 0383 1.0381 VAR CC: COMPLETION_CODE); 0384 1.0382 PROCEDURE DISMANTLE(F: FILE; VAR CC: COMPLETION_CODE); 0385 1.0383 PROCEDURE PROTECT(F: FILE; 0386 1.0384 ACCESS: ACCESS_DESCRIPTION; 0387 1.0385 VAR CC: COMPLETION_CODE); 0388 1.0386 PROCEDURE RESET(F: FILE; VAR CC: COMPLETION_CODE); 0389 1.0387 PROCEDURE OFFER(F: FILE; USER: USERID; VAR CC: COMPLETION_CODE); 0390 1.0388 PROCEDURE ACCEPT(FSN: FILE_SYSTEM_NAME; 0391 1.0389 VAR F: FILE; 0392 1.0390 VAR CC: COMPLETION_CODE); 0393 1.0391 PROCEDURE GET_FILE_INFORMATION(F: FILE; INF_TYPE: FILE_INFORMATION_TYPE; 0394 1.0392 VAR INF: UNIV LONG_INTEGER; 0395 1.0393 VAR CC: COMPLETION_CODE); 0396 1.0394 PROCEDURE ASSIGN(FSN: FILE_SYSTEM_NAME; 0397 1.0395 DESCRIPTION: DEVICE_DESCRIPTION; 0398 1.0396 VAR CC: COMPLETION_CODE); 0399 1.0397 PROCEDURE DEASSIGN(FSN: FILE_SYSTEM_NAME; 0400 1.0398 DEVICE: DEVICE_NAME; 0401 1.0399 VAR CC: COMPLETION_CODE); 0402 1.0400 PROCEDURE MOUNT(FSN: FILE_SYSTEM_NAME; 0403 1.0401 DEVICE: DEVICE_NAME; 0404 1.0402 VOLUME: VOLUME_NAME; 0405 1.0403 VOLUSE: VOLUME_USE; 0406 1.0404 VAR CC: COMPLETION_CODE); 0407 1.0405 PROCEDURE DISMOUNT(FSN: FILE_SYSTEM_NAME; 0408 1.0406 VOLUME: VOLUME_NAME; 0409 1.0407 VAR CC: COMPLETION_CODE); 0410 1.0408 PROCEDURE FORMAT(FSN: FILE_SYSTEM_NAME; 0411 1.0409 DEVICE: DEVICE_NAME; 0412 1.0410 VAR SECTORADDR: SECTOR_ADDRESS; 0413 1.0411 BLE_POINTER: BLEPTR; 0414 1.0412 VAR CC: COMPLETION_CODE); 0415 1.0413 PROCEDURE GET_ROOT(FSN: FILE_SYSTEM_NAME; 0416 1.0414 VOLUME: VOLUME_NAME; 0417 1.0415 VAR ROOT_DIRECTORY: FILE; 0418 1.0416 VAR CC: COMPLETION_CODE); 0419 1.0417 PROCEDURE USER_ON(FSN: FILE_SYSTEM_NAME; 0420 1.0418 USER: USERID; 0421 1.0419 VAR CC: COMPLETION_CODE); 0422 1.0420 PROCEDURE USER_OFF(FSN: FILE_SYSTEM_NAME; 0423 1.0421 USER: USERID; 0424 1.0422 VAR CC: COMPLETION_CODE); 0425 1.0423 PROCEDURE ENTER(DIRECTORY: FILE; 0426 1.0424 SUBJECT: FILE; 0427 1.0425 NAME: FILE_NAME; 0428 1.0426 VAR CC: COMPLETION_CODE); 0429 1.0427 PROCEDURE LOOKUP(DIRECTORY: FILE; 0430 1.0428 NAME: FILE_NAME; 0431 1.0429 VAR F: FILE; 0432 1.0430 VAR CC: COMPLETION_CODE); 0433 1.0431 PROCEDURE DESCENT(VAR F: FILE; 0434 1.0432 NAME: FILE_NAME; 0435 1.0433 VAR CC: COMPLETION_CODE); 0436 1.0434 PROCEDURE FIND_FILE(FROM_ADAM: BOOLEAN; 0437 1.0435 FSN: FILE_SYSTEM_NAME; 0438 1.0436 VOLUME: VOLUME_NAME; 0439 1.0437 NAMELIST: NAMELISTTYPE; 0440 1.0438 NAME_NO: INTEGER; 0441 1.0439 DIRECTORY: FILE; 0442 1.0440 VAR F: FILE; 0443 1.0441 VAR CC: COMPLETION_CODE); 0444 1.0442 PROCEDURE RENAME(DIRECTORY: FILE; 0445 1.0443 OLDNAME: FILE_NAME; 0446 1.0444 NEWNAME: FILE_NAME; 0447 1.0445 VAR CC: COMPLETION_CODE); 0448 1.0446 PROCEDURE REMOVE(DIRECTORY: FILE; 0449 1.0447 NAME: FILE_NAME; 0450 1.0448 VAR CC: COMPLETION_CODE); 0451 1.0449 PROCEDURE READ_SECTORS(FSN: FILE_SYSTEM_NAME; 0452 1.0450 DEVICE: DEVICE_NAME; 0453 1.0451 VAR SECTORADDR: SECTOR_ADDRESS; 0454 1.0452 BLE_POINTER: BLEPTR; 0455 1.0453 VAR CC: COMPLETION_CODE); 0456 1.0454 PROCEDURE WRITE_SECTORS(FSN: FILE_SYSTEM_NAME; 0457 1.0455 DEVICE: DEVICE_NAME; 0458 1.0456 VAR SECTORADDR: SECTOR_ADDRESS; 0459 1.0457 BLE_POINTER: BLEPTR; 0460 1.0458 VAR CC: COMPLETION_CODE); 0461 1.0459 PROCEDURE WRITE_AND_PROTECT(FSN: FILE_SYSTEM_NAME; 0462 1.0460 DEVICE: DEVICE_NAME; 0463 1.0461 VAR SECTORADDR: SECTOR_ADDRESS; 0464 1.0462 BLE_POINTER: BLEPTR; 0465 1.0463 VAR CC: COMPLETION_CODE); 0466 1.0464 PROCEDURE WRITE_AND_MARK(FSN: FILE_SYSTEM_NAME; 0467 1.0465 DEVICE: DEVICE_NAME; 0468 1.0466 VAR SECTORADDR: SECTOR_ADDRESS; 0469 1.0467 BLE_POINTER: BLEPTR; 0470 1.0468 VAR CC: COMPLETION_CODE); 0471 1.0469 PROCEDURE READ_BYTES(F: FILE; 0472 1.0470 VAR FILE_ADDR: FILE_ADDRESS; 0473 1.0471 BLE_POINTER: BLEPTR; 0474 1.0472 VAR CC: COMPLETION_CODE); 0475 1.0473 PROCEDURE MODIFY_BYTES(F: FILE; 0476 1.0474 VAR FILE_ADDR: FILE_ADDRESS; 0477 1.0475 BLE_POINTER: BLEPTR; 0478 1.0476 VAR CC: COMPLETION_CODE); 0479 1.0477 PROCEDURE APPEND_BYTES(F: FILE; 0480 1.0478 VAR FILE_ADDR: FILE_ADDRESS; 0481 1.0479 BLE_POINTER: BLEPTR; 0482 1.0480 VAR CC: COMPLETION_CODE); 0483 1.0481 PROCEDURE INIT_READ_BYTES(F: FILE; 0484 1.0482 VAR FILE_ADDR: FILE_ADDRESS; 0485 1.0483 BLE_POINTER: BLEPTR; 0486 1.0484 VAR OPREF: OPERATION_REFERENCE; 0487 1.0485 VAR CC: COMPLETION_CODE); 0488 1.0486 PROCEDURE INIT_MODIFY_BYTES(F: FILE; 0489 1.0487 VAR FILE_ADDR: FILE_ADDRESS; 0490 1.0488 BLE_POINTER: BLEPTR; 0491 1.0489 VAR OPREF: OPERATION_REFERENCE; 0492 1.0490 VAR CC: COMPLETION_CODE); 0493 1.0491 PROCEDURE INIT_APPEND_BYTES(F: FILE; 0494 1.0492 VAR FILE_ADDR: FILE_ADDRESS; 0495 1.0493 BLE_POINTER: BLEPTR; 0496 1.0494 VAR OPREF: OPERATION_REFERENCE; 0497 1.0495 VAR CC: COMPLETION_CODE); 0498 1.0496 PROCEDURE WAIT_OPERATION(OPREF: OPERATION_REFERENCE; 0499 1.0497 VAR CC: COMPLETION_CODE); 0500 1.0498 PROCEDURE TEST_OPERATION(OPREF: OPERATION_REFERENCE; 0501 1.0499 VAR FINISHED: BOOLEAN; 0502 1.0500 VAR CC: COMPLETION_CODE); 0503 1.0501 PROCEDURE CANCEL_OPERATION(OPREF: OPERATION_REFERENCE; 0504 1.0502 VAR CC: COMPLETION_CODE); 0505 1.0503 0506 1.0504 PROCEDURE CONNECT(F: FILE; 0507 1.0505 M: MODE; 0508 1.0506 VAR S: STREAM; 0509 1.0507 VAR CC: COMPLETION_CODE); 0510 1.0508 PROCEDURE DISCONNECT(S: STREAM; 0511 1.0509 VAR F: FILE; 0512 1.0510 VAR CC: COMPLETION_CODE); 0513 1.0511 PROCEDURE GET_POSITION(S: STREAM; 0514 1.0512 VAR POSITION: STREAM_POSITION; 0515 1.0513 VAR CC: COMPLETION_CODE); 0516 1.0514 PROCEDURE SET_POSITION(S: STREAM; 0517 1.0515 POSITION: STREAM_POSITION; 0518 1.0516 VAR CC: COMPLETION_CODE); 0519 1.0517 PROCEDURE INBYTE(S: STREAM; VAR B: UNIV BYTE; VAR CC: COMPLETION_CODE); 0520 1.0518 PROCEDURE INWORD(S: STREAM; 0521 1.0519 VAR WORD: UNIV INTEGER; 0522 1.0520 VAR CC: COMPLETION_CODE); 0523 1.0521 PROCEDURE BACKSPACE(S: STREAM; VAR CC: COMPLETION_CODE); 0524 1.0522 PROCEDURE INREC(S: STREAM; 0525 1.0523 VAR FIRST_ELEMENT: UNIV ELEMENT; 0526 1.0524 VAR RECORD_LENGTH_IN_BYTES: INTEGER; 0527 1.0525 VAR CC: COMPLETION_CODE); 0528 1.0526 PROCEDURE OUTBYTE(S: STREAM; B: UNIV BYTE; VAR CC: COMPLETION_CODE); 0529 1.0527 PROCEDURE OUTWORD(S: STREAM; 0530 1.0528 WORD: UNIV INTEGER; 0531 1.0529 VAR CC: COMPLETION_CODE); 0532 1.0530 PROCEDURE OUTREC(S: STREAM; 0533 1.0531 FIRST_ELEMENT: UNIV ELEMENT; 0534 1.0532 VAR RECORD_LENGTH_IN_BYTES: INTEGER; 0535 1.0533 VAR CC: COMPLETION_CODE); 0536 1.0534 PROCEDURE FLUSH(S: STREAM; VAR CC: COMPLETION_CODE); 0537 1.0535 PROCEDURE INTYPE(S: STREAM; 0538 1.0536 VAR CH: CHAR; 0539 1.0537 VAR CH_TYPE: CHAR_TYPE; 0540 1.0538 VAR CC: COMPLETION_CODE); 0541 1.0539 PROCEDURE INELEMENT(S: STREAM; 0542 1.0540 VAR ELEM: ELEM_REC; 0543 1.0541 VAR CC: COMPLETION_CODE); 0544 1.0542 PROCEDURE ININTEGER(S: STREAM; 0545 1.0543 VAR INT: INTEGER; 0546 1.0544 VAR CC: COMPLETION_CODE); 0547 1.0545 PROCEDURE INLONG_INTEGER(S: STREAM; 0548 1.0546 VAR LINT: LONG_INTEGER; 0549 1.0547 VAR CC: COMPLETION_CODE); 0550 1.0548 PROCEDURE INNAME(S: STREAM; 0551 1.0549 VAR N: PACKED_NAME; 0552 1.0550 VAR CC: COMPLETION_CODE); 0553 1.0551 PROCEDURE INFILEID(S: STREAM; 0554 1.0552 VAR FROM_ADAM: BOOLEAN; 0555 1.0553 VAR FSN: FILE_SYSTEM_NAME; 0556 1.0554 VAR VOLUME: VOLUME_NAME; 0557 1.0555 VAR NAMELIST: NAMELISTTYPE; 0558 1.0556 VAR NAME_NO: INTEGER; 0559 1.0557 VAR CC: COMPLETION_CODE); 0560 1.0558 PROCEDURE OUTTEXT(S: STREAM; 0561 1.0559 UNPACKED_TEXT: TEXT; 0562 1.0560 VAR CC: COMPLETION_CODE); 0563 1.0561 PROCEDURE OUTSTRING(S: STREAM; 0564 1.0562 UNPACKED_TEXT: TEXT; 0565 1.0563 NO_OF_CHARS: INTEGER; 0566 1.0564 VAR CC: COMPLETION_CODE); 0567 1.0565 PROCEDURE OUTHEXA(S: STREAM; 0568 1.0566 INT: UNIV INTEGER; 0569 1.0567 PAD_CHAR: CHAR; 0570 1.0568 VAR CC: COMPLETION_CODE); 0571 1.0569 PROCEDURE OUTINTEGER(S: STREAM; 0572 1.0570 INT: UNIV INTEGER; 0573 1.0571 FORMAT: UNIV INTEGER; 0574 1.0572 VAR CC: COMPLETION_CODE); 0575 1.0573 PROCEDURE OUTLONG_INTEGER(S: STREAM; 0576 1.0574 LINT: UNIV LONG_INTEGER; 0577 1.0575 FORMAT: UNIV INTEGER; 0578 1.0576 VAR CC: COMPLETION_CODE); 0579 1.0577 PROCEDURE OUTNL(S: STREAM; VAR CC: COMPLETION_CODE); 0580 1.0578 0581 1.0579 PROCEDURE MARK(VAR TOP: INTEGER); 0582 1.0580 PROCEDURE RELEASE(TOP: INTEGER); 0583 1.0581 FUNCTION FREE_SPACE: INTEGER; 0584 1.0582 FUNCTION CONTENTS(BASE_REL_ADDR: LONG_INTEGER): INTEGER; 0585 1.0583 PROCEDURE EXIT; 0586 1.0584 PROCEDURE CURRENT_LEVEL(VAR LEVEL: INTEGER); 0587 1.0585 PROCEDURE LONG_EXIT(LEVEL: INTEGER); 0588 1.0586 FUNCTION CURRENT_LINE: INTEGER; 0589 1.0587 FUNCTION REL_ADDR(FIRST_ELEMENT: UNIV ELEMENT): INTEGER; 0590 1.0588 PROCEDURE GET_ABS_ADDR(FIRST_ELEMENT: UNIV ELEMENT; 0591 1.0589 VAR WORD_ADDR: WORD_ADDRESS); 0592 1.0590 PROCEDURE COPY(SOURCE, DEST: BYTE_ADDRESS; NO_OF_BYTES: INTEGER); 0593 1.0591 PROCEDURE PACK(FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; 0594 1.0592 VAR FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; 0595 1.0593 NO_OF_BYTES: INTEGER); 0596 1.0594 PROCEDURE UNPACK(FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; 0597 1.0595 VAR FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; 0598 1.0596 NO_OF_BYTES: INTEGER); 0599 1.0597 PROCEDURE PACK_SWAPPED(FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; 0600 1.0598 VAR FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; 0601 1.0599 NO_OF_BYTES: INTEGER); 0602 1.0600 PROCEDURE UNPACK_SWAPPED(FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; 0603 1.0601 VAR FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; 0604 1.0602 NO_OF_BYTES: INTEGER); 0605 1.0603 PROCEDURE RUN(F: FILE; VAR PARAM: PARAMTYPE; 0606 1.0604 VAR LINE: INTEGER; VAR RESULT: PROGRESULT); 0607 1.0605 FUNCTION CREATE_LONG(LEAST, MOST: UNIV INTEGER): LONG_INTEGER; 0608 1.0606 PROCEDURE SPLIT_LONG(L: LONG_INTEGER; VAR LEAST, MOST: UNIV INTEGER); 0609 1.0607 PROCEDURE ASSIGNBITS(VALUE: UNIV BITVALUE; VAR P: UNIV PAGE; 0610 1.0608 FIRSTBIT, NO_OF_BITS: INTEGER); 0611 1.0609 PROCEDURE SKIPBITS(VALUE: UNIV BITVALUE; P: UNIV PAGE; 0612 1.0610 VAR FIRSTBIT: INTEGER; NO_OF_BITS: INTEGER; 0613 1.0611 VAR BITSSKIPPED: INTEGER); 0614 1.0612 PROCEDURE SET_TRACE(S: STREAM; MASK: INTEGER); 0615 1.0613 PROCEDURE PRINT_TRACE(ON: BOOLEAN); 0616 1.0614 0617 1.0615 PROGRAM MAIN(VAR PARAM: PARAMTYPE); 0618 1.0616 0619 0.0003 %XREF 0620 0.0004 %XREF 0621 0.0005 %XREF 0622 0.0006 $@FILSYS-FILE*SSD*MXSYS.D*USERS.D*FP.D*TOS_0202.D*S.D*HEAD 0623 2.0001 "---------------------------------------------------------------------- 0624 2.0002 0625 2.0003 PROJECT: CSS 0626 2.0004 0627 2.0005 MODULE NAME: MX-TOS 0628 2.0006 MODULE ID NMB: CSS/7380 0629 2.0007 MODULE VERSION: 0202 0630 2.0008 MODULE TYPE: OPERATING SYSTEM 0631 2.0009 MODULE FILES: SEE FILE TOS.S 0632 2.0010 MERGE FILES: SEE FILE TOS.S 0633 2.0011 0634 2.0012 SPECIFICATIONS: CSS/7380/USM/0116 0635 2.0013 AUTHOR/DATE: JAS/841026 0636 2.0014 0637 2.0015 DELIVERABLE: YES 0638 2.0016 SOURCE LANGUAGE: CR80 PASCAL 0639 2.0017 COMPILE COMPUTER: CR80MX 0640 2.0018 TARGET COMPUTER: CR80MX 0641 2.0019 OPER. SYSTEM: MX-AMOS 0642 2.0020 0643 2.0021 ----------------------------------------------------------------------- 0644 2.0022 0645 2.0023 CHANGE RECORD: 0646 2.0024 0647 2.0025 VERSION AUTHOR/DATE DESCRIPTION OF CHANGE 0648 2.0026 ------- ----------- --------------------- 0649 2.0027 0650 2.0028 0201 FP/840901 First MX-TOS release 0651 2.0029 0652 2.0030 0202 JAS/841026 Diverse errors corrected. 0653 2.0031 The CLOSE command is now always 0654 2.0032 accepted even if the system disk 0655 2.0033 is inaccessible. 0656 2.0034 Better handling of disk status 0657 2.0035 changes when discarding. 0658 2.0036 CC variable now only cleared when 0659 2.0037 executing DO command. 0660 2.0038 0661 2.0039 0662 2.0040 ----------------------------------------------------------------------" 0663 2.0041 0664 2.0042 0665 2.0043 0666 2.0044 %CHECK 0667 2.0045 %NOUNIVCHECK 0668 2.0046 %FASTCODE 0669 2.0047 %SUMMARY 0670 2.0048 "PAGE"«ff» 0671 2.0049 0672 0.0007 $@FILSYS-FILE*SSD*MXSYS.D*USERS.D*FP.D*TOS_0202.D*S.D*LIMITS 0673 3.0001 0674 3.0002 CONST PROCESS_LIMIT = 66; 0675 3.0003 CONST PROGRAM_LIMIT = 22; 0676 3.0004 CONST TERMINAL_LIMIT = 22; 0677 3.0005 CONST CPU_LIMIT = 3; 0678 3.0006 CONST DEVICE_LIMIT = 10; 0679 3.0007 CONST FILSYS_LIMIT = 1; 0680 3.0008 CONST LOAD_Q_LIMIT = TERMINAL_LIMIT; 0681 3.0009 0682 3.0010 0683 0.0008 $@FILSYS-FILE*SSD*MXSYS.D*USERS.D*FP.D*TOS_0202.D*S.D*TYPES 0684 4.0001 0685 4.0002 TYPE TERMINAL_INDEX = 0..TERMINAL_LIMIT; 0686 4.0003 TYPE PROCESS_INDEX = 0..PROCESS_LIMIT; 0687 4.0004 TYPE CPU_INDEX = 0..CPU_LIMIT; 0688 4.0005 TYPE PROGRAM_INDEX = 0..PROGRAM_LIMIT; 0689 4.0006 TYPE FILSYS_INDEX = 0..FILSYS_LIMIT; 0690 4.0007 TYPE DEVICE_INDEX = 0..DEVICE_LIMIT; 0691 4.0008 TYPE LOAD_Q_INDEX = 0..LOAD_Q_LIMIT; 0692 4.0009 0693 4.0010 CONST ECHO_MODE = 0; 0694 4.0011 CONST VDU_MODE = 1; 0695 4.0012 CONST WAIT_MODE = 2; 0696 4.0013 CONST ITT_MODE = 3; 0697 4.0014 CONST FF_MODE = 4; 0698 4.0015 0699 4.0016 CONST IBUFLGT = 80; 0700 4.0017 0701 4.0018 CONST TOS_CYCLE = 200; 0702 4.0019 0703 4.0020 TYPE OPEN_STATE = 0704 4.0021 ( SYSTEM_CLOSED, SYSDEV_ASSIGNED, SYSVOL_MOUNTED, USERED_ON, 0705 4.0022 WF_CREATED, MD_FOUND, SYSDIR_FOUND, TOSDIR_FOUND, 0706 4.0023 PASSES_FOUND, ERRORTEXTS_FOUND, SYSTEM_OPEN); 0707 4.0024 0708 4.0025 0709 4.0026 TYPE OS_MODE_TYPE = (SLAVE, MASTER, DUAL, DUALIZABLE, 0710 4.0027 PARTIAL_DUALIZABLE); 0711 4.0028 0712 4.0029 TYPE IBUF_TYPE = ARRAY [1..IBUFLGT] OF INTEGER; 0713 4.0030 0714 4.0031 TYPE NEWS_TYPE = RECORD 0715 4.0032 BYTE_COUNT : INTEGER; 0716 4.0033 MSG : IBUF_TYPE 0717 4.0034 END; 0718 4.0035 0719 4.0036 0720 4.0037 0721 4.0038 CONST PRHL= 26; 0722 4.0039 CONST PGHL = 11; 0723 4.0040 CONST PROGRAMMEMORY = 10; 0724 4.0041 CONST UTILITYPROGRAM = #10; 0725 4.0042 CONST BNREENTRANT = 0; 0726 4.0043 CONST BNRESIDENT = 1; 0727 4.0044 CONST BNPERMANENT = 2; 0728 4.0045 CONST BNMONITOR = 3; 0729 4.0046 CONST BNUTILITY = 4; 0730 4.0047 CONST BNPASCAL = 5; 0731 4.0048 CONST RELEASEMEMORY = 0; 0732 4.0049 CONST ALLOCATEMEMORY = 1; 0733 4.0050 CONST TRANSFERMEMORY = 4; 0734 4.0051 CONST MESSAGE_DELAY_PARENTSIGNAL = #302; 0735 4.0052 CONST PUBLIC_USER = #FFFC; 0736 4.0053 CONST UNSIGNED4 = #8420 ; 0737 4.0054 CONST UNSIGNED5 = #8520 ; 0738 4.0055 CONST SIGNED5= #0520 ; 0739 4.0056 CONST VACCIDLE= VINTERRUPTMASK; 0740 4.0057 CONST VCPUNAME0= VHWPRIORITY; 0741 4.0058 CONST VCPUNAME1= 6; 0742 4.0059 CONST VCPUNAME2= 7; 0743 4.0060 CONST NOEVENT= #FFFF; 0744 4.0061 0745 4.0062 CONST RESERVE= #F08; 0746 4.0063 0747 4.0064 TYPE EQUALITY_OPERATOR = ( EQ_OP, NE_OP, LT_OP, GT_OP); 0748 4.0065 TYPE UNPACKED_NAME = ARRAY [0..7] OF CHAR; 0749 4.0066 0750 4.0067 TYPE TEXT = ARRAY [1..300] OF CHAR; 0751 4.0068 0752 4.0069 TYPE PROCESS_STATE = (FREE, CREATED, STOPPED, RUNNING, PERMANENT); 0753 4.0070 0754 4.0071 TYPE TERMINAL_INIT_REC = RECORD 0755 4.0072 OPER, ADDR, MODE, LINEWIDTH, TIMEOUT: INTEGER 0756 4.0073 END; 0757 4.0074 0758 4.0075 TYPE DEVICE_STATE = (DEASSIGNED, ASSIGNED, ASSIGNED_DUAL, MOUNTED, RESERVED, 0759 4.0076 RESERVED_DUAL, MOUNTED_DUAL, MOUNTED_DUALIZABLE, 0760 4.0077 DUALIZING_SINGLE, MOUNTED_PARTIAL_DUALIZABLE); 0761 4.0078 0762 4.0079 TYPE DUAL_STATE = (DISK_1_DISCARDED, DISK_0_DISCARDED, FULL_DUAL); 0763 4.0080 0764 4.0081 TYPE DEVICE_TYPE = ARRAY [0..6] OF CHAR; 0765 4.0082 0766 4.0083 0767 4.0084 TYPE TERMINAL_IO_MODE = (TIDLE, TIN, TOUT); 0768 4.0085 0769 4.0086 TYPE HEADER_KIND = (ILLEGAL_KIND, PROGRAM_KIND, PROCESS_KIND); 0770 4.0087 0771 4.0088 TYPE PROCESS_HEADER = RECORD 0772 4.0089 KIND : HEADER_KIND; 0773 4.0090 SIZE : INTEGER; 0774 4.0091 PROC_NAME : PACKED_NAME3; 0775 4.0092 CPU_NAME : PACKED_NAME3; 0776 4.0093 PRIO, CAPAB, CLAIM, EXECSIZE: INTEGER; 0777 4.0094 IO_PARS : ARRAY [1..4] OF INTEGER; 0778 4.0095 MSGS : INTEGER; 0779 4.0096 CURDIR : INTEGER; 0780 4.0097 MEM_RANGE : INTEGER; 0781 4.0098 DUMMY : ARRAY [0..4] OF INTEGER; 0782 4.0099 LEVEL, BOUND : INTEGER 0783 4.0100 END; 0784 4.0101 0785 4.0102 TYPE PROGRAM_NAME = PROCESS_NAME; 0786 4.0103 0787 4.0104 TYPE LOAD_RESULT = INTEGER; 0788 4.0105 0789 4.0106 TYPE MEMORY_TYPE = (FORPROGRAM, FORDATA); 0790 4.0107 0791 4.0108 TYPE PRINTERSTATETYPE = (PRINTERIDLE, PRINTERQUEUED, PRINTERACTIVE); 0792 4.0109 0793 4.0110 TYPE PRINTFILEREC = RECORD 0794 4.0111 PRINTERSTATE : PRINTERSTATETYPE; 0795 4.0112 PRINTERNAME : PROCESS_NAME; 0796 4.0113 RESERVED : BOOLEAN; 0797 4.0114 SEMA : FILE; 0798 4.0115 RESERVER : INTEGER 0799 4.0116 END; 0800 4.0117 0801 4.0118 TYPE RQ_ANSWER = (RQ_OK, RQ_INV_REQUEST, RQ_INV_PROC, RQ_INV_PROC_STATE, 0802 4.0119 RQ_INV_FSN, RQ_FAIL_TASK, RQ_LOAD_ERROR, RQ_Q_OFFER); 0803 4.0120 0804 4.0121 TYPE SERVICE_REQUEST = (STARTTASK, STOPTASK, REMOVETASK, LOGOFF, 0805 4.0122 LOADTASK_1, LOADTASK_2, INITTASK, RESERVEPRINT, RELEASEPRINT, 0806 4.0123 STARTPRINT, QTASK, DUALSECTORS, DUALTERMINATED); 0807 4.0124 0808 4.0125 TYPE SERVICE_REQUEST_MESSAGE = RECORD 0809 4.0126 CASE RQTYPE :SERVICE_REQUEST OF 0810 4.0127 STARTTASK, STOPTASK, REMOVETASK, LOADTASK_1, INITTASK: 0811 4.0128 (PNAME : PROCESS_NAME); 0812 4.0129 LOADTASK_2: (GNAME: PACKED_NAME2); 0813 4.0130 DUALSECTORS: ( SDEV: DEVICE_NAME; 0814 4.0131 SECTORS: LONG_INTEGER); 0815 4.0132 DUALTERMINATED:( CDEV: DEVICE_NAME; 0816 4.0133 CC: COMPLETION_CODE); 0817 4.0134 STARTPRINT, QTASK, 0818 4.0135 LOGOFF, RESERVEPRINT, RELEASEPRINT: (DUMMY : INTEGER) 0819 4.0136 END; 0820 4.0137 0821 4.0138 TYPE USERENTRYTYPE = RECORD 0822 4.0139 ID : INTEGER; 0823 4.0140 PASSWORD : PACKED_NAME 0824 4.0141 END; 0825 4.0142 0826 4.0143 TYPE FILE_ID = RECORD 0827 4.0144 XCOMPLETE : BOOLEAN; 0828 4.0145 XFSN : FILE_SYSTEM_NAME; 0829 4.0146 XVOL : VOLUME_NAME; 0830 4.0147 XNAMELIST : NAMELISTTYPE; 0831 4.0148 XNAMENBR : INTEGER 0832 4.0149 END; 0833 4.0150 0834 4.0151 TYPE STATUS_TYPE = (SCOMPLETE, SDEVICES, STERMINALS, SCPUS, SPROCESSES, SPROGRAMS); 0835 4.0152 DEVICE_COMMAND = (SASSIGN, SDEASSIGN, SRESERVE, SRELEASE, 0836 4.0153 SMOUNT, SDISMOUNT, SUPDATE, SEXMOUNT, 0837 4.0154 SUNMOUNT, SDISCARD, SDUALIZE, SSTARTDUALIZE, 0838 4.0155 SFINISHDUALIZE); 0839 4.0156 0840 4.0157 TYPE PASSES = (SERVICE_PASS, COMMAND_PASS, LOGIN_PASS, RUN_PASS, TERMINALON_PASS, 0841 4.0158 STATUS_PASS, PRINT_PASS, DEVICE_PASS, LTUON_PASS, LPON_PASS); 0842 4.0159 0843 4.0160 TYPE TRIPLE = RECORD 0844 4.0161 LONG : LONG_INTEGER; 0845 4.0162 EXTEND : INTEGER 0846 4.0163 END; 0847 4.0164 0848 4.0165 const 0849 4.0166 min_priority= 7; 0850 4.0167 0851 4.0168 type 0852 4.0169 queue_control_head= 0853 4.0170 record 0854 4.0171 current_PCB : integer; 0855 4.0172 schedule_count : integer; 0856 4.0173 schedule_reset_value : integer; 0857 4.0174 slice_size : integer; 0858 4.0175 accumulated_ticks : triple 0859 4.0176 end; 0860 4.0177 0861 4.0178 type 0862 4.0179 CPUCB= 0863 4.0180 record 0864 4.0181 chain : integer; 0865 4.0182 name : packed_name3; 0866 4.0183 access : integer; 0867 4.0184 hw_no : integer; 0868 4.0185 logical_id : integer; 0869 4.0186 iv : integer; 0870 4.0187 idle_PCB : integer; 0871 4.0188 accumulated_idle_ticks : triple; 0872 4.0189 firmware_release : integer; 0873 4.0190 existing : Boolean; 0874 4.0191 running_PCB : pointer; 0875 4.0192 current_priority : integer; 0876 4.0193 queue_heads : array [ 0..min_priority ] of 0877 4.0194 queue_control_head 0878 4.0195 end; 0879 4.0196 0880 4.0197 TYPE CDC_TYPE = (MINI_MODULE, STORAGE_MODULE, CARTRIDGE_MODULE); 0881 4.0198 0882 4.0199 0883 4.0200 TYPE DRIVER_KIND = (FLOPPY_DRIVER,CDC_DRIVER, 0884 4.0201 PRINTER_DRIVER,CARD_READER_DRIVER, 0885 4.0202 MAGNETIC_TAPE_DRIVER); 0886 4.0203 0887 4.0204 TYPE DEVICE_TABLE_ENTRY = 0888 4.0205 RECORD 0889 4.0206 DEV_KIND : INTEGER; 0890 4.0207 CDC : CDC_TYPE; 0891 4.0208 DRIVER : DRIVER_KIND; 0892 4.0209 LAST_UNIT : INTEGER; "LAST UNIT ALLOWED BY DRIVER" 0893 4.0210 SECTOR_COUNT0 : LONG_INTEGER; "SECTORS ON SUBUNIT 0" 0894 4.0211 SECTORS_PR_CYLINDER0 : INTEGER; "SECTORS/CYLINDER ON SUBUNIT 0" 0895 4.0212 SECTOR_COUNT1 : LONG_INTEGER; 0896 4.0213 SECTORS_PR_CYLINDER1 : INTEGER 0897 4.0214 END "DEVICE_TABLE_ENTRY"; 0898 4.0215 0899 4.0216 TYPE TERMINAL_TYPE = (TERM, LTU, PRINTER); 0900 4.0217 TYPE TERMINL = RECORD 0901 4.0218 PROCESSREF : PROCESS_INDEX; 0902 4.0219 OPERATION : OPERATION_REFERENCE; 0903 4.0220 MODE : TERMINAL_IO_MODE; 0904 4.0221 FIL : FILE; 0905 4.0222 FILADR : FILE_ADDRESS; 0906 4.0223 USED : BOOLEAN; 0907 4.0224 TERM_TYPE : TERMINAL_TYPE; 0908 4.0225 NAME : ARRAY [0..0] OF INTEGER; 0909 4.0226 NEXT : TERMINAL_INDEX; "POINTER TO NEXT TERMINAL IF AN LTU" 0910 4.0227 TUSERS : INTEGER; 0911 4.0228 REC : IBUF_TYPE; 0912 4.0229 REF_RECDESCRIPT : BLEPTR 0913 4.0230 END; 0914 4.0231 0915 4.0232 TYPE PROC = RECORD 0916 4.0233 NAME : PROCESS_NAME; 0917 4.0234 USRID : USERID; 0918 4.0235 BASE : INTEGER; 0919 4.0236 EVT : INTEGER; "MESSAGE FROM PARENT TASK" 0920 4.0237 PARENT : PROCESS_INDEX; 0921 4.0238 PPROGRAM : PROGRAM_INDEX; 0922 4.0239 PTERMINAL : TERMINAL_INDEX; 0923 4.0240 STATE : PROCESS_STATE; 0924 4.0241 MEM : INTEGER; 0925 4.0242 PPAGE : INTEGER; 0926 4.0243 UTIL_EVT : INTEGER; 0927 4.0244 PRIOR : INTEGER; 0928 4.0245 CPU_NR : INTEGER; 0929 4.0246 CPU_NAME : PACKED_NAME3 0930 4.0247 END; 0931 4.0248 0932 4.0249 TYPE TICKS = RECORD 0933 4.0250 IDLING : TRIPLE; 0934 4.0251 WORKING : ARRAY [ 0..MIN_PRIORITY ] OF TRIPLE 0935 4.0252 END; 0936 4.0253 0937 4.0254 TYPE CPU_DESCR = RECORD 0938 4.0255 NAME : PACKED_NAME3; 0939 4.0256 EXISTS : BOOLEAN; 0940 4.0257 HW_NO : INTEGER; 0941 4.0258 FW_RELEASE : INTEGER; 0942 4.0259 LAST_TIME : TRIPLE; 0943 4.0260 CUR_TIME : TRIPLE; 0944 4.0261 LAST_TICKS : TICKS; 0945 4.0262 CUR_TICKS : TICKS 0946 4.0263 END; 0947 4.0264 0948 4.0265 TYPE PROGRAM_HEADER = RECORD 0949 4.0266 KIND : HEADER_KIND; 0950 4.0267 SIZE : INTEGER; 0951 4.0268 NAME : PROGRAM_NAME; 0952 4.0269 PTYPE, START, MICRO, 0953 4.0270 CHECKSUM, MEM_RANGE : INTEGER 0954 4.0271 END; 0955 4.0272 0956 4.0273 TYPE PROGR = RECORD 0957 4.0274 HEADER : PROGRAM_HEADER; 0958 4.0275 PROG, MEM, USERS, 0959 4.0276 PGPAGE : INTEGER 0960 4.0277 END; 0961 4.0278 0962 4.0279 TYPE TDEVICE = RECORD 0963 4.0280 FSYS : FILSYS_INDEX; 0964 4.0281 DEV : DUAL_DEVICE_DESCRIPTION; 0965 4.0282 VOLUME : VOLUME_NAME; 0966 4.0283 USER : INTEGER; 0967 4.0284 STATE : DEVICE_STATE; 0968 4.0285 DS : DUAL_STATE; 0969 4.0286 DUALIZED , 0970 4.0287 CHUNCK : LONG_INTEGER; 0971 4.0288 INTERVAL : INTEGER; 0972 4.0289 DUALIZING : BOOLEAN; 0973 4.0290 PARTNERDISK : INTEGER; 0974 4.0291 DUALIZER : PROCESS_INDEX; 0975 4.0292 UPDATE_RESET : INTEGER; 0976 4.0293 UPDATE_COUNT : INTEGER 0977 4.0294 END; 0978 4.0295 0979 4.0296 TYPE LOAD_Q_ELEM_TYPE = RECORD 0980 4.0297 EVT : INTEGER; "SAVED EVENT ID" 0981 4.0298 USED : BOOLEAN; 0982 4.0299 P : PROCESS_INDEX; 0983 4.0300 F