(== Typed from a photocopy of a lineprinter listing at the NAHC First unverified version 1 June 2005 Corrections based on first generation assembler output : 2 June 2005 Differences from listing : 1. Lower case characters used in comments 2. character # used in place of pound sterling symbol Hans B PUFAL, May 2005); ( The following defiens the instruction parsing and binary generation for the KDF-9 assembler. @PROGRAM~z1; @FINISH~z2; @RESTART~z3; @TITLE~z4; @*D~34; @*~35; @+D~57; @+F~74; @+~56; @-DF~22; @-D~53; @-F~75; @-~36; @+DF~23; @=TR~02; @ABSF~30; @ABS~26; @AND~54; @BITS~03; @CAB~66; @CONT~50; @DIVDF~63; @DIVD~61; @DIVF~62; @*DIVI~44; @DIVR~64; @DIV~60; @DUMMY~17; @EXITAr~x42170000; @EXITn~x40170000; @DUPD~43; @DUP~42; @ERASE~52; @FIX~45 @FLOAT~24; @FLOATD~25; @FRB~67; @JSr~j40150000; @JrCqZ~k50000000; @JrCqNZ~k54000000; @Jr~j40130000; @Jr=Z~j44010000; @Jr=Z~j40020000; @Jr>Z~j44040000; @Jr<=Z~j40040000; @Jr*EZ~j44060000; @Jr#Z~j40060000; @JrV~j44100000; @JrNV~j40100000; @JrEN~j44120000; @JrNEN~j40120000; @JrEJ~j44140000; @JrNEJ~j40140000; @JrTR~j44160000; @JrINTR~j40160000; @JrNTR~j40160000; @JrCqNZS~b1234 @Jr#~j40010000; @LINK~b75400; @=LINK~b76000; @M+Iq~q60000; @M-Iq~q60400; @NCq~q61000; @DCq~q61400; @Iq=1~q62000; @Iq=+1~q62000; @Iq=-1~q62400; @Iq=2~63000; @Iq=+2~63000; @Iq=-2~63400; @QqTOQp~q67400; @CqTOQp~q67000; @IqTOQp~q65000; @MqTOQp~q64400; @IMqTOQp~q65400; @CMqTOQp~q66400; @CIqTOQp~q67000; @Qq~q74416; @Cq~q74410; @Iq~q74404; @Mq~q74402; @=Qq~q74016; @=Cq~q74010; @=Iq~q74004; @=Mq~q74002; @=RCq~q74011; @=RIq~q74005; @=RMq~q74003; @=+Qq~q75016; @=+Cq~q75010; @=+Iq~q75014; @=+Mq~q75012; @MAXF~72; @MAX~32; @NEGDF~71; @NEGD~10; @NEGF~31; @NEG~27; @NEV~15; @NOT~33; @OR~11; @PERM~12; @REVD~51; @REV~65; @ROUNDH~14; @ROUNDHF~21; @ROUNDF~20; @ROUND~16; @SET~s304; @SHCs~h73001; @SHCCn~i73000; @SHLDs~h72401; @SHLDCn~i72400; @SHLs~h72401; @SHLCn~i72400; @SHAs~h70401; @SHACn~h70400; @SHADs~h71001; @SHADCn~h71000; @SIGNF~77; @SIGN~37; @STAND~70; @STR~47 @TOB~13 @VR~01; @XF~04; @XDF~05; @X+F~07; @ZERO~41; @MqMpQN~q45000; @MqMpQ~q41000; @MqMpN~q44000; @MqMp~q40000; @MqMpHQN~q47000; @MqMpHQ~q43000; @MqMpHN~q46000; @MqMpH~q42000; @MqMpQH~q43000; @=MqMpQN~q45200; @=MqMpQ~q41200; @=MqMpN~q44200; @=MqMp~q40200; @=MqMpHQN~q47200; @=MqMpHQ~q43200; @=MqMpHN~q46200; @=MqMpH~q42200; @CTQq~q50000; @MANUALQq~q50001; @CLOQq~q50002; @BUSYQq~q50002; @LBQq~q50004; @BTQq~q50010; @PARQq~q50400; @TLOQq~q52004; @PIAQq~q52000; @PIBQq~q52400; @PICQq~q52010; @PIDQq~q52004; @PIEQq~q53000; @PIFQq~q53400; @POAQq~q54000; @POBQq~q54400; @POCQq~q54010; @PODQq~q54410; @POEQq~q54014; @POFQq~q54004; @PMAQq~q56000; @PMBQq~q56400; @PMCQq~q56010; @PMDQq~q56410; @PMEQq~q56014; @PMFQq~q56004; @PMHQq~q56001; ??? @Vn=~v0; @@=yMqQ~y60600000; @@=yMq~y60200000; @@=y~y60200000; @@yMqQ~y60400000; @@yMq~y60000000; @@y~y60000000; @@P~p0; ) TITLE: OUT20 ETC V29; RESTART; JP200; JP200; PROGRAM; V5=1.048576/23; V8=Q4/-453/0; (Increment .027 Msec) V10=1/35; V11=2/35; V12=3/25; V14=1 V15=B0207464151546300; V23=B1010101010101010; V24=B0204777777072000; V25=B0204047777072100; V26=B0204040477072200; V27=B0204040404072300; (V28=Director/Program marker) (V29 is easily OUT11 accessable marker, current bits in set are D0 - SET1 if on line M/C D35-44 - Number of words of user space(mod 32) D45-47 - Data number Sunday=0,Monday=1 etc); V28; J35=Z; ZERO; =V23; K4; Q5; =V2; V7; =M5; SET3; J11NTR; SHC-2; 11; J12NV; SHC-1; 12; =V1P104M5; DUP; SHL-22; STR; REV; ERASE; V0P13; AND; OR; 51; DUP; SETB101; SHL+19; REV; SHC+1; SHL+21; J2#Z; OR; (No RFIS so insert D22,28); ZERO; 2; NOT; AND; (Remove D22,28) DUP; SHC+1; SHL+21; J1#Z; (Jump if any RFI other than PR or LOV) V5; *; DUP; =V6; V5P104M5; *; DUP; =V5P104M5; M5; REV; V9M5; SHL+5; =M5; M5M0HN; SIGN; J4>Z; (Jump if time limit exceeded) SET-109891; (Basic SP 0.655 Msec) 32; V8; =Q5; =M5; V0P104; K5;OR; SHL-1; #5; SHL+6; DUP; J6>=Z; (Jump if holp-up digit not present); DC5; M+I5; J5C5NZS; (No program can be entered); =V14; (d0=1) ERASE; JSP1; J23; 6; =LINK; (Plant dummy link) SET4; C5; -; M5; PERM; (N1= new priority, N2= old priority, N3= path correction) 30; REV; =M5; K7; SHC+7; NOT; NEG; SHC-7; =V13P104M5; (Preserve adjusted NS counters) DUP; =V7; =M5; (New priority number) V4P104M5; +; V6; -; =V5P104M5; (Run time) VR; V1P104M5; SHA+1; =TR; V17P104M5; =K2; ERASE; (CPDAR); V9M5; V13P104M5; V2; =Q5; DUP; =K3; (== 2 ==) DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; (Allow new set to settle down) =V28; LINK; ERASE; (Remove dummy link) =V28; (Store twice in case of reset) #=K1; ERASE; EXIT0; (return to program) 35; (Director failure); SET-9; DUP; =M5; =V7; ZERO; NOT; =V1P6; JSP1; JSP12; 36; K4; ERASE; JSP59; J36; 4; =M5; JSP1; ZERO; DUP; NOT; J9; 1; DUP; SHL-25; REV; =Q5; J10=Z; (Prog is silent so output ident); V41P104M5; V37P104M5; SHLD24; V24P0M5; SET3; J54P6; 30; DUP; SHL-12; J6#Z; ZERO; SHLD-45; V23P0; DUP; CAB; FRB; REV; SHL+1; +; SHL+36; SHL-12; REV; V23P0; SHL-2; REV; SHL-45; FRB; DUP; SHL+6; -; -; SETB131355; SHL+2; AND; 6; V1; J5P55; SHC-6; OR; V24P0M5; SET3; JS4P6; 2; JSP12; JS4P29; DUMMY; DUMMY; DUMMY; JS7P29; DUMMY; DUMMY; DUMMY; V0; DUP; J1P15#Z; V26P101; SHL1; J4>=Z; (J if no react quere); 5; SETB20; =V29P104M5; (Stop tint a while react query); V24P0M5; JS3; =M0M6; M6; DUP; SET2; +; JSP8; ZERO; =V29P104M5; JS3; E2M6; SHL-42; SETB41; REV; J1#Z; 9; SET7; J1P15; 4; V77P104M5; SHL6; J5>=Z; (J if loud); ERASE; J9; #10; JSE4; 3; V13P104M5; SHL-46; DUP; SHL+1; +; SETAV2; +; =M6; EXIT1; 1; (Even restart) V9P0M5; SHL5; =M6; E4M6; R10; NEV; SHL-24;J9=Z; V97P104M5; SET4; DUP; SHL24; +; +; =V97P104M5; (JS142P195; Clear OUT40 if set); SET4; DUP; JS6P29; J35P0; SHL+24; V5P104M5; +; V9P0M5; SHL+5; =M6; =M6M0HN; EXIT1; 20; V21P0; J29#Z; (Not if fail S); SHC+9; =V77P104M5; =RC7; V6P12; J21=Z; V64P1; V33P1; SHL+43; V32P1; SHLD+5; =I7; =V6P12; SET15; DUP; =V32P1; =V33P1; J22; 21; JS5P29; JS35P0; (== 4 ==) 22; =M7; JS1; Q7; =E6M6; EXIT1; P3V0; (OUT subroutine) V0=B 77 77 77 77 77 76 67 55 ZERO; =V20P0; (Clear out marker); V19P0; =Q7; V16P1; SETB57777; -; DUP; J1>=Z; SETB120000; SHC+1; -; 1; =V16P1; (Link has 3 syllables added); ZERO; NOT; =V19P0; V32P1; J4=Z; V0P1; =C6; V0; ZERO; SHLDC6; BITS; REV; J3>=Z; SHC-1; STR; SETB60000; AND; +; 6; =LINK; ( C6; SETB77; AND; SETAV0P000U; +; =M6; M0M6H; SHL-24; NOT; NEG; SHL24; =M0M6H; ); EXITAR2; 3; ERASE; C6; SET50; JP65=; SET51; JP66=; SET52; J52P2939=; SET53; J53P2939=; SET54; J54P2939=; DUP; NOT; J100=Z; (J if OUT =1 for clear transfer); SETB12345; NEV; J5#Z; (Alter bit in V77P104M5); V0P1; STR; REV;=Q6; DUP; V77P104M5; NEV; SETB2000; SHLC6; SETB3520; AND; SHL+2; OR; NEV; =V77P104M5; EXIT1; (Allow D5,6,7,9); 100; NEG; SHLC1; V17P104M5; AND; J5=Z; Q7; =V19P0; I1; =RM7; JSP128; M0M7; DUP; =V0P1; J101#Z; CTQ1; 101; EXIT1; 15; ERASE; (Used by P195 in OUT54); 5; SETB10; JP2; (Illegal out number); 4; ZERO; J6; #2; JP15; JP16; JP17; JP18; JP19; JP20; JP21; JP21; JP23; JP24; JP61; J11P193; J12P193; JP2939; J14P66; J15P66; JP23; JP64; J18P105; J19P66; JP192; J21P196; J22P196; J23P196; J24P195; J25P130; J26P195; J27P194;J28P194; J29P195; J30P196; J31P196; J32P196; J33P196; J34P196; J36P196; J37P195; J39P130; J40P195; J41P196; J42P196; J44P915; J45P195; J47P196; P4V5; (Instant TINT) V0=B0207414741515677; V1=B0207645156647734; (V2 and V3 contain answer to TITN query); V4=B2777547752/29; (D3=A,D4=B etc Permitted TINTS A=JLMPR-XZ .EM is same as F); V5=0; (TINT params); ZERO; NOT; =V19P0; V1P11; J4P45#Z; ZERO; =V16P0; (Clear TINT RFI); ZERO; SETAV1; 2; V0P11; =Q4; SHL+16; SETAV3; OR; ZERO; ZERO; NOT; =V19P0; NOT; CONT; =V5; JS51P10; SETAV2; =Q6; 5; JSP31; J3; J3; J3; SET-30; =+C7; V4; ZERO; SHLDC7; BITS; REV; J4>=Z; (Validity check) SHC-1; STR; SETB60000; AND; +; JS1; (== 5 ==) (TINT subroutine fails); J3; (Exit 2 from TINT subroutine); V0P11; =Q4; EXIT1; 4; ERASE; 3; ZERO; SETAV0; J2; 1; =LINK; EXITAR6; #6; EXIT2; JP33; JP34; JP35; JP35; JP37; EXIT2; JP39; JP40; JP41; JP42; JP44; JP45; JP48;JP49; JP50; JP51; JP52; JP53; JP54; JP76; JP72; P5V0; (EDT subroutine); V0P0; =V0; (Time of last EDT); ZERO; =V0P13; (Clear marker to give EDT on fpr RFI); ZERO; =V19P0; (Clear EDT indicator) JSP100; (Deal with W magnetic tapes) JSP105; (Consolidate store etc.) JSP59; (Deal with flax queue) JSP155; (Deal with OUT8 queue) JSP199; (Enables disc access is appropriate); JSP11; (Deal with subprograms) ZERO; =V0P101; (Clear new identifier marker) V4P23; (Look for OUT8); J7#Z; JSP155; 7; JSP193; (Attend to JO); K5; M0TOQ5; 2; ZERO; SHLD+4; =C5; DUP; SHL+1; J3>=Z; DUP; =TR; J9NTR; BUSYQ5; J3TR; J1; 9; V9P0M5; JS107P300; J3; 1; (Clear PHU); V13P104M5; ZERO; NOT; NEG; OR; =V13P104M5; M5; SHL+123; SETB140000; OR; =K1; ERASE; CLOQ0; SETB140000; =K1; ERASE; 3; SHL+2; M5; SET3; J4=; NOT; NEG; =M5; J2; 4; =C6; ERASE; V7P0; 5; NOT; NEG;SET3; AND; DUP; =M5; V13P104M5; SHC-1; J6=Z; ERASE; ZERO; NOT; 8; =V14P0; EXIT1; P6V64; (Put N2=NX in FLEX queue, X=1 given in N1, if flex queue overlows enter P59; to make room); V1=-1; V56=-1; (For benefit of the OUT8 system); M5; SHL-2; J4>=Z; 5; REV; ERASE; NEG;NOT;DUP; J5#Z; J1P45; 4; SETAP6; SETAV1P6; -; =RC7; 1; V1M7Q; NOT; J1#Z; 3; J2C7Z; (Queue not full) REV; =V0M7; ZERO; NOT;=V1M7Q; NEG; NOT; DUP; J3#Z; NOT; =V19P0; EXIT1; (== 6 ==) 2; (Queue full); JSP59; JSP60; ERASE; J4P6; P8; (Put query parameters in FLEX queue and enter 2P10); REV; SHL+16; OR; ZERO; NOT; CONT; C4;SHL+32; OR; DUP; SET1; JS4P6; ZERO; REV; J2P10; P9V1; (Convert cell count from binary to signed decimal characters, used in P12); V0=B1212121212010101; V1=B0707434554546300; DUP; SHA-4; SHL-1; (Non-zero if count >=24); J1=Z; SET132;-; NEG; 1; V0; REV; FRB;SETB35202; SHL+21; +; V1;V24P0M5; SET3; J4P6; P10; (Normal entry test BUSYQ7. If busy or if entry at 2, put SHUL, SHUP, and SHUL# into SHU list. Exit to level X+1 lower, X given in N1 (or N3 for entry 2)); ZERO; =TR; J1C72; BUSYQ7; 1; TLOQ7; J1P45NTR; 3; ZERO; Q7; I4; SHC-27; =V0P13; (Next PR causes EDT); 2; =E10M4; LINK; OR; =M0M4; C4; SHC-1; J5<=Z; SET1;JS113P300; 5; DUP; STR;NEV;=C7; ZERO; J7C7Z; #6; SHL+6; LINK; OR; DC7;J6C7NZS; 7; =E30M4; J4P45>=Z; EXIT2; 4; ZERO; 14; ZERO; ZERO;J2; 50; ZERO; 51; ZERO; ZERO; ZERO; NOT;CONT; J2; (P6000V23; (OUT COUNTS);); P104V116; (The vraious bits in V77P104M5 have hte ollowing significance D 0 = Prog read in by TINT X D 1 = TINIT X in progress D 2 = Last disc transfer partitied D 3 = Disc repeat in progress after parity D 4 = Not used (David thinks) D 5 = Auxiliary systems program D 6 = FLEX suppression D 7 = Job initiated by OUT39 D 8 = OUT 40 on by this level D 9= Silent fail D10 = OUT 50 done by this level D11 = This level will print OUT8 tapes D12 = Shows TINT;TLM has been done D13 = OUT20 done by this level....Different bit from Leeds ); (The various bits of V25P104M5 have the following significance D47 = Main subprogram active D46 = No program to run D45 = TINT S D44 = HU due to OUT8 subprogram D43 = Store move/priority change D42 = Rolled out D41 = OUT 19 (== 7 ==) ); V0=B01010101/23; V13=B0141/11; V14=B2141/11; V15=B4141/11; V16=B6141/11; V17=1; V18=1; V19=1; V20=1; V25=2; V26=2; V27=2; V21=2; V29=5; V30=5; V31=5; V32=5; V97=B 20 00 00 00 20 00 00 00; V98=B 20 00 00 00 20 00 00 00; V99=B 20 00 00 00 20 00 00 00; V100=B 20 00 00 00 20 00 00 00; (V101 to V113 are all for use of controllers when running ROGS); P11V40; (Deal with hold-ups in SHU list in due order); V0=Q0/1/AV1; 15; V0; =Q4; 3; M0M4; DUP; J1#Z; (Jump if this SHU is in use); 11; ERASE; 7; M+I4; C4; DUP; SET9; SIGN; J1P45>=Z; NOT; NEG; =C4; J3; 1; E10M4; REV; J4=Z; M5; V7P0; NEV; J10=Z; V13P10M5; SHL+2; SHL-43; NEG; NOT; J11; 10; V32P1; SET2; +; 11; JSP9; J12; 8; V2; V3M7; V24P0M5; SET3; JS4P6; 12; ERASE; EXIT1; 3; ZERO; =V6; V34P1; DUP; SET4; -; =V7; JS13; V33P1; SHL+43; J9#Z; SETB37; JSP9; J6; 13; V5; REV; FRB; V23P0; SHL-11; +; V0M7; V24P0M5; SET3; JS4P6; M0TOQ7; EXIT1; P13V0; (Set program HU bit in V0P104); SET1; M5; V14P0; NEV; J1#Z; ZERO; NOT; =V14P0; 1; M5; NOT; SHA+1; DUP; SHA+1; +; =C5; SHCC5; V0P104; REV; DUP; J2=Z; ZERO; =V21P104M5; 3; V65P104M5; ZERO; NOT; SIGN; ABS; DUP; SHL+4; OR; SHL+6; OR; (Add 10 if OUT8 used); =V1P104M5; JS4P29; DUMMY; DUMMY; DUMMY; JS7P29; DUMMY; DUMMY;DUMMY; SET1; =V17P104M5; SET2; JS113P300; V0P26; =Q6; 4; M0M6Q; ERASE; J5C6Z; JSP125; J4; CTQ6; PARQ6; ZERO; =TR; V0P26M6; SHL+17; J6>=Z; SETB52000; JS10P100; J4; 6; V21P104M5; JSP27; J4; 5; M0M4N; J10#Z; SETAP23; =M0M4N; ZERO; =E11M4; ZERO; =E31M4; 10; JS4P10; V29P104M5; J10=Z; V9P0M5; DUP; SHC+24; SHL+10; V89P14M5; OR; SHC+14; JSP136; J44P120; (OUT 2); 91; (Deal with disc); ZERO; =V61P104M5; ZERO; =V105P104M5; V2; =V97P104M5; V85P104M5; SHL-24; DUP; J8=Z; V9P0M5; SHL+5; =M6; SET31; REV; 15; JS10P130; (Bit of a botch, see P198, DDES read); V9P0M5; SHL5; =M6; ZERO; NOT; =M0M6; (Put -1 in progs ED); SET31; V85P104M5; SHL-24; JS10P130; ZERO; (Write -1 on global disc); (== 9 ==) 8; =V85P104M5; ZERO; NOT; JS255P60; (Restart any OUT19); JS3P193; J10P121; (End if J0); ZERO; NOT; =V0P193; J10P121;(Set J0 flag); 90; (Output stats and FLEX message, entered from P155); M-I5; V3P120; =M0M6N; V93P104M5; 74; =E4M6; V0P0; V53P104M5; -; (Elapsed); JSP57; V5P104M5; DUP; V9P104M5; +; (N E T); DUP; SHA-24; JS1P161; =E8M6; JSP57; REV; ZERO; =V5P104M5; DUP; (Run time); SHA24; JS1P161; =E7M6; JSP57; V1; V24P0M5; SETB33; OR; V0; V1P104M5; (Ending no); OR; V41P104M5; V37P104M5; (Ident); DUPD; JS71; SHLD+24; V24P0M5; V77P104M5; SHL10; J75=Z;M5; =V0P52; (Mag tape input waits for level); 7; V9P0M5; SHL+24; SHL-36; NOT; NEG; SHL+5; =V1P104M5; J22P120; 8; ERASE; JSP194; J9; JS102P29; J10; V2P194; =V1P1; J132P194; 10; ERASE; REV; ERASE; V2P194; REV; JS101P29; J132P194; 9; ZERO; J132P194; P17; (OUT2) JSP62; J2; V9P0M5; SHL+5; =RM6; M0M6Q; =V33P104M5; =M6M0H; J2<=Z; M0M6N; JSP119; SETB200; J3; ERASE; V9P0M5; SHC+24; ZERO; SHLD+10; M0M6; SHL+24; DUP; J5#Z; ERASE; DUP; NOT; NEG; SHL+5; M0M6; OR; (== 10 ==) =M0M6; J6; 5; NEG;NOT;SHL-29; VR; MAX; ERASE; J6V; ERASE; ERASE; SETB220; J3; 6; =V89P104M5; ERASE; (SHC14; JS115P300;); SET2;SET9; ( V0P104; SHLC6; SHL+2; J2P15=Z; (Mag tape); SETB32000; JS10P100; C7TOQ6; 7; JSP138; 6; JS3P29; J35P0; (== 11 ==) EXIT1; 3; (Not mag tape); IM0TOQ7; ZERO; JSP10; PARQ7; ZERO;=TR; C7; =M6; (B program); V0P26M6; SHL-24; SETB607; AND; ZERO;SHLD+45; SHL-4; SHLD+3; -; =C6; V21P104M5; SHCC6; NC6; STR; REV; SHCC6; =V21P104M5; 5; C7TOQ6; JSP27; J7; 1; ERASE; 2; SETB30; JP2; P23V4; (OUT8); V0=0; V1=AV0; (L queue); V2=0; V3=AV2; (N queue); V4=-1; (Marker to initiate p155); J1; 99; V29P104M5; J98>=Z; (Check for termination); 82; V57P104M5; DUP; J86=Z STR; ERASE; 83; SET45; FLOAT; FIX; ROUND; JS80; J82; (Close streams); 86; ERASE; (No more streams open); 87; SETB10; JS114P300; (Clear holdup, probably unnecessary); V29P104M5; STR; ERASE; =V29P104M5; (Clear termination marker); 98; M-I4; DC4; M-I4; DC4; EXIT1; (Retrurn to main subprog); 80; (Close stream, coded str no in N1); DUP; SETAV65P104; M5; +; SHL+16; SET4; OR; REV; JS157; =C7; V57P104M5; SETB177776; SHCC7; AND; DUP; STR; ERASE; ZERO; SIGN; NEG; AND; =V57P104M5; J50P10; 156; (Add to queue); C5; 157; SHL+4; C4; OR; SHC-16; OR; V57P104M5; STR; SHL+1; =M6; ERASE; V2M6; V4; ZERO; MAX; SIGN; AND; =V4; (Sets V4=0 if queue needs processing); DUP; V3M6; DUP; CAB; SHL-16; SHLD-16; ERASE; SHC+16; DUP; =V3M6; =M6; ZERO; =M0M6; =M6; =M0M6; EXIT1; 158; (Check str no and put coded stream in N1); C7; DUP; SETB177710; AND; SHL-3; NEG; NOT; J1P45#Z; SHC-4; ZERO; SHAD+3; OR; EXIT2; 15; ERASE; 16; SETB770; JP2; (Invalid parameters in N1); 18; SETB740; JP2; (Invalid stream number); 19; M0M7; V2P155; NEV; SHL-16; J21=Z; M-I4; DC4; SETB720; JP2; (Invalid last char); 1; Q7; =V19P0; (Restore EDT); JSP62; J16; =Q7; M7; I7; J27#; C7; NEV; J15#Z; ERASE; (Close stream); JS158; J16; =Q7; JS1P139; M7; DUP; NOT; =C7; (Wait for second subprog); (== 12 ==) JS8P196; (Remove progs N2); V57P104M5; SHCC7; J1P45>=Z; M+I4; I4; =+C4; (Check str open); JS80; J99; 27; ERASE; JSP133; J16; (Check parametrs); 29; C0TOQ7; JS1P139; JSP102; (Wait for previous transfer or P105, set CPL); I7; =RM6; M0M6; =C7; J13C7Z; (J if FLEX); V61P104M5; NEG; NOT; DUP; =V61P104M5; J71=Z; (Check access O/P); JS158; J18; DUP; =C5; I4; DUP; =+C4; (Switch to second subprog); M+I4; SHLC5; V57P104M5; DUPD; OR; =V57P104M5; AND; J28#Z; (Stream not yet open); SETAV65P104; M5; +; SHL+16; JS156; (Open); 28; SHC-4; J21>=Z; M0M7; SHL+42; ABS; SHL-43; NEG; NOT; J19#Z; (Check last char); 21; C0TOQ7; ZERO; ZERO; Q7; ZERO; NOT; CONT; DUP; JS156; JS3P29; JS35P0; PMHQ7; (Lock out transfer area); JS2P10; J99; 14; ZERO; JS3P10; I7; =RM6; 13; V56P6; NOT; J14#Z; (Wait if transfer will fill FLEX queue); M7; I7; -; SET8; MAX; ERASE; =C6; (Truncate if more than 8 words); 3; J4C6Z; SET-42; =C5; M0M6QN; 5; SHLC5; SETB77; AND; SET2; J6=; SET4; J6=; (Check not 02 or 04); SETB75; J7#; ERASE; 4; V45P104M5; J8 < Z; (Fail if query); I6=-1; M6; I7; -; =C6; C6TOQ5; 2; J12C6Z; M0M6Q; SET8; =C7; 11; JSP127; J10; J2; 10; SHC+6; DC7; J11C7NZ; ERASE; DC5; J2; 12; V24P0M5; SETB17; OR; 24; JS3P29;JS35P0; C5; NOT; NEG; J4P6; 7; SETB34; NEV; J9=Z; J3C5Z; SET6; =+C5; M0M6; J5; 6; ERASE; 8; SETB730; JP2; 70; ERASE; M-I4; DC4; SETB750; JP2; 71; SETB760; JP2; 9; V45P104M5; J8>=Z; J8C5NZ; J8C6Z; V77P104M5; SHL6; V26P101; SHL1; NOT; AND; J8Z; (Nest too full); E5; 50; JS101; EXIT2;(ZERO); 13; SHL2; SHL-45; J29=Z; (Next empty); ERASE;J50; 14; ERASE; J14NEN; J50; 15; SHL7; SHL-44; J29=Z; (SJNS empty); LINK; J32; 16; SHL7; SHL-43; SET16; -; J29>Z; (SJNS TOO FULL); E5; =LINK; J50; 40; LINK; 17; ERASE; J40NEJ; J50; 29; JS101; EXIT1; (ZERO; NOT;); 102; M5; V7P0; NEV; J1P127=Z; (Exit 2 if next in core); LINK; JS100; REV; =LINK; EXIT1; (EXIT1 if in nest stack); (N1=stack count on exit); 100; (Swap to programmers nest); SET1; SHL41; K7; +; =E3; V13P104M5; DUP; =K3; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; J1P45; 101; (Swap to directors nest); ZERO; SET1; SHL41; K7; +; E3; =K3; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; DUMMY; ERASE; DUP; V13P104M5; NEV; V7P0; =M6; K7; V13P104M6; NEV; OR; SHL-46; J35P0#Z; =V13P104M5; J1P45; P30; (Set Q4 = 2P+2/1/AV1P11+2P+2, for entry to P10); M5; NOT; NEG; SHA+1; DUP; =RC4; SETAV1P11; +; =M4; EXIT1; P31; (Fetch character, result in C7); 8; M0M6; SHLC6; SHL-42; =C7; SET6; =+C6; ZERO; NOT; SHLC6; J2#Z; C0TOQ6; SET1; =+M6; 2; V1P122; ZERO; SHLDC7; SHLD-15; ERASE; J3>=Z; I6; J4#Z; EXIT4; 5; ERASE; 4; EXIT3; 3; C7; SET4; J5=; SETB32; J5=; SETB34; J5=; SETB75; J5=; SET2; J6#;ERASE; EXIT2; 6; SET6; -; DUP;J7#Z;I6=-1; 7; NEG; NOT; J1#Z; I0TOQ6; 1; J8C7NZ; EXIT1; P32; (Fetch number. Result in N1); SETB77600; 1; =Q7; ZERO; 5; DUP; J3=Z; (== 15 ==) ERASE; ZERO; NOT;EXIT1; 2; C7; SETB75; NEV; J4P45=Z; 6; DUP; J4=Z; (Dont J if TINT X or quiet) V24P0M5; =V0; V3; =V5P4; ZERO; NOT; DUP; =V19P0; JS51P10; (Await reply); V2; SHL-36; SETB7137; NEV; J4P45#Z; (Ignore if not Y.); 2; E20M4; =C7; JSP56; JS35P0; 7; V29P10M5; DUP; J1#Z; (J if TINT A suppressed); V0P130; C7; NEV; J3#Z; DUP; NOT;=V0P130; (Clear if dumped); 3; SETB144; JS114P300; (Clear possible OUT19, TINT S and rollout); Q4; JSP30; REV; ZERO; V2P4; SHL12; SHL-42; JS8; =Q4; EXIT2; (Keeps Q4 in case in director subprogram when just overwriting it cases subprogentrys to be lost which is catasrophic if thos levels are in disc Q) 1; DUP; I4; SHL45; AND; SHL1; OR; =V29P104M5; EXIT2; 8; JS2P10; (Now in priority subprogram) SET4; M7; SETB35; NEV; J1P15#Z; =V0P2; J2P2; P34; (TINT B - read integer to E0); JSP38; JSP32; J1P45; V9P0M5; DUP; SHL+36; J3P45=Z; SHL+6; NOT; NEG; =M6; V29P104M5; SETB177376; SHC-3; AND; (Mask out disc Q markers); =V33P104M5;EXIT2; 1; SHL+24; =M0M6H; EXIT2; P35V0; (Reset max number of dumpable levels); V0=4; (Initial value =4); JSP32; J1P45; DUP; SHL-2; J1P45#Z; (Check <4); NOT; NEG; =V0; EXIT2; P37; (TINT E - nominate program tape) JSP32; J1P45; DUP; =M7; DUP; SET7; SIGN; J1P45=Z; (== 16 ==) JSP32; J15;(Reading D2); DUPD;-; J3P45>Z; DUP; SET15;-; J3P45>Z; 16; REV; DUP; PERM;-; SET1;DUP; PERM;+;=RC6;-; =M6; (Q6=D2-D1+1/1/D1=1); 1; V1P26M6Q; DUP; J4=Z; SETB10; J3P45#; M5; SET7; SIGN; J3P45#Z; 4; DUP; J3P45Z; (Jump if top of machine passed); SETAV2P11; =RM4; I4; =C4; SETB3654; JS1P26; J5; ERASE; 6; V0P26M6; SETB24; SHL+18; -; SETB44; OR; DUP; =V0P26M6; SET1; JSP6; (Type new descriptor); C6TOQ7; SETAV0; =I7; SETAV2; =M7; ZERO; M5; SET2; =RM6; V3; =V11; V6; =V12; 7; V8; REV; FRB; V9; +; J8C6Z; =V11M6Q; 10; ZERO;SHLD+16; J7; 8; SET2; OR; =V11M6; ERASE; ZERO; NOT; Q5; =V7; JSP10; SET3; =RC6; #11; V11M6; =V0M6Q; J11C6NZS; PWQ7; V7; =Q5; J9C5Z; M0M5Q; SET2; =RC6; J10; 9; C7; =M6; V0P26M6;SHL-6;SHL+6; SETB24; SHL+18; +; DUP; =V0P26M6; SET1; JSP6; EXIT2; 5; V5; V4; V3; SET3; JSP6; ZERO; NOT; DUP; STR; NEV; DUP; SET3; OR; Q5; =V7; JS2P10; V7; =Q5; J6; 13; ERASE; 12; ERASE; 3; ERASE; 1; ERASE; 4; EXIT1; P48; (TINT P P60 switch on job organiser P61 switch off jo P62 dont as react on on-line jobs P63 ask react always P64 switch on jo message P65 switch off jo message ); JSP32; J1P45; SETB60; -; DUP; J1P45=Z; DUP; =RM5;SET4;REV; -; =C5; JS15;J11;SHL+46; =V77P104M5; V7; STR; ERASE; =V7; (Cleared stored TINT T marker); C7; SETB54; J12=; SETB55; J117=; SETB60; NEV; 13; =V3; C7; SETB56; NEV; J115=Z; 116; V10P45; V0P117; -; SETB77740; JS1P32; J3P45; DUP; J3P45=Z; NEG; NOT; SHL-5; NOT; NEG;SHL+5; VR; MAX; ERASE; DUP; SHL-32; REVD; PERM; -; J25Z; 7; V5P104M5; DUP; V9P104M5; +; 5; JSP57; REV; JSP57; V23P0; DUP; V9P0M5; SHL+38; SHL-33; FRB; REV; SHL-17; OR; SHL+12; (BA); V41P104M7; DUP; PERM; SHLD-12; ERASE; REV; V37P104M7; SHL24;SHL-24; SHLD-12; C5; =M7; SET4; =+M7; 3; M5; SETB20; OR; SHL+10; OR; (Priority); V25P104M5; SHC-6; J8Z; 12; J7C6NZ; ERASE; V0P26; =Q6; 3; SETB10544; JS2P26; J4; ERASE; PMBQ6; J3TR; (L, not on BT); SETB4000; JS10P100; J3; 4; V0P26; =Q6; J6; ERASE; PMBQ6; J5NTR; (U, on BT); SETB32000; JS10P100; J5; 8; V16P0; (== 22 ==) 6; V19P0; OR; E7; =Q6; EXIT1; 11; (Fail this for exessive time); Q6; Q5; Q4; M-I6; Q6TOQ5; V97P104M5; SET5; +; =V97P104M5; (Allow time for restart); ZERO; JS41P41; DUMMY; DUMMY; DUMMY; =Q4; =Q5; =Q6; J12; 255; (Restart any OUT19 suspended progs, J1#O if start to be forced); Q5; REV; SET4; =RC5; 254; V25P104M5; SHC-7; J253>=Z; JSP30; E20M4; DUP; =Q7; J250=Z; ZERO; =TR;BUSYQ7; JSP128; TLOQ7; J252NTR; (Go if no lockout); 251; E10M4; V0P0; -; J253>=Z; Q7; J252=Z; CTQ7; (Kill); JS247P196; 252; Q5; SETB100; JS114P300; =Q5; (Release prog); V0P0; E30M4; -; V9P104M5; +; =V9P104M5; 253; M0M5Q; ERASE; J254C5NZ; ERASE; =Q5; JP30; 250; DUP; J251=Z; J252; (First J if not forced); P61; (OUT 10); ZERO; =V45P104M5; JS3P29; J4; V32P1; SHL-1; J4=Z; V0P1; V3P155; J11=; DUP; J2=Z; DUP; JSP122; J5; J3#Z; 5; DUP; JSP132; J3; V1P1; DUP; JSP122; J6; ERASE; J3#Z; 2; V1P1; J3#Z; 7; ZERO; NOT; SHL-3; 6; REV; JSP58; JSP138; C6; JSP131; =M6; V-18P101M6; JS3P29; J35P0; V45P104M5; J8#Z; JS3P29; J35P0; J10; 8; ERASE; 10; JS2P29; J35P0; EXIT1; 3; ERASE; 4; SETB110; JP2; 11; V25P101; JS1P161; V1P1; NEV; SHL6; J5#Z; ZERO; =V25P101; J5; P62; (Initial housekeeping for OUTS 2,4,8. Erase out no., check at least 1 other item in programs nest); JS3P29; J35P0; V32P1; J4P45<=Z; V0P1; DUP; EXIT2; P64; (OUT 17); V5P104M5; DUP; V9P104M5; +; 2; =V0P1; JS2P29; J1; EXIT1; 1; SETB40; JP2; (Fail nest full when OUT17 obeyed); P65V2; (OUT 50 and related topics); V0=B2020212077770064; (Header word for stats block, used in P155); V1=P /X#E; (Skeleton job descriptor, used in P15); V2=P *SYSTEM; (Used in P52); I4; SHC-11; V77P104M5; OR; =V77P104M5; (Show OUT50 done); ERASE; (Erases the out number, see P3); JSP62; J10; ERASE; JSP133; J10; I7; =M7; M0M7; V3P120; NEV; SHA-1; J10#Z; SET7; =M7; M+I7; (== 23 ==); JSP139; JSP102; (Wait, see ref 29P23); JS3P29; JS35P0; (Remove N2); M+I4; (Put Transfer in OUT8 queue); J99P23; (End of OUT1); 2; PMHQ7; I7; 3; SETAV65P104; M5; +; SHL+16; OR; ZERO; JS157P23; (Put item in OUT8 queue); J50P10; (Await end of transfer); 10; (Invalid or wrong date); SETB700; JP2; P66; (OUT51- overwrite job no.); ERASE; SETAV93P104; 1; =M7; JS8P196; JS1P29; JS128P196; =M7M5; EXIT1; 14; (OUT 14); SETAV61P104; J1; 15; (OUT15); SETAV61P104; J1; 19; (OUT19); JS8P196; JS1P29; JS128P196; DUP; J191=Z; V30; SET1; JSP6; J2P100; 5; (W becomes L) ZERO; 51; ZERO;NOT; =V0; SETB17765; J43; 6; (W becomes L, nothing typed) ZERO; NOT;J51; P102; (Hold up subprogram until peripheral transfer in programs area can be obeyed. Parameters given in Q7) SET1; JSP10; 2; Q7; JSP103; J1; =Q7; EXIT1; 1; SET1; ZERO; CAB; JS2P10; J2; P103; (Check parameters in N1 before peripheral transfer which may involve programs area) SET4; =RC6; 1; J2C6NZ; EXIT2; 2; V9P0M6Q; JS1P300; DUP; JS108P300; J1; V8P0M6; DUP; SHL-24; J1P45#Z; 3; SETB30000; AND; SETB140000; OR; =K1; ERASE; EXIT2; (For actual p104 see in front of P11 V0=B01010101/23; (HUR) (V1 onwards= constants associated with priorities, in groups of 4) (V1-4= overflow and TR record, etc. V5-8= run time V9-12= PHU time) V13=B0141/11; (NS counters etc.); V14=B2141/11; V15=B4141/11; V16=B6141/11; V17=1; V18=1; V19=1; V20=1; (CPDAR); (V21=24 = A program unit pre-allocation. For B programs, records types to be pre-allocated on dellocation by OUT 6) V25=2; V26=2; V27=2; V28=2; (Hold-ups); V29=5; V30=5; V31=5; V32=5; (APM); (V33-36= Dump for E0 V37-44= Current program name V45-52=New program name, transfer parameters, OUT4/10 marker, etc. used (== 26 ==) only by main subprogram. V53-56=Program start time V57-60=Streams used by proram V61-68=Serial number of prog on tape) (V69 D0-15 System discs D16-31 32-47 Non system discs V73 Correspondence between logical and actual discs V77 D0 System marker D1 D2 OUT 41/42/43 Obeyed D3 Parity V81 D0-16 OUT43 selection marker D32-47 last seek requested V85 D0-15 D32-47NOC for OUT46 D16 last C block D17-31 length of block V89 input store for NOC); (V93-V96 job desc, of progs); (V97.. top half CPU time allowed for job, bottom half PHU time allowed for job. Overides E1 time for CPU, does restart on job if PHU time exceeded(as V9P104),set by OUT15); End of dummy P104); P105V2; (Consolidate core storage and swop priorities. Upgrades A priorities automatically if needed) (V1=Q no. of quartets in P104/4/AV1P104, set up by P200); V2=Q 4/10/AV3P11; V0; J4P54=Z; 6; ZERO; =V0; SET4; =RC5; 2; V9P0M5; 3; DUP; SHL+38; J5=Z; DUP; JS107P300; J4; (Test for store move) DUP; SHL+14; SHL-38; J5=Z; (ZERO; NOT; =V0P193; (Set JO marker);) (Move program in store) Q7TOQ4; I4=-1; DUP;SHL+14; SHL-38; SHL+5; I7; -; DUP; =M6; I4=+1; #7; M0M4;=M6M4Q; #J7C4NZS; (Alter value of base address) ZERO; REV; SHC-24; SHLD-10; SHC+24; SHLD-38; ERASE; (Alter affected parameters in OUT 8 q) 107; 61; (Alter affected parameters in FLEX q) SETAV0P6; =RM4; 8; M0M4; NOT; J9=Z; M0M4; JSP127; JS109P300; =M0M4Q; J8; 9; (Alter affected SHUPS) SET10; =RC4; 10; V1P11M4Q; J11Z; (J if too much); V10P0; V11P0; V12P0; OR; OR; SHL38; J1P45#Z;(J if others in MC); 20; SHL14; V9P0M5; +; =V9P0M5; ZERO; J1P24; 19; (Store to be reduced); DUP; NEG; V9P0M5; SHL24; SHL-38; -; J1P45>=Z; J20; (Not quite as bad as 1st bit); P300; (Old seperate P routiens); 106; (Given BA/NOL, set C7= no. of words occupied, I7,M7= first and last addresses occupied) DUP; SHL+38; SHL-33; DUP; J10#Z; =Q7; ERASE; EXIT1; 10; DUP; =I7; =M7; SHL+24; SHL-38; NOT; NEG; SHL+5; DUP; =C7; NEG; NOT; =+M7; EXIT1; 107; (Given BA/NOL, set up Q7 as in P106, and test lock-out on progrms area) ZERO; =TR; JS106; TLOQ7; J4P45TR; EXIT2; 108; (Given transfer paramters, test for I >= I7 and M <= M7) ZERO; REV; SHLD-16; SHL+32; SHLD-32; I7; SIGN; M7; CAB; SIGN; OR; J4P45=Z; V8P0M7; =V0M6; ZERO; 3; ERASE; 4; J2C7NZ; ERASE; V0M6Q; J1C6NZ; ERASE; EXIT1; P117V0; (Set in N1 parameters for space between B and A programs, as C= no. of words, I,M= first and last addresses) JSP116; SET4;=RC7; V10P45; 1; V0P116M7; DUP; JS115P300; J2=Z; V0P116M7Q; V0P104; SHLC6; SHL+2; J3=Z; V29P104M5; SHL+1; J20>=Z; 24; SET9; J121; 25; (Program not on tape) C7; =M6; JSP135; ZERO; =V1P52; J19; 105; C7; =M6; JSP135; J22; (Abandon search); 21; V29P104M5; SHL+3; ZERO; NOT; CONT; SHL-3; =V29P104M5; V0P26M6; SHL+24; SHL-42; SETB43; NEV; J19=Z; ZERO; V0P26M6; SHL+24; SHLD-30; SHL-12; SETB54; NEV; OR; J20#Z; V0P26M6; JSP55; OR; =V0P26M6; 23; IM0TOQ7; PMAQ7; ZERO; JSP10; V29P104M5; SHL+3; J105>=Z; PARQ7; J28TR; 28; PMFQ7; J25TR; PMCQ7; J23NTR; JSP126; JSP102; PIAQ7; ZERO; JSP10; PARQ7; J29TR; 29; PMCQ7; PMFQ7; J25TR; I7; =M6; M0M6; V45P104M5; JSP137; M0M6N; V49104M5; JSP137; OR; J23#Z; 30; (Read B-block) JSP102; PIAQ7; ZERO; JSP10; PARQ7; J3INTR; 74; SET4; JP12; 81; V49P104M5; V45P104M5; SHL24; SHL-8; SETB135371; SHLD-16; ERASE; V24P0M5; SET3; JS4P6; J20P121; (Nod gives CRNP message); 69; (Binary archived); ZERO; NOT; SHL-3; REV; JSP58; (Request tape); J24C6Z; V0P26M6; V45P104M5; SET9; SHL18; DUP; SHL12; +D; =V45P104M5; SHL-6; SHL6; =V0P26M6; (Change D to M and C to L); C6TOQ7; J21; 82; (Program to be read from disc); ERASE; V89P104M5; V29P104M5; SHL37; J182Z; 133; V1P104M5; =Q7; JSP126; I7; =M6; DUP; J63<=Z; ZERO; ); 33; ERASE; DUP; M0M6N; OR; =M0M6N; 34; NEG; NOT; SHL-5; 35; DUP; V9P0M5; SHL+24; SHL-38; SIGN; J38<=Z; Q7; JSP117; J36; SHL-32; SHL+9; V9P0M5; +; =V9P0M5; =Q7; J35; 36; REV; =V1P104M5; V77P104M5; SHL+7; JP130=Z; V0P76; J42#Z; 86; I7; NEG; NOT; DUP; =I7; =M6; M0M6; =V37P104M5; (Preserve word which will be overwritten by N.O.C.); M7; I7; -; SET3839; -; J85>Z; JSP102; V89P104M5; JS84; J78; I7; =M6; I4; =+I7; M0M6; (N.O.C.); V37P104M5; =M0M6; =V89P104M5; 42; M7; I7; DUP; =RM6; -; =C6; V1P104M5; #51; J52C6Z; M0M6Q; +; J51C6NZS; 52; E20M4; SHL-32; J40#Z; (== 32 ==) (Check C-block sum) M0M7; NEV; V9P0M5; SHL+5; =M7; M0M7; SHL+24; J53=Z; SET3; REV; JP121#Z; 53; (Dispose of input unit) ERASE; J47C7Z; C7; =M6; V0P26M6; SHL17;J43=Z; JS3P29; DUMMY; DUMMY; DUMMY; 183; JS5P29; J50; ERASE; V77P104M5; SHL12; J200=Z; (CRNP failure in OUT 1); SET5; J1P15; (CRNP in OUT1 does not say FAILSIO); 2; V2P52; =C7; J3C72; MANUALQ7; ZERO; =V2P52; 3; V0P26; =Q6; 4; M0M6Q; ERASE; J10C6Z; JSP125; J4; JS1P27; (Make unit U); J4; 10; (Clear BA/NOL, PHU, etc.) ZERO;=V77P104M5; (Clear disc allocation and other markers); ZERO; =V37P104M5; ZERO; =V41P104M5; ZERO; =V33P104M5; V9P0M5; DUP; JS115P300; DUP; SETB147777; SHL+3; SHL-3; NOT; AND; JSP136; V0P104; SHCC6; SHL+4; NC6; SHL-4; SHCC6;=V0P104; EXIT1; P122V1; (Check given word as mag tape identifier) V0=B3252326532563253; V1=B377727377777777/43; DUP; SETB77; AND; 1; =C7; DUP; J1P45=Z; 2; V1; ZERO; SHLDC7; REV; ERASE; SHL+27; SHLD+6; DUP; J1=Z; DUP; SHL+1; SHA-44; J4P45=Z; (The SHA is changed from SHA-38 in a desperate bid to et KKT92P1 to work); 1; EXIT2; P128; (Add base address of priority in M5 to I7 and M7) V9P0M5; SHL+38; SHL-33; DUP; =+I7; =+M7; EXIT1; P130V0; (Handle foreground jobs); V0=-1; (Letter of dumped job); V0; J136P120>=Z; (J if if one level already dumped); V1P104M5; V9P0M5; SHL+24; SHL-38; -; (== 34 ==) V0P35;=RC6; 1; DUP; V9P0M6Q; SHL+24; SHL-38; -; J2>Z; (J if no big enough); V76P104M6; SHL+7; (Look at foreground marker and OUT40); V24P104M6; SHC-2; (Lok at subprog activity bit and absent bit); OR; DUP; SHL+1; OR; J3>=Z; (J if OK to roll out); 2; J1C4NZ; 5; ERASE; J136P120; (Wait and come round again); 3; M-I6; M5; JS4; =M5; JSP30; J5; 4; M6TOQ5; JSP30; V9P0M5; JS106P300; JSP55; =V0; JSP139; JSP102; (Wait for no lo and no 2ND subprog); (Now OK to dump); ZERO; 6; DUP; DUP; SET96; +; DUP; =E31M4; (SHUL* of sec subprog); SET40; *D; CONT;(Extent of max transfer); VR; V9P0M5; SHL+24; SHL-38; NOT; NEG; SHL+5; MAX; ERASE; (Leaves size of transfer in N1); (VR set if this is last transer); NEG; NOT; (High address of transfer); REV; (Strat sector); SET40; *D; CONT; SHL+16; (Low address); OR; REV; SET1152; +; (Strat dump on track 12); J7V; (J if last time); JS10; E31M4; J6; 7; (Last time); JS10; V9P0M5; DUP; SHL+5; =M6; DUP; =E2M6; SHC+24; SHL+10; SHC+14; =V9P0M5; (Sets NOL = 32 words); SET1152; =M0M6N; JS13; SET7; =RM6; Q6; SET33;JS10; (Put entry for JO on disc); SETB40; J113P300; (Hold up obj pro); 10; (Write on global disc); SET768; +;LINK; J234P196; 12; (Invalid OUT25); SETB670; JP2; 50; (Swop levels - only available to JO); DUP; SHL+16; SHL-32; REV;=LINK; LINK; JS1P54; JS247P196; J8P196; (Set TR if swop not possible); 25; (OUT25, restore dumped prog if D0=0, swop levels if D0=1); (Used by JO, N2=Q-/LO/HI of prog now in store); JS3P193; J11; SETB10; JP2; (Fail 01 if not JO); 11; JS3P196; J50=Z; (If no TINT J); JSP161; SET9; =RC6; SET3;=I6; SHC+6; NEG; NOT; SHC-6; #98; V5P101M6Q; J96=; 97; J98C6NZS; J91; 96; V3; V1P101M6; NEV; J97#Z; C6; NEG; =M6; V15P26M6; SHL+24; SHL-42; SETB65; NEV; J90#Z; (J if tape still on machine); 91; (Switch); SET4; =RC5; V0P161; NOT; NEG; =V0P161; V-1; =V4; 95; V57P104M5; DUP; ZERO; SIGN; NEG; CONT; =V57P104M5Q; J95C5NZ; V2P23; DUP; =V0P23 V3P23; REV; J92#Z; SETAV0P23; SHLD-16; ERASE; SHC+16; 92; =V1P23; ZERO; =V2P23; SETAV2P23; =V3P23; J93; 162; SETB7777; 163; V2P161; CAB; JS2P161; SHL+12; OR; SHL+6; C5; OR; SHL+6; V12P104M5; SHL-46; SHL+3; NEG; =C6; V0; SHLC6; SETB77; AND; OR; EXIT1; 90; ERASE; 100; V3P22; SET2; =M4; =Q7; J102C7Z; BUSYQ7; J4P45TR; V2P23; DUP; J1P45=Z; 1; METQ7; J112TR; 7; PARQ7; ZERO; =TR; DUP; =Q6; DUP; J11=Z;M7; I7; -; JS162; =M0M6; 4; MWQ7; 5; EXIT1; 254; (If punch then do gap); C5; SHC-4; J12=Z; V100P104M5; =M0M6QN; V108P104M5; =M0M6QN; V112P104M5;J31 25; SETB02; 31; =M0M6QN; C6; NEG; JS162; =V7; 32; M6TOQ7; J4; 22; ZERO; C5; SHLD-3; SHL+4; V6; OR; SHLD+15; =M0M6QN; ERASE; V0P57; SHC+12; V0P0; SHA-24; SET30; +; FRB;V23P0; SHL+1; OR; V1; SHLD+18; SHL-6; SHLD-36; ERASE; SHC24; =M0M6QN; SETB170202; J31; 101; (L queue empty); ERASE; V57P104; V58P104; OR; V59P104; OR; V60P104; OR; J100=Z; (J if ELDON will not print tape); V0P161; =V25P101; J255; (Store serial number for OUT 11); 253; Q7; SET16; SET288; JS1P193; J90; (J if nogo); JSP126; V0P161; =M0M7N; (Put reel no tape in E8 of prog); =Q7; 255; M0TOQ4; 107; SETAV5; DUP; =I7; =M7; MLWQ7; V1P23M4; SHL+32; SHC+16; =V1P23M4; C7; =M6; JP135; 102; (No N tape); V2P23; J4P45=Z; I7; J4P45=Z; (J if no queued TINT T); JS5P4; (Enter TINT routine to attempt prog input); 9; V26P101; J4P45=Z; (J if foreground job); 8; ERASE; V0; J10=Z; (J if no JO req); 13; SET2048; JS1; EXIT1; 6; ZERO;=V0; V0P0; =V2; V26P101; SHL2;J4P45Z; (Exit if nogo); 2; (Input prog without store availability check); JS18P52; J3P45; V0P52; NOT; J3P45#Z; (Exit if prog input in progress); (Now OK to go); JSP30; I7; SHL-5; JSP118; =V1P104M5; I4; SHC-7; =V77P104M5; (Suppress FLEX output); JS19P52; (Initiate input); EXIT2; (EXIT2 if prog initiated); 3; (Check for JO, exit if JO); V41P104M5; V37P104M5; 4; (Ditto ident in N1,N2); SHLD-30; ERASE; V17P254; (JO ident); NEV; J4P45=Z; EXIT2; 5; V49P104M5; V45P104M5; J4; (As 3 but during prog input); 7; V0P130; J8>=Z; (J if there is already a foreground job running); JSP117; J3P45; ERASE; JS2; EXIT1; ZERO; NOT; =V1; SET73; SHC-8; =V77P104M5; (Set foreground); J6; (To clear V0 and give monitor message); 10; (If time since last JO >4 mins then call JO); V0P0; V2; -; SHL-32; J1P45=Z; J13; 11; (OUT11, transfer from absolute address, used by JO); JS3P196; ERASE; JSP133; JSP196; JS1P139; V45P104M5; SHL-32; =RM6; M7; I7; DUP; =RM7; -; NOT; NEG; =C6; 111; M0M6Q; =M0M7Q; J111C6NZ; J8P196; (Copy core and go); (== 40 ==) 12; (OUT12, set up table in upper core store); JSP117; J112; ERASE; JS2P196; ERASE; C7; REV; JSP133; J114; V6P120; =RM6; I6=-1; M7; I7; -; NOT; NEG; DUP; =C7; -; J112=Z; (J if find or OUT 28); NEV; SHL-6; SHC-12; SHL-12; J23; (Ignore mod butno wild -); 22; JSP137; (For find do NEV with wild -); 23; J17#Z; (fOUND); V-1P197M7; =V2; (Keep ID2); V0P197M7; (FOC); =V0; E20M4; DUP; NOT; J8=Z; ROUND; J200>=Z; (Delete); ZERO; V2P197M7; V3P197M7; JS19; JS29; (Set empty); (Only set 1st wd #Z if more entries in same sector); J101; 8; ERASE; JS14; JS29; 101; JS2P199; V0; EXIT2; 200; (Mark prog used); V0; SHL19;J101=Z; (Check no OUT40 on); Q0TOQ7; JS1P139; (Await 2nd subprog); 17; ZERO; JS1P199; (Await fixed head access); V0; (Start on same sector as last allocated block, OUT29 resets); 10; =E20M4; JS5; (Read ASL sector); E20M4; DUP; NEG; NOT; SHL-2; SHL+5; DUP; V45P104M5; NOT; SHL-42; AND; SHL-3; OR; SET40; REV; -; =RC7; (Set up loop); (Keeps 2 cylinders for user discs); V45P104M5; J211=Z; NEG; (Max NOL in N1); SHLD+24; DUP; =M7; (Required BA); MAX;ERASE; M7; OR; SHC-24; (Actual BA/NOL); =V85P104M5; VR; J147P196; (Reset EDT and erase N1); 40; (OUT40, inhibit other levels from disc); JS3P196;JS8P196;ERASE; SHL-47; =Q7; JS1P139; Q7;J140=Z; V77P104M5; SHL+8; JP45=Z; 3; (Reset EDT); Q7; =V19P0; (Check nest); JSP62; J128; EXIT1; 128; SETB510; J4; 129; SETB10; 4; LINK; ERASE; JP2; 5; SETB600; JP2; 7; *D; 17; =LINK; ERASE; (Spare item in SJNS is removed later on); 6; SETB560; J4; 9; ERASE; SETB550; JP2; 21; (OUT21); 31; (OUT 31); ZERO; NOT; J127; 22; (OUT 22); ZERO; 127; =V49P104M5; JS2; 132; ERASE; V73P104M5; STR; ERASE; 130; =E20M4; JSP133; J5; C0TOQ7; JSP102; JS1P139; V45P104M5; SHL-32; SETB17700; AND; E20M4; V49P104M5; JP198; 100; ERASE; ERASE; SETB650; JP2; (Invalid global address); 23; (OUT23); JS2; ERASE; JS126; 147; Q7; =V19P0; 8; JS3P29; JS35P0; EXIT1; 126; JS10; =V73P104M5; EXIT1; 10; ZERO; SHLD+4; JS101; REV; SHL-42; SHL+9; OR; EXIT1; 30; (OUT30); SET1;=V49P104M5; JS3; ERASE; ZERO; J130; 32; (OUT32); JS3; ERASE; JS126; ZERO; =V49P104M5; JS3; J132; (== 44 ==); 41; (OUT41, write to user disc); JS3; ZERO; NOT; J142; 42; (OUT42, ditto but read); JS3; ZERO; 142; =V49P104M5; SHL-32; DUP; V77P104M5; SHL+16; DUP; SHL+1; +; ZERO; SHLD-16; SHL+8; J236; (Changes disc to sector no); 143; SET96; *DIVI; =I7; SET16; *DIVI; REV; SHL+9; REV; JS10; OR; REV; SHL+10; I7; SHLD-10; ERASE; REV; J130; 47; (OUT47); JS147; Q0TOQ7; JS1P139; V77P104M5; SHC+2; DUP; J1P45>=Z; STR; ERASE; SHC-2; =V77P104M5; 247; V1P104M5; DUP; SHC+1; J1P45=Z; (Check disc address not too big); 138; J143; 34; (OUT34); JS3; ZERO; J136; 36; (OUT36); JS3; SHL-32; SET768; +; ZERO; 234; =V49P104M5; J143; 70; +D; ERASE; ERASE; JS8; J247; P197V41; (Transfer fixed head sector); (N1=sector, N2=SJNS count); V0=QB16/AV1/AV40; V18; (Max number of system discs allowed, the only chnages necessary to increase this are in this routine); 100; DUP; V0; SHL-32; NEV; SETB17700; AND; J4P56=Z; (Does EXIT2 if sector already present); 3; V0; =Q7; SETB100016; OR; =C7; Q7; =V0; NOT; NEG; (Add 1 to SJNS count); DUP; =V41; JSP199; 11; V0; SHL-32;=C7; JS14P199; PICQ7; JS6P199; EXIT1; J11; EXIT2; 5; ZERO; 4; (Form sum check); SET40; =RC7; #10; V1M7Q; DUMMY; DUMMY; NEV; J10C7NZS; EXIT1; 2; (Write ASL sector); JS5; V0; SHL+3; SHL-41; =M7; =V1P195M7; #1; (Write to disc); NOT; NEG; DUP; =V41; Q0TOQ7; JSP199; 12; V0; =Q7; JS14P199; (Check on disc Q); POCQ7; JS6P199; EXIT1; J12; EXIT2; P198; (Transfer to disc); (N1= -1 write, 0 read, +1 FH read, N2=posn. N3=sector); SHLD+16; SHL+16; OR; OR; DUP; =Q6; DUP; =E21M4; =E20M4; (== 45 ==); 1; SETB14000; M6; -; SET40; SHC-7; *; I7; +; M7; SIGN; J10<=Z; V77P104M5; SHC2; STR; ERASE; SHC-2; =V77P104M5; (Clear parity); C6; ABS; SHL-1; J9#Z; JS8P196; M+I4; I4; =+C4; (Erase progs N2, switch subprog); PMHQ7; (Set LO to preserve area); 9; ZERO; JSP199; (Wait in queue); 12; E20M4; DUP; SHC+16; =Q6; SETB16; OR; =C7; M6; DUP; NEG; NOT; J4=Z; JS4P199; DUP; J2=Z; DUP; SETAR15P15; NEV; SHL32; J15=Z; POAQ7; NOT; J3=Z; (Checks for read in P15); 16; ZERO; JS5P199; J14; J12; 14; E20M4; SHC+16; =LINK; EXIT1; 4; JS14P199; PICQ7; J13; 2; PIAQ7; 13; ERASE; 3; ZERO; JS5P199; J99P23; J12; J99P23; 15; ERASE; PIAQ7; J16; 10; SETB500; JP2; P199V3; (Share out disc); V0=-1; (FH Q); V1=-1; (Disc Q); (V2 last seek address); (V3 last read address); (Await disc); Q0TOQ6; V1; DUP; DUP; SHL+1; AND;(-ve if Q empty); V77P104M5; SHL+8; (-ve if Q suspended by this level); OR; (-ve if OK to go ahead with transfer); J11>=Z; C4; SHLD+42; =V1; J3P45; 11; DUP; V23P0; SHL+1; AND; ZERO; FLOAT; FIX; =C7; ERASE; C4; NOT; SHL+42; NOT; SHCC7; AND; =V1M6; SETB100000; =C7; NOT; NEG; JS3P10; EXIT1; 1; (Await access to fixed heads); I4; SHC-3;V29P104M5; OR; =V29P104M5; ZERO; NOT; =Q6; V0; V0P197; DUP; ZERO; NOT; CONT; =V0P197; J11=Z; ERASE; V0P197; STR; ERASE; =V0P197; EXIT1; 3; (Allow disc access if free, entered every EDT); V1; DUP; =TR; SETB16; =C7; BUSYQ7; J1P45TR; Q0TOQ6; DUP; SHL-43; NEG; NOT; =M5; PARQ7; J16NTR; V77P104M5; SHL2;J21>=Z; V2; DUP; NOT;J71=Z; V3;SHL3; ZERO; SHLD3; JS72; SHL24; REV; SHL-44; JS72; OR; SHL6; REV; DUP; ZERO; SHAD6; JS72; PERM; SHL-44; REV; SHL-47; SHL3; OR; JS72; SHL24; OR; SHL6; J73; 71; ERASE; V3; SHL3; SHL-41; JS72; SETB100465; SHL9; SHC24; 73; V30P101; SETB4407; SHC-12; NEV; V24P0M5; SET4; JS4P6; 21; SET; SHL+44; V77P104M5; OR; DUP; =V77P104M5; SHL+2; J18>=Z; 16; JS13; (Clear HU for completed transfer); 19; V1; DUP; J1P45=Z; (EXIT2 if fist parity); EXIT1; 4; SETB16; =+C6; BUSYQ6; J35P0TR; PMAQ6; Q6; 24; =V2;Q7; =V3; EXIT1; 14; BUSYQ7; J35P0TR; ZERO; NOT; J24; (FH); 72; SETB1212; REV;FRB; SETB2020; OR; EXIT1; P2939V0; (OUT13); V0; SET99; J14=; 13; DUP; =V0P1; NOT; NEG; =V0; EXIT1; 14; ERASE; ZERO; J13; 52; (OUT52); ERASE; V1P1; =V101P104M5; V2P1; =V109P104M5; V3P1; =V113P104M5; V9P104M5; V5P104M5; SHA-24; SHLD+24; NOT; NEG; =V105P104M5; ERASE; EXIT1; 53; (OUT53); ERASE; J51; SHA-24; REV;SHA-24; REV; V0P1; J2P64=Z; V40; C7; SHLD-3; SHL+3; OR; SHC+21; =V37; 107; JSP32; J108; =C7; ZERO; NOT; 109; =V38; C7;SHL+4; J102#Z; SET7; V37; C7; SHLD-3; SHL+3; OR; SHC+9; C7; =M7; DUP; =V0P26M7; SHL+17; J110Z; V38; J107#Z; J100; 108; DUP; =C7; J100=Z; J10C5Z; JSP204; J9; DUP; SET100; SIGN; J9>=Z; DUP; SET64; SIGN; J9=Z; SET3600; *D; ERASE; =Q5; JSP204; J12; DUP; SET60; SIGN; J12>=Z; SET60; *D; ERASE; Q5; +; SHL+24; =V0P0; V0P0; =V2P193; (Dont start JO immediately); E2; SHL-24; SHL+12; SETAV3P101; OR; SHL+12; SETAV0P104; OR; =E2; (Set up word 2 for OUT 11); J23P0; (Enter Director PROPER); 70; ERASE; ZERO;=V41; 60; SET8; J61; 200; V29P0; OR; =V29P0; EXIT1; P201; (Type message); 1; K4; ERASE; BUSYQ5; J1TR; POBQ5; EXIT1; P202; (Type query direct); JSP201; M5; I5; DUP; NOT; NEG; =RM5; -; 1; K4; ERASE; BUSYQ5; J1TR; PARQ5; =C5; J6TR; 2; SET8; J3C5NZ; =TR; 6; EXIT1; 3; =C6; M0M5Q; 4; ZERO; SHLD+6; SETB75; J5=; DC6; SETB37; SIGN; SHC-1; NOT; =TR; J4C6NZ; ERASE; J2; 5; ERASE; ERASE; J6NTR; EXIT2; P204; (Fetch decimal number); SETB77740; J1P32; P206; (Read prog.1st); V34P200; =Q5; SET16; =RC6; 1; PIBQ5; 2; K4; ERASE; BUSYQ5; J2TR; PARQ5; J102P200TR; Y2; Y1; DUP; JSP119; J102P200; J102P200; SHL+47; PERM; SHLD-30; ERASE; OR; =V0P254M6Q; J1C6NZ; EXIT1; (== 49 ==); P208V9; (OUT8,COPLOT,STREAM,COUNT); V0/1=P *GCN*UOUT#8#REEL#NO.QQ*U; V3/4=P *QCNN*USTREAM#COUNT*QQ*U; V6/8=P *QC8N*UCOPLOT#REEL#NO*QQ*U; V41P200; J3=Z; SETAV0; =RI5; SETAV2; =M5; JSP202; JP208; SETAV2; =Q6; JSP204; JP208Z; (j IF PRIME n); (Select track 0 of global); SET3840; =RC4; #51; ZERO; NOT; =Y3840M4Q; #J51C4NZS; 68; V0; =Q5; POAQ5; JS12; JS100; EXIT1; 69; (Clear any jobs which were going on when Director put in); V0; =Q5; PIAQ5; JS12; J100; V20; =Q15; #64; M0M15Q; NOT; J65#Z; 67; J64C15NZS; J68; 65; M-I15; M0M15N; SHL-24; SET40; *D; CONT; =RM14; SET39; =C14; ZERO; NOT; DUP; =Y3840M14Q; #66; ZERO; =Y3840M14Q; #J66C14NZS; DUP; =Y3840M14; DUP; =M0M15; DUP; =M0M15N; DUP; =E2M15; =E3M15; M+I15; J67; 61; V18; J62#Z;J63; 120; ZERO;NOT; =V21; (Show primed and mode X); 20; (Prime); ERASE; 62; JS7; (Write empty PPI); JS12; J100; V21; DUP; =V0P76; (Set primed or not if Y or X); ZERO; NOT; SHL32;=Y3968; SETB13200; =Y3969; ZERO; NOT; DUP; =Y3841; DUP; =Y3842; SHL12; =Y3843; J150=Z; (J if prime Y); SET128; =RC5; (For mode X set ASL all ones); 236; ZERO; NOT; =Y3840M50; J236C5NZ; (ASL set up for prime X); J150; 7; V4; =Q5; POCQ5; EXIT1; (Write back new PPI and exit); 11; SETAV9; =RI5;M+I5; JSP201; J111; 12; K4; ERASE; BUSYQ5; J12TR; PARQ5; J4P45TR; EXIT2; 100; SETAV10; DUP; =R15; =R5; JSP201; J103P200; P210V14; (Compute day of week); V0=B 03 36 14 62 50 35; V1/2=P SUNDAY*QDQ*U; V3/4=P MONDAY*QDQ*U; V5/6=P TUESDAY*QQ*U; V7/8=P WDNSDAY*QQ*U; V9/10=P THRSDAY*QQ*U V11/12=P FRIDAY*QDQ*U; V13/14=P SATDAY*QDQ*U; M5; DUP; NOT; NEG; REV; NEG; NOT; SHL-2; +; SET12; C5; -; SET-3; *D; CONT; =C15; V0; SHLC15; SETB7; AND; *; C5; SET2; -; (== 51 ==); J1<=Z; M5; SET3; AND; J1#Z; NOT; NEG; 1; I5; NEG; NOT; *; SET7; *DIVI; REV; ERASE; DUP; JS200P200; SHL1; SETAV1; *; DUP; =RI15; NOT; NEG; =M15; 2; Q15TOQ5; JSP202; J2; M0M15; SHL-42; SETB71; NEV; J4P45#Z; EXIT2; P297V0; (Simulate PPI in core); V0=40/6; SET1; =+Q1; DUP; V0P197; SHL+16; OR; SETB16; OR; SHC-16; =V0P197; JS2; #11; Y3600M15Q; =V1P197M7Q; J11C7NZS; EXIT2; 1; V0P197; SHL-32; JS2; #12; V1P197M7Q; =Y3600M15Q; J12C7NZS; EXIT2; 2; SHL-6; DUP; SHL+2; +; SHL+3; =RM15; SET40; =RC7; ERASE; EXIT1; P298V5; (Optimise PPI); V0=Q90/40/AY32; V1=Q2/1/AV3P11 V2=B07024402454456; V3=B0702440253; V4=Q13/3/0 V5=B 07 02 44 02 45 44 56 22; Q0TOQ14; R100P197; =Q10; R1P197; =Q11; R9; =R100P197; R10; =R1P197; (Bus FH handler); Q0TOQ5; V1; =Q4; (Play at level 0); V0; =Q8; 2; V4; =Q9; 3; M8M9; V5; J5=; SHL-6; V2; J4=; (J if EDN but not CON2); SHL-12; V3; J5#; (J if not K prog); 4; JS60; 5; ERASE; J3C8NZ; M+I8; DC8; J2C6NZ; V4; =Q8; 6; V0; =Q9; (Put rest in PPI, 1 from each sector in turn); 7; M8M9Q; J8=Z; JS60; 8; J7C9NZ; M+I8; DC8; J6C8NZ; Q10; =R100P197; Q11; =R1P197; EXIT1; #9; JP297; #10; J1P297; 60; M-I9; M9; NOT; NEG; =RM3; K4; ERASE; (Keep clock happy - this bit takes 6 secs); SET1; =+Q14; M8M3N; =V81P104; M8M9N; =V49P104; M8M9; =V45P104; ZERO; =M8M9; (Mark as gone); M+I9; JS1P194; EXIT1; (Wierd if same in twice); ERASE; V49P104; V45P104; SHLD+16; SET2; J4P6; (Put ident of duplicated prog in FLEXqueue); FINISH;