User Tools

Site Tools


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

Common COMPAPI

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.compapi +++|          CTEXT  COMPAPI - *APP* INTERFACE.
00002  M00S00002.compapi +++| API      SPACE  4,10
00003  M00S00003.compapi +++| QUAL$    IF     -DEF,QUAL$
00004  M00S00004.compapi +++|          QUAL   COMPAPI
00005  M00S00005.compapi +++| QUAL$    ENDIF
Line S00006 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00006  M01S00006.281l803 ---|*         COMMENT  CONTROL DATA CORPORATION. 1984.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00007  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00008  M00S00007.compapi +++|          BASE   MIXED
00009  M00S00008.compapi +++| API      SPACE  4,10
00010  M00S00009.compapi +++|***       API -  *APP* INTERFACE.
00011  M00S00010.compapi +++|*         P. T. BARNETT      84/01/01.
00012  M00S00011.compapi +++|*         R. M. DANISCH      84/03/25.
00013  M00S00012.compapi +++| API      SPACE  4,50
00014  M00S00013.compapi +++|***       *API* IS THE SOLE INTERFACE TO PP PROGRAM *APP* THAT IS
00015  M00S00014.compapi +++|*         INITIALIZED AND ACTIVATED BY *CTI* AT DEADSTART.  THERE
00016  M00S00015.compapi +++|*         ARE SEVERAL SECTIONS IN THIS DECK, WHICH ARE ASSEMBLED
00017  M00S00016.compapi +++|*         ACCORDING TO THE DEFINITION OF THE FOLLOWING SYMBOLS:
00018  M00S00017.compapi +++|*
00019  M00S00018.compapi +++|*         API$ - THE STANDARD *APP* REQUEST PROCESSOR.  THIS
Line S00019 Modification History
M01 (Removed by) ns2418
Seq #  *Modification Id* Act 
----------------------------+
00020  M01S00019.ns2418  ---|*                IS USED FOR FUNCTIONS 1 - 16B.
Line S00001 Modification History
M01 (Added by) ns2418
Seq #  *Modification Id* Act 
----------------------------+
00021  M01S00001.ns2418  +++|*                IS USED FOR DATA RETRIEVAL FUNCTIONS.
00022  M00S00020.compapi +++|*
00023  M00S00021.compapi +++|*         CDA$ - THE COMMON DISK AREA REQUEST PROCESSOR.  THIS ONE
00024  M00S00022.compapi +++|*                IS USED FOR RETRIEVAL OF DATA FROM THE COMMON DISK
00025  M00S00023.compapi +++|*                AREA, SUCH AS CONTROLWARE, MICROCODE, ETC.
00026  M00S00024.compapi +++|*
00027  M00S00025.compapi +++|*         APM$ - THE *APP* MANAGEMENT PROCESSOR.  THIS IS USED
00028  M00S00026.compapi +++|*                FOR MANIPULATION OF *APP*, AND IS NOT FOR
00029  M00S00027.compapi +++|*                RETRIEVING DATA OF ANY KIND (FUNCTIONS 21B, 76B, 77B).
00030  M00S00028.compapi +++|*
00031  M00S00029.compapi +++|*         PRS$ - THE COMMON DECK PRESET PROCESSOR.  THIS ONLY PRESETS
00032  M00S00030.compapi +++|*                THE CHANNEL NUMBER IN ALL OF THE CHANNEL INSTRUCTIONS,
00033  M00S00031.compapi +++|*                AND CAN BE DONE INDEPENDENTLY.
00034  M00S00032.compapi +++|*
00035  M00S00033.compapi +++|*         EACH SECTION IS INDEPENDENT OF THE OTHERS, AND ONLY THE
00036  M00S00034.compapi +++|*         ONE(S) REQUIRED IN A PARTICULAR DECK NEED BE SELECTED.
00037  M00S00035.compapi +++|*
00038  M00S00036.compapi +++|*         THE ENTRY POINT FOR EACH ROUTINE IS THE SAME AS THE SYMBOL
00039  M00S00037.compapi +++|*         FOR SELECTING ASSEMBLY OF IT, WITH THE DOLLAR SIGN ($)
00040  M00S00038.compapi +++|*         TRUNCATED FROM IT.  AN UNQUALIFIED FORM OF *PRS* WILL NOT BE
00041  M00S00039.compapi +++|*         GENERATED IF *QUAL$* IS DEFINED.
00042  M00S00040.compapi +++|*
00043  M00S00041.compapi +++|*         *COMPCHM* (WHICH REDEFINES THE CHANNEL INSTRUCTIONS) MUST BE
00044  M00S00042.compapi +++|*         INCLUDED WITH THIS COMMON DECK IF *PRS$* IS SELECTED.  IF
00045  M00S00043.compapi +++|*         *PRS$* IS NOT DEFINED, THEN ANY METHOD OF SELECTING THE
00046  M00S00044.compapi +++|*         PROPER CHANNEL MAY BE USED, INCLUDING DEFINITION OF
00047  M00S00045.compapi +++|*         THE SYMBOL *AC* (THE *APP* COMMUNICATIONS CHANNEL).
00048  M00S00046.compapi +++|*
00049  M00S00047.compapi +++|*         *COMSDSL* AND *COMSPIM* ARE ALSO REQUIRED.
00050  M00S00048.compapi +++|
00051  M00S00049.compapi +++|
00052  M00S00050.compapi +++| APCL     EQU    2           *APP* COMMAND DATA LENGTH
00053  M00S00051.compapi +++| API      SPACE  4,10
00054  M00S00052.compapi +++|**        THE FOLLOWING DEFINES *AC* TO BE ZERO (SO THAT */COMPAPI/PRS*
00055  M00S00053.compapi +++|*         WILL WORK PROPERLY) IF IT HAS NOT BEEN PREVIOUSLY DEFINED.
00056  M00S00054.compapi +++|*         THE USER OF THIS COMMON DECK CAN PREDEFINE THE ALTERNATE
00057  M00S00055.compapi +++|*         PP COMMUNICATIONS CHANNEL TO A PARTICULAR VALUE WITHOUT FEAR
00058  M00S00056.compapi +++|*         OF IT BEING RESET.
00059  M00S00057.compapi +++|
00060  M00S00058.compapi +++|
00061  M00S00059.compapi +++| .A       IF     -DEF,AC
00062  M00S00060.compapi +++|
00063  M00S00061.compapi +++| AC       EQU    0           *APP* COMMUNICATIONS CHANNEL
00064  M00S00062.compapi +++|
00065  M00S00063.compapi +++| .A       ENDIF
00066  M00S00064.compapi +++| EXCSI    SPACE  4,15
00067  M00S00065.compapi +++|**        EXCSI - EXECUTE CHANNEL STATUS INSTRUCTION.
00068  M00S00066.compapi +++|*
00069  M00S00067.compapi +++|*         THIS MACRO IS USED TO EXECUTE ALL CHANNEL STATUS
00070  M00S00068.compapi +++|*         INSTRUCTIONS (AJM, IJM, EJM, FJM).  IT PROVIDES THE TIMEOUT
00071  M00S00069.compapi +++|*         MECHANISM NEEDED TO AVOID HANGING THE NOS PP DUE TO *APP*
00072  M00S00070.compapi +++|*         COMMUNICATION PROBLEMS.
00073  M00S00071.compapi +++|*
00074  M00S00072.compapi +++|*         EXCSI  INSTR,ERRAD
00075  M00S00073.compapi +++|*
00076  M00S00074.compapi +++|*         ENTRY  INSTR = INSTRUCTION (AJM, IJM, EJM, FJM).
00077  M00S00075.compapi +++|*                ERRAD = TRANSFER ADDRESS IN CASE OF TIMEOUT.
00078  M00S00076.compapi +++|
00079  M00S00077.compapi +++|
00080  M00S00078.compapi +++|          PURGMAC  EXCSI
00081  M00S00079.compapi +++|
00082  M00S00080.compapi +++| EXCSI    MACRO  INSTR,ERRAD
00083  M00S00081.compapi +++|  MACREF EXCSI
00084  M00S00082.compapi +++|.1 SET 0
00085  M00S00083.compapi +++|.A ECHO ,TB=(AJM,EJM,FJM,IJM)
00086  M00S00084.compapi +++|.B IFC EQ,$TB$INSTR$
00087  M00S00085.compapi +++|.1 SET 1
00088  M00S00086.compapi +++|  STOPDUP
00089  M00S00087.compapi +++|.B ENDIF
00090  M00S00088.compapi +++|.A ENDD
00091  M00S00089.compapi +++|.A IFEQ .1,1
00092  M00S00090.compapi +++|  LDC INSTR_I
00093  M00S00091.compapi +++|  RJM ECI
00094  M00S00092.compapi +++|  MJP ERRAD
00095  M00S00093.compapi +++|.A ELSE
00096  M00S00094.compapi +++|  ERR INCORRECT INSTRUCTION TYPE - INSTR
00097  M00S00095.compapi +++|.A ENDIF
00098  M00S00096.compapi +++| EXCSI    ENDM
00099  M00S00097.compapi +++| API      SPACE  4,25
00100  M00S00098.compapi +++|**        API -  *APP* DATA REQUEST PROCESSOR.
00101  M00S00099.compapi +++|*
00102  M00S00100.compapi +++|*         ENTRY  (A) = 6/ FCN, 12/ ADDR
Line S00101 Modification History
M01 (Removed by) ns2418
Seq #  *Modification Id* Act 
----------------------------+
00103  M01S00101.ns2418  ---|*                FCN  = FUNCTION CODE (1 - 16B)
Line S00002 Modification History
M01 (Added by) ns2418
Seq #  *Modification Id* Act 
----------------------------+
00104  M01S00002.ns2418  +++|*                FCN = FUNCTION CODE.
00105  M00S00102.compapi +++|*                ADDR = ADDRESS OF BUFFER TO RECEIVE DATA.
00106  M00S00103.compapi +++|*
00107  M00S00104.compapi +++|*         THE FUNCTION CODES ARE DEFINED IN *COMSDSL*.  IF FUNCTION
00108  M00S00105.compapi +++|*         12B (CPDS) IS SPECIFIED, THEN THE NUMBER OF THE PROCESSOR
00109  M00S00106.compapi +++|*         FOR WHICH THE DESCRIPTOR IS BEING REQUESTED MUST BE IN
00110  M00S00107.compapi +++|*         THE FIRST BYTE OF THE BUFFER SPECIFIED BY *ADDR*.
00111  M00S00108.compapi +++|*
00112  M00S00109.compapi +++|*         EXIT   (A) = 0  IF REQUEST COMPLETED SUCCESSFULLY.
00113  M00S00110.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00114  M00S00111.compapi +++|*                      NOT RESPONDING.
00115  M00S00112.compapi +++|*                (ADDR) = WORD COUNT OF DATA TO FOLLOW.
00116  M00S00113.compapi +++|*                (ADDR+APDL - ADDR+N) = DATA.
00117  M00S00114.compapi +++|*
00118  M00S00115.compapi +++|*         IF THE WORD COUNT IS ZERO, THEN THERE WAS NO DATA RETURNED.
00119  M00S00116.compapi +++|*
00120  M00S00117.compapi +++|*         USES   T3.
00121  M00S00118.compapi +++|*
00122  M00S00119.compapi +++|*         CALLS  CAI, WAR.
00123  M00S00120.compapi +++|*
00124  M00S00121.compapi +++|*         MACROS EXCSI.
00125  M00S00122.compapi +++|
00126  M00S00123.compapi +++|
00127  M00S00124.compapi +++| .B       IF     DEF,API$
00128  M00S00125.compapi +++|
00129  M00S00126.compapi +++| API2     LDC    CAIA+400000  SET *APP* NOT RESPONDING
00130  M00S00127.compapi +++|
00131  M00S00128.compapi +++| API      SUBR               ENTRY/EXIT
00132  M00S00129.compapi +++|          STD    T3
00133  M00S00130.compapi +++|          ADK    APDL        DATA OFFSET
00134  M00S00131.compapi +++|          STM    APIA
00135  M00S00132.compapi +++|          RJM    CAI         COMMON *APP* INITIALIZATION
00136  M00S00133.compapi +++|          MJN    APIX        IF *APP* NOT RESPONDING
00137  M00S00134.compapi +++|          LDD    T2          FUNCTION CODE
00138  M00S00135.compapi +++|          LMK    CPDS
00139  M00S00136.compapi +++|          NJN    API1        IF NOT PROCESSOR DESCRIPTOR REQUEST
00140  M00S00137.compapi +++|          LDI    T3          GET PROCESSOR NUMBER
00141  M00S00138.compapi +++|          OAN    AC
00142  M00S00139.compapi +++| API1     EXCSI  FJM,API2    WAIT FOR CHANNEL EMPTY
00143  M00S00140.compapi +++|          DCN    AC          DEACTIVATE CHANNEL
00144  M00S00141.compapi +++|          RJM    WAR         WAIT FOR *APP* RESPONSE
00145  M00S00142.compapi +++|          MJN    APIX        IF *APP* NOT RESPONDING
00146  M00S00143.compapi +++|          IAN    AC          INPUT DATA LENGTH
00147  M00S00144.compapi +++|          STI    T3          STORE LENGTH OF SUBSEQUENT DATA
00148  M00S00145.compapi +++|          ZJN    APIX        IF NO DATA
00149  M00S00146.compapi +++|          IAM    **,AC       INPUT DATA
00150  M00S00147.compapi +++| APIA     EQU    *-1         DATA BUFFER ADDRESS + APDL
00151  M00S00148.compapi +++|          NJN    API2        IF PREMATURE TERMINATION
00152  M00S00149.compapi +++|          UJN    APIX        RETURN
00153  M00S00150.compapi +++|
00154  M00S00151.compapi +++| .B       ENDIF
00155  M00S00152.compapi +++| CDA      SPACE  4,30
00156  M00S00153.compapi +++|**        CDA -  COMMON DISK AREA REQUEST PROCESSOR.
00157  M00S00154.compapi +++|*
00158  M00S00155.compapi +++|*         ENTRY  (A) = 6/ FCN, 18/ ADDR
00159  M00S00156.compapi +++|*                FCN    = FUNCTION CODE (20B).
00160  M00S00157.compapi +++|*                ADDR   = ADDRESS OF BUFFER TO RECEIVE DATA.
00161  M00S00158.compapi +++|*                (ADDR) = 18/ NAME, 6/0
00162  M00S00159.compapi +++|*                NAME   = 3 CHARACTER (DISPLAY CODE) NAME
00163  M00S00160.compapi +++|*                         OF DATA TO RETURN.
00164  M00S00161.compapi +++|*
00165  M00S00162.compapi +++|*         EXIT   (A) = 0  IF REQUEST COMPLETED SUCCESSFULLY.
00166  M00S00163.compapi +++|*                (A) = 1/0, 5/EC, 12/MESSAGE ADDRESS   IF *APP*
00167  M00S00164.compapi +++|*                      RETURNED ERROR.
00168  M00S00165.compapi +++|*                      EC = 1  IF REQUEST NOT FOUND.
00169  M00S00166.compapi +++|*                           2  IF DISK STATUS ERROR.
00170  M00S00167.compapi +++|*                           3  IF COMMON DISK AREA ERROR.
00171  M00S00168.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00172  M00S00169.compapi +++|*                      NOT RESPONDING.
00173  M00S00170.compapi +++|*                (ADDR) = STATUS:
00174  M00S00171.compapi +++|*                         4XXX - IF LAST PORTION OF REQUEST.
00175  M00S00172.compapi +++|*                                XXX = REMAINING WORD COUNT.
00176  M00S00173.compapi +++|*                         0XXX - ERROR STATUS OR FULL SECTOR.
00177  M00S00174.compapi +++|*                                XXX = 500  IF FULL SECTOR.
00178  M00S00175.compapi +++|*                                    = 1  IF REQUEST NOT FOUND.
00179  M00S00176.compapi +++|*                                    = 2  DISK STATUS ERROR.
00180  M00S00177.compapi +++|*                                    (GENERAL STATUS IN (ADDR+APDL))
00181  M00S00178.compapi +++|*                                    = 3  IF NO COMMON DISK AREA.
00182  M00S00179.compapi +++|*                (ADDR+APDL - ADDR+N) = REQUESTED DATA.
00183  M00S00180.compapi +++|*
00184  M00S00181.compapi +++|*         THE 7700 TABLE WILL BE TRANSMITTED WITH THE REQUEST.
00185  M00S00182.compapi +++|*
00186  M00S00183.compapi +++|*         CALLS  CAI, WAR.
00187  M00S00184.compapi +++|*
00188  M00S00185.compapi +++|*         USES   T1.
00189  M00S00186.compapi +++|*
00190  M00S00187.compapi +++|*         MACROS EXCSI.
00191  M00S00188.compapi +++|
00192  M00S00189.compapi +++|
00193  M00S00190.compapi +++| .C       IF     DEF,CDA$
00194  M00S00191.compapi +++|
00195  M00S00192.compapi +++| CDA8     LDC    CAIA+400000 SET *APP* NOT RESPONDING
00196  M00S00193.compapi +++|
00197  M00S00194.compapi +++| CDA      SUBR               ENTRY/EXIT
00198  M00S00195.compapi +++|          STM    CDAA        DATA BUFFER ADDRESS
00199  M00S00196.compapi +++|          STM    CDAB
00200  M00S00197.compapi +++|          ADK    APDL        ADD DATA OFFSET
00201  M00S00198.compapi +++|          STM    CDAC
00202  M00S00199.compapi +++|          STM    CDAD
00203  M00S00200.compapi +++|          RJM    CAI         ISSUE *APP* FUNCTION
00204  M00S00201.compapi +++|          MJN    CDAX        IF *APP* NOT RESPONDING
00205  M00S00202.compapi +++|          LDK    CPNL        LENGTH OF NAME
00206  M00S00203.compapi +++|          OAM    **,AC       OUTPUT DATA NAME
00207  M00S00204.compapi +++| CDAA     EQU    *-1         DATA BUFFER ADDRESS
00208  M00S00205.compapi +++| CDA1     NJN    CDA8        IF PREMATURE TERMINATION
00209  M00S00206.compapi +++|          STM    CDAE
00210  M00S00207.compapi +++|          EXCSI  FJM,CDA8    WAIT FOR CHANNEL EMPTY
00211  M00S00208.compapi +++|          DCN    AC          DEACTIVATE CHANNEL
00212  M00S00209.compapi +++|          RJM    WAR         WAIT *APP* RESPONSE
00213  M00S00210.compapi +++|          MJN    CDAX        IF *APP* NOT RESPONDING
00214  M00S00211.compapi +++|          IAN    AC          INPUT STATUS WORD
00215  M00S00212.compapi +++|          STM    **          STORE IN DATA BUFFER
00216  M00S00213.compapi +++| CDAB     EQU    *-1         DATA BUFFER ADDRESS
00217  M00S00214.compapi +++|          LPC    4777
00218  M00S00215.compapi +++|          STD    T1
00219  M00S00216.compapi +++|          SHN    21-13
00220  M00S00217.compapi +++|          MJN    CDA4        IF LAST PORTION OF REQUESTED DATA
00221  M00S00218.compapi +++|          SHN    13-21+22
00222  M00S00219.compapi +++|          LMC    500
00223  M00S00220.compapi +++|          NJN    CDA7        IF ERROR
00224  M00S00221.compapi +++|          LDD    T1
00225  M00S00222.compapi +++|          IAM    **,AC
00226  M00S00223.compapi +++| CDAC     EQU    *-1
00227  M00S00224.compapi +++| CDA2     NJN    CDA1        IF PREMATURE TERMINATION
00228  M00S00225.compapi +++| CDA3     LJM    CDAX        RETURN
00229  M00S00226.compapi +++|
00230  M00S00227.compapi +++| CDA4     SHN    1
00231  M00S00228.compapi +++|          SHN    -7
00232  M00S00229.compapi +++|          ZJN    CDA6        IF NO DATA
00233  M00S00230.compapi +++| CDA5     IAM    **,AC
00234  M00S00231.compapi +++| CDAD     EQU    *-1
00235  M00S00232.compapi +++|          NJN    CDA2        IF PREMATURE TERMINATION
00236  M00S00233.compapi +++| CDA6     DCN    AC
00237  M00S00234.compapi +++|          LDC    **          SET EXIT STATUS
00238  M00S00235.compapi +++| CDAE     EQU    *-1
00239  M00S00236.compapi +++|          UJN    CDA3        RETURN
00240  M00S00237.compapi +++|
Line S00238 Modification History
M01 (Removed by) papi1
Seq #  *Modification Id* Act 
----------------------------+
00241  M01S00238.papi1   ---| CDA7     LDM    TEMS,T1     SET MESSAGE ADDRESS
Line S00001 Modification History
M01 (Added by) papi1
Seq #  *Modification Id* Act 
----------------------------+
00242  M01S00001.papi1   +++| CDA7     LDM    TEMS-1,T1   SET MESSAGE ADDRESS
00243  M00S00239.compapi +++|          STM    CDAE
00244  M00S00240.compapi +++|          LDD    T1          SET ERROR CODE
00245  M00S00241.compapi +++|          RAM    CDAE-1
00246  M00S00242.compapi +++|          LDD    T1
00247  M00S00243.compapi +++|          LMK    APDE
00248  M00S00244.compapi +++|          NJN    CDA6        IF NOT DISK STATUS ERROR
00249  M00S00245.compapi +++|          LDN    1           LENGTH OF GENERAL STATUS
00250  M00S00246.compapi +++|          UJN    CDA5        INPUT GENERAL STATUS
00251  M00S00247.compapi +++|
00252  M00S00248.compapi +++|*         ERROR MESSAGES.
00253  M00S00249.compapi +++|
00254  M00S00250.compapi +++| CDAF     DATA   C* APP REQUEST NOT FOUND.*
00255  M00S00251.compapi +++| CDAG     DATA   C* APP DISK STATUS ERROR.*
00256  M00S00252.compapi +++| CDAH     DATA   C* APP CDA ERROR.*
00257  M00S00253.compapi +++|
00258  M00S00254.compapi +++|*         TABLE OF MESSAGE ADDRESSES.
00259  M00S00255.compapi +++|
Line S00001 Modification History
M01 (Added by) ns2251
Seq #  *Modification Id* Act 
----------------------------+
00260  M01S00001.ns2251  +++| TEMS     BSS    0
Line S00256 Modification History
M01 (Removed by) papi1
Seq #  *Modification Id* Act 
----------------------------+
00261  M01S00256.papi1   ---|          LOC    0
Line S00002 Modification History
M01 (Added by) papi1
Seq #  *Modification Id* Act 
----------------------------+
00262  M01S00002.papi1   +++|          LOC    1
Line S00257 Modification History
M01 (Removed by) ns2251
Seq #  *Modification Id* Act 
----------------------------+
00263  M01S00257.ns2251  ---| TEMS     CON    0
00264  M00S00258.compapi +++|          CON    CDAF
00265  M00S00259.compapi +++|          CON    CDAG
00266  M00S00260.compapi +++|          CON    CDAH
00267  M00S00261.compapi +++|          LOC    *O
00268  M00S00262.compapi +++| .C       ENDIF
00269  M00S00263.compapi +++| APM      SPACE  4,20
00270  M00S00264.compapi +++|**        APM -  *APP* MANAGEMENT PROCESSOR.
00271  M00S00265.compapi +++|*
00272  M00S00266.compapi +++|*         ENTRY  (A) = 6/ FCN, 12/ PARM
00273  M00S00267.compapi +++|*                FCN = FUNCTION CODE (21B, 76B, 77B).
00274  M00S00268.compapi +++|*                PARM = CM ADDRESS TO MONITOR (FCN = 21B),
00275  M00S00269.compapi +++|*                    = CHANNEL TO CHANGE TO  (FCN = 76B), OR
00276  M00S00270.compapi +++|*                    = PP TO CHANGE TO       (FCN = 77B).
00277  M00S00271.compapi +++|*
00278  M00S00272.compapi +++|*         EXIT   (A) = 0  IF REQUEST COMPLETED SUCCESSFULLY.
00279  M00S00273.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00280  M00S00274.compapi +++|*                      NOT RESPONDING.
00281  M00S00275.compapi +++|*
00282  M00S00276.compapi +++|*         CALLS  CAI.
00283  M00S00277.compapi +++|*
00284  M00S00278.compapi +++|*         NOTE - IT IS THE RESPONSIBILITY OF THE CALLER TO CALL
00285  M00S00279.compapi +++|*                */COMPAPI/PRS* AGAIN TO PRESET THE NEW CHANNEL
00286  M00S00280.compapi +++|*                NUMBER AFTER USING FUNCTIONS 76B OR 77B.
00287  M00S00281.compapi +++|*
00288  M00S00282.compapi +++|*         MACROS EXCSI.
00289  M00S00283.compapi +++|
00290  M00S00284.compapi +++|
00291  M00S00285.compapi +++| .D       IF     DEF,APM$
00292  M00S00286.compapi +++|
00293  M00S00287.compapi +++| APM5     LDC    CAIA+400000 SET *APP* NOT RESPONDING
00294  M00S00288.compapi +++|
00295  M00S00289.compapi +++| APM      SUBR               ENTRY/EXIT
00296  M00S00290.compapi +++|          STM    APMA        SAVE PARAMETER
00297  M00S00291.compapi +++|          RJM    CAI         ISSUE *APP* FUNCTION
00298  M00S00292.compapi +++|          MJN    APMX        IF *APP* NOT RESPONDING
00299  M00S00293.compapi +++|          LDC    **
00300  M00S00294.compapi +++| APMA     EQU    *-1         ARGUMENT
00301  M00S00295.compapi +++|          OAN    AC
00302  M00S00296.compapi +++| APMB     EQU    *-1         OLD CHANNEL/PP
00303  M00S00297.compapi +++|          EXCSI  FJM,APM5    WAIT FOR CHANNEL EMPTY
00304  M00S00298.compapi +++|          DCN    AC          DEACTIVATE CHANNEL
00305  M00S00299.compapi +++|          LDD    T2          FUNCTION CODE
00306  M00S00300.compapi +++|          LMK    RPCS
00307  M00S00301.compapi +++| APM1     ZJN    APMX        IF REMOVING PP FROM CHANNEL
00308  M00S00302.compapi +++|          LMK    MAPS&RPCS
00309  M00S00303.compapi +++|          NJN    APM3        IF NOT MOVING *APP*
00310  M00S00304.compapi +++|          LDM    APMB        OLD CHANNEL/PP
00311  M00S00305.compapi +++|          LPN    37
00312  M00S00306.compapi +++|          UJN    APM4        WAIT *APP* RESPONSE
00313  M00S00307.compapi +++|
00314  M00S00308.compapi +++| APM2     UJN    APM5        SET *APP* NOT RESPONDING
00315  M00S00309.compapi +++|
00316  M00S00310.compapi +++| APM3     LDM    APMA        NEW CHANNEL/PP
00317  M00S00311.compapi +++| APM4     LMK    IJMI
00318  M00S00312.compapi +++|          OAN    AC          CAUSE PLUG OF ORIGINAL CHANNEL
00319  M00S00313.compapi +++|          ORG    *-1
00320  M00S00314.compapi +++|          LMN    **
00321  M00S00315.compapi +++|          STM    APMC+1
00322  M00S00316.compapi +++|          ADK    FJMI-IJMI
00323  M00S00317.compapi +++|          STM    APMD+1
00324  M00S00318.compapi +++| APMC     EXCSI  IJM,APM2
00325  M00S00319.compapi +++| APMD     EXCSI  FJM,APM2
00326  M00S00320.compapi +++|          LDN    0           SET EXIT CONDITION
00327  M00S00321.compapi +++|          UJN    APM1        RETURN
00328  M00S00322.compapi +++|
00329  M00S00323.compapi +++| .D       ENDIF
00330  M00S00324.compapi +++| CAI      SPACE  4,20
00331  M00S00325.compapi +++|**        CAI - ISSUE *APP* FUNCTION.
00332  M00S00326.compapi +++|*
00333  M00S00327.compapi +++|*         ENTRY  (A) = 6/ FUNCTION CODE, 12/
00334  M00S00328.compapi +++|*
00335  M00S00329.compapi +++|*         EXIT   (A) = 0  IF INITIALIZATION COMPLETE.
00336  M00S00330.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00337  M00S00331.compapi +++|*                      NOT RESPONDING.
00338  M00S00332.compapi +++|*                (T2) = *APP* FUNCTION CODE.
00339  M00S00333.compapi +++|*
00340  M00S00334.compapi +++|*         USES   T1, T2.
00341  M00S00335.compapi +++|*
00342  M00S00336.compapi +++|*         MACROS EXCSI.
00343  M00S00337.compapi +++|
00344  M00S00338.compapi +++|
00345  M00S00339.compapi +++| CAI1     LDC    CAIA+400000 SET *APP* NOT RESPONDING
00346  M00S00340.compapi +++|          UJN    CAIX        RETURN
00347  M00S00341.compapi +++|
00348  M00S00342.compapi +++| CAI      SUBR               ENTRY/EXIT
00349  M00S00343.compapi +++|          SHN    -14         POSITION TO FUNCTION CODE
00350  M00S00344.compapi +++|          STD    T2
00351  M00S00345.compapi +++|          LDK    APXA
00352  M00S00346.compapi +++|          STD    T1
00353  M00S00347.compapi +++|          EXCSI  IJM,CAI1    WAIT FOR CHANNEL ACTIVE
00354  M00S00348.compapi +++|          EXCSI  FJM,CAI1    WAIT FOR CHANNEL EMPTY
00355  M00S00349.compapi +++|          LDK    APCL        *APP* COMMAND LENGTH
00356  M00S00350.compapi +++|          OAM    T1,AC       OUTPUT COMMAND DATA
00357  M00S00351.compapi +++|          ZJN    CAIX        IF NOT PREMATURE TERMINATION
00358  M00S00352.compapi +++|          UJN    CAI1        SET ERROR CONDITION
00359  M00S00353.compapi +++|
00360  M00S00354.compapi +++| CAIA     DATA   C* APP TIMEOUT.*
00361  M00S00355.compapi +++| ECI      SPACE  4,10
00362  M00S00356.compapi +++|**        ECI - EXECUTE CHANNEL STATUS INSTRUCTION.
00363  M00S00357.compapi +++|*
00364  M00S00358.compapi +++|*         THIS ROUTINE IS USED TO EXECUTE ALL IJM, AJM, EJM, AND FJM
00365  M00S00359.compapi +++|*         INSTRUCTIONS.
00366  M00S00360.compapi +++|*
00367  M00S00361.compapi +++|*         ENTRY  (A) = INSTRUCTION (INCLUDING CHANNEL).
00368  M00S00362.compapi +++|*
00369  M00S00363.compapi +++|*         EXIT   (A) .LT. 0  IF TIMEOUT.
00370  M00S00364.compapi +++|*
00371  M00S00365.compapi +++|*         USES   T0.
00372  M00S00366.compapi +++|*
00373  M00S00367.compapi +++|*         NOTE   THE TIMEOUT LENGTH MAY BE CHANGED TO A GIVEN
00374  M00S00368.compapi +++|*                NUMBER OF MICROSECONDS BY USING 4 MULTIPLIED BY
00375  M00S00369.compapi +++|*                THE SQUARE ROOT OF THAT NUMBER AS THE LOOP
00376  M00S00370.compapi +++|*                COUNTER AT *ECIC*.
00377  M00S00371.compapi +++|
00378  M00S00372.compapi +++|
00379  M00S00373.compapi +++| ECI      SUBR               ENTRY/EXIT
00380  M00S00374.compapi +++|          OAN    AC          GENERATE CHANNEL TABLE ENTRY
00381  M00S00375.compapi +++|          ORG    *-1
00382  M00S00376.compapi +++|          LMN    **          PLACE CHANNEL NUMBER IN INSTRUCTION
00383  M00S00377.compapi +++|          STM    ECIB
00384  M00S00378.compapi +++|          LDM    DLYA
00385  M00S00379.compapi +++|          LPN    77
00386  M00S00380.compapi +++|          SHN    -2
00387  M00S00381.compapi +++|          LMK    SBNI
00388  M00S00382.compapi +++|          STM    ECIA
00389  M00S00383.compapi +++|          LDM    ECIC
00390  M00S00384.compapi +++|          STD    T0
00391  M00S00385.compapi +++| ECI1     SOD    T0
00392  M00S00386.compapi +++|          MJN    ECIX        IF TIMEOUT
00393  M00S00387.compapi +++| ECIA     SBN    **
00394  M00S00388.compapi +++|          PJN    *-1         IF DELAY NOT DONE
00395  M00S00389.compapi +++| ECIB     CON    AC          INSTRUCTION
00396  M00S00390.compapi +++|          CON    ECI1
00397  M00S00391.compapi +++|          LDN    0           SET EXIT CONDITION
00398  M00S00392.compapi +++|          UJN    ECIX        RETURN
00399  M00S00393.compapi +++|
00400  M00S00394.compapi +++| ECIC     CON    4*1000D
00401  M00S00395.compapi +++| WAR      SPACE  4,15
00402  M00S00396.compapi +++|**        WAR -  WAIT FOR *APP* RESPONSE.
00403  M00S00397.compapi +++|*
00404  M00S00398.compapi +++|*         EXIT   (A) = 0  IF *APP* RESPONDED.
00405  M00S00399.compapi +++|*                (A) = 1/1, 5/0, 12/MESSAGE ADDRESS   IF *APP*
00406  M00S00400.compapi +++|*                      NOT RESPONDING.
00407  M00S00401.compapi +++|
00408  M00S00402.compapi +++|
00409  M00S00403.compapi +++| WAR1     LDC    CAIA+400000  SET *APP* NOT RESPONDING
00410  M00S00404.compapi +++|
00411  M00S00405.compapi +++| WAR      SUBR               ENTRY/EXIT
00412  M00S00406.compapi +++|          EXCSI  IJM,WAR1    WAIT FOR CHANNEL ACTIVE
00413  M00S00407.compapi +++|          EXCSI  EJM,WAR1    WAIT FOR CHANNEL FULL
00414  M00S00408.compapi +++|          LDN    0           SET RESPONSE RECEIVED
00415  M00S00409.compapi +++|          UJN    WARX        RETURN
00416  M00S00410.compapi +++| API      SPACE  4,10
00417  M00S00411.compapi +++| .OVL     EQU    *           OVERLAY FWA
00418  M00S00412.compapi +++| PRS      SPACE  4,10
00419  M00S00413.compapi +++|**        PRS -  *COMPAPI* PRESET ROUTINE.
00420  M00S00414.compapi +++|*
00421  M00S00415.compapi +++|*         ENTRY  (A) = COMMUNICATIONS CHANNEL NUMBER.
00422  M00S00416.compapi +++|*
00423  M00S00417.compapi +++|*         USES   T0, T1, T2.
00424  M00S00418.compapi +++|
00425  M00S00419.compapi +++|
00426  M00S00420.compapi +++| .E       IF     DEF,PRS$
00427  M00S00421.compapi +++|
00428  M00S00422.compapi +++| PRS1     STD    T2          INSTRUCTION ADDRESS
00429  M00S00423.compapi +++|          LDI    T2          INSTRUCTION
00430  M00S00424.compapi +++|          SCN    37          CLEAR CHANNEL FIELD
00431  M00S00425.compapi +++|          LMD    T0          INSERT CHANNEL NUMBER
00432  M00S00426.compapi +++|          STI    T2          UPDATE INSTRUCTION
00433  M00S00427.compapi +++|          AOD    T1          INCREMENT TABLE ADDRESS
00434  M00S00428.compapi +++| PRS2     LDI    T1          INSTRUCTION ADDRESS
00435  M00S00429.compapi +++|          NJN    PRS1        IF NOT END OF TABLE
00436  M00S00430.compapi +++|
00437  M00S00431.compapi +++| PRS      SUBR               ENTRY/EXIT
00438  M00S00432.compapi +++|          STD    T0          CHANNEL NUMBER
00439  M00S00433.compapi +++|          LDK    CTAC        INSTRUCTION ADDRESS TABLE
00440  M00S00434.compapi +++|          STD    T1
00441  M00S00435.compapi +++|          UJN    PRS2        ENTER LOOP
00442  M00S00436.compapi +++|
00443  M00S00437.compapi +++|
00444  M00S00438.compapi +++|          CHTB   AC          GENERATE INSTRUCTION ADDRESS TABLE
00445  M00S00439.compapi +++|
00446  M00S00440.compapi +++| .E       ENDIF
00447  M00S00441.compapi +++| API      SPACE  4,10
00448  M00S00442.compapi +++| QUAL$    IF     -DEF,QUAL$
00449  M00S00443.compapi +++|          QUAL   *
00450  M00S00444.compapi +++| .F       IF     DEF,API$
00451  M00S00445.compapi +++| API      EQU    /COMPAPI/API
00452  M00S00446.compapi +++| .F       ENDIF
00453  M00S00447.compapi +++| .G       IF     DEF,CDA$
00454  M00S00448.compapi +++| CDA      EQU    /COMPAPI/CDA
00455  M00S00449.compapi +++| .G       ENDIF
00456  M00S00450.compapi +++| .H       IF     DEF,APM$
00457  M00S00451.compapi +++| APM      EQU    /COMPAPI/APM
00458  M00S00452.compapi +++| .H       ENDIF
00459  M00S00453.compapi +++| QUAL$    ENDIF
00460  M00S00454.compapi +++|          BASE   *
00461  M00S00455.compapi +++|          ENDX
cdc/nos2.source/opl.opl871/common/compapi.txt ยท Last modified: (external edit)