22FL SEG BMOUTPUT,84,EDWARD MOON,BMAP,G252 22^= [ 23DW [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 23YG [ THIS EXCLUDES CODE UNDER #SKI G252 24D6 [ 24XQ #OPT G252 = 0 25CB #SKI G252&1 25X2 # WITH UGUG EDIT M252 (RETAIN TO-BE-ERASED STATUS) 26BL SEGENTRY K1BMOUTPUT,Z1BMOUTPUT 26W= SEGENTRY K2BMOUTPUT,OUTPUTNOW 27*W #SKI G252&1 27TG ( 28*6 [ BIRMINGHAM UNIVERSITY CHANGES: 28SQ [ SETS 'ERASE' BIT IN DIRECTORY ENTRY 29#B [ IF 'EU' SET TO 1 FOR AN ENTRY IN :SYSTEM.OUTPUT. 29S2 [ THIS IS TO PREVENT LOSS OF ERASE STATUS OVER A BREAK. 2=?L [ SEE ALSO SEGMENT BMAPONE. 2=R= [ 2?=W [ COPYRIGHT UNIVERSITY OF BIRMINGHAM. 2?QG [ USE SUBJECT TO CONDITIONS OF LICENCE. 2#=6 [ 2#PQ ) 2*9B [ 2*P2 [ 2B8L [ 2BN= [ THIS SEGMENT SCANS SERIALLY THROUGH :SYSTEN.OUTPUT. 2C7W [ IT WAS,UTTIL MARK8,THE LATTER PART OF BMJLIST. 2CMG [ 2D76 [ 2DLQ #SKI JSKI38 2F6B MBITS #23405760 [MASK FOR GLASGOW SPECS. 2FL2 #SKI JSKI38-1 2G5L MBITS #23461760 [MASK FOR UNWANTED GMODE BITS 2GK= NOUTPUT 2H4W +10 2HJG 12HSYSTEM 2J46 12HOUTPUT 2JHQ +1 2K3B #20000000 2KH2 4HB1 2L2L [ 2LG= NLIST +10 2L^W 12HSYSTEM 2MFG 12HLISTLOSTFILE 2M^6 1,1,4HB1 2NDQ NLISTJOB 2NYB +10 2PD2 12HSYSTEM 2PXL 12HLISTLOSTJOB 2QC= 1,1,4HB1 2QWW NBMLOSTJOB 2RBG +BMLOSTJOB 2RW6 NOUTLOST +BMOUTLOST 2S*Q NHEAD 2STB 13,4H000I 2T*2 32HTHE FOLLOWING NON MOP JOBS HAVE 2TSL 12HBEEN LOST 2W#= TYPE #40000012 2WRW X4M #20000000 2X?G [ 2XR6 STEPREWRITE 2Y=Q STEPREWRITE 2YQB EXIT 5 0 2^=2 OUTPACK 2^PL SBX 7 FX1 329= OUTPACKX 2,5,6 32NW ADX 7 FX1 338G EXIT 7 0 33N6 [ 347Q SUB 34MB MHUNT 2,FILE,FRB 3572 EXIT 1 0 35LL [ 366= UPJOBCOUNT 36KW ADX 3 AWORK1(2) [RELATIVE ADDRESS OF USERNAME 375G SBX 7 FX1 37K6 LDN 1 1 [DEPTH FOR READDICT 384Q READDICT 1,0(3) [PICK MP DICT ENT OF THIS USER 38JB TESTRPN2 OK,XBR 3942 MHUNTW 1,FILE,ADICTENT [COPY OF DICT ENTRY 39HL LDN 0 1 3=3= ADS 0 CJOBCT(1) 3=GW NAME 1,FILE,FWB 3?2G REWRITE 1 [UPDATED COPY OF DICT ENT 3?G6 MFREEW FILE,FWB 3?^Q STEPAGAIN 3#FB ADX 7 FX1 3#^2 EXIT 7 0 3*DL Z1BMOUTPUT [ENTRY ACROSS FROM BNJLIST 3*Y= [ 3BCW HUNTMISB 2,FI,FUSER 3BXG LDN 6 6 3CC6 LDX 7 A1(2) 3CWQ FREECORE 2 3DBB LDX 2 FX2 3DW2 BMSTATS 6,7 3F*L MHUNTW 2,FILE,FABSNB 3FT= ADN 1 NLISTJOB 3G#W ADN 2 A1 3GSG MOVE 1 10 [TO SEE IF LISTLOSTJOB EXISTS 3H#6 BMOPENDI XBR,NOLLJOB,QLLJLOST,QLLJLOST 3HRQ FREECORE 1 [UNWANTED ENT BLOCK 3J?B CLOSETOP [SYSTEM 3JR2 OPEN XBR,GENERAL,EMPTY 3K=L TESTRPN2 OK,XBR 3KQ= BRN SYSLLJOPEN 3L9W QLLJLOST 3LPG LDEX 3 ECOPS(1) 3M96 ADX 3 ENUSE(1) 3MNQ LDN 7 1(3) 3N8B FREECORE 1 3NN2 BZE 3 QDELLJ 3P7L SKIP ,0(3) 3PM= QDELLJ 3Q6W DELETE 3QLG BCT 7 QDELLJ 3R66 CLOSETOP 3RKQ NOLLJOB 3S5B CREATEB 2 3SK2 LDX 0 TYPE(1) 3T4L STO 0 CETM(2) 3TJ= OPEN XBR,GENERAL,CREATE 3W3W TESTRPN2 OK,XBR 3WHG SYSLLJOPEN 3X36 FILEMOVE 0,2 3XGQ SETNCORE 15,2,FILE,FAPB 3Y2B LDX 1 FX1 3YG2 ADN 1 NHEAD 3Y^L ADN 2 A1 3^F= MOVE 1 15 3^YW APPEND -1 42DG MFREEW FILE,FAPB 42Y6 FASTREWIND 1 [SYSTEM JOBLIST 43CQ LDX 4 JOBNUMBER 43XB STEP [TO TEMPLATE RECORD 44C2 NEXJLREC 44WL STEP [TO NEXT PROPER RECORD 45B= BNZ 3 NOWCHECK [TO CHECK REC IF THERE IS ONE 45TW CLOSETOP [SYSTEM JOBLIST 46*G CLOSETOP [DICTIONARY 46T6 FASTREWI 1 47#Q STEP 47SB STEP 48#2 CLOSETOP 48RL BNZ 3 NOERLLJOB 49?= ERASE 49QW NOERLLJOB 4==G BRN NOWENDJL 4=Q6 NOWCHECK 4?9Q JBC RECCHECKED,3,JLBCHECKED 4?PB JBS NOTWANTED,3,JLBNEW 4#92 BS 3,JLBNEW 4#NL CALL 7 UPJOBCOUNT 4*8= NOWCLBITS 4*MW CALL 5 STEPREWRITE 4B7G MBS 3,JLBCHECKED,JLBNEW 4BM6 LDX 4 JLJOBNO(3) 4C6Q LDX 0 JOBNUMBER 4CLB BZE 0 SETX4 4D62 SBX 0 4 4DKL BPZ 0 SET1 4F5= SMO FX1 4FJW ADX 0 X4M 4G4G BNG 0 NOSET 4GJ6 BRN SETX4 4H3Q SET1 4HHB SMO FX1 4J32 SBX 0 X4M 4JGL BNG 0 NOSET 4K2= SETX4 4KFW STO 4 JOBNUMBER 4K^G NOSET 4LF6 LDN 0 1 4LYQ ADS 0 JOBCOUNT 4MDB NOUPJOBNUM 4MY2 BRN NEXJLREC 4NCL RECCHECKED 4NX= BSJ NOADD1 4PBW CALL 7 UPJOBCOUNT 4PWG NOADD1 4QB6 BRN NOWCLBITS 4QTQ NOTWANTED 4R*B STEPAGAIN 4RT2 ADX 3 JOBDATASIZE 4S#L SBX 3 AWORK3(2) 4SS= JMBAC NOTHISTOLLJ,3,JLBJB,JLBRJ 4T?W JBS NOTHISTOLLJ,3,JLBSYSIS 4TRG STEPAGAIN 4W?6 LDN 2 JLUSER(3) 4WQQ LDN 5 3 4X=B LDN 6 3 4XQ2 CALL 7 OUTPACK 4Y9L STEPAGAIN 4YP= LDN 2 JLJOBNAME(3) 4^8W LDN 5 3 4^NG LDN 6 4 5286 CALL 7 OUTPACK 52MQ LDX 7 NBMLOSTJOB(1) 537B ASSMESS 7 53M2 MHUNTW 3,GMON,AOUT 546L LDX 0 A1(3) 54L= ADN 0 11 555W SRL 0 2 55KG STO 0 A1(3) 5656 LDN 0 #41 56JQ STO 0 A1+1(3) 574B NAME 3,FILE,FAPB 57J2 APPEND -1 583L MFREEW FILE,FAPB 58H= NOTHISTOLLJ 592W DELETE [THIS SJL RECORD 59GG BRN NEXJLREC 5=26 NOWENDJL 5=FQ HUNTMISB 3,FI,FLIST 5=^B LDN 0 1 5?F2 SBS 0 A1+1(3) 5?YL FON BMAPACT 5#D= SUICIDE 5#XW OUTPUTNOW 5*CG LDN 0 7 5*X6 BMSTATS 0 5BBQ MHUNT 2,FILE,FABSNB [SET :SYSTEM LISTLOSTFILE FABSNB 5BWB ADN 1 NLIST 5CB2 ADN 2 A1 5CTL MOVE 1 10 5D*= BMOPENDI XBR,NOLIST,QLOST,QLOST [ENTRY IN SYSTEM 5DSW FREECORE 1 [UNPANTED ENT BLOCK 5F#G CLOSETOP [SYSTEM 5FS6 OPEN XBR,GENERAL,EMPTY [SYSTEM LISTLOSTFILE 5G?Q TESTRPN2 OK,XBR 5GRB BRN SYSOUTOPEN [OPEN OUTPUT IF LISTLOSTFILE OK 5H?2 MHUNT 2,FILE,FABSNB [SET :SYSTEM LISTLOSTFILE FABSNB 5HQL ADN 1 NLIST 5J== ADN 2 A1 5JPW MOVE 1 10 5K9G BMOPENDI XBR,NOLIST,QLOST,QLOST [ENTRY IN SYSTEM 5KP6 FREECORE 1 [UNPANTED ENT BLOCK 5L8Q CLOSETOP [SYSTEM 5LNB OPEN XBR,GENERAL,EMPTY [SYSTEM LISTLOSTFILE 5M82 TESTRPN2 OK,XBR 5MML BRN SYSOUTOPEN [OPEN OUTPUT IF LISTLOSTFILE OK 5N7= QLOST 5NLW LDEX 3 ECOPS(1) 5P6G ADX 3 ENUSE(1) 5PL6 LDN 7 1(3) [NUMBER OF RECS IN DIRENT 5Q5Q FREECORE 1 [UNWANTED ENT BLOCK 5QKB BZE 3 QDEL [IF OFFLINE AND NO TRAPS 5R52 SKIP ,0(3) [TO END OF DIRENT 5RJL QDEL 5S4= DELETE [THE DIRENT 5SHW BCT 7 QDEL 5T3G CLOSETOP [SYSTEM 5TH6 NOLIST 5W2Q CREATEB 2 [TO SET UP INITIALISED 5WGB LDX 0 TYPE(1) [ -FOR LOSTLISTFILE 5X22 STO 0 CETM(2) 5XFL OPEN XBR,GENERAL,CREATE [LISTLOSTFILE 5X^= TESTRPN2 OK,XBR 5YDW SYSOUTOPEN 5YYG 5^D6 MHUNT 2,FILE,FABSNB [SET :SYSTEM.OUTPUT FABSNB 5^XQ ADN 2 A1 62CB ADN 1 NOUTPUT 62X2 MOVE 1 10 63BL BMOPENDI XBR,NOUT,NQLOST,NQLOST 63W= [J IF NOFILE,LOST,OR OFFLINE 64*W TOPFCB2 3 64TG JBS SYSTPR,3,BFPARTRES 65*6 LDX 0 GINCTSN 65SQ [ 66#B SEGENTRY K93BMOUTPUT [FOR NEWDUUP AND BMOUT MEND MACS 66S2 BZE 0 NERASE [NULLED BY MACROS 67?L SYSTPR 67R= LDCT 0 #777 68=W ANDX 0 ECOPS(1) 68QG BZE 0 NQLOST 69=6 READ 69PQ MHUNTW 1,FILE,FRB 6=9B NAME 1,BSTB,FULLB 6=P2 FULLBPAS 1,2 [CHAIN FULLB IN FILE CHAIN (USING X2) 6?8L BACKSPACE 6?N= MHUNTW 1,FILE,ENT 6#7W BRN NQLOST 6#MG NERASE 6*76 BMOPENRE XBR 6*LQ #SKI K6BMOUTPUT>199-199 6B6B TESTRPN2 OK,XBR 6BL2 BACKSPAC 1 [TO NAME REC 6C5L TOPFCB2 1 6CK= BS 1,BFCORE [KEEP USAGE BLOCKS IN CORE DURING BMI 6D4W LDN 0 INDEXOUT 6DJG BMINDEX 0 6F46 TESTREP2 OK,OUTIXOK [INDEX CHECKED OK OR SET UP 6FHQ CLOSETOP [OUTPUT 6G3B READAGAIN [OUTPUT DIRENT 6GH2 MHUNTW 1,FILE,FRB 6H2L BRN NQLOST [DELETE FILE & RECREATE 6HG= OUTIXOK 6H^W CLOSEDIR [:SYSTEM 6JFG BRN OUTPUT 6J^6 OUTSJ 6KDQ MFREE FILE,FWB [FROM INFO RECORD 6KYB MFREE FILE,FABSNB 6LD2 BZE 6 NOSETUPFAB [IF THERE WAS NO SETUP FILE 6LXL MFREE FILE,FABSNB 6MC= NOSETUPFAB 6MWW LDX 0 AWORK1(2) 6NBG BXL 0 JOBNUMBER,NBIGJOB [ENSURE STARTING JOBNUMBER NOT ALREAD 6NW6 STO 0 JOBNUMBER [KNOWN TO SYSTEM 6P*Q NBIGJOB 6PTB MONOUT BMLISTSAVE,AWORK1(2) 6Q*2 [FOR LISTFILE ACCOUNTING 6QSL OUTPUT 6R#= STEP 6RRW BZE 3 OUTEND 6S?G LDCT 7 #540 [B0-ONLINE; B2-SETUP; B3-PROPERTY 6SR6 [ 6T=Q [ BEWARE GMODE CHANGING VALUE DURING DEVELOPMENT OF NEW MARK - USE B 6TQB [ 6W=2 ANDX 7 GMODE-A1(3) 6WPL LDCT 6 #100 6X9= ANDX 6 7 [X6=0 IF NO SETUP 6XNW SLC 6 3 6Y8G LDCT 4 #40 6YN6 ANDX 4 7 [X4=0 IF NOPROP 6^7Q SLC 4 4 6^MB BPZ 7 OFFLINE [J UNLESS ONLINE 7272 LDX 3 4 72LL ADX 3 6 736= LDN 7 1(3) [NUMBER OF RECORDS IN ENTRY 73KW BZE 3 ONDEL 745G SKIP ,0(3) [REMAINING RECORDS IN ENTRY 74K6 ONDEL 754Q DELETE 75JB BCT 7 ONDEL 7642 VFREE FILE,FWB [ INFO REC. IF IT WAS READ 76HL BRN OUTPUT 773= OFFLINE 77GW READAGAIN [INFO RECORD 782G MHUNTW 3,FILE,FRB 78G6 LDX 0 GJOBS(3) 78^Q STO 0 AWORK1(2) 79FB LDX 0 MBITS(1) 79^2 ANDX 0 GMODE(3) 7=DL ERS 0 GMODE(3) 7=Y= NAME 3,FILE,FWB [TO UPDATE INFO RECORD 7?CW REPLACE [INFO RECORD 7?XG BZE 4 NOPROP 7#C6 STEP [MISS PROPERTY RECORD 7#WQ NOPROP 7*BB LDN 7 0 7*W2 OPF READ 7B*L OPSET 7BT= MHUNTW 1,FILE,FRB 7C#W NAME 1,FILE,FABSNB 7CSG #SKI G252&1 7D#6 ( 7DRQ OPENDIR XBR,GENERAL,CAREFUL,QUERY,ERASING 7F?B TESTRPN2 OK,NOFILE2 7FR2 MHUNTW 1,FILE,ENT 7G=L LDEX 0 ECOPS(1) 7GQ= BZE 0 ZBHAM2 7H9W BACKSPACE 7HPG MHUNTW 1,FILE,ENT 7J96 ZBHAM2 7JNQ JMBS NOFILE1,1,BEBMUWB,BEBM 7K8B ) 7KN2 #SKI G252&1$1 7L7L BMOPENDI XBR,NOFILE2,NOFILE1 [OPENDIR FILE 7LM= FREECORE 1 [ENT 7M6W TOPFCB2 1 7MLG JBS PRLF,1,BFPARTRES 7N66 STEPAGAIN 7NKQ #SKI G252&1 7P5B ( 7PK2 LDN 0 1 [ SEE IF EU BIT SET TO 1 7Q4L ANDX 0 EUN(3) 7QJ= BZE 0 ZBHAM1 [ BRANCH IF EU NOT 1 7R3W ERS 0 EUN(3) [ CLEAR IT 7RHG BS 3,BNERASE [RESET ERASE BIT 7S36 CALL 5 STEPREWRITE 7SGQ ZBHAM1 7T2B ) 7TG2 LDEX 0 7 7T^L BZE 0 YFREEZE [ J. UNLESS SETUPFILE 7WF= MHUNTW 1,FILE,FWB [ INFO RECORD 7WYW LDX 0 GMODE(1) 7XDG ANDN 0 #10 [ CHECK IF NEED TO FREEZE 7XY6 BNZ 0 NOFREEZE 7YCQ YFREEZE 7YXB CALL 5 STEPREWRITE 7^C2 LDN 0 1 7^WL BNG 7 OPTHAW [J IF THAWING MAIN FILE 82B= ADS 0 EAUTOCOUNT-A1(3) [FREEZE FAIL 82TW NOFREEZE 83*G LDX 5 ESAVECOUNTN(3) 83T6 ANDX 5 HALFTOP [ GET WRITE SAVE COUNT 84#Q CLOSETOP 84SB BZE 5 NOTWRITSAVE 85#2 LDX 3 4 85RL ADX 3 7 [ 0 IF MAIN: 1 IF SETUP 86?= ADN 3 1 86QW SAVEBS 87=G BACKSPACE [ TO INFO RECORD 87Q6 BCT 3 SAVEBS 889Q STEPAGAIN 88PB LDCT 0 #20 [ BIT 4 8992 SMO 7 89NL SRL 0 1 [TO BIT 5 IF MAIN : 6 IF SETUP 8=8= ORS 0 GMODE-A1(3) 8=MW CALL 5 STEPREWRITE 8?7G LDX 3 4 8?M6 ADX 3 7 8#6Q ADN 3 1 8#LB SKIP ,0(3) [ BACK TO WHERE WE WERE 8*62 NOTWRITSAVE 8*KL LDEX 0 7 8B5= BNZ 0 OUTSJ [J IF FINISHED WITH SETUP 8BJW BZE 6 OUTSJ [OR MAIN FILE & NO SETUP 8C4G ORN 7 1 8CJ6 BRN OPF [TO FREEZE SETUP 8D3Q NOFILE1 8DHB FREECORE 1 [ENT 8F32 PRLF 8FGL CLOSETOP 8G2= NOFILE2 8GFW MHUNTW 3,FILE,FWB [INFO RECORD 8G^G NAME 3,FILE,FAPB [FOR APPENDING TO LISTLOSTFILE 8HF6 LDN 0 1 8HYQ STO 0 A1+1(3) 8JDB STOZ A1+2(3) [SWITCH FOR EXTRA RECORDS 8JY2 LDEX 5 7 8KCL BZE 5 NOMAINFILE 8KX= LDN 0 1 8LBW STO 0 A1+2(3) 8LWG NOMAINFILE 8MB6 APPEND 1 [TO LISTLOSTFILE 8MTQ MHUNTW 3,FILE,FAPB 8N*B NAME 3,FILE,FWB [ MAY NEED IF FAIL ON SETUP 8NT2 BZE 5 NOMOREAPEND [IF ONLY 1 RECORD TO APPEND TO LLF 8P#L MHUNT 3,FILE,FABSNB 8PS= NAME 3,FILE,FAPB 8Q?W APPEND 1 [2ND RECORD TO LISTLOSTFILE 8QRG MFREE FILE,FAPB 8R?6 MFREE FILE,FABSNB [FREE THE MAIN FILES FABSNB 8RQQ NOMOREAPEND 8S=B LDEX 0 7 8SQ2 BZE 0 OFDEL [J IF FAILED ON MAIN FILE 8T9L READBACK [GO BACK TO MAIN FILE IF FAILED ON SE 8TP= ORX 7 GSIGN 8W8W ERN 7 1 8WNG BRN OPSET [THAW MAIN FILE 8X86 OPTHAW 8XMQ SBS 0 EAUTOCOUNT-A1(3) 8Y7B CLOSETOP 8YM2 OFDEL 8^6L LDN 7 2 8^L= ADX 7 4 925W ADX 7 6 [NUMBER OF RECORDS IN ENTRY 92KG BZE 6 ONDEL [J IF NO SETUP 9356 STEP [OVER SETUP 93JQ BRN ONDEL [DELETE OTHER RECORDS 944B NQLOST [OFFLINE - DELETE & RECREATE 94J2 LDEX 3 ECOPS(1) 953L ADX 3 ENUSE(1) 95H= JBC NOINDEX,1,BEINDEX 962W ADN 3 1 [ALLOW FOR INDX RECORD 96GG NOINDEX 9726 LDN 7 1(3) 97FQ FREECORE 1 97^B BZE 3 NQDEL 98F2 SKIP ,0(3) 98YL NQDEL 99D= DELETE 99XW BCT 7 NQDEL 9=CG NQDELX 9=X6 CLOSETOP 9?BQ BRN NOUT1 9?WB NOUT 9#B2 #SKI K6BMOUTPUT>199-199 9#TL TESTREPN NOFILE,XBR 9**= NOUT1 9*SW CREATEB 1 9B#G MBS 1,CEINDEXF,CEONLINE 9BS6 LDN 0 INDEXOUT 9C?Q STO 0 CEINDEX(1) [CREATE INDEXED FILE 9CRB SMO FX1 9D?2 LDX 3 NOUTLOST 9DQL MONOUTX 3 9F== OPEN XBR,GENERAL,CREATE 9FPW OUTEND 9G9G CLOSETOP 9GP6 CLOSETOP [LISTLOSTFILE 9H8Q ACROSS BMAPTWO,1 9HNB [ 9J82 XBR 9JML GEOERR 1,BMOUTPUT 9K7= [ 9KLW MENDAREA BMAPGAP,K99BMOUTPUT 9L6G #END ^^^^ ...727561100001