User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:6dc

Deck 6DC

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.6dc     +++|          IDENT  6DC,MSFW
00002  M01S00002.6dc     +++|          PERIPH
00003  M01S00003.6dc     +++|          BASE   MIXED
00004  M01S00004.6dc     +++|          SST
00005  M01S00005.6dc     +++|          TITLE  6DC - CONCURRENT PP OVERLAY LOADER.
00006  M01S00006.6dc     +++|*COMMENT  6DC - CONCURRENT PP OVERLAY LOADER.
Line S00007 Modification History
M01 (Added by) 6dc
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00007  M02S00007.281l803 ---|          COMMENT  COPYRIGHT CONTROL DATA CORPORATION, 1985.
00008  M01S00001.281l803 +++|          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00009  M01S00008.6dc     +++| 6DC      SPACE  4,10
00010  M01S00009.6dc     +++|***       6DC - CONCURRENT PP OVERLAY LOADER.
00011  M01S00010.6dc     +++|*
00012  M01S00011.6dc     +++|*         J. M. MAREK.       85/11/01.
00013  M01S00012.6dc     +++|          SPACE  4,20
00014  M01S00013.6dc     +++|***       *6DC* LOADS 16-BIT OVERLAYS INTO CONCURRENT PPS (CPP).  IT IS
00015  M01S00014.6dc     +++|*         EXPECTED THAT THE ONLY CPP SUBROUTINE TO CALL *6DC* WILL BE
00016  M01S00015.6dc     +++|*         THE PERIPHERAL LIBRARY LOADER (PLL) IN PP RESIDENT.  *6DC* IS
00017  M01S00016.6dc     +++|*         LOADED INTO THE DRIVER OVERLAY AREA WHEN A CPP PROGRAM ISSUES
00018  M01S00017.6dc     +++|*         A *SETMS* REQUEST.  *6DC* PROVIDES THE STANDARD DRIVER ENTRY
00019  M01S00018.6dc     +++|*         POINTS, *RDS*, *WDS*, AND *EMS*.
00020  M01S00019.6dc     +++|*
00021  M01S00020.6dc     +++|*         WHEN IT IS CALLED AT *RDS*, IT EXAMINES THE PARAMETERS IN
00022  M01S00021.6dc     +++|*         *T5* - *T7*.  IF THE PARAMETERS SPECIFY LOADING A CM RESIDENT
00023  M01S00022.6dc     +++|*         16-BIT PP PROGRAM, *6DC* COMPLETES THE LOAD, PERFORMING THE
00024  M01S00023.6dc     +++|*         NECESSARY PACKING, AND RETURNS TO THE CALLER.  IF A MASS
00025  M01S00024.6dc     +++|*         RESIDENT PROGRAM IS REQUESTED, *RDS* ISSUES AN ERROR LOG
00026  M01S00025.6dc     +++|*         MESSAGE AND RETURNS AN ERROR STATUS (-1) TO THE CALLER.  IF
00027  M01S00026.6dc     +++|*         *T5* - *T7* DO NOT SPECIFY A 16-BIT LOAD, *6DC* HANGS THE
00028  M01S00027.6dc     +++|*         CPP.
00029  M01S00028.6dc     +++|*
00030  M01S00029.6dc     +++|*         WHEN *6DC* IS CALLED AT *WDS*, IT ALSO HANGS THE *CPP*.
00031  M01S00030.6dc     +++|*
00032  M01S00031.6dc     +++|*         WHEN IT IS CALLED AT *EMS*, IT SIMPLY RETURNS TO THE CALLER.
00033  M01S00032.6dc     +++|*
00034  M01S00033.6dc     +++|*         NOTE.  DURING EXECUTION *6DC* DESTROYS ITS PRESET CODE.
00035  M01S00034.6dc     +++|*         DRIVER PRESET SHOULD NEVER BE SPECIFIED WITHOUT DRIVER LOAD.
00036  M01S00035.6dc     +++|          SPACE  4,10
00037  M01S00036.6dc     +++|***       ENTRY CONDITIONS.
00038  M01S00037.6dc     +++|*
00039  M01S00038.6dc     +++|*         CM RESIDENT 16-BIT OVERLAY.
00040  M01S00039.6dc     +++|*         (T5 - T7) = 2/ ,4/ 10,18/  *RPL* ADDRESS,12/ LENGTH
00041  M01S00040.6dc     +++|*
00042  M01S00041.6dc     +++|*         MS RESIDENT OVERLAY.  (NOT SUPPORTED)
00043  M01S00042.6dc     +++|*         (T5 - T7) = 2/ ,4/ 14,6/ ESTO,12/  TRACK,12/  SECTOR
00044  M01S00043.6dc     +++|*
00045  M01S00044.6dc     +++|*         MS READ.  (NOT SUPPORTED)
00046  M01S00045.6dc     +++|*         (T5 - T7) = 3/0, 9/  ESTO,12/  TRACK,12/  SECTOR
00047  M01S00046.6dc     +++| COMMON   SPACE  4,10
00048  M01S00047.6dc     +++|*         COMMON DECKS.
00049  M01S00048.6dc     +++|
00050  M01S00049.6dc     +++|
00051  M01S00050.6dc     +++|*CALL     COMPMAC
00052  M01S00051.6dc     +++|*CALL     COMPIOU
00053  M01S00052.6dc     +++|*CALL     COMSMSC
00054  M01S00053.6dc     +++|*CALL     COMSMSP
00055  M01S00054.6dc     +++|          EJECT
00056  M01S00055.6dc     +++|**        ENTRY POINT TRANSFERS.
00057  M01S00056.6dc     +++|
00058  M01S00057.6dc     +++|
00059  M01S00058.6dc     +++|          ORG    MSFW
00060  M01S00059.6dc     +++|
00061  M01S00060.6dc     +++|          CON    PRS         PRESET ADDRESS
00062  M01S00061.6dc     +++|
00063  M01S00062.6dc     +++|
00064  M01S00063.6dc     +++| RDS      CON    0           ENTRY
00065  M01S00064.6dc     +++|          UJN    RDS.        ENTER DRIVER
00066  M01S00065.6dc     +++|
00067  M01S00066.6dc     +++|
00068  M01S00067.6dc     +++| WDS      CON    0           ENTRY
00069  M01S00068.6dc     +++|          UJN    WDS.        ENTER DRIVER
00070  M01S00069.6dc     +++| EMS      SPACE  4,10
00071  M01S00070.6dc     +++|**        EMS - END MASS STORAGE OPERATION.
00072  M01S00071.6dc     +++|*
00073  M01S00072.6dc     +++|*         EXIT   (A) = 0.
00074  M01S00073.6dc     +++|
00075  M01S00074.6dc     +++|
00076  M01S00075.6dc     +++| .EMS     SUBR               ENTRY/EXIT
00077  M01S00076.6dc     +++|          LDN    0
00078  M01S00077.6dc     +++|          STM    CHRV
00079  M01S00078.6dc     +++|          UJN    .EMSX       RETURN
00080  M01S00079.6dc     +++| WDS      SPACE  4,10
00081  M01S00080.6dc     +++|**        WDS - WRITE SECTOR.
00082  M01S00081.6dc     +++|*
00083  M01S00082.6dc     +++|*         *WDS* HANGS THE PP WHEN IT IS CALLED.
00084  M01S00083.6dc     +++|*
00085  M01S00084.6dc     +++|*         ENTRY  (A) = BUFFER ADDRESS FOR SECTOR.
00086  M01S00085.6dc     +++|
00087  M01S00086.6dc     +++|
00088  M01S00087.6dc     +++| WDS.     MONITOR  HNGM      HANG THE PP
00089  M01S00088.6dc     +++| WDS1     UJN    WDS.        CONTINUE HANGING
00090  M01S00089.6dc     +++| RDS      SPACE  4,10
00091  M01S00090.6dc     +++|**        RDS - READ SECTOR.
00092  M01S00091.6dc     +++|*
00093  M01S00092.6dc     +++|*         ENTRY  (A) = BUFFER ADDRESS FOR SECTOR.
00094  M01S00093.6dc     +++|*
00095  M01S00094.6dc     +++|*         EXIT   (A) = 0 IF TRANSFER COMPLETE.
00096  M01S00095.6dc     +++|*                    = ERROR CODE IF ERROR OCCURRED.
00097  M01S00096.6dc     +++|
00098  M01S00097.6dc     +++|
00099  M01S00098.6dc     +++| RDS6     EQU    WDS1
00100  M01S00099.6dc     +++|
00101  M01S00100.6dc     +++| RDS7     LDM    PLLA        GET OVERLAY NAME
00102  M01S00101.6dc     +++|          STM    RDSB
00103  M01S00102.6dc     +++|          LDM    PLLB
00104  M01S00103.6dc     +++|          STM    RDSB+1
00105  M01S00104.6dc     +++|          LDC    RDSA+ERLN   ISSUE ERROR LOG MESSAGE
00106  M01S00105.6dc     +++|          RJM    DFM
00107  M01S00106.6dc     +++|          LDML   RDS         GET RETURN ADDRESS
00108  M01S00107.6dc     +++|          STDL   CM
00109  M01S00108.6dc     +++|          LCN    1           SET ERROR FLAG
00110  M01S00109.6dc     +++|          LJM    0,CM        RETURN
00111  M01S00110.6dc     +++|
00112  M01S00111.6dc     +++| RDS.     LDD    T5          CHECK 16-BIT LOAD BIT
00113  M01S00112.6dc     +++|          SHN    21-11
00114  M01S00113.6dc     +++| RDS1     PJN    RDS6        IF NOT 16-BIT LOAD
00115  M01S00114.6dc     +++|          SHN    21-10-21+11
00116  M01S00115.6dc     +++|          MJN    RDS7        IF MS RESIDENT OVERLAY
00117  M01S00116.6dc     +++|          SHN    21-5-21+10  GET RPL HEADER
00118  M01S00117.6dc     +++|          SCN    77
00119  M01S00118.6dc     +++|          LMD    T6
00120  M01S00119.6dc     +++|          CRD    CM
00121  M01S00120.6dc     +++|          ADN    1           SET FWA OF OVERLAY
00122  M01S00121.6dc     +++|          STD    T6
00123  M01S00122.6dc     +++|          SHN    -14
00124  M01S00123.6dc     +++|          STD    T5
00125  M01S00124.6dc     +++|          LDD    CM+1        GET LOAD ADDRESS
00126  M01S00125.6dc     +++|          LPN    17
00127  M01S00126.6dc     +++|          SHN    14
00128  M01S00127.6dc     +++|          LMD    CM+2
00129  M01S00128.6dc     +++|          ZJN    RDS2        IF ZERO LEVEL OVERLAY
00130  M01S00129.6dc     +++|          STDL   LA
00131  M01S00130.6dc     +++| RDS2     STML   2,LA
00132  M01S00131.6dc     +++|          LDDL   LA
00133  M01S00132.6dc     +++|          ADN    5           SET FWA OF OVERLAY CODE
00134  M01S00133.6dc     +++|          STDL   CM+2
00135  M01S00134.6dc     +++|          SOD    T7          COMPUTE THE NUMBER OF BYTES
00136  M01S00135.6dc     +++|          SHN    4           BYTES = WORDS(15)/4 AND TRUNCATED
00137  M01S00136.6dc     +++|          SBD    T7
00138  M01S00137.6dc     +++|          SHN    -2
00139  M01S00138.6dc     +++|          ADDL   CM+2        COMPUTE THE LAST BYTE ADDRESS
00140  M01S00139.6dc     +++|          STDL   T7
00141  M01S00140.6dc     +++|          SHN    -15
00142  M01S00141.6dc     +++|          NJN    RDS1        IF OVERLAY WRAPS MEMORY
00143  M01S00142.6dc     +++|          LDD    CM          BUILD NORMAL OVERLAY HEADER
00144  M01S00143.6dc     +++|          STI    LA
00145  M01S00144.6dc     +++|          LDD    CM+1
00146  M01S00145.6dc     +++|          SCN    77
00147  M01S00146.6dc     +++|          STM    1,LA
00148  M01S00147.6dc     +++|          LDN    1
00149  M01S00148.6dc     +++|          STM    3,LA
00150  M01S00149.6dc     +++|          LDD    CM+4
00151  M01S00150.6dc     +++|          STM    4,LA
00152  M01S00151.6dc     +++|          LDN    4
00153  M01S00152.6dc     +++|          STD    T4
00154  M01S00153.6dc     +++|
00155  M01S00154.6dc     +++|*         START THE MAIN LOOP WITH THESE INITIAL CONDITIONS -
00156  M01S00155.6dc     +++|*
00157  M01S00156.6dc     +++|*         (T4) = 4.
00158  M01S00157.6dc     +++|*         (T5 - T6) = FWA OF THE OVERLAY IN CM.
00159  M01S00158.6dc     +++|*         (T7) = LAST BYTE ADDRESS+1 OF THE OVERLAY IN PP MEMORY.
00160  M01S00159.6dc     +++|*         (CM+2) = FWA OF THE OVERLAY CODE.
00161  M01S00160.6dc     +++|*         (LA) = LOAD ADDRESS OF THE OVERLAY.
00162  M01S00161.6dc     +++|
00163  M01S00162.6dc     +++|*         GET 15 16-BIT BYTES.
00164  M01S00163.6dc     +++|
00165  M01S00164.6dc     +++| RDS3     LDD    T5          READ THE NEXT 4 WORDS
00166  M01S00165.6dc     +++|          SHN    14
00167  M01S00166.6dc     +++|          LMD    T6
00168  M01S00167.6dc     +++|          CRM    BUF,T4
00169  M01S00168.6dc     +++|          STD    T6
00170  M01S00169.6dc     +++|          SHN    -14
00171  M01S00170.6dc     +++|          STD    T5
00172  M01S00171.6dc     +++|          LDC    BUF
00173  M01S00172.6dc     +++|          STD    CM
00174  M01S00173.6dc     +++|
00175  M01S00174.6dc     +++|*         LOAD 12 BITS FROM THE FIRST BYTE AND 4 FROM THE NEXT.
00176  M01S00175.6dc     +++|
00177  M01S00176.6dc     +++| RDS4     LDI    CM
00178  M01S00177.6dc     +++|          SHN    4
00179  M01S00178.6dc     +++|          STIL   CM+2
00180  M01S00179.6dc     +++|          AOD    CM
00181  M01S00180.6dc     +++|          LDI    CM
00182  M01S00181.6dc     +++|          SHN    -8D
00183  M01S00182.6dc     +++|          RAIL   CM+2
00184  M01S00183.6dc     +++|          AODL   CM+2
00185  M01S00184.6dc     +++|          SBDL   T7
00186  M01S00185.6dc     +++|          PJN    RDS5        IF LAST BYTE
00187  M01S00186.6dc     +++|
00188  M01S00187.6dc     +++|*         LOAD 8 BITS FROM THE CURRENT BYTE AND 8 FROM THE NEXT.
00189  M01S00188.6dc     +++|
00190  M01S00189.6dc     +++|          LDI    CM
00191  M01S00190.6dc     +++|          SHN    8D
00192  M01S00191.6dc     +++|          SCN    77
00193  M01S00192.6dc     +++|          STIL   CM+2
00194  M01S00193.6dc     +++|          AOD    CM
00195  M01S00194.6dc     +++|          LDI    CM
00196  M01S00195.6dc     +++|          SHN    -4
00197  M01S00196.6dc     +++|          RAIL   CM+2
00198  M01S00197.6dc     +++|          AODL   CM+2
00199  M01S00198.6dc     +++|          SBDL   T7
00200  M01S00199.6dc     +++|          PJN    RDS5        IF LAST BYTE
00201  M01S00200.6dc     +++|
00202  M01S00201.6dc     +++|*         LOAD 4 BITS FROM THE CURRENT BYTE AND 12 BITS FROM THE NEXT.
00203  M01S00202.6dc     +++|
00204  M01S00203.6dc     +++|          LDI    CM
00205  M01S00204.6dc     +++|          LPN    17
00206  M01S00205.6dc     +++|          SHN    12D
00207  M01S00206.6dc     +++|          STIL   CM+2
00208  M01S00207.6dc     +++|          AOD    CM
00209  M01S00208.6dc     +++|          LDI    CM
00210  M01S00209.6dc     +++|          RAIL   CM+2
00211  M01S00210.6dc     +++|          AODL   CM+2
00212  M01S00211.6dc     +++|          SBDL   T7
00213  M01S00212.6dc     +++|          PJN    RDS5        IF LAST BYTE
00214  M01S00213.6dc     +++|
00215  M01S00214.6dc     +++|*         CHECK FOR MORE DATA.
00216  M01S00215.6dc     +++|
00217  M01S00216.6dc     +++|          AOD    CM
00218  M01S00217.6dc     +++|          SBK    BUF+4*5
00219  M01S00218.6dc     +++|          MJP    RDS4        IF 4 WORDS HAVE NOT BEEN PROCESSED
00220  M01S00219.6dc     +++|          UJP    RDS3        GET 4 MORE WORDS
00221  M01S00220.6dc     +++|
00222  M01S00221.6dc     +++| RDS5     LDML   RDS         GET RETURN ADDRESS
00223  M01S00222.6dc     +++|          STDL   CM
00224  M01S00223.6dc     +++|          LDN    0
00225  M01S00224.6dc     +++|          LJM    0,CM        RETURN
00226  M01S00225.6dc     +++|
00227  M01S00226.6dc     +++|
00228  M01S00227.6dc     +++| RDSA     DATA   H* 6DC -*
00229  M01S00228.6dc     +++| RDSB     DATA   C* XXX IS MASS RESIDENT.*
00230  M01S00229.6dc     +++|
00231  M01S00230.6dc     +++| BUF      BSS    0
00232  M01S00231.6dc     +++|*         BSS    4*5
00233  M01S00232.6dc     +++| PRS      SPACE  4,10
00234  M01S00233.6dc     +++|**        PRS - PRESET.
00235  M01S00234.6dc     +++|*
00236  M01S00235.6dc     +++|*         CALLS  SLI.
00237  M01S00236.6dc     +++|
00238  M01S00237.6dc     +++|
00239  M01S00238.6dc     +++| PRS      LDC    PRSA        GET TABLE OF LONG INSTRUCTIONS
00240  M01S00239.6dc     +++|          STD    CM+4
00241  M01S00240.6dc     +++|          LDD    T3          PRESERVE *T3*
00242  M01S00241.6dc     +++|          STD    CM+3
00243  M01S00242.6dc     +++| PRS1     LDI    CM+4        GET NEXT INSTRUCTION ADDRESS
00244  M01S00243.6dc     +++|          ZJN    PRS2        IF END OF LIST
00245  M01S00244.6dc     +++|          STD    T3
00246  M01S00245.6dc     +++|          BLI    T3          BUILD LONG INSTRUCTION
00247  M01S00246.6dc     +++|          AOD    CM+4
00248  M01S00247.6dc     +++|          UJN    PRS1        PROCESS NEXT INSTRUCTION
00249  M01S00248.6dc     +++|
00250  M01S00249.6dc     +++| PRS2     LDD    CM+3        RESTORE *T3*
00251  M01S00250.6dc     +++|          STD    T3
00252  M01S00251.6dc     +++|          LDC    SMSX        ENSURE PRESET IS NOT RE-EXECUTED
00253  M01S00252.6dc     +++|          STM    MSFW
00254  M01S00253.6dc     +++|          LJM    SMSX        RETURN
00255  M01S00254.6dc     +++|
00256  M01S00255.6dc     +++|
00257  M01S00256.6dc     +++| PRSA     BSS    0
00258  M01S00257.6dc     +++|          LIST16
00259  M01S00258.6dc     +++|
00260  M01S00259.6dc     +++| .1       MAX    *,BUF+4*5
00261  M01S00260.6dc     +++| .1       SET    .1+4-MSFW   CHECK FOR OVERFLOW
00262  M01S00261.6dc     +++| .1       SET    .1/5
00263  M01S00262.6dc     +++| .1       SET    MSFW+.1*5
00264  M01S00263.6dc     +++| .2       SET    PPFW-5-*-5  BYTES AVAILABLE BEFORE OVERFLOW
00265  M01S00264.6dc     +++|          ERRNG  PPFW-5-.1   DRIVER OVERFLOWS INTO *PPFW*-5
00266  M01S00265.6dc     +++|          END
cdc/nos2.source/opl.opl871/deck/6dc.txt ยท Last modified: by 127.0.0.1