User Tools

Site Tools


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

Deck 6DC

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.6dc     +++|          IDENT  6DC,MSFW
00002  M00S00002.6dc     +++|          PERIPH
00003  M00S00003.6dc     +++|          BASE   MIXED
00004  M00S00004.6dc     +++|          SST
00005  M00S00005.6dc     +++|          TITLE  6DC - CONCURRENT PP OVERLAY LOADER.
00006  M00S00006.6dc     +++|*COMMENT  6DC - CONCURRENT PP OVERLAY LOADER.
Line S00007 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00007  M01S00007.281l803 ---|          COMMENT  COPYRIGHT CONTROL DATA CORPORATION, 1985.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00008  M01S00001.281l803 +++|          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00009  M00S00008.6dc     +++| 6DC      SPACE  4,10
00010  M00S00009.6dc     +++|***       6DC - CONCURRENT PP OVERLAY LOADER.
00011  M00S00010.6dc     +++|*
00012  M00S00011.6dc     +++|*         J. M. MAREK.       85/11/01.
00013  M00S00012.6dc     +++|          SPACE  4,20
00014  M00S00013.6dc     +++|***       *6DC* LOADS 16-BIT OVERLAYS INTO CONCURRENT PPS (CPP).  IT IS
00015  M00S00014.6dc     +++|*         EXPECTED THAT THE ONLY CPP SUBROUTINE TO CALL *6DC* WILL BE
00016  M00S00015.6dc     +++|*         THE PERIPHERAL LIBRARY LOADER (PLL) IN PP RESIDENT.  *6DC* IS
00017  M00S00016.6dc     +++|*         LOADED INTO THE DRIVER OVERLAY AREA WHEN A CPP PROGRAM ISSUES
00018  M00S00017.6dc     +++|*         A *SETMS* REQUEST.  *6DC* PROVIDES THE STANDARD DRIVER ENTRY
00019  M00S00018.6dc     +++|*         POINTS, *RDS*, *WDS*, AND *EMS*.
00020  M00S00019.6dc     +++|*
00021  M00S00020.6dc     +++|*         WHEN IT IS CALLED AT *RDS*, IT EXAMINES THE PARAMETERS IN
00022  M00S00021.6dc     +++|*         *T5* - *T7*.  IF THE PARAMETERS SPECIFY LOADING A CM RESIDENT
00023  M00S00022.6dc     +++|*         16-BIT PP PROGRAM, *6DC* COMPLETES THE LOAD, PERFORMING THE
00024  M00S00023.6dc     +++|*         NECESSARY PACKING, AND RETURNS TO THE CALLER.  IF A MASS
00025  M00S00024.6dc     +++|*         RESIDENT PROGRAM IS REQUESTED, *RDS* ISSUES AN ERROR LOG
00026  M00S00025.6dc     +++|*         MESSAGE AND RETURNS AN ERROR STATUS (-1) TO THE CALLER.  IF
00027  M00S00026.6dc     +++|*         *T5* - *T7* DO NOT SPECIFY A 16-BIT LOAD, *6DC* HANGS THE
00028  M00S00027.6dc     +++|*         CPP.
00029  M00S00028.6dc     +++|*
00030  M00S00029.6dc     +++|*         WHEN *6DC* IS CALLED AT *WDS*, IT ALSO HANGS THE *CPP*.
00031  M00S00030.6dc     +++|*
00032  M00S00031.6dc     +++|*         WHEN IT IS CALLED AT *EMS*, IT SIMPLY RETURNS TO THE CALLER.
00033  M00S00032.6dc     +++|*
00034  M00S00033.6dc     +++|*         NOTE.  DURING EXECUTION *6DC* DESTROYS ITS PRESET CODE.
00035  M00S00034.6dc     +++|*         DRIVER PRESET SHOULD NEVER BE SPECIFIED WITHOUT DRIVER LOAD.
00036  M00S00035.6dc     +++|          SPACE  4,10
00037  M00S00036.6dc     +++|***       ENTRY CONDITIONS.
00038  M00S00037.6dc     +++|*
00039  M00S00038.6dc     +++|*         CM RESIDENT 16-BIT OVERLAY.
00040  M00S00039.6dc     +++|*         (T5 - T7) = 2/ ,4/ 10,18/  *RPL* ADDRESS,12/ LENGTH
00041  M00S00040.6dc     +++|*
00042  M00S00041.6dc     +++|*         MS RESIDENT OVERLAY.  (NOT SUPPORTED)
00043  M00S00042.6dc     +++|*         (T5 - T7) = 2/ ,4/ 14,6/ ESTO,12/  TRACK,12/  SECTOR
00044  M00S00043.6dc     +++|*
00045  M00S00044.6dc     +++|*         MS READ.  (NOT SUPPORTED)
00046  M00S00045.6dc     +++|*         (T5 - T7) = 3/0, 9/  ESTO,12/  TRACK,12/  SECTOR
00047  M00S00046.6dc     +++| COMMON   SPACE  4,10
00048  M00S00047.6dc     +++|*         COMMON DECKS.
00049  M00S00048.6dc     +++|
00050  M00S00049.6dc     +++|
00051  M00S00050.6dc     +++|*CALL     COMPMAC
00052  M00S00051.6dc     +++|*CALL     COMPIOU
00053  M00S00052.6dc     +++|*CALL     COMSMSC
00054  M00S00053.6dc     +++|*CALL     COMSMSP
00055  M00S00054.6dc     +++|          EJECT
00056  M00S00055.6dc     +++|**        ENTRY POINT TRANSFERS.
00057  M00S00056.6dc     +++|
00058  M00S00057.6dc     +++|
00059  M00S00058.6dc     +++|          ORG    MSFW
00060  M00S00059.6dc     +++|
00061  M00S00060.6dc     +++|          CON    PRS         PRESET ADDRESS
00062  M00S00061.6dc     +++|
00063  M00S00062.6dc     +++|
00064  M00S00063.6dc     +++| RDS      CON    0           ENTRY
00065  M00S00064.6dc     +++|          UJN    RDS.        ENTER DRIVER
00066  M00S00065.6dc     +++|
00067  M00S00066.6dc     +++|
00068  M00S00067.6dc     +++| WDS      CON    0           ENTRY
00069  M00S00068.6dc     +++|          UJN    WDS.        ENTER DRIVER
00070  M00S00069.6dc     +++| EMS      SPACE  4,10
00071  M00S00070.6dc     +++|**        EMS - END MASS STORAGE OPERATION.
00072  M00S00071.6dc     +++|*
00073  M00S00072.6dc     +++|*         EXIT   (A) = 0.
00074  M00S00073.6dc     +++|
00075  M00S00074.6dc     +++|
00076  M00S00075.6dc     +++| .EMS     SUBR               ENTRY/EXIT
00077  M00S00076.6dc     +++|          LDN    0
00078  M00S00077.6dc     +++|          STM    CHRV
00079  M00S00078.6dc     +++|          UJN    .EMSX       RETURN
00080  M00S00079.6dc     +++| WDS      SPACE  4,10
00081  M00S00080.6dc     +++|**        WDS - WRITE SECTOR.
00082  M00S00081.6dc     +++|*
00083  M00S00082.6dc     +++|*         *WDS* HANGS THE PP WHEN IT IS CALLED.
00084  M00S00083.6dc     +++|*
00085  M00S00084.6dc     +++|*         ENTRY  (A) = BUFFER ADDRESS FOR SECTOR.
00086  M00S00085.6dc     +++|
00087  M00S00086.6dc     +++|
00088  M00S00087.6dc     +++| WDS.     MONITOR  HNGM      HANG THE PP
00089  M00S00088.6dc     +++| WDS1     UJN    WDS.        CONTINUE HANGING
00090  M00S00089.6dc     +++| RDS      SPACE  4,10
00091  M00S00090.6dc     +++|**        RDS - READ SECTOR.
00092  M00S00091.6dc     +++|*
00093  M00S00092.6dc     +++|*         ENTRY  (A) = BUFFER ADDRESS FOR SECTOR.
00094  M00S00093.6dc     +++|*
00095  M00S00094.6dc     +++|*         EXIT   (A) = 0 IF TRANSFER COMPLETE.
00096  M00S00095.6dc     +++|*                    = ERROR CODE IF ERROR OCCURRED.
00097  M00S00096.6dc     +++|
00098  M00S00097.6dc     +++|
00099  M00S00098.6dc     +++| RDS6     EQU    WDS1
00100  M00S00099.6dc     +++|
00101  M00S00100.6dc     +++| RDS7     LDM    PLLA        GET OVERLAY NAME
00102  M00S00101.6dc     +++|          STM    RDSB
00103  M00S00102.6dc     +++|          LDM    PLLB
00104  M00S00103.6dc     +++|          STM    RDSB+1
00105  M00S00104.6dc     +++|          LDC    RDSA+ERLN   ISSUE ERROR LOG MESSAGE
00106  M00S00105.6dc     +++|          RJM    DFM
00107  M00S00106.6dc     +++|          LDML   RDS         GET RETURN ADDRESS
00108  M00S00107.6dc     +++|          STDL   CM
00109  M00S00108.6dc     +++|          LCN    1           SET ERROR FLAG
00110  M00S00109.6dc     +++|          LJM    0,CM        RETURN
00111  M00S00110.6dc     +++|
00112  M00S00111.6dc     +++| RDS.     LDD    T5          CHECK 16-BIT LOAD BIT
00113  M00S00112.6dc     +++|          SHN    21-11
00114  M00S00113.6dc     +++| RDS1     PJN    RDS6        IF NOT 16-BIT LOAD
00115  M00S00114.6dc     +++|          SHN    21-10-21+11
00116  M00S00115.6dc     +++|          MJN    RDS7        IF MS RESIDENT OVERLAY
00117  M00S00116.6dc     +++|          SHN    21-5-21+10  GET RPL HEADER
00118  M00S00117.6dc     +++|          SCN    77
00119  M00S00118.6dc     +++|          LMD    T6
00120  M00S00119.6dc     +++|          CRD    CM
00121  M00S00120.6dc     +++|          ADN    1           SET FWA OF OVERLAY
00122  M00S00121.6dc     +++|          STD    T6
00123  M00S00122.6dc     +++|          SHN    -14
00124  M00S00123.6dc     +++|          STD    T5
00125  M00S00124.6dc     +++|          LDD    CM+1        GET LOAD ADDRESS
00126  M00S00125.6dc     +++|          LPN    17
00127  M00S00126.6dc     +++|          SHN    14
00128  M00S00127.6dc     +++|          LMD    CM+2
00129  M00S00128.6dc     +++|          ZJN    RDS2        IF ZERO LEVEL OVERLAY
00130  M00S00129.6dc     +++|          STDL   LA
00131  M00S00130.6dc     +++| RDS2     STML   2,LA
00132  M00S00131.6dc     +++|          LDDL   LA
00133  M00S00132.6dc     +++|          ADN    5           SET FWA OF OVERLAY CODE
00134  M00S00133.6dc     +++|          STDL   CM+2
00135  M00S00134.6dc     +++|          SOD    T7          COMPUTE THE NUMBER OF BYTES
00136  M00S00135.6dc     +++|          SHN    4           BYTES = WORDS(15)/4 AND TRUNCATED
00137  M00S00136.6dc     +++|          SBD    T7
00138  M00S00137.6dc     +++|          SHN    -2
00139  M00S00138.6dc     +++|          ADDL   CM+2        COMPUTE THE LAST BYTE ADDRESS
00140  M00S00139.6dc     +++|          STDL   T7
00141  M00S00140.6dc     +++|          SHN    -15
00142  M00S00141.6dc     +++|          NJN    RDS1        IF OVERLAY WRAPS MEMORY
00143  M00S00142.6dc     +++|          LDD    CM          BUILD NORMAL OVERLAY HEADER
00144  M00S00143.6dc     +++|          STI    LA
00145  M00S00144.6dc     +++|          LDD    CM+1
00146  M00S00145.6dc     +++|          SCN    77
00147  M00S00146.6dc     +++|          STM    1,LA
00148  M00S00147.6dc     +++|          LDN    1
00149  M00S00148.6dc     +++|          STM    3,LA
00150  M00S00149.6dc     +++|          LDD    CM+4
00151  M00S00150.6dc     +++|          STM    4,LA
00152  M00S00151.6dc     +++|          LDN    4
00153  M00S00152.6dc     +++|          STD    T4
00154  M00S00153.6dc     +++|
00155  M00S00154.6dc     +++|*         START THE MAIN LOOP WITH THESE INITIAL CONDITIONS -
00156  M00S00155.6dc     +++|*
00157  M00S00156.6dc     +++|*         (T4) = 4.
00158  M00S00157.6dc     +++|*         (T5 - T6) = FWA OF THE OVERLAY IN CM.
00159  M00S00158.6dc     +++|*         (T7) = LAST BYTE ADDRESS+1 OF THE OVERLAY IN PP MEMORY.
00160  M00S00159.6dc     +++|*         (CM+2) = FWA OF THE OVERLAY CODE.
00161  M00S00160.6dc     +++|*         (LA) = LOAD ADDRESS OF THE OVERLAY.
00162  M00S00161.6dc     +++|
00163  M00S00162.6dc     +++|*         GET 15 16-BIT BYTES.
00164  M00S00163.6dc     +++|
00165  M00S00164.6dc     +++| RDS3     LDD    T5          READ THE NEXT 4 WORDS
00166  M00S00165.6dc     +++|          SHN    14
00167  M00S00166.6dc     +++|          LMD    T6
00168  M00S00167.6dc     +++|          CRM    BUF,T4
00169  M00S00168.6dc     +++|          STD    T6
00170  M00S00169.6dc     +++|          SHN    -14
00171  M00S00170.6dc     +++|          STD    T5
00172  M00S00171.6dc     +++|          LDC    BUF
00173  M00S00172.6dc     +++|          STD    CM
00174  M00S00173.6dc     +++|
00175  M00S00174.6dc     +++|*         LOAD 12 BITS FROM THE FIRST BYTE AND 4 FROM THE NEXT.
00176  M00S00175.6dc     +++|
00177  M00S00176.6dc     +++| RDS4     LDI    CM
00178  M00S00177.6dc     +++|          SHN    4
00179  M00S00178.6dc     +++|          STIL   CM+2
00180  M00S00179.6dc     +++|          AOD    CM
00181  M00S00180.6dc     +++|          LDI    CM
00182  M00S00181.6dc     +++|          SHN    -8D
00183  M00S00182.6dc     +++|          RAIL   CM+2
00184  M00S00183.6dc     +++|          AODL   CM+2
00185  M00S00184.6dc     +++|          SBDL   T7
00186  M00S00185.6dc     +++|          PJN    RDS5        IF LAST BYTE
00187  M00S00186.6dc     +++|
00188  M00S00187.6dc     +++|*         LOAD 8 BITS FROM THE CURRENT BYTE AND 8 FROM THE NEXT.
00189  M00S00188.6dc     +++|
00190  M00S00189.6dc     +++|          LDI    CM
00191  M00S00190.6dc     +++|          SHN    8D
00192  M00S00191.6dc     +++|          SCN    77
00193  M00S00192.6dc     +++|          STIL   CM+2
00194  M00S00193.6dc     +++|          AOD    CM
00195  M00S00194.6dc     +++|          LDI    CM
00196  M00S00195.6dc     +++|          SHN    -4
00197  M00S00196.6dc     +++|          RAIL   CM+2
00198  M00S00197.6dc     +++|          AODL   CM+2
00199  M00S00198.6dc     +++|          SBDL   T7
00200  M00S00199.6dc     +++|          PJN    RDS5        IF LAST BYTE
00201  M00S00200.6dc     +++|
00202  M00S00201.6dc     +++|*         LOAD 4 BITS FROM THE CURRENT BYTE AND 12 BITS FROM THE NEXT.
00203  M00S00202.6dc     +++|
00204  M00S00203.6dc     +++|          LDI    CM
00205  M00S00204.6dc     +++|          LPN    17
00206  M00S00205.6dc     +++|          SHN    12D
00207  M00S00206.6dc     +++|          STIL   CM+2
00208  M00S00207.6dc     +++|          AOD    CM
00209  M00S00208.6dc     +++|          LDI    CM
00210  M00S00209.6dc     +++|          RAIL   CM+2
00211  M00S00210.6dc     +++|          AODL   CM+2
00212  M00S00211.6dc     +++|          SBDL   T7
00213  M00S00212.6dc     +++|          PJN    RDS5        IF LAST BYTE
00214  M00S00213.6dc     +++|
00215  M00S00214.6dc     +++|*         CHECK FOR MORE DATA.
00216  M00S00215.6dc     +++|
00217  M00S00216.6dc     +++|          AOD    CM
00218  M00S00217.6dc     +++|          SBK    BUF+4*5
00219  M00S00218.6dc     +++|          MJP    RDS4        IF 4 WORDS HAVE NOT BEEN PROCESSED
00220  M00S00219.6dc     +++|          UJP    RDS3        GET 4 MORE WORDS
00221  M00S00220.6dc     +++|
00222  M00S00221.6dc     +++| RDS5     LDML   RDS         GET RETURN ADDRESS
00223  M00S00222.6dc     +++|          STDL   CM
00224  M00S00223.6dc     +++|          LDN    0
00225  M00S00224.6dc     +++|          LJM    0,CM        RETURN
00226  M00S00225.6dc     +++|
00227  M00S00226.6dc     +++|
00228  M00S00227.6dc     +++| RDSA     DATA   H* 6DC -*
00229  M00S00228.6dc     +++| RDSB     DATA   C* XXX IS MASS RESIDENT.*
00230  M00S00229.6dc     +++|
00231  M00S00230.6dc     +++| BUF      BSS    0
00232  M00S00231.6dc     +++|*         BSS    4*5
00233  M00S00232.6dc     +++| PRS      SPACE  4,10
00234  M00S00233.6dc     +++|**        PRS - PRESET.
00235  M00S00234.6dc     +++|*
00236  M00S00235.6dc     +++|*         CALLS  SLI.
00237  M00S00236.6dc     +++|
00238  M00S00237.6dc     +++|
00239  M00S00238.6dc     +++| PRS      LDC    PRSA        GET TABLE OF LONG INSTRUCTIONS
00240  M00S00239.6dc     +++|          STD    CM+4
00241  M00S00240.6dc     +++|          LDD    T3          PRESERVE *T3*
00242  M00S00241.6dc     +++|          STD    CM+3
00243  M00S00242.6dc     +++| PRS1     LDI    CM+4        GET NEXT INSTRUCTION ADDRESS
00244  M00S00243.6dc     +++|          ZJN    PRS2        IF END OF LIST
00245  M00S00244.6dc     +++|          STD    T3
00246  M00S00245.6dc     +++|          BLI    T3          BUILD LONG INSTRUCTION
00247  M00S00246.6dc     +++|          AOD    CM+4
00248  M00S00247.6dc     +++|          UJN    PRS1        PROCESS NEXT INSTRUCTION
00249  M00S00248.6dc     +++|
00250  M00S00249.6dc     +++| PRS2     LDD    CM+3        RESTORE *T3*
00251  M00S00250.6dc     +++|          STD    T3
00252  M00S00251.6dc     +++|          LDC    SMSX        ENSURE PRESET IS NOT RE-EXECUTED
00253  M00S00252.6dc     +++|          STM    MSFW
00254  M00S00253.6dc     +++|          LJM    SMSX        RETURN
00255  M00S00254.6dc     +++|
00256  M00S00255.6dc     +++|
00257  M00S00256.6dc     +++| PRSA     BSS    0
00258  M00S00257.6dc     +++|          LIST16
00259  M00S00258.6dc     +++|
00260  M00S00259.6dc     +++| .1       MAX    *,BUF+4*5
00261  M00S00260.6dc     +++| .1       SET    .1+4-MSFW   CHECK FOR OVERFLOW
00262  M00S00261.6dc     +++| .1       SET    .1/5
00263  M00S00262.6dc     +++| .1       SET    MSFW+.1*5
00264  M00S00263.6dc     +++| .2       SET    PPFW-5-*-5  BYTES AVAILABLE BEFORE OVERFLOW
00265  M00S00264.6dc     +++|          ERRNG  PPFW-5-.1   DRIVER OVERFLOWS INTO *PPFW*-5
00266  M00S00265.6dc     +++|          END
cdc/nos2.source/opl.opl871/deck/6dc.txt ยท Last modified: (external edit)