PROSTART867

(George Source)

Macros used: ACROSS, BC, BXE, BXU, CHNUMCOD, COMBRKIN, COMERR, DOWN, ENDCOM, ENDPAXES, FINDPUC, FJOCA, FPCACA, FREEALL, FREEBUFF, FREECORE, FREEPROG, GEOERR, GETWORD, HLSINFORM, HUNT2, HUNT2J, HUNT2OPT, HUNTW, JBC, LOADNOW, LOCK, MENDAREA, MFREE, MHUNT, MONOUT, MURDER, NAME, NOCORJOB, ORELP, OUTBLOCK, OUTPARC, PAPARAM, PARAPASS, PROGAXES, RUNPROG, SEG, SEGENTRY, SETUPCORE, SPARANOT, SWAPOUT, TESTLOAD, TESTREP, TESTRT, TESTRTQ, TESTTP, UP, VFREEW, WORDFIN

PROSTART867.txt
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