MAKEVCC867

(George Source)

Macros used: ALTLEN, ALTLENG, BXE, BXGE, BXL, BXU, CHAIN, CHNUMCOD, CLOSE, COMERR, DOWN, ENDCOM, FNORM, GEOPACK, HUNTW, IDFTPUPD, INFORMX, JALLOC, JMBS, JV7900, LAMOP, LGEOG, MFREE, MFREEW, MHUNT, MHUNTW, MURDER, NAMETOP, OUTNUM, OUTPACK, OUTPARAM, PARABEG, PARANOTX, PARANUMB, PARSORT, REPERR2, SAWCEJX, SEG, SEGENTRY, SETNCORE, SPARUNAC, STEP, TESTREP, TESTREP2, USEROPEN, ZERRORX, ZERRORY

MAKEVCC867.txt
22FL          SEG      MAKEVCC,,R.WEYAND COMM   
22PD ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
22^=          SEGENTRY K1MAKEVCC,Z1MAKEVCC [IMPLEMENTS MAKEVCC COMMAND  
23DW          SEGENTRY K2MAKEVCC,Z2MAKEVCC [IMPLEMENTS CANCEL MAKEVCC COMMAND   
23YG    #   
24D6    #              CONVENTIONS :
24XQ    #              PRESET LABELS ARE PREFIXED WITH 'P'  
25CB    #              SUBROUTINE LABELS ARE PREFIXED WITH 'S'  
25X2    #              PROGRAM LABELS ARE PREFIXED WITH 'V'(FOR VIRTUAL 7900)   
26BL    #              ERROR LABELS ARE PREFIXED WITH 'X'   
26W=    #   
27*W    [   
27TG    [     PRESET DATA   
28*6    [   
28SQ    #     REMOTE DEVICE TYPE NUMBERS
29#B    #DEF  PTTDT = 0 
29S2    #DEF  PLPDT = 3 
2=?L    #DEF  PCRDT = 4 
2=R=    #DEF  PTWDT = 5 
2?=W    #DEF  PTRDT = 6 
2?QG    #DEF  PTPDT = 7 
2#=6    #DEF  PVDDT = 10
2#PQ    #   
2*9B    #DEF  PTYPE7900 = 24
2*P2    PUNITRANGE     256,512             [512 = MAX+1 
2B8L    PCPREFIX       12HSYSTEM
2BN=    PBASICFILE     #400 
2C7W    PFILETERM      4H****   
2CMG    PMINREC        4
2D76    PSPACE         #20  
2DLQ    PIDENPREFIX    4H000I   
2F6B    PIDENMAX       4096                [4096 = MAX+1
2FL2    PDTTTW         4HTTW0   
2G5L    PDTLP          4HLP00   
2GK=    PDTCR          4HCR00   
2H4W    PDTTW          4HTW00   
2HJG    PDTTR          4HTR00   
2J46    PDTTP          4HTP00   
2JHQ    PDTVDU         4HVDU0   
2K3B    PST7502        4                   [LENGTH OF SUBTYPE   
2KH2                   #00010000           [BIT 11 : 7502 SOFT FORMAT LOOP FLAG 
2L2L                   4H7502              [SUBTYPE MNEMONIC
2LG=    PSTSPOOLING    8
2L^W                   #00020000           [BIT 10 : SPOOLING CAPABILITY
2MFG                   8HSPOOLING   
2M^6 ...PAV7900        +AV7900E            [VIRTUAL 7900 %A NOW EXISTS  
2NDQ    PAV7900X       +AV7900X            [VIRTUAL 7900 %A NOW NON-EXISTENT
2NYB    [   
2PD2    [     SUBROUTINES   
2PXL    [   
2QC=    #   
2QWW    #     SUBROUTINE TO SEARCH A STRING OF CHARACTERS FOR THE FIRST 
2RBG    #     NON-SPACE CHARACTER . 
2RW6    #     ON ENTRY X3 -> START OF STRING ; X6 = LENGTH OF STRING IN CHARS   
2S*Q    #     IF A NON-SPACE CHAR NOT FOUND,EXITS +0 .  
2STB    #     IF A NON-SPACE CHAR FOUND,EXITS +1 WITH X3 -> NON-SPACE CHAR ;
2T*2    #     X6 = LENGTH OF STRING REMAINING INCLUDING THE NON-SPACE ; 
2TSL    #     X0 = THE NON-SPACE CHAR . 
2W#=    #     LINK IN X7 .  
2WRW    SNONSPACE   
2X?G    #   
2XR6          BZE   6  (7)                 [NON-SPACE CHAR NOT FOUND : EXIT +0  
2Y=Q          LDCH  0  0(3) 
2YQB          BXE   0  PSPACE(1),SNEXTCHAR  
2^=2          EXIT  7  1                   [NON-SPACE CHARACTER FOUND : EXIT +1 
2^PL    SNEXTCHAR   
329=          SBN   6  1
32NW          BCHX  3  SNONSPACE
338G    #   
33N6    #   
347Q    #     SUBROUTINE TO INCREMENT A CHARACTER INDEX WORD AND TO DECREMENT A 
34MB    #     COUNT WORD BY A SPECIFIED NUMBER. XJCONFERR IF COUNT GOES -VE .   
3572    #     ON ENTRY X3 = CHARACTER INDEX WORD TO BE INCREMENTED ;
35LL    #     X6 = COUNTER TO BE DECREMENTED ; X0 = THE NUMBER .
366=    #     LINK IN X7 .  
36KW    SUPDPTRCT   
375G          SLC   3  2
37K6          ADX   3  0
384Q          SRC   3  2
38JB          SBX   6  0
3942          BNG   6  XJCONFERR
39HL          EXIT  7  0
3=3=    #   
3=GW    #   
3?2G    #     SUBROUTINE TO CONVERT A DECIMAL CHAR STRING IN RANGE 1 TO 4095 TO 
3?G6    #     BINARY FORM. XJCONFERR IF DECIMAL INTEGER IS NOT IN RANGE .   
3?^Q    #     ON ENTRY X3 -> START OF DECIMAL CHAR STRING ; 
3#FB    #     X6 >= LENGTH OF DECIMAL CHAR STRING . 
3#^2    #     ON EXIT X0 = THE BINARY INTEGER ; X3 -> FIRST NON-NUMERIC CHAR ;  
3*DL    #     X6 = LENGTH OF STRING REMAINING . 
3*Y=    #     LINK IN X7 .  
3BCW    #   
3BXG    SCDB
3CC6          STO   4  GEN4 
3CWQ          STO   5  GEN5 
3DBB          LDN   4  0
3DW2          LDN   5  0
3F*L    SCDBCHAR
3FT=          BZE   6  SCDBTEST            [STRING EXHAUSTED
3G#W          CDB   4  0(3) 
3GSG          BCS      SCDBTEST            [STRING TERMINATED BY A NON-NUMERIC  
3H#6          SBN   6  1
3HRQ          BCHX  3  SCDBCHAR            [CONVERT NEXT CHAR   
3J?B    SCDBTEST
3JR2          BNZ   4  XJCONFERR           [BINARY NUMBER IS DOUBLE-LENGTH  
3K=L          BZE   5  XJCONFERR           [BINARY NUMBER IS ZERO   
3KQ=          BXGE  5  PIDENMAX(1),XJCONFERR[BINARY NUMBER IS > 4095
3L9W          STO   5  0
3LPG          LDX   4  GEN4 
3M96          LDX   5  GEN5 
3MNQ          EXIT  7  0
3N8B    #   
3NN2    #   
3P7L    #     SUBROUTINE TO TEST IF A STRING MATCHES A SPECIFIED SUBTYPE
3PM=    #     AND IF TRUE SETS A SPECIFIED FLAG IN AWORK2 . 
3Q6W    #   
3QLG    #     ON ENTRY X3 -> START OF STRING ; X6 = LENGTH OF STRING IN CHARS ; 
3R66    #     X1 -> SUBTYPE DETAILS OF THE SUBTYPE TO TEST FOR ;
3RKQ    #     SUBTYPE DETAILS : WORD 0 = LENGTH OF SUBTYPE, WORD 1 = SUBTYPE
3S5B    #     FLAG TO BE SET IN AWORK2, WORD 2 = SUBTYPE MNEMONIC . 
3SK2    #     EXITS +0 IF FALSE WITH X3 AND X6 UNCHANGED, X1 =FX1 . 
3T4L    #     EXITS +1 IF TRUE WITH X3 -> FIRST CHAR FOLLOWING THE SUBTYPE FIELD
3TJ=    #     AND X6 = LENGTH OF FIELD REMAINING, X1 = FX1 .
3W3W    #     LINK IN X7 .  
3WHG    #   
3X36    SMATCHSTYPE 
3XGQ          STO   3  GEN3 
3Y2B          STO   4  GEN4 
3YG2          STO   5  GEN5 
3Y^L          STO   6  GEN6 
3^F=          STO   7  GEN0 
3^YW          LDX   7  1(1)                [SUBTYPE FLAG TO BE SET  
42DG          LDX   4  0(1)                [LENGTH OF SUBTYPE   
42Y6          SBX   6  4                   [DECREMENT STRING LENGTH FOR SUBTYPE 
43CQ          BNG   6  SMATFAIL            [SUBTYPE LONGER THAN STRING  
43XB    SMATTEST
44C2          LDCH  0  0(3)                [STRING CHAR 
44WL          LDCH  5  2(1)                [SUBTYPE CHAR
45B=          BXU   0  5,SMATFAIL          [NO MATCH
45TW          BCHX  3  £
46*G          BCHX  1  £
46T6          BCT   4  SMATTEST            [TEST NEXT CHAR  
47#Q          ORS   7  AWORK2(2)           [SET SUBTYPE FLAG
47SB          LDN   7  1                   [EXIT +1 
48#2          ADS   7  GEN0 
48RL    SMATEXIT
49?=          LDX   1  FX1  
49QW          LDX   4  GEN4 
4==G          LDX   5  GEN5 
4=Q6          LDX   7  GEN0 
4?9Q          EXIT  7  0
4?PB    SMATFAIL
4#92          LDX   6  GEN6                [RESET STRING LENGTH 
4#NL          LDX   3  GEN3                [RESET STRING POINTER
4*8=          BRN      SMATEXIT            [EXIT +0 
4*MW    #   
4B7G    [   
4BM6    [     MAIN PATHS
4C6Q    [   
4CLB    #   
4D62    Z1MAKEVCC                          [MAKEVCC COMMAND 
4DKL    #   
4F5=    #              AWORK WORDS USAGE :  
4FJW    #              AWORK1 = VIRTUAL 7900 OPERATOR UNIT NUMBER   
4G4G    #              AWORK2 = CURRENT REMOTE DEVICE SPECIFICATION WORD (SEE   
4GJ6    #                       PSD 14.32.6,SECTION 5.3.3.(J).REMOTE DEVICE)
4H3Q    #              AWORK3 = CURRENT CONFIGURATION FILE RECORD NUMBER (=/> 0)
4HHB    #   
4K^G    #     VALIDATE THE TWO PARAMETERS   
4LF6          PARANUMB 5                   [GET COUNT OF PARAMETERS 
4LYQ          SBN   5  3                   [TEST NO MORE THAN 2 SPECIFIED   
4MDB          BPZ   5  XJTOOMANY
4MY2    #              TEST FOR THE UNIT NUMBER PARAMETER : U"N"
4NCL          LDN   5  1
4NX=          LDCT  6  #650                [LOOK FOR PARAM BEGINNING WITH "U"   
4PBW          PARABEG  1,5  
4PWG          MHUNT    3,CPB,CUNI   
4QB6          LDX   0  ANUM(3)  
4QTQ          BNG   0  XJPARMIS1           ["U" NON-EXISTENT
4R*B          BZE   0  XAPFERR             ["N" NON-EXISTENT
4RT2          CHNUMCOD ,3   
4S#L          TESTREP  CHNUMERR,VENDCOM    ["N" NOT A VALID NUMBER FORMAT   
4SS=          LDX   0  ACOMMUNE1(2)        [CHECK "N" IS IN THE RANGE 256 TO 511
4T?W          BXL   0  PUNITRANGE(1),XERANGE
4TRG          BXGE  0  PUNITRANGE+1(1),XERANGE  
4W?6          STO   0  AWORK1(2)           [SAVE UNIT NUMBER
4WQQ    #              TEST FOR THE ABSOLUTE FILE NAME PARAMETER
4X=B          SPARUNAC  
4XQ2          MHUNT    3,CPB,CUNI   
4Y9L          NGX   0  ANUM(3)  
4YP=          BPZ   0  XJPARMIS2           [FILE NAME PARAMETER MISSING 
4^8W          NAMETOP  3,FILE,FNAME        [CONVERT FILE NAME TO AN ABSOLUTE
4^NG ...      FNORM    128                   [FILE NAME BLOCK   
5286          TESTREP2 NAMEFORM,VENDCOM    [ERROR IN FILE NAME REPORTED 
52MQ          MHUNT    3,FILE,FNAME        [RENAME FNAME FOR USEROPEN   
537B          NAMETOP  3,CPB,CUNI   
53M2          MHUNT    3,FILE,FABSNB       [CHECK SYNTACTIC FORM IS AN ABSOLUTE 
546L                                       [NAME BY DEDUCTION   
54L=          JMBS     XAPFERR,3,BFABTSN,BFABLOCONLY,BFABWORK   
555W    #     OPEN THE CONFIGURATION FILE   
55KG          LDN   5  PCPREFIX(1)         [PRETEND TO BE IN USER CONTEXT UNDER 
5656          LDN   6  CPREFIX(2)          [:SYSTEM FOR USEROPEN MACRO BY   
56JQ          MOVE  5  3                   [SETTING UP CPREFIX  
574B          USEROPEN (GEOERR),READ,LEAVE,NOWAIT,REPLY 
57J2          REPERR2  VOPENED             [REPLY OK
583L          BRN      VENDCOM  
58H=    VOPENED 
592W          MHUNTW   3,FILE,ENT          [SET UP BY USEROPEN (MODE LEAVE) 
59GG          LDX   0  ETM(3)              [CHECK FILE TYPE IS BASIC
5=26          SRL   0  15   
5=FQ          BXU   0  PBASICFILE(1),XERWRONG   
5=^B    #     TIDY UP   
5?F2          MFREEW   FILE,ENT 
5?YL          MFREE    FILE,FABSNB  
5#D=    # CONVERT EACH CONFIGURATION FILE RECORD TO A DCP'S CONFIGURATION REPORT
5#XW    # REMOTE DEVICE SPECIFICATION WORD FORMAT AND STORE IN AN IDF/IREPORT   
5*CG    # BLOCK .   
5*X6          SETNCORE 65,4,IDF,IREPORT    [ALLOW AN ARBITRARY 64 ENTRIES   
5BBQ          STOZ     AWORK2(2)           [INITIALISE CURRENT REMOTE DEVICE
5BWB                                       [SPECIFICATION WORD .
5CB2          STOZ     AWORK3(2)           [INITIALISE CURRENT CONFIGURATION
5CTL                                       [FILE RECORD NUMBER .
5D*=    VNEXTRECORD 
5DSW          STEP                         [READ A CONFIGURATION FILE RECORD
5F#G          BZE   3  XJCONFERR           [END OF FILE : NO TERMINATOR 
5FS6          LDX   6  0(3) 
5G?Q          SBN   6  2                   [RECORD LENGTH IN WORDS MINUS HEADER 
5GRB          SLC   6  2                   [RECORD LENGTH IN CHARS PLUS ANY 
5H?2                                       [UNUSED SPACE CHARS IN LAST WORD 
5HQL    #              TEST FOR THE CONFIGURATION FILE TERMINATOR RECORD IN THE 
5J==    #              FIRST FOUR CHARS 
5JPW          BXL   6  PMINREC(1),XJCONFERR[RECORD LENGTH IS BELOW MINIMUM (4)  
5K9G          ADN   3  2                   [SET POINTER TO START OF RECORD DATA 
5KP6          LDX   0  0(3) 
5L8Q          BXE   0  PFILETERM(1),VTERMINATED  [CONFIG. FILE TERMINATOR FOUND 
5LNB    #              CONVERT THE IDENTIFIER FIELD TO AN IDENTIFIER NUMBER IN  
5M82    #              B12-23 OF AWORK2 
5MML          CALL  7  SNONSPACE           [SEARCH FOR THE IDENTIFIER FIELD 
5N7=          BRN      XJCONFERR           [IDENTIFIER FIELD NOT FOUND  
5NLW          BXU   0  PIDENPREFIX(1),XJCONFERR[IDEN FIELD NOT PREFIXED WITH "I"
5P6G          LDN   0  1                   [STEP TO NEXT CHAR (IDENTIFIER)  
5PL6          CALL  7  SUPDPTRCT
5Q5Q          CALL  7  SCDB                [CONVERT IDENTIFIER TO BINARY(IN X0) 
5QKB          LDX   5  AWORK2(2)
5R52          ANDN  5  #7777               [PREVIOUS IDENTIFIER NUMBER  
5RJL          STO   0  AWORK2(2)           [STORE NEW IDENTIFIER NUMBER 
5S4=          BXGE  5  0,XJCONFERR         [IDENTIFIER NUMBER NOT ASCENDING 
5SHW    #              CONVERT THE DEVICE TYPE FIELD TO A DEVICE TYPE NUMBER IN 
5T3G    #              B5-8 OF AWORK2   
5TH6          CALL  7  SNONSPACE           [SEARCH FOR THE DEVICE TYPE FIELD
5W2Q          BRN      XJCONFERR           [DEVICE TYPE FIELD NOT FOUND 
5WGB          SBN   6  2                   [DECREMENT RECORD LENGTH FOR DEV TYPE
5X22          BNG   6  XJCONFERR           [DEVICE TYPE FIELD NOT FOUND 
5XFL          LDN   0  0
5X^=          LDN   4  0                   [OBTAIN THE 2 CHAR DEVICE TYPE IN X0 
5YDW          MVCH  3  2                   [AND STEP PAST THE DEVICE TYPE CHARS 
5YYG    #                                   MATCH WITH RECOGNISED DEVICE TYPE   
5^D6    #                                   MNEMONICS   
5^XQ          BXE   0  PDTLP(1),VDTLP   
62CB          BXE   0  PDTCR(1),VDTCR   
62X2          BXE   0  PDTTW(1),VDTTW   
63BL          BXE   0  PDTTR(1),VDTTR   
63W=          BXE   0  PDTTP(1),VDTTP   
65*6          MVCH  3  1                   [NOT A 2 CHAR DEVICE TYPE:TEST FOR 3 
65SQ          SBN   6  1                   [DECREMENT RECORD LENGTH FOR DEV TYPE
66#B          BXE   0  PDTTTW(1),VDTTT  
66S2          BXE   0  PDTVDU(1),VDTVD  
67R=          BRN      XJCONFERR           [DEVICE TYPE FIELD INVALID   
68=W    #                                   PICK UP CORRESPONDING DEVICE TYPE   
68QG    #                                   NUMBER  
69=6    VDTTT LDN   0  PTTDT
69PQ          BRN      VDTPACK  
6=9B    VDTLP LDN   0  PLPDT
6=P2          BRN      VDTPACK  
6?8L    VDTCR LDN   0  PCRDT
6?N=          BRN      VDTPACK  
6#7W    VDTTW LDN   0  PTWDT
6#MG          BRN      VDTPACK  
6*76    VDTTR LDN   0  PTRDT
6*LQ          BRN      VDTPACK  
6B6B    VDTTP LDN   0  PTPDT
6BL2          BRN      VDTPACK  
6C5L    VDTVD LDN   0  PVDDT
6CK=    VDTPACK 
6D4W          SRC   0  9
6DJG          ORS   0  AWORK2(2)
6F46    #              CONVERT ANY SUBTYPE FIELDS TO SPECIAL FLAGS IN   
6FHQ    #              B9-11 OF AWORK2  
6G3B    VNEXTSTYPE  
6GH2          CALL  7  SNONSPACE           [SEARCH FOR A SUBTYPE FIELD  
6H2L          BRN      VRECORDOK           [NO MORE SUBTYPES
6HG=          LDN   1  PST7502(1)          [TEST FOR SUBTYPE 7502   
6H^W          CALL  7  SMATCHSTYPE  
6JFG          BRN      VSTSPOOLING         [NO MATCH
6J^6          LDX   0  AWORK2(2)           [CHECK DEVICE TYPE IS LP 
6KDQ          SRL   0  15   
6KYB          SBN   0  PLPDT
6LD2          BNZ   0  XJCONFERR           [DEVICE TYPE NOT LP  
6LXL          BRN      VNEXTSTYPE          [ANYMORE SUBTYPES ?  
6MC=    VSTSPOOLING 
6MWW          LDN   1  PSTSPOOLING(1)      [TEST FOR SUBTYPE SPOOLING   
6NBG          CALL  7  SMATCHSTYPE  
6NW6          BRN      XJCONFERR           [NO MATCH : SUBTYPE NOT RECOGNISED   
6P*Q          BRN      VNEXTSTYPE          [ANYMORE SUBTYPES ?  
6PTB    #              STORE THE REMOTE DEVICE SPECIFICATION WORD (AWORK2) IN   
6Q*2    #              THE IDF/IREPORT BLOCK
6QSL    VRECORDOK   
6R#=          MHUNTW   3,IDF,IREPORT
6RRW          LDX   4  ALOGLEN(3)          [TEST IF ROOM EXISTS FOR THE WORD
6S?G          SBN   4  2                   [(NUMBER OF THE LAST ENTRY)  
6SR6          BXL   4  AWORK3(2),VEXTEND   [NO ROOM 
6T=Q          LDX   0  AWORK2(2)           [STORE NEW ENTRY 
6TQB          SMO      AWORK3(2)
6W=2          STO   0  A1+1(3)  
6WPL          LDN   0  1                   [UPDATE RECORD NUMBER FOR NEXT RECORD
6X9=          ADS   0  AWORK3(2)
6XNW          BRN      VNEXTRECORD         [PROCESS THE NEXT RECORD 
6Y8G    VEXTEND                            [EXTEND THE IREPORT BLOCK BY AN  
6YN6                                       [ARBITRARY 64 WORDS AND RETURN   
6^7Q          ADN   4  2+64 
6^MB          ALTLEN   3,4,IDF,IREPORT  
7272          BRN      VRECORDOK
72LL    VTERMINATED 
736=          LDX   4  AWORK3(2)
73KW          BZE   4  XJCONFERR           [CURRENT CONFIGURATION FILE RECORD   
745G                                       [NUMBER = 0  : NULL CONFIGURATION
74K6          CLOSE                        [THE CONFIGURATION FILE  
754Q          ADN   4  1                   [SET UP IDF/IREPORT COUNT WORD   
75JB          MHUNTW   3,IDF,IREPORT
7642          STO   4  A1(3)
76HL          ALTLENG  3,4                 [SHORTEN IDF/IREPORT IF NOT FULL 
773=    #     CREATE THE VIRTUAL 7900 IN THE IDF AND CORE   
77GW          LDX   0  AWORK1(2)           [SET THE VIRTUAL 7900'S OPS UNIT NO. 
782G          STO   0  ACOMMUNE1(2)        [IN ACOMMUNE1 FOR K3SETIDF   
78G6 ...      DOWN     IDFCHK,3 
78^Q          LDX   3  ACOMMUNE1(2)        [VIRTUAL 7900 DEVICE LIST POINTER
79FB                                       [(RETURNED BY K3SETIDF)  
79^2          BZE   3  XERALREX            [VIRTUAL 7900 UNIT NO. ALREADY EXISTS
7=DL    #     INSERT THE IDENTIFIER CONFIGURATION(IDF/IREPORT) IN THE IDF   
7=Y=          IDFTPUPD (GEOERR),3   
7?CW          LDN   0  0
7?XG          DSA   0  ATYPE(3)            [NOW THAT THE VIRTUAL 7900 HAS A 
7#C6                                       [CONFIGURATION INDICATE THAT IT IS NO
7#WQ                                       [LONGER BEING CREATED BY ZEROISING   
7*BB                                       [APERI/AV7900.ATYPE.B12-23(WHICH WAS 
7*W2                                       [SET BY K3SETIDF)
7*YK ...      SETNCORE 499,2,AMXOR,AJOURN   
7B38 ...      STOZ     IPBCOUNT(2)  
7B5R ...      STO   3  IPBDATA+497(2)   
7B8B ...      LAMOP    3,4  
7B=^ ...      CHAIN    2,4  
7B*L    #     INFORM THE CENTRAL OPERATOR AND ENDCOM
7BT=          LDX   6  PAV7900(1)   
7C#W    VINFORMX
7CSG          GEOPACK  5,AWORK1(2),UNIT    [OUTPUT UNIT NO. PARAMETER : U'N'
7D#6          OUTPACK  5,1,GEOPER   
7DRQ          INFORMX  ,6,1                [CENTRAL OPERATOR
7F?B    VENDCOM 
7FR2          ENDCOM
7G=L    #   
7GQ=    Z2MAKEVCC   
7H9W    #   
7KN2    #     VALIDATE THE UNIT NUMBER PARAMETER
7L7L          PARSORT  (GEOERR) 
7LM=          HUNTW    3,CPAR,JSCE  
7M6W          BNG   3  VENDCOM             [UNIT NO. PARAMETER MISSING/INVALID  
7MLG          SAWCEJX  JSCEB(3),VLOCALUNIT,XJUNITERR,XJUNITERR  
7N66    VLOCALUNIT  
7NKQ          LDCH  0  JSCEA(3) 
7P5B          SBN   0  PTYPE7900
7PK2          BNZ   0  XJUNITERR           [UNIT NOT A 7900 
7Q4L          JV7900   JSCEP(3),VIRTUAL7900 
7QJ=          BRN      XJUNITERR           [UNIT NOT A VIRTUAL 7900 
7R3W    #     TEST VIRTUAL 7900 IS MOPPED OFF AND IS NOT BEING MOPPED ON NOR
7RHG    #     ACCESSED (WITHOUT COORDINATING)   
7S36    VIRTUAL7900 
7SGQ          JALLOC   JSCEP(3),XJRES1     [MOPPED ON   
7T2B          LAMOP    JSCEP(3),4          [SET X4 -> V7900 AMOP/IPBIN ACTIVITY 
7TG2          LDCT  0  #10  
7T^L          SMO      4
7WF=          ANDX  0  IPBSW
7WYW          BNZ   0  XJRES1              [BEING MOPPED ON 
7XDG    #              NOTE THE V7900 AMOP/IPBIN IS NOW IMPLICITLY ASLEEP   
7XY6          SMO      JSCEP(3)            [TEST IF V7900 IS BEING ACCESSED BY  
7Y9G ...      LDN   0  AVOLPARING   
7YGW ...      SMO      JSCEP(3) 
7YS= ...      TXU   0  AVOLPARING   
7^5L ...      BCS      XJRES1             [J IF BEING ACCESSED BY A PROG
7^C2          LGEOG    JSCEP(3),0          [SET THE V7900 OPS UNIT NO FOR INFORM
7^WL          STO   0  AWORK1(2)
82B=    #     REMOVE THE VIRTUAL 7900 FROM CORE :   
82TW    #     REMOVE THE DEVICE LIST FROM THE MISCELLANEOUS CHAIN AND THE AMOP/ 
83*G    #     IPBIN FROM THE IPB LIST (WITHOUT COORDINATING)
83T6    #     FINALLY MURDER THE AMOP/IPBIN .   
84#Q    #              REMOVE THE V7900 DEVICE LIST FROM THE MISCELLANEOUS CHAIN
84SB    #              AS IT CAN NOT BE DESTROYED YET   
85#2          CHAIN    JSCEP(3),2          [CHAIN IT TO THIS CPAT   
85RL    #              REMOVE THE V7900 AMOP/IPBIN FROM THE IPB LIST :: 
86?=    #              SEARCH THE IPB LIST FOR ITS POINTER TO THE V7900 AMOP/   
86QW    #              IPBIN ACTIVITY AND REPLACE IT WITH THE V7900 AMOP/IPBIN'S
87=G    #              POINTER TO THE NEXT AMOP/IPBIN(IPBL) 
87Q6          LDN   3  IPBADDR-IPBL        [BEGIN SEARCH WITH IPBADDR   
889Q    VPTRSEARCH  
88PB          LDX   0  IPBL(3)  
8992          BXE   0  4,VPTRFOUND         [POINTER FOUND   
89NL          STO   0  3                   [CHECK NEXT AMOP/IPBIN'S IPBL
8=8=          BRN      VPTRSEARCH   
8=MW    VPTRFOUND   
8?7G          SMO      4
8?M6          LDX   0  IPBL                [V7900 AMOP/IPBIN'S PTR TO NEXT AMOP 
8#6Q          STO   0  IPBL(3)             [OVERWRITE PTR TO THE V7900 AMOP 
8#LB    #              MURDER THE V7900 AMOP/IPBIN  
8*62          MURDER   4                   [AMOP/IPBIN IS ALWAYS LOCKED 
8*KL    #     REMOVE THE VIRTUAL 7900 FROM THE IDF  
8B5=          MHUNTW   3,APERI,AV7900      [REMAINS LOCKED  
8BJW          IDFTPUPD (GEOERR),3          [THE WHOLE UNIT WILL BE REMOVED AS   
8C4G                                       [NO IDF/IREPORT BLOCK IS PRESENT 
8CJ6    #     INFORM THE CENTRAL OPERATOR AND ENDCOM
8D3Q    #     LET ENDCOM DESTROY THE V7900 DEVICE LIST  
8DHB          LDX   6  PAV7900X(1)  
8F32          BRN      VINFORMX 
8FGL    #   
8G2=    [   
8GFW    [     EXCEPTION PATHS   
8G^G    [   
8HF6    XJPARMIS1   
8HYQ          COMERR   JPARMIS,JUNNO       [UNIT NUMBER PARAMETER MISSING   
8JDB          ZERRORY                      ["COMERRX"   
8JY2    XJCOMDEV                           [K1MAKEVCC & K2MAKEVCC   
8KCL          ZERRORX  JCOMDEV             [THIS COMMAND IS ONLY ALLOWED IN A   
8KX=                                       [DME ENVIRONMENT 
8LBW    XJTOOMANY   
8LWG          ZERRORX  JTOOMANY            [TOO MANY PARAMETERS 
8MB6    XAPFERR 
8MTQ          ZERRORX  APFERR              [PARAMETER FORMAT ERROR  
8N*B    XJPARMIS2   
8NT2          COMERR   JPARMIS,JFNAME      [FILE NAME PARAMETER MISSING 
8P#L    XERANGE 
8PS=          ZERRORX  ERANGE              [%C IS OUT OF RANGE  
8Q?W    XERWRONG
8QRG          CLOSE 
8R?6          ZERRORX  ERWRONG             [ENTRANT %C IS OF THE WRONG TYPE FOR 
8RQQ                                       [THIS OPERATION  
8S=B    XJCONFERR   
8SQ2    #SKI  K6VIPB>599-599
8T9L    (   
8TP=          STO   0  GEN0 
8W8W          LDX   0  ASWITCH1            [IF MOP TR IS "ON", GEOERR INSTEAD . 
8WNG          SLL   0  7
8X86          BNG   0  (GEOERR) 
8XMQ    )   
8Y7B          CLOSE                        [THE CONFIGURATION FILE  
8YM2          OUTNUM   AWORK3(2),0         [CONVERT THE CURRENT CONFIGURATION   
8^6L                                       [FILE RECORD NO. TO A MESSAGE PARAM. 
8^L=          ZERRORX  JCONFERR            [CONFIGURATION RECORD %A INVALID 
925W    XERALREX
92KG    #              ACCESS THE COMPLETE UNIT NUMBER PARAMETER FOR THIS   
9356    #              ERROR MESSAGE
93JQ          MFREE    CPB,CUNI            [FILE NAME CUNI  
944B          MHUNT    3,CPB,CUNI          [UNIT NUMBER CUNI
94J2          PARANOTX JPARNUM(3)   
953L    #   
95H=          ZERRORX  ERALREX             [%C ALREADY EXISTS   
962W    XJUNITERR                          [K2MAKEVCC   
96GG          LDN   4  0
9726          BRN      XPERIDESC
97FQ    XJRES1                             [K2MAKEVCC   
97^B          LDN   4  1
98F2    XPERIDESC   
98YL          LDX   5  JSCEQ(3)            [GET PARAMETER LENGTH
99D=          ANDN  5  #7777
99XW          OUTPARAM 5,JSCER,CPAR,JSCE   [OUTPUT PERIPHERAL DESCRIPTION PARAM 
9=CG          BNZ   4  XZJRES1             [XJRES1 ENTRY
9=X6          ZERRORX  JUNITERR            [UNIT %A IS NOT A SUITABLE DEVICE
9?BQ    XZJRES1 
9?WB          ZERRORX  JRES1               [UNIT %A NOT IN REQUIRED STATE   
9#B2    #END
^^^^ ...561652210004
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1