1 Modification
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
00027 M01S00026.comcdcp +++|*T, 6/ 0,18/ K,18/ M,18/ B
Figure
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
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
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