IMD 1.16: 31/08/2008 22:48:01 84-93027-06 g100 f02706 ds-490-b software development systems diskette 27/oct/81    @0|)wwЀЀtQql)  " }gA `M@IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIOS4 MF181092117524600811109092225 811109092225OF02706 VOLDS-490-B SOFTWARE DEVELOPMENT SYSTEMS DISKETTE (84-93027-06) G100   IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM@iGyy GGG`HZ@ b G`^Y e IQ BBp@;:9 :7P@ G:پN 8!0. * C'xC# b# }B @0DAJL w+™ЀЀΖQA1"   i ž} š} @EEFF)DEۄF8 џ} ԟ} ̟} * `jUBBI,v BI, # @ G9H@pܾrCHC C GTq` Lg"gEXC P+s=胾P+c fQN p $Rxnj  ޔniZ ތ⊞ } }HGž Ÿ@ALS)"$ C k20j.h( +$`%ꂜ\1 !M' y %'+os慾)sY ed|{ @8 o O m J K i gN )V% t%sLn`"E F. F„ D>) =`;nrgy w"G,{Kq1 A&}E*`(t@% ;c  765y342(.OS:: SYS"iwvc Bc A@6<# Ic B# gIjHc r TITL GEN.MAC - GENERAL EQUATES & MACROS (93420-1A-E100) TITL .... C O N T E N T S *************** * * * GEN.MAC * * * *************** * * ASCII EQUATES * CONTEXT BLOCK (STACK) EQUATES * SYMATT BIT VALUE EQUATES * DIO INTERRUPT VECTOR EQUATES * CONSOLE DEVICE ADDRESS & FUNCTION CODES * STATUS REGISTER EQUATES * FIXED MEMORY ADDRESS ASSIGNMENTS * BIT:??? MACROS * COPY:M MACRO * EXCH:M MACRO * RET: MACRO * DUP: MACRO * DOOR SERVICE CALL MACRO TITL .... M I S C E L L A N E O U S E Q U A T E S * ASCII EQUATES * PARTY: EQU :00 SET PARITY BIT OFF NU: SET :00++PARTY: ASCII NULL LF: SET :0A++PARTY: ASCII LINE FEED FF:  SET :0C++PARTY: ASCII FORM FEED CR: SET :0D++PARTY: ASCII CARRIAGE RETURN RO: SET :7F++PARTY: ASCII RUBOUT * * CONTEXT BLOCK (STACK) EQUATES * LAST:L EQU 0 CALLER'S L REGISTER LAST:S EQU 1 CALLER'S S REGISTER LAST:A EQU 2 CALLER'S A REGISTER LAST:Q EQU 3 CALLER'S Q REGISTER LAST:X EQU 4 CALLER'S X REGISTER LAST:Y EQU 5 CALLER'S Y REGISTER LAST:P EQU 6 CALLER'S P REGISTER (RETURN ADDRESS) CBL: EQU LAST:P+1 LENGTH OF CONTEXT BLOCK * * SYMATT BIT VALUE EQUATES * A BSBT: EQU :8000 ABSOLUTE RELBT: EQU :4000 RELATIVE REGBT: EQU :2000 REGISTER EXT: EQU :1000 EXTERNAL INDBT: EQU :800 INDIRECT LITBT: EQU :400 LITERAL NXBT: EQU :200 POST INDEXED PNXBT: EQU :100 PRE INDEXED UNDBT: SET :80 UNDEFINED NULL: EQU :40 NULL SYMER: EQU :20 EVALUATION ERROR BYTRL: EQU :10 BYTE RELOCATABLE TITL * DIO INTERUPT VECTOR EQUATES * IV:AIO EQU 0 AUTO I/O IV:CNT EQU 1 BYTE COUNT IV:BUF EQU 2 BUFFER ADDRESS IV:JSK EQU 4 JSK $+1 IV:EOB EQU 5 EOB ADDRESS * * CONSOLE DEVICE ADDRESS & FUNCTION CODES * CONDA: EQU 0//3 CONSOLE DEVICE ADDRESS CSSFC: EQU 0 CONSOLE SENSE SWITCH FUNCTION CODE CIRFC: EQU 1 CONSOLE INTERRUPT RESET FUNCTION CODE CDR: EQU 4 CONSOLE DATA REGISTER FUNCTION CODE TITL .... S T A T U S R E G I S T E R E Q U A T E S * STATUS REGISTER BIT POSITION EQUATES * CY: EQU 0 CARRY OV: EQU 1 OVERFLOW BY: EQU 2 BYTE MODE CI: EQU 4 CONSOLE INTERRUPT ENABLED RI: EQU 5 REAL TIME CLOCK INTERRUPT ENABLED XA: EQU 6 EXTENTED ADDRESSING MODE INT: EQU 8 INTERRUPTS ENABLED IM12: EQU 12 LEVEL 0 WORD INTERRUPT MASK IM13: EQU 13 LEVEL 0 EVENT INTERRUPT MASK UX: EQU 13 EXCEPTION RETURN FOR UNRECOVERABLE ERROR RX: EQU 14 EXCEPTION RETURN FOR RECOVERABLE ERROR * * STATUS REGISTER BIT VALUE EQUATES * CY:V EQU :1 CARRY OV:V EQU :2 OVERFLOW BY:V EQU :4 BYTE MODE B3:V EQU :8 RESERVED STATUS BIT 3 CI:V EQU :10 CONSOLE INTERRUPT ENABLED RI:V EQU :20 REAL TIME CLOCK INTERRUPT ENABLED XA:V EQU :40 EXTENDED ADDRESSING MODE B7:V EQU :80 RESERVED STATUS BIT 7 INT:V EQU :100 INTERRUPTS ENABLED IM12:V EQU :1000 LEVEL 0 WORD INTERRUPT MASK IM13:V EQU :2000 LEVEL 0 EVENT INTERRUPT MASK TITL .... F I X E D M E M O R Y E Q U A T E S * FIXED MEMORY ADDRESS ASSIGNMENTS * PUPA: EQU :80 POWER UP ADDRESS UITA: EQU :84 UNIMPLEMENTED INSTRUCTION TRAP ADDRESS UMTA: EQU :88 UNINSTALLED MEMORY TRAP ADDRESS PFTA: EQU :8C POWER FAILURE TRAP ADDRESS EACA: EQU :90 EFFECTIVE ADDRESS CALCULATION ADDRESS RTCNC: EQU :91 REAL TIME CLOCK INCREMENT ADDRESS RTCIA: EQU :92 READ TIME CLOCK INTERRUPT ADDRESS CONIA: EQU :94 CONSOLE INTERRUPT ADDRESS CNTA: EQU :98 CHARACTER/NUMERIC EXCEPTION TRAP ADDRESS SOTA: EQU :9C STACK OVERFLOW TRAP ADDRESS SETA: EQU :9C STACK EXCEPTION TRAP ADDRESS USTA: EQU :A0 USER TRAP ADDRESS SYTA: EQU :A4 SYSTEM TRAP ADDRESS AETA: EQU :A8 ARITHMETIC EXCEPTION TRAP ADDRESS TITL .... B I T : ? ? ? M A C R O S ** MACRO: BIT:EQU, BIT:SET, & BIT:WORD * BUILD A 16-BIT ARRAY OF BITS AND ASSIGN IT APPROPRIATELY * * CALLING SEQUENCE: (LABEL) BIT:??? (BIT1),(BIT2),...,(BIT8) * BIT1-BIT8 = BIT POSITIONS TO BE TURNED ON ** SPACE 2 BIT:EQU MACRO EQU MACLAB BIT:SET MACENT SET MACLAB BIT:WORD MACENT WORD MACLAB A: SET 0 * BIT:LOOP MACENT NULL IFT #(1,?) A: SET 1//#(1)++A: BIT:LOOP #(2),#(3),#(4),#(5),#(6),#(7),#(8) ENDC * IFF #(0,'NULL') #(-1) #(0) A: ENDC ENDM TITL .... C O P Y M E M O R Y - M E M O R Y M A C R O ** MACRO: COPY:M * COPY THE CONTENTS OF ONE MEMORY CELL TO ANOTHER * * CALLING SEQUENCE: (LABEL) COPY:M MEM1,REG,MEM2 * MEM1 = ADDRESS OF SOURCE MEMORY CELL * REG = REGISTER  TO BE USED FOR TRANSFER * MEM2 = ADDRESS OF DESTINATION MEMORY CELL ** SPACE 2 COPY:M MACRO COPY #(1),#(2) COPY #(2),#(3) ENDM TITL .... E X C H M E M O R Y - M E M O R Y M A C R O ** MACRO: EXCH:M * EXCHANGE THE CONTENTS OF TWO MEMORY CELLS * * CALLING SEQUENCE: (LABEL) EXCH:M MEM1,MEM2 * MEM1,MEM2 = MEMORY ADDRESSES OF CELLS TO BE EXCHANGED ** SPACE 2 EXCH:M MACRO EXCH #(1),A EXCH A,#(2) EXCH A,#(1) ENDM TITL .... R E T U R N M A C R O ** MACRO: RET: * RETURN WITH A VALUE IN THE A REGISTER * * CALLING SEQUENCE: (LABEL) RET:A VALUE * VALUE = VALUE TO RETURNED IN THE A REGISTER ** SPACE 2 RET: MACRO COPY =#(1),A RSK ENDM TITL .... D U P ( L I C A T E ) M A C R O ** MACRO: DUP * DUPLICATE THE GIVEN BYTE THE NUMBER OF TIMES SPECIFIED. * * CALLING SEQUENCE: (LABEL) DUP 'TEXT',NUM * 'TEXT' = BYTE STRING (DUPLICATION STARTS IN COLUMN 1) * NUM = NUMBER OF TIMES TO DUPLICATE ** SPACE 2 DUP MACRO A:: SET #(1,?)-1 IFT #(2)>0 #(1,2,A::) Q:: SET #(2)-1 DUP #(1),Q:: ENDC ENDM TITL .... S Y S T E M S E R V I C E C A L L M A C R O ** MACRO: * GENERATE A CALL TO A SYSTEM SERVICE THROUGH THE DOOR * * CALLING SEQUENCE: (LABEL) * SERVICE NAME = NAME OF SYSTEM SERVICE * PBA = PARAMETER BLOCK ADDRESS (CALL DEPENDENT) * THE PBA MAY BE ANY VALID M4D12 ADDRESS OR * ANY DIRECT OR INDIRECT UNINDEXED ADDRESS ** SPACE 2 F:CFNO MACRO F:CFNO/26 F:CONN MACENT F:CONN/24 F:CREA MACENT F:CREA/22 F:DELE MACENT F:DELE/23 F:DMNT MACENT F:DMNT/29 F:MONT MACENT F:MONT/25 * I:IO MACENT I:IO/7 I:LOAD MACENT I:LOAD/30 I:LD410S MACENT I:LD410S/31 I:OVL MACENT I:OVL/35 * R:ABUF MACENT R:ABUF/13 R:AWAL MACENT R:AWAL/17 R:BGIN MACENT R:BGIN/3 R:CINT MACENT R:CINT/8+:8000 R:CTIC MACENT R:CTIC/19 R:CWAL MACENT R:CWAL/21 R:DBUG MACENT R:DBUG/0+:8000 R:END MACENT R:END/4+:8000 R:GATD MACENT R:GATD/27 R:GPRI MACENT R:GPRI/6+:8000 R:GTOD MACENT R:GTOD/16+:8000 R:ITIC MACENT R:ITIC/11 R:IWAL MACENT R:IWAL/18 R:MTIC MACENT R:MTIC/20 R:PAUS MACENT R:PAUS/12 R:RECV MACENT R:RECV/10 R:RBUF MACENT R:RBUF/14 R:SATD MACENT R:SATD/28 R:SEND MACENT R:SEND/9 R:SIG MACENT R:SIG/1 R:SPRI MACENT R:SPRI/5 R:STOD MACENT R:STOD/15+:8000 R:WAIT MACENT R:WAIT/2 R:AFB MACENT R:AFB/32+:8000 R:RFB MACENT R:RFB/33 R:EX MACENT R:EX/34 * * * X: SET #(0,'/')-1 LOAD #(0,1,X:) X: SET X:+2 Y: SET #(0,X:,30) IFT #(1,?) S: SYMATT #(1) X: SET NXBT:++PNXBT:**S:=0 X: SET INDBT:**S:<>0+X:*X://13 ENDC IFF #(1,?) X: SET Y:**:8000//-14--3//13  ENDC * WORD Y:**:00FF++:1A00++X: STRAP INSTRUCTION IFT X: IFT #(1,?) WORD #(1,) DIRECT OR INDIRECT UNINDEXED PARAMETER ENDC IFF #(1,?) WORD 0 NO PARAMETER ENDC ENDC IFF X: M4D12 #(1) M4D12 PARAMETER ENDC * IFF \Y://-15**:00000001=#(?) NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDM SPACE 3 SAVE END (0,X:,30) IFT #(1,?) S:  TITL RTX.MAC - RTX USER EQUATES & MACROS (93421-15-E100) TITL .... C O N T E N T S *************** * * * RTX.MAC * * * *************** * * MISCELLANEOUS EQUATES * EDB EXCEPTION VECTOR EQUATES * BGIN :(A) MACRO * ECB:(A) MACRO * EDXVT:(A) MACRO * INIT:(A) MACRO * MAIL:(A) MACRO * MDB:(A) MACRO * SINGL: MACRO * SDB:(A) MACRO * TDB:(A) MACRO * TICK:(A) MACRO * WALL:(A) MACRO TITL .... M I S C E L L A N E O U S E Q U A T E S * SYSTEM FREE POOL BLOCK SIZE * BLKSZ: EQU 12 (DUPPED IN RTXD.MAC) * * INTERNAL BLOCK CHECK VALUE EQUATES * IN:CHK EQU :F00E INIT CHECK VALUE (IN IN:AID) TD:CHK EQU :F01E TDB CHECK VALUE (IN TD:CKW) AC:CHK EQU :F02E ACB CHECK VALUE (IN AC:CKW) SD:CHK EQU :F03E SDB CHECK VALUE (IN SD:CKW) CC:CHK EQU :F04E CCB CHECK VALUE (IN CC:CKW) EC:CHK EQU :F06E ECB CHECK VALUE (IN EC:CKW) MD:CHK EQU :F07E MDB CHECK VALUE (IN MD:CKW) UA:CHK EQU :F09E UAT CHECK VALUE (WORD 0) (DUPPED IN IOS.MAC) TITL .... E D B E X C E P T V E C T O R E Q U A T E S * EDB EXCEPTION VECTOR EQUATES * * THE FOLLOWING XV:????? EQUATES SPECIFY LOCATIONS IN THE * EXCEPTION VECTOR OF THE ENVIRONMENT DESCRIPTOR BLOCK * XV:UINTP EQU :0 UNIMPLEMENTED INSTRUCTION TRAP XV:MEMTP EQU :1 MEMORY EXCEPTION TRAP XV:CNMTP EQU :2 CHARACTER/NUMERIC EXCEPTION TRAP XV:USRTP EQU :3 USER TRAP XV:AERTP EQU :4 ARITHMETIC EXCEPTION TRAP XV:STKTP EQU :5 STACK EXCEPTION TRAP XV:STKSV EQU :6 STACK EXCEPTION REGISTER SAVE AREA XV:USTEX EQU :8 UNIMPLEMENTED STRAP EXCEPTION XV:ST0EX EQU :9 STRAP 0 EXCEPTION XV:DOREX EQU :A DOOR SERVICE EXCEPTION XV:RTXEX EQU :B RTX SYSTEM ERROR * * STACK EXCEPTION REGISTER SAVE AREA EQUATES * STKSV:A EQU 0 A REGISTER SAVE AREA STKSV:Q EQU 1 Q REGISTER SAVE AREA STKSV:X EQU 2 X REGISTER SAVE AREA STKSV:Y EQU 3 Y REGISTER SAVE AREA TITL .... B G I N : ( A ) M A C R O ** MACRO: BGIN: & BGIN:A * GENERATE A PARAMETER BLOCK FOR AN R:BGIN CALL * * CALLING SEQUENCE: LABEL BGIN:(A) TASK,PRI * BGIN:(A) LABEL,TASK,PRI (ARCHAIC) * LABEL = ADDRESS OF PARAMETER BLOCK * TASK = ADDRESS OF TDB * PRI = TASK PRIORITY ** SPACE 2 BGIN: MACRO BGIN:A MACENT P: SET 2 L: SET #(?) IFF #(-1,?) L: SET L:-1 #(1) BGIN:: #(2),#(3) ENDC * BGIN:: MACENT IFT #(-1,?) WORD #(1) TCB ADDRESS WORD #(2) PRIORITY IFF L:=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDC ENDM TITL .... E C B : ( A ) M A C R O ** MACRO: ECB: & ECB:A * GENERATE AN ENVIRONMENT CONTROL BLOCK * * CALLING SEQUENCE: LABEL ECB:(A) UAT,(PEADD),(MPADD,MPLEN) *  ECB:(A) LABEL,UAT,(PEADD),(MPADD,MPLEN) (ARCHAIC) * LABEL = ADDRESS OF PARAMETER BLOCK * UAT = ADDRESS OF UNIT ASSIGNMENT TABLE * PEADD = ADDRESS OF END OF PROGRAM * MPADD = USER SPECIFIED MEMORY POOL ADDRESS * MPLEN = USER SPECIFIED MEMORY POOL LENGTH ** SPACE 2 ECB: MACRO MACLAB ECB:A MACENT MACLAB P: SET 1 L: SET #(?) IFF #(-1,?) L: SET L:-1 #(1) ECB:: #(2),#(3),#(4),#(5) ENDC * ECB:: MACENT MACLAB IFT #(-1,?) LPOOL O: SET $ SHARABLE TABLE: TABLE: REL #(-1) NAM #(-1) CHAN R:ECBL ED:PER - PEER LINK WORD 0 EC:FLG - FLAG WORD WORD #(-1) EC:EDB - ENVIRONMENT DESCRIPTOR BLOCK WORD 1 EC:LUS - LUN SEMAPHORE (ALIAS EC:PRV) RES 2,0 WORDS 4-5 RESERVED WORD 0 E C:CNT - NUMBER OF ACTIVITIES WORD 0 EC:ALH - ACB LIST HEAD WORD 0 EC:SUB - SUBORDINATE LIST HEAD WORD 0 EC:MST - MASTER ENVIRONMENT WORD 0 EC:NEC - NECESSARY ENVIRONMENT WORD EC:CHK EC:CKW - CHECK WORD WORD 16 ED:EVO - EXCEPTION VECTOR OFFSET WORD 48 ED:MRO - MAP REGISTER OFFSET RES 2,0 WORDS 14-15 RESERVED RES 16,0 ED:EVT - EXCEPTION VECTOR TABLE WORD #(1) ED:UAT - UNIT ASSIGNMENT TABLE WORD 0 ED:LMA - LOW MEMORY ADDRESS IFT #(2,?) P: SET P:+1 ENDC IFT #(2,?) WORD #(2) ED:MPA - USER SPECIFIED MEMORY POOL ADDRESS ENDC IFF #(2,?) WORD 0 ED:MPA - DEFAULT MEMORY POOL ADDRESS ENDC WORD 0 ED:HMA - HIGH MEMORY ADDRESS WORD 0 ED:EUS - ENVIROMENT USAGE SEMAPHORE WORD :7FFF ED:PRI - MAXIMUM PRIORITY HEAD R:TDBL ED:TLH - TASK LIST HEAD HEAD R:SL ED:SLH - SEMAPHORE LIST HEAD HEAD R:MBXL ED:MLH - MAILBOX LIST HEAD WORD #(3)+0 ED:UMPA - USER MEMORY POOL ADDRESS WORD #(4)+0 ED:MPL - USER MEMORY POOL LENGTH IFT #(3,?)+#(4,?) P: SET P:+2 IFF #(3,?) NOTE E,'MUST SPECIFY MEMORY POOL ADDRESS' ENDC IFF #(4,?) NOTE E,'MUST SPECIFY MEMORY POOL LENGTH' ENDC ENDC RES 1,0 WORD 43 IS RESERVED RES 1,0 NUMBER OF TASK ACTIVITY RES 1,0 TDB OF INITIAL TASK RES 1,0 PRIORITY OF INITIAL ACTIVITY RES 1,0 ID OF INITIAL ACTIVITY RES 1,0 MAP OF REGISTER TABLE IFF L:>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ORG O: ENDC ENDM TITL .... E D X V T : ( A ) M A C R O ** MACRO: EDXVT: & EDXVT:A * GENERATES ENTRIES IN THE EXCEPTION VECTOR TABLE OF THE EDB * THE EXCEPTION ADDRESS SPECIFIED WILL BE JUMPED TO IF THE *  SPECIFIED EXCEPTION OCCURS * * CALLING SEQUENCE: EDXVT:(A) ECB,EXCEPT,EXPADD * * ECB = ADDRESS OF ENVIRONMENT CONTROL BLOCK * EXCEPT = EXCEPTION VECTOR OFFSET * EXPADD = ADDRESS OF EXCEPTION PROCESSOR * * NOTE: CALLS TO THIS MACRO MUST ALL FOLLOW THE CALL TO THE ECB:(A) * MACRO ** SPACE 2 ED:EVT EQU 16 EXCEPTION VECTOR TABLE (DUPPED IN RTXD.MAC) * EDXVT: MACRO EDXVT:A MACENT P: SET 3 * LPOOL O: SET $ SAVE LOCATION COUNTER ORG #(1)+ED:EVT+#(2) ORG INTO EDB WORD #(3) INSERT EXCEPTION PROCESSOR ADDRESS ORG O: ORG BACK TO WHERE WE WERE IFF #(?)=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDM TITL .... I N I T : ( A ) M A C R O ** MACRO: INIT: & INIT:A * GENERATE AN ENVIRONMENT INITIALIZATION BLOCK * * CALLING SEQUENCE: * INIT:(A) AR,QR,XR,YR,ECB,TDB,PRI,(FPAMT,(FPADD)), *  (EMADD) * * AR = INITIAL CONTENTS OF A REGISTER * QR = " " " Q " * XR = " "  " X " * YR = " " " Y " * ECB = ADDRESS OF ENVIRONMENT CONTROL BLOCK * TDB = ADDRESS OF TASK DESCRIPTOR BLOCK * PRI = PRIORITY OF TASK ACTIVATION * FPAMT = AMOUNT OF FREE POOL SPACE (WORDS) * FPADD = ADDRESS OF FREE POOL * EMADD = ADDRESS OF TOP OF MEMORY ** SPACE 2 INIT: MACRO INIT:A MACENT LPOOL O: SET $  SHARABLE TABLE: TABLE: REL P: SET 7 LOAD RTX: R:INIT NAM R:INIT WORD #(1) IN:A - INITIAL A REGISTER WORD #(2)  IN:Q - INITIAL Q REGISTER WORD #(3) IN:X - INITIAL X REGISTER WORD #(4) IN:Y - INITIAL Y REGISTER WORD #(5) IN:ECB  - ECB ADDRESS WORD #(6) IN:TDB - TDB ADDRESS WORD #(7)**:7FFF IN:PRI - INITIAL ACTIVITY PRIORITY WORD IN:CHK IN:AID - CHECK WORD * IFT #(8,?) WORD #(8) IN:FPL - USER SPECIFIED FREEPOOL LENGTH P: SET P:+1 ENDC IFF #(8,?) WORD BLKSZ:*4 IN:FPL - DEFAULT FREEPOOL LENGTH ENDC * A: SET #(9,?) DEFAULT FPADD IF NOT SPECIFIED... IFT A:=1 OR IF '0' SPECIFIED A: SET '##(9)'<>'0' ENDC IFT A: WORD #(9) IN:FPA - USER FREE POOL ADDRESS Y: SET 0 P: SET P:+1 IFF #(8,?) NOTE E,'MUST SPECIFY AMOUNT OF FREE POOL = #(8)' ENDC ENDC IFF A: Y: SET BLKSZ:*4 S: SYMATT #(8) IFF S:**:0040 IF FPAMT NOT NULL... IFT S:=:8000 IF FPAMT IS ABSOLUTE... Y: SET #(8) ENDC IFF S:=:8000 IF FPAMT IS SOMETHING ELSE... NOTE E,'FPAMT MUST BE ABSOLUTE IF FPADD IS DEFAULTED' Y: SET 0 ENDC ENDC WORD $+2 IN:FPA - DEFAULT FREE POOL ADDRESS (AFTER INIT BLOCK) ENDC * IFT #(10,?) P: SET P:+1 WORD #(10) IN:EOM - USER SPECIFIED END OF MEMORY ADDRESS ENDC IFF #(10,?) WORD 0 IN:EOM - DEFAULT END OF MEMORY ADDRESS ENDC * IFT Y: RES Y:,:8080 RESERVE DEFAULT FREE POOL ENDC * IFF #(?)>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ORG O: ENDM TITL .... M A I L : ( A )  M A C R O ** MACRO: MAIL: & MAIL:A * GENERATE A PARAMETER BLOCK FOR MAILBOX SERVICES * * CALLING SEQUENCE: LABEL MAIL:(A) BOXID,(ENVID) * MAIL:(A) LABEL,BOXID,(ENVID) (ARCHAIC) * LABEL = ADDRESS OF PARAMETER BLOCK * BOXID = MAILBOX IDENTIFIER * ENVID = ENVIRONMENT IDENTIFIER ** SPACE 2 MAIL: MACRO MAIL:A MACENT P: SET 1 L: SET #(?) IFF #(-1,?) L: SET L:-1 #(1) MAIL:: #(2),#(3) ENDC * MAIL:: MACENT IFT #(-1,?) IFT #(2,?) P: SET P:+1 ENDC WORD #(2)+0 ENVIRONMENT IDENTIFIER WORD #(1) MAILBOX IDENTIFIER IFF L:>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDC ENDM TITL .... M D B : ( A ) M A C R O ** MACRO: MDB: & MDB:A * GENERATE A MAILBOX DESCRIPTOR BLOCK * * CALLING SEQUENCE: (LABEL) MDB:(A) BOXID,(ENVID) * * BOXID = MAILBOX IDENTIFIER * ENVID = ENVIRONMENT IDENTIFIER ** SPACE 2 MDB: MACRO MACLAB MDB:A MACENT MACLAB LPOOL O: SET $ SHARABLE TABLE: TABLE: REL P: SET 1 IFT #(-1,?) NAM #(-1) ENDC #(-1) CHAN R:MBXL MD:PER - PEER LINK WORD 0 MD:FLG - FLAG WORD WORD 1 MD:MBX - MAILBOX USAGE SEMAPHORE WORD 0 MD:MSG - MESSAGE SIGNALLING SEMAPHORE DOUBLE 0 MD:A,MD:Q - 32-BIT MESSAGE RES 3,0 WORDS 6-8 RESERVED IFT #(2,?) P: SET P:+1 ENDC WORD #(2)+0 MD:ECB - ENVIRONMENT IDENTIFIER WORD #(1) MD:ID - MAILBOX IDENTIFIER WORD MD:CHK MD:CHW - MDB CHECKWORD IFF #(?)>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ORG O:  ENDM TITL .... S I N G L : M A C R O ** MACRO: SINGL: * GENERATE A CANNED INIT BLOCK AND TASK DESCRIPTOR BLOCK, * (USER'S ECB MUST BE CALLED R:ECB1) * * CALLING SEQUENCE: (LABEL) SINGL: EXADD,STAMT,STREG * EXADD = EXECUTION ADDRESS OF INITIAL TASK * STAMT = AMOUNT OF STAMT TO ALLOCATE * STREG = INITIAL STATUS REGISTER ** SPACE 2 SINGL: MACRO EXTR R:ECB1 P: SET 3 INIT: 0,0,0,0,R:ECB1,R:TSK1,100,4*BLKSZ: R:TSK1 TDB:A #(1),0,R:STK1,#(2),#(3)  R:STK1 RES #(2),0 LOAD UAT:S IFF #(?)=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDM TITL .... S D B : ( A ) M A C R O ** MACRO: SDB: & SDB:A * GENERATE A SEMAPHORE DESCRIPTOR BLOCK * * CALLING SEQUENCE: LABEL SDB:(A)  (VALUE),(FLAGS) * SDB:(A) LABEL,(VALUE),(FLAGS) (ARCHAIC) * LABEL = ADDRESS OF SEMAPHORE DESCRIPTOR BLOCK * VALUE = INITIAL VALUE OF SEMAPHORE (0 <= VALUE <= 255) * FLAGS = INITIAL VALUE OF FLAGS (NONE CURRENTLY DEFINED) ** SPACE 2 SDB: MACRO MACLAB SDB:A MACENT MACLAB P: SET 0 L: SET #(?) IFF #(-1,?) L: SET L:-1 #(1) SDB:: #(2),#(3) ENDC * SDB:: MACENT MACLAB IFT #(-1,?) LPOOL O: SET $ SHARABLE TABLE: TABLE: REL CHAN R:SL SD:PER - PEER LINK IFT #(1,?) P: SET P:+1 ENDC IFT #(2,?) P: SET P:+1 ENDC WORD #(1)+0++#(2)+0 SD:FLG - FLAGS & INITIAL VALUE NAM #(-1) #(-1) WORD #(1)+0 SD:SEM - VALUE FOR WAITING TASK WORD SD:CHK SD:CKW - SDB CHECKWORD IFF L:>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ORG O: ENDC ENDM TITL .... T D B : ( A ) M A C R O ** MACRO: TDB: & TDB:A * GENERATE A TASK DESCRIPTOR BLOCK * * CALLING SEQUENCE: * LABEL TDB:(A) EXADD,YSCRA,STACK,STAMT,(FLAGS),(COACT),(SEMA4) * TDB:(A) LABEL,EXADD,YSCRA,STACK,STAMT,(FLAGS),(COACT), * (SEMA4) (ARCHAIC) * * LABEL = ADDRESS OF TASK DESCRIPTOR BLOCK * EXADD = EXECUTION ADDRESS * YSCRA = AMOUNT OF Y-SCRATCH TO ALLOCATE * "*" INDICATES MULTI-TASKING TEMPLATE EXPANSION * STACK = ADDRESS OF STACK * STAMT = AMOUNT OF STACK TO ALLOCATE * FLAGS = NONE DEFINED * COACT = NUMBER OF CONCURRENT EXECUTIONS * SEMA4 = CONCURRENCY SEMAPHORE ADDRESS (MUST BE SET AT RUNTIME) ** SPACE 2 TDB: MACRO MACLAB TDB:A MACENT MACLAB P: SET 4 L: SET #(?) IFF #(-1,?) L: SET L:-1 #(1) TDB:: #(2),#(3),#(4),#(5),#(6),#(7),#(8) ENDC * TDB:: MACENT MACLAB IFT #(-1,?) LPOOL O: SET $ SHARABLE TABLE: TABLE: REL #(-1) NAM #(-1) IFT #(5,?) P: SET P:+1 ENDC CHAN R:TDBL TD:PER - PEER LINK IFF #(2,?)=1&#(2,'*') IF NO MULTI-TASKING WORD 0 TD:FLG - FLAG WORD ENDC IFT #(2,?)=1&#(2,'*') IF MULTI-TASKING WORD :8000 TD:FLG - MULTI-TASKING BIT SET ENDC A: SET 1 DEFAULT CONCURRENT EXECUTIONS IFT #(6,?) A: SET #(6) USER SPECIFIED CONCURRENT EXECUTIONS P: SET P:+1 ENDC IFT #(7,?) WORD #(7) TD:USA - USER SPECIFIED CONCURRENCY SEMAPHORE ADDRESS P: SET P:+1 ENDC IFF #(7,?) WORD $+6 TD:USA - DEFAULT CONCURRENCY SEMAPHORE ADDRESS ENDC WORD A: TD:NOX - CONCURRENT EXECUTIONS IFF #(2,?)=1&#(2,'*') IF NO MULTI-TASKING WORD #(2)+0 TD:Y - Y SCRATCHPAD ALLOCATION ENDC IFT #(2,?)=1&#(2,'*') IF MULTI-TASKING TASK #(-1) DECLARE TASK TEMPLATE #(-1) TD:Y - POINTER TO TEMPLATE LOAD R:TMPL TEMPLATE PROCESSOR ENDC WORD #(3)+0 TD:AD - STACK ADDRESS WORD #(4) TD:AMT - STACK ALLOCATION WORD #(1) TD:P - EXECUTION ADDRESS WORD A: TD:CSA - DEFAULT CONCURRENCY SEMAPHORE RES 2,0 WORDS 9-10 RESERVED WORD TD:CHK TD:CKW - TDB CHECKWORD IFF L:>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ORG O: ENDC ENDM TITL .... T I C K : ( A ) M A C R O ** MACRO: TICK: & TICK:A *   GENERATE A PARAMETER BLOCK FOR TICK CLOCK SERVICES * * CALLING SEQUENCE2 * LABEL TICK2(A) TIMAD,SEMA4,TICKS,(ENVID) * TICK:(A) LABEL,TIMID,SEMA4,TICKS,(ENVID) (ARCHAIC) * * LABEL = ADDRESS OF PARAMETER BDOCK * TIMID = TIMER IDENTIFIER * SEMA4 = ADDRESS OF SEMAPHORE * TICKS = TICK COUNT * ENVID = ENVIRONMENT IDENTIFIER ** SPACE 2 TICK: MACRO TICK:A MACENT P: SET 3 L: SET #(?) IFF #(-1,?) L: SET L:-1 #(1) TICK:: #(2),#(3),#(4),#(5) ENDC * TICK:: MACENT IFT #(-1,?) IFT #(4,?) P: SET P:+1 ENDC WORD #(4)+0 ENVIRONMENT IDENTIFIER WORD #(1) TIMER IDENTIFIER WORD #(2) SEMAPHORE WORD #(3) TICK COUNT IFF L:>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDC ENDM TITL .... W A L L : ( A ) M A C R O ** MACRO: WALL: & WALL:A * GENERATE A PARAMETER BLOCK FOR WALL CLOCK SERVICES * * CALLING SEQUENCE: * LABEL WALL:(A) TIMID,SEMA4,HITOD,LOTOD,(ENVID) * WALL:(A) LABEL,TIMID,SEMA4,HITOD,LOTOD,(ENVID) (ARCHAIC) * * LABEL = ADDRESS OF PARAMETER BLOCK * TIMID = TIMER IDENTIFIER * SEMA4 = ADDRESS OF SEMAPHORE * HITOD = HI-ORDER TIME OF DAY * LOTOD = LO-ORDER TIME OF DAY * ENVID = ENVIRONMENT IDENTIFIER ** SPACE 2 WALL: MACRO WALL:A MACENT P: SET 4 L: SET #(?) IFF #(-1,?) L: SET L:-1 #(1) WALL:: #(2),#(3),#(4),#(5),#(6)  ENDC * WALL:: MACENT IFT #(-1,?) IFT #(5,?) P: SET P:+1 ENDC WORD #(5)+0 ENVIRONMENT IDENTIFIER WORD #(1) TIMER IDENTIFIER WORD #(2) SEMAPHORE ADDRESS WORD #(3) HI-ORDER TIME OF DAY WORD #(4) LO-ORDER TIME OF DAY IFF L:>=P: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDC ENDM SPACE 3 SAVE END ENVID = ENVIRONMENT IDENTIFIER ** SP TITL I O S . M A C - IOS GENERAL EQUATES & MACROS (93420-1B-F100) TITL ..... CONTENTS ******************* *  * * IOS.MAC * * * ******************* * * UAT:AA MACRO * UAT:EE MACRO * UAT:ZZ MACRO *  BUF:R MACRO * IOB:A MACRO * IOB EQUATES * IOU: MACRO * IOR: MACRO * I/O ERROR BLOCK EQUATES * I:LOAD PARAMETER BLOCK (LOAD:) EQUATES * LOAD: MACRO * OVL:A MACRO * OVL: MACRO TITL ... UAT:AA UAT:EE UAT:ZZ UA:CHK EQU :F09E * UAT:AA LABEL START UNIT ASSIGNMENT TABLE * * UAT:EE LUN,ADDRESS UAT ENTRY * * UAT:ZZ END OF UAT * * LABEL LABEL TO ASSOCIATED WITH UAT * LUN  LOGICAL UNIT NAME * ADDRESS ADDRESS OF DIB OR FCB * * UAT:AA MACRO MACLAB LPOOL O: SET $ SHARABLE TABLE: TABLE: REL LOAD I:IO WORD UA:CHK #1 WORD UAT:ND-$-4%-1 RES 3,0 UAT:NV SET 0 ENDM * UAT:EE MACRO WORD #1 S: SYMATT #2 IFT S:&UNDBT: EXTR #2 ENDC WORD #2 UAT:NV SET UAT:NV+1 ENDM * UAT:ZZ MACRO S: SYMATT #1 IFF S:&NULL: IFT #(1,'FORTRAN')>0 SNAM UAT:ND ENDC  ENDC UAT:ND EQU $ IFF S:&NULL: IFT #(1,'FORTRAN')>0 RES UAT:NV*2,0 ENDC  ENDC ORG O: ENDM TITL .... BUF:R MACRO ************************************************************ * BUFF ER POOL GENERATION MACROS + * * * CALLING SEQUENCE * * BUF:R #1 * *  * * #1 - NUMBER OF BUFFERS * ************************************************************ * BUF:LN EQU 512 * * BUF:R - GENERATE BUFFER POOL * BUF:R MACRO LPOOL O: SET $ TABLE: REL SHARABLE TABLE: LOAD FM:SFM NAM BUF:N BUF:N EQU #(1) P: SET BUF:N BUF:LOOP MACENT IFT P: CHAN BUF: CHAIN LINK CHAN BUF:: STATIC LINK RES 4,0 WORD BUF:LN LENGTH RES 2,0 SECTOR RES 7,0 RES BUF:LN/2,0 BUFFER LENGTH P: SET P:-1 BUF:LOOP ENDC IFF P: ORG O: P: SET 1 ENDC ENDM TITL .... IOB:A MACRO * IOB:A IOB,LUN,OPC,OPM,BCT,BUF,CGI,OPO * * * IOB LABEL TO BE ASSIGNED TO START OF IOB * LUN LOGICAL UNIT NAME OR NUMBER *  OPC OPERATION CODE * RE: EQU 0 READ * WR: EQU 1 WRITE * PO: EQU 2 POSITION * FU: EQU 3 FUNCTION * OPM OPERATION MODIFIER * UF: EQU 0 UNFORMATTED * FA: EQU 1 FORMATTED ALPHANUMERIC * FB: EQU 2 FORMATTED BINARY * DA: EQU 3 DIRECT FORMATTED ALPHA *  DB: EQU 4 DIRECT FORMATTED BINARY * WP: EQU 5 WRITE PROMPT * FS: EQU 8 FORMATTED STREAM * DS: EQU 12 DIRECT STREAM * * BCT REQUESTED BYTE COUNT * BUF I/O BUFFER ADDRESS * CGI ADDRESS OF CURRENT FILE INDEX OR ZERO * OPO OPTIONAL MODE OF OPERATION * SB: EQU 11 START IN SECOND BYTE OF BUFFER * ER: EQU 12 DON'T CALL DOIO ERROR ROUTINE, GO TO USER * * TITL MACRO IOB:A IFT #?<7 NOTE 5,'NOT ENOUGH PARAMETERS' ENDC #1 WORD #2 LOGICAL UNIT NAME /NUMBER WORD 0 DEVICE DEDICATION NUMBER WORD #7 OPTIONAL ADDRESS OF CFI S: SYMVAL #8 IFF S:=0 IFT #8>15 S: SET #8  VALUE, NOT BIT EQUATE ENDC IFF #8>15 S: SET 1%#8 ENDC ENDC WORD #3%4+#4+S: WORD #5  BYTE COUNT WORD #6 I/O BUFFER ADDRESS WORD 0 ACTUAL COUNT PROCESSED WORD 0 SOFTWARE STATUS ENDM TITL * INPUT/OUTPUT BLOCK (IOB) * IO:LUN EQU 0 LOGICAL UNIT NAME/NUMBER IO:DDN EQU 1 DEVICE DEDICATION NUMBER IO:CRI EQU 2 ADDRESS OF CURRENT RECORD INDEX IO:CFI EQU IO:CRI CURRENT FILE INDEX POINTER IO:FC EQU 3 FUNCTION CODE IO:BCT EQU 4 BYTE COUNT REQUESTED IO:BUF EQU 5 I/O BUFFER ADDRESS IO:ACT EQU 6 ACTUAL COUNT PROCESSED IO:ST EQU 7 SOFTWARE STATUS * BISYNC PICO ONLY IO:HED EQU IO:BUF FIRST BCB ON CHAIN IO:LST EQU IO:ACT  LAST BCB PROCESSED * * FUNCTION CODE BITS * * BITS 15-6 MODE OF OPERATION ER: EQU 12 DON'T CALL DOIO ERROR ROUTINE,GO TO USER SB: EQU 11 START ON SECOND BYTE OF BUFFER HA: EQU 10 USED BY HALT I/O FUNCTION. UD: EQU 9 UN-DEDICATE DEVICE AFTER PERFORMING I/O * ER:V EQU 1%ER: SB:V EQU 1%SB: *   * RE: EQU 0 READ WR: EQU 1 WRITE PO: EQU 2 POSITION FU: EQU 3 FUNCTION * UNKNOWN OPEN: EQU 4 OPEN CLOSE: EQU 5 CLOSE * ASYNCH MUX ONLY SBU: EQU 4 SEND BUFFER SNL: EQU 6 SEND END-OF-LINE SEQUENCE ('SEND NEW LINE') SBK: EQU 5 SEND 'BREAK' SCC: EQU 7 SEND CONTROL CHARACTER WMR: EQU :C WRITE MODEM REGISTER WOT: EQU :D WRITE OPTION TABLE WSC: EQU  :E WRITE SPECIAL CHAR TABLE * BISYNC PICO ONLY IR: EQU 8 IMMEDIATE RETURN ON OPEN IR:V EQU  1%IR: BIT MASK * * * BITS 3-0 OPERATION MODIFIER * READ & WRITE UF: EQU 0 UNFORMATTED FA: EQU :B  FORMATTED ALPHANUMERIC FB: EQU :A FORMATTED BINARY FS: EQU :8 FORMATTED STREAM CD: EQU :2 SCOUT MULTI-CHANNEL SERIAL CHAR. DETECT (EOB) WP: EQU 1 WRITE PROMPT DA: EQU :F DIRECT ALPHANUMERIC DB: EQU 6 DIRECT BINARY DS: EQU :C DIRECT STREAM BS: EQU FS: SEQUENTIAL STREAM BINARY SA: EQU :9 SEQUENTIAL STREAM ALPHA RB: EQU FB: SEQUENTIAL RECORD BINARY RA:  EQU FA: SEQUENTIAL RECORD ALPHA DSB: EQU DS: DIRECT STREAM BINARY DSA: EQU :D DIRECT STREAM ALPHA DRB: EQU :E DIRECT RECORD BINARY DRA: EQU DA: DIRECT RECORD ALPHA * * FOR POSITION * * FOR POSITION (PO:) * FAB: EQU 0 FILE POINTER ABSOLUTE BYTES FRB: EQU 1 FILE POINTER RELATIVE BYTES WAB: EQU 2 WRITE POINTER ABSOLUTE BYTES WRB: EQU 3 WRITE POINTER RELATIVE BYTES AR: EQU 4 ABSOLUTE RECORDS RR: EQU 5 RELATIVE RECORDS RFP: EQU 6 READ FILE POINTER RWP: EQU 7 READ WRITE POINTER * MAGTAPE ONLY SBF: EQU 8 SKIP BLOCKS FORWARD SBR: EQU 9 SKIP BLOCKS REVERSE SKF: EQU 10 SKIP FILES FORWARD * * SCOUT MULTI-CHANNEL SERIAL HANDLER ONLY * WC: EQU 14 TRANSFER USER'S SPEC. TABLE PTR. TO DIB * * FOR FUNCTION * OP: EQU 0 OPEN CL: EQU 1 CLOSE PL: EQU 2 PUNCH LEADER WF: EQU 3 WRITE FILE MARK DF: EQU 4 DEVICE DEPENDENT FUNCTION SS: EQU 5 SELECT HARDWARE STATUS TF: EQU 6  TOP OF FORM SC: EQU 7 SOFTWARE CONTROL * MAGTAPE ONLY RWD: EQU 8 REWIND OFL: EQU 9 OFF-LINE EBL: EQU 10 ERASE BLOCK EFM: EQU 11 ERASE FILE MARK EOV: EQU 12 DO END OF VOLUME UBF: EQU 13 USER SUPPLIED BUFFER FUNCTION MOD. * * FOR OPEN BL: EQU 1 BLOCK I/O * * FOR ASYNCH MUX * ROT: EQU 1 READ OPTION TABLE CM: EQU 1 SPECIAL CHARACTER MATCH OPTION (ADD TO RBF:) RMR: EQU 2 READ MODEM REGISTER RM: EQU 2 RANGE MATCH OPTION (ADD TO RBF:) RBF: EQU 4 READ BUFFER AE: EQU 8 FIRMWARE AUTO ECHO OPTION (ADD TO RBF:) * TO: EQU 7 BIT NUMBER IN IO:FC TO INHIBIT HARDWARE WRITE ON WOT, WSC ID: EQU 7 BIT NUMBER IN IO:FC TO INHIBIT DATA TRANSFER ON RBF * * BISYNC PICO ONLY DOT: EQU 0 DUMP OPTION TABLE OPN: EQU 1 OPEN CLS: EQU 2 CLOSE EXU: EQU 3 EXECUTE REQUEST SAA: EQU 4  SET AUTO ANSWER * * * SOFTWARE STATUS * IOERR: EQU 15 ERROR CAUSED I/O TERMINATION * BISYNC PICO ONLY IOCOM: EQU 14 OPERATION COMPLETION FLAG * BITS 13-12 DESCRIBE CONCURRENT CONDITIONS TFORM: EQU 1%12   TOP OF FORM BFORM: EQU 2%12 BOTTOM OF FORM * RETRY: EQU 11 A RETRY WAS REQUIRED TO PERFORM THE OPERAT EOM: EQU 10 END OF MEDIUM ENCOUNTERED DURING OPERATION DELDA: EQU 9 DELETED DATA READ FROM FLOPPY DISK * ASYNCH MUX ONLY RANGM: EQU 8 RANGE MATCH OCCURRED ON RECEIVE LBK: EQU 7 TRANSMIT STATUS ONLY, LINE BREAK SEEN BY RECV HALF CHARM: EQU 7 CHARACTER MATCH OCCURRED ON RECEIVE * * IOS4 ERROR CODES * BITS 0-5 OF STATUS WORD CONTAIN LOWER BYTE OF ORROR CODE *  BIT 6 SET FOR UNRECOVERABLE * ERROR CLASSES ER:IOR EQU 0 I/O RECOVERABLE ER:IOU EQU 1  I/O UNRECOVERABLE SPACE 3 * NORMAL RETURN CODES NORML: EQU 0 NORMAL I/O COMPLETION EOF: EQU  1 END OF FILE (GOING FORWARD) BOF: SET 3 TITL .... IOU: IOR: MACROS * MACROS FOR IOS4 ERROR CODES * IOR: FOR RECOVERABLE * IOU: FOR UNRECOVERABLE * MACRO IOU: #1 EQU 1%6+#2 ENDM MACRO IOR: #1  EQU #2 ENDM * * ERROR CODES * IOR: HALTD:,1 I/O HALTED IOR: NORDY:,2 NOT READY IOR: WRTPR:,3 WRITE PROTECT IOR: TIMOT:,4 TIME OUT IOR: PWRFL:,5 POWER FAIL & UNABLE TO RECOVER IOR: DDTNA:,6 DDT NOT AVAILABLE,CFM ONLY IOR: VOLNU:,7 VOLUME NOT ON UNIT IOR: VOLNF:,8 VOLUME NOT FOUND IOR: NOREL:,9 LOGICAL UNIT NOT RELEASED IOR: AGAIN:,10 TRY AGAIN IOR: MNTAPE:,11 MOUNT NEXT VOLUME (MAG TAPE ONLY) * IOU: CKSUM:,1 BAD CHECK SUM IOU: UNDEV:,2 UNASSIGNED DEVICE IOU: NIUAT:,3 LUN NOT IN UAT IOU: REOM:,4 REACHED END OF MEDIA IOU: HARDW:,5 HARDWARE ERROR IOU: ILLOP:,6 ILLEGAL OPERATION FOR THIS DEVICE IOU: NEMEM:,7 NON-EXISTANT MEMORY ADDR IOU: INRTX:,8 MEMORY ADDR IN SYSTEM ARTEA IOU: DIRFL:,9 DIRECTORY FULL IOU: NOLAB:,10 DISK NOT LABELED IOU: FAOV:,11 FILE ADDR OVERFLOW IOU: ILLAU:,12 ILLEGAL AU IOU: AUNF:,13 AU NOT FOUND IOU: WDEOF:,14 WRITE DIRECT HIT EOF IOU: NOTXT:,15 NOT EXTENDABLE IOU: ILLFA:,16  ILLEGAL FILE ADDR IOU: ALOFU:,17 ALLOCATION TABLE FOULED UP IOU: SYSUG:,18 SYSTEM USAGE ONLY IOU: FCBCH:,19 FCB CHAIN BAD IOU: FILEO:,20 FILE OPEN IOU: NOPEN:,21 FILE NOT OPEN IOU: FNOP:,21 FILE NOT OPEN IOU: OONWR:,22 OLD OR NEW WRONG, CFM ONLY IOU: ILLFP:,22 ILLEGAL FILE POINTER IOU: NOUNT:,23 UNIT NOT GIVEN IOU: UNFCB:,24 UNASSIGNED FCB  IOU: BUFWP:,25 BUFFER HAS WRITE PENDING IOU: NOAU:,26 NO MORE FREE AU'S IOU: BADTC:,27 BAD TYPE CODE IOU: ABORT:,28 ABORT IOU: LDSR:,29 DSR NOT UP (ASYNCH MUX ONLY) IOU: BRKDT:,30 'BREAK' DETECTED ON RECEIVE (ASYNCH MUX ONLY) IOU:  PE:,31 PARITY ERROR ON RECEIVE (ASYNCH MUX ONLY) IOU: OE:,32 OVERRUN ERROR ON RECEIVE (ASYNCH MUX ONLY) IOU: UBTSM:,33  USER'S BLOCK TO SMALL IOU: ONOOR:,34 OVERLAY NUMBER OUT OF RANGE IOU: DVNAL:,35 DEVICE NOT ALLOCATED TO USER (BISYNC PICO) IOU: DVNOP:,36 DEVICE NOT OPENED (BISYNC PICO) IOU: ILLCM:,37 ILLEGAL COMMAND (BISYNC PICO) IOU: DVINO:,38 DEVICE INOPERATIVE (BISYNC PICO) IOU: EOTPD:,39 EOT FAILED PAD CHECK (BISYNC PICO) IOU: NAKPD:,40 NAK FAILED PAD CHECK (BISYNC PICO) IOU: MSGAB:,41 MESSAGE ABORTED (BISYNC  PICO) IOU: BCCER:,42 BCC ERROR (BISYNC PICO) IOU: ILLCC:,43 ILLEGAL CONTROL CHARACTER (BISYNC PICO) IOU: RCVOR:,44 RECEIVE OVERRUN (BISYNC PICO) IOU: LGOVR:,45 LEADING GRAPHICS OVERRUN (BISYNC PICO) IOU: RTXER:,63 RTX ERROR * * I/O ERROR BLOCK EQUATES * IOE:AC EQU 0 ACB ADDR OF ERROR ACTIVITY IOE:EC EQU 1  ERROR CODE IOE:K EQU 2 K-REG OF ACTIVITY WITH ERROR IOE:DI EQU 3 DIB ADDR IOE:TI EQU 4 TIB ADDR TITL I:LOAD & I:LD410S PARAMETER BLOCK EQUATES & MACROS * PARAMETER BLOCK EQUATES * LD:LUN EQU 0 LOAD FILE LUN LD:BUF EQU 1 FILE INPUT BUFFER ADDRESS LD:OFF EQU 2 RELOCATION OFFSET LD:HLL EQU 3 HIGH LOAD LIMIT LD:LLL EQU 4 LOW LOAD LIMIT LD:XAD EQU 5 EXECUTION ADDRESS LD:HAD EQU 6 HIGHEST ADDRESS LOADED LD:FLG EQU 7 FLAG WORD LD:SDA EQU 8 SLAVE DEVICE ADDRESS (410S ONLY) LD:STP EQU 8 TOP-DOWN LOAD STEP VALUE (I:LOAD ONLY) LD:SIZE EQU 9 SIZE OF LOAD SERVICE PARAMETER BLOCK * * LD:FLG (FLAG WORD) EQUATES * LDF:ERR EQU 15 ERROR OCCURRED DURING LOAD LDF:IOE EQU 14 I/O ERROR LDF:BTC EQU 13 BAD TYPE CODE ERROR LDF:ADE EQU 12 ADDRESSING ERROR LDF:NOS EQU 11 NO 410S AT SPECIFIED DEVICE ADDRESS (410S ONLY) LDF:MAE EQU 10  MEMORY ADDRESS ERROR (16-32K) (410S ONLY) * LDF:PM EQU 2 PUBLIC MEMORY IN UPPER 32K (410S ONLY) LDF:EXA EQU 1 EXECUTION ADDRESS SPECIFIED (410S ONLY) LDF:EX EQU 0 INITIATE 410S EXECUTION (410S ONLY) TITL * PARAMETER BLOCK GENERATION MACRO * * LABEL LOAD: LUN,OFF,(BUF),(HLL),(LLL),(XAD),(FLG),(SLV) * LOAD: MACRO WORD #(1) LD:LUN .. LUN WORD #(3)+0 LD:BUF .. INPUT BUFFER ADDRESS WORD #(2) LD:OFF .. RELOCATION OFFSET WORD #(4)+0 LD:HLL .. HIGH LOAD LIMIT WORD #(5)+0 LD:LLL .. LOW LOAD LIMIT WORD #(6)+0 LD:XAD .. EXECUTION ADDRESS (410S ONLY) WORD 0 LD:HAD .. HIGH LOAD ADDRESS/NEXT FREE ADDRESS WORD #(7)+0 LD:FLG .. FLAG WORD (410S ONLY) IFT #(8,?) WORD #(8) LD:SDA .. USER SLAVE DEVICE ADDRESS (410S ONLY) ENDC IFF #(8,?) WORD :F0 LD:SDA .. DEFAULT SLAVE DEVICE ADDRESS (410S ONLY) ENDC * S: SET #(?)<2 S: SET #(?)>8++S: IFT S: NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDM TITL I:OVL PARAMETER BLOCK EQUATES AND MACROS * * OV:A BLOCK EQUATES * OVA:LUN EQU 0 LUN ENTRY IN OV:A BLOCK OVA:ADR EQU 1 DIRECTORY ADDRESS ENTRY IN OV:A BLOCK OVA:LEN EQU 2 LENGTH ENTRY IN OV:A BLOCK * OVL:A MACRO #(1) WORD #(2) LUN TO USE FOR OVERLAYS WORD #(3) ADDRESS OF USER'S DIRECTORY BLOCK WORD #(4) LENGTH OF USER'S DIRECTORY BLOCK ENDM OVL: MACRO MACLAB OVL:A #(-1),#(1),#(2),#(3) ENDM  SPACE 2 SAVE END NOTE E,'INCORRECT NUMBER OF PARAMETERS' ENDC ENDM TITL I:OVL PARAMETER BLOCK EQUATES AND MACROS  TITL I O S D . M A C - IOS DEVELOPMENT EQUATES & MACROS (93421-1A-F101) TITL .... CONTENTS ************************* *  * * IOSD.MAC * * * ************************* * * DIB EQUATES *  CIB EQUATES * TIB EQUATES * DIO DEVICE EQUATES * NON-DIO DEVICE EQUATES * BIT:WORD MACRO * BIT:EQU MACRO * BIT:SET MACRO * INT:SEQ MACRO * DIB:ST MACRO * CIB:ST MACRO * TVDIBCIB MACR  O * CIB:DK MACRO * CIB:DF MACRO * CIB:DFQ MACRO * CIB:DP: MACRO * OPT:DS MACRO * DIB:DK MACRO * DIB:DM MACRO * DIB:DH MACRO * DIB:DF MACRO * DIB:DFQ MACRO * DIB:DS MACRO * CIB:DM MACRO * CIB:DH MACRO * CIB:DS MACRO * DIB:DP MACRO * CIB:DP MACRO * COND  MACRO * COND1 MACRO * D:AC MACRO * DIB:TV MACRO * DIB:LP MACRO * C:AC MACRO *  CIB:TV MACRO * CX:AC MACRO * DIB:MT MACRO * CIB:MT MACRO * DIB:BP MACRO * DBP:O MACRO * CIB:BP MACRO * * * REV E500 - ADDED FIFTH PARAMETER TO DIB:LP TO SPECIFY TIME-OUT * SHIFT COUNT VALUE (FOR THE AXIOM IMP-2 PRINTER) * MSS RICHARDSON * * REV E600 - REA 10156 FIXED (CX:AC MACRO); REA'S 10168, 10173 * FIXED (CIB:BP MACRO) * DCR 15/JAN/81 * * REV E700 - CHANGED LINE PRINTER TO 81 COLUMNS. SLM 2/MAR/81 * * REV F000 - INT:SEQ MACRO FIXED SD 2/APR/81 * FIXED FS: IN READ/WRITE DSW WORDS FOR DISK BLOCK I/O * EQUATED FROM DFQDA: TO DFDA: FOR QUAD FLOPPY DIB *  DIB:DFQ TO GENERATE CORRECT CHAN NAME. * (REAS FIXED: 10192,12979,12977,12976) * * REV F100 - ADDED DIB:DK, CIB:DK, DISK FAMILIES. * ALSO, INCLUDES CHANGES FOR SCOUT MULTI-CHANNEL SERIAL * IO HANDLER. * CWK 24/SEP/81. * * * REV F101 - CHANGED DI:ERM FROM :2000 TO :3B14 FOR USE IN *  IOSTTY.ASM (CHARACTER DRIVER). * VAW & CWK 02/OCT/81. * * CHANGED CIB:DK TO CORRECT FAMILY LOGIC. * ALSO, FIXED RD,WRT,POS&FUN ENTRY POINTS * FOR DFQ.  ALSO, INCLUDED DFQ IN EOB SEQUENCE. * CHANGED FAM:PHXN AND FAM:PHXA EQU NAMES TO FAM:PHWS *  AND FAM:PHNS. THIS CHANGES ITS MEANING; IT * NOW REFERS TO WHETHER OR NOT THE DRIVE HAS *  SPO OPTION SO WE CAN MAKE SURE DH REFERS TO * THE FIXED VOLUME. *  MDB & CWK 07/OCT/81. * * *** TITL DIB EQUATES * DEVICE INFORMATION BLOCK (DIB) * DI:PER EQU 0 PEER POINTER DI:FLG EQU 1 DIB FLAGWORD DI:CIB EQU 2 MASTER CIB ADDRESS DI:FCB EQU 3 FILE CONTROL BLOCK LIST HEAD DI:NAM EQU 4 DEVICE NAME (4 CHARACTERS) DI:DN EQU 6 DEDICATION NUMBER DI:DS EQU 7  DEDICATION SEMAPHORE DI:SPB EQU 8 WATCHDOG TIMER -- NUMBER OF SHIFTS PER BYT DI:WBT EQU 9  WATCHDOG TIMER -- BASE TIME DI:DSW EQU 10 DEVICE SPECIFICATION WORDS (10-13) * 14-15 RESERVED * * DIB FLAGWORD * EQU 15 ALWAYS ZERO FOR DIB DIF:ND EQU 14 NO DEDICATION ON THIS DEVICE DIFAM:DP EQU 13 DI:DDN IS A POINTER TO A DEDICATION NUMBER DIF:NT EQU 12 NO TIMER FOR READ DIF:RT EQU 11 RETRY ON POWER FAIL DIF:FC EQU 10 FORM CONTROL DIF:OP EQU 9 DEV  ICE IS OPEN. DIF:MC EQU 8 SCOUT MULTI-CHANNEL PSEUDO-OPEN FLAG DIF:NCFL EQU 2 FLIST IS NONCONTIGUOUS DIF:UI EQU 1  DEVICE SUPPORTS UNSOLICITED INPUT DIF:BF EQU 0 BUFFER FLAG FOR CARD READER DIF:MT EQU 0 DISK IS MOUNTED DIF:NM EQU 1 NO AUTOMATIC MOUNT ON DISK TITL * DEVICE INFORMATION BLOCK FOR CHARACTER DEVICES * DI:CPL EQU 16  CHARACTERS PER LINE DI:LPP EQU 17 BOTTOM OF FORM COUNT/LINES PER PAGE DI:BMI EQU 18  BRANCH/MODE WORD FOR INPUT DI:BMO EQU 19 BRANCH/MODE WORD FOR OUTPUT DI:EOL EQU 20 POINTER TO END OF LINE SEQUENCE DI:TOF EQU 21 POINTER TO TOP OF FORM SEQUENCE DI:ERM EQU 22 ERROR MASK FOR STATUS DI:LC EQU 23 LINE COUNTER DI:EDT EQU 24 EDIT CHARACTER DI:ELI EQU 25 END OF LINE SEQUENCE FOR INPUT DI:BUF EQU 26 POINTER TO 2 WORD INTERNAL BUFFER DI:PU EQU 27 POINTER TO POWER UP SEQUENCE * * DEVICE INFORMATION BLOCK FOR SCOUT MULTI-CHANNEL SERIAL IO HANDLER * DI:CTRL EQU 28 BOARD CONTROL WORD (AUTO-ECHO INCLUDED) DI:MODE EQU 29 MODE WORD (CHAR. LENGTH, NO. OF BYTES, ETC.) DI:TYPE EQU 30 TYPE OF DEVICE (TV, LP, TK, ETC. (#) ) DI:SPC EQU 31 CONFIG. SPECIAL CHAR. TABLE ADDR. PTR. DI:UTBL EQU 32 USER'S SPECIAL CHAR. TABLE ADDR. PTR. * *  DEVICE INFORMATION BLOCK FOR CARD READER * *I:CPL EQU 16 CHARACTERS PER CARD *I:LPP EQU 17 =0, NOPAGES ON CARD READER *I:BMI EQU 18 BRANCH/MODE WORD FOR INPUT DI:CBA EQU 19 CURRENT BUFFER ADDR DI:ABA EQU 20 ALTERNATE BUFFER ADDR, =0 FOR NO DOBLE BUF DI:TRT EQU 21 TRANSLATION TABLE ADDR *I:ERM EQU 22 ERROR MASK FOR STATSUS TITL * DEVICE INFORMATION BLOCK FOR DISKS * DI:BPS EQU 16  BYTES PER SECTOR DI:SPT EQU 17 SECTORS PER TRACK DI:TPC EQU 18 TRACKS PER CYLINDER DI:CPD EQU 19 CYLINDERS PER DISK DI:SPA EQU 20 SECTORS PER ALLOCATION UNIT DI:CYL EQU 21  CUURRENT CYLINDER FOR FLOPPY DI:TRY EQU 22 HARD/RATE ERROR RETYR COUNT DI:VTS EQU 23 VTOC SEMAPHORE DI:ATS EQU 24 ALLOCATION TABLE SEMAPHORE DI:HOS EQU 25 HEAD OFFSET DI:FAM EQU 27  DISK DEVICE FAMILY. DI:HSA EQU 26 HEAD SEMAPHORE ADDR DI:SCS EQU 27 SEEK COMPLETE SEMAPHORE ADDR DI:FLP EQU 28 FLIST POINTER IN AU DI:FLN EQU 29 FLIST LENGTH IN SECTORS DI:ALO EQU  30 ALLOCATION TABLE SECTOR ADDR DI:APD EQU 31 AU PER DISK DI:BPA EQU 32 BYTES PER AU DI:SBF EQU 33 SECTORS PER BUFFER DI:SAU EQU 34 DI:BIT EQU 35 BIT # DI:CUR EQU 36  CURRENT COUNT DI:REQ EQU 37 REQUESTED NUMBER OF AUS DI:FND EQU 38 NUMBER FOUND DI:FAU EQU 39 FOUND AU START * * DEVICE INFORMATION BLOCK FOR MINI-FLOPPY * DI:BMW EQU 21 DI:INT EQU 40 DI:SCT EQU 41 DI:SEC EQU 42 * * DEVICE INFORMATION BLOCK FOR MAGTAPE * DI:BLKCT EQU 16 BLOCK COUNT DI:SERV EQU 17 ADD RESS OF MAGTAPE SERVICE ROUTINES DI:BMR EQU 20 BRANCH/MODE WORD REWIND DI:OMW EQU 21 ORIGINAL MODE WORD DI:MASK EQU 24 ERROR MASK DI:FLAG EQU 25 ERROR FLAGS DI:THWS EQU 26 TEMPORARY H/W STATUS TITL * DEVICE INFORMATION BLOCK FOR ASYNCH MUX * DI:FIO EQU 16 ADDRESS OF FORMATTED I/O ROUTINE DI:CNFG EQU 17 ADDRESS OF CONFIGURATION ROUTINE * * FLAGWORD BITS FOR ASYNCH MUX DIB * DIF:DC EQU 3 SET FOR DYNAMIC CONFIGURATION DIF:FA EQU 4 SET IF FA: HANDLER LOADED * * DEVICE INFORMATION BLOCK FOR BISYNC PICO * DI:DVS EQU 16 DEVICE STATE WORD DI:OPT EQU 17 OPTION TABLE DI:SID EQU 29 STATION IDENTIFIER TITL CIB EQUATES * CONTROLLER INFORMATION BLOCK (CIB) * CI:PER EQU 0  PEER POINTER CI:FLG EQU 1 CIB FLAGWORD CI:MST EQU 2 MASTER LINK CI:DIB EQU 3 SUBORDINATE LINK (DIB LIST HEAD) CI:PRI EQU 4 REQUEST PRIORITY CI:DA EQU 5 DEVICE ADDRESS CI:IV EQU 6  DEVICE INTERRUPT VECTOR LOCATION CI:RD EQU 8 ENTRY POINT TO READ CI:WRT EQU 9 ENTRY POINT TO WRITE CI:POS EQU 10 ENTRY POINT TO POSITION CI:FUN EQU 11 ENTRY POINT TO FUNCTION CI:EOB EQU 12 12-15 EOB SEQUENCE * JST R:SA12 USE SYSTEM STACK * COPY TIB,Y TIB ADDR OBVIOUSLY * JMP *$+1 * DATA I:EOB EOB ADDR CI:T1 EQU 16 TEMP CI:T2 EQU 17 TEMP CI:APR EQU 18 SAVEED PRIORITY OF ACTIVITY USING CIB CI:TIB EQU 19 TIB ADDR CI:USM EQU 20 CONTROLLER USAGE SEMAPHORE CI:TIM EQU 21 WATCH DOG TIMER CALCULATED INTERVAL CI:CSM EQU 22 COMPLETION SEMAPHORE CI:CFL EQU 23 COMPLETION FLAG * * CIB FLAGWORD * CIF:PU EQU  14 POWER UP OCCURED CIF:TO EQU 13 TIME OUT CAUSED COMPLETION CIF:OO EQU 12 OVERLAPPED OPERATIONS TITL * CONTROLLER INFORMATION BLOCK FOR DISK * CI:RAT EQU 24 RATE ERROR RETRY COUNT CI:HRD EQU 25 HARD ERROR RETRY COUNTER CI:OPC EQU 27 OP CODE CI:DCB EQU CI:OPC START OF DISK CONTROL BLOCK CI:UNT EQU 28 UNIT CI:CYL EQU 29 CYLINDER CI:SEK EQU 30 RELATIVE SEEK COUNT CI:SEC EQU 31 SECTOR CI:CNT EQU 32 WORD COUNT CI:BUF EQU 33 BUFFER ADDR CI:IEA EQU 34 INTERUPT ENABLE & ADDR * * CONTROLLER INFORMATION BLOCK FOR HIGH CAPACITY DISK * CI:IOB EQU 35 NEXT IOB ADDR CI:WP EQU 36 WORDS PROCESSED CI:CST EQU 37 CONTROLLER SATTUS CI:DST EQU 38 DRIVE STATUS CI:DIV EQU 39 INTERUPT VECTOR, JSK CI:EOB CI:SSA EQU 40  SEEK COMPLETE SEMAPHORE ADDR TITL * CONTROLLER INFORMATION BLOCK FOR FLOPPY * CI:FWP EQU 35  WORDS PROCESSED CI:FST EQU 36 STATUS CI:FIV EQU 37 INTERUPT VECTOR CI:FT1 EQU 38  TEMP CI:EIV EQU 39 ERROR INTERUPT VECTOR * * CONTROLLER INFORMATION BLOCK FOR MINI-FLOPPY * CI:CLK EQU  27 * * CONTROLLER INFORMATION BLOCK FOR MAGTAPE * CI:RTY EQU 24 RATE ERROR RETRY COUNT CI:WCNT EQU 26 WAIT RETRY COUNT CI:TIC EQU 27 WAIT TIMER VALUE CI:MODE EQU 28 LAST PICO MODE WORD * * CONTROLLER INFORMATION BLOCK FOR ASYNCH MUX * CI:OPT EQU 24 ADDRESS OF CHANNEL OPTION TABLE OP:SCT EQU 2 OFFSET OF SPEC CHAR TABLE IN CIB EXTENSION * * CONTROLLER INFORMATION FOR SCOUT MULTI-CHANNEL SERIAL * CI:EOB2 EQU 24 2ND PART IN EOB ROUTINE TITL TIB EQUATES * TEMPORARY INPUT BLOCK (TIB) - USER'S STACK * TI:IOB EQU 0 IOB ADDRESS TI:FCB EQU 1 FCB ADDR TI:DIB EQU 2 DIB ADDRESS TI:CIB EQU 3 CIB ADDRESS TI:BCT EQU 4 REQUESTED BYTE COUNT TI:BUF EQU 5 BUFFER ADDRESS TI:FC EQU 6 FUNCTION CODE TI:SOF EQU 7 SOFTWARE STATUS TI:PRI EQU 13 TEMPOARY SAVE FOR ACTIVITIES PRIORITY. * * TIB ON ENTRY TO HANDLERS * TI:CRI EQU 12  ADDR OF CURRENT RECORD INDEX * * TIB FOR DIO * TI:TIM EQU 8 WATCHDOG TIMER VAQLUE TI:ACT EQU 9  ACTUAL BYTE COUNT TI:BMW EQU 10 BRANCH/MODE WORD TI:IBF EQU 11 INTERMEDIATE BUFFER ADDR * * TIB FOR SCOUT MULTI-CHANNEL SERIAL IO HANDLER * TI:CMD EQU 10 COMMAND CONTROL WORD TI:IV EQU 19 RECEIVE/TRANSMIT INTERRUPT VECTOR LOCATION TI:CHR EQU 20 NEGATIVE COUNT SPECIAL CHARS. TI:SAVE1 EQU 21 TEMPORARY STORAGE TI:SAVE2 EQU 22  " " " " " " * * TIB FOR DISKS * *TI:TIM EQU 8 WATCHDOG TIMER VAQLUE TI:SEC EQU 9 SECTOR NUMBER TI:TRK EQU 10 TRACK NUMBER (HEAD NUMBER) TI:CYL EQU 11 CYLINDER NUMBER * * TIB FOR MAGTAPES * TI:FCSS EQU 21 FILE MANAGER FUNCTION CODE SAVE TI:BCSS EQU 22 BLOCK COUNT SAVE * * TIB FOR ASYNCH MUX * TI:UTL EQU TI:CRI UTILITY PARAMETER TI:OPT EQU 18 ADDR OF OPTION TABLE GOES HERE TI:SCT EQU 19 ADDR OF SPECIAL CHAR TABLE GOES HERE TI:GCB EQU 20 FLAG SET IF CIB OCCUPIED TI:KSAVE EQU 21 SAVE K REG HERE ON ENTRY TI:SYSTM EQU 22 NON-ZERO TO ALLOW TIMOUT * * TIB FOR BISYNC PICO * TI:IST EQU 10 DEVICE STATUS (FROM INTERRUPT ROUTINE) TI:FLG EQU 18  FLAG FOR NON-BCB OPERATION TI:BCB EQU 19 ADDRESS OF BCB CURRENTLY BEING PROCESSED TI:CAF EQU 20  COMPARE ADDRESS FLAG ON READ TI:PFE EQU 21 FLAG FOR POWER FAIL TERMINATION TI:STT EQU 22 STATUS RETURNED FOR BCB CHAIN * * TIB ON RETURN FROM HANDLERS * *TI:ACT EQU 9 ACTUAL BYTE COUNT TI:HWS EQU 10 HARDWARE STATUS (TWO WORDS) TI:HW2 EQU 11 HARDWARE STATUS WORD 2 * * TIB EQUATES * TI:T1  EQU 14 TEMP CELL TI:T2 EQU 15 TEMP CELL TI:T3 EQU 16 TEMP CELL TI:T4 EQU  17 TEMP CELL TI:QUO EQU 18 RELATIVE AU TI:TVW EQU TI:QUO TV WAIT COUNT TI:REM EQU 19 REMIANDER OF SECTOR OR AU CALCULATION TI:RAU EQU 20 EXTENT RELATIVE AU BASE TI:PAU EQU 21 EXTENT PHYSICAL AU BASE TI:NAU EQU 22 NUMBER OF AUS IN EXTENT TI:FP1 EQU 23 WORKING FILE POINTER TI:FP2 EQU 24 WORKING FI LE POINTER TI:WRQ EQU 25 WORKING REQUEST COUNT TI:PL EQU TI:WRQ PARAMETER LIST ADDR TI:WAC EQU 26  WORKING ACTUAL COUNT TI:FNO EQU TI:WAC FNO TI:WSF EQU 27 WOKING SOFTWARE STATUS TI:UBX EQU 28 USERS BUFFER INDEX TI:CAU EQU 29 CURRENT AU TI:CNX EQU 30 CURRENT INDEX TI:T5 EQU 31 TEMP CELL TI:T6 EQU 32 TEMP CELL TI:FCS EQU 33 FUNCTION CODE SAVE TI:BCS EQU 34 BYTE COUNT SAVE TI:BUS EQU 35 BUFFER ADDR SAVE TIBLN: EQU 36 TIB LENGTH TITL DIO DEVICE EQUATES *  DISTRIBUTED I/O * IODAD: SET :F IOD ADDRESS (MAY ONLY BE :C,:D,:E OR :F) IODIB: SET :C0 IOD INTERRUPT ADDRESS BASE * CRCN: SET 0 CARD READER CHANNEL NUMBER CRDA: SET IODAD:%3+CRCN:%1 .  DEVICE ADDRESS CRIA: SET CRCN:%3+IODIB: . INTERRUPT ADDRESS * MTCN: SET 1 MAGNETIC TAPE CONTROLLER CHANNEL NUMBER MTDA: SET IODAD:%3+MTCN:%1 . DEVICE ADDRESS MTIA: SET MTCN:%3+IODIB: . INTERRUPT ADDRESS * TVCN: SET 2 CRT CHANNEL NUMBER TVDA: SET IODAD:%3+TVCN:%1 . DEVICE ADDRESS TVIA: SET TVCN:%3+IODIB: . INTERRUPT ADDRESS * IECN: SET 3 IEEE INTELLIGENT CABLE CHANNEL NUMBER IEDA: SET IODAD:%3+IECN:%1 . DEVICE ADDRESS IEIA: SET IECN:%3+IODIB: . INTERRUPT ADDRESS * TYCN: SET 4 TELETYPEWRITER  CHANNEL NUMBER TYDA: SET IODAD:%3+TYCN:%1 . DEVICE ADDRESS TYIA: SET TYCN:%3+IODIB: .  INTERRUPT ADDRESS * PRCN: SET 5 HIGH SPEED PAPER TAPE READER CHANNEL NUMBER PRDA: SET IODAD:%3+PRCN:%1 . DEVICE ADDRESS PRIA: SET PRCN:%3+IODIB: . INTERRUPT ADDRESS * PPCN: SET 6  HIGH SPEED PAPER TAPE PUNCH CHANNEL NUMBER PPDA: SET IODAD:%3+PPCN:%1 . DEVICE ADDRESS PPIA: SET PPCN:%3+IODIB: . INTERRUPT ADDRESS * LPCN: SET 7 LINE PRINTER CHANNEL NUMBER LPDA: SET IODAD:%3+LPCN:%1 . DEVICE ADDRESS LPIA: SET LPCN:%3+IODIB: . INTERRUPT ADDRESS TITL NON-DIO DEVICE EQUATES * NON-DIO * DFCN: SET :11 DFDA: SET DFCN:%3 DISK, STANDARD FLOPPY * DFQDA: SET DFDA: DISK, QUAD FLOPPY * DMCN: SET :14 DMDA: SET DMCN:%3 DISK, MEDIUM CAPACITY * DHCN: SET :15 DHDA: SET DHCN:%3 DISK, HIGH CAPACITY SWDA: SET DHCN:%3 DISK, SHUGART WINCHESTER QWDA: SET DHCN:%3 DISK, QUANTUM WINCHESTER PHDA: SET DHCN:%3 DISK, PHOENIX * DSDA: SET :30 DISK, SCOUT DSIA: SET :C8 INTERRUPT VECTOR ADDRESS (SAME AS MT) DSMOD: SET :8407 IBM FORMAT, 8", SINGLE DENSITY MAX:SPT SET 26 MAXIMUM SECTORS ON A TRACK = 26 FGAP: SET 26 26 BYTE GAP3 (BETWEEN DATA AND NEXT HEADER) FGAP2: SET 54 54 BYTE GAP3 FOR DOUBLE DENSITY * DPDA: SET 6 DEFAULT PICO-FLOPPY CHANNEL IS 6 * ETIODAD: SET :F CHANNEL NO. FOR IOD WITH EXTRA TV-S ETIODI B: SET :C0 INTERRUPT VECTOR BASE FOR THAT IOD MCSDA: SET :40 DEFAULT DEVICE ADDRESS FOR SCOUT MULTI-CHANNEL SERIAL * *  THE INTERRUPT ADDRESS SPACE FOR THE SCOUT MCS WAS ALLOCATED * BELOW LOCATION :200 BECAUSE IT MUST ALSO FUNCTION IN CONJUNCTION * WITH THE SCOUT SPI BOARD WHICH INTERRUPTS TO THE SAME LOCATIONS * AS THE DIO. INTERRUPT VECTOR ADDRESS MUST BE BELOW 8K. * MCSIV: SET :180 DEFAULT INTERRUPT BASE ADDRESS TITL DIB & CIB GENERATION SUPPORT EQUATES & MACROS * * MISCELLANEOUS EQUATES * R:SA12 EQU :3F LF: EQU :A FF: EQU :C CR: EQU :D * * EQUATES FOR DISK DEVICE FAMILIES. * FAM:DM EQU :1 PERTEC MEDIUM CAPACITY DISK DRIVES FAM:DH EQU :2 CDC STORAGE MODULE DISK DRIVES FAM:SWIN EQU :3  NM4 SHUGART WINCHESTER DISK DRIVES FAM:QWIN EQU :4 NM4 QUANTUM WINCHESTER DISK DRIVES FAM:PHWS EQU :5 CDC PHOENIX DISK WITH SPO OPTION FAM:PHNS EQU :6 CDC PHOENIX DISK WITHOUT SPO OPTION FAM:SWNS EQU :13 NM4 SHUGART WINCHESTER DISK DRIVES ON SCOUT FAM:QWNS EQU :14 NM4 QUANTUM WINCHESTER DISK DRIVES ON SCOUT * FAM:DF EQU :20 STANDARD FLOPPY DRIVES FAM:DP EQU :21 MINI-FLOPPY DRIVES FAM:DFQ EQU :22 QUAD FLOPPY DRIVES * FAM:DS EQU :40 SCOUT FLOPPY DRIVES * * BUILD A WORD OF BITS MACRO * BIT:WORD MACRO WORD MACLAB BIT:EQU MACENT EQU MACLAB BIT:SET MACENT SET MACLAB * BIT:SET SET 0 * BIT:LOOP MACENT NULL IFT #(1,?) BIT:SET SET 1//#(1)++BIT:SET BIT:LOOP #(2),#(3),#(4),#(5),#(6),#(7),#(8) ENDC IFF '##(0,1,1)'='N' #(-1) #(0) BIT:SET ENDC ENDM TITL * MACRO FOR INTERRUPT SEQUENCE * INT:SEQ MACRO JST R:SA12 COPY =$-CI:EOB-1,X CIN ADDR JMP *$+1 IFF #(1,?) EXTR  I:EOB WORD I:EOB ENDC IFT #(1,?) EXTR #1 WORD #(1) ENDC ENDM * * STANDARD DIB MACRO * * SUPPORTS: TK00 TY00 TP00 TR00 TV00 * LP00 (81,57,LF:) CR00 PP00 PR00 * DF00 DF01 DF02 DF03 (ALL FLOPPIES ARE SINGLE DENSITY) * DM00 DM01 (BOTH ARE 5MB) * DM02 DM03 (BOTH ARE 10MB) * DH00 (40MB) * DH01 (80MB) * DH02 (150MB) * DH03 (300MB) * DIB:ST MACRO LOAD D:#(1) ENDM * * STANDARD CIB MACRO FOR DM0 AND DH0 * CIB:ST MACRO LOAD C:#(1,1,3) ENDM TITL ** MACRO: TVDIBCIB * * USAGE: TO CREATE DIB'S AND CIB'S FOR OTHER CRT'S ADDED * TO THE SYSTEM.... * * TVDIBCIB  NAME,CHAN * TVDIBCIB NAME,BDAD,CHAN,VECT * * NAME = DEVICE NAME (4 CHARACTERS) * CHAN = CHANNEL NUMBER FOR THIS DEVICE * BDAD = BOARD ADDRESS (DEFAULT = :F) * VECT = BASE VECTOR FOR THE BOARD (DEFAULT = :C0) * * EXAMPLE: TVDIBCIB TV01,3 * * THIS CREATES DIB & CIB FOR TV01 ON CHANNEL 3 * * TVDIBCIB TV02,:C,3,:80 * * THIS CREATES DIB & CIB FOR TV02 AT DEVICE ADDR :C6 * AND WITH A DATA VECTOR AT :98 (:80 + 3*8) * ** SPACE 1 TVDIBCIB MACRO * * GENERATE DIB FOR THIS TERMINAL * DIB:TV #(1),#(2),#(3),#(4) * * GENERATE CIB FOR THIS TERMINAL * CIB:TV #(1),#(2),#(3),#(4) ENDM TITL SCOUT DIB CONFIGURING MACRO * * OPT IONAL CONFIGURATION MACRO FOR SCOUT FLOPPY DIB * OPT:DS MACRO DS DSMOD: SET DSMOD:&:7F++:8400 ONLY FIELD NOT REQUIRED IS 'GAP=' IFT #(1,'MINI') DSMOD: SET DSMOD:--:600 ENDC IFT #(2,'MINI') DSMOD: SET DSMOD:--:600 ENDC IFT #(3,'MINI') DSMOD: SET DSMOD:--:600 ENDC IFT #(4,'MINI') DSMOD: SET DSMOD:--:600  ENDC IFT #(1,'UNI') DSMOD: SET DSMOD:--:8000 ENDC IFT #(2,'UNI') DSMOD: SET DSMOD:--:8000  ENDC IFT #(3,'UNI') DSMOD: SET DSMOD:--:8000 ENDC IFT #(4,'UNI') DSMOD: SET DSMOD:--:8000  ENDC IFT #(1,'GAP=') YYY: SET #(1,?) DSMOD: SET #(1,5,YYY:)--DSMOD:&:7F--DSMOD: ENDC IFT #(2,'GAP=') YYY: SET #(2,?) DSMOD: SET #(2,5,YYY:)--DSMOD:&:7F--DSMOD: ENDC IFT #(3,'GAP=') YYY: SET #(3,?) DSMOD: SET #(3,5,YYY:)--DSMOD:&:7F--DSMOD: ENDC IFT #(4,'GAP=') YYY: SET #(4,?) DSMOD: SET #(4,5,YYY:)--DSMOD:&:7F--DSMOD: ENDC IFT #(1,'REV') DSMOD: SET DSMOD:--:400 ENDC IFT #(2,'REV') DSMOD: SET DSMOD:--:400 ENDC IFT #(3,'REV') DSMOD: SET DSMOD:--:400 ENDC IFT #(4,'REV') DSMOD: SET DSMOD:--:400 ENDC ENDM TITL DISK DIB MACROS * * THIS IS THE GENERALIZED DIB:DK MACRO WHERE A STANDARD * FORMAT GIVEN BELOW CAN BE FOLLOWED TO SET UP A DIB FOR * ANY DEVICE. * * HOS/UNIT WORD - SINCE THERE ARE TWO VOLUMES PER UNIT (AS WITH * THE PERTEC DRIVES), IT IS NECESSARY TO SET THE UNIT BYTE * TO "1" WHICH WILL CAUSE THE UNIT NUMBER DESIRED TO BE * SHIFTED 1 BIT TO THE RIGHT THUS OBTAINING THE ACTUAL * UNIT NUMBER. * * SPO OPTION - THE SPO OPTION IS AVAILABLE IF A USER DESIRES TO * AUTOLOAD FROM THE FIXED PLATTER. AS OPPOSED TO NON-SPO, * THE SPO OPTION SWITCHES WHICH DRIVE YOU ARE TALKING TO - * IN OTHER WORDS, THE FIXED BECOMES THE REMOVABLE AND VICE * VERSA. TO OVERCOME THIS PROBLEM, THE TABLE BELOW IS USED * TO KEEP THE FIXED VOLUME AS DH00, DH02 ... & * TO KEEP THE REMOVABLE AS DH01, DH03 ... * ALL THAT IS NEEDED IS TO TOGGLE THE VOLUME CONTROL BIT * OF THE HOS WORD. * * LOGICAL/PHYSICAL DEVICE HOS(NO SPO) HOS(SPO) * ----------------------- ----------- -------- * 0 / 0 :10 0 * 1 / 0 0 :10 * 2 / 1  :10 0 * 3 / 1 0 :10 * ETC. * * * FORMAT --- * * DIB:DK ,[,] * * -- TWO LETTER CODE FOR THE FAMILY TYPE * EG. DM,DH,DF,DS,DP * WHERE DH IS USED FOR PHNS,PHWS,QWIN,SWIN,QWNS,SWNS * DF IS USED FOR DFQ * * -- IS THE SPECIFIC FAMILY FOR THE DIB. THE LIST *  OF ALL POSSIBLE FAMILY NAMES IS GIVEN ABOVE IN THE * EQU'S WHERE QWNS AND SWNS HAVE NO T BEEN AS YET * IMPLEMENTED AND ARE IN FOR FUTURE USE. * * -- ARGUMENTS 3 TO N CORRESPOND TO ARGUMENTS 2 TO * N-1 IN THE STANDARD CALLS (EG: DIB:DM, DIB:DH ...) * DIB:DK MACRO FAM: SET FAM:#(2) SET FAMILY TYPE. DIB: #(1),#(3),#(4),#(5),#(6),#(7) ENDM * DIBS FOR THE PME/PLU DISK CONTROLLERS, THE SCOUT AND * NM4 FLOPPY DISK CONTROLLERS, AND THE MINIFLOPPY * PICO. * DIB: MACRO DIB:DM MACENT DM *** DISK CARTRIDGE DRIVE DIB MACRO *** DIB:DH MACENT DH *** DISK PACK DRIVE DIB MACRO *** DIB:DF MACENT DF *** STANDARD FLOPPY DISK DIB MACRO *** DIB:DFQ MACENT DFQ *** QUAD FLOPPY DISK DIB MACRO *** DIB:DS MACENT DS *** SCOUT FLOPPY DISK DIB MACRO *** DIB:DP MACENT DP *** MINIFLOPPY PICO DIB MACRO *** LPOOL O: SET $ TABLE: REL SHARABLE TABLE: SYSTEM XXX: SET 1 (FIX THE BUG IN MACRO) YYY: SET 1 (DITTO) BMW: SET -1 UNIT: SET 0 SET THE UNIT TO 0, CHANGE LATER IF DM,PHWS,PHNS IFT #(0,?) FAM: SET FAM:#(0) SET FAMILY NAME IF NOT DIB:DK ENDC  IFT FAM:=FAM:DS UNIT: SET '##(1,4,4)'-'0'&3 SET UNIT TO IF SCOUT ENDC HOS: SET 0 SET HOS TO 0, CHANGE LATER IF DM,PHWS,PHNS IFF FAM:=FAM:DS BPS: SET 512 ALLL HARD DISKS ARE 512 BYTE SECTORS MB: SYMVAL #(2) MEGABYTES IFT FAM:=FAM:DM UNIT: SET 1 FOR MCDC, UNIT = SHIFT COUNT HOS: SET '##(1,4,4)'-'0'&1*2 SPT: SET 12 SECTORS PER TRACK TPC: SET 2 TRACKS PER CYLINDER SPA: SET 1 SECTORS PER AU CPD: SET 203 CYLINDERS PER DISK, 5MB IFT MB:=10 CPD: SET 406 ENDC ENDC IFT FAM:=FAM:DH TPC: SET 5 SPT: SET 32 CPD: SET 823 SPA: SET 8 IFT MB:=40 CPD: SET 411 SPA: SET 4 ENDC IFT MB:=150 TPC: SET 19 CPD: SET 411 ENDC IFT MB:=300 SPA: SET 16 TPC: SET 19  ENDC ENDC IFT FAM:=FAM:SWIN TPC: SET 2 CPD: SET 256 SPT: SET 16 SPA: SET 1  IFT MB:=10 TPC: SET 4 ENDC ENDC * IFT FAM:=FAM:QWIN TPC: SET 2 CPD: SET 512 SPT: SET 16 SPA: SET MB:/10 IFT MB:=20 TPC: SET 4 ENDC IFT MB:=40 TPC: SET 8  ENDC ENDC * T1: SET FAM:=FAM:PHWS IFT FAM:=FAM:PHNS++T1: TPC: SET MB:/16 UNIT: SET 1 SET UNIT TO 1 FOR SHIFT IN MCDC CPD: SET 823 SPT: SET 32 SPA: SET 1 IFT MB:=48 TPC: SET 4 ENDC IFT MB:=80 TPC: SET 8 ENDC DN: SET #(1,4,4) T1: SET DN:/2*2=DN: IFT T1: HOS: SET :10 SET HOS TO :10 IF UNIT EVEN ENDC IFT FAM:=FAM:PHWS HOS: SET :10-HOS: TOGGLE HOS IF FAMILY IS PHWS ENDC ENDC * ENDC T1: SET FAM:=FAM:DF IFT FAM:=FAM:DFQ++T1: IFT FAM:=FAM:DFQ BPS: SET 256 ENDC IFT FAM:=FAM:DF BPS: SET 128 ENDC SPT: SET 26 CPD: SET BPS:/128*77 SPA: SET 512/BPS: TPC: SET 1 ENDC IFT FAM:=FAM:DP BPS: SET 128 SPT: SET 16 CPD: SET 35 SPA : SET 4 TPC: SET 1 BMW: SET :200 ENDC IFT FAM:=FAM:DS BMW: SET DSMOD:++:1900 TPC: SET 1 BPS: SET 128 SD SECTOR SIZE DEFAULT = 128 BYTES XXX: SET #(2,?) YYY: SET #(3,?) CPD:  SET 77 8 IN. DISKS USUALLY HAVE 77 TRACKS SPT: SET 5208-73 IFT BMW:&:200 IS IT A 5 1/4 IN. DRIVE? SPT: SET 3125-67 BIT TIMES PER TRACK (LESS HEADER) CPD: SET 35 DEFAULT IS 35 TRACKS PER DISK ENDC IFT #(2,?)>0 BPS: SYMVAL #(2) IFT '##(2,XXX:,XXX:)'='D' BMW: SET BMW:+:80 SET DOUBLE DENSITY FLAG IFT XXX:=1 BPS: SET 256 DD SECTOR SIZE DEFAULT = 256 BYTES ENDC ENDC  ENDC IFT #(3,?) IFF '##(3,1,1)'='*' CPD: SYMVAL #(3) ENDC XXX: SET #(3,?)-1  IFT '##(3,XXX:,YYY:)'='*2' TPC: SET 2 XXX: SET #(3,?)-2 IFT XXX:>0 CPD: SYMVAL #(3,1,XXX:)  ENDC ENDC ENDC XXX: SET BPS:+33+FGAP: SPT: SET SPT:-33 SECTORS PER TRACK LESS ONE SECTOR O/H IFT BMW:&:80 XXX: SET BPS:+61+FGAP2: BYTE TIMES PER SECTOR SPT: SET SPT:+SPT:+5 (61 NOT 66 OVERHEAD BYTES) ENDC SPT: SET SPT:-BPS: DATA IN THAT FIRST SECTOR SPT: SET SPT:*97/100 ALLOW 3% SPEED VARIATION SPT: SET SPT:/XXX:+1 NUMBER OF SECTORS PER TRACK IFT SPT:>MAX:SPT SPT: SET MAX:SPT  ENDC SPA: SET 512/BPS: IFT SPA:=0 SPA: SET 1 ENDC ENDC APD: SET SPT:*TPC:*CPD:/SPA: AU'S PER DISK NAM D:#(1) D:#(1) CHAN #(1,1,2): WORD 0 DI:FLG WORD C:#(1,1,3) DI:CIB HEAD Z:#(1) DI:FCB BYTE '##(1)' DI:NAM WORD 0 DI:DN WORD  0 DI:DS SPB: SET -9 WBT: SET 1*8 T1: SET FAM:=FAM:DS T1: SET FAM:=FAM:DF++T1: T1: SET FAM:=FAM:DFQ++T1: IFT FAM:=FAM:DP++T1: SPB: SET -6 WBT: SET 2*8 ENDC T1: SET FAM:=FAM:SWIN IFT FAM:=FAM:QWIN++T1: WBT: SET 5*8 ENDC WORD SPB: DI:SPB WORD WBT: DI:WBT BIT:WORD FA:,FB:,FS:,DA:,DB:,UF: BIT:WORD FS:,DA:,DB:,UF: BIT:WORD BIT:WORD OP:,CL: RES 2,0 WORD BPS: DI:BPS XXX: SYMVAL SEC:TRK USER SPECIFIED SECTORS/TRACK? IFT XXX: WORD SEC:TRK DI:SPT ENDC IFF XXX: WORD SPT: DI:SPT ENDC WORD TPC: DI:TPC  WORD CPD: DI:CPD WORD SPA: DI:SPA WORD BMW: DI:BMW BYTE 3,10 DI:TRY WORD 1 DI:VTS WORD 1 DI:ATS BYTE UNIT:,HOS: DI:HOS -- UNIT AND HEAD OFFSET WORD 0 WORD FAM: DI:FAM -- DEVICE FAMILY WORD APD:/2 DI:FLP WORD CPD: DI:FLN WORD APD:/2+CPD: POINTER TO FREE AU MAP WORD APD: DI:APD WORD BPS:*SPA: DI:BPA IFT BPS:>256 FOR LARGE SECTOR DISKS, BUFFER=SECTOR WORD 1   DI:SBF ENDC IFF BPS:>256 FOR SMALL SECTOR DISKS, BUFFER=512 BYTES WORD 512/BPS:  DI:SBF ENDC RES 6,0 DI:SAU - DI:FAU IFT FAM:=FAM:DS IFF DSMOD:&:200 IF A STANDARD FLOPPY DRIVE XXX: SET :AF24 IFT #(4,?) XXX: SET #(4)--:F+1%12--XXX:&:F000--XXX: ENDC IFT #(5,?) XXX: SET #(5)+1&:FE--XXX:&:FF--XXX: ENDC IFT #(6,?) XXX: SET #(6)+15%4--XXX:&:0F00--XXX: ENDC ENDC IFT DSMOD:&:200 IF A MINI-FLOPPY XXX: SET :2F18 IFT  #(4,?) XXX: SET #(4)+1/2--:F+1%12--XXX:&:F000--XXX: ENDC IFT #(5,?) XXX: SET #(5)+3/2&:FE--XXX:&:FF--XXX: ENDC IFT #(6,?) XXX: SET #(6)+31%3--XXX:&:0F00--XXX: ENDC ENDC  WORD XXX: DI:INT INTERVAL TIMER SPECS. ENDC IFT FAM:=FAM:DP WORD -1 DI:INT  WORD 0 DI:SCT WORD 0 DI:SEC ENDC ORG O: ENDM TITL DISK CIB MACROS * MINIFLOPPY CIB MACRO (REFORMATTER) * CIB:DP MACRO IFT #(?)>1 CIB:DP: DP00,#(1)%3+#(2)%1 ENDC IFF #(?)>1 CIB:DP: DP00 ENDC ENDM * * THIS IS THE GENERALIZED CIB MACRO FOR ALL BUT THE MINIFLOPPY * PICO. IT HAS THE FOLLOWING FORMAT: * * CIB:DK ,[,,] * * -- DM,DH,DS,DF,DP * WHERE DH IS USED FOR: QWIN,SWIN,PHWS,PHNS *  DF IS USED FOR: DFQ * * -- SET TO 00. * * -- FAMILY NAME (SEE DIB:DK FOR LIST). * * -- DEVICE ADDRESS (USES DEFAULT IF NOT SPECIFIED). * * -- INTERRUPT ADDRESS (APPLICABLE TO SCOUT AND MINI ONLY) * (USES DEFAULT IF NOT SPECIFIED). * CIB:DK MACRO FAM: SET FAM:#(2) CIB: #(1),#(3),#(4),#(2) ENDM CIB: MACRO DK CIB:DM MACENT DM CIB:DH MACENT DH CIB:DS MACENT DS CIB:DF MACENT DF CIB:DFQ MACENT DFQ CIB:DP: MACENT DP IFF #(0,'DK') FAM: SET FAM:#(0) SET FAM: IF NOT CIB:DK ENDC LPOOL O: SET $ TABLE: REL  SHARABLE TABLE: SYSTEM NAM C:#(1,1,3) C:#(1,1,3) CHAN CIB: CI:PER DEVAD: SYMVAL #(2) IFF #(2,?)  IFT #(4,?) DEVAD: SET #(4,1,2)DA: SET DEVAD: IF FAMILY NAME GIVEN ENDC IFF #(4,?) DEVAD: SET #(0,1,2)DA: SET DEVAD: IF FAMILY NAME NOT GIVEN (NOT CIB:DK). ENDC ENDC IFT DEVAD:<:20 T1: SET FAM:=FAM:DS  IFF FAM:=FAM:DP++T1: DEVAD: SET DEVAD:%3 ENDC IFT FAM:=FAM:DP DEVAD: SET ETIODAD:%3+DEVAD:%1  ENDC ENDC WORD 0 CI:FLG - FLAG WORD HEAD CIB: CI:MST - MASTER CIB LINK HEAD #(1,1,2): CI:DIB WORD :7600 CI:PRI WORD DEVAD: IFT FAM:<:20 CHECK IF HARD DISK EXTR DK:RD,DK:WRT,DK:FUN WORD 0,0,DK:RD,DK:WRT,0,DK:FUN ENDC T1: SET FAM:=FAM:DFQ CHECK IF DF OR DFQ IFT FAM:=FAM:DF++T1: " " EXTR DF:RD,DF:WRT,DF:FUN WORD 0,0,DF:RD,D F:WRT,0,DF:FUN ENDC IFT FAM:=FAM:DP EXTR DP:RD,DP:WRT,DP:FUN XXX: SYMVAL #(3) IFF  #(3,?) XXX: SET DEVAD:&:E%2+ETIODIB: ENDC WORD XXX:,0,DP:RD,DP:WRT,0,DP:FUN ENDC IFF FAM:=FAM:DS INT:SEQ I:EOB ENDC IFT FAM:=FAM:DS EXTR UF:RD,UF:WRT,UF:FUN XXX:  SYMVAL #(3) IFF #(3,?) XXX: SET DSIA: CI:IV ENDC WORD XXX:,0,UF:RD,UF:WRT,0,UF:FUN DSMOD: SET :8407 RESTORE DEFAULT VALUE TO DSMOD INT:SEQ UF:EOB ENDC RES 4,0 WORD 1 CI:USM WORD 0,0,0,0,0,0 IFF FAM:=FAM:DP RES 6,0 T1: SET FAM:=FAM:DFQ IFF FAM:=FAM:DF++T1: WORD 0,C:#(1,1,3)+CI:DIV ENDC RES 4,0 IFT FAM:=FAM:DF++T1: JSK C:#(1,1,3)+CI:EOB WORD 0 ENDC JSK C:#(1,1,3)+CI:EOB ENDC  IFT FAM:=FAM:DP WORD -2 CI:CLK ENDC ORG O: ENDM TITL ASYNC MUX OPTIONS MACRO * MACRO TO CONDITIONALLY GENERATE A SYMBOLIC REFERENCE OR ZERO WORD * COND MACRO 0 COND1 MACENT 1 IFT #(2) IF CONDITION TRUE WORD #(1) GENERATE SYMBOLIC REFERENCE ENDC IFF #(0) IF ALTERNATE ENTRY, DON'T ASM IFF #(2) IF CONDITION FALSE WORD 0 GENERATE ZERO WORD ENDC ENDC ENDM * * USEFUL VALUES * DIF:AB EQU 7 BIT NUMBER TO REQUEST AUTO-BAUDING OPT:DC EQU 1%DIF:DC SET THE BIT OPT:FA EQU 1%DIF:FA SET THE BIT OPT:FC EQU 1%DIF:FC SET THE BIT FOR FORM CONTROL OPT:AB EQU 1%DIF:AB SET THE BIT * * BAUD RATE VALUES * BD:50 EQU 0 BD:75 EQU 1 BD:110 EQU 2 BD:135 EQU 3 BD:150 EQU 4 BD:300 EQU 5 BD:600 EQU 6 BD:1200 EQU 7 BD:1800 EQU 8 BD:2000 EQU 9 BD:2400 EQU :A BD:3600 EQU :B BD:4800 EQU :C BD:7200 EQU :D BD:9600 EQU :E BD:19200 EQU :F TITL ASYNCH MUX DIB MACRO * * THIS MACRO GENERATES A DIB FOR AN ASYNC MUX CHANNEL * * THE CALLING SEQUENCE IS * * D:AC CCDD[,OPTS] * * WHERE 'CCDD' IS THE 4 CHAR IDENTIFIER TO FORM DIB ENTRY * POINT NAME 'D:CCDD'. * A REFERENCE TO CIB NAME 'C:CCDD' WILL BE GENERATED. * THE OPTIONAL 'OPTS' FIELD MAY CONTAIN THE OPTION SPECIFIERS: * * OPT:DC MEANING, DYNAMICALLY CONFIGURE AT FIRST OPEN * OPT:FA MEANING, LOAD FA: HANDLER * OPT:AB MEANING, REQUEST AUTO-BAUDING DURING CONFIG *  OPT:FC MEANING, 1ST CHAR IS FORM CONTROL * * IF MORE THAN ONE OPTION IS TO BE SPECIFIED, THE OPTIONS ARE SEPARATED * BY PLUS (+) SIGNS. * AUTO-BAUDING IS EFFECTIVE AT THE FIRST OPEN ONLY IF DYNAMIC CON- * FIGURATION IS ALSO SPECIFIED. * * * THERE IS ALSO AN ENTRY POINT FOR DIB:TV AND DIB:LP. * THEIR CORRESPONDING FORMATS ARE: * * DIB:TV TVnn[,address],cn[,inta] * * WHERE: TVnn is the name of any device used in this DIB * (e.g. TV00, TV01...) * * address is the device address; default is :F (shifted * with channel number :C6) * * cn is the channel number for this device * * inta is the interrupt vector address specified by the * board switch; default is :C0 * * * DIB:LP LPnn[,cpl][,lpp][,LF:][,spb] * * WHERE: LPnn is the device name (e.g. LP00, L P01) * * cpl is the number of characters per line printed by * the device plus 1 (format control); default is 81 * * lpp is the number of lines per page printed by the * device; default is 57. * * LF: specifies that the printer does not have the * automatic line feed capability; default is * automatic line feed * * spb watchdog timer (shifts per byte). Defines the * number of positions the byte count needs to be * shifted in order to form the time in seconds for * watchdog timer calculations. Refer to Topic 7.2 * for details. * D:AC MACRO AC DIB:TV MACENT TY DIB:LP MACENT LP LPOOL O: SET $ TABLE: REL SHARABLE TABLE: SYSTEM NAM D:#(1) ASYNC CHANNEL DIB ENTRY POINT NAME IFT #(0,'LP') D:#(1) CHAN D:#(1,1,3) ENDC IFF #(0,'LP') D:#(1) WORD 0 DI:PER PEER POINTER (NO PEERS) ENDC IFT #(0,'AC') EXTR AC:CNFG DYNAMIC CONFIGURATION ROUTINE ENTRY POINT EXTR AC:FIO FORMATTED I/O ROUTINE ENTRY POINT D:: SET #(2) EVALUATE OPTIONS WORD D:: ASSEMBLE FLAGWORD ENDC IFT #(0,'TY') EXTR TYEOL:,TYTOF:,TYELI: BIT:WORD DIF:NT,DIF:FC DI:FLG FLAGWORD ENDC IFT #(0,'LP') BIT:WORD DIF:FC EXTR C:#(1,1,3) ENDC IFF #(0,'LP') WORD C:#(1) ENDC IFT #(0,'LP') WORD C:#(1,1,3) ENDC WORD 0 DI:FCB FCB ADDR (NOT USED) BYTE '##(1)' DI:NAM DEVICE NAME WORD 0 WORD 0 IFF #(0,'LP') WORD 0 DI:SPB WATCHDOG SHIFTS/BYTE WORD -1 DI:WBT WATCHDOG BASE TIME (NO WATCHDOG) ENDC * IFT #(0,'AC') TRAILER OF ASYNC MUX DIB WORD -1,-1,0,-1 ALL READ, WRITE, FUNCTION ALLOWED RES 2,0 LAST TWO WORDS OF STANDARD DIB IFT D::&OPT:DC ASSEMBLE IF DYNAMIC CONFIG CALLED FOR COND AC:FIO,D::&OPT:FA REFERENCE FIO OR SPACER WORD AC:CNFG REFERENCE CONFIGURATOR ENDC IFF D::&OPT:DC ASSEMBLE IF NO CONFIGURATION COND1 AC:FIO,D::&OPT:FA REFERENCE FIO OR ASSEMBLE NOTHING ENDC ENDC IFT #(0,'TY') BIT:WORD FA:,UF: READ BIT:WORD FA:,UF:,WP: WRITE BIT:WORD 0 POSITION BIT:WORD WF:,TF:,SC:,OP:,CL: FUNCTION RES 2,0 LAST TWO WORDS OF STANDARD DIB WORD 80 DI:CPL - CHARACTERS PER LINE WORD 0 DI:LPP - BOTTOM OF FORMS CT/LINES PER PAGE WORD :1618 DI:BMW - BRANCH MODE WORD FOR INPUT WORD :1612 DI:BMO - BRANCH MODE WORD FOR OUTPUT WORD TYEOL: DI:EOL - POINTER TO EOL SEQUENCE WORD TYTOF: DI:TOF - POINTER TO TOF SEQUENCE WORD :3B14 DI:ERM - ERROR MASK FOR STATUS WORD 0 DI:LC - LINE COUNTER WORD :08 DI:EDT - EDIT CHARACTER WORD TYELI: DI:ELI - ADDRESS OF EOL SEQUENCE ON INPUT WORD #(1)BF: DI:BUF - POINTER TO 2 WORD INTERNAL BUF WORD TYEOL: DI:PU - POINTER TO POWER UP SEQUENCE #(1)BF: RES 2,0 TWO WORD INTERNAL BUFFER OVicEdDano  }CuF1J@hM%z u}Chn t'yLhg i̡# A `Q T ( :Ԃ1 - :Ԃ" )   pP0 @0B բ` h }c= ¢‚pP0Oo X)C $ `)C ")PC ")C " `m X D B U G 4 E 8 0 0 ԟe }  ԂzԾ P AC Q@ X= Y:սҾ K3 L0 S- D* C'՟K =ԟ{ }  ԟ| @)C ")PC ")C " `r" Ž *ڽӆ Y Q A T Gӽن R Ʀ M D V Wƚ›LBLCLFLLLSLJLILGLRLZ Ȟ8@ }ӆ{ӆu Ƃt P LƂj T P BƁ P ԂY T H Tƅ Ş|QEF , , ` 6 _ڞ?? } ` J B YK QJfׂ ^ޡ @ޟޝ `@E ;RA@EN@Aޏǎ Qފ ,^$A*Y o){ w_ D `nX*Qc Ѐ^Ѐ āY@AĄ܃S B `ȁ D*K_U2 `Ţ0*.( &r o{5 M쇅 `X v} T C I U N S A ›PQI哢_@"ӟƠ -LlQłބMb 5}⼢ x C “KQG`@" qQłއށj Iސސސސ޳޳ ,Ӟ  }I迋tbJK| W¨KQGa@"ӑƒ qQł‹Ljޖj Uȝ '} AAw r} { yxwt “KQGEMNb@"JK qQłEBDAށj \ NI “KQG)56c@"23 qQł-*,)ށj @ S- “KQG d@" qQłށj $ AK "Bƽ҃ܽ׽́CŁ / Xƃ ҽܞi Ϟ]ҁ@ۃׁܽBǢ ,ž[ + - * X /KJƎ^[{ xނZ ,Ɵ| ׽L ΁ P ҁ۽ܽ޺{ ӽq kɆȂGާ}ަyޠ}y E ~  .ԃ E ~  .ޣރfN ,ƽ׆s@FC kqLL (w{u ^|JQBZy L S TҞNM  Isžˆ_]]| IƎ> ,ƽƇ ,ƂpIưk , ,Htr Hm -Ɔׁ -Ɔ('\\ÂF -t҂ۃ՞x ’@"Fz@ Ό F ƍ l #.bƝޙޖJQ!’ފދJQŽ %Ԃ՞u U  B * ԂGo h fe "cIaM K Y&V&RR `QKL$kK N =ԂDD GԂA   :Ԟ ԟL ԟ{ y9u    :Ԃw @0ƵQ¾ˢ̂C C 96C C " z a ࢜0 `a ´C /6 C C 6 C C 6C h Q¾{”C "C C I6DÎA6TO6T6T  Gj6 F I Dҽhg Ԟx @9@@? R6A W ߍ?ÌˌJR>JKSB|ҝ s={ ӆvtrLDLELILRLWƖd ,ka ņyĆxÆw pQAlýkL=\L>L:|öbL<L=L^]\Q HǞ wqqno = < > :ba  ~dy C 1 =Ԃ C 2 =Ԃ C 3 =Ԃ M =ԃTܽҞH&ƽ׆ =FFEFCCE=:7&Ɠ5-Ɠ,&OVicEdDano22 `IA # %#K&$?2C @qW6TAM 6 6ɀFHXĆ `pEc # "z\@ SOQKM*T`"i# # )# h)?z)ҀGQ)F@ @G͢6ɢF@ @F@ @T# @I.#  SI =  SO =  LO = (*{Xs(?#  MACRO (F200) C @`PF`pDc # C @`PI)%C *V;LJU /GJ :QT .W MN[Z 9D'A @ ``pDc # N 10# C @`Pu_ c # p)rHC @³)" b%bfd1edaS٠`r "` ςSΠaS p c r )c #  ps zUFOV 0 EtC @]` ]_ p]Č)ҀG)`+a]āI`C ]C U`IB ]ăc # C @ _ ^D] c@ UD@k{`"`#]^c # C @^]_^c # C @`P]Ia]` 0`I]C `C Ua]`٠] pă_ _]J]@c?SBI]I`pDc # I 00H # IUǠ1FU 10H# `Pe@p ÀAKKrQ@  I?`%5`C+`I 5'« 1A¤@`)DB)@><+ .%'# bUbV)օ5CU U# +(h%QnĤVS@6\SSY U+UHVNV0N3H# II00 V ͞ FI# )Q  Ă0)C A# A)" brEQIQ]cvbdK1ded@ J q# y D qJ # qz # H# c\ M?RAC @`@K'@``pBC`HARJk%`(C @`(C @U ``p'BD Bc # # C @`p ĄBߠ1]QDĂ D@ďBDc # @ DĂ@ ď n2x GրXTOPQRKLMNT TrL,L)L(L=dIS "))҂SFX) b$фO K QMrL())rL+] GPORQLKNMT T2rJQWS€JԀGA)Ҁ6YW RIdž "D L’)0ESAZ2BXsST)"ZXÀHFڀr )2 b΀vÀtFϟXTQQAT KMX„Kr A)2 bsQrQu)8 bX+JQaހXK# @ B# @ KBM# @ # @ r # @ M)2 brr +LyNO2EA)2 bssQrwr*ߤB1X)2 blrXxfX1B(JR+9 b]-3AO# @ XB# @ OBQ# @ # @ QrL,JL HL+FL)<A)2 b6s# n) b) bO K QM GZrQmL=L(L+L,SJ: "))SŀgZQYD OƞJ„\ \ ϞYSЀJ ))Sڢ O¦rL()# ))ςSƢ bŠjZ1Z20XSOZ3SISA EBJ) YZo bnnghS "fdJBIY# b bV WI# `"  # eP`pjP`ۢۄ* 5 'HӠĀAHHF))IPX)'IPT(PIPLIH)\IPD)QI@I<Ţp @)2 bsrQA CCCI )# h%sLOZ5zhWZ4OCCISLu&Z ZI)DD\r +nTG 0 ĢJJrEBDEFINITIONS 0ERRORSONLY EXPANDMACROS0FALSECONDS @FIRSTONLY PFORMATSOURCE`IFSANDENDCS pLISTING a"LISTOBJECT LISTONPASS1 LISTSPACES MACRODEFS MACHINE  OBJECT PAGESIZE SAVE XADDRESSING 410 410A0430 @430AP490 `490Ap404 404A495 MAC ASM`" JF KI EIDIC@`K EIPDI CFQ+DFF)J%'+J`H}# GSX?JQC @1E`pLc Wc  MAC..`"@@} L DJ+%'+DJSIC ` DĄIDFHDC @XNX`PU,K KꕀO6AKJ[ -3A# ===Ls`=%)\IWQҢr Sڢl6E "0I U[ўc )# EiSm SDD)ҀG)E6B՞ b͂Є b  VSAS P DE+DQEUU`p%Ec )# SǢDESEE+-E? πDDc )# @? wc )# %xXXZ4QQ#fBZϢ Sᢹ6E "0_U`D%'+D` ʟQI0LIğC @i` `(%'`( @1 pt)`pDc # # XhZ)@ Xׄۄ؄܄لaIȀd6I6I)@Qɞz)@eJQ)I)@eeL)@a)1!)@ wVV)@aĀXXNIII#   ( |"[}  e )@1# _^# d/6C )@ s)Ä))@քڄdb b+ 1KVXāXLgsh f# 7ik@) 6FB(Ѐ(,4C @IX `+` 1YЁ@֨  @@mЁC@``pEB dc `+ `+ 1# yj# )Rd6ҀXXIQEȞIk@VZj# d6ҀX6XIIk@W[j# @I @ )@@I/@@œI )@I/# " )()(),)/)  **** GRAND-TOTALS **** ERRORS ( WARNINGS ( })@edX@6,@6A,@6AX `Gt)@Y  # B Q۞ QXYX    )1Bʞ )1BŞ )1Lc # `  W±   |dO6 Gt )1 )1,6XYXK #  ) 4%$?* ,/"V"b#K  C @C AL "L &)@ VQNQ@I p @V1c # [ . b   BLANK  0SEGMENTENDM +4 MACENT *4 MACLAB +4 MACRO *4MACRO *4 XMACRO *4 XMACRO  *4 ABS >  ASMDATE  7  BYTE 57  CHAN 5 8COMMENT 4  COMMON 4 " DOUBLE ; * DPOOL 6? 2END z6 :ENDC 4 BEQU  : J EXTR 4 R FLOATING; Z HEAD 5 bIFF H: jIFT F: r0INCLUDE z4 z INITY <  LINKDATE25  LOAD 4  LPOOL 6 MACHINE >  M4D12 u?  NAM 6 0NOTE k?  OBJECT :6  OBJNOTE 86 OPTIONS > 0ORG > REL >  RES 7  ROMMABLE4 0SAVE 4 SET  :  SEXT 4  SHARABLE4  SNAM 6 0SPACE  "SYMATT : *SYMVAL : 2 SYSTEM a< : TASK t4 B TASKEX 6 J TEMPLATE5 R0TITL 4 Z WORD  7SIGNAL & jWAIT & rENTER &] zSCNTX \5 FIELD  SFIELD  SEX &  NXTQUE & LCNTX \E DEQUEN &M DEQUE & ENQUEB &= ENQUEA & GENECC & MOVE &} COPYU \ ECC & SEARCH  LOCATE = INSERT ] DELETE } ENT   HLT    NOP  "RSK #  *UIS   2FIX R  :FLOAT R  BEXIT &m JFMT  RXNX   ZSAL pf bPUSH C  j POP c  sSIN  |AIB E AIN  AOB e AOT % SST  COMP  CSN  NEG  IN  OUT  SELP   STRAP  UTRAP  ROTATE  SHIFT  CBIT  RBIT  SBIT  TBIT  JT  JF  (JEQ  0JGE  8JGT  @JLE  HJLT  PJNE  XIJEQ   `IJNE  hJEQD  pJNED  xDMS Gg  DMSE Gg  IMSE GG _ JSTE G' ? JMPE G  JSKE G ADDF G\ SUBF G\ MULF G\ DIVF G\ CSKF G\ IMS  JST  JMP  JSK  CSM   CSME E CSK  CSKB  CSKE D'?#ADDC ,SUBC C'?5ANDE C>ORE C'?GXORE CPDIV YMUL b ADDE C k SUBE C t CEA C} AND  OR  XOR  ADD  &  SUB   &  ANDB  ORB  XORB  ADDB  SUBB  CLSN `EXCH EXCHB  EXCHE A COPY   COPYB # COPYE @  AY = AX F AQ O P X L a K j S s Y | Q  X  A  V Hc66YQA6t@ltXXV# '"b? YQ) 1k` lBIĆlB)1[Ćg* fg›hW8o•1”# # *=*K8"P"w(Hi#K"$?% $I . '%'+U ' ` q rIlXX+U# &.a&C%$5RI̞IWIVk ' H)T*5Q|Nƀl ,Y yVĀkB V# + ' # ' # +# mH%%%"q8"PkQqWk# WWVXX eQkWGt# #K$?"k@L )1K6 l ky# kl%(A"Y*'"#K$?Y ]k%5'ji `# %$?k  y 1Ck ,p y# %"q*K$?' k HAml kWošo  , y GtXXk^# 8"P0#K&$?%"q69  ny 1df  ,yk@jj힄Al C W8o.q'“ XX# %"q*K"w8"Px#K&$?z^ VS)@` Ԟ lWXLX BA@A uvwj6X6Xe _^d6ÀXXdX6@Xi6A¡)@BqJBf””l)@#  (H8%$?"S"%,(#&"wi#K `(BIdO6A )@A B@ B @d6A) GtA# %"S$? 3 o BHG6 rYmWlo# lhmǀqfr IfY Œy# 8(A"b'$?#K$ ghF.  k@B BHqAlmA kJB@A XXmWloGtǀd6O6BB# 8(A"P%$?zC `) -u `j6G)@ ` a)@ 傢# e # %'+# C @Iak@Œdec # &.%%"q%"Va "$?/  y )1\6 , ykq) 6“klo XX# %"q*'"8*="wG#K$? `^W # %$?(HQHIkdQAbWYQJl mq r oɢQC@ 4oQAGtDX=XWoo {k)@QBQ€@ $oGokQAbQɄd6I6I# +=-cegel# l# l l#  '%[%8"b%"q$? uU HҀr Ξp  G6U@6Zq1ŀloh3B f1΀lh@6 lqo kGo6Qp@6p@<@ loh B@ NG oW” GtXX.# 8"Y"wg"P#K$?%     I@IWk V  )1A)1A6ꀁk݀WVlk@ LL   Le Þe   Le WJeLlk   D6AVkJASGWWXXV  ,_ V# G# %* *'"""Y"z$?k,X|X6`L E Wd@/6U@ ,tLELW @L z `#  $?%%!"}"%)(%)'hDmAlC ,X@Xšf˜CLDA‘CClW# l# 8&%#K$?"Pe k@),4j `ek@ @@j# %$?*qAGtl*dd6AIoXY8XXlUQSIk@dj B3K)@ 䞇UFk@dj## 8(A"P$?E)) Go`  H1nIq@A@A@Lr @ @ @܀p/6@6@6@6@G6@|A@\I1B@l@l m tq r oG8(Aa `)@oe 6A# %"h$?t  y )1F6 ,l y# %"q*'"$?AlC W)@SBꞈ@6E@ @ꞁ# 8"P"h$?!  y )1O6yg 6A {# %"q*'""wH#K$?*Y)ÀA)@`@") @h%'@h-B+*`H@`Hd@/6CI)@# `# &.%%$? Hk =VAVDpp , y GtXXf# %%8g$%"q/c (@6@6H kCcIUWk # g']DVrtv"B'LgC @C @pVW # c@6@6I  r枎€〇p@O6pO6@UUrJQ̀p@O6pO6@ dU@MUrp@O6pO6@c@6DWWWWc c # !8k"t'L +# i+R+# pA# VllmmppqqrrnnV# 8"q'U@6Ҟ@6ϞV #˞@ X.y G   0rcW@6G@6E@6Cc@6B# # RURՂVLpO6ƐWccWA VBGG# *+l WW# k8!pp"t"q8]C @C @pV՞L 6Dr̞@6H@6BWWl1GWHn AUUcWc c # VllmmppqqrrnnV# 8!8"tkpO6€W@6F@6B# 8k!AlVr @ c@6V@6Dr@CSޞWV.'WR՞p@O6W؇W˞VlN1GWc@6B# #  !88k"t]*rV6CU֞UpO6ĀWWVR# WlN1GW# # !8k"tppֆQA# 8 "q86HpO6WA# 8"qk.@6g HJQBfCllo @w ?WWX@{e # ^1# hf# L ^A# Lof# kohMM2IM1E^o# /6Ce Ơo1ke DL^HLLh R'Q#oh RQnGŀpG6r O M6qrp/l6A<# (`p6Jr  nDG6A@ohA@,Ā pp6Sžp/6C,pl6EqÀd6qAfo# Ip# @ ^e ܅ă Ă @ lnqr pG6Ān\# ## "\""k;C @lCnDqErFM CE FpGkqElCfUBEЀCDg CpO6p E Fp1WWc # "qg"w"C @cW9@ 6J@ 6Gy @ 6Ac # pp"tXL @L @L @NyQEJ/`x@ph# HC AC @) C AC @) C AC @) C AC @) C AC @) C AC @) VAr J L L l.y,yWW,c # 8"tC @C llCpˀr F EnDc # x"P"Y8C @ +JI pqmlLO n  ,܄NLTYgWpL p = *YpQBńNLNM nL$gL( LPL'  rI)KOMSAP.q PyNq@rQP ' # # '# #  "Y6 p%%%KJr Gm1CJI O@qd1BOaL nK r )1)1¤n nIAn6nG  6A@잂 @쀁6@G  * *' n@ p @HO6_6DpAlQPX6@K  r6THQr NpˠK KQPNQP nK QC RA L@KO1EOO)OIIIko)5EC;Gj L (@Cn 1EJI L +JII"Y g=   )1)1gp ߀H\,X̄XUUY,Y,Ypp ,R ) G\G LAA?%%* _{G6O)5OkojJQ9MRBq3 qHŀmC A€prHM M o6)8 >'] ?6Y /6/6l@@l-6EqQd@6A /6ErLLL prqnc # "w"""YC @QDJ+z)`pDc #  !+ \ - + - * / //! %! ** D& D++ G; G-- E<!>>!>=!><=!>=<!>>=!>=>!><>!>oC @@@鞄C6B p܆c # ko Gj# KQ[ko)5jDCȞ *3+ bjVŒLL6B# L)orQPCQViKko)5fd VG1EG0/Ȟp6T `+oЀml$ G K ďjj# "wml# ml# QPQPQP @IQPLL# hi# cd# $^_# YZ# ڠmQ# mlP# l# L)oǀQPȞ@B 1Q 1I @ , lm1A&# P3B !I I5# N#  N # QP@IIIԂQAIlIm#  !e!\!k!! p d!8!;!\G6# @I T wy6Dn6Cu# jr# "wAăQPAQP ߄# Z6Đe# 6sĉ# C @C @ pU6ŀ4ą    ܉jD9Qc c # C @C @ p,QPNąQP@ą܃܉f'c c # "! C# p(܀ # %%"q!LC AIC @X6)@@@&)@ `+ `+aF aVC pIăI)@c # # 1PAGE   SI =  SO =  LI = "3(),b"8"PbGGGG G\G,GܞGlG̞GGG[`pBc # -&C%C @`1ǤZ\]Yjj )# %&%%&gBI` * )QGIY`֞I`) @Q8IQ3I @`Q.@(Z - )` `]j6TI '@IQ I`Is]jj `)QBIQQBI@ II | pĂc # %&q&.%)I)j&.C @I Td o6]]] K păc # %%&C-C @`1ä]\\@*\d@o6̪]Rq ]UB4]y]-T)S]c # k%'ji#  &k&q ž.IV̞KL :%C 'oVA# &%))*%&&' !jj6C @šðvQssąv`")%@ 0 9 *N9Qc # 00&C @L p%C ']k%-S 'ji]T4c # &C @h)@BFhg@c # "&,C @)@¦@k|`pE Ÿ I HC @—c `H%'`H+ HqoI@c # #K'im'PJ'PI'PL'rO'ro'PK@'PM@'PN@'w&h p+DBI1CD6L@A+*QIgc @``pE)`@1A+Cl, .r y p+@AC @A ` )@ %'4c C @`pLc # *=&O#K'C @YLhl mfq r oc # Y‡ †y# 'gh#K'cC @ )1)ܤY1i     oC6Broрr @6EXD p܆c # lmqoA@ā֤G# l̀mɀ6q#  ḠG# * *'"q"b(A # {%"Y(HoC @)GItXGXC @^1׀fhU{1ЀXX lqn rKUn Gtze ӀQ((K 6 6^ ^Ue lrqn GtD^e  #``pH`1I ^ ^c GtXc # $(2)(C @BqC `{Cc # )( _1G_19|^# )((_1M^1G/6Byw^1# (2( C @+ zc # ((C @@r yE)1yc # [)  G.9 6$# )XܐX# XݐX# )C @)@NK0M9K15c # (),C @C A)“@@ GK05VBI c #  d'X()IC @ pIPQă Є I QP QP܃oc # %)!!\%)j(HP)IQ Q F A QPN.N.N.N.@hQ,PK # %)%) Z A z a 9 0/`x@`x# )k@B1CBA*C Aj)# j# )C @@ h1Hk@`B DDMM`pDc # "),C @`k@AC¥)`H`H 5BK `@@qOI``pE1I`@ )`H`H5o`pEk@) 5c #  ))k@BBj# * k@BBC{Bj# * C @ b+D`@A1111B11C11`pDc # *'C @! 1 p1F `pDBc # * )*p*=C @ b+D1DX@Q`pDc # *K"C @)1XHLXKĈIā@``pEk@IR)JRj)`pBDc # *')"*p `@ĂAăBĄCą`# *{C A`(+%', L - tc # V@I.@L sq* z `# # (*hcmj6PIlkm߄mj6ńlID6ςWXYXȞ Y)QC Y Ee k@@j)1I  Emj܄j]J]V] | CkFFk DE1Ać E1gkĆ,$?"b++"V#K%&q%%)*p+oE1Imj݄jYAa `\X؄Xd6Vj6B # )@ Gt`Zj@jmdXGUP cZ )c1MXXV# Ue I)1E6€UZ HCF ] n FFsCU (&) ,<* 6`  AlWWJQH `RFXX # 1,_ ORG O: ENDM TITL MAGTAPE DIB MACRO * DIB MACRO * * DIB:MT #(1) --- #(1) = MTXX, XX = UNIT # * DIB:MT MACRO LPOOL O: SET $ TABLE: REL SHARABLE TABLE: SYSTEM D:#(1) NAM D:#(1) CHAN MT: DI:PER WORD 0 DI:FLG WORD C:MT0 DI:CIB HEAD Z:#(1) DI:FCB BYTE '##(1)' DI:NAM WORD 0 DI:DN WORD 0 DI:DS WORD -4 DI:SPB WORD 3*8 DI:WBT BIT:WORD FA:,FB:,FS:,DB:,UF: DI:DSW - READ BIT:WORD FA:,FB:,FS:,DB:,WP:,UF: DI:DSW - WRITE BIT:WORD SBF:,SBR:,SKF: DI:DSW - POSITION BIT:WORD RWD:,OFL:,EBL:,EFM:,OP:,CL:,SS:,WF: DI:DSW - FUNCTION RES 2,0 RESERVED WORD 0 DI:BLKCT WORD 0 DI:SERV WORD :0230 DI:BMI WORD :0250 DI:BMO WORD :0240 DI:BMR WORD 0 DI:OWM WORD :0005 DI:TRY WORD 1 DI:VTS WORD 0 DI:MASK WORD 0 DI:FLAG WORD 0 DI:THWS ORG O: ENDM TITL MAGTAPE CIB MACRO * CIB MACRO * * CIB:MT #(1) -- DEVICE ADDRESS / CHANNEL * #(2) -- INTERRUPT VECTOR * * CIB:MT MACRO * * DEFAULTS FOR MAGTAPE * DVICADD: SET :F0 MT DEFAULT DEVICE ADDRESS CHANNEL: SET :02 MT DEFAULT CHANNEL NUMBER INTVECT: SET :C8 MT DEFAULT INTERRUPT VECTOR LPOOL O: SET $ TABLE: REL SHARABLE TABLE: SYSTEM EXTR MT:RD,MT:WRT,MT:POS,MT:FUN C:MT0 NAM C:MT0 CHAN CIB: CI:PER WORD 0 CI:FLG HEAD CIB: CI:MST HEAD MT: CI:DIB WORD :7600 CI:PRI IFF #(1,?) WORD DVICADD:++CHANNEL: CI:DA - DEFAULT ENDC IFT #(1,?) WORD #(1) CI:DA - USER DEFINED ENDC IFF #(2,?) WORD INTVECT: CI:IV - DEFAULT ENDC IFT #(2,?) WORD #(2) CI:IV - USER DEFINED ENDC  WORD 0 CI:UNI WORD MT:RD CI:RD WORD MT:WRT CI:WRT WORD MT:POS CI:POS WORD MT:FUN CI:FUN INT:SEQ I:EOB CI:$ EOB DOUBLE 0 CI:T1,CI:T2 WORD 0 CI:APR WORD 0 CI:TIB WORD 1 CI:USM WORD 0 CI:TIM WORD 0 CI:CSM WORD 0 CI:CFL WORD 0 CI:RAT/CI:RTY WORD 0 CI:HRD WORD -720 CI:CNT WORD -2 CI:TIC WORD 0 CI:MODE ORG O: ENDM  TITL BISYNC PICO DIB MACRO * * BISYNC PICO DIB MACRO * DIB:BP MACRO LPOOL O: SET $ TABLE:  REL SHARABLE TABLE: SYSTEM D:#(1) NAM D:#(1) CHAN BP:#(1,3,3) WORD 0 WORD C:BP#(1,3,3) DI:CIB WORD 0 DI:FCB BYTE '##(1)' DI:NAM WORD 0 DI:DN WORD 0 DI:DS IFF #?>1 WORD -7 DI:SPB ENDC IFT #?>1 WORD #(2) ENDC WORD 1 DI:WBT WORD 0 READ MASK WORD 0 WRITE MASK WORD 0 POSITION MASK WORD :1F FUNCTION MASK WORD 0 RESERVED WORD 0 RESERVED V: SET 0 IFT #?>4 V: SET #(5,?)-2%11++:8000 ENDC WORD V: DI:DVS V: SET 0 IFT #?>2 V: SET #(3)%2  IFT #?>3 V: SET V:++#(4) ENDC ENDC WORD 0 DI:OPT WORD V:%8 WORD BPO:02 WORD BPO:03 WORD BPO:04 WORD BPO:05 WORD BPO:06 WORD BPO:08 WORD BPO:08 WORD BPO:09 WORD BPO:10 WORD BPO:11 IFT #?>4  BYTE #(5) DI:SID ENDC ORG O: ENDM TITL BISYNC PICO OPTION TABLE MACRO * * BISYNC PICO OPTION TABLE MACRO * BPO:02 SET :0016 DEFAULT SYNC CHARACTER BPO:03 SET :1610 DEFAULT DLE CHARACTER BPO:04 SET :FF1F DEFAULT PAD AND ITB CHARACTERS BPO:05 SET :1703 DEFAULT ETB AND ETX CHARACTERS BPO:06 SET :0102 DEFAULT SOH AND STX CHARACTERS BPO:08 SET :0405 DEFAULT EOT AND ENQ CHARACTERS BPO:09 SET :1530 DEFAULT NAK AND ACK0 CHARACTERS BPO:10 SET :313B DEFAULT ACK1 AND WACK CHARACTERS BPO:11 SET :3C05 DEFAULT RVI AND TTD CHARACTERS * DBP:O MACRO IFF #?=16 NOTE 5,'WRONG NUMBER OF PARAMETERS' ENDC BPO:02 SET #(2) BPO:03 SET #(2)%8++#(1) BPO:04 SET #(3)%8+#(4) BPO:05 SETe% 810921175246810921175246811109092309e,81092117524681092118030100811109092308e810921175246810921175246811026165147e810921175246810921175246810921175246810921175246810921175246810921175246e8103021417515081030214175375811026170731e;8103021425397581030214254400811026170741& e178109211522530081092115225725811026170750 eMNw8110121450165081101214503100811026170814 e8103021426490081030214265125811026170820 e8105281612545081052816125600811026170826 e!B78110191129552581101911483125811027103446 e?@t8110261346280081102613473700811026170847eY1' b8110271037165081102710373425811027103734de3e8110191135380081101911485325811026170905e 28107271335080081072713353950811026170911e:s8110220831090081102208330425811026170926@e68109261533570081092615343600811026170936e^8101290929470081012909300525811026170940e8109221158207581092211582275811026170943( e8010140027262580101400273075810921180646d. GEN MACRTX MACIOS MAC IOSD MAC SFM MAC OS4 MAC EXEC:: SYS LABEL SYSOS:: SYSMTEX:: SYSDEBUG SYSMACRO SYSEDIT SYSPATCH SYSCFG490B ASMEDIT HLP TITL S F M . M A C - SFM GENERAL EQUATES & MACROS (93421-17-E200) TITL .... CONTENTS ********************** *  * * SFM.MAC * * * ********************** * * E:GFN (FILE MANAGER SERVICE) PL EQUATES * CONN:A MACRO * DELE:A MACRO * CREA:A MACRO * MONT:A MACRO * PARAM: MACRO * FCB:SA MACRO * FCB EQUATES TITL .... E:GFN PL EQUATES * (E:GFN) FILE MANAGER SERVICE PL EQUATES * NAMPT: EQU 0  NAME POINTER VOLPT: EQU 1 VOLUME NAME POINTER PUN: EQU 2 UNIT FNO: EQU 3  DIRECTORY FNO LUN: EQU 4 LOGICAL UNIT INXT: EQU 4 INITIAL EXTENT SEXT: EQU  5 SECONDARY EXTENT RLN: EQU 6 RECORD LENGTH TITL .... CONN:A ************************************************************ * CONN:A MACRO - F:CONN PARAMETER LIST * *  * * CONN:A #1,#2,#3,#4,#5 * *  * * #1 - LABEL * * #2 - ADDR OF FILE NAME  * * #3 - ADDR OF VOLUME NAME * * #4 - PUN  * * #5 - LUN * ************************************************************  MACRO CONN:A #1 EQU $ PARAM: #2 PARAM: #3 D: SET 0 PARAM: D:#4 WORD 0  FNO WORD #5 ENDM TITL ... DELE:A ************************************************************ * )  DELE:A MACRO - F:DELE PARAMETER LIST * * * *  DELE:A #1,#2,#3,#4 * * * *  #1 - LABEL * * #2 - ADDR OF FILE NAME * * #3 - ADDR OF VOLUME NAME * * #4 - PUN * * ONLY 1 OF #3 & #4 MUST BE SUPPLIED * ************************************************************ MACRO DELE:A #1 EQU  $ WORD #2 PARAM: #3 D: SET 0 PARAM: D:#4 WORD 0 FNO ENDM TITL .....  CREA:A ************************************************************ * CREA:A MACRO - F:CREA PARAMETER LIST * * * * CREA:A #1,#2,#3,#4,#5,#6,#7 * *  * * #1 - LABEL * *  #2 - ADDR OF FILE NAME * * #3 - ADDR OF VOLUME NAME * *  #4 - PUN * * #5 - INITIAL EXTENT, DEFAULT=10 * *  #6 - SECONDARY EXTENT, DEFAULT=10 * * #7 - RECORD LENGTH, DEFAULT=0 * ************************************************************ MACRO CREA:A #1 EQU $ WORD #2 PARAM: #3 D: SET 0  PARAM: D:#4 WORD 0 FNO PARAM: #5,10 PARAM: #6,10 PARAM: #7 ENDM TITL ... MONT:A ************************************************************ * MONT:A MACRO - F:MONT PARAMETER LIST * * * * #-1 MONT:A #1,#2 * *  MONT:A #1,#2,#3 * * * *  #-1,#1 - LABEL * * #1,#2 - VOLUME NAME POINTER (OPT) * *  #2,#3 - PUN * ************************************************************ MONT:A MACRO * IFF #(-1,?) #(1) EQU $ PARAM: #(2) D: SET 0 WORD D:#(3) ENDC * IFT #(-1,?) PARAM: #(1) D: SET 0 WORD D:#(2)  ENDC * ENDM TITL ..... PARAM: * PARAMETER MACRO * * PARAM: #1,#2 * * #1 PARAMETER TO PUT IN WORD STATEMENT * #2 VALUE IF #1 IS NULL, DEFAULT IS ZERO * MACRO PARAM: SV: SYMATT #1 IFF SV:&NULL: WORD #1 PARAMETER EXISTS ENDC IFT SV:&NULL: S: SYMATT #2 IFT S:&NULL: WORD 0  DEFUALT VALUE FOR NULL PARAMETER ENDC IFF S:&NULL: WORD #2 USE DEFAULT VALUE SUPPLIED ENDC ENDC ENDM TITL ...... FCB EQUATES * FCB EQUATES * FC:CHK EQU :F0AF FCB CHECK VALUE FC:PER EQU 0 PEER POINTER FC:FLG EQU 1 FLAG WORD FC:FDB EQU 2 FDB ADDR FC:AMA EQU * 7 ACCESS MANAGER ADDRESS FC:FCB EQU 8 SUBORDINATE FCB LIST FC:DIB EQU 9 DIB ADDR FC:FNO EQU 10  F ENTRY NUMBER * * FCB FLAG WORD EQUATES * FCF:OP EQU 9 OPEN FCF:BL EQU 0 BLOCK I/O * *  FDB EQUATES * FD:FLG EQU 0 FLAG WORD FD:WPT EQU 1 WRITE POINTER, 2 WORDS FD:WPS EQU 3 WRITE POINTER SEMAPHORE FD:RAU EQU 4 RELATIVE AU FD:PAU EQU 5 PHYSICAL AU FD:NAU EQU 6 NUMBER OF AUS IN EXTENT FD:RLN EQU 7 RECORD LENGTH FD:ERR EQU 8 ERROR CODE FROM I/O FD:NLK EQU 9 NUMBER OF LINKS TO FDB FDF:WA EQU 0 WRITE POINTER ALTERED FLLAG FDF:LA EQU 1 FILE LENGTH ALTERED FALG TITL * MFM FCB EQUATES * FC:PTR EQU 3 FCB BUFFER INDEX POINTER FC:RECZ EQU 4 RECORD SIZE FC:MBKZ EQU 5 MAX. BLOCK SIZE FC:BLKZ EQU 6 BLOCK SIZE FC:BCT EQU 10 FCB BLOCK COUNT * * MFM FCB FLAG WORD EQUATES * FCF:UBUF EQU 5 USER SUPPLYING THE BUFFER FLAG FCF:EOV EQU 6 DO AN EOV FUNCTION IF WRITE CREATING A NEW VOL FCF:NTRN EQU 7 FILE IS NOT TO BE TRANSLATED FCF:EBCD EQU 8 FILE IS AN EBCDIC FILE FCF:FWRT EQU 10 FILE WRITE WRITE FLAG FCF:ULB EQU 11 MAG. FILE POSITION AT USER LABELS IF ANY FCF:RDBK EQU 12 BLOCK HAS BEEN READ NEEDS BACKSPACE FCF:EOF EQU 13 FILE HAS ENCOUNTERED AN EOF FCF:WRT EQU 14 BUFFER FILE WRITE FLAG FCF:FCB EQU 1//15 YES MARTHA, I'M AN FCB * * MFM FDB EQUATES * FD:NAM EQU 1 NAME OF DATA SET FD:BUF EQU 9 USER SUPPLIED BUFFER ADDRESS TITL .... FCB:SA ************************************************************ * FCB:SA MACRO * *  * * FOR CREATING A PERMANENT SFM FCB * *  * * CALLING SEQUENCE * * * * FCB:SA LABEL,FNO,PUN * * * ************************************************************ MACRO FCB:SA LPOOL O: SET $ TABLE: REL SHARABLE TABLE:  EXTR FM:SFM WORD FC:CHK #1 EQU $ CHAN Z:#3 WORD :8000 RES 5,0 WORD FM:SFM  RES 1,0 WORD D:#3 WORD #2 WORD FC:CHK ORG O: ENDM SAVE END  TITL O S 4 . M A C - OS4 GENERAL EQUATES & MACROS (93420-18-F000) TITL ..... CONTENTS ******************** *  * * OS4.MAC * * * ******************** * * EXR: MACRO * E:MON MACRO * E:MONE MACRO *  E:MONC MACRO * E:SLU MACRO * E:SF MACRO * E:UF MACRO * E:IJCL MACRO * E:JCL MACRO * E:ISM MACRO * E:ICH MACRO * E:GFN MACRO * E:MSG MACRO * E:CMD MACRO * E:RCI MACRO * E:LOAD MACRO * E:PRINT MACRO * E:LDR MACRO * ISM:PL MACRO * GFN:PL MACRO * E:ISM PL EQUATES TITL ..... EXR: * EXEC REQUEST MACRO, FOR ROGER PARAMETERS: * A ROGER PARAMETER IS AN INDEXED OR UNINDEXED, NON-INDIRECT, * WORD ADDRESS. * +  THIS MACRO GENERATES INLINE CODE WHICH LOADS THE ROGER * PARAMETER INTO THE X REGISTER. * EXR: MACRO S: SYMATT #(1) * IFT S:**:0040 IF NO PARAMETER... COPY =0,X USE DEFAULT ENDC * IFF S:**:0040 OTHERWISE... P: SET #(1,'(') COMPUTE POSITION OF INDEX SPECIFICATION... IFF P: P: SET 100 ENDC P: SET P:-1 IFT S:**:0200 IF POST-INDEXED... ADD =#(1,1,P:),X ENDC IFF S:**:0200 IF NOT POST-INDEXED... COPY =#(1,1,P:),X ENDC IFT S:**:0100 IF PRE-INDEXED...  ADD Y,X ENDC IFT S:**:0830 FLAG INDIRECT, BYTEREL, OR ERROR NOTE E,'PARAMETER ERROR' ENDC ENDC ENDM TITL . *  MONITOR EXIT * E:MON MACRO EXTR E:MON JMP E:MON ENDM * * MONITOR ERROR EXIT * E:MONE MACRO EXTR E:MONE JMP E:MONE ENDM * * MONITOR CONTINUE EXIT * E:MONC MACRO EXTR E:MONC JMP E:MONC ENDM * * SEARCH FOR LOGICAL UNIT * E:SLU MACRO EXTR E:SLU COPY #(1),A JSK E:SLU ENDM * * GET SYSTEM FILE * E:SF MACRO EXTR E:SF JSK E:SF ENDM TITL * GET USER FILE * E:UF MACRO EXTR E:UF JSK E:UF ENDM * * INIT JCL MACRO * E:IJCL MACRO EXTR E:IJCL JSK E:IJCL ENDM * * GET JCL STACK ADDR * E:JCL MACRO EXTR E:JCL COPY E:JCL,X ENDM * * INPUT SYMBOL * E:ISM MACRO EXTR E:ISM EXR: #(1) JSK E:ISM ENDM * * INPUT CHARACTER MACRO * E:ICH MACRO EXTR E:ICH EXR: #(1) JSK E:ICH ENDM TITL * GET FILE NAME * E:GFN MACRO EXTR E:GFN IFT #(2,?) USER SUPPLIED DEFAULT LUN? IFF #(2,'A') COPY #(2),A 2ND PARAMETER IS DEFAULT LUN ENDC IFT #(3,?) USER SUPPLIED CONNECT LUN? IFF #(3,'Q') COPY #(3),Q 3RD PARAMETER IS CONNECT LUN ENDC ENDC IFF #(3,?) NO USER SUPPLIED CONNECT LUN? COPY ='OV',Q USE DEFAULT ENDC ENDC EXR: #(1) IFT #(2,?) USER SUPPLIED CONNECT LUN? SBIT BY:,S FLAG FOR SUPPLIED DEFAULT LUN ENDC JSK E:GFN ENDM * * MESSAGE SERVICE * E:MSG MACRO EXTR E:MSG EXR: #(1)  JSK E:MSG ENDM * * COMMAND SERVICE * E:CMD MACRO EXTR E:CMD EXR: #(1) JSK E:CMD ENDM * * READ CI * E:RCI MACRO EXTR E:RCI EXR: #(1) JSK E:RCI ENDM * * LOAD PROGRAM SERVICE * E:LOAD MACRO EXTR E:LOAD  EXR: #(1) JSK E:LOAD ENDM TITL * PRINT FILE SERVICE * E:PRINT MACRO EXTR E:PRINT EXR: #(1) JSK E:PRINT ENDM * * LOAD OVERLAY SERVICE * E:LDR MACRO EXTR E:LDR EXR: #(1) JSK E:LDR ENDM TITL * E:ISM PL MACRO * ISM:PL MACRO S: SYMATT #(1) IFF S:&NULL: #(1) EQU $ ENDC RES ISMLN:,0 ENDM * * E:GFN PL MACRO * GFN:PL MACRO CREA:A #(1),0,,,0,0,0 RES 7,0 RES 2,0 ISM:PL #(2) ENDM TITL * E:ISM PL EQUATES * ISMTC: EQU 0 TEST CHAR ISMNC: EQU 1 NUMBER OF CHARS ISMDV: EQU 2 DECIMAL VALUE ISMHV: EQU 3 HEX VALUE ISMDF: EQU 4 DECIMAL FLAG ISMHF: EQU 5 HEX FLAG ISMSB: EQU 6 SYMBOL BUFFER, 7 WORDS ISMBP: EQU 13 BUFFER POINTER ISMUB: EQU 14 USER BUFFER ADDR ISMLN: EQU 15 LENGTH OF PARAMETER LIST * * E:GFN PL EQUATES * NAME: EQU 6+1 NAME OFFSET (RLN:+1) FEXTL: EQU NAME:+7 FILE EXTENSION FLAG GFNLN: EQU FEXTL:+2+ISMLN: GFN BLOCK LENGTH SPACE 3 SAVE END ISM PL EQUATES * ISMTC: EQ, OVicEdDano/#ASSIGN #ADVANCE AUTOLOAD%BACKSP COPY  COPYALL CREATE COPYPACKDATE XDELETE DISMOUNT7DO DUMP nIDIR INIT JOB  KILL MOUNT :PAUSE PRINT XRENAME REWIND TIME VIEW  VERIFY jWTAPEM Z3. .. OS:: SYSLDZ1LD 'Z1Z2Z1Z2Z3LOCIZ1CICIOCOCCIOC > CX> I ¿M (9[tXQF os SHCI  \I@EXQ:O0) B" ` /ݢǃ V ߗ Ž%AɿԞSFOV$1Gɣ€BŞ*ǃdf ]\ ςXXT%VԃPRKЃJE  ,&ȃJE B  k[Z1 1:7 g] + X: 0:7㒀@AL :CI   ˜%̓K:C# $z"fy~tUFOV߅Seq0 ƿ@QDɃQC<+ly ؇JJJ%I ۇ̓̎؃Ȏ;1HFJ̈́:*u 1:72N+ B㯀@AK[ۃ` 뭀APÒΟQ ÊΒQ ᇋ[ CISLCLihDc  0:7 Ń , +# :#GO܃GK D1GA  0i:7 7N+ B5@AW'fT 1T:7 GB>?k    1M@6ʃ 1:wfƃDb::B^1ĿV YRd:o:W NyLCLXILcLxEm)):;w[zCI\   @w:/. أAԸ @BKנ1NF πϠBC ߳߶X:/O C:/# :@p@p@K @ K: p ;p+# [SL /24` .MTEX:: SYS4 UNIMPLIMENTED COMMAND. USE MAG TAPE EXEC (MTEX::)  LU DEVICE FNO #EџтĢ%6OȖAłŇăB!# o6HKLC f 6:Pp @0C f0)@ )]UFOV`[UTIN00- l M Pdp͇:?)JSITTL @ P OC @ ` "* H1LAy  5: H*3mc @0œ$㑀@k+U# !f|yDCk*%lD D܇עDՇѢD·:$wŃǎ DÇ7G 3ǥ :'Â:':' I Ā * w IR,:' 'b:' ]VQ NMM # |fyqv)EB[k/p   هȀEy M :냢fu )C @A   W WVLO ? ΟΟΟ:+9 ţ+  :"  ++ " +4E1 ,6B*u ))C @AΞߟ LD`  : A 0:? # C @)$5 p5 GEuc # 4?B  ec 546‚X)(އр;Nˀ DsǞpoà * p6F*/+  <AA F +  A+IǑ +ILj,IR D <<>> LM a W}+{]wv -KJ -p C 7@h? ٿuN]՞^Y.2QA):D("6_6 pQJNyJQIQJQD߫:˪ǩ_6^o6GGÀF Dç pM@+C @* B <     |p` ]V QF)E , Pp# qw12 O k[ @ Gςχ:?< # ɿɟ E° ݃C ۿE œǚà F` 5BCW"dMT3 @ ĨdJ`y W] TXVXṘ̃VT:F QAǟ  0:F ؃64206G d: :؃˃"ȃ ţÐ Qaȃƃ:Wٟk ( L L 4 C쿩`V: S1D ›ǙBB !d3MT ` g1n6ȃE  dSB@A@YIP +OPPw F +DD ? ,# # FL$" Gr]ofliq&fC @ ƀ Y G @AǺ ÷G Ƕ :?hE 6ߞt+ ÜN Cߙg-c # 2[k DC'( h{ +ts n(ܣ;+ I 5BB}+ߩߨm e_ A# 6J:/ ߕߌ  # } 4`,  q&g `` ^.   6 +@VK K7GH+ FCnB.# D -  IǤ+ߠ&h $+ bIǓ+ߏWT + # }LACR J NAME .EXT LENGTH DATE TIME EXTENTS AU'S F# 2NDX NAMSJ NAME .EXT NAME .EXT NAME .EXT NAME .EXT <1PAGE VIEW (E700) UNIT= VOLUME= J 19YY/MM/DD HH:MM:SS CREATED 19YY/MM/DD HH:MM:SS DIRECTORY=  TITLE=  TOTAL AU'S =  TOTAL FILES=  AU'S FREE =  AU'S USED = FA FB FSUFFL NAMEONLYEXTENDEDSTANDARDALLFILES NOTREE @DIRONLY SUMMARY d ž% SӃт:O)i cbUFOVT5 ң1D ²ǰ_NGDW r`z}WVMT G A˂ˇ!+ bƃ DQ2[Y‡Y:BŞ 0: HCG d d:Ã3Ξ: ÏK + *j s,cqIR "Çe:^ \Z:_ Sq¯K E1ģ+ ? y% njy# {wu&r`d  !k[Hң: y 4 À- # # ğğğğPH㩌DBñ; š2/ :#!:DIR ;<?BEWFL} fcłŇe:  ЀC 6IMƢIB ߦߨn҃<=:  # |yvsZ3 "*@[vQkL ܇ɇɇڇڇڇڂڇڇهه# lҿEµdz Nǂ݃ ۿE ¡ǟ6Ãd`s #$MT3}\a^NyJQSYP PTKTQI: D=QA  0:C2 .Aك0.30.:J 0:郏Þ "& Bѿhi 1D ”ǎSS!MT`3 CsSB@A@Y97 +>\ \ÿ ,B# [#jwGst]pqfmnjqg d :AdA" :  D k'Z3FZ4#A傠+ œ:B0 0: UW `̓@q:p 0: ÜQ¢ ÚKX :_  "#,cd q66 +. ,# OVERWRITE Z4'Z3jX\:ラ - - :: #  | [/ Eٞٞ٢Q9 هآ SȀ; π QI ÀDy Ń8e+± :XZI%QI :'# ~{x },IR `*k:ˇ Ƣɿ Ň Z¿ 1㿣@AǽigeceP((@6ˀ:7:w1 E1DSB%%:#+kߎP#  [zCI w=ɞ ǀŃ ܢÿG ǽD  ?êG!@ «:? ǃÓG!ϒR# WVMT2C4`P]<.YC @ كR֣ЀL̃Fȏ̞v 㿀߷:/ c # c # :o:Wy C X c x ~l 1:7 # # [DE \:   =C @G`@@Q+kc I# c # C @QQ@AǩY%'㥣%'ߞߟߛqc I# c # C @QP@Aǐ@%'㌣%'߆߇߃rc # C @) w'N GpoN15c # :_:WFy# C @H^@N2@% @'Suc # C @)@ G@0FD5c # C @%'ߘc # C @@Xy}@} . ~ .M I.M~I.d@bc # 4.C @xI [ /O+Ul jHhc # cII C :7+UT R0P#  { Gʑw I䀅 I.Gj#   ҃ՇՂՇբ)ƢЧЂ:# :|]xŢ%CfþL(Ӄ )1B ,_ +]# Pw t0123456789ABCDEF d`tF}[UFOVk Ԃ٢%Aԇԇẇ‚LJ:%都E샷: _õK  !:'  :'# {fxtqq3n`[UFOV,+*kd: -R-<H-<::  ># ;|00 #&& m VT1Pc  ÕT ‘Ǒ  # f{UTV(C @` @@Aǡ%'  +ÖN1B60ߑo pc #   kc # ߇: I E܂AA # 0 {  0:' # Ξ} 1:' # Ş}ć ‡:C # ] {I Ƿ :  0:? Ø G!Ǖ:? 1:? # }[F+*.?CB5ރˏڃ̇eˠS6ćYG*@ # IM"  +  # B ? >:? ? 1#  1y w'#(n"`D*+!H V@ąڄD΢gk9IUE@+t@y# Y+9 T v 0:/ # } 1:/ # } {+ âK):/qp :' D # } {[OLSL/0 LO264*,. 0:::G:6: ߏl# # FGe #"G:s;r:omi - `@QA+kVVZ# ^$% +u:r +:6k hC @ߴ ³ -IîG! G!@B @InjGc # [T` WX]^bc*BLOCK AU  IĀ+# Ӟ 1 # I?ʣʄ+U# LH ǢăE # B | :)䃧⃰ ކIIڣ; 㞀@+kUƀy@NyC # , 4Ƀ S DB #  { [9:'7SX@AKN1O # ݞ}KFA+s # } ɣ| 0VKԀCC C :'ߢm ^] | G ǡǡ::  # |IRk*+.#&!ã # } B90.r# Z1# zTQS: ɣB:#  2YSIN ˃mm ÃkB# gyQ B TT˃Q )HH # GBB y[TO) }@5I1%C B'`(j%C @'` dK#oe `kA YX ƃD  # <% {#  ~|{IC @`@@+kc #  ~ƊK 1ģ+ icqp  C @ @…Ā+c # EXEC (F101)  AU YY/MM/DD HH:MM:SS /JOB (FILE IS OVERWRITTEN) > FILE ALREADY EXISTS. OVERWRITE IT?(Y OR N)  VERIFY SUCCESS VERIFY IS PROGRESSING , END OF MEDIA, MOUNT NEXT VOLUME?(Y OR N)  END OF MEDIA  FILES DO NOT MATCH SYNTAX ERROR INVALID COMMAND  DIRECTORY NOT FOUND  INVALID UNIT NAME  INVALID OPTION INVALID DECIMAL NUMBER UNIT NOT FOUND INVALID FILE NAME & FILE ALREADY EXISTS FILE NOT FOUND ON " NEITHER UNIT OR VOLUME SPECIFIED CLOSING  VOLUME NOT GIVEN( CORRECT VOLUME NAME IS  PARAMETERS IGNORED & FILE IS SYSTEM FILE BAD AU  UNITS NOT SAME TYPE INVALID DATE  INVALID TIME  SYSTEM LOGICAL UNIT  NOT LABELED  UNITS DO NOT MATCH  JCL STACK FULL 8 FILES DO NOT MATCH AT RECORD WORD 2 FILE DOES NOT EXIST, CREATE IT? ~ZBP* from tvxCI XQ# zZ$ 0::~˂ц7 P4 1:~+XQb L_ @ X¼@*+ QP6qJ©@)5HQB|@ 1:~Z$ÙXQÖ֙ǔ/D ,Z%) ( ۃ :~gև :~^ &:~YŇʃćɃ  P ":~ 1:~ 邵%'=: A: ` 맀A: 0: ǂ Z$#  CI ;gUF g⧂@+k zZ$C @ RRS OR M:~ c # 1 pZ$9 $`$ BATCH FILE NOT FOUND* BATCH QUEUE EMPTY - PROCESSING SUSPENDED " BATCH QUEUE PROCESSING COMPLETED  OS4 INTERACTIVE MODE RESUMED  LUN EF NOT FOUND  I/O ERROR ON LUN ZBmF1EBE5E3--OVicEdDano$SCRATCH Z1QZ1Q PZ1QZ1QPZ18Z13CIFICIF * 5 .  OS4 F1 03    VOL1OS4:MT    VOL   3   nrz~ 5 10 40 80 150 300 5 10 10 20 40 16 48 80 16 48 80   #M77777&@8@Lzz) @@@@fM(@L pCSC瀘pE ׇ޿ F LUп ўo66 h6/aO6BYV 6: P ?L  I ރ߿$%OC [1 1% TIkЇ:ΚIY@6LWW!QI  :FpG|SMAǥC PL L@L" /@6A.&|]CIhL! h3{ Z1MT CDF5 a!oI$mkC C # *ۢQ۠QB @ Z@N KC 6D I qIJ\ދv^%?`x@ @`x# ,ǦǥǤN ǣǢGǟpN CpPPNpHPC bacm_` SX4AII@ GUAK GOAK@G GKAK G! AK̟@A G GGǸ G7J@A˱ǰ ñG! AKN 6AK@A˥Ǥ G G"ʢANǘ C @gc   :DPDFYZT@ C! GG! AK ˺Ǻ KN)G! AKDzBêR GG! KǥFII1Bǜ5(% aenmhiklj]^ S  C @Jƅ Ù ] ? Rf1E`pKCc #  T !I@y4E@k4# 9 0N1@# F A N1@# (# ~U`pEUUu/Pq=QmIS ˜GQITa G`R GGG_c ` CY5 `   ΧΪ΀P+Q+R+S+T+_+` `]C @ a RUA yoUG`pEU?`pEU|U  6`pEUU "+`pE R C D %EBC  66 a ) +3G Ǟc ) c  TR| RW E6A Y 1p q: ]zyxOC \& s.+ y@J\쾧<%'UmlI߀G2 k9 ?Aۢր@+kU+ӢjOS4:SCRATCHVOL  . / ӽ@ ӺB+ުh !  \ӡQH GAK *O JE  @%S [ T (o np¿ h*edk e  ~|%@ % '⡢Q[) bAjÖQ@INFLVLMY@)5SR% OL Z @ 9 / # # n :&:@G^ ➙A%J' O-ߞ~ Pσ٘Ey п>c=I/y@%@'kI .%C AC U'ðSƂB⹞⶿HǧⴢI %C @`(KC @`(JU'Ϳ  I9S yVO CL1  1I  | N66C ɞ+ɃA: IÓöÓ:6bC @C A6A  ţ7 c # `pF Fc # -S,H)' A6   :QR DH  I+9 +8JRBK u W +9 CFk@ Q<C*ƞ*¾  i CSOL j曃}{zyxJut.rCNn. lji `β@ uc%'I%C @'J%C @'ʟΟS"ΜʜTҙQ$җK1 G+K%C @'3>%'ΆʄR΂ʂW+: @֟Q@XQ+k6pAԿ \ݞ j Tɞ pqAmA g@i\A 'vG:&::.CAj:.f%:6 |y ^ z a qpI+l~ N YĻI?@[nZ~ fOðo N Y[Z :  Σ  C܅qߋߌk  Rk[ TNSVN: nҶ҇ЃѶχςχC˂ˇˇ˟_ ɇZÃ::2OCIܞøǰǰöG@@AǯfçGGyVߢ3G~DϢKS# ߙP$GrC @C Ix  Q`awb_cC @gc # C @`pF+F)I@M JKK0%'95 I. c # / 6{ ߴ  nQGS䣩ji ƣߝ ʃ ߖ ߑߌ߈J[# 6 wu uvrRonoDljKedă][X[VJcWB ËNMJN A|utX! ǃw;t79n11.jh ãe'Ams\[Z XVUvPMu !z .ߵv IǴѣF8:\*sQRSv  mnmnklhi [YY S R:OP CB ><so ̢7 31sq𞍞&5  mopqr" GSAKƳ   +@ΩQHߟߟv:   Ɛ: YTUrSeN Ƿ jF: G3 IGrVߢǠ: =ZVWhg:2:,I:# VRQk\h>t/. oQۇ&ڇ%JI Ď [ [G1ć PGĈRSTYB =;: 11:1Aփt 'A+SpZDP:DFvvlTU   C_ :ccIⴀG@A+kKwmo Th@Aǣ~}ߞzhkÙN @AǕQH•Ɓ~}ߍz:3p NW C "óN Bp éG Ǥ# . *5# ƪ| : rq ~+:}vuRQ`%CI ~+:}vuSL ~Ǡ|{y:>@y 15N%' ^+ % K4'^3BCD%> -) Gv$G!GV# . *@@5# G!Ɵ߸BYĀ #  p #  ~})Ð@*+xr g TUm c C Ì G!GV߂ǂ# QR ~ GG@A] poVpo: gYNv dcb8 ~ yx@  e  20 /,-A('܆"܄@B B kk@Bƅ+ @B B++++ CW&%A G Ć  Îġ : STNj@ ӀAB+kJR8ks@1N9 B N N Ā# @1N9 B N N Ā#  P!Lz Gvu ~ h7GVߔǒ:,,M:nm]\VhRQH ~}|{zUF@+kUsr LABEL (F103)  ENTER UNIT NAME> ENTER VOLUME NAME>$ OLD IDENTIFIERS ON THIS UNIT ARE-  VOLUME NAME: TITLE:6 TO CONTINUE LABELING, TYPE IN THE OLD VOLUME NAME -  UNUSABLE DISC  LABEL MORE? (Y OR N)>  VERIFY DISC? (Y OR N)>  DISC VERIFY IN PROGRESS  NEW BOOT ONLY (Y OR N)? \ VOLUME NAME DOES NOT MATCH YOU MAY HAVE TO USE THE APPROPRIATE DIAGNOSTIC TO REFORMAT THE TOTAL NUMBER OF BAD AUS = RENAME VOLUME ONLY (Y OR N)? AVAILABLE DISK FAMILIES ARE: 1. PERTEC MEDIUM CAPACITY DRIVE. 2. CDC SMD HIGH-CAPACITY DRIVE. 3. SHUGART WINCHESTER DRIVE. 4. QUANTUM WINCHESTER DRIVE. 5. PHOENIX, WITH SPO OPTION. 6. PHOENIX, WITHOUT SPO OPTION. 20. STANDARD FLOPPY DRIVE. 21. MINI-FLOPPY DRIVE. 22. DUAL DENSITY DRIVE. 40. SCOUT FLOPPY DRIVE.  ENTER FAMILY NUMBER>( INVALID DEVICE FAMILY, PLEASE REENTER. ENTER DISC SIZE IN MB>& ADDITIONAL MEMORY REQUIREMENTS ARE: < FORMAT ONLY, FORMAT AND LABEL OR LABEL ONLY (F, FL, [L])?  RETRY OR EXIT (R,X)>. UNRECOVERABLE I/O ERROR. CONTROLLER STATUS=  DISC FORMAT IN PROGRESS 6 FORMATTING FLOPPIES IS NOT ALLOWED ON THIS PROCESSOR CONTINUE LABEL (Y OR N)?2 W A R N I N G --- TRYING TO LABEL SECURE TAPE.6 MAGNETIC TAPE...LABEL IN PROGRESS...STAND BY PLEASE.: ENTER AN ACCESS SECURITY CODE (A..Z , 0..9 , OR BLANK)> F UN-LABELED OR NON-STANDARD LABELED TAPE. LABEL THIS TAPE (Y OR N)? $ ONE MOMENT PLEASE FOR TAPE ACCESS.0 OVERRIDE VERIFICATION OF VOLUME NAME4  (Y OR N)?$ MAXIMUM NUMBER OF FILES [DEFAULT=:,MAX=: ]  NOT A HEX NUMBER - RE-ENTER  8" DRIVE (Y OR N)> DOUBLE DENSITY (Y OR N)> IBM 2D FORMAT (Y OR N)>  DOUBLE SIDED (Y OR N)> SECTOR SIZE (IN BYTES)>  SECTORS IN A TRACK>  TRACKS ON A SURFACE>" CA SINGLE SIDED DRIVE (Y OR N)> 4 INPUT EXCEEDS MAXIMUM FILES ALLOWED, TRY AGAIN...  FILES ON DISK:  FILES IN ROOT DIRECTORY: . SECONDARY EXTENT SIZE FOR ROOT [DEFAULT=0]?  SYNTAX ERROR UNIT NOT FOUND I/O ERROR  TOO MANY BAD AUS4 INSUFFICIENT STACK SPACE AVAILABLE FOR VCB BUFFER. -K- REGISTER = -L- REGISTER =4 INSUFFICIENT MEMORY AVAILABLE TO FORMAT ONE TRACK. DEVICE NOT READY! RATE ERROR ON SELECTED DEVICE." FAULT ERROR ON SELECTED DEVICE. $ UNIT SELECTED IS WRITE PROTECTED. F I/O FAILS RE-TRY COUNT. DATA TRANSFER FROM/TO DEVICE IS UNREADABLE. FORMAT ON MAGTAPE NOT ALLOWED.& TO CONTINUE LABEL ENTER ACCESS CODE>( 'OC' NOT FOUND IN UAT...ABORTING LABEL0 'OC' NOT CONNECTED PROPERLY....ABORTING LABEL C @ ʢ X H N 6  B N ā BGąc # 3`Ps@pz@cjp`n G G!RPC@ Gƅ p\p# s4 @?쀀 A+B G@A4E+C+Dڢ)+-*,*Ä́%̈́!yBA   C܂ DG+X@ ϨGǜ# y BGNJE9 ‚yzy{#$@ýpC C })hC C }btC C }2`1A# SÞ GS B Ny@ABGK BEGGB>@R; C% 6` 6J 6W 6H 6J /6K ?6Lmlh({9xKu ] m 12C @ X Rwc # c  1% 旿I1P)I 0% G 9 /4'℟ji g%I v) @hhgge@n G geafힹa XRW R^e IQiBp@<;: H8P@ G;NPCHC C GTqE'ž * Cȟx @0DAJL )‘ЀЀΎQBx"  i+ fEB `jm@kC# b# }J,r @EEFF)DcEF, jH@pTğv g>g;]X] PhV+s=胾c_N GF֞ؾ “@ALS)"$ C k1/j-h p vRw ppwp ki 15 !^\d X %'+Ns愾Q)s ED|{ @$ o O m J K i g. V tsFn`"FED) E`Cnrgy w"N{Rq1H }L2`0tG- Bc (>=>> Y EXEC::  SYSLD j'1ƞ þmM)ŢfE) ]]⺤B1C: b): ̃ !_pC PE` C   p0! pCPEs  6) z ]LD ChbIqC C @U ilffeKB́QȃYAـ ԄQ`(QBNKCBǞB!=? pCùC @KP@E OQF@ +zCI ƀv: #  [ MG U+* l 2 _ f owOC r` EXEC:: NOT FOUND  BAD TYPE CODE PROGRAM TOO LARGE LOAD ERROR  NO EXECUTION ADDRESS  UAT WIPED OUT SYSTEM EXCEPTION XXXX OCCURRED AT LOCATION XXXX%I@2NK0M9K+U'#  Q=/p(p(C @`pD+E` B@ C@/ph@ph?ph@kphE@/p p?p(+p(# OCSL :@`` D@1HNFLODL)OB`H: ) # `@:(x  OVST 4@pJp@`H@Bƒ C ADEFGHF HAEG@h @6@6@6@6I pB# ) ZP  PO Bƻ: C @@ B+{āc  0 0$: :   : : w 1:  1:  Z: :ZPZP +׀!ӄҢҢ̀@QD@QBkz A@N JÀA+kUǺ : ::&y X R C x r ck4  >  -. +)* p OC(OC+OC% CRX> ?   8 > F L S ^  hA xB C D E F G H I J K L M N OP QR"S,T4U:VBWNXWY`ZntzK NOT READY WRITE PROTECT TIME OUT POWER FAIL  VOLUME NOT ON UNIT  VOLUME NOT FOUND  LOGICAL UNIT NOT RELEASED  BAD CHECK SUM UNASSIGNED DEVICE LOGICAL UNIT NOT IN UAT END OF MEDIA  HARDWARE ERROR  ILLEGAL OPERATION NON-EXISTANT MEMORY ADDR  ADDR IN SYSTEM MEMORY DIRECTORY FULL  DISK NOT LABELED  FILE ADDR OV ILLEGAL AU  AU NOT FOUND  WRITE DIRECT EOF  FILE NOT EXTENDABLE ILLEGAL FILE ADDR ALLOCATION TABLE ERROR  SYSTEM USAGE ONLY BAD FCB CHAIN FILE OPEN FILE NOT OPEN ILLEGAL FILE POINTER  UNIT NOT GIVEN  UNASSIGNED FCB  BUFFER HAS WRITE PENDING DISK FULL RTX ERROR UNDEFINED E6 RROR0GG GBpaFbDcE/ph@ph?ph@kph# FaDbEc# # . -)</ph@ph/ph@ph?ph@kph?ph@kphĢ/ph@ph`pHK Q KRQH ?ph@kph`pC# . -!ŸǟžǜœǙšǖ˜Ǔ–ǐ”Ǎ p+LJc #  ` aitPt| n0 U   t H  H H F H>   M DF00AAM  MG%M DF01AAM  MGML%v''(L?) fdMvL LP00 9""2" DM00AA  & DM01AA  &MLv(\(\(?) d  X1X2X3X4SILOvSFUF%OCCISLSOSALDOVXX%POvZ1Z2Z3Z4Z5Z6ZPB4d1RICNBCO# $'/p(p(` D/ph@ph)@BCOD6D[ `+ʀP COBBT€RQ EVBQ mWG CW90.r@ VBCO  OV 600ߞހP D  /NBy M  `+d,NQ (Vy )ք5` @P  `+MN sVWNy%ZrY['OCP  /NM D%Y'B2BC] ҀO? ?ph@kphD?p(+p(# r pN N igIRN1N1  # e d/p(p(` BDCEAׂI `+C Uф@z 0 :D A FE [ _ E :E ED DAQ\DQZBN!BB @BCN1@CA,D,E,@k%'jACN€MDB BEB CA?p(+p(#  |t</p(p(` /p(p( MNQ@ ϪSW/p(p(Nq% ' z ` ?p(+p(M?p(+p(# '?p(+p(L 0nMN1EMM M1ÉB I@@Mǁ#  1 æ ::/ph@ph?ph@kphF:  ª # @SAyCI 6 SLCI SL @]Ǡ1DSB# :"SFUF 6UϤA FDZYBZ Z Bą  Y H H H @ ɠAZg Zu.%@H/B5fѤA ʄZH ОǞȞɀWX AZȀ  TZT UVETj`ZЀ`ZʠAZZgZAv.7 @ /BN͠Y ABSA ZZߠYۀABā A@Ѐ ĀBĉZĊ¨ć§ā@ giZAZw ABZZCAN .%@5B/p*B1:Aݠ! _ "* H1xvB C @C @ pā_B __ __6 1  pE/p p_/p p @*3AB1NBɀ6e 1 g/p py.B%mkPc Pgemb1*]BBC B1HRggMy_ܞ N OQJ?QC @QBTP G `QRS GGG_\ ¶G!ac BR IG*SF@ B, @GBĝBR IG SB # xu% Y 1C# MT.C @C @C @C @C @`p FYcB/p $p# H= I[QaGWXZ/p(p(Y@IC @C U?p(+p(# URV_ S R_ 4E#   @YIA@AĊ# PB1LZĀ6P1PA# ƒċ#  )IGVWXWBG! R]^TVC SSURR3ƀ^S00 # TɞQ;/ph@ph@(РP+?ph@kph P+P6jP  fP{z  Ā ΥQ/ph@ph ?ph@kph ?ph@kph # ?ph@kphv 6.-MT/DZB+E(z(# ^][WXS SEI@ Z# Y\΀[ PWXG[ # I\a`\+U*ZZ#  ZYB1Jy YQ^\YQg!WXWXJS+XW7y B N OKƠQ ?F # }{y=v N O5ӠQMI+9\Y\+\JR9P#P#  \F6\AB [ IZF cL\FXN9C 0B[GZI # n)A6AkDYLWXFXC >>0WXADAASO`NCZNZYNNYCYTڀ`LS x3XWFA Z [NWOX I]G [NWOXWXPAOGAXA6QSÂYK=A:YQFXQfxp'`WX%A$EA [SÂlYHAgYDfc#LWXā  A6ADYF    UU 9WXAPQBWXFA;A6XSÀYRSDAYA]AwxBnWNXOAhPQfBbWX``F^AY\;[A6_SÀYSYSAIQQYAbAWFXFBBAA@kp?((WXY )C-NOAWXAFA;SDA B gÕE JEI\YSZZ Zf1w4WXPQY )oBBWXBB]rYE JEI\YROPeNDZx`C`9A6ALWXhF מ DSAGV WE [NOWXP [ I WXWXLāEҠA+ DSAGV NCWXM [ IA+WXNFрOF [WXEA;WXA8 Ă/ . LNO[`FFA ՠA6AA֠A`AAƀF̄F@BK@" @+ `  @6F@F@``/AB`@ CWVF̈́F` ʀ6AAA /{qqA6B6D6BπF ĠA AZ_Aդ`AQQF̄FN@BK@" H @(_GCCB_@``EF D`@2`G CABŀÀ@@`@"C!`AF@F@ā ܉ZL  Z__ A_ABBED7 TBV񀧄UA__ggC_bv+O*P+N{TTOxU΀VG_FZP@Ʉ`_99t`A`00 i_`_ A^  +@(U+@(@#QF*U+UVATVU # /ph@ph?ph@kphsm\Y/p(p(E%G @  }*19 ' ?p(+p(Y# YDLPWX T]VBG S^YSBYDEQ` LPLπIY@SB INZZI QE# 2SN# PQWXʸNO F # [| TV]R]TSUR^S #  N\ Yx^A]AZؠQÈJ^*+DYY^yEDDY]AZNWOXQEDZ\\1f*\ "E8Y@Y]RVU ƀWNXOcS+yDZZHnnD؀DeeZπDZ)@AІ̆VUU # 2NO@AGVA PÀYCY# 2V# AVUT# MB TUA/ąV #  /A1 # L# ANO# WPXQY)>EYPY # NYR€YNN# A+# - qSÒZNZ# 0_@APOQ`H%} 'F+`HPu `@_P# ZB+F C8# AEYF@Y# VAWXĂ/ # NVWXW# YNY# A+# .oYS@@YCYZBZ @GVWX@ Y# Q# C @Q# C A @\"\S@"VSO 6ĈEN 6ОEN 6Q`*%VB`H`H5Q`*%VBt`H`H5Q`%VA`HA`HA'kK*Q`V`H 6*%`H`H'. 5D@5c # "S SRKRPQWSРBGVNOPSǀSP S # } RBG NOS GS G !GVNO# }S. Q# @  GӠBG! SR/66ZRQS_ R SC@]Sƌ+JzR1RR/# BG! ]^ # I C U# B+# !+# B SXRRS SB 9P{Q@ p.!A s⑂@ @AF ## #    !4s p`pA bDBOϠ 1E OS p# G AEA@BF EG HK 1ETRIP EAO sO G@iNJK˜FC@@BF]GG@oFS#ab?! [IFF# "!!"!=]p pSRXN` P 0Q Q YZ О E@ @ E 1Q]‚p# @M SA G[C  !!"*"'"7"6"E"E"?"h[LL@fLOLoLmMNMIG"% qXQ3ĤX;\@`XS%'`@\'X# hA@ QA[1DHV ]'"""NF[1DHV)NGQBIT#HL[1۠Y1Y@" Y&ZA&Z[1DHVIGa@Zs1@N Y@&VV<V9V6[1CHV1I!!V1G@CZQCYQG C pÀYZA@@eZ1B@Z`GG}YY&Z@# p``p^] )5]@AB_][Y@QADQZQBY@ĈE6Bg^ p# !"1TV00P""<"J"1Lt$"%?)1J"   L1Lvt"%?)L" " eL"EDπF ĠB΋QG F ʀD)TR#'ZD݄DI3BJEKCFyDOFB6E@6ArP + 1QCܗ 0y xBD+KFQFQFWBwPB ЄP怑GG[柊 )) )* *-)) t#TO [DFF6EEKdddcbBawF@0 CXJQB1h6ǀy C DD P+KFQFBJGy ÂGG-pPAC )$ jOϞw@KQB@61U@ KCNJĂ܄6À @KQNDI@lJFJCIIBΜQ:ʘNyJQKQĀJ/6-$)) ) )* LP&%%kj : IPRED)DDNF  EKBF @Q6@JPF 6 M_CK_%'3  oPDJ IQDF6AKFQCK_%+'PQ͟$)% t)%p%%`LL K IDGDQh IIADDIIFXJQCcKF6+DJ B%QC*˞aa' QQ ICB1€F DPQ_QAFND%c%n* ##%j$.EKM B%'Q_J  K@* H%'@(KK+I_K#BK`M@#QbAIIDMN F6FKK _IQҠMK1yAʠMK1yv DBKFFM `K@P QQҞ QMJM`UEK>Q hKMeII ΀_E6q.y' IICđB@1B P;XJQp# c p+p(/*) )$Z##)* *-)#) #&?&YBJFF $ # ʠK_ D II ӠB1P1wD+KB I螮 ҠB K D IIF  FBDQKNy@HID@DÀDrI1oD+KGeCI I  ^ BBܗI ICF  ŠB- @KQB@6TLP  t####) #?Bp MBV ;KI D I KI D I *%TYTKPP%TP&s&}%&wDIBK̈́JSC DIFF IEDמҞОсKy  D5 ͠CFK ICDEKnCCFF DBKCILUCCIDGKCǞ{x t) )'~* 'b'f) ))p؞ӀDIBK̈́JFGFc0 DCIĐ IK ֠CKD@yNqāKJpGFCDEK@CC:`DI77݀FF DCBK Ā$#I" IG}wDI@lJ_6D/6Bh j))KF@6+%'6* 6|EK+D@*l# 'ZEDAAӠBCAĠCI  ID  EK@BĕXCĜ FN9XKQA rC6G@G@XQII/6РBܕCܝ ]} ( )!)) t),)W)j j)]@KQ26٠C =6?6ˠCCKJJBC  %BC>E@KQ:C6N13C6FB # # }/*F AE D)7)=)G*(K'(\mEDB  ; 9C @_9#C @? P Px!@p@C @ *P z ał S 9*q09>> >{c 1~ e/~J1S0/-z.y05|0 0/*F<@ A# @HBD`pCDEF!I JAFGHDIH6 @QDCEGEI A‰ `@# /+e1K*M# BJJ B` E ``b`# D# r`@@ABCDEF` &`JHIFˤHG^FDZ HFFEFĎEJ # /=../C//BGDFwDHI`(j򀁄IJKLG@ @HA BF@`CED@ H6RC @I܆/#@# ``@ # CČ @䀞lo1/1J3+' 01AsA?10,qgI,B0&C1&D `@/ph@ph?ph@kphq`H@@h@`@@q`H@@ ,#-!.-/,$k,&,'PiSC* bĀ+u*M] # Sm vjsCk JS검@mkb `@nbG*`@ G*g'ā OC - /OC - 3 OC F HAT W Uk>n:χ: 6: >OVicEdDano?,ASSIGN .ADVANCE 5AUTOLOADBACKSP 4COPY  COPYALL CREATE COPYPACKDATE NDELETE DISMOUNT6DO #DUMP dIDIR INIT 2]JOB KILL 4[MOUNT 9PAUSE PRINT WRENAME REWIND 4TIME VIEW  gVERIFY HWTAPEM 4Z3. .. OS:: SYSLDZ1LD  Z1Z2Z1Z2Z3LOCIZ1CICIOCOCCIOC > CX> I ¿oM B(=vXQF qs SHCI>k ^I@EZQ:X2)PP B ^ /ݢǃ T ߗ Ž%Aɿ= ԞSFOV%-1Gɣ€BŞ(ǃdf ]\ ςXXT%VԃPRKЃJE ,gȃJE B  M =tZ1 1:@ g] + X: 0:@㒀@AK CCI >k ˜%̓K:C# $gz#Hy  `tUFOV߅Spq0 ƿ@QDɃQC+ly ؇JJJ%I ۇ̓̎؃Ȏ;1HFJ̈́:*u 1:@2N+ B㯀@AK[ۃ` APÒΟQ ÊΒQ ᇋ= CISLCL!ihDc  0:@ Ń , +# C.GO܃GK D1GA  0i:@ 7N+ B5@AgW'HT 1T:@ GB ?M  >k  1M@6ʃ 1:fƃDb::B^1ĿVg YR F:x:` NyLCLXILcLxEm)):;=CIe   @w:8v. ףAӸ @BKՠ1NF ̀͠BC ߲ߵX:8O C:8&# 4 UNIMPLIMENTED COMMAND. USE MAG TAPE EXEC (MTEX::)  LU DEVICE FNO ySL8;=BEџтĢ%6OȖAłŇăB!# o6HKLC f 6:Pp @0C f0)@ )?UFOVB=UTIN00l M Pdp͇:H)JSITTL @ P OC @ ` "* H1LAy  5: H*3mc @0œ$㑀@k+U# !H|gyMLM*%lD D܇עDՇѢD·:$wŃǎ DÇ7G 3ǥ :0Â:0:0 I Ā 3 J U V YIR5:0 'b:0 ]VQ NMM # |HySv2_\=M/p   هȀEy M :냢f )C @A  y * Y q-ULO 1W pΟΟΟ:+9 ţ+  :"  ++ " +4E1 ,6B* ))C @AΞߟS t fM+B#Q2 : A 0:H # C @)$5 p5 GEc # =HK 2 yec 546‚X)(އр;Nˀ DsǞpoà * p6F*/+  <AA F + >  A+IǑ +ILj5IR tM r s<<>> LM a W}+{]wv -KJ -p C 7@h? ٿN]՞^Y.2QAσ):D("6_6 pQJNyJQIQJQD߫:˪ǩ_6^o6GGÀF Dç pM@+C @* B 2Sy k b p t|p`v ]Vg QF{E , Pp# gqwopef  iM= @ G:HL # ݿݟ݃ E¿ գ҇҂чуЃσ ; 㿻E ¥ǣ̃ B  KL-+ MT  9΃[LTy M JRǪ GMKMDLJHI>H=G<864A  n7z795m)G% :Fg QAk  0: +Ѓއb ʞVǃLJԃ҇ŃчăЇâL·IICǴù@Ƿăć:G d: /:؃˃ȃţ! Qoȃƃ:W韡"#  +M e&o5 LK  1 H`MRX GQRGQ1D žM DD:98 88q;MT  B V56ȃE  fSB@A@Y IR +SRRwH + DDCC < ,# # FL-o )r?oHliSf kc &`C @ ƀ S G @Aǻ ÷G Ƿ :HhE 6ߞt+ ÜN Cߚg'qc # ;=M MLyz g{ +ts n(ܣ;+ I 5BB}+ߩߨm e_ A# 6J:8 ߕߌ  # } y=B5 q2&g `` ^  6 +@VK K7GH+ FCnB.v# YM -  IǤ+ߠ&h $+ bIǓ+ߏWT + # }LACR J NAME .EXT LENGTH DATE TIME EXTENTS AU'S F# 2NDX NAMSJ NAME .EXT NAME .EXT NAME .EXT NAME .EXT  <1PAGE VIEW (E700) UNIT= VOLUME= J 19YY/MM/DD HH:MM:SS CREATED 19YY/MM/DD HH:MM:SS DIRECTORY=   TITLE=  TOTAL AU'S =  TOTAL FILES=  AU'S FREE =  AU'S USED = FA FB FSUFFL NAMEONLYEXTENDEDSTANDARDALLFILES NOTREE @DIRONLY SUMMARY  % SӃт:X)i cbUFOV]S ѣ̧̀ڇʣ٧1D ăa򣺧ȇDŇŇŃɢ֞Ӄ<5ˢl%cB ;:B-UMT# 77DE \Ң\+ S P y7795m)? G%3Aтp+ l0˃ DQ2(&/,':Bş( 0: $  d dǂC>:ÃΞ: ÌK + jҞ5Bld2IR#+&5:ݞܞȃ\ ZWׂׄ:h Q̓ϟϟ̿S8-ȢȠ+ K +1ģ+ '& y nWy# gtpurom 8Uq;M8 =8/ K8d:8Hң׀: y 4 À- # # şşşşF>㩌D8ò1 š% ::My5IR -(fB dałŇ:  ЀC 6IKƢGB ߧߩn҃::  # |ygvsZ3#+=-M` ݇݇؇ׇևՂ# dƇE ƒ‡ݣEڇڂ͇΃ă şŃE ¨Ǧ'ʃ   %B   $,-MT8VσYWNyLMJQKOH HJCJHAE864275.AƂ# 7zh795m)G : DQAݟ  0: .LJ AÃLJWۃPMMñKïǤIAMGFED냦7:J 0:(۟# +&-+ B޿] Z[X1D Ǜ RRGFqMT  B  .lSB@A@Y$ Y +1W ÿL ,B# =oHy)uv?rsHoplSigfg kc ` ݇Q̇ۢڇ"MK҂: APAއރ  σQ͇˃A;K있ʇÇ:' ‡#ÿQAǡӢ+›ǘ ó Ăß" B795m)GM 7DZ40,Z3y7q%[[AaZW+ VV:B 0: D ;<<>8QA<<Ǔ:A87Ђ6 d#&7z-q:r 0:( ÝQ¢ ÛK :h o(+5Blm qoBg%CƢƠ+ ŸY# + ,# OVERWRITE REWIND RVERIFY VOCCUR O M8 =8/ K8:Z30Z4HN\:ラ - - :: # | =_hEٞٞ٢Q9 هآ SȀ; π QI ÀDy Ń8e+± :XZI%QI :0# ~{gx @ 5IR B3M:ʇ Ƣȿ Ň Z¿ 1㿣@AǽigeceP((@6ˀ:7:1 E1DSB%%:#+kߎP#  =CI DО πȃŇ̂̇˃ȇ ߢăG D  8íG!@ ®x:H ǃÖG!ϕR# M-UMT)G3,;L=~B2Z9.VC @ كPLЀJ̃Fȏ˞v 5߷:8 c # c # :x:`y C X c x ~l 1:@ # # =yN eC >k =C @G`@@Q+kc I# c # C @QQ@AǩZ%'㥣%'ߞߟߛqc I# c # C @QP@AǐA%'㌣%'߆߇߃rc # C @) w(N Gpo N15c # :h:`Fy# C @H^@N2@% @'Suc # C @)@ G@0FD5c # C @%'ߘc # C @@Xy}@} . ~ .M I.M~I.d@bc # =.C @xI [ /O+Ul jHhc # cII C :7+UT R0P#  { Gʑw I䀅 I.Gj#   ҃ՇՂՇբ)ƢЧЂ:# :|?xŢ%CHþL(Ӄ )1Bg ,_ +]# 2w t0123456789ABCDEF dBs(=UFOVM Ԃڢ%Aχԃԇẇ‚ȇ:¢%郸E샷: _õK  !:0  :0# g{HxtSq nB=UFOV 543Md: -R-<H-<::  ?# <|00 _h7&& m VT1Pc  êT ¦Ǧ  # ЂÛ)•   # Hg=7TVMT d)C @` $@Aǡ%'  +ÖN1B6ߑo pc #   kc # ߇: I Eۂ99 # 7 {  0:0 # ͞} 1:0 # Ğ}Ç :C # ? {I Ƕ :  0:H × G ǔ:H 1:H # }O437HLK5ރˏڃ͇f̠S7ŇZG+@ # IM#  + # B ? >:H  ? 1#  1y w( n#+BM= ( !H V@ąلC΢fk9IUE@+t@y# X+9 ST v 0:8 # } 1:8 # } {+ áK(:8qp :0 D # } {OLSL8LO;?y=357 0: :(ȃKFՃ:P: ̃,އ҃ƃۇEٞ:($ZA  ȧȃȇ YćăćăćăQ d::ȃS:t:H 0:(@ #  )' 5&,#+ qP6Xo/mlM='Wʇʂ͇ǢRRŇÃDB˃LЃBDB5C: 33QD0:(.,'  @QA+k4#  - )G%(.$ +n:(k +: >d eaC @a ]¸ ² IðG! G!@B 20INj )c #  =b 6B e  9 : ? @ D E*BLOCK AU  IĀ+# Ӟ 1 # I?ʣʄ+U# JH ǢăC # @ | :)䃧⃰ ކIIڣ; 㞀@+kUƀy@NyC # 5 ( =Ƀ S DB #  { [9:07SX@AKN1O # ܞ}KFA+s # } ȣ| 0VKԀCC C :0߭m ^] | G ǡǡ: :(  # |IRM347&,$'/!ã # } B90.r# Y1# zSQS: ɣB:#  ,YSIN ˃؇Ӣmm ÃkBˇ# gy) MQ B ‚ PP ˾+",O ,R,V܃> ) ,d Т00̃ -)k$$ # ) y=TO MT ) q}@ I%C B'`(c%C @'` ]Koe `kA MYX ƃD # % {#  ~|{IC @`@@+kc #  ~ƊK 1ģ+ icqp / C @ @…Ā+c # MTEX (F101)  AU YY/MM/DD HH:MM:SS /JOB (FILE IS OVERWRITTEN) > FILE ALREADY EXISTS. OVERWRITE IT?(Y OR N)  VERIFY SUCCESS VERIFY IS PROGRESSING , END OF MEDIA, MOUNT NEXT VOLUME?(Y OR N)  END OF MEDIA  FILES DO NOT MATCH SYNTAX ERROR INVALID COMMAND  DIRECTORY NOT FOUND  INVALID UNIT NAME  INVALID OPTION INVALID DECIMAL NUMBER UNIT NOT FOUND INVALID FILE NAME & FILE ALREADY EXISTS FILE NOT FOUND ON " NEITHER UNIT OR VOLUME SPECIFIED CLOSING  VOLUME NOT GIVEN( CORRECT VOLUME NAME IS   PARAMETERS IGNORED & FILE IS SYSTEM FILE BAD AU  UNITS NOT SAME TYPE INVALID DATE  INVALID TIME  SYSTEM LOGICAL UNIT  NOT LABELED  UNITS DO NOT MATCH  JCL STACK FULL 8 FILES DO NOT MATCH AT  RECORD WORD 2 FILE DOES NOT EXIST, CREATE IT?  FILE IS NOT DELETED* NOT ENOUGH MEMORY FOR MAG. TAPE BUFFERR  FILE IS BAD  #FILE FBLOCK B0123456789ABCDEF d)Z1Z1P!Z3!7OC!OC! OC CX> CRX> H!냺êJSQôƃA «+ §:   B 93 !B9&2< 5_7z7D2Q:):! : 2D2T2Nj` ^Y V TI) D M +ރq ϠلD Ճ 4yϢ1.  I  I KD  + L " !§K =iy8B=7  9!)  !'9w!$7 s8!*!F12= V1;V;v; E , # J:f9KõII%IQZìǻ¾ǸI%ǹIǶI; Y y×ǦI%Ǧ+IǠǚI%ǚI5_ 38B =VOL17D3!K;;!;!8_Z<s< <  b3^ P[ET P 1: # K"#  98D 9: 3-܃ (փ    )G4Xxvn' (emk``QÂ܃VAƃ)Iև ԢIӄEЂC˞zȟ D  01 ¥,Ƕ;  D 4)47 8;B;;" H4144   7z799   64:;! ;#A UU SSנOdHLaJ; IτG:>S<;<߿߻4 )) ''#8 5; #  D (w# =# ># =# 97=:t %R@AǸ IC ߯y# ]ߨžwV# Q=# N=vc ć : : 'yH RI CI rI cI# #  ˢF #   # =W# VOL1 898hM =9=! 9 7_7a8'ǻBFჵL±Kǯǫ+ +ã QCўfC a # E=W@< # 8â6# #  8:8 BK D D߾ўz DhIqaBB] # f D  # ߟ# D 5# Dmʞz ;Ǟq77 # #  8 898h96 tD # # Y N y n nu# # Y y # P :  # P: # 889;F!;E!7D;-;, 8 : :  y# ́G#  !者xrāo #ԃI: Nע ʃՇʃ_ I ?:#@'="abcdefghi jklmnopqr~stuvwxyz{ABCDEFGHI}JKLMNOPQR\STUVWXYZ0123456789* 19YY/MM/DD HH:MM:SS ANSI STD. LEVEL = 3 B NO NAME .EXT TY* BLK RCD AC CREATION EXPIRED BLOCK B -PE SIZE SIZE  DATE DATE COUNT  BLOCK  TAPE MARK0 END OF TAPE, CONTINUE TO NEXT VOLUME(Y OR N)? DEVICE READY('Y' MEANS READY)? > *TYPE D=VARIABLE LENGTH, F=FIXED LENGTH, S=SPANNED RECORD& AC(ACCESSIBILITY CODE) D=DELETED* KILL DELETES ALL FILES PAST THIS POINT 6 ARE YOU SURE YOU WANT TO DO THIS (TYPE 'K'TO KILL)?. +MEANS THIS IS A PART OF MULTI-VOLUME FILE  OLD VOLUME NAME IS -- & OVERWRITE OLD VOLUME NAME (Y OR N)? & OLD OWNER I.D. IS --  $ OVERWRITE OLD OWNER I.D. (Y OR N)?, IS THIS INITIALIZATION OR RENAME (I OR R)? UNIT IS NOT LABELED  LABEL IS PROGRESSING SYNTAX ERROR INVALID COMMAND  DIRECTORY NOT FOUND  INVALID UNIT NAME  INVALID MODE INVALID DECIMAL NUMBER UNIT NOT FOUND INVALID FILE NAME & FILE ALREADY EXISTS FILE NOT FOUND  ON " NEITHER UNIT OR VOLUME SPECIFIED CLOSING  VOLUME NOT GIVEN( CORRECT VOLUME NAME IS   PARAMETERS IGNORED & FILE IS SYSTEM FILE BAD AU  UNITS NOT SAME TYPE INVALID DATE  INVALID TD IME  SYSTEM LOGICAL UNIT  NOT LABELED  UNITS DO NOT MATCH  JCL STACK FULL & COPY VERIFY ERROR AT BLOCK  2 FILE DOES NOT EXIST, CREATE IT?  FILE IS NOT DELETED* NOT ENOUGH MEMORY FOR MAG. TAPE BUFFERR ( INVALID VOLUME. NEED BLANK LABELED TAPE END OF MEDIA  TAPE MARK FOUND ON DEVICE FILE IS BAD  FILES DO NOT MATCH OCCURANCE OPTION IGNORED HARDWARE ERROR WRITE PROTECT >+ZB>3P>M* from tvxCI XQ# zZ$ 0::>+˂ц7 P4 1:>++XQb L_ @ X¼@*+ QP6qJ©@)5HQB|@ 1:>+Z$ÙXQÖ֙ǔ/D ,Z%)?k?k?Y>T?k (>5???ۃ :>+gև :>+^ &:>+YŇʃćɃ  P ":>+ 1:>+ 邵%'=:>M A:>M ` 맀A:>M 0:>a ǂ Z$#  >3>4>.>M>0>/>;><>:CI>Q |>c>PUF>d >\>[>S>Rg⧂@+k zZ$C @ RRS OR M:>+ c # pZ$9?>T?| >k>5?>?`$ BATCH FILE NOT FOUND* BATCH QUEUE EMPTY - PROCESSING SUSPENDED " BATCH QUEUE PROCESSING COMPLETED  OS4 INTERACTIVE MODE RESUMED  LUN EF NOT FOUND  I/O ERROR ON LUN ZBmF1EBE5E3--E3E1F1m&***** PATCHED 81101911485325 ***** >M 0:>a ǂ Z$#  >OVicEdDanoԾ ~֞8O]&Ea3x_|l*| }~gҡ# A `Q T ( :ӂ< - :ӂ" )   pP0 @0B բ` h  } c= ¢‚pP0/o X)C $ `)C ")PC ")C " `m D E B U G 4 E 8 0 0 ӟe } O  -% ӂzӾ P AC Q@ X= Y:ԽѾ K3 L0 S- D* C'ԟK =ӟ{ } ӟ| @)C ")PC ")C " `r" *ٽ҆ Y Q A Gҽ؆ R Ƥ D V Wƚ›LBLCLFLLLSLJLILGLRLZߝ Ǟ< !}҆{҆u łt P Lłj T P BŁ P ӂY T H TŅ Ğ|QEF , , `솂՟ _ٞ0 6} ` J B YK QJf䞁ւ cޡ @ޟޝ `@E ;߽RA@EN@Aޏǎ Qފ ,^:FB& o*| x` D `랞oY*Qd Ѐ_Ѐ āZ@AĄ܃T B `ǁ D임*L_U3 `Ģ1*/) 'r "Bƽу۽ֽˁC凑ā  / XŃ ѽ۞i Ğ]с䆫@ڃ۽ցBǢ ,ž[ + - * X /KJƎ^[{ xނZ  ,ş| ֽL ΁ P ޽с۽۽޺{ ӽўq kɆȂGާ}ަyޠ}y E ~  .Ӄ E ~  .ޣރfN ,Žֆs@FC kqLL (w{u ^|JQBZy L S TўNM  Isľˆ_]]| IƎ> ,ŽƇ ,ƂpIưk , ,Htr HE m -ņց -ņ('\\ÂF -tтڃԞx ’@"Fz@ Ό F ō l#䆠.bƝޙޖJQ!’ފދJQĽ %ӂԞu U B * ӂGo h fe "cIaM K Y&V&RR `QKL$kK N =ӂDD GӂA   :Ӟ ӟL ӟ{ y9u    :ӂw @0ƵQ¾ˢ̂C C 96C C " z a ࢜0 `a ´C /6 C C 6 C C 6C h Q¾{”C "C C I6 b: b•SA)TIO)T ğSISAZ2 M  En C @Q1c C @+ .+% D B E+'. +'. О+'. ɞ'c Ģ̠€)Ty Dp ĞV cbW)օ5kT D%kljkij .i'jLvXhQPڂ  EŽMh +YI sIRAKDTg"v„UrrnpULl fFe ͢bbhL(# V QPuIN b•SL=Iu @<>XPQL# 4Z3SOW`"  # @P`pjP`jA`#I5eD¹gAµc]I_)TI[)GIWISp H)( buihQA ukT C DEEj# EDIT (F300) \Z1Z2OCCILO  /KAh +te MA )5hZ 8 \`"JF K K1IELD CE D CMNyJFQ)K%}'+JJU JJJ`"Q DJ@#R%'+DICID)KJID`## C @`PɄV8-3A#  Y i [ w T T k>)`pDc #  p)s)? )l)T S 00` Ğ LM  "0MV)A)F^g  D.. D..( > > > <FXR> C @)LL1K`PNyQI b+ `pDc # ^ O(C @ 5c QDHPOU@`Kg1(H G@ 0Fg1 F4`pDc # 'd C D)QHF444 „V/c # )1< z z a _#  OVicEdDano2AORG RORG ADATA RDATA RES END 'AEND  REND "SITfCIb CNʃ=ǧŇƃƇ:*t 0:L ':L :L !:L  :L  #:L ':L :PIJ*, -L.O9fgTVUWH  g:Z)]nT) k # J ! u E)ߛ<Cy@yX%'# d]YphQGYX o#   :NI @%'KM(w 1:L 1:Lm&***** PATCHED YYMMDDHHMMSSQQ ***** 2%'߇# OEIJP< @yXl@j# fǰ,+,-,*,/ # XˢTC@N GHӒ SA Gnj[ # EÈQA Æ# K:?= 6:L/#  ~@I%C B'`(%C @'` Kof akA [Z ~+: vuOCli  ":L ;@X?VTWUO'0 PATCH (E600)  INVALID HEX VALUE INVALID FILE NAME FILE NOT FOUND  INVALID COMMANDmE7E4E5E3--E2E0f%'߇# OEIJP< @yXl@j# fǰ,+,-,*,/ # XˢTC@N GHӒ SA Gnj[ # EÈQA Æ# K TITL CFG490B - CONFIGURATION FOR DS-490-B (93027-06-F100) *** THIS IS THE CONFIGURATION FILE FOR OS4 AS CONFIGURED FOR THE *** DS-490-B SOFTWARE DEVELOPMENT SYSTEM. IT DIFFERS *** FROM THE STANDARD CONFIGURATION FILE AS FOLLOWS: *** 1. THE PAPER TAPE READER, PAPER TAPE PUNCH AND CARD READER *** ARE NOT INCLUDED ('SI' IS ASSIGNED TO D:TV00). ***  2. THE LINE PRINTER IS CONFIGURED FOR AUTOMATIC LINE FEED *** AND 133 BY 57 PAGE SIZE. *** 3. THE MEDIUM CAPACITY DISKS DM00 AND DM01 ARE CONFIGURED *** TO BE 10-MEGABYTE DISKS. *** 4. 'SF' IS ASSIGNED TO D:DM00, AND 'UF' AND 'XX' ARE *** ASSIGNED TO D:DM01. *** 5. THE MEDIUM CAPACITY DISKS DM02 AND DM03 ARE NOT INCLUDED. *** 6. THE HIGH CAPACITY DISKS ARE NOT INCLUDED. *** 7. NO EMULATOR MODULES ARE LOADED. SPACE 3 ***  REVISION HISTORY : *** *** E400 GTD 07-25-80 ORIGINAL FILE CREATED FROM OS4CONFIG.ASM *** *** E700 - THIS SYSTEM IS NOW SET FOR 81 CHARACTERS. *** THIS INCLUDES THE CARRIAGE-CONTROL *** CHARACTER. CWK (18FEB81). *** *** F000 - SET UP NAM FOR DEFAULT LOAD ADDRESS *** (LOAD:B) CWK (01MAY81). *** *** F100 - SET UP UNIT ASSIGNMENT TABLE FOR FLOPPIES INSTEAD OF *** MEDIUM CAPACITY DISKS. CWK 22/SEP/81. *** TITL ... BUFFER POOL & FREEPOOL DEFINITION SYSTEM NAM UAT:OS NAM UATP: NAM PRI:MAX NAM FPOOL:,FPSIZE: NAM JCL:E NAM LOAD:B LOAD CONSINT:,I:OVL * * EMULATOR LOAD DIRECTIVES * * LOAD R:EMLTR REQUIRED FOR ANY EMULATOR USAGE *  LOAD EM:410X MAKES A 410 LOOK LIKE A 430 * LOAD EM:410 MAKES A 410 LOOK LIKE AN OPTIONED 490 * LOAD EM:430X MAKES A 430 LOOK LIKE A 490 * LOAD EM:430 MAKES A 430 LOOK LIKE AN OPTIONED 490 * LOAD EM:FLPT ADDS FLOATING POINT INSTRUCTIONS ONLY * * GENERATE BUFFER POOL * BUF:R 3 *** ***  DEFAULT LOAD ADDRESS *** LOAD:B EQU :200 * DEFINE MAXIMUM NUMBER OF /PRINT COMMANDS * TO BE QUEUED UP WITHOUT WAITING * PRI:MAX EQU 4 * * DEFINE FREEPOOL SIZE * OS4 RECOMMENDED SIZE = 20 BLOCKS * MULTED RI ECOMMENDED SIZE = 60 BLOCKS * BLOCKS EQU 20 FPSIZE: EQU PRI:MAX*2+BLOCKS*12 FREEPOOL SIZE TITL ... DIBS & CIBS GENERATION DIB:ST TV00 * DIB:ST PP00 * DIB:ST PR00 * DIB:ST CR00 DIB:DF DF00 DIB:DF DF01 CIB:DF DF00,:11 * DIB:LP LP00,81,39,LF: DIB:LP LP00,133,57 DIB:DM DM00,10 DIB:DM DM01,10 * DIB:DM DM02,10 * DIB:DM DM03,10 CIB:DM DM00,:14 * DIB:DH DH00,40 * DIB:DH DH01,80 * DIB:DH DH02,150 * DIB:DH DH03,300 * CIB:DH DH00,:15 TITL ... UNIT ASSIGNMENT TABLE UAT:AA UAT:OS UNIT ASSIGNMENT TABLE UAT:EE 'X1',0 USER SCRATCH UAT:EE 'X2',0 " UAT:EE 'X3',0 " UAT:EE 'X4',0 " UAT:EE 'SI',D:TV00 STANDARD INPUT UAT:EE 'LO',D:LP00 LISTING OUTPUT UAT:EE 'SF',D:DF00 SYSTEM FILE UAT:EE 'UF',D:DF01 USER FILE UAT:EE 'OC',D:TV00 OPERATOR CONSOLE UAT:EE 'CI',D:TV00 COMMAND INPUT UAT:EE 'SL',D:TV00 SYSTEM LOG UAT:EE 'SO',D:TV00 STANDARD OUTPUT UAT:EE 'SA',D:TV00 STANDARD ALTERNATE UAT:EE 'LD',0 LOAD PROGRAM UAT:EE 'OV',0 LOAD OVERLAY UAT:EE 'XX',D:DF01 SCRATCH FILE UAT:EE 'PO',D:LP00 PRINT OUTPUT UAT:EE 'Z1',0 SYSTEM SCRATCH UAT:EE 'Z2',0 " UAT:EE 'Z3',0 " UAT:EE 'Z4',0 " UAT:EE 'Z5',0 " UAT:EE 'Z6',0 " UAT:EE 'ZP',0 PRINT INPUT UAT:ZZ END OF UAT * * PERMANENT UAT * TABLE: REL SHARABLE TABLE: UATP: RES 4,0 RES UAT:NV*2,0 " * * *  JCL STACK SPACE * JCLMAX: EQU 5 JCLST: WORD JCLMAX: JCL:E WORD 0 RES JCLMAX:*4,0 * RESERVE FREEPOOL SPACE * FPOOL: RES FPSIZE:,0 END XX',D:DF01 SCRATCH FILE UAT:EE 'PO',D:LP00 PRINT OUTPUT UAT:EE 'Z1',0 SYSTEM SCRATCH UAT:EE 'Z2',0 " UAT:EE 'Z3',0 " UAT:EE 'Z4',0 " UAT:EE 'Z5',0 " UAT:EE 'Z6',0 " UAT:EE 'ZP',0 PRINT INPUT UAE3E1F1m&***** PATCHED 81101911483125 *****  0: ǂ Z$#  CI ;gUF g⧂@+k zZ$C @ RRS OR M:~ c # pZ$9 $`$ BATCH FILE NOT FOUND* BATCH QUEUE EMPTY - PROCESSING SUSPENDED " BATCH QUEUE PROCESSING COMPLETED  OS4 INTERACTIVE MODE RESUMED  LUN EF NOT FOUND  I/O ERROR ON LUN ZBmF1EBE5E3--0j.h( +$`%ꂜ\1 !M' y %'+os慾)sY ed|{ @8 o O m J K i gN )V% t%sLn`"E F. F„ D>) =`;nrgy w"G,{Kq1 A&}E*`(t@% ;c  765y342(.OS:: SYSA"iwvc Bc A@6<# Ic B# gIjHc rc ޚ# @0X)P VVЀЀSQPpI N@6=< G:P@ G=NPCHC C GTqn/I iޞU * Cןx @0DAJL )ЀЀ΍QAy"  i+ fC@ `j_NQRSTTIITSSJISRIN# B# A@6<@6Y # B|  vH@pɾv g.g+iXi Phb+s=胾c_Z SRמؾ ¡@AvLS)"$ C j<:j8h p y0Rw J kkos rp  15 !YW\ f %'+\s愾I)s SR|{ @$ o O m J K i g< V tsFn`"FED) E`Cnrgy w"N!{Rq1H|L2`0tG- Bc (>=B|{ñC F E:  Q: WhCEC @Û㕣f&!1ç1>/Njc  , H0mF1EBE5E3--E3E1CICI0#,n':*#  ABORT? OC - /OC - 3 OC F HAT W Uk>n:χ: 6: >IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIK IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII x B  ! q>B|{ñC F E:  Q: WhCEC @Û㕣f&!1ç1>/Njc  , H0mF1EBE5E3--E3E1CICI0#,n':*#  ABORT? OC - /OC - 3 OC F HAT W Uk>n:χ: 6: >: I"y X #(5)%8+#(6) BPO:06 SET #(7)%8+#(8) BPO:08 SET #(9)%8+#(10) BPO:09 SET #(11)%8+#(12) BPO:10 SET #(13)%8+#(14) BPO:11 SET #(15)%8+#(16) ENDM TITL BISYNC PICO CIB MACRO * * BISYNC PICO CIB MACRO * CIB:BP MACRO LPOOL O: SET $ TABLE: REL SHARABLE TABLE: SYSTEM C:#(1,1,3) NAM C:#(1,1,3) EXTR BP:FUN,BP:EOB CHAN CIB: CI:PER RES 2,0 HEAD BP:#(1,3,3) CI:DIB WORD :7600  CI:PRI WORD #(2) CI:DA WORD #(3) CI:IV WORD 0 CI:UNI  WORD 0 CI:RD WORD 0 CI:WRT WORD 0 CI:POS WORD BP:FUN  CI:FUN JST R:SA12 INTERRUPT SEQUENCE COPY =$-CI:EOB-1,X JMP *$+1 WORD  BP:EOB DOUBLE 0 CI:T1, CI:T2 WORD 0 CI:APR WORD 0 CI:TIB  WORD 1 CI:USM RES 3,0 RESERVED ORG O: ENDM SAVE END NI  WORD 0 CI:RD WORD 0 CI:WRT WORD 0 CI:POS WORD BP:FUN  CI:FUN JST R:SA12 INTERRUPT SEQUENCE COPY =$-CI:EOB-1,X JMP *$+1 WORD  BP:EOB DOUBLE 0 CI:T1, CI:T2 WORD 0 CI:APR WORD 0 CI:TIB IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIƓ$Q߇ƽ? lmEEEBE5E3--E2E1?ÌˌJR>JKSB|ҝ s={ ӆvtrLDLELILRLWƖd ,ka ņyĆxÆw pQAlýkL=\L>L:|öbL<L=L^]\Q HǞ wqqno = < > :ba  ~dy C 1 =Ԃ C 2 =Ԃ C 3 =Ԃ M =ԃTܽҞH&ƽ׆ =FFEFCCE=:7&Ɠ5-Ɠ,&L B C @_ )n1;c # {C @RS 6@t%) @@hV€@h 664C @`pKnc 44VB^K\C @`pK_A6Ac 64lM'`pEn6ހR %@ VJ`HV€BA`HK`HV€`H 䞂'tGRNVKS`pFc # C @Ijy p 6C1A ,jj1 B $ C = E #  yGTy]jQ) j)DHP1BHPN1Ȅjy ,)jy`pBCDc # C @6 k")%QC@ 4' pq@Q܆c # C @I% @'D)1Tc # } Pr B 2F[dt3 *** DEVICE ERROR *** *** EDIT BUFFER FULL *** *** END OF FILE *** *** LINE # ERROR *** *** SYNTAX ERROR *** *** BUFFER CAPACITY ERROR *** *** BANK BUFFER EMPTY *** *** INVALID IN EDIT MODE *** *** INVALID IN CREATE MODE *** 123456789.123456789.123456789.123456789.123456789.123456789.123456789.12 BYTES AVAILABLE INPUT BUFFER LIMIT REACHED REQUESTED LINE # REACHED  END OF FILE REACHED EDIT BUFFER EMPTY END OF DATA CURRENT GLOBAL OPTIONS = THESE ARE NOT VALID DELIMITERS:  THESE ARE VALID ALPHANUMERIC DELIMITERS: LINE TRUNCATED TO 132 CHARACTERS LINE OVERFLOW ***ABORTED*** CHANGES MADE - DO YOU WANT TO ABORT? IF YES TYPE K NO CHANGE - DO YOU WANT TO TERMINATE? IF YES TYPE T ABNORMAL EXIT C @OC @YPI&I`pDc # C @ @_) 1@@-*# apo)@`pBDc # C A C @ [\ C @1L_:]8 1D].y 1V VC @`pEn6c c 1E[,*[\[*VE\+. A b`pC)`pDc # KC @D@z`pDc # C @P@*`pDFc # C @ D@ *@ { pĄc #  B'C @n )6]GP@*In 6AI)1РHG1D)1ʞ @ =`1ў))`pDc # 7+{C @C ArJFNrN@ AJJVDrPP1R4N VFNPÀJ"P1D*5c # C @`pLRZA@h@h5c # C @P@#Q€h kc # C @g)G%'`pE+F@@6 @}K1ɠn 6Ơn 6 IJg1R;F GG)`pDc # FG%+ |'*`pFF # C @pk@"@*{c # C @O@D9@Yc # C @ C[\%QD@|+I+'`pEC[C @I[\%qC*|2Bc # )c #  B{cEC @SRA*.% A+ @'`pER w Z)3A`pB EZ3A`pEn@?6T@6RärRSuC @uQ`p Bc Z3ޞ@LnRZ %'+. 6+ H@A`pEu@rS wc # `pE wc # q,RZ%@hD@hC'c # uQC @Z% C+'`pDc # C @`pLun@6A@Ln@6`pCc # # C @*%'6`pBC%'@6B~6A `pBDE*%'c # % `H `HE ,4'# ')(# C @rN@HJ F @*&  Hr#yJ CN(+jj@*y@ N FJ FtJqyj p܆c # c )# {mF1EBE5E3--E3E1 @'`pER w Z)3A`pB EZ3A`pEn@?6T@6RärRSuC @uQ`p Bc Z3ޞ@LnRZ %'+. 6+ H@A`pEu@rS wc # `pE wc # q,RZ%@hD@hC'c # uQC @Z% C+'`pDc # C @`pLun@6A@Ln@6`pCc # # C @*%'6`pBC%'@6B~6A `pBDE*%'c # % IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII