Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.comcmve +++| CTEXT COMCMVE - MOVE BLOCK OF DATA.
00002 M00S00002.comcmve +++| MVE SPACE 4
00003 M00S00003.comcmve +++| IF -DEF,QUAL$,1
00004 M00S00004.comcmve +++| QUAL COMCMVE
00005 M00S00005.comcmve +++| BASE D
Line S00006 Modification History |
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00006 M01S00006.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
Line S00001 Modification History |
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00007 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00008 M00S00007.comcmve +++| MVE SPACE 4
00009 M00S00008.comcmve +++|*** MVE - MOVE BLOCK OF DATA.
00010 M00S00009.comcmve +++|* G. R. MANSFIELD. 70/10/09.
00011 M00S00010.comcmve +++|* R. E. TATE. 73/11/04.
00012 M00S00011.comcmve +++| MVE SPACE 4
00013 M00S00012.comcmve +++|*** MVE MOVES A BLOCK OF DATA.
00014 M00S00013.comcmve +++|*
00015 M00S00014.comcmve +++|* NOTE- UPWARD MOVE MEANS TOWARD RA.
Line S00001 Modification History |
M01 (Added by) | ns2340 |
Seq # *Modification Id* Act
----------------------------+
00016 M01S00001.ns2340 +++|*
00017 M01S00002.ns2340 +++|* A *MOVE* REQUEST MAY ACCESS DATA FROM BEYOND THE END OF THE
00018 M01S00003.ns2340 +++|* BUFFER, THUS CAUSING AN ABORT IF THE LAST WORD ADDRESS OF
00019 M01S00004.ns2340 +++|* THE SOURCE BUFFER IS WITHIN 2 WORDS OF THE PROGRAM-S FIELD
00020 M01S00005.ns2340 +++|* LENGTH.
00021 M00S00015.comcmve +++|*
00022 M00S00016.comcmve +++|* ENTRY (X1) = WORD COUNT.
00023 M00S00017.comcmve +++|* (X2) = SOURCE ADDRESS.
00024 M00S00018.comcmve +++|* (X3) = DESTINATION ADDRESS.
00025 M00S00019.comcmve +++|*
00026 M00S00020.comcmve +++|* EXIT (B1) = 1.
00027 M00S00021.comcmve +++|*
00028 M00S00022.comcmve +++|* USES X - 1, 2, 3, 4, 6, 7.
00029 M00S00023.comcmve +++|* B - 7.
00030 M00S00024.comcmve +++|* A - 2, 4, 6, 7.
00031 M00S00025.comcmve +++|
00032 M00S00026.comcmve +++|
00033 M00S00027.comcmve +++|* COMPARE MOVE UNIT BUFFER AREA/PRESET.
00034 M00S00028.comcmve +++|* MVEB IS READ UP AND THEN RETURN JUMPED TO IN ORDER TO VOID
00035 M00S00029.comcmve +++|* THE INSTRUCTION STACK. LATER MVEB IS USED FOR THE CMU
00036 M00S00030.comcmve +++|* DESCRIPTOR WORD.
00037 M00S00031.comcmve +++|
00038 M00S00032.comcmve +++| MVE11 BSS 0 ENTRY FOR PRESET
00039 M00S00033.comcmve +++| MVEB IX4 X2-X3 CHECK DIRECTION OF MOVE (NO CMU)
00040 M00S00034.comcmve +++| MX7 59
00041 M00S00035.comcmve +++| JP MVE13
00042 M00S00036.comcmve +++|
00043 M00S00037.comcmve +++| MVEC BX7 X2 CHECK IF CMU AVAILABLE (BUFFER AREA FWA)
00044 M00S00038.comcmve +++| SA2 CMUR
00045 M00S00039.comcmve +++| PL X2,MVE12 IF NO CMU
00046 M00S00040.comcmve +++| SA4 MVED
00047 M00S00041.comcmve +++| MVE12 BX6 X4
00048 M00S00042.comcmve +++| LX2 X7 RESTORE X2
00049 M00S00043.comcmve +++| SA6 MVEA
00050 M00S00044.comcmve +++| JP MVE1 RESTART LOOP
00051 M00S00045.comcmve +++|
00052 M00S00046.comcmve +++| MVED IX4 X2-X3 CHECK DIRECTION OF MOVE (CMU)
00053 M00S00047.comcmve +++| BX7 X1 SET WORD COUNT
00054 M00S00048.comcmve +++| BX1 X0 SAVE X0
00055 M00S00049.comcmve +++| LX2 30
00056 M00S00050.comcmve +++|
00057 M00S00051.comcmve +++|* DETERMINE MOVE DIRECTION.
00058 M00S00052.comcmve +++|
00059 M00S00053.comcmve +++| MVE13 BX6 -X7*X1
00060 M00S00054.comcmve +++| IX1 X1-X6 REDUCE WORD COUNT TO EVEN NUMBER
00061 M00S00055.comcmve +++| PL X4,MVE15 IF MOVE UP
00062 M00S00056.comcmve +++|
00063 M00S00057.comcmve +++|* BEGIN DOWNWARD MOVE.
00064 M00S00058.comcmve +++|
00065 M00S00059.comcmve +++| ZR X6,MVE14 IF WORD COUNT EVEN
00066 M00S00060.comcmve +++| SB7 X1
00067 M00S00061.comcmve +++| SA4 X2+B7 MOVE INITIAL WORD
00068 M00S00062.comcmve +++| BX6 X4
00069 M00S00063.comcmve +++| SA6 X3+B7
00070 M00S00064.comcmve +++| MVE14 IX2 X2+X1
00071 M00S00065.comcmve +++| IX3 X3+X1
00072 M00S00066.comcmve +++| SB7 -2
00073 M00S00067.comcmve +++| EQ MVE16
00074 M00S00068.comcmve +++|
00075 M00S00069.comcmve +++|* BEGIN UPWARD MOVE.
00076 M00S00070.comcmve +++|
00077 M00S00071.comcmve +++| MVE15 SB7 -2 UPWARD MOVE
00078 M00S00072.comcmve +++| SX2 X2+B7
00079 M00S00073.comcmve +++| SX3 X3+B7
00080 M00S00074.comcmve +++| SB7 B1+B1
00081 M00S00075.comcmve +++| ZR X6,MVE16 IF WORD COUNT EVEN
00082 M00S00076.comcmve +++| SA4 X2+B7 MOVE INITIAL WORD
00083 M00S00077.comcmve +++| IX2 X2+X6
00084 M00S00078.comcmve +++| BX7 X4
00085 M00S00079.comcmve +++| SA7 X3+B7
00086 M00S00080.comcmve +++| IX3 X3+X6
00087 M00S00081.comcmve +++|
00088 M00S00082.comcmve +++|* INITIALIZE MOVE LOOP.
00089 M00S00083.comcmve +++|
00090 M00S00084.comcmve +++| MVE16 ZR X1,MVE= IF MOVE COMPLETE
00091 M00S00085.comcmve +++| SA2 X2+B7 MOVE FIRST 2 WORDS
00092 M00S00086.comcmve +++| SA4 A2+B1
00093 M00S00087.comcmve +++| BX6 X2
00094 M00S00088.comcmve +++| LX7 X4
00095 M00S00089.comcmve +++| SA6 X3+B7
00096 M00S00090.comcmve +++| SA7 A6+B1
00097 M00S00091.comcmve +++| SX3 B1+B1
00098 M00S00092.comcmve +++| IX1 X1-X3
00099 M00S00093.comcmve +++| ZR X1,MVE= IF MOVE COMPLETE
00100 M00S00094.comcmve +++| SA2 A2+B7 NEXT 2 WORDS
00101 M00S00095.comcmve +++| SA4 A4+B7
00102 M00S00096.comcmve +++|
00103 M00S00097.comcmve +++|* MOVE LOOP.
00104 M00S00098.comcmve +++|
00105 M00S00099.comcmve +++| MVE17 BX6 X2
00106 M00S00100.comcmve +++| SA2 A2+B7
00107 M00S00101.comcmve +++| LX7 X4
00108 M00S00102.comcmve +++| SA4 A4+B7
00109 M00S00103.comcmve +++| IX1 X1-X3
00110 M00S00104.comcmve +++| NO
00111 M00S00105.comcmve +++| SA6 A6+B7
00112 M00S00106.comcmve +++| SA7 A7+B7
00113 M00S00107.comcmve +++| NZ X1,MVE17
00114 M00S00108.comcmve +++|
00115 M00S00109.comcmve +++| MVEE BSS 0 END OF CMU BUFFER AREA
00116 M00S00110.comcmve +++| MVELL EQU MVEE-MVEC NUMBER OF WORDS IN BUFFER
00117 M00S00111.comcmve +++|
00118 M00S00112.comcmve +++| MVE= PS ENTRY/EXIT
00119 M00S00113.comcmve +++| R= B1,1
00120 M00S00114.comcmve +++| MVEA BSS 0
00121 M00S00115.comcmve +++| MVE1 SA4 MVEB INITIALIZE FOR CMU
00122 M00S00116.comcmve +++| RJ MVE11
00123 M00S00117.comcmve +++|* IX4 X2-X3 CHECK DIRECTION OF MOVE (NO CMU)
00124 M00S00118.comcmve +++|* MX7 59 (NO CMU)
00125 M00S00119.comcmve +++|* JP MVE13 (NO CMU)
00126 M00S00120.comcmve +++|*
00127 M00S00121.comcmve +++|* IX4 X2-X3 CHECK DIRECTION OF MOVE (CMU)
00128 M00S00122.comcmve +++|* BX7 X1 (CMU)
00129 M00S00123.comcmve +++|* BX1 X0 SAVE X0 (CMU)
00130 M00S00124.comcmve +++|* LX2 30 (CMU)
00131 M00S00125.comcmve +++|
00132 M00S00126.comcmve +++|* MOVE DATA WITH CMU.
00133 M00S00127.comcmve +++|
00134 M00S00128.comcmve +++| ZR X7,MVE= IF NO DATA TO MOVE
00135 M00S00129.comcmve +++| SX6 X7-819
00136 M00S00130.comcmve +++| BX0 X4
00137 M00S00131.comcmve +++| NG X4,MVE2 IF MOVE DOWNWARD
00138 M00S00132.comcmve +++| BX0 -X4
00139 M00S00133.comcmve +++| MVE2 IX0 X0+X7
00140 M00S00134.comcmve +++| BX6 X0*X6
00141 M00S00135.comcmve +++| PL X6,MVE3 IF BLOCK TOO LONG FOR 1 MOVE OR BLOCKS LAP
00142 M00S00136.comcmve +++| BX0 X7 SET UP FOR 1 MOVE
00143 M00S00137.comcmve +++| BX2 X2+X3
00144 M00S00138.comcmve +++| BX7 X7-X7 SET TO FORCE EXIT
00145 M00S00139.comcmve +++| MX4 -4
00146 M00S00140.comcmve +++| SB7 MVE9
00147 M00S00141.comcmve +++| JP MVE10
00148 M00S00142.comcmve +++|
00149 M00S00143.comcmve +++| MVE3 SX6 MVEC SET INTERMEDIATE BUFFER ADDRESS
00150 M00S00144.comcmve +++| NG X4,MVE6 IF MOVE DOWNWARD
00151 M00S00145.comcmve +++|
00152 M00S00146.comcmve +++|* MOVE UPWARD.
00153 M00S00147.comcmve +++|
00154 M00S00148.comcmve +++| BX2 X2+X6
00155 M00S00149.comcmve +++| LX6 30
00156 M00S00150.comcmve +++| BX3 X3+X6
00157 M00S00151.comcmve +++| MVE4 BX0 X7
00158 M00S00152.comcmve +++| SX7 X7-MVELL DECREMENT WORD COUNT
00159 M00S00153.comcmve +++| MX4 -4
00160 M00S00154.comcmve +++| NG X7,MVE5 IF LAST BLOCK TO MOVE
00161 M00S00155.comcmve +++| SX0 MVELL
00162 M00S00156.comcmve +++| MVE5 SB7 *+1 SET TO RETURN HERE
00163 M00S00157.comcmve +++| JP MVE10
00164 M00S00158.comcmve +++| IM MVEB
00165 M00S00159.comcmve +++| SB7 X7
00166 M00S00160.comcmve +++| BX0 X1 RESTORE X0
00167 M00S00161.comcmve +++| LT B7,B1,MVE= IF MOVE COMPLETE
00168 M00S00162.comcmve +++| SX4 -MVELL UPDATE ADDRESSES
00169 M00S00163.comcmve +++| IX3 X3-X4
00170 M00S00164.comcmve +++| LX4 30
00171 M00S00165.comcmve +++| IX2 X2-X4
00172 M00S00166.comcmve +++| JP MVE4
00173 M00S00167.comcmve +++|
00174 M00S00168.comcmve +++|* MOVE DOWNWARD.
00175 M00S00169.comcmve +++|
00176 M00S00170.comcmve +++| MVE6 LX6 30 SET LAST WORD ADDRESSES OF DATA AREAS
00177 M00S00171.comcmve +++| BX6 X7+X6
00178 M00S00172.comcmve +++| IX3 X3+X6
00179 M00S00173.comcmve +++| LX6 30
00180 M00S00174.comcmve +++| IX2 X2+X6
00181 M00S00175.comcmve +++| MVE7 SX6 MVELL
00182 M00S00176.comcmve +++| SX0 X7
00183 M00S00177.comcmve +++| IX7 X7-X6
00184 M00S00178.comcmve +++| MX4 -4
00185 M00S00179.comcmve +++| NG X7,MVE8 IF LAST BLOCK TO MOVE
00186 M00S00180.comcmve +++| BX0 X6
00187 M00S00181.comcmve +++| MVE8 BX6 X0 ADJUST DESTINATION AND SOURCE ADDRESSES
00188 M00S00182.comcmve +++| IX3 X3-X0
00189 M00S00183.comcmve +++| LX6 30
00190 M00S00184.comcmve +++| IX2 X2-X6
00191 M00S00185.comcmve +++| SB7 *+1 SET TO RETURN HERE
00192 M00S00186.comcmve +++| JP MVE10
00193 M00S00187.comcmve +++| IM MVEB MOVE DATA TO DESTINATION BUFFER
00194 M00S00188.comcmve +++| MVE9 SB7 X7
00195 M00S00189.comcmve +++| BX0 X1 RESTORE X0
00196 M00S00190.comcmve +++| LT B7,B1,MVE= IF MOVE COMPLETE
00197 M00S00191.comcmve +++| JP MVE7 LOOP
00198 M00S00192.comcmve +++|
00199 M00S00193.comcmve +++|* SETUP MOVE WORD.
00200 M00S00194.comcmve +++|* (X0) = NUMBER OF WORDS TO MOVE.
00201 M00S00195.comcmve +++|* (X4) = 56 BIT MASK.
00202 M00S00196.comcmve +++|
00203 M00S00197.comcmve +++| MVE10 LX6 X0,B1 10 * WORD COUNT = CHARACTER COUNT
00204 M00S00198.comcmve +++| LX0 3
00205 M00S00199.comcmve +++| IX6 X0+X6
00206 M00S00200.comcmve +++| BX0 -X4*X6 EXTRACT LOWER PORTION
00207 M00S00201.comcmve +++| BX4 X4*X6 EXTRACT UPPER PORTION
00208 M00S00202.comcmve +++| LX0 26
00209 M00S00203.comcmve +++| LX4 48-4
00210 M00S00204.comcmve +++| BX0 X4+X0
00211 M00S00205.comcmve +++| BX6 X2+X0
00212 M00S00206.comcmve +++| SA6 MVEB STORE FIRST DESCRIPTOR WORD
00213 M00S00207.comcmve +++| BX6 X3+X0
00214 M00S00208.comcmve +++| IM MVEB MOVE DATA TO INTERMEDIATE BUFFER
00215 M00S00209.comcmve +++| SA6 A6 STORE SECOND DESCRIPTOR WORD
00216 M00S00210.comcmve +++| JP B7
00217 M00S00211.comcmve +++| SPACE 4
00218 M00S00212.comcmve +++| BASE *
00219 M00S00213.comcmve +++| QUAL$ IF -DEF,QUAL$
00220 M00S00214.comcmve +++| QUAL *
00221 M00S00215.comcmve +++| MVE= EQU /COMCMVE/MVE=
00222 M00S00216.comcmve +++| QUAL$ ENDIF
00223 M00S00217.comcmve +++| ENDX