228= ... SEG PROSTART,,CENT(LOAD OBJ PROG) 22BG ...[ 22JQ ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22R2 ...[ 22^= # 23DW SEGENTRY K1PROSTART,XENT1 23YG SEGENTRY K2PROSTART,XENT2 24D6 SEGENTRY K5PROSTART,XENT5 24XQ SEGENTRY K9PROSTART,XENT9 25CB SEGENTRY K10PROSTART,XENT10 25X2 SEGENTRY K11PROSTART,XENT11 26BL SEGENTRY K16PROSTART,XENT16 26W= SEGENTRY K17PROSTART,XENT17 27*W # 27TG # THIS SEGMENT DEALS WITH THE ENTER AND RESUME COMMANDS AND IS 28*6 # ALSO USED TO DELETE A CORE IMAGE. 28SQ # ENTER USES ENTRY POINT K2,RESUME USES K5,DELETE USES K17 29#B # K1 IS USED TO COMPLETE THE LOADING PROCESS FOR 29S2 # A PROGRAM WHICH IS TO BE RUN IMMEDIATELY 2=?L # LOAD RE-ENTERS PROSTART AT 2=R= # K10 TO DELETE ANY PREVIOUS CORE IMAGE (UNDER THE SAME JOB) 2?=W # 2?QG #DEF XLDEXA=EXTPS+4 2#=6 # 2#PQ PMSB #20000000 2*9B PBIT9 #40000 2*P2 PBIT10 #20000 2B8L PBITS910 #60000 2BN= P1000 +1000 2C7W PK9 +K9 2CMG N48 48 2D76 # 2DLQ # 2F6B # 2FL2 # 2G5L XENT11 [LOGOUT ENTRY 2GK= # 2H4W HUNTW 1,APED,ADELETE 2HJG BNG 1 K10PROSTART 2J46 FREECORE 1 2JHQ BRN PNO1 2K3B # 2KH2 XENT10 [DELETION OF PREVIOUS CORE IMAGE 2L2L [FOR A NEW LOAD 2LG= # 2L^W VFREEW APED,ANEVENT 2MFG PNO1 VFREEW APED,ADISPLAY 2M^6 LDX 1 FX1 2NDQ # 2NYB XENT17 [ENTRY POINT FOR THE DELETE COMMAND,A 2PD2 [FROM OPCAXCOD FOR DEL,DELTY EXTRACOD 2PXL NGNC 0 1 2QC= XENT16 [ENTRY FROM LOAD TO DELETE PCA AFTER AN ERROR OR A 2QWW [BREAKIN DURING LOAD 2RBG [IN GEORGE 4 THE PROGRAM CAN BE BEING SWAPPED 2RW6 LDN 6 0 2S*Q BZE 6 PLOAD [J IF ERROR IN LOAD 2STB CALL 7 RLTIME [TEST FOR REALTIME 2T*2 ORX 6 GSIGN 2TSL PLOAD 2W#= # 2WRW FJOCA 3,FX2 2X?G LDX 4 BIT9 [J IF PROG ALREADY MARKED AS NOT 2XR6 ANDX 4 JMISC(3) [SWAPABLE 2Y=Q BNZ 4 PDEN [CURRENTLY THIS CASE DOES NOT OCCUR 2YQB LDX 4 BIT10 [J IF PROG SWAPPED IN 2^=2 ANDX 4 JMISC(3) 2^PL BNZ 4 PDEM 329= LDX 0 BIT11 [J IF PROG SWAPPED OUT 32NW ANDX 0 JMISC(3) 338G BNZ 0 PDEN 33N6 SWAPOUT [OTHERWISE PROG IS BEING SWAPPED SO 347Q BRN PDEN [WE WAIT UNTIL IT HAS FINISHED 34MB PDEM ADS 4 JMISC(3) [SWITCH TO NOT SWAPPABLE 3572 PDEN 35LL FPCACA 3,FX2 3H#6 TESTTP 3,TP [JUMP IF THE PROG IS AN RCTP 3HRQ BRN NTP 3J?B # UNSET RCTP MARKER AND MURDER PUC.PCA 3JR2 TP UNSETRCT 3 3K=L FPCACA 1,FX2 3K#T [ 3KC4 [ NEED TO RENAME APET/ATP AS JUST APET AS AFTER APET/APUC MURDERED 3KF? [ CHARGESC MIGHT CALCULATE MILL RATINGS IF RECENTLY PLUGGED IN & 3KHG [ ASSUMES PUC STILL THERE 3KKP [ 3KMY NAME 1,APET 3KQ= FINDPUC 1,3 3L9W LOCK 3 3Q6W MURDER 3 [FREE PUCS PCA 3QLG NTP 3T4L # FREE OBJ PROG BLOCK 3TJ= PWAIT 3W3W FJOCA 3,FX2 3WHG LDX 0 JMISC(3) 3X36 ANDX 0 PBITS910(1) 3XGQ BZE 0 PDEL1A [JUMP IF SWAPPED O4T 3Y2B PROGAXES 3,PWAIT [IF WE CANNOT ACCESS PROG. WAIT 3YG2 [AND THEN JUMP TO PWAIT 3Y^L FPCACA 1,FX2 42DG HUNT2OPT 1,AOBJPROG,0 [FREE OBJ PROG BLOCK 42LQ FREEPROG 1,3 [SET AOBJPROG UP AS VALID FPB 43CQ [PROG-BLOCK COMES BEFORE AN ACT.BLK. 43XB ENDPAXES 3 [SIGNAL END OF PROGRAM ACCESS 44WL PDEL1A 44Y^ [ 44^Q [ 452H [ IF VALID FPB EXISTS FOR THIS PROGRAM,THEN MAKE IT INVALID 453# [ 4545 JBC NOFPB,3,JBWASIN [J IF NO VALID FPB 454W BC 3,JBWASIN 455M LDX 0 JOBNUM(3) 456D LDN 2 BOBJUNUSE 4579 NEXT LDX 2 FPTR(2) [GET FIRST/NEXT BLOCK ON FPB CHAIN 4582 BXE 2 CXOBJUN,(GEOERR) [GEOERR IF NO FPB WITH SAME JOBNUM 458R BXU 0 JOBNOWAS(2),NEXT 459J STOZ JOBNOWAS(2) [STOZ JOBNUM AS NOW INVALID FPB 45=* LDX 0 ALOGL(2) 45?6 ADS 0 CINVFPB [UPDATE TOTAL OF ONVALID FPB'S 45?X LDX 2 FX2 45#N NOFPB 45B= # FREE BACKING STORE 45TW FPCACA 3,2 46*G HUNT2J 3,BSTB,BSCB,,NODEL [JUMP IF NO SCB,SINCE NO 46T6 [SWAP SPACE WILL HAVE BEEN BOOKED 47#Q LDX 4 BSHEET(3) [TOTAL NO OF SHEETS FOR PROGRAM 47C* ...#UNS BIWRFL 47FY ...( 47JH ... BZE 4 NODEL [IF WRITE-FAIL MAYBE NO SHEETS 47M6 ... [TO FREE 47PP ...) 47SB ADN 4 2 [ALLOWANCE FOR THE HEADER 48#2 SETUPCORE 4,3,FILE,FRB [SET UP THE BACKING STORE LIST BLOCK 48RL FPCACA 2 49?= HUNT2 2,BSTB,BSCB 49QW STO 4 A1(3) [INSERT THE LENGTH OF THE LIST. 4==G LDX 4 AOBJLF(2) 4=Q6 STO 4 A1+1(3) [STORE LOGICAL FILE NO.IN BS LIST BLO 4?9Q LDX 5 BSHEET(2) [NO.OF SHEETS 4?PB STOW LDX 4 AOBJST(2) [THE FIRST O/P BLOCK ENTRY 4#92 STO 4 A1+2(3) [INSERT ENTRY IN LIST 4#NL ADN 2 1 [STEP X2 TO NEXT O/P BS HOME 4*8= ADN 3 1 [STEP X3- POINTER TO NEXT FREE WORD 4*MW BCT 5 STOW [ARE ALL THE O/P BS HOMES INSERTED? 4B7G FREEALL [FREE ALL THE SHEETS 4BM6 NODEL 4C6Q ) 4CLB # RELEASE PERIPHERALS 4D62 CALL 5 PDEL 4DKL # MURDER PCA 4F5= LDX 4 3 4FJW FJOCA 3,2 4G4G TESTLOAD 3,NLOAD 4GJ6 LDXC 6 6 [NO DELETED MESSAGE UNLESS LOADED 4H3Q BCS £ 4HHB NLOAD 4J32 LDCT 1 #767 [CLEAR PCACA BIT AND 4JGL ANDS 1 JMISC(3) [SET NO CORE IMAGE BEFORE 4K2= LDN 5 1 [MURDERING PCA 4KFW SBS 5 ACTPROGS [REDUCE COUNT OF PROGS 4K^G LDN 5 #1400 4LF6 ERS 5 CONTEXT(2) 4LYQ LOCK 4 4MDB ORELP 4 [CLOSES ANY FILES OPEN TO THE 4MY2 [PCA THEN MURDERS IT 4NCL LDXC 6 6 4NX= BCC PDEL2A [JUMP IF ERROR IN LOAD 4PBW # OUTPUT DELETED MESSAGE 4QB6 LDN 4 9 [PREPARE 4RT2 OUTBLOCK 4 [PREPARE MONOUT BLOCK 4S#L # OUTPUT MILL TIMES AND REAL TIME 4SS= OUTPARC JOBMILL,TIMENOW,PROGMILL 5286 MONOUT JXDELETED [OUTPUT DELETED MESSAGE 52MQ PDEL2A 52SY #SKI JWPHASE4 52YC HLSINFORM ZBREAKCONT,DELETE,JOBNO(2) 533W ZBREAKCONT 537B FJOCA 3,2 53M2 # SHORTEN JOB BLOCK 546L NGX 5 JCSIZE(3) [NEGATED CORE SIZE FOR R/T BUDGET UPD 54L= NOCORJOB 3 [RE-INITIALISE JOB-BLOCK 555W UP UP 55KG # 5656 P10B NGN 6 1 [SET RESUME WITH NO ENTRY POINT 56JQ BNZ 5 R15 [BRN TO RUN PROG IF RESUME 574B LDN 6 20 [GO AT 20 FOR ENTER 57J2 BRN PERRX [ WITH NO PARAMETER 583L # 58H= # 592W # 59GG XENT5 [ENTRY FROM RESUME 5=26 STOZ AWORK4(2) [ZEROISE LOADING MARKERS 5=FQ NGN 6 1 [IN CASE NO ENTRY POINT 5=^B LDN 5 1 [RESUME MARKER 5?F2 PARAPASS 5?YL MHUNT 3,CPB,CUNI 5#D= NGX 4 ANUM(3) 5#XW BPZ 4 P3X [NULL ROR NON EXISTENT 5*CG LDCH 0 APARA(3) 5*X6 SBN 0 #12 [: 5BBQ BZE 0 P2 5BWB SBN 0 #7 [! 5CB2 BZE 0 P2 5CTL SBN 0 #20 5D*= BNG 0 P3X 5DSW SBN 0 #32 5F#G BNG 0 P2 [A LETTER 5FS6 P3X 5G?Q # 1ST PARAM DOESN'T LOOK LIKE FILENAME - ASSUME IT IS A NUMBER 5GRB LDN 0 #1000 5H?2 ANDX 0 CONTEXT(2) 5HQL BZE 0 XNOCORE [NO CORE IMAGE 5J== BZE 4 R15 [NULL PARAM 5JPW BPZ 4 R151 [NO PARAMS 5K9G BRN P12 5KP6 P2 5L8Q # 1ST PARAM LOOKS LIKE FILENAME 5LNB MFREE CPB,CUNI 5M82 SPARANOT 1 [GET 1ST PARAM AGAIN WITH SPACES 5MML ACROSS LDSTART,7 [LOAD PROGRAM 5N7= # 5NLW # 5P6G # 5PL6 XENT1 [ENTRY FROM LOADPROG TO RUN THE PROGR 5Q5Q LDX 0 XLDEXA(2) 5QKB STO 0 AWORK4(2) [SAVE LOADING MARKERS 5R52 LOADNOW ZBRKIN,ZENDCOM,1 [LOAD THE PROGRAM 5RJL LDN 6 0 [ZEROISE MARKER 5S4= LDN 0 2 5SHW ANDX 0 AWORK4(2) 5T3G BZE 0 NOTLE [JUMP IF NOT LOADENTER 5TH6 PARAPASS 5W2Q MFREE CPB,CUNI [MARKS THE FIRST PARAMETER AS ACCESSE 5WGB NOTLE 5X22 LDX 0 BIT11 5XFL ANDX 0 AWORK4(2) 5X^= BNZ 0 XLOADED [JUMP IF GPL BECAUSE WE DO NOT NEED 5YDW [TO RESET WORD 8 5YYG LDN 0 4 5^D6 ANDX 0 AWORK4(2) 5^XQ BZE 0 NORM [JUMP IF NOT RESUME 62CB NGNC 5 1 62X2 NORM 63BL LDN 5 0 [LOADENTER MARKER 63W= BRN P10A 64*W XENT2 [ENTRY POINT FOR THE ENTER COMMAND 64TG STOZ AWORK4(2) [ZEROISE LOADING MARKERS 65*6 LDN 5 0 [ENTER MARKER 65SQ P10A PARAPASS [GET NEXT PARAM 66#B MHUNT 1,CPB,CUNI [FIND THE PARAMETER BLOCK 66S2 NGX 0 ANUM(1) 67?L BPZ 0 P10B [NULL OR NO PARAM. 67R= P12 CHNUMCOD 68=W TESTREP CHNUMERR,ZENDCOM [DID IT CONVERT OK? 68QG LDX 6 ACOMMUNE1(2) 69=6 ANDX 6 BITS22LS 69PQ BNZ 5 PERRX [BRN IF RESUME,ELSE 6=9B BNG 6 PERY [-'VE ENTRY POINT 6=P2 SBN 6 10 [CHECK ENTRY POINT 6?8L BNG 6 PERR 6?N= PERY 6#7W COMERR JENTER [ENTRY POINT INVALID 6#MG PERR ADN 6 30 [NOW IN RANGE 20-29 6*76 PERRX 6*LQ R15 6B6B PAPARAM XERR,XERR1 6BL2 R151 MFREE CPB,CUNI [FREE THE LAST PARAMETER BLOCK 6C5L # 6CK= R152 6D4W FJOCA 3,FX2 6DJG TESTLOAD 3,XLOADED [TEST IF LOADED 6F46 LOADNOW ZBRKIN,ZENDCOM,0 [LOAD THE PROGRAM 6FHQ STOZ AWORK4(2) [INITIALISE LOADING MARKERS 6G3B XLOADED 6GH2 HUNTW 2,APED,ANEVENT 6H2L BNG 2 RNO 6HG= FREECORE 2 [FREE EVENT BLOCK IF PRESENT 6H^W BRN RNO1 6JFG RNO VFREEW APED,ADELETE 6J^6 RNO1 6KDQ BNG 6 RNO2 [NO ENTRY PT GIVEN IN RESUME COMMAND 6KYB FPCACA 2,FX2 6LD2 LDCT 0 #340 [B1 STATE SL 6LXL ORS 0 ASU1(2) 6MC= ORS 0 ASU1(2) 6MWW ORS 0 ASU2(2) 6NBG ORS 0 ASU3(2) 6NW6 ORS 0 ASU4(2) 6P*Q ERS 0 ASU1(2) [TICKLE MEMBER 0 6PTB LDCT 0 #140 6Q*2 ERS 0 ASU2(2) 6QSL ERS 0 ASU3(2) 6R#= ERS 0 ASU4(2) [STATE SL FOR OTHER MEMBERS 6RRW LDX 0 BIT11 6S?G SMO FX2 6SR6 ANDX 0 AWORK4 6T=Q BNZ 0 RNO2 [JUMP IF GPL 6TQB # THE START OF THE PROGRAM MUST BE BROUGHT INTO CORE TO SET WDS 8,9 6W=2 LDX 5 ANM(2) 6WPL ANDN 5 3 [CURRENT MEMBER NO. 6X9= ERS 5 ANM(2) [SET CURRENT MEMBER TO 0 6XNW SLL 5 4 6Y8G ADN 5 32+16 [X5 CONTAINS SIZE OF AREA TO BE REFER 6YN6 LDN 4 0 [ 6^7Q GETWORD 4,1,WRITE,4,5 [ADDR OF 1ST [5] WDS OF PROGRAM 6^MB TESTREPN OK,XGETWD 7272 # IF LAST MEMBER RUN WAS NOT 0 WE MUST DUMP ITS ACCS ETC AND RESTART IN 72LL SMO FX1 736= TXU 5 N48 73KW BCC RNO3 [J IF LAST MEMBER RUN WAS 0 745G LDX 2 1 74K6 ADX 2 5 754Q SBN 2 16 [X2 IS START OF DUMP AREA FOR LAST ME 75JB MOVE 1 16 [DUMP THIS MEMBERS WORDS 0-15 7642 LDX 5 1 76HL LDN 4 32(1) 773= MOVE 4 16 [MEMBER 0'S WORD RESTORED 77GW RNO3 STO 6 8(1) [INSERT ENTRY POINT 782G STOZ 9(1) [ZEROISE REPLY WORD 78G6 WORDFIN 78^Q XENT9 79FB RNO2 FJOCA 3,FX2 79^2 LDX 4 APROGTIME(3) 7=DL BNG 4 RMORE 7=Y= BNZ 4 RNOMORE 7?CW LDX 4 APROGTIME+1(3) 7?XG BNZ 4 RNOMORE 7#C6 RMORE 7#WQ LDX 4 IPROGTIME 7*BB SMO FX1 7*W2 MPY 4 P1000 [CONVERT PROG TIME TO MILLISECONDS 7B*L STO 4 APROGTIME(3) 7BT= STO 5 APROGTIME+1(3) 7C#W RNOMORE 7CDR LDX 2 FX2 7CFJ #UNS FREEBUFF 7CG* ( 7CH6 FREEBUFF [ FREEBUFF CPAT 7CHX ) 7CJN #SKI JWPHASE4 7CNK HLSINFORM ZBRKIN,RESUME,JOBNO(2) 7CSG RUNPROG 7D#6 # 7DRQ ZBRKIN 7F?B COMBRKIN [BREAK-IN DETECTED DURING 7FR2 [LOADNOW(X) MACRO 7G=L ZENDCOM 7GQ= ENDCOM [TO THE COMMAND PROCESSOR IF THE 7H9W # [RESUME OR LOADENTER COMMAND HAS FAIL 7HPG # THIS SUBROUTINE DEALS WITH REALTIME PROGRAMS 7J96 RLTIME 7JNQ LDN 6 0 7K8B FJOCA 3,FX2 7KN2 TESTRT RT2,3 [HAS REALTIME BEEN EFFECTED? 7L7L TESTRTQ RT1,3 [IS REALTIME SET? 7LM= EXIT 7 0 [NOT REALTIME PROGRAM 7M6W RT1 7MLG RT2 SBX 7 FX1 7N66 CALL 5 PDEL [RELEASE PERIPHERALS 7NKQ DOWN REALTIME,3 7P5B ADX 7 FX1 7PK2 EXIT 7 0 7Q4L # 7QJ= # THIS SUMR RELEASES ALL THE PROGRAMS PERIPHERALS 7R3W # 7RHG PDEL SBX 5 FX1 7S36 PDEL1 FPCACA 3,FX2 7SGQ HUNT2 1,APERI,APERIRES,3 7T2B LDX 0 A1(1) 7TG2 BNG 0 PDELF 7T^L RELPEREN 0 7WF= BRN PDEL1 7WYW PDELF ADX 5 FX1 7XDG EXIT 5 0 7XY6 # 88PB # 8992 # 89NL XERR COMERR APFERR 89YD XERR1 COMERR JMAXPAR 8=8= XNOCORE 8=MW COMERR JCONTINC,JNOCOR 8?7G XGETWD 8?M6 GEOERR 1,GETWORD 8#6Q MENDAREA 30,K99PROSTART 8#LB #END ^^^^ ...73414344000100000000