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: 27066 (0x69ba) Types: TextFile Names: »PREFIX«
└─⟦e0c43619c⟧ Bits:30005797 CR80 Disc pack ( Vol:FNJ1 861029/EC CR80 S/W Package II+III+IV+V+VII ) └─ ⟦this⟧ »CSP005_V0501.D!CSS860.D!PREFIX«
"---------------------------------------------------------------------- PROJECT: MODULE NAME: AMOS/XAMOS PASCAL PREFIX MODULE ID NMB: CSS860 MODULE VERSION: 302 MODULE TYPE: PREFIX MODULE FILES: MERGE FILES: SPECIFICATIONS: AUTHOR/DATE: PHF 800522 DELIVERABLE: YES SOURCE LANGUAGE: CR80 PASCAL COMPILE COMPUTER: CR80 TARGET COMPUTER: CR80 OPER. SYSTEM: XAMOS/MX-AMOS ----------------------------------------------------------------------- CHANGE RECORD: VERSION AUTHOR/DATE DESCRIPTION OF CHANGE ------- ----------- --------------------- 01xx PHF/830128 UPDATED WITH 'F_USERS' 0201 HS/830505 Standard PASCAL header included. Cosmetic changes. 0301 JAS/831027 New FMS completion codes. MT completion codes added. New MOUNT parameter. 0302 FP/840727 Volume use extended with partial_dualizable_vol BITNUMBER is now UNIV in TESTBIT, SETBIT, and CLEARBIT. ----------------------------------------------------------------------" CONST NL = '(:10:)'; FF = '(:12:)'; CR = '(:13:)'; EM = '(:25:)'; CONST NULL = '(:0:)'; SP = ' '; CONST LINELENGTH = 132; TYPE LINE = ARRAY [1..LINELENGTH] OF CHAR; TYPE TEXT = LINE; TYPE PROGRESULT = (TERMINATED, OVERFLOW, POINTERERROR, RANGEERROR, VARIANTERROR, HEAPLIMIT, STACKLIMIT, CODELIMIT, TIMELIMIT, CALLERROR, DATALIMIT); TYPE BITPOSITION = 0..15; TYPE BITFIELDLENGTH = 0..16; TYPE BITVALUE = (LOW, HIGH); TYPE MESSAGE_BUFFER = ARRAY [1..5] OF INTEGER; TYPE WORD_ADDRESS = RECORD MEMORY_SECTION: INTEGER; WORD_DISPLACEMENT:INTEGER END; TYPE BYTE_ADDRESS = RECORD BYTE_DISPLACEMENT: INTEGER; WORD_ADDR: WORD_ADDRESS END; TYPE FILE = INTEGER; TYPE COMPLETION_CODE = INTEGER; TYPE ELEMENT = ARRAY [1..1] OF INTEGER; TYPE PACKED_NAME = ARRAY [0..7] OF INTEGER; TYPE PACKED_NAME3 = ARRAY [0..2] OF INTEGER; TYPE PACKED_NAME2 = ARRAY [0..1] OF INTEGER; TYPE PROCESS_NAME = RECORD NAME: PACKED_NAME3; NAME_IDENT: INTEGER END; TYPE FILE_SYSTEM_NAME = RECORD PNAME: PROCESS_NAME; GNAME: PACKED_NAME2 END; TYPE VOLUME_NAME = PACKED_NAME; TYPE VOLUME_USE = (SINGLE_VOL, DUAL_VOL, DUALIZABLE_VOL, PARTIAL_DUALIZABLE_VOL); CONST DIRECTORY = 10; CONTIGUOUS = 12; RANDOM = 14; TYPE FILE_ORGANIZATION = DIRECTORY..RANDOM; TYPE FILE_ATTRIBUTES = RECORD VOLUME: VOLUME_NAME; ORGANIZATION: FILE_ORGANIZATION; ALLOC_SIZE: LONG_INTEGER; AREA_SIZE: INTEGER END; TYPE USERID = ARRAY [0..1] OF INTEGER; TYPE ACCESS_DESCRIPTION = RECORD USER: USERID; RIGHTS: ARRAY [0..1] OF INTEGER END; TYPE FILE_INFORMATION_TYPE = (F_ORGANIZATION, F_SIZE, F_ALLOCSIZE, F_BODYADDR, F_AREASIZE, F_THRESHOLD, F_LINKS, F_INBFD, F_BFDNBR, F_USERS); TYPE DEVICE_NAME = PACKED_NAME2; TYPE DEVICE_DESCRIPTION = RECORD DEVICE_KIND: INTEGER; DEVICE_ADDR: INTEGER; UNIT: INTEGER; SUBUNIT: INTEGER; DEVICE: DEVICE_NAME END; TYPE PARTNER_DEVICE_ATTRIBUTES = RECORD DEVICE_ADDR: INTEGER; UNIT: INTEGER END; TYPE DUAL_DEVICE_DESCRIPTION = RECORD DEVICE: DEVICE_DESCRIPTION; PARTNER: PARTNER_DEVICE_ATTRIBUTES END; TYPE FILE_NAME = PACKED_NAME; TYPE FILE_ADDRESS = RECORD FIRST_BYTE: LONG_INTEGER; BYTE_COUNT: LONG_INTEGER; TRANSFERRED_BYTES: LONG_INTEGER END; TYPE SECTOR_ADDRESS = RECORD FIRST_SECTOR: LONG_INTEGER; SECTOR_COUNT: LONG_INTEGER; TRANSFERRED_SECTORS: LONG_INTEGER END; TYPE MODE = (INPUT_MODE, OUTPUT_MODE); TYPE STREAM = INTEGER; TYPE STREAM_POSITION = LONG_INTEGER; TYPE BYTE = 0..255; TYPE OPERATION_REFERENCE = INTEGER; TYPE MEMORY_PARM = INTEGER; TYPE BUFFER_LOCATION = (LOCAL, EXTERNAL); TYPE BLEPTR = @BLE; TYPE BLE = RECORD LINK: BLEPTR; CASE XL: BUFFER_LOCATION OF LOCAL: (BUFADDR, BUFSIZE_IN_BYTES: INTEGER); EXTERNAL: (MEMORY: MEMORY_PARM) END; TYPE EVENT_TYPE = (SIGNAL, MESSAGE, ANSWER, SYSTEM_MESSAGE, SYSTEM_ANSWER, PATH_MESSAGE, PATH_ANSWER, INTERRUPT, TIME_OUT, PARENT_SIGNAL); TYPE EVENT_MASK = INTEGER; TYPE DATE_TIME_GROUP = RECORD YEAR, MONTH, DAY: INTEGER; HOUR, MIN, SEC: INTEGER END; TYPE PROC_TIME = ARRAY [0..2] OF INTEGER; TYPE PROCESS_ATTRIBUTES = RECORD ACCESS_RIGHTS, STATE: INTEGER; ERROR_CODE, ERROR_LOC: INTEGER; CONSUMED_TIME, CREATION_TIME: PROC_TIME END; TYPE CREATION_BLOCK = RECORD VNAME: PROCESS_NAME; VPROG, VINIT, VMICRO, VCAPAB: INTEGER; VCPU, VPRIO, VLEVEL, VBASE: INTEGER; VSIZE, VBOUND, VMEMORY, VMSGS: INTEGER; VUSER: USERID END; TYPE CPUPARAMETER = (VCPUNMB, VINTERRUPTMASK, VSCHEDULERESETCOUNT, VSLICESIZE, VELAPSEDTIME, VHWPRIORITY); TYPE CHAR_TYPE = (TSPACE, TDIGIT, TLETTER, TOTHER); CONST PAGELENGTH = 256; TYPE PAGE = ARRAY [1..PAGELENGTH] OF INTEGER; TYPE ELEMENT_TYPE = (TERROR, TINTEGER, TIDENTIFIER, TSPECIAL, TLONG_INTEGER); TYPE ELEM_REC = RECORD DELIM: CHAR; BYTE_COUNT: INTEGER; CASE ELEM_TYPE: ELEMENT_TYPE OF TINTEGER: (INT: INTEGER); TLONG_INTEGER: (LINT: LONG_INTEGER); TIDENTIFIER: (NAME: PACKED_NAME); TSPECIAL: (SPEC_CHAR: CHAR) END; TYPE POINTER = @INTEGER; TYPE PARAMTYPE = RECORD FSN: FILE_SYSTEM_NAME; "CURRENT FILE SYSTEM NAME" VOL: VOLUME_NAME; "CURRENT VOLUME NAME" PFILE: FILE; "CURRENT PARAMETER FILE" DFILE: FILE; "CURRENT DIRECTORY FILE" IFILE: FILE; "CURRENT INPUT FILE" OFILE: FILE; "CURRENT OUTPUT FILE" PARENT: PROCESS_NAME; "PARENT OF PROCESS" PTR: POINTER END; CONST IO_OK = 0; EOF = #201; NO_FDS_AVAILABLE = #202; ILLEGAL_FD = #203; NO_IOCBS_AVAILABLE = #204; ILLEGAL_IOCB = #205; NO_STREAMS_AVAILABLE = #206; ILLEGAL_STREAM = #207; NO_XFELEMS_AVAILABLE = #208; ILLEGAL_ADDRESS = #209; ILLEGAL_BLE = #20A; FILE_NOT_OPEN = #20B; DIFFERENT_FILE_SYSTEMS = #20C; UNKNOWN_FILE_SYSTEM = #20D; ILLEGAL_COMMAND = #20E; IO_SYSTEM_ERROR = #20F; NOT_ENOUGH_SPACE = #210; ILLEGAL_MODE = #211; ILLEGAL_MEMORY_PARM = #212; NO_BUFFER_SPACE = #213; NOT_CONNECTED = #214; NOT_OUTPUT_MODE = #215; NOT_INPUT_MODE = #216; ELEMENT_OVERFLOW = #217; SYNTAX_ERROR = #218; NONEXISTING_DEVICE = #400; ILLEGAL_DEVICE_KIND = #401; ILLEGAL_CR80_ADDR = #402; DEVICE_NAME_IN_USE = #403; ILLEGAL_UNIT = #404; ILLEGAL_SUBUNIT = #405; WRONG_VOLUME_NAME = #406; NONEXISTING_VOLUME = #407; VOLUME_MOUNTED = #408; DIFFERENT_VOLUMES = #409; ILLEGAL_FILE = #40A; ILLEGAL_ORGANIZATION = #40B; ILLEGAL_ALLOC_SIZE = #40C; ILLEGAL_AREA_SIZE = #40D; ILLEGAL_WRITE = #40E; FILE_CLOSED = #40F; FILES_OPEN = #410; NO_FILE_TO_ACCEPT = #411; NONEXISTING_USER = #412; USER_ALREADY_ACTIVE = #413; NO_CONNECTION = #414; ILLEGAL_USERGROUP = #415; ILLEGAL_CALLER = #416; OTHER_USERS = #417; NOT_CONTIGUOUS_DUALIZE = #418; OUT_OF_RANGE = #419; FILE_FULL = #41B; ACL_FULL = #41C; PROTECTION_FAILURE = #41D; ILLEGAL_DIRECTORY = #420; NAME_EXISTS = #421; NONEXISTING_NAME = #422; NOT_ALLOCATABLE = #423; KIND_UNIT_CONFLICT = #425; KIND_CTRLR_CONFLICT = #426; ILLEGAL_FILE_INF_TYPE = #428; NOT_A_DUAL_DISK = #429; ILLEGAL_DISCARD = #42A; UNKNOWN_COMMAND = #42C; BAD_SECTOR_DURING_FORMAT = #42D; BAD_SECTOR_TABLE_FULL = #42E; UNIT_IS_IN_USE = #42F; VOLUME_NAME_IS_IN_USE = #430; DEVICE_NOT_RESERVED = #431; DEVICE_ALREADY_RESERVED = #432; DEVICE_NOT_SINGLE = #433; DEVICE_NOT_DUAL = #434; ILLEGAL_DCB_INDEX = #435; UNKNOWN_VOLUME_USE = #436; ILLEGAL_FINISH_DUALIZE = #437; ILLEGAL_START_DUALIZE = #43B; NOT_DUALIZING = #43C; DUALIZING_WITHOUT_MOUNT = #43D; BAD_SECTOR_READ = #441; CORRUPT_HOMEBLOCK = #442; BAD_SECTOR_IN_ASF = #443; BST_FULL = #444; BAD_SECTOR_REPLACED = #448; LAST_BAD_SECTOR_REPLACED = #449; DIFFERENT_VOLUME_NAMES = #44A; DIFFERENT_ACCESS_DATES = #44B; NOT_ASSIGNED_DUAL = #44C; NOT_DISMOUNTED_DUAL = #44D; NOT_MOUNTED_DUAL = #44E; SECTOR_COUNT_CONFLICT = #44F; DRIVE_NOT_READY = #481; WRITE_PROTECTED_DEVICE = #482; UNEXPEC_DISK_I_F_STATUS = #483; DATA_OR_SYNC_ERROR = #484; ADDRESS_OR_SYNC_ERROR = #485; BAD_SECTOR = #486; WRITE_PROTECTED_SECTOR = #487; ILLEGAL_SECTOR = #488; TIMING_ERROR = #489; SUBBUS_OVERRUN = #48A; PARITY_ERROR = #48B; SELFTEST_RUNNING = #48C; CONTROLLER_RESET = #48D; SELFTEST_FAILED = #48E; CONTROLLER_FAILURE = #48F; TAPE_DEVICE_FAILURE = #B00; TAPE_SOFT_FAILURE = #B01; TAPE_NOT_INITIATED = #B03; TAPE_WRITE_PROTECTED = #B04; BEGINNING_OF_TAPE_SENSED = #B05; END_OF_TAPE_SENSED = #B06; LOGICAL_EOT_SENSED = #B07; FILE_MARK_SENSED = #B08; INVALID_RECORD_LENGTH = #B09; SHORT_DATA_RECORD = #B0A; LONG_DATA_RECORD = #B0B; TAPE_MUST_BE_LABELED = #B0C; FILE_MUST_BE_OPEN_FOR_INPUT = #B0D; FILE_NOT_BREAKABLE = #B0E; ILLEGAL_RESUME_TAPE = #B0F; END_OF_VOLUME = #B10; CONST NAMELISTMAXINDEX = 10; TYPE NAMELISTTYPE = ARRAY [1..NAMELISTMAXINDEX] OF PACKED_NAME; «ff» FUNCTION IAND(MASK1, MASK2: UNIV INTEGER): INTEGER; FUNCTION IOR(MASK1, MASK2: UNIV INTEGER): INTEGER; FUNCTION XOR(MASK1, MASK2: UNIV INTEGER): INTEGER; FUNCTION INV(MASK: UNIV INTEGER): INTEGER; FUNCTION LEFTSHIFT(BITS: UNIV INTEGER; SHIFTS: INTEGER): INTEGER; FUNCTION RIGHTSHIFT(BITS: UNIV INTEGER; SHIFTS: INTEGER): INTEGER; FUNCTION ADD(A, B: INTEGER): INTEGER; FUNCTION SUBTRACT(A, B: INTEGER): INTEGER; FUNCTION GETBITS(BITS: UNIV INTEGER; LEFTMOST: BITPOSITION; FIELDLENGTH: BITFIELDLENGTH): INTEGER; PROCEDURE PUTBITS(FROM: UNIV INTEGER; VAR TO_: UNIV INTEGER; LEFTTO: BITPOSITION; FIELDLENGTH: BITFIELDLENGTH); FUNCTION TESTBIT(BITS: UNIV INTEGER; BITNUMBER: UNIV BITPOSITION): BOOLEAN; PROCEDURE SETBIT(VAR BITS: UNIV INTEGER; BITNUMBER: UNIV BITPOSITION); PROCEDURE CLEARBIT(VAR BITS: UNIV INTEGER; BITNUMBER: UNIV BITPOSITION); PROCEDURE SENSE_IO(DEVICE: INTEGER; VAR STATUS: UNIV INTEGER); PROCEDURE READ_IO(DEVICE: INTEGER; VAR DATA: UNIV INTEGER); PROCEDURE CONTROL_IO(DEVICE: INTEGER; STATUS: UNIV INTEGER); PROCEDURE WRITE_IO(DEVICE: INTEGER; DATA: UNIV INTEGER); PROCEDURE RESERVE_INTERRUPT(DEVPR: INTEGER; VAR INTRPT: INTEGER); PROCEDURE RELEASE_INTERRUPT(INTRPT: INTEGER); PROCEDURE CLEAR_INTERRUPT(INTRPT: INTEGER); PROCEDURE WAIT_INTERRUPT(DELAY, INTRPT: INTEGER; VAR TIMED_OUT: BOOLEAN); PROCEDURE SET_INTERRUPT(INTRPT: INTEGER); PROCEDURE SET_CYCLE(CYCLE: INTEGER); PROCEDURE SEND_MESSAGE(VAR RECEIVER: PROCESS_NAME; MSG: UNIV MESSAGE_BUFFER; VAR EVENT: INTEGER); PROCEDURE SEND_SYSTEM_MESSAGE(VAR RECEIVER: PROCESS_NAME; MSG: UNIV MESSAGE_BUFFER; VAR EVENT: INTEGER); PROCEDURE SEND_ANSWER(ANS: UNIV MESSAGE_BUFFER; EVENT: INTEGER); PROCEDURE SEND_SYSTEM_ANSWER(ANS: UNIV MESSAGE_BUFFER; EVENT: INTEGER); PROCEDURE SEND_SIGNAL(VAR RECEIVER: PROCESS_NAME); PROCEDURE IDENTIFY_SENDER(EVENT: INTEGER; VAR PROC: INTEGER; VAR OK: BOOLEAN); PROCEDURE GET_PROC_NAME(VAR PROC_NAME: PROCESS_NAME); PROCEDURE GET_PROC_IDENT(VAR PROC_NAME: PROCESS_NAME; VAR FOUND: BOOLEAN); PROCEDURE WAIT_MESSAGE(DELAY: INTEGER; VAR MSG: UNIV MESSAGE_BUFFER; VAR EVENT: INTEGER; VAR EVTTYPE: EVENT_TYPE); PROCEDURE WAIT_SYSTEM_MESSAGE(DELAY: INTEGER; VAR MSG: UNIV MESSAGE_BUFFER; VAR EVENT: INTEGER; VAR EVTTYPE: EVENT_TYPE); PROCEDURE WAIT_ANSWER(DELAY: INTEGER; EVENT: INTEGER; VAR ANS: UNIV MESSAGE_BUFFER; VAR EVTTYPE: EVENT_TYPE); PROCEDURE WAIT_SYSTEM_ANSWER(DELAY: INTEGER; EVENT: INTEGER; VAR ANS: UNIV MESSAGE_BUFFER; VAR EVTTYPE: EVENT_TYPE); PROCEDURE WAIT_EVENT(DELAY: INTEGER; EVTMSK: EVENT_MASK; VAR MSG: UNIV MESSAGE_BUFFER; VAR EVENT: INTEGER; VAR EVTTYPE: EVENT_TYPE); PROCEDURE SAVE_EVENT(EVENT: INTEGER); PROCEDURE RESTORE_EVENTS(EVTTYPE: EVENT_TYPE); PROCEDURE TERMINATE(CC: COMPLETION_CODE); PROCEDURE READ_TIME(VAR TIME: DATE_TIME_GROUP); PROCEDURE START_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); PROCEDURE STOP_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); PROCEDURE PROCESS_STATUS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN; VAR PROC_ATTR: PROCESS_ATTRIBUTES); PROCEDURE REMOVE_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); PROCEDURE GET_NEXT_PROCESS(VAR PROC: INTEGER; VAR NONE: BOOLEAN); PROCEDURE ADOPT_PROCESS(PROC: INTEGER; VAR ILLEGAL: BOOLEAN); PROCEDURE CREATE_PROCESS(VAR CB: CREATION_BLOCK; VAR RESULT: INTEGER); PROCEDURE GET_CPU_PARAMETER(CPU: INTEGER; PAR: CPUPARAMETER; PRIORITY: INTEGER; VAR VAL: INTEGER; VAR OK: BOOLEAN); PROCEDURE SET_CPU_PARAMETER(CPU: INTEGER; PAR: CPUPARAMETER; PRIORITY: INTEGER; VAL: INTEGER; VAR OK: BOOLEAN); PROCEDURE LOOKUP_CPU(VAR CPU_NAME: PROCESS_NAME; VAR FOUND: BOOLEAN); PROCEDURE GET_BUFFER(WORD_CLAIM: INTEGER; VAR MEMORY: MEMORY_PARM; VAR ADDR: WORD_ADDRESS; VAR WORDS_ALLOCATED: INTEGER; VAR OK: BOOLEAN); PROCEDURE GET_BUFFER_ADDR(MEMORY: MEMORY_PARM; VAR ADDR: WORD_ADDRESS; VAR SIZE_IN_WORDS: INTEGER; VAR OK: BOOLEAN); PROCEDURE RELEASE_BUFFER(MEMORY: MEMORY_PARM; VAR OK: BOOLEAN); PROCEDURE CREATE(FSN: FILE_SYSTEM_NAME; ATTRIBUTES: FILE_ATTRIBUTES; VAR F: FILE; VAR CC: COMPLETION_CODE); PROCEDURE DISMANTLE(F: FILE; VAR CC: COMPLETION_CODE); PROCEDURE PROTECT(F: FILE; ACCESS: ACCESS_DESCRIPTION; VAR CC: COMPLETION_CODE); PROCEDURE RESET(F: FILE; VAR CC: COMPLETION_CODE); PROCEDURE OFFER(F: FILE; USER: USERID; VAR CC: COMPLETION_CODE); PROCEDURE ACCEPT(FSN: FILE_SYSTEM_NAME; VAR F: FILE; VAR CC: COMPLETION_CODE); PROCEDURE GET_FILE_INFORMATION(F: FILE; INF_TYPE: FILE_INFORMATION_TYPE; VAR INF: UNIV LONG_INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE ASSIGN(FSN: FILE_SYSTEM_NAME; DESCRIPTION: DEVICE_DESCRIPTION; VAR CC: COMPLETION_CODE); PROCEDURE DEASSIGN(FSN: FILE_SYSTEM_NAME; DEVICE: DEVICE_NAME; VAR CC: COMPLETION_CODE); PROCEDURE MOUNT(FSN: FILE_SYSTEM_NAME; DEVICE: DEVICE_NAME; VOLUME: VOLUME_NAME; VOLUSE: VOLUME_USE; VAR CC: COMPLETION_CODE); PROCEDURE DISMOUNT(FSN: FILE_SYSTEM_NAME; VOLUME: VOLUME_NAME; VAR CC: COMPLETION_CODE); PROCEDURE FORMAT(FSN: FILE_SYSTEM_NAME; DEVICE: DEVICE_NAME; VAR SECTORADDR: SECTOR_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE GET_ROOT(FSN: FILE_SYSTEM_NAME; VOLUME: VOLUME_NAME; VAR ROOT_DIRECTORY: FILE; VAR CC: COMPLETION_CODE); PROCEDURE USER_ON(FSN: FILE_SYSTEM_NAME; USER: USERID; VAR CC: COMPLETION_CODE); PROCEDURE USER_OFF(FSN: FILE_SYSTEM_NAME; USER: USERID; VAR CC: COMPLETION_CODE); PROCEDURE ENTER(DIRECTORY: FILE; SUBJECT: FILE; NAME: FILE_NAME; VAR CC: COMPLETION_CODE); PROCEDURE LOOKUP(DIRECTORY: FILE; NAME: FILE_NAME; VAR F: FILE; VAR CC: COMPLETION_CODE); PROCEDURE DESCENT(VAR F: FILE; NAME: FILE_NAME; VAR CC: COMPLETION_CODE); PROCEDURE FIND_FILE(FROM_ADAM: BOOLEAN; FSN: FILE_SYSTEM_NAME; VOLUME: VOLUME_NAME; NAMELIST: NAMELISTTYPE; NAME_NO: INTEGER; DIRECTORY: FILE; VAR F: FILE; VAR CC: COMPLETION_CODE); PROCEDURE RENAME(DIRECTORY: FILE; OLDNAME: FILE_NAME; NEWNAME: FILE_NAME; VAR CC: COMPLETION_CODE); PROCEDURE REMOVE(DIRECTORY: FILE; NAME: FILE_NAME; VAR CC: COMPLETION_CODE); PROCEDURE READ_SECTORS(FSN: FILE_SYSTEM_NAME; DEVICE: DEVICE_NAME; VAR SECTORADDR: SECTOR_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE WRITE_SECTORS(FSN: FILE_SYSTEM_NAME; DEVICE: DEVICE_NAME; VAR SECTORADDR: SECTOR_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE WRITE_AND_PROTECT(FSN: FILE_SYSTEM_NAME; DEVICE: DEVICE_NAME; VAR SECTORADDR: SECTOR_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE WRITE_AND_MARK(FSN: FILE_SYSTEM_NAME; DEVICE: DEVICE_NAME; VAR SECTORADDR: SECTOR_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE READ_BYTES(F: FILE; VAR FILE_ADDR: FILE_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE MODIFY_BYTES(F: FILE; VAR FILE_ADDR: FILE_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE APPEND_BYTES(F: FILE; VAR FILE_ADDR: FILE_ADDRESS; BLE_POINTER: BLEPTR; VAR CC: COMPLETION_CODE); PROCEDURE INIT_READ_BYTES(F: FILE; VAR FILE_ADDR: FILE_ADDRESS; BLE_POINTER: BLEPTR; VAR OPREF: OPERATION_REFERENCE; VAR CC: COMPLETION_CODE); PROCEDURE INIT_MODIFY_BYTES(F: FILE; VAR FILE_ADDR: FILE_ADDRESS; BLE_POINTER: BLEPTR; VAR OPREF: OPERATION_REFERENCE; VAR CC: COMPLETION_CODE); PROCEDURE INIT_APPEND_BYTES(F: FILE; VAR FILE_ADDR: FILE_ADDRESS; BLE_POINTER: BLEPTR; VAR OPREF: OPERATION_REFERENCE; VAR CC: COMPLETION_CODE); PROCEDURE WAIT_OPERATION(OPREF: OPERATION_REFERENCE; VAR CC: COMPLETION_CODE); PROCEDURE TEST_OPERATION(OPREF: OPERATION_REFERENCE; VAR FINISHED: BOOLEAN; VAR CC: COMPLETION_CODE); PROCEDURE CANCEL_OPERATION(OPREF: OPERATION_REFERENCE; VAR CC: COMPLETION_CODE); PROCEDURE CONNECT(F: FILE; M: MODE; VAR S: STREAM; VAR CC: COMPLETION_CODE); PROCEDURE DISCONNECT(S: STREAM; VAR F: FILE; VAR CC: COMPLETION_CODE); PROCEDURE GET_POSITION(S: STREAM; VAR POSITION: STREAM_POSITION; VAR CC: COMPLETION_CODE); PROCEDURE SET_POSITION(S: STREAM; POSITION: STREAM_POSITION; VAR CC: COMPLETION_CODE); PROCEDURE INBYTE(S: STREAM; VAR B: UNIV BYTE; VAR CC: COMPLETION_CODE); PROCEDURE INWORD(S: STREAM; VAR WORD: UNIV INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE BACKSPACE(S: STREAM; VAR CC: COMPLETION_CODE); PROCEDURE INREC(S: STREAM; VAR FIRST_ELEMENT: UNIV ELEMENT; VAR RECORD_LENGTH_IN_BYTES: INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE OUTBYTE(S: STREAM; B: UNIV BYTE; VAR CC: COMPLETION_CODE); PROCEDURE OUTWORD(S: STREAM; WORD: UNIV INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE OUTREC(S: STREAM; FIRST_ELEMENT: UNIV ELEMENT; VAR RECORD_LENGTH_IN_BYTES: INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE FLUSH(S: STREAM; VAR CC: COMPLETION_CODE); PROCEDURE INTYPE(S: STREAM; VAR CH: CHAR; VAR CH_TYPE: CHAR_TYPE; VAR CC: COMPLETION_CODE); PROCEDURE INELEMENT(S: STREAM; VAR ELEM: ELEM_REC; VAR CC: COMPLETION_CODE); PROCEDURE ININTEGER(S: STREAM; VAR INT: INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE INLONG_INTEGER(S: STREAM; VAR LINT: LONG_INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE INNAME(S: STREAM; VAR N: PACKED_NAME; VAR CC: COMPLETION_CODE); PROCEDURE INFILEID(S: STREAM; VAR FROM_ADAM: BOOLEAN; VAR FSN: FILE_SYSTEM_NAME; VAR VOLUME: VOLUME_NAME; VAR NAMELIST: NAMELISTTYPE; VAR NAME_NO: INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE OUTTEXT(S: STREAM; UNPACKED_TEXT: TEXT; VAR CC: COMPLETION_CODE); PROCEDURE OUTSTRING(S: STREAM; UNPACKED_TEXT: TEXT; NO_OF_CHARS: INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE OUTHEXA(S: STREAM; INT: UNIV INTEGER; PAD_CHAR: CHAR; VAR CC: COMPLETION_CODE); PROCEDURE OUTINTEGER(S: STREAM; INT: UNIV INTEGER; FORMAT: UNIV INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE OUTLONG_INTEGER(S: STREAM; LINT: UNIV LONG_INTEGER; FORMAT: UNIV INTEGER; VAR CC: COMPLETION_CODE); PROCEDURE OUTNL(S: STREAM; VAR CC: COMPLETION_CODE); PROCEDURE MARK(VAR TOP: INTEGER); PROCEDURE RELEASE(TOP: INTEGER); FUNCTION FREE_SPACE: INTEGER; FUNCTION CONTENTS(BASE_REL_ADDR: LONG_INTEGER): INTEGER; PROCEDURE EXIT; PROCEDURE CURRENT_LEVEL(VAR LEVEL: INTEGER); PROCEDURE LONG_EXIT(LEVEL: INTEGER); FUNCTION CURRENT_LINE: INTEGER; FUNCTION REL_ADDR(FIRST_ELEMENT: UNIV ELEMENT): INTEGER; PROCEDURE GET_ABS_ADDR(FIRST_ELEMENT: UNIV ELEMENT; VAR WORD_ADDR: WORD_ADDRESS); PROCEDURE COPY(SOURCE, DEST: BYTE_ADDRESS; NO_OF_BYTES: INTEGER); PROCEDURE PACK(FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; VAR FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; NO_OF_BYTES: INTEGER); PROCEDURE UNPACK(FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; VAR FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; NO_OF_BYTES: INTEGER); PROCEDURE PACK_SWAPPED(FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; VAR FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; NO_OF_BYTES: INTEGER); PROCEDURE UNPACK_SWAPPED(FIRST_ELEMENT_OF_PACKED: UNIV ELEMENT; VAR FIRST_ELEMENT_OF_UNPACKED: UNIV ELEMENT; NO_OF_BYTES: INTEGER); PROCEDURE RUN(F: FILE; VAR PARAM: PARAMTYPE; VAR LINE: INTEGER; VAR RESULT: PROGRESULT); FUNCTION CREATE_LONG(LEAST, MOST: UNIV INTEGER): LONG_INTEGER; PROCEDURE SPLIT_LONG(L: LONG_INTEGER; VAR LEAST, MOST: UNIV INTEGER); PROCEDURE ASSIGNBITS(VALUE: UNIV BITVALUE; VAR P: UNIV PAGE; FIRSTBIT, NO_OF_BITS: INTEGER); PROCEDURE SKIPBITS(VALUE: UNIV BITVALUE; P: UNIV PAGE; VAR FIRSTBIT: INTEGER; NO_OF_BITS: INTEGER; VAR BITSSKIPPED: INTEGER); PROCEDURE SET_TRACE(S: STREAM; MASK: INTEGER); PROCEDURE PRINT_TRACE(ON: BOOLEAN); PROGRAM MAIN(VAR PARAM: PARAMTYPE); «a5»