Common COMCDCP

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.comcdcp +++|          CTEXT  COMCDCP - CPU DISPLAY CONSOLE PROCESSORS.
00002  M01S00002.comcdcp +++|          SPACE  4,10
00003  M01S00003.comcdcp +++|          BASE   D
Line S00004 Modification History
M01 (Added by) comcdcp
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00004  M02S00004.281l803 ---|*         COMMENT  COPYRIGHT CONTROL DATA CORPORATION, 1984.
00005  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00006  M01S00005.comcdcp +++| DCP      SPACE  4,10
00007  M01S00006.comcdcp +++|***       COMCDCP - CPU DISPLAY CONSOLE PROCESSORS.
00008  M01S00007.comcdcp +++|*
00009  M01S00008.comcdcp +++|*         J. T. LITTLE.      84/02/23.
00010  M01S00009.comcdcp +++|          SPACE  4,10
00011  M01S00010.comcdcp +++|***       *COMCDCP* CONTAINS SUBROUTINES USED BY *K* AND *L* DISPLAY
00012  M01S00011.comcdcp +++|*         UTILITIES.  SUBROUTINES *PGD* AND *PRK* ARE CONTAINED IN
00013  M01S00012.comcdcp +++|*         LABELED REMOTE BLOCKS.  A *HERE* INSTRUCTION LABELED *PGD*
00014  M01S00013.comcdcp +++|*         OR *PRK* WILL ASSEMBLE THE RESPECTIVE CODE AT THAT LOCATION.
00015  M01S00014.comcdcp +++| PGD      SPACE  4,40
00016  M01S00015.comcdcp +++| PGD      RMT
00017  M01S00016.comcdcp +++| QUAL$    IF     -DEF,QUAL$
00018  M01S00017.comcdcp +++|          QUAL   COMCDCP
00019  M01S00018.comcdcp +++| QUAL$    ENDIF
00020  M01S00019.comcdcp +++|**        PGD - PAGE *K* OR *L* DISPLAY.
00021  M01S00020.comcdcp +++|*
00022  M01S00021.comcdcp +++|*         ENTRY  (X1) = ADDRESS OF *K* DISPLAY CONTROL WORD OR ADDRESS
00023  M01S00022.comcdcp +++|*                       CONTAINING *L* DISPLAY OUTPUT BUFFER ADDRESS.
00024  M01S00023.comcdcp +++|*                (X2) = FWA OF PAGE TABLE WITH THE FOLLOWING FORMAT.
00025  M01S00024.comcdcp +++|*
00026  M01S00025.comcdcp +++|*T        12/     NL,18/        CL,12/     NR,18/        CR
Figure

0171829 CR NR30474859 CL NL

00027  M01S00026.comcdcp +++|*T,       6/  0,18/        K,18/        M,18/        B
Figure

0171829 B M303536535459 M K 0

