/******** TOPS-8 MONITOR (M4) ******** XLIST -LDATA-1&XLISTX /**************************************************** /********* D A T A S T R U C T U R E S ******** /**************************************************** MONEND=. IFNZRO MONEND&4000 < IFNZRO DATORG-MONEND&4000 < /IF RESIDENT CODE RUNS INTO DATA... IFZERO FIELDS-2&4000 < /AND THERE IS A SECOND FOREGROUND FIELD... BUFFLD=MONFLD+10/MOVE THE BG TELETYPE BUFFERS INTO /THE SECOND FORGROUND FIELD IFNZRO PASS1 >> IFNZRO DATORG-MONEND&4000 > DATORG=DATORG&7600 *DATORG IFDEF TAPE < /TABLE WHICH HOLDS CURRENT POSITION TAPETB, ZBLOCK 10 /FOR EACH UNIT NUMBER > IFNZRO BGMAX < BOTBLK, 0 /BLOCK NUMBER OF BOOT BLOCK > DSKTAB, ZBLOCK 40 /10 UNIT #, 4 WORDS EACH /DEFINITIONS FOR THE VIRTUAL DISK STRUCTURE /USED BY THE 'DK' TASK TO TRANSLATE VIRTUAL /TO FYSICAL DISKG < COMMON, ZBLOCK COML /DIFFERENT FOR ANY I ZBLOCK MAXSLOT^2 IFZORE THEN 1 BACKGROUND : BSSLOT=MAXSLOT ZBLOCK BGMAX^2+2/THE BG SCHEDULER WAIT SLOT /AND OTHER BG WAIT SLOTS >/END OF BGMAX-2&4000 ASSLST, ZBLOCK MAXNAM NAMLST, ZBLOCK MAXNAM+1 /MUST BE BEHIND ASSRKLST, CLRKBF+30 /THIS LECTION ROUTINE KRS KKL8E2 6004+KL8E2 KB23 < CLRKBF+KL8E3 6004+KL8E3 KB3 TASKNA K3 IFDEF KL8E4 < CLRKBF+KL8E4 6004+KL8E4 KB4 TASKNA K4 IFDEF KL8E5 < CLRKBF+KL8E5 6004+KL8E5 KB5 TASKNA K5 IFDEF KL8E6 < CLRKBF+KL8E6 6004+KL8E6 KB6 TASKNA K6 IFDEF KL8E7 < CLRKBF+KL8E7 6004+KL8E7 KB7 TASKNA K7 />>>>> TTYLST, /THIS LIST DRIVES THE REENTRANT TTY DRIVERS TT1LST, 0 TLS TTY1 ZBLOCK 3 -T1CHAR -T1FILL 0 KK1LST, KB1 KRS KCC TT2LST, 0 6016+KL8E2 TTY2 ZBLOCK 3 -T2CHAR -T2FILL 0 KK2LST, KB2 6004+KL8E2 6002+KL8E2 IFDEF KL8E3< TT3LST, 0 6016+KL8E3 TTY3 ZBLOCK 3 -T3CHAR -T3FILL 0 KK3LST, KB3 6004+KL8E3 6002+KL8E3 IFDEF KL8E4 < TT4LST, 0 6016+KL8E4 TTY4 ZBLOCK 3 -T4CHAR -T4FILL 0 KK4LST, KB4 6004+KL8E4 6002+KL8E4 IFDEF KL8E5 < TT5LST, 0 6016+KL8E5 TTY5 ZBLOCK 3 -T5CHAR -T5FILL 0 KK5LST, KB5 6004+KL8E5 6002+KL8E5 IFDEF KL8E6< TT6LST, 0 6016+KL8E6 TTY6 ZBLOCK 3 -T6CHAR -T6FILL 06 6002+KL8E6 IFDEF KLKL8E7 TTY7 ZBLOCK 3 KK7LST, KB7 6004+KL8E IFNDEF NODISK < CLRTAB, ZBLOCK INTDEV-1 /HOLDS CLEAR-IOT'S MAPBEG=. /HERE HOLE STARTS SEARCHING IFNZRO DATORG-MONEND < /IF SOME CORE FREE IN MONFLD CORMAP=-MONEND%200 7740+MAPBEG /THIS IS THE BASE OF THE MND%200 IFNZRO -DATORG&2&400 <-3;-3> IFNZRO -D IFNZRO -DATORG&2000 <- IFNZRO -DATORG&4000 <-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3> IFZERO FIELDS-2&4000 <-3 /PAGE ZERO OF MONFLD+10> > /END OF IFNZRO DATORG-MONEND IFZERO DATORG-MONEND /NO ROOM IN MONFLD IFZERO FIELDS-2&4000 < /IF MORE THAN ONE FOREGROUND FIELD IFNZRO MONFLD IFZERO MONFLD > IFZERO FIELDS-3&4000 <-3;ZBLOCK 37 IFZERO FIELDS-4&4000 <-3;ZBLOCK 37 IFZERO FIELDS-5&4000 <-3;ZBLOCK 37 IFZERO FIELDS-6&4000 <-3;ZBLOCK 37 IFZERO FIELDS-7&4000 <-3;ZBLOCK 37 IFZERO FIELDS-10&4000 <-3;ZBLOCK 37>>>>>>> -3 /NOTE THAT THE MAP MUST END WITH MAPEND, 0 /-3;0 IN ORDER TO TERMINATE THE /SEARCH LOOPS OF HOLE IFNZRO BGMAX < /TABLE OF ASSIGNABLE EMULATOR TASKS. USED BY CENTRAL EMULATOR /TO RELEASE THEM IF BG COMES IN KEYBOARD MONITOR ASEMTB, IFDEF CRD < TASKNA CR /CARDREADER EMULATOR > IFDEF LPT < TASKNA LE /LINEPRINTER EMULATOR > IFDEF PTR < TASKNA RE /READER EMULATOR >PUNCHER EMULATOR > IFDEAL READER > IFDEF HSP IFDEF AX08 < TASKNAR > IFDEF AD8EA < TASKNA AM / AD MULTIPLEXER > IFDEF DP8E < TASKNA CE /DP8E COMMUNICATIONS EMULATOR > IFDEF TONCLK < TASKNA SC /SPECIAL FILE INPUT TASK > 0 /ONE SPARE 0 /ZERO ENDS THE LIST AS USUAL /TAB/0=NOT EXECUTABLE /G.T.ASK'S NAME (TASKNAME PSEDISTANCE TO SERVICE CODETAB -EMCLEAR+EMDOT / IFDEF PTR < TASKNA RE /READER EMULATOR > IFDEF PTP < TASKNA PE /PUNCHER EMULATOR > *EMTAB+3 -KH+EMDOT -KH+EMDOT IFDEF KM8E <*EMTAB+5 IFDEF VC8E IFDEF FYSCLOCK < /LOCAL FOR FYSIOLOGY UTRECHT -EMEXEC+EMDOT /KV8/L IOT'S -EMEXEC+EMDOT -EMEXEC+EMDOT >> IFDEF CENTRON < *EMTAB+15 TASKNA LE /CENTRONICS LINEPRINTER EMULATION. > *EMTAB+20 IFNDEF KM8E < -EMFOUR+EMDOT /620X > IFDEF KM8E < -EMCDIF+EMDOT /620X -EMCDIF+EMDOT /621X IFZERO BGFLDS-4 < -EMCDIF+EMDOT /622X -EMCDIF+EMDOT /623X > IFZERO BGFLDS-2 < -EMFOUR+EMDOT /622X -EMFOUR+EMDOT /623X > IFNZRO BGFLDS-4 >> IFNDEF KM8E < *EMTAB+23 -EMFOUR+EMDOT /623X > -EMFOUR+EMDOT /624X -EMFOUR+EMDOT /625X -EMFOUR+EMDOT /626X -EMFOUR+EMDOT /627X IFDEF KL8P < IFDEF HSR < *EMTAB+30 TASKNA HR > IFDEF HSP < *EMTAB+31 TASKNA HP > > IFDEF AX08 < *EMTAB+34 TASKNA AO /EMULATOR > IFDEF KM8E < IFDEF KNA AM / > IFDEF TONCLKECHT *EMTAB+55 -EMEX -EMEXEC+EMDOT / >> IFDEF TONCLK < *EMTAB+63 TASKNA SC /SPECIAL FILE READING TASK > IFDEF CRD < *EMTAB+63 TASKNA CR *EMTAB+67 TASKNA CR /CARDREADER EMULATOR > IFDEF LE8E < *EMTAB+66 TASKNA LE /LINEPRINTER EMULATOR > *EMTAB+77 -EMGIGA+EMDOT /GIANT IOT =6770 /TABLE OF "GIANT IOT'S", UAC IS INDEX AFTER 6770 GIGATB, ZBLOCK GIGAMX IFDEF DAYTIM < *GIGATB -EMTIME+EMDOT /TIME-OF-DAY REQUEST > IFDEF AX08 < *GIGATB+1 TASKNA AE /AX08 SAMPLE SYSTEM > IFDEF AD8EA < *GIGATB+1 TASKNA AD /A-D CONVERTER TASK > IFDEF R1 < *GIGATB+1 TASKNA R1 /SPECIAL R1 INTERFACE > *GIGATB+2 -EMQUIT+EMDOT /DISABLE KEYBOARD ECHO -EMECHO+EMDOT /ENABLE KEYBOARD ECHO IFNZRO BGMAX-1 < -EMBLOK+EMDOT /CLEAR BGBLOK-BIT OF ALL BG'S > IFDEF DR8EA < *GIGATB+5 TASKNA FR /FRIDO TASK > IFDEF VC8E < *GIGATB+6 TASKNA DA /DISPLAY ANALOG SIGNAL TASKNA DC /DISPLAY A CHARACTER > IFDEF AD8EA < IFZERO 10-GIGAMX&4000 *GIGATB+10 TASKNA AP /READ ADEF DP8E < IFZERO 10-GI> *GIGATB+10 TASKNA CND OF GIGATB IFDEF BUFUFFERS GO INTO MONFLD+10 ... DOTF00=. /REMEMBER WERE WE ARE IN MONFLD FIELD BUFFLD%10 /CHANGE TO BUFFLD *DOTF10 /WHY NOT ? > O=4000 /NOT YET ECHOED BG1IN, 40;6;0;6 215;O+"D;O+"A;O+"T;O+"E;O+215 ZBLOCK LN;26;0;26 0;"T;"O;"P;RSLO / TOPS-8 LABEL " ;" ;"#;"1 ZBLOCK BG1OUAX-2&4000 < BG2IN, 40;6;0;6 215;O+"D;O+"A;O+"T;O+"E;O+215 ZBLOCK BG2IN+44-. BG2OUT, BG2OLN;26;0;26 0;"T;"O;"P;"S;"-;"8;" ;"V;VERSHI;VERSLO " ;"T;"E;"R;"M;"I;"N;"A;"L;" ;"#;"2 ZBLOCK BG2OUT+BG2OLN+4-. IFZERO BGMAX-3&4000 < BG3IN, 40;6;0;6 215;O+"D;O+"A;O+"T;O+"E;O+215 ZBLOCK BG3IN+44-. BG3OUT, BG3OLN;26;0;26 0;"M;"U;"L;"T;"I;"8;" ;"V;VERSHI;VERSLO " ;"T;"E;"R;"M;"I;"N;"A;"L;" ;"#;"3 ZBLOCK BG3OUT+BG3OLN+4-. IFZERO BGMAX-4&4000 < BG4IN, 40;6;0;6 215;O+"D;O+"A;O+"T;O+"E;O+215 ZBLOCK BG4IN+44-. BG4OUT, BG4OLN;26;0;26 0;"M;"U;"L;"T;"I;"8;" ;"V;VERSHI;VERSLO " ;"T;"E;"R;"M;"I;"N;"A;"L;" ;"#;"4 ZBLOCK BG4OUT+BG4OLN+4-. IFZERO BGMAX-5&4000 < BG5IN, 40;6;0;6 215;O+"D;O+"A;O+"T;O+"E;O+215 ZBLOCK BG5IN+44-. BG5OUT, BG5OLN;26;0;26 0;"M;"U;"L;"T;"I;"8;" ;"V;VERSHI;VERSLO " ;"T;"E;"R;"M;"I;"N;"A;"L;" ;"#;"5 ZBLOCK BG5OUT+BG5OLN+4-. IFZERO BGMAX-6&4000 < BG6IN, 40;6;0;6 215;O+"D;O+"A;O+"T;O+"E;O+215 ZBLOCK BG6IN+44-. BG6OUT, BGL;"T;"I;"8;" ;"V;VERSHI;"I;"N;"A;"L;" ;"#;"6 Z IFZERO BGMAX-7&4000 < "D;O+"A;O+"T;O+"E;O+215 ZBLOCK BG7IN+44-. BG7OUT, BG7OLN;26;0;26 0;"M;"U;"L;"T;"I;"8;" ;"V;VERSHI;VERSLO " ;"T;"E;"R;"M;"I;"N;"A;"L;" ;"#;"7 ZBLOCK BG7OUT+BG7OLN+4-. >>>>>> BGBUFEND=.-1 IFDEF BUFFLD < /I+10 NOW DOTF10=. FIEO DATAAREA IN MONFLD *MAP WHAT WE DID O=DOTF1S FOR ALL FIELD 1 MATERIAL IFNZRO O&200 <-3> IFNZRO O&400 <-3;-3> IFNZRO O&1000 <-3;-3;-3;-3> IFNZRO O&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO O&4000 <-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3;-3> IFZERO DATORG-MONEND *DOTF00 /NICE WE HAVE REMEMBERED THAT > /DEFINITIONS FOR BG DATA AREA;ALL RELATIVE BGDATA, BG1, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, IFZERO BGMAX-1 IFNZRO BGMAX-1 UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MXX.XXX.SSS.SSS A/B MODE AND STEPCOUNTER UPC, 7600 /USERS CURRENT PROGRAM COUNTER UFLDS, BGFLD%10+BGFLD+100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, INSTRUCTION FIELD, DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UCOMM, 0 /COMMUNICATION WORD UDTV, ZBLOCK 3 /TRANSFER VECTOR UDISK, 1 /VIRTUAL DISK UNIT NUMBER KHOTMP, 0 RITER UCHAR, 0 /THE CUBUFIN, BG1IN /POINTER TBG1OUT /POINTER TO OUTP4 /TCBP OF INPUT READER UWRTR, KHOBG1+4 /TCBP OF OUTPUT WRITER UCUR, EMBG1+4 /TCBP OF EMULATOR UKB, K1TCBP /TCBP OF INPUT TASK UTTY, T1TCBP /TCBP OF OUTPUT HANDLER UREAD, -DELAY&7776-1 /BG-READER RUN FLAG: ODAG, 4000=NO ECHO IFZERO THAN 1 BG ... USWAP, 1PING BLOCK # USLOT, MAXORE SLOT UNEXT, BG2 /POINTER TO NEXT 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+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MXX.XXX.SSS.SSS A/B MODE AND STEPCOUNTER UPC, 7600 /USERS CURRENT PROGRAM COUNTER UFLDS, BGFLD%10+BGFLD+100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, INSTRUCTION FIELD, DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UCOMM, 0 /COMMUNICATION WORD UDTV, ZBLOCK 3 /TRANSFER VECTOR UDISK, 2 /VIRTUAL DISK UNIT NUMBER KHOTMP, 0 /TEMPORARY FOR OUTPUT WRITER UCHAR, 0 /THE CURRENT INPUT CHARACTER UBUFIN, BG2IN /POINTER TO INPUT BUFFER UBUFOUT,BG2OUT /POINTER TO OUTPUT BUFFER URDR, KHIBG2+4 /TCBP OF INPUT READER UWRTR, KHOBG2+4 /TCBP OF OUTPUT WRITER UCUR, EMBG2+4 /TTCBP /TCBP OF INPUT TASF OUTPUT HANDLER UREAD,R RUN FLAG: ODD=GO UECHO ECHO USWAP, 2-1^SWAPLG^BGFLDS%2 /SWAPPING BLOCK # USLOT, MAXSLOT+2 /WAIT-FOR-BG-IN-CORE SLOT UNEXT, IFZERO BGMAX-2 /POINTER TO FIRST BG IFNZRO BGMAX-2 /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+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MXX.XXX.SSS.SSS A/B MODE AND STEPCOUNTER UPC, 7600 /USERS CURRENT PROGRAM COUNTER UFLDS, BGFLD%10+BGFLD+100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, INSTRUCTION FIELD, DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UCOMM, 0 /COMMUNICATION WORD UDTV, ZBLOCK 3 /TRANSFER VECTOR UDISK, 3 /VIRTUAL DISK UNIT NUMBER KHOTMP, 0 /TEMPORARY FOR OUTPUT WRITER UCHAR, 0 /THE CURRENT INPUT CHARACTER UBUFIN, BG3IN /POINTER TO INPUT /POINTER TO OUTPUT BUFF OF INPUT READER UWRTR,T WRITER UCUR, EMBG3+4 K3TCBP /TCBP OF INPUT TASK UTTY, T3TCBP /TCBP OF OUTPUT HANDLER UREAD, -DELAY&7776-1 /BG-READER RUN FLAG: ODD=GO UECHO, 0 /ECHO FLAG, 4000=NO ECHO USWAP, 3-1^SWAPLG^BGFLDS%2 /SWAPPING BLOCK # USLOT, MAXSLOT+LOT UNEXT, IFZERO BGMARST BG IFNZRO BGMAX-3 < UEND=. /END FOR THISELATIVE DEFINITIONS > IFZERO BGMAX-4&4000 < /THE FOURTH BG: BG4, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MXX.XXX.SSS.SSS A/B MODE AND STEPCOUNTER UPC, 7600 /USERS CURRENT PROGRAM COUNTER UFLDS, BGFLD%10+BGFLD+100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, INSTRUCTION FIELD, DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UCOMM, 0 /COMMUNICATION WORD UDTV, ZBLOCK 3 /TRANSFER VECTOR UDISK, 4 /VIRTUAL DISK UNIT NUMBER KHOTMP, 0 /TEMPORARY FOR OUTPUT WRITER UCHAR, 0 /THE CURRENT INPUT CHARACTER UBUFIN, BG4IN /POINTER TO INPUT BUFFER UBUFOUT,BG4OUT /POINTER TO OUTPUT BUFFER URDR, KHIBG4+4 /TCBP OF INPUT READER UWRTR, KHOBG4+4 /TCBP OF OUTPUT WRITER UCUR, EMBG4+4 /TCBP OF EMULATOR UKB, K4TCBP /TCBP OF INPUT TASK UTTY, T4TCBP /TCBP OF OUTPUT HANDLERG-READER RUN FLAG: ODD=G 4000=NO ECHO USWAP, 4-ING BLOCK # USLOT, MAXSRE SLOT UNEXT, IFZERO BGMAX-4 /POINTER TO FIRST BG IFNZRO BGMAX-4 /POINTER TO NEXT BG UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > IFZERO BGMAX-5&4000 < /THE FITH BG: BG5, REMBOLS ARE RELATIVE USATUS FOR BACKGROUND SCHEMORY QUOTIENT REGISTER A/B MODE AND STEPCOUNTER UPC, 7600 /USERS CURRENT PROGRAM COUNTER UFLDS, BGFLD%10+BGFLD+100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, INSTRUCTION FIELD, DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UCOMM, 0 /COMMUNICATION WORD UDTV, ZBLOCK 3 /TRANSFER VECTOR UDISK, 5 /VIRTUAL DISK UNIT NUMBER KHOTMP, 0 /TEMPORARY FOR OUTPUT WRITER UCHAR, 0 /THE CURRENT INPUT CHARACTER UBUFIN, BG5IN /POINTER TO INPUT BUFFER UBUFOUT,BG5OUT /POINTER TO OUTPUT BUFFER URDR, KHIBG5+4 /TCBP OF INPUT READER UWRTR, KHOBG5+4 /TCBP OF OUTPUT WRITER UCUR, EMBG5+4 /TCBP OF EMULATOR UKB, K5TCBP /TCBP OF INPUT TASK UTTY, T5TCBP /TCBP OF OUTPUT HANDLER UREAD, -DELAY&7776-1 /BG-READER RUN FLAG: ODD=GO UECHO, 0 /ECHO FLAG, 4000=NO ECHO USWAP, 5-1^SWAPLG^BGFLDS%2 /SWAPPING BLOCK # USLOT, MAXSLOT+5 /WAIT-FOR-BG-IN-CORE SLOT UNEXT, IFZERO BGMAX-5 /POINTER TO FIRST BG IFNZRO BGMEXT BG UEND=. /END FOD OF RELATIVE DEFINITION0 < /THE SIXTH BG: BG6, SYMBOLS ARE RELATIVE USTAT, INACTIVE+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MXX.XXX.SSS.SSS A/B MODE AND STEPCOUNTER UPC, 7600 /USERS CURRENT PROGRAM COUNTER00 /LGX.XXU.III.FFF: LINER MODE, INSTRUCTION FIEUSERS CURRENT ACCUMULATOTED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UCOMM, 0 /COMMUNICATION WORD UDTV, ZBLOCK 3 /TRANSFER VECTOR UDISK, 6 /VIRTUAL DISK UNIT NUMBER KHOTMP, 0 /TEMPORARY FOR OUTPUT WRITER UCHAR, 0 /THE CURRENT INPUT CHARACTER UBUFIN, BG6IN /POINTER TO INPUT BUFFER UBUFOUT,BG6OUT /POINTER TO OUTPUT BUFFER URDR, KHIBG6+4 /TCBP OF INPUT READER UWRTR, KHOBG6+4 /TCBP OF OUTPUT WRITER UCUR, EMBG6+4 /TCBP OF EMULATOR UKB, K6TCBP /TCBP OF INPUT TASK UTTY, T6TCBP /TCBP OF OUTPUT HANDLER UREAD, -DELAY&7776-1 /BG-READER RUN FLAG: ODD=GO UECHO, 0 /ECHO FLAG, 4000=NO ECHO USWAP, 6-1^SWAPLG^BGFLDS%2 /SWAPPING BLOCK # USLOT, MAXSLOT+6 /WAIT-FOR-BG-IN-CORE SLOT UNEXT, IFZERO BGMAX-6 /POINTER TO FIRST BG IFNZRO BGMAX-6 /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+ONDISK /STATUS FOR BACKGROUSERS MEMORY QUOTIENT RE.SSS.SSS A/B MODE AND STSERS CURRENT PROGRAM COUFLD+100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, INSTRUCTION FIELD, DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UCOMM, 0 /COMMUNICATION WORD UDTV, ZBLOCK 3 /TRANSFER VECTOR UDISK, 7 /VIRTUAL DISK UNIT NUMBER KHOTMP, 0 /TEMPORARY FOR OUTPUT WRITER UCHAR, 0 /THE CURRENT INPUT CHARACTER UBUFIN, BG7IN /POINTER TO INPUT BUFFER UBUFOUT,BG7OUT /POINTER TO OUTPUT BUFFER URDR, KHIBG7+4 /TCBP OF INPUT READER UWRTR, KHOBG7+4 /TCBP OF OUTPUT WRITER UCUR, EMBG7+4 /TCBP OF EMULATOR UKB, K7TCBP /TCBP OF INPUT TASK UTTY, T7TCBP /TCBP OF OUTPUT HANDLER UREAD, -DELAY&7776-1 /BG-READER RUN FLAG: ODD=GO UECHO, 0 /ECHO FLAG, 4000=NO ECHO USWAP, 7-1^SWAPLG^BGFLDS%2 /SWAPPING BLOCK # USLOT, MAXSLOT+7 /WAIT-FOR-BG-IN-CORE SLOT UNEXT, BG1 /NOTE! BG7 IS ALWAYS THE LAST ONE UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > /END OF BGMAX CONDITIONAL > ONAL > IFZERO .&4000 OF TASK CONTROL BLOCKS SYSFLD;CDF+MONFLD%2;0;0 IFNDEF NODISK < TASKNA SY;0;SY;0 SYSFLD;CDF+SYSFLD%2;0;0 > TASKNA BB;0;BB;0 MONFLD;CDF MONFLD%2;0;0 IFNDEF KL8E2 TASKNA T1;0;TT;TT1LST T1TCBP, MONFLD;CDA K1;0;KK;KK1LST K1TCBP0 IFDEF KL8E2 < "T^ T2TCBP, MONFLD;CDF MONF777;0;KK;KK2LST K2TCBP, MONFLD;CDF MONFLD%2;0;0 IFDEF KL8E3 < "T^100+"3&3777;0;TT;TT3LST T3TCBP, MONFLD;CDF MONFLD%2;0;0 "K^100+"3&3777;0;KK;KK3LST K3TCBP, MONFLD;CDF MONFLD%2;0;0 IFDEF KL8E4 < "T^100+"4&3777;0;TT;TT4LST T4TCBP, MONFLD;CDF MONFLD%2;0;0 "K^100+"4&3777;0;KK;KK4LST K4TCBP, MONFLD;CDF MONFLD%2;0;0 IFDEF KL8E5 < "T^100+"5&3777;0;TT;TT5LST T5TCBP, MONFLD;CDF MONFLD%2;0;0 "K^100+"5&3777;0;KK;KK5LST K5TCBP, MONFLD;CDF MONFLD%2;0;0 IFDEF KL8E6 < "T^100+"6&3777;0;TT;TT6LST T6TCBP, MONFLD;CDF MONFLD%2;0;0 "K^100+"6&3777;0;KK;KK6LST K6TCBP, MONFLD;CDF MONFLD%2;0;0 IFDEF KL8E7 < "T^100+"7&3777;0;TT;TT7LST T7TCBP, MONFLD;CDF MONFLD%2;0;0 "K^100+"7&3777;0;KK;KK7LST K7TCBP, MONFLD;CDF MONFLD%2;0;0 >>>>>> IFNZRO BGMAX < KHIBG1, 4644;0;KHIST ;BG1;MONFLD;CDF MONFLD%2;0;0 KHOBG1, 4644;0;KHO ;BG1;MONFLD;CDF MONFLD%2;0;0 EMBG1, 4644;0;EMSTRT ;BG1;MONFLD;CDF MONFLD%2;0;0 IFZERO BGMAX-2&4000 < KHIBG2, 4644;0;KHIS%2;0;0 KHOBG2, 4644;0;KD%2;0;0 EMBG2, 4644;0;ENFLD%2;0;0 IFZERO BGM4;0;KHIST ;BG3;MONFLD;CDF MONFLD%2;0;0 KHOBG3, 4644;0;KHO ;BG3;MONFLD;CDF MONFLD%2;0;0 EMBG3, 4644;0;EMSTRT ;BG3;MONFLD;CDF MONFLD%2;0;0 IFZERO BGMAX-4&4000 < KHIBG4, 4644;0;KHIST ;BG4;MONFLD;CDF MONFLD%2;0;0 MONFLD;CDF MONFLD%2;0;0G4;MONFLD;CDF MONFLD%2;00 < KHIBG5, 4644;0;KHIS%2;0;0 KHOBG5, 4644;0;KHO ;BG5;MONFLD;CDF MONFLD%2;0;0 EMBG5, 4644;0;EMSTRT ;BG5;MONFLD;CDF MONFLD%2;0;0 IFZERO BGMAX-6&4000 < KHIBG6, 4644;0;KHIST ;BG6;MONFLD;CDF MONFLD%2;0;0 KHOBG6, 4644;0;KHO ;BG6;MONFLD;CDF MONFLD%2;0;0 EMBG6, 4644;0;EMSTRT ;BG6;MONFLD;CDF MONFLD%2;0;0 IFZERO BGMAX-7&4000 < KHIBG7, 4644;0;KHIST ;BG7;MONFLD;CDF MONFLD%2;0;0 KHOBG7, 4644;0;KHO ;BG7;MONFLD;CDF MONFLD%2;0;0 EMBG7, 4644;0;EMSTRT ;BG7;MONFLD;CDF MONFLD%2;0;0 >>>>>>> LOADPT, 0 /ZERO IS TERMINATOR IFNZRO MAXNAM^10+TCBTAB-.&4000 /TO MANY TASKS ! ZBLOCK MAXNAM^10+TCBTAB-. /THE REST OF TCBTAB IS /FOR DISK-RESIDENT TASKS FRECOR, ZBLOCK FREEMAX^10 /THE ALLOCATABLE BLOCKS / / SYSTEM REFERENCE TABLE / REFTAB, TIME / SYYTEM TME AND DATA LOCATIONS / MSEC-1000 , SEC-60 , MIN-60 , HOURS-24 , OS/8-DATE /SOME TESTS: COREND=.-1 TEST2=DATORG+TEST1-COREND IFZERO COREND-MAXEND&4000