User Tools

Site Tools


cdc:nos2.source:opl.opl871:common:compapi

Common COMPAPI

4 Modifications

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.compapi +++|          CTEXT  COMPAPI - *APP* INTERFACE.
00002  M01S00002.compapi +++| API      SPACE  4,10
00003  M01S00003.compapi +++| QUAL$    IF     -DEF,QUAL$
00004  M01S00004.compapi +++|          QUAL   COMPAPI
00005  M01S00005.compapi +++| QUAL$    ENDIF
Line S00006 Modification History
M01 (Added by) compapi
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00006  M02S00006.281l803 ---|*         COMMENT  CONTROL DATA CORPORATION. 1984.
00007  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00008  M01S00007.compapi +++|          BASE   MIXED
00009  M01S00008.compapi +++| API      SPACE  4,10
00010  M01S00009.compapi +++|***       API -  *APP* INTERFACE.
00011  M01S00010.compapi +++|*         P. T. BARNETT      84/01/01.
00012  M01S00011.compapi +++|*         R. M. DANISCH      84/03/25.
00013  M01S00012.compapi +++| API      SPACE  4,50
00014  M01S00013.compapi +++|***       *API* IS THE SOLE INTERFACE TO PP PROGRAM *APP* THAT IS
00015  M01S00014.compapi +++|*         INITIALIZED AND ACTIVATED BY *CTI* AT DEADSTART.  THERE
00016  M01S00015.compapi +++|*         ARE SEVERAL SECTIONS IN THIS DECK, WHICH ARE ASSEMBLED
00017  M01S00016.compapi +++|*         ACCORDING TO THE DEFINITION OF THE FOLLOWING SYMBOLS:
00018  M01S00017.compapi +++|*
00019  M01S00018.compapi +++|*         API$ - THE STANDARD *APP* REQUEST PROCESSOR.  THIS
Line S00019 Modification History
M01 (Added by) compapi
M02 (Updated by) ns2418
Seq #  *Modification Id* Act 
----------------------------+
00020  M02S00019.ns2418  ---|*                IS USED FOR FUNCTIONS 1 - 16B.
00021  M01S00001.ns2418  +++|*                IS USED FOR DATA RETRIEVAL FUNCTIONS.
00022  M01S00020.compapi +++|*
00023  M01S00021.compapi +++|*         CDA$ - THE COMMON DISK AREA REQUEST PROCESSOR.  THIS ONE
00024  M01S00022.compapi +++|*                IS USED FOR RETRIEVAL OF DATA FROM THE COMMON DISK
00025  M01S00023.compapi +++|*                AREA, SUCH AS CONTROLWARE, MICROCODE, ETC.
00026  M01S00024.compapi +++|*
00027  M01S00025.compapi +++|*         APM$ - THE *APP* MANAGEMENT PROCESSOR.  THIS IS USED
00028  M01S00026.compapi +++|*                FOR MANIPULATION OF *APP*, AND IS NOT FOR
00029  M01S00027.compapi +++|*                RETRIEVING DATA OF ANY KIND (FUNCTIONS 21B, 76B, 77B).
00030  M01S00028.compapi +++|*
00031  M01S00029.compapi +++|*         PRS$ - THE COMMON DECK PRESET PROCESSOR.  THIS ONLY PRESETS
00032  M01S00030.compapi +++|*                THE CHANNEL NUMBER IN ALL OF THE CHANNEL INSTRUCTIONS,
00033  M01S00031.compapi +++|*                AND CAN BE DONE INDEPENDENTLY.
00034  M01S00032.compapi +++|*
00035  M01S00033.compapi +++|*         EACH SECTION IS INDEPENDENT OF THE OTHERS, AND ONLY THE
00036  M01S00034.compapi +++|*         ONE(S) REQUIRED IN A PARTICULAR DECK NEED BE SELECTED.
00037  M01S00035.compapi +++|*
00038  M01S00036.compapi +++|*         THE ENTRY POINT FOR EACH ROUTINE IS THE SAME AS THE SYMBOL
00039  M01S00037.compapi +++|*         FOR SELECTING ASSEMBLY OF IT, WITH THE DOLLAR SIGN ($)
00040  M01S00038.compapi +++|*         TRUNCATED FROM IT.  AN UNQUALIFIED FORM OF *PRS* WILL NOT BE
00041  M01S00039.compapi +++|*         GENERATED IF *QUAL$* IS DEFINED.
00042  M01S00040.compapi +++|*
00043  M01S00041.compapi +++|*         *COMPCHM* (WHICH REDEFINES THE CHANNEL INSTRUCTIONS) MUST BE
00044  M01S00042.compapi +++|*         INCLUDED WITH THIS COMMON DECK IF *PRS$* IS SELECTED.  IF
00045  M01S00043.compapi +++|*         *PRS$* IS NOT DEFINED, THEN ANY METHOD OF SELECTING THE
00046  M01S00044.compapi +++|*         PROPER CHANNEL MAY BE USED, INCLUDING DEFINITION OF
00047  M01S00045.compapi +++|*         THE SYMBOL *AC* (THE *APP* COMMUNICATIONS CHANNEL).
00048  M01S00046.compapi +++|*
00049  M01S00047.compapi +++|*         *COMSDSL* AND *COMSPIM* ARE ALSO REQUIRED.
00050  M01S00048.compapi +++|
00051  M01S00049.compapi +++|
00052  M01S00050.compapi +++| APCL     EQU    2           *APP* COMMAND DATA LENGTH
00053  M01S00051.compapi +++| API      SPACE  4,10
00054  M01S00052.compapi +++|**        THE FOLLOWING DEFINES *AC* TO BE ZERO (SO THAT */COMPAPI/PRS*
00055  M01S00053.compapi +++|*         WILL WORK PROPERLY) IF IT HAS NOT BEEN PREVIOUSLY DEFINED.
00056  M01S00054.compapi +++|*         THE USER OF THIS COMMON DECK CAN PREDEFINE THE ALTERNATE
00057  M01S00055.compapi +++|*         PP COMMUNICATIONS CHANNEL TO A PARTICULAR VALUE WITHOUT FEAR
00058  M01S00056.compapi +++|*         OF IT BEING RESET.
00059  M01S00057.compapi +++|
00060  M01S00058.compapi +++|
00061  M01S00059.compapi +++| .A       IF     -DEF,AC
00062  M01S00060.compapi +++|
00063  M01S00061.compapi +++| AC       EQU    0           *APP* COMMUNICATIONS CHANNEL
00064  M01S00062.compapi +++|
00065  M01S00063.compapi +++| .A       ENDIF
00066  M01S00064.compapi +++| EXCSI    SPACE  4,15
00067  M01S00065.compapi +++|**        EXCSI - EXECUTE CHANNEL STATUS INSTRUCTION.
00068  M01S00066.compapi +++|*
00069  M01S00067.compapi +++|*         THIS MACRO IS USED TO EXECUTE ALL CHANNEL STATUS
00070  M01S00068.compapi +++|*         INSTRUCTIONS (AJM, IJM, EJM, FJM).  IT PROVIDES THE TIMEOUT
00071  M01S00069.compapi +++|*         MECHANISM NEEDED TO AVOID HANGING THE NOS PP DUE TO *APP*
00072  M01S00070.compapi +++|*         COMMUNICATION PROBLEMS.
00073  M01S00071.compapi +++|*
00074  M01S00072.compapi +++|*         EXCSI  INSTR,ERRAD
00075  M01S00073.compapi +++|*
00076  M01S00074.compapi +++|*         ENTRY  INSTR = INSTRUCTION (AJM, IJM, EJM, FJM).
00077  M01S00075.compapi +++|*                ERRAD = TRANSFER ADDRESS IN CASE OF TIMEOUT.
00078  M01S00076.compapi +++|
00079  M01S00077.compapi +++|
00080  M01S00078.compapi +++|          PURGMAC  EXCSI
00081  M01S00079.compapi +++|
00082  M01S00080.compapi +++| EXCSI    MACRO  INSTR,ERRAD
00083  M01S00081.compapi +++|  MACREF EXCSI
00084  M01S00082.compapi +++|.1 SET 0
00085  M01S00083.compapi +++|.A ECHO ,TB=(AJM,EJM,FJM,IJM)
00086  M01S00084.compapi +++|.B IFC EQ,$TB$INSTR$
00087  M01S00085.compapi +++|.1 SET 1
00088  M01S00086.compapi +++|  STOPDUP
00089  M01S00087.compapi +++|.B ENDIF
00090  M01S00088.compapi +++|.A ENDD
00091  M01S00089.compapi +++|.A IFEQ .1,1
00092  M01S00090.compapi +++|  LDC INSTR_I
00093  M01S00091.compapi +++|  RJM ECI
00094  M01S00092.compapi +++|  MJP ERRAD
00095  M01S00093.compapi +++|.A ELSE
00096  M01S00094.compapi +++|  ERR INCORRECT INSTRUCTION TYPE - INSTR
00097  M01S00095.compapi +++|.A ENDIF
00098  M01S00096.compapi +++| EXCSI    ENDM
00099  M01S00097.compapi +++| API      SPACE  4,25
00100  M01S00098.compapi +++|**        API -  *APP* DATA REQUEST PROCESSOR.
00101  M01S00099.compapi +++|*
00102  M01S00100.compapi +++|*         ENTRY  (A) = 6/ FCN, 12/ ADDR
Line S00101 Modification History
M01 (Added by) compapi
M02 (Updated by) ns2418
Seq #  *Modification Id* Act 
----------------------------+
00103  M02S00101.ns2418  ---|*                FCN  = FUNCTION CODE (1 - 16B)
00104  M01S00002.ns2418  +++|*                FCN = FUNCTION CODE.
00105  M01S00102.compapi +++|*                ADDR = ADDRESS OF BUFFER TO RECEIVE DATA.
00106  M01S00103.compapi +++|*
00107  M01S00104.compapi +++|*         THE FUNCTION CODES ARE DEFINED IN *COMSDSL*.  IF FUNCTION
00108  M01S00105.compapi +++|*         12B (CPDS) IS SPECIFIED, THEN THE NUMBER OF THE PROCESSOR
00109  M01S00106.compapi +++|*         FOR WHICH THE DESCRIPTOR IS BEING REQUESTED MUST BE IN
00110  M01S00107.compapi +++|*         THE FIRST BYTE OF THE BUFFER SPECIFIED BY *ADDR*.
00111  M01S00108.compapi +++|*
00112  M01S00109.compapi +++|*         EXIT   (A) = 0  IF REQUEST COMPLETED SUCCESSFULLY.
00113  M01S00110.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00114  M01S00111.compapi +++|*                      NOT RESPONDING.
00115  M01S00112.compapi +++|*                (ADDR) = WORD COUNT OF DATA TO FOLLOW.
00116  M01S00113.compapi +++|*                (ADDR+APDL - ADDR+N) = DATA.
00117  M01S00114.compapi +++|*
00118  M01S00115.compapi +++|*         IF THE WORD COUNT IS ZERO, THEN THERE WAS NO DATA RETURNED.
00119  M01S00116.compapi +++|*
00120  M01S00117.compapi +++|*         USES   T3.
00121  M01S00118.compapi +++|*
00122  M01S00119.compapi +++|*         CALLS  CAI, WAR.
00123  M01S00120.compapi +++|*
00124  M01S00121.compapi +++|*         MACROS EXCSI.
00125  M01S00122.compapi +++|
00126  M01S00123.compapi +++|
00127  M01S00124.compapi +++| .B       IF     DEF,API$
00128  M01S00125.compapi +++|
00129  M01S00126.compapi +++| API2     LDC    CAIA+400000  SET *APP* NOT RESPONDING
00130  M01S00127.compapi +++|
00131  M01S00128.compapi +++| API      SUBR               ENTRY/EXIT
00132  M01S00129.compapi +++|          STD    T3
00133  M01S00130.compapi +++|          ADK    APDL        DATA OFFSET
00134  M01S00131.compapi +++|          STM    APIA
00135  M01S00132.compapi +++|          RJM    CAI         COMMON *APP* INITIALIZATION
00136  M01S00133.compapi +++|          MJN    APIX        IF *APP* NOT RESPONDING
00137  M01S00134.compapi +++|          LDD    T2          FUNCTION CODE
00138  M01S00135.compapi +++|          LMK    CPDS
00139  M01S00136.compapi +++|          NJN    API1        IF NOT PROCESSOR DESCRIPTOR REQUEST
00140  M01S00137.compapi +++|          LDI    T3          GET PROCESSOR NUMBER
00141  M01S00138.compapi +++|          OAN    AC
00142  M01S00139.compapi +++| API1     EXCSI  FJM,API2    WAIT FOR CHANNEL EMPTY
00143  M01S00140.compapi +++|          DCN    AC          DEACTIVATE CHANNEL
00144  M01S00141.compapi +++|          RJM    WAR         WAIT FOR *APP* RESPONSE
00145  M01S00142.compapi +++|          MJN    APIX        IF *APP* NOT RESPONDING
00146  M01S00143.compapi +++|          IAN    AC          INPUT DATA LENGTH
00147  M01S00144.compapi +++|          STI    T3          STORE LENGTH OF SUBSEQUENT DATA
00148  M01S00145.compapi +++|          ZJN    APIX        IF NO DATA
00149  M01S00146.compapi +++|          IAM    **,AC       INPUT DATA
00150  M01S00147.compapi +++| APIA     EQU    *-1         DATA BUFFER ADDRESS + APDL
00151  M01S00148.compapi +++|          NJN    API2        IF PREMATURE TERMINATION
00152  M01S00149.compapi +++|          UJN    APIX        RETURN
00153  M01S00150.compapi +++|
00154  M01S00151.compapi +++| .B       ENDIF
00155  M01S00152.compapi +++| CDA      SPACE  4,30
00156  M01S00153.compapi +++|**        CDA -  COMMON DISK AREA REQUEST PROCESSOR.
00157  M01S00154.compapi +++|*
00158  M01S00155.compapi +++|*         ENTRY  (A) = 6/ FCN, 18/ ADDR
00159  M01S00156.compapi +++|*                FCN    = FUNCTION CODE (20B).
00160  M01S00157.compapi +++|*                ADDR   = ADDRESS OF BUFFER TO RECEIVE DATA.
00161  M01S00158.compapi +++|*                (ADDR) = 18/ NAME, 6/0
00162  M01S00159.compapi +++|*                NAME   = 3 CHARACTER (DISPLAY CODE) NAME
00163  M01S00160.compapi +++|*                         OF DATA TO RETURN.
00164  M01S00161.compapi +++|*
00165  M01S00162.compapi +++|*         EXIT   (A) = 0  IF REQUEST COMPLETED SUCCESSFULLY.
00166  M01S00163.compapi +++|*                (A) = 1/0, 5/EC, 12/MESSAGE ADDRESS   IF *APP*
00167  M01S00164.compapi +++|*                      RETURNED ERROR.
00168  M01S00165.compapi +++|*                      EC = 1  IF REQUEST NOT FOUND.
00169  M01S00166.compapi +++|*                           2  IF DISK STATUS ERROR.
00170  M01S00167.compapi +++|*                           3  IF COMMON DISK AREA ERROR.
00171  M01S00168.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00172  M01S00169.compapi +++|*                      NOT RESPONDING.
00173  M01S00170.compapi +++|*                (ADDR) = STATUS:
00174  M01S00171.compapi +++|*                         4XXX - IF LAST PORTION OF REQUEST.
00175  M01S00172.compapi +++|*                                XXX = REMAINING WORD COUNT.
00176  M01S00173.compapi +++|*                         0XXX - ERROR STATUS OR FULL SECTOR.
00177  M01S00174.compapi +++|*                                XXX = 500  IF FULL SECTOR.
00178  M01S00175.compapi +++|*                                    = 1  IF REQUEST NOT FOUND.
00179  M01S00176.compapi +++|*                                    = 2  DISK STATUS ERROR.
00180  M01S00177.compapi +++|*                                    (GENERAL STATUS IN (ADDR+APDL))
00181  M01S00178.compapi +++|*                                    = 3  IF NO COMMON DISK AREA.
00182  M01S00179.compapi +++|*                (ADDR+APDL - ADDR+N) = REQUESTED DATA.
00183  M01S00180.compapi +++|*
00184  M01S00181.compapi +++|*         THE 7700 TABLE WILL BE TRANSMITTED WITH THE REQUEST.
00185  M01S00182.compapi +++|*
00186  M01S00183.compapi +++|*         CALLS  CAI, WAR.
00187  M01S00184.compapi +++|*
00188  M01S00185.compapi +++|*         USES   T1.
00189  M01S00186.compapi +++|*
00190  M01S00187.compapi +++|*         MACROS EXCSI.
00191  M01S00188.compapi +++|
00192  M01S00189.compapi +++|
00193  M01S00190.compapi +++| .C       IF     DEF,CDA$
00194  M01S00191.compapi +++|
00195  M01S00192.compapi +++| CDA8     LDC    CAIA+400000 SET *APP* NOT RESPONDING
00196  M01S00193.compapi +++|
00197  M01S00194.compapi +++| CDA      SUBR               ENTRY/EXIT
00198  M01S00195.compapi +++|          STM    CDAA        DATA BUFFER ADDRESS
00199  M01S00196.compapi +++|          STM    CDAB
00200  M01S00197.compapi +++|          ADK    APDL        ADD DATA OFFSET
00201  M01S00198.compapi +++|          STM    CDAC
00202  M01S00199.compapi +++|          STM    CDAD
00203  M01S00200.compapi +++|          RJM    CAI         ISSUE *APP* FUNCTION
00204  M01S00201.compapi +++|          MJN    CDAX        IF *APP* NOT RESPONDING
00205  M01S00202.compapi +++|          LDK    CPNL        LENGTH OF NAME
00206  M01S00203.compapi +++|          OAM    **,AC       OUTPUT DATA NAME
00207  M01S00204.compapi +++| CDAA     EQU    *-1         DATA BUFFER ADDRESS
00208  M01S00205.compapi +++| CDA1     NJN    CDA8        IF PREMATURE TERMINATION
00209  M01S00206.compapi +++|          STM    CDAE
00210  M01S00207.compapi +++|          EXCSI  FJM,CDA8    WAIT FOR CHANNEL EMPTY
00211  M01S00208.compapi +++|          DCN    AC          DEACTIVATE CHANNEL
00212  M01S00209.compapi +++|          RJM    WAR         WAIT *APP* RESPONSE
00213  M01S00210.compapi +++|          MJN    CDAX        IF *APP* NOT RESPONDING
00214  M01S00211.compapi +++|          IAN    AC          INPUT STATUS WORD
00215  M01S00212.compapi +++|          STM    **          STORE IN DATA BUFFER
00216  M01S00213.compapi +++| CDAB     EQU    *-1         DATA BUFFER ADDRESS
00217  M01S00214.compapi +++|          LPC    4777
00218  M01S00215.compapi +++|          STD    T1
00219  M01S00216.compapi +++|          SHN    21-13
00220  M01S00217.compapi +++|          MJN    CDA4        IF LAST PORTION OF REQUESTED DATA
00221  M01S00218.compapi +++|          SHN    13-21+22
00222  M01S00219.compapi +++|          LMC    500
00223  M01S00220.compapi +++|          NJN    CDA7        IF ERROR
00224  M01S00221.compapi +++|          LDD    T1
00225  M01S00222.compapi +++|          IAM    **,AC
00226  M01S00223.compapi +++| CDAC     EQU    *-1
00227  M01S00224.compapi +++| CDA2     NJN    CDA1        IF PREMATURE TERMINATION
00228  M01S00225.compapi +++| CDA3     LJM    CDAX        RETURN
00229  M01S00226.compapi +++|
00230  M01S00227.compapi +++| CDA4     SHN    1
00231  M01S00228.compapi +++|          SHN    -7
00232  M01S00229.compapi +++|          ZJN    CDA6        IF NO DATA
00233  M01S00230.compapi +++| CDA5     IAM    **,AC
00234  M01S00231.compapi +++| CDAD     EQU    *-1
00235  M01S00232.compapi +++|          NJN    CDA2        IF PREMATURE TERMINATION
00236  M01S00233.compapi +++| CDA6     DCN    AC
00237  M01S00234.compapi +++|          LDC    **          SET EXIT STATUS
00238  M01S00235.compapi +++| CDAE     EQU    *-1
00239  M01S00236.compapi +++|          UJN    CDA3        RETURN
00240  M01S00237.compapi +++|
Line S00238 Modification History
M01 (Added by) compapi
M02 (Updated by) papi1
Seq #  *Modification Id* Act 
----------------------------+
00241  M02S00238.papi1   ---| CDA7     LDM    TEMS,T1     SET MESSAGE ADDRESS
00242  M01S00001.papi1   +++| CDA7     LDM    TEMS-1,T1   SET MESSAGE ADDRESS
00243  M01S00239.compapi +++|          STM    CDAE
00244  M01S00240.compapi +++|          LDD    T1          SET ERROR CODE
00245  M01S00241.compapi +++|          RAM    CDAE-1
00246  M01S00242.compapi +++|          LDD    T1
00247  M01S00243.compapi +++|          LMK    APDE
00248  M01S00244.compapi +++|          NJN    CDA6        IF NOT DISK STATUS ERROR
00249  M01S00245.compapi +++|          LDN    1           LENGTH OF GENERAL STATUS
00250  M01S00246.compapi +++|          UJN    CDA5        INPUT GENERAL STATUS
00251  M01S00247.compapi +++|
00252  M01S00248.compapi +++|*         ERROR MESSAGES.
00253  M01S00249.compapi +++|
00254  M01S00250.compapi +++| CDAF     DATA   C* APP REQUEST NOT FOUND.*
00255  M01S00251.compapi +++| CDAG     DATA   C* APP DISK STATUS ERROR.*
00256  M01S00252.compapi +++| CDAH     DATA   C* APP CDA ERROR.*
00257  M01S00253.compapi +++|
00258  M01S00254.compapi +++|*         TABLE OF MESSAGE ADDRESSES.
00259  M01S00255.compapi +++|
00260  M01S00001.ns2251  +++| TEMS     BSS    0
Line S00256 Modification History
M01 (Added by) compapi
M02 (Updated by) papi1
Seq #  *Modification Id* Act 
----------------------------+
00261  M02S00256.papi1   ---|          LOC    0
00262  M01S00002.papi1   +++|          LOC    1
Line S00257 Modification History
M01 (Added by) compapi
M02 (Updated by) ns2251
Seq #  *Modification Id* Act 
----------------------------+
00263  M02S00257.ns2251  ---| TEMS     CON    0
00264  M01S00258.compapi +++|          CON    CDAF
00265  M01S00259.compapi +++|          CON    CDAG
00266  M01S00260.compapi +++|          CON    CDAH
00267  M01S00261.compapi +++|          LOC    *O
00268  M01S00262.compapi +++| .C       ENDIF
00269  M01S00263.compapi +++| APM      SPACE  4,20
00270  M01S00264.compapi +++|**        APM -  *APP* MANAGEMENT PROCESSOR.
00271  M01S00265.compapi +++|*
00272  M01S00266.compapi +++|*         ENTRY  (A) = 6/ FCN, 12/ PARM
00273  M01S00267.compapi +++|*                FCN = FUNCTION CODE (21B, 76B, 77B).
00274  M01S00268.compapi +++|*                PARM = CM ADDRESS TO MONITOR (FCN = 21B),
00275  M01S00269.compapi +++|*                    = CHANNEL TO CHANGE TO  (FCN = 76B), OR
00276  M01S00270.compapi +++|*                    = PP TO CHANGE TO       (FCN = 77B).
00277  M01S00271.compapi +++|*
00278  M01S00272.compapi +++|*         EXIT   (A) = 0  IF REQUEST COMPLETED SUCCESSFULLY.
00279  M01S00273.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00280  M01S00274.compapi +++|*                      NOT RESPONDING.
00281  M01S00275.compapi +++|*
00282  M01S00276.compapi +++|*         CALLS  CAI.
00283  M01S00277.compapi +++|*
00284  M01S00278.compapi +++|*         NOTE - IT IS THE RESPONSIBILITY OF THE CALLER TO CALL
00285  M01S00279.compapi +++|*                */COMPAPI/PRS* AGAIN TO PRESET THE NEW CHANNEL
00286  M01S00280.compapi +++|*                NUMBER AFTER USING FUNCTIONS 76B OR 77B.
00287  M01S00281.compapi +++|*
00288  M01S00282.compapi +++|*         MACROS EXCSI.
00289  M01S00283.compapi +++|
00290  M01S00284.compapi +++|
00291  M01S00285.compapi +++| .D       IF     DEF,APM$
00292  M01S00286.compapi +++|
00293  M01S00287.compapi +++| APM5     LDC    CAIA+400000 SET *APP* NOT RESPONDING
00294  M01S00288.compapi +++|
00295  M01S00289.compapi +++| APM      SUBR               ENTRY/EXIT
00296  M01S00290.compapi +++|          STM    APMA        SAVE PARAMETER
00297  M01S00291.compapi +++|          RJM    CAI         ISSUE *APP* FUNCTION
00298  M01S00292.compapi +++|          MJN    APMX        IF *APP* NOT RESPONDING
00299  M01S00293.compapi +++|          LDC    **
00300  M01S00294.compapi +++| APMA     EQU    *-1         ARGUMENT
00301  M01S00295.compapi +++|          OAN    AC
00302  M01S00296.compapi +++| APMB     EQU    *-1         OLD CHANNEL/PP
00303  M01S00297.compapi +++|          EXCSI  FJM,APM5    WAIT FOR CHANNEL EMPTY
00304  M01S00298.compapi +++|          DCN    AC          DEACTIVATE CHANNEL
00305  M01S00299.compapi +++|          LDD    T2          FUNCTION CODE
00306  M01S00300.compapi +++|          LMK    RPCS
00307  M01S00301.compapi +++| APM1     ZJN    APMX        IF REMOVING PP FROM CHANNEL
00308  M01S00302.compapi +++|          LMK    MAPS&RPCS
00309  M01S00303.compapi +++|          NJN    APM3        IF NOT MOVING *APP*
00310  M01S00304.compapi +++|          LDM    APMB        OLD CHANNEL/PP
00311  M01S00305.compapi +++|          LPN    37
00312  M01S00306.compapi +++|          UJN    APM4        WAIT *APP* RESPONSE
00313  M01S00307.compapi +++|
00314  M01S00308.compapi +++| APM2     UJN    APM5        SET *APP* NOT RESPONDING
00315  M01S00309.compapi +++|
00316  M01S00310.compapi +++| APM3     LDM    APMA        NEW CHANNEL/PP
00317  M01S00311.compapi +++| APM4     LMK    IJMI
00318  M01S00312.compapi +++|          OAN    AC          CAUSE PLUG OF ORIGINAL CHANNEL
00319  M01S00313.compapi +++|          ORG    *-1
00320  M01S00314.compapi +++|          LMN    **
00321  M01S00315.compapi +++|          STM    APMC+1
00322  M01S00316.compapi +++|          ADK    FJMI-IJMI
00323  M01S00317.compapi +++|          STM    APMD+1
00324  M01S00318.compapi +++| APMC     EXCSI  IJM,APM2
00325  M01S00319.compapi +++| APMD     EXCSI  FJM,APM2
00326  M01S00320.compapi +++|          LDN    0           SET EXIT CONDITION
00327  M01S00321.compapi +++|          UJN    APM1        RETURN
00328  M01S00322.compapi +++|
00329  M01S00323.compapi +++| .D       ENDIF
00330  M01S00324.compapi +++| CAI      SPACE  4,20
00331  M01S00325.compapi +++|**        CAI - ISSUE *APP* FUNCTION.
00332  M01S00326.compapi +++|*
00333  M01S00327.compapi +++|*         ENTRY  (A) = 6/ FUNCTION CODE, 12/
00334  M01S00328.compapi +++|*
00335  M01S00329.compapi +++|*         EXIT   (A) = 0  IF INITIALIZATION COMPLETE.
00336  M01S00330.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00337  M01S00331.compapi +++|*                      NOT RESPONDING.
00338  M01S00332.compapi +++|*                (T2) = *APP* FUNCTION CODE.
00339  M01S00333.compapi +++|*
00340  M01S00334.compapi +++|*         USES   T1, T2.
00341  M01S00335.compapi +++|*
00342  M01S00336.compapi +++|*         MACROS EXCSI.
00343  M01S00337.compapi +++|
00344  M01S00338.compapi +++|
00345  M01S00339.compapi +++| CAI1     LDC    CAIA+400000 SET *APP* NOT RESPONDING
00346  M01S00340.compapi +++|          UJN    CAIX        RETURN
00347  M01S00341.compapi +++|
00348  M01S00342.compapi +++| CAI      SUBR               ENTRY/EXIT
00349  M01S00343.compapi +++|          SHN    -14         POSITION TO FUNCTION CODE
00350  M01S00344.compapi +++|          STD    T2
00351  M01S00345.compapi +++|          LDK    APXA
00352  M01S00346.compapi +++|          STD    T1
00353  M01S00347.compapi +++|          EXCSI  IJM,CAI1    WAIT FOR CHANNEL ACTIVE
00354  M01S00348.compapi +++|          EXCSI  FJM,CAI1    WAIT FOR CHANNEL EMPTY
00355  M01S00349.compapi +++|          LDK    APCL        *APP* COMMAND LENGTH
00356  M01S00350.compapi +++|          OAM    T1,AC       OUTPUT COMMAND DATA
00357  M01S00351.compapi +++|          ZJN    CAIX        IF NOT PREMATURE TERMINATION
00358  M01S00352.compapi +++|          UJN    CAI1        SET ERROR CONDITION
00359  M01S00353.compapi +++|
00360  M01S00354.compapi +++| CAIA     DATA   C* APP TIMEOUT.*
00361  M01S00355.compapi +++| ECI      SPACE  4,10
00362  M01S00356.compapi +++|**        ECI - EXECUTE CHANNEL STATUS INSTRUCTION.
00363  M01S00357.compapi +++|*
00364  M01S00358.compapi +++|*         THIS ROUTINE IS USED TO EXECUTE ALL IJM, AJM, EJM, AND FJM
00365  M01S00359.compapi +++|*         INSTRUCTIONS.
00366  M01S00360.compapi +++|*
00367  M01S00361.compapi +++|*         ENTRY  (A) = INSTRUCTION (INCLUDING CHANNEL).
00368  M01S00362.compapi +++|*
00369  M01S00363.compapi +++|*         EXIT   (A) .LT. 0  IF TIMEOUT.
00370  M01S00364.compapi +++|*
00371  M01S00365.compapi +++|*         USES   T0.
00372  M01S00366.compapi +++|*
00373  M01S00367.compapi +++|*         NOTE   THE TIMEOUT LENGTH MAY BE CHANGED TO A GIVEN
00374  M01S00368.compapi +++|*                NUMBER OF MICROSECONDS BY USING 4 MULTIPLIED BY
00375  M01S00369.compapi +++|*                THE SQUARE ROOT OF THAT NUMBER AS THE LOOP
00376  M01S00370.compapi +++|*                COUNTER AT *ECIC*.
00377  M01S00371.compapi +++|
00378  M01S00372.compapi +++|
00379  M01S00373.compapi +++| ECI      SUBR               ENTRY/EXIT
00380  M01S00374.compapi +++|          OAN    AC          GENERATE CHANNEL TABLE ENTRY
00381  M01S00375.compapi +++|          ORG    *-1
00382  M01S00376.compapi +++|          LMN    **          PLACE CHANNEL NUMBER IN INSTRUCTION
00383  M01S00377.compapi +++|          STM    ECIB
00384  M01S00378.compapi +++|          LDM    DLYA
00385  M01S00379.compapi +++|          LPN    77
00386  M01S00380.compapi +++|          SHN    -2
00387  M01S00381.compapi +++|          LMK    SBNI
00388  M01S00382.compapi +++|          STM    ECIA
00389  M01S00383.compapi +++|          LDM    ECIC
00390  M01S00384.compapi +++|          STD    T0
00391  M01S00385.compapi +++| ECI1     SOD    T0
00392  M01S00386.compapi +++|          MJN    ECIX        IF TIMEOUT
00393  M01S00387.compapi +++| ECIA     SBN    **
00394  M01S00388.compapi +++|          PJN    *-1         IF DELAY NOT DONE
00395  M01S00389.compapi +++| ECIB     CON    AC          INSTRUCTION
00396  M01S00390.compapi +++|          CON    ECI1
00397  M01S00391.compapi +++|          LDN    0           SET EXIT CONDITION
00398  M01S00392.compapi +++|          UJN    ECIX        RETURN
00399  M01S00393.compapi +++|
00400  M01S00394.compapi +++| ECIC     CON    4*1000D
00401  M01S00395.compapi +++| WAR      SPACE  4,15
00402  M01S00396.compapi +++|**        WAR -  WAIT FOR *APP* RESPONSE.
00403  M01S00397.compapi +++|*
00404  M01S00398.compapi +++|*         EXIT   (A) = 0  IF *APP* RESPONDED.
00405  M01S00399.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00406  M01S00400.compapi +++|*                      NOT RESPONDING.
00407  M01S00401.compapi +++|
00408  M01S00402.compapi +++|
00409  M01S00403.compapi +++| WAR1     LDC    CAIA+400000  SET *APP* NOT RESPONDING
00410  M01S00404.compapi +++|
00411  M01S00405.compapi +++| WAR      SUBR               ENTRY/EXIT
00412  M01S00406.compapi +++|          EXCSI  IJM,WAR1    WAIT FOR CHANNEL ACTIVE
00413  M01S00407.compapi +++|          EXCSI  EJM,WAR1    WAIT FOR CHANNEL FULL
00414  M01S00408.compapi +++|          LDN    0           SET RESPONSE RECEIVED
00415  M01S00409.compapi +++|          UJN    WARX        RETURN
00416  M01S00410.compapi +++| API      SPACE  4,10
00417  M01S00411.compapi +++| .OVL     EQU    *           OVERLAY FWA
00418  M01S00412.compapi +++| PRS      SPACE  4,10
00419  M01S00413.compapi +++|**        PRS -  *COMPAPI* PRESET ROUTINE.
00420  M01S00414.compapi +++|*
00421  M01S00415.compapi +++|*         ENTRY  (A) = COMMUNICATIONS CHANNEL NUMBER.
00422  M01S00416.compapi +++|*
00423  M01S00417.compapi +++|*         USES   T0, T1, T2.
00424  M01S00418.compapi +++|
00425  M01S00419.compapi +++|
00426  M01S00420.compapi +++| .E       IF     DEF,PRS$
00427  M01S00421.compapi +++|
00428  M01S00422.compapi +++| PRS1     STD    T2          INSTRUCTION ADDRESS
00429  M01S00423.compapi +++|          LDI    T2          INSTRUCTION
00430  M01S00424.compapi +++|          SCN    37          CLEAR CHANNEL FIELD
00431  M01S00425.compapi +++|          LMD    T0          INSERT CHANNEL NUMBER
00432  M01S00426.compapi +++|          STI    T2          UPDATE INSTRUCTION
00433  M01S00427.compapi +++|          AOD    T1          INCREMENT TABLE ADDRESS
00434  M01S00428.compapi +++| PRS2     LDI    T1          INSTRUCTION ADDRESS
00435  M01S00429.compapi +++|          NJN    PRS1        IF NOT END OF TABLE
00436  M01S00430.compapi +++|
00437  M01S00431.compapi +++| PRS      SUBR               ENTRY/EXIT
00438  M01S00432.compapi +++|          STD    T0          CHANNEL NUMBER
00439  M01S00433.compapi +++|          LDK    CTAC        INSTRUCTION ADDRESS TABLE
00440  M01S00434.compapi +++|          STD    T1
00441  M01S00435.compapi +++|          UJN    PRS2        ENTER LOOP
00442  M01S00436.compapi +++|
00443  M01S00437.compapi +++|
00444  M01S00438.compapi +++|          CHTB   AC          GENERATE INSTRUCTION ADDRESS TABLE
00445  M01S00439.compapi +++|
00446  M01S00440.compapi +++| .E       ENDIF
00447  M01S00441.compapi +++| API      SPACE  4,10
00448  M01S00442.compapi +++| QUAL$    IF     -DEF,QUAL$
00449  M01S00443.compapi +++|          QUAL   *
00450  M01S00444.compapi +++| .F       IF     DEF,API$
00451  M01S00445.compapi +++| API      EQU    /COMPAPI/API
00452  M01S00446.compapi +++| .F       ENDIF
00453  M01S00447.compapi +++| .G       IF     DEF,CDA$
00454  M01S00448.compapi +++| CDA      EQU    /COMPAPI/CDA
00455  M01S00449.compapi +++| .G       ENDIF
00456  M01S00450.compapi +++| .H       IF     DEF,APM$
00457  M01S00451.compapi +++| APM      EQU    /COMPAPI/APM
00458  M01S00452.compapi +++| .H       ENDIF
00459  M01S00453.compapi +++| QUAL$    ENDIF
00460  M01S00454.compapi +++|          BASE   *
00461  M01S00455.compapi +++|          ENDX
cdc/nos2.source/opl.opl871/common/compapi.txt · Last modified: by 127.0.0.1