00028  M01S00027.comcdcp +++|*         NL     NUMBER OF LEFT SCREEN PAGES.
00029  M01S00028.comcdcp +++|*         CL     INDEX OF CURRENT LEFT SCREEN.
00030  M01S00029.comcdcp +++|*         NR     NUMBER OF RIGHT SCREEN PAGES.
00031  M01S00030.comcdcp +++|*         CR     INDEX OF CURRENT RIGHT SCREEN.
00032  M01S00031.comcdcp +++|*         K      KEYBOARD INPUT LINE ADDRESS IN DISPLAY BUFFER.
00033  M01S00032.comcdcp +++|*         M      ERROR MESSAGE LINE ADDRESS IN DISPLAY BUFFER.
00034  M01S00033.comcdcp +++|*         B      FWA OF PAGE DISPLAY BUFFER.
00035  M01S00034.comcdcp +++|*
00036  M01S00035.comcdcp +++|*                (X3) = PAGING CHARACTER, LEFT JUSTIFIED AND
00037  M01S00036.comcdcp +++|*                       ZERO-FILLED.
00038  M01S00037.comcdcp +++|*                (X4) = 0 FOR *K* DISPLAY.
00039  M01S00038.comcdcp +++|*                     = 1 FOR *L* DISPLAY.
00040  M01S00039.comcdcp +++|*                (B1) = 1.
00041  M01S00040.comcdcp +++|*
00042  M01S00041.comcdcp +++|*         EXIT   *K* DISPLAY CONTROL WORD UPDATED.
00043  M01S00042.comcdcp +++|*                *L* DISPLAY OUTPUT BUFFER ADDRESS UPDATED.
00044  M01S00043.comcdcp +++|*                PAGE TABLE HEADER WORD UPDATED.
00045  M01S00044.comcdcp +++|*                (X4) = 0 IF LEGAL PAGING INPUT.
00046  M01S00045.comcdcp +++|*                     = 1 IF NOT LEGAL PAGING INPUT.
00047  M01S00046.comcdcp +++|*
00048  M01S00047.comcdcp +++|*         USES   X - 1, 2, 3, 4, 6, 7.
00049  M01S00048.comcdcp +++|*                A - 1, 2, 3, 4, 6.
00050  M01S00049.comcdcp +++|*                B - 3, 4, 5, 6.
00051  M01S00050.comcdcp +++|*
00052  M01S00051.comcdcp +++|*         NOTE   THE PAGT MACRO WILL GENERATE THE PAGE TABLE IN THE
00053  M01S00052.comcdcp +++|*                CORRECT FORMAT.
00054  M01S00053.comcdcp +++|
00055  M01S00054.comcdcp +++|
00056  M01S00055.comcdcp +++| PGD8     SX4    B1+
00057  M01S00056.comcdcp +++|
00058  M01S00057.comcdcp +++| PGD      SUBR               ENTRY/EXIT
00059  M01S00058.comcdcp +++|          SA1    X1+
00060  M01S00059.comcdcp +++|          SB6    X4+
00061  M01S00060.comcdcp +++|
00062  M01S00061.comcdcp +++|*         SEARCH PAGE COMMAND TABLE.
00063  M01S00062.comcdcp +++|
00064  M01S00063.comcdcp +++|          SA4    PGDA-1
00065  M01S00064.comcdcp +++|          MX7    6
00066  M01S00065.comcdcp +++| PGD1     SA4    A4+B1       GET COMMAND TABLE ENTRY
00067  M01S00066.comcdcp +++|          ZR     X4,PGD8     IF END OF COMMAND TABLE
00068  M01S00067.comcdcp +++|          BX6    X7*X4
00069  M01S00068.comcdcp +++|          BX6    X6-X3
00070  M01S00069.comcdcp +++|          NZ     X6,PGD1     IF NOT A MATCH
00071  M01S00070.comcdcp +++|
00072  M01S00071.comcdcp +++|*         PROCESS PAGE COMMAND.
00073  M01S00072.comcdcp +++|
00074  M01S00073.comcdcp +++|          SB4    X4          SHIFT FACTOR
00075  M01S00074.comcdcp +++|          ZR     B6,PGD2     IF *K* DISPLAY
00076  M01S00075.comcdcp +++|          ZR     B4,PGD8     IF RIGHT SCREEN COMMAND FOR *L* DISPLAY
00077  M01S00076.comcdcp +++| PGD2     LX4    42          PAGE DISPLAY
00078  M01S00077.comcdcp +++|          SB3    X4          PAGE INCREMENT
00079  M01S00078.comcdcp +++|          SA2    X2          PAGE TABLE HEADER
00080  M01S00079.comcdcp +++|          LX2    B4
00081  M01S00080.comcdcp +++|          MX7    -12
00082  M01S00081.comcdcp +++|          SX3    X2          CURRENT PAGE INDEX
00083  M01S00082.comcdcp +++|          ZR     X3,PGD8     IF NO PAGES IN TABLE
00084  M01S00083.comcdcp +++|          SX3    X3+B3       NEW PAGE INDEX
00085  M01S00084.comcdcp +++|          ZR     X3,PGD3     IF PAGED BACK TOO FAR
00086  M01S00085.comcdcp +++|          LX2    -18
00087  M01S00086.comcdcp +++|          BX4    -X7*X2
00088  M01S00087.comcdcp +++|          SB3    X4
00089  M01S00088.comcdcp +++|          SB5    X3
00090  M01S00089.comcdcp +++|          LX2    18
00091  M01S00090.comcdcp +++|          GE     B3,B5,PGD4  IF DID NOT PAGE TOO FAR FORWARD
00092  M01S00091.comcdcp +++| PGD3     SX3    B1+         SET TO FIRST PAGE
00093  M01S00092.comcdcp +++|
00094  M01S00093.comcdcp +++|*         UPDATE PAGE TABLE HEADER WORD.
00095  M01S00094.comcdcp +++|
00096  M01S00095.comcdcp +++| PGD4     MX4    42
00097  M01S00096.comcdcp +++|          BX2    X4*X2
00098  M01S00097.comcdcp +++|          BX6    X2+X3
00099  M01S00098.comcdcp +++|          LX6    B4
00100  M01S00099.comcdcp +++|          SA6    A2          REPLACE HEADER WORD
00101  M01S00100.comcdcp +++|
00102  M01S00101.comcdcp +++|*         UPDATE PAGE DISPLAY ADDRESS.
00103  M01S00102.comcdcp +++|
00104  M01S00103.comcdcp +++|          NZ     B4,PGD5     IF LEFT SCREEN
00105  M01S00104.comcdcp +++|          LX6    12
00106  M01S00105.comcdcp +++|          BX6    -X7*X6      NUMBER OF LEFT PAGES
00107  M01S00106.comcdcp +++|          SB3    X3
00108  M01S00107.comcdcp +++|          SB3    B3+X6       POSITION OF RIGHT PAGE IN TABLE
00109  M01S00108.comcdcp +++|          SA3    A2+B3       ADDRESS OF NEW DISPLAY
00110  M01S00109.comcdcp +++|          LX1    42
00111  M01S00110.comcdcp +++|          SX6    X3
00112  M01S00111.comcdcp +++|          BX1    X4*X1
00113  M01S00112.comcdcp +++|          BX6    X1+X6       INSERT NEW RIGHT SCREEN ADDRESS
00114  M01S00113.comcdcp +++|          LX6    18
00115  M01S00114.comcdcp +++|          EQ     PGD7        REPLACE ADDRESS WORD
00116  M01S00115.comcdcp +++|
00117  M01S00116.comcdcp +++| PGD5     SB3    X3
00118  M01S00117.comcdcp +++|          SA3    A2+B3       GET ADDRESS OF NEW DISPLAY
00119  M01S00118.comcdcp +++|          NZ     B6,PGD6     IF *L* DISPLAY
00120  M01S00119.comcdcp +++|          BX1    X4*X1
00121  M01S00120.comcdcp +++|          SX6    X3+
00122  M01S00121.comcdcp +++|          BX6    X1+X6
00123  M01S00122.comcdcp +++|          EQ     PGD7        REPLACE ADDRESS WORD
00124  M01S00123.comcdcp +++|
00125  M01S00124.comcdcp +++| PGD6     SX6    X3+
00126  M01S00125.comcdcp +++| PGD7     SA6    A1          REPLACE ADDRESS WORD
00127  M01S00126.comcdcp +++|          SX4    B0
00128  M01S00127.comcdcp +++|          EQ     PGDX        RETURN
00129  M01S00128.comcdcp +++|
00130  M01S00129.comcdcp +++|
00131  M01S00130.comcdcp +++|**        PAGE COMMAND TABLE.
00132  M01S00131.comcdcp +++|*
00133  M01S00132.comcdcp +++|*T ADDR   24/   PC,18/  PF/,18/  SF
Figure ADDR

0171829 SF PF30353659 PF PC

00134  M01S00133.comcdcp +++|*         PC     PAGING CHARACTER.
00135  M01S00134.comcdcp +++|*         PF     PAGING FACTOR.
00136  M01S00135.comcdcp +++|*         SF     SHIFT FACTOR.
00137  M01S00136.comcdcp +++|
00138  M01S00137.comcdcp +++|
00139  M01S00138.comcdcp +++| PGDA     VFD    24/1L+,18/1,18/30
00140  M01S00139.comcdcp +++|          VFD    24/1L-,18/-1,18/30
00141  M01S00140.comcdcp +++|          VFD    24/1L(,18/1,18/0
00142  M01S00141.comcdcp +++|          VFD    24/1L),18/-1,18/0
00143  M01S00142.comcdcp +++|          CON    0           END OF TABLE
00144  M01S00143.comcdcp +++| QUAL$    IF     -DEF,QUAL$
00145  M01S00144.comcdcp +++|          QUAL   *
00146  M01S00145.comcdcp +++| PGD      EQU    /COMCDCP/PGD
00147  M01S00146.comcdcp +++| QUAL$    ENDIF
00148  M01S00147.comcdcp +++| PGD      RMT
00149  M01S00148.comcdcp +++| PRK      SPACE  4,25
00150  M01S00149.comcdcp +++| PRK      RMT
00151  M01S00150.comcdcp +++| QUAL$    IF     -DEF,QUAL$
00152  M01S00151.comcdcp +++|          QUAL   COMCDCP
00153  M01S00152.comcdcp +++| QUAL$    ENDIF
00154  M01S00153.comcdcp +++|**        PRK - PRESET *K* DISPLAY.
00155  M01S00154.comcdcp +++|*
00156  M01S00155.comcdcp +++|*         ENTRY  (X3) = FWA OF Y COORDINATE TABLE OF THE FOLLOWING
00157  M01S00156.comcdcp +++|*                       FORM.
00158  M01S00157.comcdcp +++|*
00159  M01S00158.comcdcp +++|*T        24/0,18/LL,18/Y
Figure

