File: M4.PA of Disk: Disks/MyPDP/m8-blue-rka1-rkb1
(Source file text)
/M4.PA 9-JUN-80 /**UASEM VERSION** XLIST -LDATA-1&XLISTX /**************************************************** /********* D A T A S T R U C T U R E S ******** /**************************************************** DOTF10=. FIELD 0 *DOTF00 /THE DISK QUEUE, MUST START AT PAGE BOUND: SYSQ, ZBLOCK SYSMAX^2 IFNZRO SYSQ&177 <SYQERR,XERROR> IFDEF TAPE < /TABLE WHICH HOLDS CURRENT TAPE POSITION TAPETB, ZBLOCK TAPE /FOR EACH UNIT NUMBER > IFDEF COMLNG < COMMON, ZBLOCK COMLNG /BLOCK OF LOCATIONS, /DIFFERENT FOR ANY INSTALLATION > HRDLST, ZBLOCK 1^2 /EVENT 0 FOR BREAK CHARACTER DETECTION ZBLOCK INTDEV-1^2 /CONNECTABLE SKIPCHAIN ENTRIES ZBLOCK SKPDEV-INTDEV^2 /NON-CONNECTABLE SKIPCHAIN ENTRIES ZBLOCK MAXDEV-SKPDEV^2 /ENTRIES EG. FOR TERMINAL MUX. ZBLOCK SOFSLOT^2 /ALLOCATABLE SOFTWARE EVENTS IFNZRO BGMAX < ZBLOCK 1^2 /ONE SLOT FOR THE BG SCHEDULER ZBLOCK BGMAX^2 /ONE SLOT FOR EACH BG BSSLOT=MAXSLOT / > CLRTAB, ZBLOCK INTDEV-1 /HOLDS CLEAR-IOT'S /THE COREMAP CONTAINS ONE WORD FOR EVERY MEMORY PAGE IN THE /FOREGROUND. THE FOLLOWING ENCODING APPLIES: /0 FREE PAGE /-3 OCCUPIED BY RESIDENT CODE OR OTHERWISE UNUSABLE /-2 ALLOCATED BUFFER PAGE, BUT NOT LAST PAGE OF BUFFER /-1 LAST PAGE OF ALLOCATED BUFFER /NEG. TCBP OF EXTERNAL TASK LOADED HERE /POS. -TCBP OF EXTERNAL TASK THAT HAS 'RELEASED' ITS MEMORY /THE PROPER CONTENTS OF THIS MAP IS ONLY KNOWN DURING PASS 2. /SO DURING PASS 1 WE JUST RESERVE THE REQUIRED AMOUNT OF MEMORY IFNZRO PASS1 < CORMAP, *FIELDS^40+. / > IFZERO PASS1 < /FIRST MAKE SURE THAT ALL ENFXX'S ARE AT A PAGE BOUND: ENDF00=ENDF00+177&7600 ENDF10=ENDF10+177&7600 ENDF20=ENDF20+177&7600 ENDF30=ENDF30+177&7600 ENDF40=ENDF40+177&7600 ENDF50=ENDF50+177&7600 ENDF60=ENDF60+177&7600 ENDF70=ENDF70+177&7600 /THE MONITOR AREA IN FIELD 0: IFNZRO ENDF00&200 <-3> IFNZRO ENDF00&400 <-3;-3> IFNZRO ENDF00&1000 <-3;-3;-3;-3> IFNZRO ENDF00&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF00&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> /THE EMPTY AREA IN FIELD 0: ZBLOCK CORMAP+37-. /DON'T TOUCH THE LAST PAGE (OS8): -3 /NOW FOR FIELD 1: IFZERO FIELDS-2&4000 < IFNZRO ENDF10&200 <-3> IFNZRO ENDF10&400 <-3;-3> IFNZRO ENDF10&1000 <-3;-3;-3;-3> IFNZRO ENDF10&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF10&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> /FREE AREA IN FIELD 1: ZBLOCK CORMAP+77-. -3 /LAST PAGE IS FOR OS/8 /NOW FOR FIELD 2: IFZERO FIELDS-3&4000 < IFNZRO ENDF20&200 <-3> IFNZRO ENDF20&400 <-3;-3> IFNZRO ENDF20&1000 <-3;-3;-3;-3> IFNZRO ENDF20&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF20&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+140-. IFDEF SYRL01 <*.-1;-3 /RETAIN SYSTEM HANDLER FOR RL01 > IFDEF SYRX02 <*.-1;-3 /RETAIN SYSTEM HANDLER FOR RX02 > /NOW FOR FIELD 3: IFZERO FIELDS-4&4000 < IFNZRO ENDF30&200 <-3> IFNZRO ENDF30&400 <-3;-3> IFNZRO ENDF30&1000 <-3;-3;-3;-3> IFNZRO ENDF30&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF30&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+200-. /NOW FOR FIELD 4: IFZERO FIELDS-5&4000 < IFNZRO ENDF40&200 <-3> IFNZRO ENDF40&400 <-3;-3> IFNZRO ENDF40&1000 <-3;-3;-3;-3> IFNZRO ENDF40&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF40&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+240-. /NOW FOR FIELD 5: IFZERO FIELDS-6&4000 < IFNZRO ENDF50&200 <-3> IFNZRO ENDF50&400 <-3;-3> IFNZRO ENDF50&1000 <-3;-3;-3;-3> IFNZRO ENDF50&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF50&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+300-. /NOW FOR FIELD 6: IFZERO FIELDS-7&4000 < IFNZRO ENDF60&200 <-3> IFNZRO ENDF60&400 <-3;-3> IFNZRO ENDF60&1000 <-3;-3;-3;-3> IFNZRO ENDF60&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF60&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+340-. /NOE FOR FIELD 7: IFZERO FIELDS-10&4000 < IFNZRO ENDF70&200 <-3> IFNZRO ENDF70&400 <-3;-3> IFNZRO ENDF70&1000 <-3;-3;-3;-3> IFNZRO ENDF70&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF70&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+400-. / >>>>>>> /END OF PASS2 CONDITION > /NOW COMES THE END OF THE MAP. FOR PROPPER OPERATION OF /THE ROUTINE HOLE, THE MAP SHOULD END IN -3;0: -3 MAPEND, 0 NAMLST, ZBLOCK MAXNAM+17 LASTNM, 0 /ONE LOC EXTRA FOR SEARCH LOOP IFZERO .&4000 <*4000 /TCBP'S MUST ALWAYS BE NEGATIVE > TCBTAB, /THE TABLE OF TASK CONTROL BLOCKS "T^100+"I&3777;1;DGNTIM;0 0;CDF+00%2;0;0 "S^100+"Y&3777;0;SY;0 0;CDF+00%2;0;0 IFDEF SYRX02 < "S^100+"Z&3777;0;SZ;0 0;CDF+00%2;0;0 / > IFDEF SYRL01 < /FAKE SY FOR RLC "S^100+"C&3777;0;SC;0 0;CDF+00%2;0;0 / > IFDEF DKUSED < "D^100+"K&3777;0;DK;0 10;CDF 00%2;0;0 / > IFNDEF KL8XX <TT1LST=0;KK1LST=0> "T^100+"1&3777;0;TT;TT1LST T1TCBP, 10;CDF 00%2;0;0 "K^100+"1&3777;0;KK;KK1LST K1TCBP, 10;CDF+00%2;0;0 IFDEF KL8E2 < "T^100+"2&3777;0;TT;TT2LST;10;CDF 00%2;0;0 "K^100+"2&3777;0;KK;KK2LST;10;CDF 00%2;0;0 / > IFDEF KL8E3 < "T^100+"3&3777;0;TT;TT3LST;10;CDF 00%2;0;0 "K^100+"3&3777;0;KK;KK3LST;10;CDF 00%2;0;0 / > IFDEF KL8E4 < "T^100+"4&3777;0;TT;TT4LST;10;CDF 00%2;0;0 "K^100+"4&3777;0;KK;KK4LST;10;CDF 00%2;0;0 / > IFDEF KL8E5 < "T^100+"5&3777;0;TT;TT5LST;10;CDF 00%2;0;0 "K^100+"5&3777;0;KK;KK5LST;10;CDF 00%2;0;0 / > IFDEF KL8E6 < "T^100+"6&3777;0;TT;TT6LST;10;CDF 00%2;0;0 "K^100+"6&3777;0;KK;KK6LST;10;CDF 00%2;0;0 / > IFDEF KL8E7 < "T^100+"7&3777;0;TT;TT7LST;10;CDF 00%2;0;0 "K^100+"7&3777;0;KK;KK7LST;10;CDF 00%2;0;0 / > IFDEF KL8A1 < "T-"K^100+KL8NAM+0;0;TT;TY0LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB0LST;10;CDF%2;0;0 "T-"K^100+KL8NAM+1;0;TT;TY1LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB1LST;10;CDF%2;0;0 "T-"K^100+KL8NAM+2;0;TT;TY2LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB2LST;10;CDF%2;0;0 "T-"K^100+KL8NAM+3;0;TT;TY3LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB3LST;10;CDF%2;0;0 /END IFDEF KL8A1 > IFNZRO BGMAX < KHIBG1, "I^100+"1&3777;1;KHIST ;BG1;10;CDF 00%2;0;0 KHOBG1, "O^100+"1&3777;0;KHO ;BG1;10;CDF 00%2;0;0 EMBG1, "E^100+"1&3777;1;EMSTRT ;BG1;10;CDF 00%2;0;0 IFZERO BGMAX-2&4000 < KHIBG2, "I^100+"2&3777;1;KHIST ;BG2;10;CDF 00%2;0;0 KHOBG2, "O^100+"2&3777;0;KHO ;BG2;10;CDF 00%2;0;0 EMBG2, "E^100+"2&3777;1;EMSTRT ;BG2;10;CDF 00%2;0;0 IFZERO BGMAX-3&4000 < KHIBG3, "I^100+"3&3777;1;KHIST ;BG3;10;CDF 00%2;0;0 KHOBG3, "O^100+"3&3777;0;KHO ;BG3;10;CDF 00%2;0;0 EMBG3, "E^100+"3&3777;1;EMSTRT ;BG3;10;CDF 00%2;0;0 IFZERO BGMAX-4&4000 < KHIBG4, "I^100+"4&3777;1;KHIST ;BG4;10;CDF 00%2;0;0 KHOBG4, "O^100+"4&3777;0;KHO ;BG4;10;CDF 00%2;0;0 EMBG4, "E^100+"4&3777;1;EMSTRT ;BG4;10;CDF 00%2;0;0 IFZERO BGMAX-5&4000 < KHIBG5, "I^100+"5&3777;1;KHIST ;BG5;10;CDF 00%2;0;0 KHOBG5, "O^100+"5&3777;0;KHO ;BG5;10;CDF 00%2;0;0 EMBG5, "E^100+"5&3777;1;EMSTRT ;BG5;10;CDF 00%2;0;0 IFZERO BGMAX-6&4000 < KHIBG6, "I^100+"6&3777;1;KHIST ;BG6;10;CDF 00%2;0;0 KHOBG6, "O^100+"6&3777;0;KHO ;BG6;10;CDF 00%2;0;0 EMBG6, "E^100+"6&3777;1;EMSTRT ;BG6;10;CDF 00%2;0;0 IFZERO BGMAX-7&4000 < KHIBG7, "I^100+"7&3777;1;KHIST ;BG7;10;CDF 00%2;0;0 KHOBG7, "O^100+"7&3777;0;KHO ;BG7;10;CDF 00%2;0;0 EMBG7, "E^100+"7&3777;1;EMSTRT ;BG7;10;CDF 00%2;0;0 >>>>>>> LOADPT, 0 /ZERO IS TERMINATOR IFNZRO MAXNAM^10+TCBTAB-.&4000 <TCBOVF,XERROR> /TO MANY TASKS ! ZBLOCK MAXNAM^10+TCBTAB-. /THE REST OF TCBTAB IS /FOR DISK-RESIDENT TASKS ZBLOCK .+200&7600-.&7770 /USE THE REST OF THIS PAGE TOO ! *. IFNZRO PASS1 <ENDF00=.-1> IFZERO ENDF00+200&4000 <F00ERR,XERROR /CORE OVERFLOW > /********************************************************** /********** D A T A A R E A F I E L D 1 ********** /********************************************************** FIELD 1 *DOTF10 IFNZRO BGMAX < /THE TERMINAL BUFFERS AND THE TERMINAL BUFFER POOL O=-BSIZE *.+BSIZE-1&O /BUFFERS START AT 'NICE' ADDRESS IFZERO BGMAX-1&4000 < BG1IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG1OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-2&4000 < BG2IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG2OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-3&4000 < BG3IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG3OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-4&4000 < BG4IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG4OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-5&4000 < BG5IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG5OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-6&4000 < BG6IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG6OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-7&4000 < BG7IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG7OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > ZBLOCK BSIZE /LAST BLOCK IN THE POOL IFNZRO POOLN-1&1 < .-BSIZE;ZBLOCK BSIZE-1 > IFNZRO POOLN-1&2 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > IFNZRO POOLN-1&4 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > IFNZRO POOLN-1&10 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > IFNZRO POOLN-1&20 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > IFNZRO POOLN-1&40 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > FQLAST, .-BSIZE;ZBLOCK BSIZE-1 /LAST BLOCK OF FREE QUEUE FRESLT, FBLKO /POINTER TO FREE SLOT IN SWPTAB BSTAB, 0 /STARTBLOCK OF SWPFIL.M8 IFZERO BGMAX-1&4000 < BGID=BG1-BGDATA+1 0000+BGID /BG1, FIELD 0 IFNDEF SINGL8 < ZBLOCK BGFLDS-1 /REAL MEMORY INITIALLY EMPTY > 1000+BGID /BG1, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG1, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG1, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG1, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG1, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG1, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG1, FIELD 7 >> IFZERO BGMAX-2&4000 < BGID=BG2-BGDATA+1 0000+BGID /BG2, FIELD 0 1000+BGID /BG2, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG2, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG2, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG2, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG2, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG2, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG2, FIELD 7 >> IFZERO BGMAX-3&4000 < BGID=BG3-BGDATA+1 0000+BGID /BG3, FIELD 0 1000+BGID /BG3, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG3, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG3, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG3, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG3, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG3, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG3, FIELD 7 >> IFZERO BGMAX-4&4000 < BGID=BG4-BGDATA+1 0000+BGID /BG4, FIELD 0 1000+BGID /BG4, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG4, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG4, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG4, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG4, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG4, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG4, FIELD 7 >> IFZERO BGMAX-5&4000 < BGID=BG5-BGDATA+1 0000+BGID /BG5, FIELD 0 1000+BGID /BG5, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG5, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG5, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG5, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG5, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG5, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG5, FIELD 7 >> IFZERO BGMAX-6&4000 < BGID=BG6-BGDATA+1 0000+BGID /BG6, FIELD 0 1000+BGID /BG6, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG6, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG6, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG6, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG6, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG6, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG6, FIELD 7 >> IFZERO BGMAX-7&4000 < BGID=BG7-BGDATA+1 0000+BGID /BG7, FIELD 0 1000+BGID /BG7, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG7, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG7, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG7, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG7, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG7, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG7, FIELD 7 >> FBLKO, 0 /ONE EMPTY SLOT IN SWPFIL SWPTAB=BSTAB+1+BGFLDS /THESE 3 LISTS MUST BE TOGETHER!!! > IFDEF KL8XX < /LIST FOR THE REENTRANT TTY DRIVERS IFNDEF KL8A1 <O=2> IFDEF KL8A1 <O=3> TT1LST, 0 /TTCHAR TTY1 /TTEVNT 0 /TTRET TLS /TTTLS ZBLOCK O /TTSAV,(TTLINE),TTCOUNT -T1CHAR /TTFCHR -T1FILL /TTFILL 0 /TTTMP T1BACK-210 /TTBACK MUST BE IN THIS ORDER!! KK1LST, KB1 -T1ESCP IFDEF KL8E2 < TT2LST, 0 TTY2 0 6016+KL8E2 ZBLOCK O -T2CHAR -T2FILL 0 T2BACK-210 KK2LST, KB2 -T2ESCP / > IFDEF KL8E3< TT3LST, 0 TTY3 0 6016+KL8E3 ZBLOCK O -T3CHAR -T3FILL 0 T3BACK-210 KK3LST, KB3 -T3ESCP / > IFDEF KL8E4 < TT4LST, 0 TTY4 0 6016+KL8E4 ZBLOCK O -T4CHAR -T4FILL 0 T4BACK-210 KK4LST, KB4 -T4ESCP / > IFDEF KL8E5 < TT5LST, 0 TTY5 0 6016+KL8E5 ZBLOCK O -T5CHAR -T5FILL 0 T5BACK-210 KK5LST, KB5 -T5ESCP / > IFDEF KL8E6< TT6LST, 0 TTY6 0 6016+KL8E6 ZBLOCK O -T6CHAR -T6FILL 0 T6BACK-210 KK6LST, KB6 -T6ESCP / > IFDEF KL8E7 < TT7LST, 0 TTY7 0 6016+KL8E7 ZBLOCK O -T7CHAR -T7FILL 0 T7BACK-210 KK7LST, KB7 -T7ESCP / > IFDEF KL8A1 < TY0LST, 0 MUX1TT 0 KL8A1+6004 0 400^0 0 -C0CHAR -C0FILL 0 C0BACK-210 KB0LST, MUX1KB -C0ESCP TY1LST, 0 MUX1TT+1 0 KL8A1+6004 0 400^1 0 -C1CHAR -C1FILL 0 C1BACK-210 KB1LST, MUX1KB+1 -C1ESCP TY2LST, 0 MUX1TT+2 0 KL8A1+6004 0 400^2 0 -C2CHAR -C2FILL 0 C2BACK-210 KB2LST, MUX1KB+2 -C2ESCP TY3LST, 0 MUX1TT+3 0 KL8A1+6004 0 400^3 0 -C3CHAR -C3FILL 0 C3BACK-210 KB3LST, MUX1KB+3 -C3ESCP /END IFDEF KL8A1 > /END IFDEF KL8XX > IFNZRO BGMAX < /DISPATCH TABLE FOR FAKEHANDLER: HNDTAB, -EMCHNL+EMDOT /0 EMULATOR FOR CHANNEL 0-3 SYSCHN=.-HNDTAB^10 "D^100+"S&3777 /1 FOR SYSTEM-DISK PUBLIC DEVICES IFDEF DSK < DSKCHN=.-HNDTAB^10 "D^100+"N&3777 /T FOR NON-SYSTEM DISK PUBLIC DEVICES > IFDEF TAPE < DTACHN=.-HNDTAB^10 "T^100+"E&3777 /U FOR DTA0:-DTA7: (TUA0:-TUA7:) > IFDEF LPT < LPTCHN=.-HNDTAB^10 "L^100+"E&3777 /V FOR LPT: > IFDEF RXA < RXACHN=.-HNDTAB^10 "F^100+"E&3777 /W FOR RXA0:-RXA7: > IFDEF SYRL01 <RL01DS=1 > IFDEF NSRL01 <RL01DS=1> IFDEF RL01DS < RLCCHN=.-HNDTAB^10 "D^100+"C&3777 /X FOR RLC DEVICES > IFDEF CRD < CRDCHN=.-HNDTAB^10 "K^100+"E&3777 /Y FOR CDR: > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFNZRO HNDTAB+10-.&4000 <CHNOVR,__ / > /TABLE OF EXECUTABLE IOT'S /0=NOT EXECUTABLE /.GT.0="N^100+"A&3777 TASK'S NAME /.LT.0= RELATIVE DISTANCE TO SERVICE CODE EMTAB, -EM00+EMDOT /600X ZBLOCK EMTAB+3-. -EM03+EMDOT /603X -EM03+EMDOT /604X ZBLOCK EMTAB+20-. -EM20+EMDOT /620X -EM20+EMDOT /621X -EM20+EMDOT /622X -EM20+EMDOT /623X -EM20+EMDOT /624X -EM20+EMDOT /625X -EM20+EMDOT /626X -EM20+EMDOT /627X IFDEF FPP < ZBLOCK EMTAB+55-. -EM55+EMDOT /655X -EM55+EMDOT /656X > ZBLOCK EMTAB+77-. -EMGIGA+EMDOT /GIANT IOT =6770 / /TABLE FOR GROUP 6200-6277 IOT'S WHICH NEED SPECIAL DECODING / EM20TB, -EMXNOP+EMDOT /6200 LXM OF KT8A -EMCDIF+EMDOT /6201 CDF 0 -EMCDIF+EMDOT /6202 CIF 0 -EMCDIF+EMDOT /6203 CDI 0 -EMERROR+EMDOT /6204 CINT: ???? -EMXNOP+EMDOT /6205 CDF 100 OR DM8E: RTM -EMERROR+EMDOT /6206 CIF 100 -EMERROR+EMDOT /6207 CDI 100 -EMERROR+EMDOT /6210 GTS OF KT8A -EMCDIF+EMDOT /6211 CDF 10 -EMCDIF+EMDOT /6212 CIF 10 -EMCDIF+EMDOT /6213 CDI 10 -EMERROR+EMDOT /6214 RDF (SHOULD UNTRAP) -EMXNOP+EMDOT /6215 CDF 110 OR DM8E: SKME -EMERROR+EMDOT /6216 CIF 110 -EMERROR+EMDOT /6217 CDI 110 -EMERROR+EMDOT /6220 RTS OF KT8A IFZERO BGCORE-3&4000 < -EMCDIF+EMDOT /6221 CDF 20 -EMCDIF+EMDOT /6222 CIF 20 -EMCDIF+EMDOT /6223 CDI 20 > IFNZRO BGCORE-3&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > -EMERROR+EMDOT /6224 RIF (SHOULD UNTRAP) -EMXNOP+EMDOT /6225 CDF 120 OR DM8E: SKMM -EMERROR+EMDOT /6226 CIF 120 -EMERROR+EMDOT /6227 CDI 120 -EMXNOP+EMDOT /6230 RXM OF KT8A (NOP FOR ODT) IFZERO BGCORE-4&4000 < -EMCDIF+EMDOT /6231 CDF 30 -EMCDIF+EMDOT /6232 CIF 30 -EMCDIF+EMDOT /6233 CDI 30 > IFNZRO BGCORE-4&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > -EMERROR+EMDOT /6234 RIB -EMXNOP+EMDOT /6235 CDF 130 OR DM8E: LTM -EMERROR+EMDOT /6236 CIF 130 -EMERROR+EMDOT /6237 CDI 130 -EMERROR+EMDOT /6240 LRR OF KT8A IFZERO BGCORE-5&4000 < -EMCDIF+EMDOT /6241 CDF 40 -EMCDIF+EMDOT /6242 CIF 40 -EMCDIF+EMDOT /6243 CDI 40 > IFNZRO BGCORE-5&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > -EMERROR+EMDOT /6244 RMF -EMXNOP+EMDOT /6245 CDF 140 OR DM8E: LRM -EMERROR+EMDOT /6246 CIF 140 -EMERROR+EMDOT /6247 CDI 140 -EMERROR+EMDOT /6250 RRR OF KT8A IFZERO BGCORE-6&4000 < -EMCDIF+EMDOT /6251 CDF 50 -EMCDIF+EMDOT /6252 CIF 50 -EMCDIF+EMDOT /6253 CDI 50 > IFNZRO BGCORE-6&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > -EMXSKP+EMDOT /6254 SINT: SKIP-0N-MULTI8 -EMXNOP+EMDOT /6255 CDF 150 -EMERROR+EMDOT /6256 CIF 150 -EMERROR+EMDOT /6257 CDI 150 -EMERROR+EMDOT /6260 LUSR OF KT8A IFZERO BGCORE-7&4000 < -EMCDIF+EMDOT /6261 CDF 60 -EMCDIF+EMDOT /6262 CIF 60 -EMCDIF+EMDOT /6263 CDI 60 > IFNZRO BGCORE-7&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > -EMSPY+EMDOT /6264 CUF: LOOK-INTO-REAL-MEMORY -EMXNOP+EMDOT /6265 CDF 160 OR DM8E: SMME -EMERROR+EMDOT /6266 CIF 160 -EMERROR+EMDOT /6267 CDI 160 -EMERROR+EMDOT /6270 RUSR OF KT8A IFZERO BGCORE-10&4000 < -EMCDIF+EMDOT /6271 CDF 70 -EMCDIF+EMDOT /6272 CIF 70 -EMCDIF+EMDOT /6273 CDI 70 > IFNZRO BGCORE-10&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > -EMERROR+EMDOT /6274 SUF: ???? -EMXNOP+EMDOT /6275 CDF 170 OR DM8E: CMME -EMERROR+EMDOT /6276 CIF 170 -EMERROR+EMDOT /6277 CDI 170 /TABLE OF PROCESSOR (GROUP 00) IOT'S EM00TB, -EMHAND+EMDOT /'SKON': IS HANDLER CALL IN MULTI8 -EMERROR+EMDOT /'ION' : NOT ON VIRTUAL MACHINE -EMREDY+EMDOT /'IOF' : INTERRUPT IS VIRTUALLY OFF -EMREDY+EMDOT /'SRQ' : NO INTERRUPT REQUEST -EMERROR+EMDOT /'GTF' : NO GOOD -EMERROR+EMDOT /'RTF' : RESTORE WHAT? IFNDEF EAE < -EMREDY+EMDOT /'SGT' : NO EAE, NO SKIP > IFDEF EAE < -EMSGT+EMDOT /'SGT' : EAE, TEST IF SKIP > -EMCLCA+EMDOT /'CAF' : DO ALL WE CAN /DISPATCH TABLE FOR TERMINAL IOT'S EM03TB, -DO6030+EMDOT /6030 -DO6031+EMDOT /6031 -DO6032+EMDOT /6032 -EMERROR+EMDOT /6033 -DO6034+EMDOT /6034 -EMERROR+EMDOT /6035 -DO6036+EMDOT /6036 -EMERROR+EMDOT /6037 -EMREDY+EMDOT /6040 -EMXSKP+EMDOT /6041 -EMREDY+EMDOT /6042 -EMERROR+EMDOT /6043 -DO6044+EMDOT /6044 -EMERROR+EMDOT /6045 -DO6046+EMDOT /6046 -EMERROR+EMDOT /6047 XLIST -LFPP-1&XLISTX IFDEF FPP < /DISPATCH TABLE FOR FPP8A HARDWARE INSTRUCTIONS EM55TB, -EMERROR+EMDOT /FFST : START MAINTENANCE FIRMWARE -EMXSKP+EMDOT /FPINT : FPP IS ALWAYS READY -FPICL+EMDOT /FPICL : CLEAR STATUS AND AC -FPCOM+EMDOT /FPCOM : SET APTHI AND SELECT FP/DP -EMREDY+EMDOT /FPHLT : IMPOSSIBLE FOR EMULATOR (BUT ^C) -FPST+EMDOT /FPST : SET APTLOW, START EMULATOR AND SKIP -FPRST+EMDOT /FPRST : READ STATUS -FPIST+EMDOT /FPIST : SKIP, READ STATUS, CLEAR STATUS -EMERROR+EMDOT /6560 : NOT USED -EMERROR+EMDOT /FMODE : ENTER MAINTENANCE MODE -EMERROR+EMDOT /6562 : NOT USED -EMERROR+EMDOT /FMRB : READ DATA BUFFER -EMERROR+EMDOT /FMRP : READ MUPC -EMERROR+EMDOT /FMDO : EXECUTE ONE STEP -EMERROR+EMDOT /6566 : NOT USED -FPEP+EMDOT /FPEP : SELECT EP IF AC0=1 /FPP EMULATOR INSTRUCTION DISPATCH LISTS SPCLST, LDADX /SPECIAL INSTRUCTIONS JUMPS FFJXN FFTRP3 FFTRP4 FFNOP /LTR? FFNOP /LEA,IMUL? FFNOP /LEAI,IMULI? LAXLST, FFLDX /LDADX GROUP FFADDX FFNOP FFNOP FFNOP FFNOP FFNOP FFNOP JMPLST, FFJEQ /VARIOUS JUMP INSTR. FFJGE FFJLE FFJA FFJNE FFJLT FFJGT FFJAL FFSETX /MUST FOLLOW JMPLST FFSETB FFJSA FFJSR FFNOP FFNOP FFNOP FFNOP XRLST, FFALN /MAINLY XR INSTRUCTIONS FFATX /LIST ONLY 7 LONG! FFXTA FFNOP FFSTRE FFNOP FFNOP OPRLST, FFEXIT /AND THE OPERATES FFPAUS FFCLA FFNEG FFNORM FFSTRF FFSTRD FFJAC / END IFDEF FPP > XLIST -LDATA-1&XLISTX /TABLE OF "GIANT IOT'S", UAC IS INDEX AFTER 6770 GIGATB, -EMTIME+EMDOT /0 TIME-OF-DAY REQUEST -EMNUMB+EMDOT /1 GET MACHINE AND TERMINAL NUMBER -EMQUIT+EMDOT /2 DISABLE KEYBOARD ECHO -EMECHO+EMDOT /3 ENABLE KEYBOARD ECHO "T^100+"A&3777 /4 TALK -EMOPEN+EMDOT /5 OPEN/CLOSE PROCESSOR -EMSTLL+EMDOT /6 STALL THE BG FOR N SECONDS -ACCRST+EMDOT /7 RESET ACCOUNT REGISTERS -ACCRD+EMDOT /10 READ ACCOUNT REGISTERS -EMERROR+EMDOT /11 FREE SLOT -EMVER+EMDOT /12 6-BIT PACKED MULTI8 VERSION -BGREL+EMDOT /13 RELEASE DEVICES FOR INTERACTIVE JOB -EMERROR+EMDOT /14 RESERVED -EMERROR+EMDOT /15 RESERVED -EMERROR+EMDOT /16 RESERVED -EMERROR+EMDOT /17 RESERVED ZBLOCK GIGATB+GIGAMX-. /END OF GIGATB /DEFINITIONS FOR BG DATA AREA;ALL RELATIVE BGDATA, BG1, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS WORD UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG1IN+1 /READ POINTER BG1IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG1OUT+1 /READ POINTER BG1OUT+1 /WRITE POINTER UWRTR, KHOBG1+4 /TCBP OF OUTPUT WRITER UCUR, EMBG1+4 /TCBP OF EMULATOR IFDEF USESY1 < UCHNL0, USYS1 /DRIVER FOR USERS' SYS: > IFNDEF USESY1 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4511 /FILE STRUCTURED, DEVICE TYPE 51, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO IFNDEF SINGL8 < UFLD0, FIELDS^10 /FIRST FIELD OF BG1 IN CORE ZBLOCK BGCORE-1 /TABLE OF REAL FIELDS, 0=NOT-RESIDENT > IFDEF SINGL8 < UFLD0, 20;30;40;50 /ALL FIELDS IN CORE FOR BG1 > UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-1&4000 < UKB, K1TCBP+0 /TCBP OF INPUT TASK UTTY, T1TCBP+0 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-1&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+1 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFNZRO BGMAX-1 <BG2 /POINTER TO NEXT BG > IFZERO BGMAX-1 <BG1 /POINTER TO FIRST BG > UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS IFZERO BGMAX-2&4000 < /THE SECOND BG: BG2, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG2IN+1 /READ POINTER BG2IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG2OUT+1 /READ POINTER BG2OUT+1 /WRITE POINTER UWRTR, KHOBG2+4 /TCBP OF OUTPUT WRITER UCUR, EMBG2+4 /TCBP OF EMULATOR IFDEF USESY2 < UCHNL0, USYS2 /DRIVER FOR USERS' SYS: > IFNDEF USESY2 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4522 /FILE STRUCTURED, DEVICE TYPE 52, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO IFNDEF SINGL8 < UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS > IFDEF SINGL8 < UFLD0, 60;70;0;0 /FIELD 0 & 1 IN CORE FOR BG2 > UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-2&4000 < UKB, K1TCBP+20 /TCBP OF INPUT TASK UTTY, T1TCBP+20 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-2&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+2 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-2 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-2 <BG3> /POINTER TO NEXT BG UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > IFZERO BGMAX-3&4000 < /THE THIRD BG: BG3, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG3IN+1 /READ POINTER BG3IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG3OUT+1 /READ POINTER BG3OUT+1 /WRITE POINTER UWRTR, KHOBG3+4 /TCBP OF OUTPUT WRITER UCUR, EMBG3+4 /TCBP OF EMULATOR IFDEF USESY3 < UCHNL0, USYS3 /DRIVER FOR USERS' SYS: > IFNDEF USESY3 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4533 /FILE STRUCTURED, DEVICE TYPE 53, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-3&4000 < UKB, K1TCBP+40 /TCBP OF INPUT TASK UTTY, T1TCBP+40 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-3&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+3 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-3 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-3 <BG4> /POINTER TO NEXT BG UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > IFZERO BGMAX-4&4000 < /THE FOURTH BG: BG4, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG4IN+1 /READ POINTER BG4IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG4OUT+1 /READ POINTER BG4OUT+1 /WRITE POINTER UWRTR, KHOBG4+4 /TCBP OF OUTPUT WRITER UCUR, EMBG4+4 /TCBP OF EMULATOR IFDEF USESY4 < UCHNL0, USYS4 /DRIVER FOR USERS' SYS: > IFNDEF USESY4 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4544 /FILE STRUCTURED, DEVICE TYPE 54, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-4&4000 < UKB, K1TCBP+60 /TCBP OF INPUT TASK UTTY, T1TCBP+60 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-4&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+4 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-4 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-4 <BG5> /POINTER TO NEXT BG UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > IFZERO BGMAX-5&4000 < /THE FIFTH BG: BG5, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG5IN+1 /READ POINTER BG5IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG5OUT+1 /READ POINTER BG5OUT+1 /WRITE POINTER UWRTR, KHOBG5+4 /TCBP OF OUTPUT WRITER UCUR, EMBG5+4 /TCBP OF EMULATOR IFDEF USESY5 < UCHNL0, USYS5 /DRIVER FOR USERS' SYS: > IFNDEF USESY5 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4555 /FILE STRUCTURED, DEVICE TYPE 55, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-5&4000 < UKB, K1TCBP+100 /TCBP OF INPUT TASK UTTY, T1TCBP+100 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-5&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+5 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-5 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-5 <BG6> /POINTER TO NEXT BG UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > IFZERO BGMAX-6&4000 < /THE SIXTH BG: BG6, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG6IN+1 /READ POINTER BG6IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG6OUT+1 /READ POINTER BG6OUT+1 /WRITE POINTER UWRTR, KHOBG6+4 /TCBP OF OUTPUT WRITER UCUR, EMBG6+4 /TCBP OF EMULATOR IFDEF USESY6 < UCHNL0, USYS6 /DRIVER FOR USERS' SYS: > IFNDEF USESY6 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4566 /FILE STRUCTURED, DEVICE TYPE 56, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-6&4000 < UKB, K1TCBP+120 /TCBP OF INPUT TASK UTTY, T1TCBP+120 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-6&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+6 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-6 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-6 <BG7> /POINTER TO NEXT BG UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > IFZERO BGMAX-7&4000 < /THE SEVENTH BG: BG7, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG7IN+1 /READ POINTER BG7IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG7OUT+1 /READ POINTER BG7OUT+1 /WRITE POINTER UWRTR, KHOBG7+4 /TCBP OF OUTPUT WRITER UCUR, EMBG7+4 /TCBP OF EMULATOR IFDEF USESY7 < UCHNL0, USYS7 /DRIVER FOR USERS' SYS: > IFNDEF USESY7 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4577 /FILE STRUCTURED, DEVICE TYPE 57, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-7&4000 < UKB, K1TCBP+140 /TCBP OF INPUT TASK UTTY, T1TCBP+140 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-7&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+7 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, BG1 /NOTE! BG7 IS ALWAYS THE LAST ONE UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > /END OF BGMAX CONDITIONAL > /END OF FIELD 1 DATA AREA. PAGE DOTF10=. IFNZRO PASS1 < ENDF10=DOTF10-1 ENDF20=DOTF20-1 ENDF30=DOTF30-1 ENDF40=DOTF40-1 ENDF50=DOTF50-1 ENDF60=DOTF60-1 ENDF70=DOTF70-1>