0171829YLL30353659LL0

00160  M01S00159.comcdcp +++|*         LL     LOCATION OF Y-COORDINATE IN DISPLAY BUFFER.
00161  M01S00160.comcdcp +++|*         Y      Y COORDINATE FOR 721 CONSOLE.
00162  M01S00161.comcdcp +++|*
00163  M01S00162.comcdcp +++|*                (B1) = 1.
00164  M01S00163.comcdcp +++|*
00165  M01S00164.comcdcp +++|*         EXIT   (X4) = CONSOLE TYPE.
00166  M01S00165.comcdcp +++|*
00167  M01S00166.comcdcp +++|*         USES   X - 1, 2, 3, 4, 6, 7.
00168  M01S00167.comcdcp +++|*                A - 1, 2, 4, 7.
00169  M01S00168.comcdcp +++|*
00170  M01S00169.comcdcp +++|*         MACROS CSTATUS.
00171  M01S00170.comcdcp +++|*
00172  M01S00171.comcdcp +++|*         NOTE   THE KDL MACRO IN *COMCDCM* GENERATES THE Y COORDINATE
00173  M01S00172.comcdcp +++|*                TABLE  IN THE CORRECT FORMAT.  THE Y COORDINATE IS
00174  M01S00173.comcdcp +++|*                ASSUMED TO BE IN BYTE 1 OF THE DISPLAY BUFFER WORD.
00175  M01S00174.comcdcp +++|
00176  M01S00175.comcdcp +++|
00177  M01S00176.comcdcp +++| PRK      SUBR               ENTRY/EXIT
00178  M01S00177.comcdcp +++|          CSTATUS  PRKA
00179  M01S00178.comcdcp +++|          SA4    PRKA
00180  M01S00179.comcdcp +++|          ZR     X4,PRKX     IF CC545
00181  M01S00180.comcdcp +++|          LX4    12
00182  M01S00181.comcdcp +++|          SA1    X3-1
00183  M01S00182.comcdcp +++|          MX6    48
00184  M01S00183.comcdcp +++|          LX6    36
00185  M01S00184.comcdcp +++| PRK1     SA1    A1+B1       GET NEXT TABLE ENTRY
00186  M01S00185.comcdcp +++|          ZR     X1,PRKX     IF END OF TABLE
00187  M01S00186.comcdcp +++|          SX3    X1
00188  M01S00187.comcdcp +++|          AX1    18
00189  M01S00188.comcdcp +++|          SA2    X1
00190  M01S00189.comcdcp +++|          LX3    36
00191  M01S00190.comcdcp +++|          BX2    X6*X2
00192  M01S00191.comcdcp +++|          BX7    X2+X3       BUFFER WORD WITH NEW Y COORDINATE
00193  M01S00192.comcdcp +++|          SA7    A2          REPLACE WORD IN BUFFER
00194  M01S00193.comcdcp +++|          EQ     PRK1        CONTINUE PROCESSING TABLE
00195  M01S00194.comcdcp +++|
00196  M01S00195.comcdcp +++|
00197  M01S00196.comcdcp +++| PRKA     CON    0           CONSOLE STATUS WORD
00198  M01S00197.comcdcp +++| QUAL$    IF     -DEF,QUAL$
00199  M01S00198.comcdcp +++|          QUAL   *
00200  M01S00199.comcdcp +++| PRK      EQU    /COMCDCP/PRK
00201  M01S00200.comcdcp +++| QUAL$    ENDIF
00202  M01S00201.comcdcp +++| PRK      RMT
00203  M01S00202.comcdcp +++|          BASE   *
00204  M01S00203.comcdcp +++| DCP      ENDX