perm filename U1.MCR[KL,SYS]1 blob
sn#199188 filedate 1976-02-05 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00202 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00029 00002 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 1
C00033 00003 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 2
C00036 00004 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 3
C00038 00005 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 4
C00039 00006 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 5
C00044 00007 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 6
C00053 00008 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 7
C00060 00009 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 8
C00067 00010 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 9
C00088 00011 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 10
C00096 00012 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 11
C00100 00013 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 12
C00105 00014 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 13
C00110 00015 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 14
C00114 00016 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 15
C00118 00017 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 16
C00121 00018 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 17
C00124 00019 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 18
C00128 00020 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 19
C00132 00021 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 20
C00138 00022 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 21
C00141 00023 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 22
C00142 00024 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 23
C00146 00025 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 24
C00150 00026 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 25
C00152 00027 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 26
C00157 00028 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 27
C00161 00029 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 28
C00165 00030 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 29
C00170 00031 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 30
C00178 00032 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 31
C00183 00033 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 32
C00187 00034 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 33
C00191 00035 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 34
C00195 00036 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 35
C00199 00037 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 36
C00204 00038 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 37
C00210 00039 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 38
C00215 00040 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 39
C00219 00041 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 40
C00224 00042 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 41
C00229 00043 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 42
C00233 00044 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 43
C00237 00045 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 44
C00240 00046 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 45
C00241 00047 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 46
C00247 00048 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 47
C00252 00049 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 48
C00262 00050 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 49
C00268 00051 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 50
C00273 00052 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 51
C00277 00053 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 52
C00280 00054 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 53
C00283 00055 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 54
C00288 00056 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 55
C00292 00057 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 56
C00296 00058 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 57
C00300 00059 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 58
C00304 00060 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 59
C00305 00061 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 60
C00309 00062 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 61
C00314 00063 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 62
C00316 00064 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 63
C00320 00065 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 64
C00325 00066 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 65
C00334 00067 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 66
C00339 00068 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 67
C00343 00069 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 68
C00349 00070 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 69
C00352 00071 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 70
C00356 00072 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 71
C00358 00073 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 72
C00362 00074 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 73
C00365 00075 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 74
C00368 00076 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 75
C00373 00077 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 76
C00379 00078 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 77
C00380 00079 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 78
C00385 00080 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 79
C00389 00081 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 80
C00394 00082 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 81
C00399 00083 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 82
C00400 00084 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 83
C00402 00085 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 84
C00406 00086 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 85
C00410 00087 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 86
C00414 00088 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 87
C00418 00089 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 88
C00422 00090 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 89
C00425 00091 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 90
C00429 00092 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 91
C00433 00093 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 92
C00439 00094 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 93
C00440 00095 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 94
C00444 00096 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 95
C00447 00097 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 96
C00450 00098 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 97
C00455 00099 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 98
C00459 00100 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 99
C00463 00101 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 100
C00468 00102 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 101
C00474 00103 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 102
C00480 00104 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 103
C00484 00105 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 104
C00488 00106 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 105
C00491 00107 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 106
C00496 00108 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 107
C00501 00109 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 108
C00506 00110 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 109
C00507 00111 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 110
C00512 00112 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 111
C00516 00113 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 112
C00520 00114 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 113
C00526 00115 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 114
C00529 00116 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 115
C00530 00117 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 116
C00538 00118 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 117
C00545 00119 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 118
C00549 00120 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 119
C00553 00121 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 120
C00557 00122 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 121
C00565 00123 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 122
C00575 00124 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 123
C00590 00125 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 124
C00601 00126 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 125
C00608 00127 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 126
C00614 00128 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 127
C00618 00129 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 128
C00621 00130 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 129
C00627 00131 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 130
C00631 00132 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 131
C00632 00133 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 132
C00636 00134 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 133
C00640 00135 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 134
C00644 00136 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 135
C00650 00137 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 136
C00655 00138 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 137
C00660 00139 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 138
C00666 00140 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 139
C00670 00141 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 140
C00674 00142 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 141
C00678 00143 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 142
C00681 00144 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 143
C00686 00145 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 144
C00690 00146 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 145
C00693 00147 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 146
C00694 00148 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 147
C00699 00149 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 148
C00703 00150 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 149
C00709 00151 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 150
C00710 00152 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 151
C00716 00153 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 152
C00721 00154 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 153
C00727 00155 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 154
C00733 00156 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 155
C00738 00157 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 156
C00744 00158 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 157
C00749 00159 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 158
C00753 00160 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 159
C00757 00161 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 160
C00762 00162 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 161
C00766 00163 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 162
C00769 00164 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 163
C00772 00165 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 164
C00775 00166 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 165
C00778 00167 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 166
C00781 00168 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 167
C00784 00169 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 168
C00788 00170 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 169
C00792 00171 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 170
C00795 00172 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 171
C00798 00173 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 172
C00802 00174 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 173
C00806 00175 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 174
C00809 00176 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 175
C00813 00177 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 176
C00816 00178 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 177
C00820 00179 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 178
C00823 00180 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 179
C00826 00181 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 180
C00829 00182 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 181
C00833 00183 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 182
C00836 00184 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 183
C00840 00185 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 184
C00843 00186 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 185
C00846 00187 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 186
C00852 00188 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 187
C00856 00189 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 188
C00860 00190 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 189
C00864 00191 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 190
C00869 00192 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 191
C00874 00193 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 192
C00878 00194 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 193
C00883 00195 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 194
C00888 00196 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 195
C00889 00197 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 196
C00893 00198 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 197
C00895 00199 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 198
C00899 00200 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 199
C00903 00201 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 200
C00907 00202 DSK: UCODE U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 201
C00908 ENDMK
C⊗;
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 1
; TABLE OF CONTENTS
; 1 MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS
; 19 REVISION HISTORY
; 197 CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
; 288 HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 481 MICROCODE LISTING TEMPLATE
; 531 CONTROL RAM DEFINITIONS -- AD
; 588 CONTROL RAM DEFINITIONS -- DATA PATH MIXERS
; 644 CONTROL RAM DEFINITIONS -- 10-BIT LOGIC
; 701 CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS
; 757 CONTROL RAM DEFINITIONS -- COND SPECIAL FUNCTIONS
; 797 CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS
; 839 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 1075 DISPATCH RAM DEFINITIONS
; 1118 MACROS -- AC TRANSFERS
; 1157 MACROS -- DATA PATH TRANSFERS AND SHIFTS
; 1230 MACROS -- ARITHMETIC
; 1283 MACROS -- SCRATCH AC'S (BLOCK 7)
; 1376 ITS AC BLOCKS USAGE TABLE
; 1421 KL-MODE PAGING REGISTERS
; 1538 MACROS -- ITS JPC RING REGISTERS
; 1608 MACROS -- CONSTANT GENERATION
; 1650 MACROS -- ADDRESS MANIPULATION
; 1691 MACROS -- LONG (72-BIT) ARITHMETIC
; 1708 MACROS -- HALFWORD MANIPULATION
; 1737 MACROS -- SC
; 1773 MACROS -- FE
; 1819 MACROS -- AR MIXER MIXER (BITS 0-8)
; 1870 MACROS -- MICROPROGRAM SKIPS
; 1915 MACROS -- CRY0 GENERATORS
; 1925 MACROS -- SUBROUTINE CALL AND RETURNS
; 1943 MACROS -- DISPATCHES
; 1977 MACROS -- I/O OPERATIONS ON EBUS
; 2033 MACROS -- MEMORY ACCESS
; 2086 MACROS -- FLAG CONTROL
; 2128 MACROS -- STATE REGISTER CONTROL
; 2160 DISPATCH RAM MACROS
; 2232 THE INSTRUCTION LOOP
; 2319 NEXT INSTRUCTION DISPATCH
; 2415 EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH
; 2478 TERMINATION
; 2525 EXCH, BLT, MOVE GROUP
; 2580 HALFWORD GROUP
; 2723 DMOVE, DMOVN, DMOVEM, DMOVNM
; 2763 BOOLEAN GROUP
; 2920 TEST GROUP
; 3030 COMPARE -- CAI, CAM
; 3056 ARITHMETIC SKIPS -- AOS, SOS, SKIP
; 3105 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ
; 3180 AC DECODE JUMPS -- JRST, JFCL
; 3280 HALT LOOP
; 3302 MAP, XCT
; 3341 ITS PAGE MAP INSTRUCTIONS -- LPM, SPM
; 3388 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ
; 3462 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA
; 3499 UUO'S
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 2
; TABLE OF CONTENTS
; 3693 JSYS, ADJSP
; 3747 XCT, PXCT, SXCT
; 3818 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO
; 3883 ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC
; 3927 CIRC INSTRUCTION
; 3979 ARITHMETIC SHIFTS -- ASH, ASHC
; 4030 ADD, SUB
; 4055 MUL, IMUL
; 4106 MULTIPLY SUBROUTINE
; 4148 DIV, IDIV
; 4194 INTEGER DIVIDE SUBROUTINE
; 4233 BASIC DIVIDE LOOP
; 4266 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 4414 SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 4495 SINGLE FLOATING MULTIPLY -- FMP, FMPR
; 4524 SINGLE FLOATING DIVIDE -- FDV, FDVR
; 4652 UFA, DFN, FSC, IBP
; 4706 FIX, FIXR, FLTR, EXTEND
; 4770 SINGLE PRECISION FLOATING NORMALIZATION
; 4898 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 5017 DOUBLE PRECISION NORMALIZATION
; 5060 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
; 5109 INCREMENT BYTE POINTER SUBROUTINE
; 5127 BYTE EFFECTIVE ADDRESS EVALUATOR
; 5146 LOAD BYTE SUBROUTINE
; 5166 DEPOSIT BYTE SUBROUTINE
; 5188 ADJBP
; 5271 I/O INSTRUCTIONS
; 5368 EXTERNAL DEVICE I/O INSTRUCTIONS
; 5442 INTERNAL DEVICE FUNCTIONS -- APR, CCA
; 5480 INTERNAL DEVICE FUNCTIONS -- PI
; 5528 TRACKS SUPPORT
; 5582 INTERNAL DEVICE FUNCTIONS -- PAG
; 5654 INTERNAL DEVICE FUNCTIONS -- TIM & MTR
; 5749 PRIORITY INTERRUPT PROCESSING
; 5893 KL-MODE PAGE REFILL LOGIC
; 6295 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6995 BLT
; 7076 STORING OF JPC
; CROSS REFERENCE INDEX
; DCODE LOCATION / LINE # INDEX
; UCODE LOCATION / LINE # INDEX
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 3
; DSK: UCODE; ITS 3 14:37:48 15-JAN-76 MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS
; 1 .TOC "MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS"
; 2
; 3 .SET/ITSPAGE=1 ;ITS-STYLE PAGING
; 4 .SET/MAP=0 ;NO MAP INSTRUCTION
; 5 .SET/PFAIL.PIHACK=1 ;PI OFF ON PAGE FAILURE
; 6 .SET/JRSTON=1 ;JRST 17, TURNS ON PI THEN DOES JRST 2,
; 7 .SET/LPM.SPM=1 ;LPMR AND SPM INSTRUCTIONS
; 8 .SET/XCTR=1 ;XCTR INSTRUCTIONS (PXCT AND PXCTI)
; 9 .SET/EIS=0 ;NO STRING STUFF FOR NOW
; 10 .SET/DECIMAL=0 ;NO DECIMAL STUFF FOR NOW
; 11 .SET/CIRC=1 ;WINNING CIRC INSTRUCTION
; 12 .SET/MVSQZ=1 ;RANDOM MVSQZ INSTRUCTION
; 13 .SET/KLPAGE=1 ;U CODE CONTROLS PAGE REFILLS
; 14
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 4
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS
; 15
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 5
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 MICROCODE CONDITIONAL ASSEMBLY PARAMETERS FOR ITS
; 16 .TITLE "KL10 ITS MICROCODE"
; 17 ;COPYRIGHT (C) 1975, DIGITAL EQUIPMENT CORPORATION
; 18
; 19 .TOC "REVISION HISTORY"
; 20
; 21 ;REV WHY
; 22 ;101 FIX METER REQUEST CODE TO "ABORT INSTR" EVEN IF NOT SETTING
; 23 ; PI CYCLE. THIS SHOULD FIX OCCASIONAL LOSS OF TRAPS PROBLEM.
; 24 ;100 FIXES TO KL PAGING CODE TO PREVENT LOADING VMA FROM AD WHILE
; 25 ; REQUESTING PHYSICAL REF. FIX JSR TO PREVENT FM PARITY STOP
; 26 ; ON STORE TO AC. FIX 1777 TO FORCE RECIRCULATION OF AR/ARX,
; 27 ; EVEN IF MBOX RESP STILL TRUE.
; 28 ;77 FIX DDIV TO GET MQ SHIFTED LEFT ONE PLACE, WITHOUT INTRODUCING
; 29 ; AN EXTRA BIT, AT DDVX1. THIS INVOLVES INHIBITING ADA TO PREVENT
; 30 ; AD CRY0 FROM COMMING INTO MQ35.
; 31 ;76 FIX UFA TO ALLOW AN EBOX CYCLE BETWEEN FETCH AND NICOND WHEN
; 32 ; FRACTION SUM IS ZERO, AT UFA3.
; 33 ;75 PUT BACK INSTRUCTION "MBREL" REMOVED BY EDIT 64. NECESSARY TO
; 34 ; ENSURE THAT EBOX REQUEST FOR FETCH DOESN'T COME UP WHILE
; 35 ; REGISTER FUNCTION IS IN PROGRESS, WHICH WOULD CONFUSE MBOX ON
; 36 ; STARTING THE FETCH.
; 37 ;74 CHANGES TO EIS FOR NEW-SPEC AC USAGE. CHANGES TO KL PAGING FOR
; 38 ; INDIRECT, IMMEDIATE SECTION POINTERS
; 39 ;73 FIX JRA TO PREVENT WRITING AC WITH DATA FRESH FROM MEMORY (ALLOW
; 40 ; A CYCLE FOR PARITY CHECK). FIX DPB CODE TAKE ONLY 3 TICKS ON
; 41 ; RETURN FROM BYTEA, SO THAT CACHE DATA DOESN'T ARRIVE INTO AR
; 42 ; AND ARX UNTIL DPB1, WHEN THE BYTE HAS GOTTEN OUT TO MQ.
; 43 ;72 FIX DEFINITION OF SP MEM/UNPAGED TO INHIBIT VMA USER. FIX
; 44 ; PAGE FAIL CODE TO CHECK FOR VMA FETCH BEFORE LOOKING AT
; 45 ; INTERRUPT REQUEST. PROBLEM WAS INTERRUPT CONCURRENT WITH
; 46 ; PAGE FAIL ON JRSTF TO USER. PC FLAGS GOT RESTORED, BUT VMA
; 47 ; NEVER COPIED TO PC BECAUSE PAGE FAIL INHIBITED NICOND, AND
; 48 ; INTERRUPT ABORTED PAGE FAIL HANDLING TO LOAD PC.
; 49 ;71 DEFINE FMADR/AC4=6. FIX MOVFIL ROUTINE TO PUT AWAY UPDATED
; 50 ; LENGTH DIFFERENCE WHEN INTERRUPTED, THUS AVOIDING RANDOMNESS
; 51 ; IN MOVSRJ, CVTBDX. FIX CVTBD CALL TO MOVFIL TO PRESERVE SR.
; 52 ; CHANGE STMAC AND PIDONE FROM "FIN XFER" TO "FIN STORE", BECAUSE
; 53 ; STORE WAS IN PROGRESS, WHICH CAUSED FM WRITE IF AC REF, AND
; 54 ; GOT A PARITY ERROR DUE TO ADB/FM.
; 55 ;70 FIX PXCT 4,[POP ...], WHICH DIDN'T GET DEST CONTEXT SET FOR
; 56 ; STORE. MUST USE SR←100 TO SET IT.
; 57 ;67 FIX PROBLEM IN ADJBP BY WHICH BYTES/WORD WAS GETTING LOST
; 58 ; WHEN DIVIDE ROUTINE LOADED REMAINDER INTO BR. SOLVED BY
; 59 ; SAVING BYTES/WORD IN T1.
; 60 ;66 FIX KL PAGING TO RESTORE VMA ON TRAP, SAVE ADDRESS OF POINTER
; 61
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 6
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 REVISION HISTORY
; 62 ; CAUSING TRAP, AND NOT RESTORE ARX EXCEPT FOR BLT PAGE FAIL.
; 63 ; ALSO SET TIME PARAMETER ON ADB/FM TO ALLOW TIME FOR PARITY
; 64 ; CHECKING OF FM.
; 65 ;65 FIX KL PAGING CODE TO DO MBWAIT AFTER DETERMINING THAT PARITY
; 66 ; ERROR HAS NOT OCCURRED, SO AS TO GET CORRECT VMA TO SAVE.
; 67 ; CREATE SYMBOLS FOR KL PAGE FAIL CODES. PUT CONDITIONAL
; 68 ; ASSEMBLY AROUND IMULI OPTIMIZATION CODE, AND SXCT. CREATE
; 69 ; SYMBOL "OPTIONS" IN # FIELD FOR MICROCODE OPTIONS.
; 70 ;64 MICROCODE FOR KL10 PAGING (PAGE REFILL, MAP INSTR)...
; 71 ; REMOVE UNNECESSARY INSTRUCTION MBREL: FROM SWEEP AND APRBO
; 72 ; COSMETIC CHANGES TO KEEP COMMENTS & MACRO DEFINITIONS FROM
; 73 ; OVERFLOWING LINE OF LISTING, AND INSERTION OF CONDITIONAL
; 74 ; ASSEMBLY CONTROL OF LONG FLOATING POINT INSTRUCTIONS.
; 75 ;63 IN MTR REQUEST ROUTINE, DON'T DISMISS WHEN PI CYCLE HASN'T
; 76 ; BEEN SET.
; 77 ;62 FIX RDMTR CODE TO PUT 35 IN SC BEFORE GOING TO DMOVEM CODE.
; 78 ;61 FIX PIIBP ROUTINE TO USE CALL.M INSTEAD OF SPEC/CALL,
; 79 ; WHICH GETS OVERRIDDEN BY P←P-S... IN MTR REQUEST SERVICE
; 80 ; ROUTINE, DON'T SET PI CYCLE UNLESS REQUEST IS FOR VECTOR.
; 81 ;60 FIX DATAO PAG TO DO MB WAIT AFTER STORING EBOX ACCT AND
; 82 ; BEFORE CHANGING VMA.
; 83 ;57 RE-CODE USES OF A@, B@ TO USE VMA/1, RATHER THAN VMA/AD,
; 84 ; IN ORDER TO GET CORRECT CONTEXT ON INDIRECT WORD. SEE MCL4
; 85 ;56 FIX SECOND PART OF PICYCLE (TAG NEXT:) TO ENSURE THAT
; 86 ; PC+1 INH, KERNEL CYCLE, ETC REMAIN UP DURING 2ND PART.
; 87 ; ALSO CHANGE SPEC/FLAG CTL FOR ECO 1261, WHICH REQUIRES
; 88 ; #07 TO BE OPPOSITE OF #04 TO GENERATE SCD LEAVE USER.
; 89 ;55 FIX SPEC INSTR/SET PI CYCLE TO INHIBIT INTERRUPTS
; 90 ; (IN PARTICULAR, METER UPDATE REQUESTS). MAKE SURE VALID
; 91 ; DATA SAVED ON IO PAGE FAIL AND PARITY ERRORS. REMOVE
; 92 ; BACKWARDS BLT... IT BROKE TOO MANY PROGRAMS.
; 93 ;54 FIX OVERFLOW CHECK IN IMULI OPTIMIZATION TO INH CRY 18
; 94 ; UPDATE TO USE CONDITIONAL ASSEMBLY IN MICRO VERS 20.
; 95 ;53 FIX T1,T2 PARAMETERS ON BYTE DISP, SIGNS DISP
; 96 ;52 CORRECT SHIFT AMOUNT FOR IMULI OPTIMIZATION, AND FIX MACRO
; 97 ; DEFINITIONS FOR SET SR?, WHICH WERE ALWAYS SETTING SR0.
; 98 ;51 OPTIMIZE IMULI OF TWO POSITIVE OPERANDS (TO SPEED UP SUBSCRIPT
; 99 ; CALCULATIONS) BY TAKING ONLY 9 MULTIPLY STEPS AND STARTING
; 100 ; NEXT INSTRUCTION FETCH EARLIER. OPTIMIZATION CAN BE REMOVED
; 101 ; BY COMMENTING OUT TWO INSTRUCTIONS AT IMULI, AND ONE FOLLOWING
; 102 ; IMUL. ALSO FIX APRBI/UVERS TO KEEP SERIAL # OUT OF LH.
; 103 ;50 INTRODUCE SKIP/FETCH AND CODE IN PAGE FAIL RECOVERY TO LOAD
; 104 ; PC FROM VMA IF PAGE FAIL OCCURED ON FETCH, BECAUSE NICOND
; 105 ; CYCLE, WHICH SHOULD HAVE LOADED PC, GETS INHIBITED BY INSTR 1777
; 106 ; ALSO INCLUDE EXTENDED INSTRUCTION SET.
; 107 ;47 UNDO XCT CHANGES OF EDIT 46, WHICH BROKE XCT DUE TO INSUFFICIENT
; 108 ; TIME FOR DRAM HOLD BEFORE USING "A READ". ALSO FIX VECTOR
; 109 ; INTERRUPT CODE TO LOOK AT CORRECT BITS FOR CONTROLLER NUMBER.
; 110 ;46 FOLLOW-ON TO EDIT 45, SAVING 2 WORDS AND A CYCLE
; 111 ; ALSO MOVE JRST TO 600, JFCL TO 700, UUO'S TO 100X AS PREPARATION
; 112 ; FOR EXTENDED INSTRUCTION SET
; 113 ;45 FIX SXCT TO LOOK AT AC FIELD OF SXCT, NOT SUBJECT INSTRUCTION,
; 114 ; WHEN DECIDING WHETHER TO USE BASE-TYPE ADDRESS CALCULATION.
; 115 ;44 FIX PAGE FAIL LOGIC TO WORK FOR EITHER PAGE FAIL OR PARITY
; 116 ; ERROR. EDITS 42 AND 43 BOTH WRONG. ALSO CORRECT RACE IN
; 117 ; WRITING PERFORMANCE ANALYSIS ENABLES TO PREVENT SPURIOUS COUNTS.
; 118 ;43 CORRECT USE OF PF DISP BY EDIT 42. LOW BITS ARE INVERTED
; 119 ;42 FIX BUGS INTRODUCED BY EDIT 40, WHICH MADE FLTR OF 1B0 HANG
; 120 ; TRYING TO NEGATE IT, AND FIX UP EXPONENT CORRECTION ON LONG
; 121 ; SHIFT LEFT. ALSO PUT IN CODE TO HANDLE PARITY ERROR PAGE
; 122 ; FAILURES, AND SET TIME CONTROLS ON 43-47.
; 123 ;41 REWRITE OF VECTOR INTERRUPT PROCESSING TO MAKE DTE VECTORS
; 124 ; GO TO 142+8N, WHERE N IS DTE#. RH20 GO TO PROGRAMMED ADDRESS
; 125 ; IN EPT, EXTERNAL DEVICES USE EXEC VIRTUAL ADDRESSES.
; 126 ;40 IMPROVEMENTS TO FLOATING NORMALIZATION TO MAKE LONG SHIFTS
; 127 ; FASTER, PRIMARILY TO HELP FLTR
; 128 ;37 FIX FLOATING DIVIDE SO THAT THE TRUNCATED FORM OF A NEGATIVE
; 129 ; QUOTIENT IS EQUAL TO THE HIGH-ORDER PART OF THE INFINITE-
; 130 ; PRECISION QUOTIENT. SEE COMMENTS IN THE CODE. ALSO BUM
; 131 ; A CYCLE OUT OF FLOATING DIVIDE BY STARTING THE NORMALIZE
; 132 ; WHILE MOVING THE QUOTIENT INTO AR.
; 133 ; SEVERAL CHANGES TO MAKE TRACKS FEATURE WORK
; 134 ;36 FIX CONO MTR TO PUT DATA ON BOTH HALVES, SO PI CAN SEE PIA
; 135
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 7
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 REVISION HISTORY
; 136 ;35 FIX CONI PI TO READ BACK WRITE EVEN PARITY ENABLES
; 137 ;34 FIX BLT USE OF SR, SO NO CORRECTION OF ARX NECESSARY
; 138 ;33 FIX PAGE TABLE REFERENCES TO FORCE UNPAGED REF. FIX TRAP
; 139 ; TO SET PC+1 INHIBIT.
; 140 ;32 CORRECT SETTING OF SC FOR SHIFTING METER COUNTERS, TO GET
; 141 ; 12 BITS UNUSED AT RIGHT WHEN IT GETS TO CORE.
; 142 ;31 RECODE ASH AND ASHC TO SAVE SPACE
; 143 ;30 FIX JFFO TO SHIFT AR CORRECTLY AT JFFO2. BUM ADJSP TO USE
; 144 ; STMAC FOR UPDATING PDL POINTER.
; 145 ;27 FIX CONI PAG TO READ EBUS. CORRECT DEFINITIONS OF MBOX
; 146 ; REGISTER FUNCTIONS, WHICH HAD BITS 0 AND 3 INVERTED.
; 147 ;26 FIX DEFINITIONS OF DIAG FUNC CONO MTR AND CONO TIM, WHICH
; 148 ; WERE REVERSED
; 149 ;25 FIX DECODING OF PHYSICAL DEVICE NUMBER IN PI FUNCTION CODE
; 150 ; AND RE-CODE JFCL FOR FEWER MICROWORDS
; 151 ;24 FIX JFFO TO SHIFT ON FIRST 6-BIT TEST STEP, AND JRSTF TO
; 152 ; KEEP E AND XR DISTINCT. ALSO SET LOAD-ENABLE BITS IN
; 153 ; DATAI PAG, WORD.
; 154 ;23 FIX CONO PI, TO HOLD AR ONTO EBUS THRU REL EBUS, BECAUSE
; 155 ; PI BOARD DELAYS CONO PI TO GET CONO SET EQUIVALENT.
; 156 ;22 MORE JFCL FIXES. MUST USE FLAG CTL/JFCL WHILE CLEARING BITS,
; 157 ; AS WELL AS WHILE TESTING THEM. BUM A WORD OUT OF JFFO BY
; 158 ; MAKING THE SIXBIT COUNT NEGATIVE. CHANGES SO SHIFT SUBR
; 159 ; RETURNS 2, BYTEA 1. FIX SETMB TO STORE BACK AND FETCH.
; 160 ;21 RE-WRITE JFCL TO KEEP LOW OPCODE BITS OUT OF AR0-1, BECAUSE
; 161 ; PC00 GETS PROPAGATED LEFT TO ADA -1 AND -2.
; 162 ;20 FIX BLT TO LOAD BR WITH SRC-DST ADDR
; 163 ; ALSO SET TIME PARAMETERS ON CONDITIONAL FETCH FUNCTIONS
; 164 ;17 CHANGE SWEEP ONE PAGE TO PUT PAGE # IN E, RATHER THAN ADDR.
; 165 ; ALSO CHANGE COND/FM WRITE TO MATCH ECO #1068.
; 166 ;16 FIX JUMP FETCH MACRO TO LOAD VMA FROM PC+1 (TEST SATISFIED
; 167 ; OVERRIDES THIS TO HOLD VMA). ALSO BUM ONE MICROWORD FROM MUUO.
; 168 ;15 INCLUDE PAGE FAIL DISP IN DISP/ FIELD
; 169 ; ALSO MAKE MUUO STORE PROCESS CONTEXT WORD AT 426, AND SETUP
; 170 ; PCS FROM PC EXTENSION, CWSX FROM SXCT
; 171 ;14 FIX DEFINITIONS OF SKIP/IO LEGAL, AC#0, SC0, EVEN PAR
; 172 ; ALSO FIX DATAO PAG, TO SEND LH DATA ON BOTH HALVES OF EBUS
; 173 ;13 ALIGN SETEBR SO CALL TO SHIFT RETURNS CORRECTLY
; 174 ;12 MAKE SURE AD COPIES AR DURING DATAO, CONO, AND CLEAR AR AT
; 175 ; SET DATAI TIME.
; 176 ;11 FIXES TO CONTINUE CODE SO CONSOLE WORKS, AND CORRECTIONS TO
; 177 ; PROTECTED DEP/EXAM SO PROTECTION PROTECTS.
; 178 ;10 FIX A READ MACRO TO VMA/PC+1. AD OVERRIDES UNLESS DRAM A=1
; 179 ;07 RE-WRITE OF PI CYCLE CODE TO RECOGNIZE NEW EBUS SPEC.
; 180 ;06 FIX DEFINITIONS OF SKIPS 40-57 BY COMPLEMENTING 3 LOW ORDER BITS
; 181 ; FIX MULSUB TO CORRESPOND TO NEW CRA LOGIC
; 182 ;05 FIX EBUS CTL DEFINITIONS TO GET F01 CORRECT. CORRECT FLAG CTL
; 183 ; DEFINITIONS TO PREVENT LEAVE USER WHEN NOT WANTED, AND FIX
; 184 ; JRST/JFCL TO HAVE FLAGS IN AR WHEN NEEDED.
; 185 ;04 FIX RETURNS FROM MULSUB, PUT BETTER COMMENTS ON SNORM CODE,
; 186 ; IMPROVE SNORM ALGORITHM TO MINIMIZE WORST-CASE TIME.
; 187 ;03 FIX DISPATCH ADDRESS PROBLEMS, MOSTLY JRST/JFCL AND UUO'S.
; 188 ;02 CHANGES PER INSTRUCTION SET REVIEW -- DELETE USE OF BIT12 OF
; 189 ; BYTE POINTERS, CHANGE BLT TO PUT FINAL SRC,DST ADDRESSES IN AC,
; 190 ; MAKE TRUNCATE FORM FLOATING POINT REALLY TRUNCATE, ELIMINATE
; 191 ; LOCAL JSYS SUPPORT, DELETE PXCT OPCODE (XCT W/ NON-ZERO AC IN
; 192 ; EXEC MODE, LUUO'S GO TO 40/41 OF CURRENT SPACE.
; 193 ;01 UPDATES FOR .TITLE AND .TOC PSEUDO OPS,
; 194 ; AND VARIOUS CHANGES FOR PROTO HARDWARE
; 195 ;00 CREATION, BASED ON BREADBOARD AS OF EDIT 66
; 196
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 8
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS
; 197 .TOC "CONDITIONAL ASSEMBLY VARIABLE DEFINITIONS"
; 198
; 199 .DEFAULT/RPW=1 ;1 ENABLES READ-PAUSE-WRITE CYCLES FOR
; 200 ;NON-CACHED REFERENCES BY CERTAIN INSTRUCTIONS.
; 201 ; [COST = 0]
; 202
; 203 .DEFAULT/TRACKS=0 ;1 ENABLES STORING PC AFTER EVERY INSTRUCTION,
; 204 ; & CREATES DATAI/O PI TO READ/SETUP PC BUFFER
; 205 ;ADDRESS. [COST = 16 WDS]
; 206
; 207 .DEFAULT/OLD.TRK=0 ;1 ENABLES OLD-STYLE TRACKS, WITHOUT HARDWARE
; 208 ; SUPPORT ON CON BOARD
; 209
; 210 .DEFAULT/BACK.BLT=0 ;1 ENABLES BLT TO DECREMENT ADDRESSES ON EACH
; 211 ;STEP IF E < RH(AC). BREAKS MANY PROGRAMS.
; 212 ; [COST = 9 WDS]
; 213
; 214 .DEFAULT/FPLONG=1 ;1 ENABLES KA-STYLE DOUBLE PRECISION FLOATING
; 215 ;POINT INSTRUCTIONS: FADL, FSBL, FMPL, FDVL.
; 216 ; [COST = 32 WDS]
; 217
; 218 .DEFAULT/UFA.DFN=1 ;1 ENABLES UFA AND DFN INSTRS
; 219 ; [COST = 17 WORDS]
; 220
; 221 .DEFAULT/KLPAGE=0 ;1 ENABLES KL-MODE PAGING. [COST = 74 WDS]
; 222
; 223 .DEFAULT/IMULI.OPT=0 ;1 ENABLES OPTIMIZATION OF IMULI TO TAKE ONLY
; 224 ;NINE MULTIPLY STEPS [COST = 3 WDS]
; 225 ; WARNING: IS BUGGY!
; 226
; 227 .DEFAULT/SXCT=1 ;1 ENABLES SPECIAL XCT INSTR, WHICH ALLOWS
; 228 ; DIAGNOSTICS TO GENERATE LARGE ADDRESSES.
; 229 ; [COST = 10 WDS]
; 230
; 231 .DEFAULT/EIS=1 ;1 ENABLES EIS INSTRS
; 232
; 233 .DEFAULT/DECIMAL=1 ;1 ENABLES DECIMAL-BINARY AND
; 234 ; BINARY-DECIMAL CONVERSION EIS INSTRS
; 235 ; (WORKS ONLY IF EIS=1)
; 236
; 237 .DEFAULT/ITSPAGE=0 ;1 ENABLES ITS PAGING FEATURES
; 238
; 239 .DEFAULT/CIRC=0 ;1 ENABLES WINNING CIRC INSTRUCTION
; 240 ; [COST = 12 WDS]
; 241
; 242 .DEFAULT/CIRC.BIG.OPT=0 ;1 ENABLES GROSS CIRC SPEEDUP
; 243 ; [COST = 16 WDS]
; 244
; 245 .DEFAULT/MVSQZ=0 ;1 ENABLES MOVE SQUOZE INSTRUCTION
; 246 ; [COST = 13 WDS]
; 247
; 248 .DEFAULT/LISP=0 ;1 ENABLES WINNING LISP INSTRS
; 249 ; [NOT YET IMPLEMENTED]
; 250
; 251 .DEFAULT/JPC=0 ;1 ENABLES JPC FEATURE
; 252 ; [COST = 21 WDS]
; 253
; 254 .DEFAULT/JPC.RING=0 ;1 ENABLES 16 JPC'S
; 255 ; [COST = COST OF JPC + 3 + 2*<# JPC'S>
; 256 ; = 56 WDS]
; 257 ;EXEC JPC RING IN AC BLK 4
; 258 ;USER JPC RING IN AC BLK 5
; 259
; 260 .DEFAULT/MAP=1 ;1 ENABLES LOSING MAP INSTRUCTION
; 261 ; [COST = 1+2*KLPAGE WDS]
; 262
; 263 .DEFAULT/PFAIL.PIHACK=0 ;1 ENABLES PAGE FAILURE TURNING PI OFF
; 264 ; [COST = 4 WDS]
; 265
; 266 .DEFAULT/JRSTON=0 ;1 ENABLES JRST 17, = PI ON PLUS JRST 2,
; 267 ; [COST = 3 WDS]
; 268
; 269 .DEFAULT/LPM.SPM=0 ;1 ENABLES LPM AND SPM INSTRUCTIONS
; 270 ; AS OPCODES LPM=074 AND SPM=075
; 271
; 272 .DEFAULT/XCTR=0 ;1 ENABLES OPCODES PXCT=076, PXCTI=077
; 273 ; AND FLUSHES XCT/PXCT AMBIGUITY
; 274 ; [COST = 1 WD]
; 275
; 276 .DEFAULT/NXT.INSTR.BITES=1 ;1 MEANS NXT INSTR IS
; 277 ; INCOMPATIBLE WITH FM WRITE
; 278 ; FOR AC1 AND #B#
; 279
; 280 .DEFAULT/ONE PROCEED=1 ;1 ENABLES TRAP1+TRAP2+ADR BRK INH IN PC
; 281 ;TO PROCEED FOR ONE INSTRUCTION THEN
; 282 ;TAKE TRAP 3. [COST = 9 WDS]
; 283
; 284 .IFNOT/JPC
; 285 .CHANGE/JPC.RING=0
; 286 .ENDIF/JPC
; 287
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 9
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS
; 288 .TOC "HOW TO READ THE MICROCODE -- FORMATS & CONSTRUCTS"
; 289
; 290 ;(1) FIELD DEFINITIONS
; 291 ; THESE OCCUR AT THE BEGINNING OF THE LISTING, IN THE SOURCE FILE
; 292 ; DEFINE.MIC (CONTROL AND DISPATCH RAM DEFINITIONS).
; 293 ; THEY HAVE THE FORM:
; 294 ; SYMBOL/=J,K,L,M
; 295 ; THE FIRST PARAMETER (J) IS MEANINGFUL ONLY WHEN "D" IS SPECIFIED
; 296 ; AS THE DEFAULT MECHANISM, AND IN THAT CASE, GIVES THE DEFAULT VALUE OF
; 297 ; THE FIELD IN OCTAL.
; 298 ; THE SECOND PARAMETER (K) GIVES THE FIELD SIZE IN (DECIMAL) NUMBER
; 299 ; OF BITS.
; 300 ; THE THIRD PARAMETER (L) GIVES THE FIELD POSITION IN DECIMAL
; 301 ; AS THE BIT NUMBER OF THE RIGHTMOST BIT OF THE FIELD. BITS ARE NUMBERED
; 302 ; FROM 0 ON THE LEFT. NOTE THAT THE POSITION OF BITS IN THE MICROWORD
; 303 ; SHOWN IN THE LISTING BEARS NO RELATION TO THE ORDERING OF BITS IN THE
; 304 ; HARDWARE MICROWORD, WHERE FIELDS ARE OFTEN BROKEN UP AND SCATTERED.
; 305 ; THE FOURTH PARAMETER (M) IS OPTIONAL, AND SELECTS A DEFAULT
; 306 ; MECHANISM FOR THE FIELD. THE LEGAL VALUES OF THIS PARAMETER ARE THE
; 307 ; CHARACTERS "D", "T", "P", OR "+".
; 308 ; "D" MEANS J IS THE DEFAULT VALUE OF THE FIELD IF NO EXPLICIT
; 309 ; VALUE IS SPECIFIED.
; 310 ; "T" IS USED ON THE TIME FIELD TO SPECIFY THAT THE VALUE OF THE
; 311 ; FIELD DEPENDS ON THE TIME PARAMETERS SELECTED FOR OTHER FIELDS.
; 312 ; THE VALUE OF A FIELD WITH THIS SPECIFICATION DEFAULTS TO THE
; 313 ; MAX OF <SUM OF THE T1 PARAMETERS DEFINED FOR FIELD/VALUES
; 314 ; SPECIFIED IN THIS MICROINSTRUCTION>, <SUM OF THE T2 PARAMETERS
; 315 ; FOR THIS MICROINSTRUCTION>, <J PARAMETER OF THIS FIELD>.
; 316 ; WITHIN THE KL10 MICROCODE, T1 PARAMETERS ARE USED TO SPECIFY
; 317 ; FUNCTIONS WHICH DEPEND ON THE ADDER SETUP TIME, AND T2 PARAMETERS
; 318 ; ARE USED FOR FUNCTIONS WHICH REQUIRE ADDITIONAL TIME FOR CORRECT
; 319 ; SELECTION OF THE NEXT MICROINSTRUCTION ADDRESS.
; 320 ; "P" IS USED ON THE PARITY FIELD TO SPECIFY THAT THE VALUE OF THE
; 321 ; FIELD SHOULD DEFAULT SUCH THAT PARITY OF THE ENTIRE WORD
; 322 ; IS ODD. IF THIS OPTION IS SELECTED ON A FIELD WHOSE SIZE (K) IS
; 323 ; ZERO, THE MICRO ASSEMBLER WILL ATTEMPT TO FIND A BIT SOMEWHERE
; 324 ; IN THE WORD FOR WHICH NO VALUE IS SPECIFIED OR DEFAULTED.
; 325 ; "+" IS USED ON THE JUMP ADDRESS FIELD TO SPECIFY THAT THE DEFAULT
; 326 ; JUMP ADDRESS IS THE ADDRESS OF THE NEXT INSTRUCTION ASSEMBLED (NOT,
; 327 ; IN GENERAL, THE CURRENT LOCATION +1).
; 328 ; IN GENERAL, A FIELD CORRESPONDS TO THE SET OF BITS WHICH PROVIDE
; 329 ; SELECT INPUTS FOR MIXERS OR DECODERS, OR CONTROLS FOR ALU'S.
; 330 ; EXAMPLES:
; 331 ; AR/=0,3,26,D
; 332 ; THE MICROCODE FIELD WHICH CONTROLS THE AR MIXER (AND THEREFORE
; 333 ; THE DATA TO BE LOADED INTO AR ON EACH EBOX CLOCK) IS THREE BITS WIDE
; 334 ; AND THE RIGHTMOST BIT IS SHOWN IN THE LISTING AS BIT 26 OF THE
; 335 ; MICROINSTRUCTION. IF NO VALUE IS SPECIFICALLY REQUESTED FOR THE FIELD,
; 336 ; THE MICROASSEMBLER WILL ENSURE THAT THE FIELD IS 0.
; 337 ; AD/=0,6,17
; 338 ; THE FIELD WHICH CONTROLS THE AD IS 6 BITS WIDE, ENDING ON
; 339 ; BIT 17. THE FOURTH PARAMETER OF THE FIELD IS OMITTED, SO THE FIELD
; 340 ; IS AVAILABLE TO THE MICROASSEMBLER (IF NO VALUE IS EXPLICITLY
; 341 ; CALLED OUT FOR THE FIELD) FOR MODIFICATION TO ENSURE ODD PARITY IN THE
; 342 ; ENTIRE WORD.
; 343 ;(2) VALUE DEFINITIONS
; 344 ; FOLLOWING A FIELD DEFINITION, SYMBOLS MAY BE CREATED IN THAT
; 345 ; FIELD TO CORRESPOND TO VALUES OF THE FIELD. THE FORM IS:
; 346 ; SYMBOL=N,T1,T2
; 347 ; "N" IS, IN OCTAL, THE VALUE OF SYMBOL WHEN USED IN THE FIELD.
; 348 ; T1 AND T2 ARE OPTIONAL, AND SPECIFY PARAMETERS IN THE TIME FIELD
; 349 ; CALCULATION FOR MICROINSTRUCTIONS IN WHICH THIS FIELD/SYMBOL IS USED.
; 350 ; THE MICROASSEMBLER COMPUTES THE SUMS OF ALL THE T1'S AND ALL THE T2'S
; 351 ; SPECIFIED FOR FIELD/SYMBOL SPECIFICATIONS IN A WORD, AND USES THE MAX
; 352 ; OF THE TWO SUMS AS THE DEFAULT VALUE FOR THE FIELD WHOSE DEFAULT
; 353 ; MECHANISM IS "T". EXAMPLES:
; 354 ; AD/=0,6,17 ;FIELD DEFINITION IN WHICH FOLLOWING SYMBOLS EXIST
; 355 ; XOR=31
; 356 ; A+B=6,1
; 357 ; HERE THE SYMBOLS "XOR" AND "A+B" ARE DEFINED FOR THE "AD" FIELD.
; 358 ; TO THE ASSEMBLER, THEREFORE, WRITING "AD/XOR" MEANS PUT THE VALUE 31
; 359 ; INTO THE 6-BIT FIELD ENDING ON BIT 17 OF THE MICROWORD. THE SYMBOLS
; 360 ; ARE CHOSEN FOR MNEMONIC SIGNIFICANCE, OF COURSE, SO ONE READING
; 361 ; THE MICROCODE WOULD INTERPRET "AD/XOR" AS "THE OUTPUT OF AD SHALL BE THE
; 362 ; EXCLUSIVE OR OF ITS A AND B INPUTS". SIMILIARLY, "AD/A+B" IS READ AS
; 363 ; "AD PRODUCES THE SUM OF A AND B". THE SECOND PARAMETER IN THE DEFINITION
; 364 ; OF "A+B" IS A CONTROL TO THE MICRO ASSEMBLER'S TIME-FIELD CALCULATION,
; 365 ; WHICH TELLS THE ASSEMBLER THAT THIS OPERATION TAKES LONGER THAN THE
; 366 ; BASIC CYCLE, AND THEREFORE THAT THE TIME FIELD SHOULD BE INCREASED.
; 367 ; AR/=0,3,26,D ;FIELD DEFINITION FOR FOLLOWING SYMBOLS
; 368 ; AR=0
; 369 ; AD=2
; 370 ; HERE THE SYMBOLS "AR" AND "AD" ARE DEFINED FOR THE FIELD NAMED
; 371 ; "AR", WHICH CONTROLS THE AR MIXER. WE COULD WRITE AR/AR TO MEAN THAT
; 372 ; THE AR MIXER SELECT INPUTS WOULD BE 0, WHICH IN THE
; 373 ; HARDWARE SELECTS THE AR OUTPUT FOR RECIRCULATION TO THE REGISTER. IN
; 374 ; PRACTICE, HOWEVER, WE WANT THIS TO BE THE DEFAULT CASE, SO THAT AR
; 375 ; DOES NOT CHANGE UNLESS WE SPECIFICALLY REQUEST IT, SO THE FIELD
; 376 ; DEFINITION SPECIFIES 0 AS THE DEFAULT VALUE OF THE FIELD. IF WE
; 377 ; WANT AR LOADED FROM THE AD OUTPUT, WE WRITE "AR/AD" TO SET THE
; 378 ; MIXER SELECTS TO PASS THE AD OUTPUT INTO THE AR.
; 379 ;
; 380 ;(3) LABEL DEFINITIONS
; 381 ; A MICRO INSTRUCTION MAY BE LABELLED BY A SYMBOL FOLLOWED BY COLON
; 382 ; PRECEDING THE MICROINSTRUCTION DEFINITION. THE ADDRESS OF THE
; 383 ; MICROINSTRUCTION BECOMES THE VALUE OF THE SYMBOL IN THE FIELD NAMED "J".
; 384 ; EXAMPLE:
; 385 ; FOO: J/FOO
; 386 ; THIS IS A MICROINSTRUCTION WHOSE "J" FIELD (JUMP ADDRESS) CONTAINS
; 387 ; THE VALUE "FOO". IT ALSO DEFINES THE SYMBOL "FOO" TO BE THE ADDRESS
; 388 ; OF ITSELF. THEREFORE, IF EXECUTED BY THE MICROPROCESSOR, IT WOULD
; 389 ; LOOP ON ITSELF.
; 390 ;
; 391 ;(4) COMMENTS
; 392 ; A SEMICOLON ANYWHERE ON A LINE CAUSES THE REST OF THE LINE
; 393 ; TO BE IGNORED BY THE ASSEMBLER. THIS TEXT IS AN EXAMPLE OF COMMENTS.
; 394 ;(5) MICROINSTRUCTION DEFINITION
; 395 ; A WORD OF MICROCODE IS DEFINED BY SPECIFYING A FIELD NAME,
; 396 ; FOLLOWED BY SLASH (/), FOLLOWED BY A VALUE. THE VALUE MAY BE A
; 397 ; SYMBOL DEFINED FOR THAT FIELD, AN OCTAL DIGIT STRING, OR A DECIMAL
; 398 ; DIGIT STRING (DISTINGUISHED BY THE FACT THAT IT CONTAINS "8" AND/OR
; 399 ; "9" AND/OR IS TERMINATED BY A PERIOD). SEVERAL FIELDS MAY BE SPECIFIED
; 400 ; IN ONE MICROINSTRUCTION BY SEPARATING FIELD/VALUE SPECIFICATIONS WITH
; 401 ; COMMAS. EXAMPLE:
; 402 ; ADB/BR,ADA/AR,AD/A+B,AR/AD
; 403 ; THE FIELD NAMED "ADB" IS GIVEN THE VALUE NAMED "BR" (TO
; 404 ; CAUSE THE MIXER ON THE B SIDE OF AD TO SELECT BR), FIELD "ADA" HAS VALUE
; 405 ; "AR", FIELD "AD" HAS VALUE "A+B", AND FIELD "AR" HAS VALUE "AD".
; 406 ;
; 407 ;(6) CONTINUATION
; 408 ; THE DEFINITION OF A MICROINSTRUCTION MAY CONTINUED ONTO TWO OR
; 409 ; MORE LINES BY BREAKING IT AFTER ANY COMMA. IN OTHER WORDS, IF THE
; 410 ; LAST NON-BLANK, NON-COMMENT CHARACTER ON A LINE IS A COMMA, THE
; 411 ; INSTRUCTION SPECIFICATION IS CONTINUED ON THE FOLLOWING LINE.
; 412 ; EXAMPLE:
; 413 ; ADB/BR,ADA/AR, ;SELECT AR & BR AS AD INPUTS
; 414 ; AD/A+B,AR/AD ;TAKE THE SUM INTO AR
; 415 ; BY CONVENTION, CONTINUATION LINES ARE INDENTED AN EXTRA TAB.
; 416 ;
; 417 ;(7) MACROS
; 418 ; A MACRO IS A SYMBOL WHOSE VALUE IS ONE OR MORE FIELD/VALUE
; 419 ; SPECIFICATIONS AND/OR MACROS. A MACRO DEFINITION IS A LINE CONTAINING
; 420 ; THE MACRO NAME FOLLOWED BY A QUOTED STRING WHICH IS THE VALUE OF THE
; 421 ; MACRO. EXAMPLE:
; 422 ; AR←AR+BR "ADB/BR,ADA/AR,AD/A+B,AR/AD"
; 423 ; THE APPEARANCE OF A MACRO IN A MICROINSTRUCTION DEFINITION IS EQUIVALENT
; 424 ; TO THE APPEARANCE OF ITS VALUE. MACROS FOR VARIOUS FUNCTIONS
; 425 ; ARE DEFINED IN "MACRO.MIC".
; 426 ;
; 427 ;(8) PSEUDO OPS
; 428 ; THE MICRO ASSEMBLER HAS 10 PSEUDO-OPERATORS:
; 429 ;.DCODE AND .UCODE SELECT THE RAM INTO WHICH SUBSEQUENT MICROCODE WILL
; 430 ;BE LOADED, AND THEREFORE THE FIELD DEFINITIONS AND MACROS WHICH ARE
; 431 ;MEANINGFUL IN SUBSEQUENT MICROCODE
; 432 ;.TITLE DEFINES A STRING OF TEXT TO APPEAR IN THE PAGE HEADER, AND
; 433 ;.TOC DEFINES AN ENTRY FOR THE TABLE OF CONTENTS AT THE BEGINNING.
; 434 ;.SET DEFINES THE VALUE OF A CONDITIONAL ASSEMBLY PARAMETER,
; 435 ;.CHANGE REDEFINES A CONDITIONAL ASSEMBLY PARAMETER,
; 436 ;.DEFAULT ASSIGNS A VALUE TO AN UNDEFINED PARAMETER.
; 437 ;.IF ENABLES ASSEMBLY IF THE VALUE OF THE PARAMETER IS NOT ZERO,
; 438 ;.IFNOT ENABLES ASSEMBLY IF THE PARAMETER VALUE IS ZERO, AND
; 439 ;.ENDIF RE-ENABLES ASSEMBLY IF SUPPRESSED BY THE PARAMETER NAMED.
; 440 ;(9) LOCATION CONTROL
; 441 ; A MICROINSTRUCTION "LABELLED" WITH A NUMBER IS ASSIGNED TO THAT
; 442 ; ADDRESS.
; 443 ; THE CHARACTER "=" AT THE BEGINNING OF A LINE, FOLLOWED BY
; 444 ; A STRING OF 0'S, 1'S, AND/OR *'S, SPECIFIES A CONSTRAINT ON THE
; 445 ; ADDRESS OF FOLLOWING MICROINSTRUCTIONS. THE NUMBER OF CHARACTERS
; 446 ; IN THE CONSTRAINT STRING (EXCLUDING THE "=") IS THE NUMBER OF LOW-ORDER
; 447 ; BITS CONSTRAINED IN THE ADDRESS. THE MICROASSEMBLER ATTEMPTS TO FIND
; 448 ; AN UNUSED LOCATION WHOSE ADDRESS HAS 0 BITS IN THE POSITIONS
; 449 ; CORRESPONDING TO 0'S IN THE CONSTRAINT STRING AND 1 BITS WHERE THE
; 450 ; CONSTRAINT HAS 1'S. ASTERISKS DENOTE "DON'T CARE" BIT POSITIONS.
; 451 ; IF THERE ARE ANY 0'S IN THE CONSTRAINT STRING, THE CONSTRAINT
; 452 ; IMPLIES A BLOCK OF <2**N> MICROWORDS, WHERE N IS THE NUMBER OF 0'S
; 453 ; IN THE STRING. ALL LOCATIONS IN THE BLOCK WILL HAVE 1'S IN THE ADDRESS
; 454 ; BITS CORRESPONDING TO 1'S IN THE STRING, AND BIT POSITIONS DENOTED BY *'S
; 455 ; WILL BE THE SAME IN ALL LOCATIONS OF THE BLOCK.
; 456 ; IN SUCH A CONSTRAINT BLOCK, THE DEFAULT ADDRESS PROGRESSION IS
; 457 ; COUNTING IN THE "0" POSITIONS OF THE CONSTRAINT STRING, BUT A NEW
; 458 ; CONSTRAINT STRING OCCURING WITHIN A BLOCK MAY FORCE SKIPPING OVER
; 459 ; SOME LOCATIONS OF THE BLOCK. WITHIN A BLOCK, A NEW CONSTRAINT
; 460 ; STRING DOES NOT CHANGE THE PATTERN OF DEFAULT ADDRESS PROGRESSION, IT
; 461 ; MERELY ADVANCES THE LOCATION COUNTER OVER THOSE LOCATIONS. THE
; 462 ; MICROASSEMBLER WILL LATER FILL THEM IN.
; 463 ; A NULL CONSTRAINT STRING ("=" FOLLOWED BY ANYTHING BUT "0",
; 464 ; "1", OR "*") SERVES TO TERMINATE A CONSTRAINT BLOCK.
; 465 ; EXAMPLES:
; 466 ; =0
; 467 ; THIS SPECIFIES THAT THE LOW-ORDER ADDRESS BIT MUST BE ZERO--
; 468 ; THE MICROASSEMBLER FINDS AN EVEN-ODD PAIR OF LOCATIONS, AND PUTS
; 469 ; THE NEXT TWO MICROINSTRUCTIONS INTO THEM.
; 470 ; =11
; 471 ; THIS SPECIFIES THAT THE TWO LOW-ORDER BITS OF THE ADDRESS MUST
; 472 ; BOTH BE ONES. SINCE THERE ARE NO 0'S IN THIS CONSTRAINT, THE
; 473 ; ASSEMBLER FINDS ONLY ONE LOCATION MEETING THE CONSTRAINT.
; 474 ; =0*****
; 475 ; THIS SPECIFIES AN ADDRESS IN WHICH THE "40" BIT IS ZERO. DUE
; 476 ; TO THE IMPLEMENTATION OF THIS FEATURE IN THE ASSEMBLER, THE DEFAULT
; 477 ; ADDRESS PROGRESSION APPLIES ONLY TO THE LOW-ORDER 5 BITS, SO THIS
; 478 ; CONSTRAINT FINDS ONE WORD IN WHICH THE "40" BIT IS ZERO, AND DOES
; 479 ; NOT ATTEMPT TO FIND ONE IN WHICH THAT BIT IS A ONE.
; 480
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 10
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 MICROCODE LISTING TEMPLATE
; 481 .TOC "MICROCODE LISTING TEMPLATE"
; 482 ;HERE IS A TEMPLATE WHICH CAN BE USED WITH THE MICROCODE
; 483 ; LISTING TO IDENTIFY FIELDS IN THE OUTPUT --
; 484
; 485
; 486 ; ---- ---- ---- ---- ---- ---- ---- ----
; 487 ; [--] [--] []!! !!!! !!!! !![] [][] ![-]
; 488 ; ! ! !!! !!!! !!!! !! ! ! ! ! + # = MAGIC NUMBERS
; 489 ; ! ! !!! !!!! !!!! !! ! ! ! + MARK = SCOPE SYNC
; 490 ; ! ! !!! !!!! !!!! !! ! ! !
; 491 ; ! ! !!! !!!! !!!! !! ! ! + DISP/SPEC = SPECIAL FUNCTIONS
; 492 ; ! ! !!! !!!! !!!! !! ! + SKIP/COND = SPECIAL FUNCTIONS
; 493 ; ! ! !!! !!!! !!!! !! !
; 494 ; ! ! !!! !!!! !!!! !! + TIME, MEM = UINST TIME & MEM FUNCTION
; 495 ; ! ! !!! !!!! !!!! !+ VMA = VMA INPUT SELECT
; 496 ; ! ! !!! !!!! !!!! + SH/ARMM = SH FUNCTION / ARMM SELECT
; 497 ; ! ! !!! !!!! !!!!
; 498 ; ! ! !!! !!!! !!!+ SC, FE = SC INPUT SELECT & FE LOAD
; 499 ; ! ! !!! !!!! !!+ SCADB = SELECT FOR SCAD "B" INPUT
; 500 ; ! ! !!! !!!! !+ SCADA = ENABLE AND SELECT FOR SCAD "A" INPUT
; 501 ; ! ! !!! !!!! + SCAD = SC/FE ADDER FUNCTION
; 502 ; ! ! !!! !!!!
; 503 ; ! ! !!! !!!+ FM ADR = FAST MEMORY ADDRESS SELECT
; 504 ; ! ! !!! !!+ BR, BRX, MQ = LOAD BR & BRX, SEL FOR MQ
; 505 ; ! ! !!! !+ ARX = SELECT FOR ARX INPUT
; 506 ; ! ! !!! + AR = SELECT FOR AR INPUT
; 507 ; ! ! !!!
; 508 ; ! ! !!+ ADB = SELECT FOR ADDER "B" INPUT
; 509 ; ! ! !+ ADA = SELECT AND ENABLE FOR ADDER "A" INPUT
; 510 ; ! ! + AD = OPERATION IN ADDER AND ADDER EXTENSION
; 511 ; ! !
; 512 ; ! + J = BASE ADDRESS TO WHICH THIS MICROINSTRUCTION JUMPS
; 513 ; !
; 514 ; + LOCATION IN CRAM INTO WHICH THIS WORD IS LOADED
; 515 ;
; 516 ; U/V = MICRO INSTRUCTION FOR CRAM
; 517
; 518 ;*******************************************************************
; 519
; 520 ; D = WORD FOR DRAM
; 521 ;
; 522 ; + LOCATION IN DRAM INTO WHICH THIS WORD IS LOADED
; 523 ; !
; 524 ; ! + A = OPERAND ACCESS CONTROL
; 525 ; ! !+ B = INSTRUCTION "MODE"
; 526 ; ! !! + P = PARITY FOR THIS WORD
; 527 ; ! !! !
; 528 ; ! !! ! + J = ADDRESS OF HANDLER FOR THIS INSTRUCTION
; 529 ; [--] !! ! [--]
; 530 ; ---- ---- ----
; 531 .TOC "CONTROL RAM DEFINITIONS -- AD"
; 532
; 533 ;FIELDS ARRANGED FOR READABILITY, NOT COMPACTNESS
; 534 ; IN THE PROCESSOR, BITS ARE SCATTERED IN ANOTHER ORDER
; 535
; 536 U0/=0,1,0,D ;BIT 0 UNUSED
; 537 J/=0,11,11,+ ;SYMBOLS WILL BE DEFINED BY TAGS (CRA1&CRA2)
; 538
; 539 ;MAIN ADDER CONTROLS
; 540
; 541 AD/=0,6,17 ; (EDP3, EXCEPT CARRY IN, ON CTL1)
; 542 ;BIT 0 = CARRY IN, BIT 1 = BOOLE
; 543 ;BITS 2-5 = S8-S1 OF 10181 ALU
; 544 ;ARITHMETIC, AD AND ADX SEPARATED
; 545 ;72 BIT ARITHMETIC REQUIRES SPEC/AD LONG
; 546 A+1=40,1
; 547 A+XCRY=00,1
; 548 ; A+ANDCB=01,1
; 549 ; A+AND=02,1
; 550 A*2=03,1
; 551 ; OR+1=44,1
; 552 ; OR+ANDCB=05,1
; 553 A+B=06,1
; 554 A+B+1=46,1
; 555 ; A+OR=07,1
; 556 ORCB+1=50,1
; 557 A-B-1=11,1
; 558 A-B=51,1
; 559 ; AND+ORCB=52,1
; 560 ; A+ORCB=53,1
; 561 XCRY-1=54,1
; 562 ; ANDCB-1=15,1
; 563 ; AND-1=16,1
; 564 A-1=17,1
; 565 ;ADDER LOGICAL FUNCTIONS
; 566 SETCA=20
; 567 ORC=21 ;NAND
; 568 ORCA=22
; 569 1S=23
; 570 ANDC=24 ;NOR
; 571 SETCB=25
; 572 EQV=26
; 573 ORCB=27
; 574 ANDCA=30
; 575 XOR=31
; 576 B=32
; 577 OR=33
; 578 0S=34
; 579 ANDCB=35
; 580 AND=36
; 581 A=37
; 582 ;BOOLEAN FUNCTIONS FOR WHICH CRY0 IS INTERESTING
; 583 CRY A EQ -1=60,1 ;GENERATE CRY0 IF A=1S, AD=SETCA
; 584 CRY A.B#0=36,1 ;CRY 0 IF A&B NON-ZERO, AD=AND
; 585 CRY A#0=37,1 ;GENERATE CRY0 IF A .NE. 0, AD=A
; 586 CRY A GE B=71,1 ;CRY0 IF A .GE. B, UNSIGNED; AD=XOR
; 587
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 11
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- DATA PATH MIXERS
; 588 .TOC "CONTROL RAM DEFINITIONS -- DATA PATH MIXERS"
; 589
; 590 ADA/=0,3,20 ; (EDP3)
; 591 AR=0
; 592 ARX=1
; 593 MQ=2
; 594 PC=3
; 595 ADA EN/=0,1,18 ;ADA ENABLE ALSO ENABLES ADXA (EDP3)
; 596 EN=0
; 597 0S=1
; 598 U21/=0,1,21,D ;BIT 21 UNUSED
; 599 ADB/=0,2,23 ;CONTROLS ADB AND ADXB (EDP3)
; 600 FM=0,,1 ;MUST HAVE TIME FOR PARITY CHECK
; 601 BR*2=1
; 602 BR=2
; 603 AR*4=3
; 604 U23/=1,1,23,D ;PREVENT DEFAULT SELECTION OF FM
; 605 AR/=0,3,26,D ; (EDP1)
; 606 AR=0
; 607 ARMM=0 ;REQUIRES SPECIAL FUNCTION
; 608 CACHE=1 ;ORDINARILY SELECTED BY HWARE
; 609 AD=2
; 610 EBUS=3
; 611 SH=4
; 612 AD*2=5
; 613 ADX=6
; 614 AD*.25=7
; 615 ARX/=0,3,29,D ; (EDP2)
; 616 ; ARX=0 ;BY DEFAULT
; 617 CACHE=1 ;ORDINARILY BY MBOX RESP
; 618 AD=2
; 619 MQ=3
; 620 SH=4
; 621 ADX*2=5
; 622 ADX=6
; 623 ADX*.25=7
; 624 BR/=0,1,30,D ;DEFAULT TO RECIRCULATE (EDP4)
; 625 AR=1
; 626 BRX/=0,1,31,D ;DEFAULT TO RECIRCULATE (EDP4)
; 627 ARX=1
; 628 MQ/=0,1,32,D ;DEFAULT TO RECIRCULATE (EDP2)
; 629 SH=1 ;LOAD FROM SHIFT MATRIX
; 630 MQ*2=0 ;WITH SPEC/MQ SHIFT
; 631 MQ*.25=1 ;WITH SPEC/MQ SHIFT
; 632 MQ SEL=0 ;WITH COND/REG CTL
; 633 MQM SEL=1 ;WITH COND/REG CTL
; 634 FMADR/=0,3,35 ; (APR4&APR5)
; 635 AC0=0 ;IR 9-12
; 636 AC1=1 ;<IR 9-12>+1 MOD 16
; 637 XR=2 ;ARX 14-17
; 638 VMA=3 ;VMA 32-35
; 639 AC2=4 ;<IR 9-12>+2 MOD 16
; 640 AC3=5 ;<IR 9-12>+3 MOD 16
; 641 AC4=6 ;CURRENT BLOCK, AC+4
; 642 #B#=7 ;BLOCK AND AC SELECTED BY # FIELD
; 643
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 12
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- 10-BIT LOGIC
; 644 .TOC "CONTROL RAM DEFINITIONS -- 10-BIT LOGIC"
; 645
; 646 SCAD/=0,3,38 ; (SCD1)
; 647 A=0
; 648 A-B-1=1
; 649 A+B=2
; 650 A-1=3
; 651 A+1=4
; 652 A-B=5
; 653 OR=6
; 654 AND=7
; 655 SCADA/=0,3,41 ; (SCD1)
; 656 FE=0
; 657 AR0-5=1 ;BYTE POINTER P FIELD
; 658 AR EXP=2 ;<AR 01-08> XOR <AR 00>
; 659 #=3 ;SIGN EXTENDED WITH #00
; 660 SCADA EN/=0,1,39 ; (SCD1)
; 661 0S=1
; 662 U42/=0,1,42,D ;BIT 42 UNUSED
; 663 SCADB/=0,2,44 ; (SCD1)
; 664 SC=0
; 665 AR6-11=1 ;BYTE POINTER S FIELD
; 666 AR0-8=2
; 667 #=3 ;NO SIGN EXTENSION
; 668 U45/=0,1,45,D ;BIT 45 UNUSED
; 669 SC/=0,1,46,D ;RECIRCULATE BY DEFAULT (SCD2)
; 670 FE=0 ;WITH SCM ALT
; 671 SCAD=1
; 672 AR SHIFT=1 ;WITH SCM ALT ;AR 18, 28-35
; 673 FE/=0,1,47,D ;RECIRCULATE BY DEFAULT (SCD2)
; 674 SCAD=1
; 675 U48/=0,1,48,D ;BIT 48 UNUSED
; 676 ;OTHER COMPLEX FUNCTIONS
; 677 SH/=0,2,50 ; (SH1)
; 678 SHIFT AR!ARX=0 ;LEFT BY (SC)
; 679 AR=1
; 680 ARX=2
; 681 AR SWAP=3 ;HALVES SWAPPED
; 682 ARMM/=0,2,50 ;SAME BITS AS SH CONTROL (SCD3)
; 683 #=0 ;MAGIC # 0-8 TO AR 0-8
; 684 EXP←SIGN=1 ;AR1-8 ← AR0
; 685 SCAD EXP=2 ;AR0-8←SCAD
; 686 SCAD POS=3 ;AR0-5←SCAD
; 687 U51/=0,1,51,D ;BIT 51 UNUSED
; 688 VMA/=0,2,53,D ;ALSO CONTROLLED BY SPECIAL FUNCTIONS
; 689 VMA=0 ;BY DEFAULT
; 690 PC=1 ;MAY BE OVERRIDDEN BY MCL LOGIC
; 691 PC+1=2 ; TO LOAD VMA FROM AD
; 692 AD=3
; 693 TIME/=0,2,55,T ;CONTROLS MINIMUM MICROINSTRUCTION EXECUTION
; 694 ; TIME, COUNTING MBOX CLOCK TICKS (CLK)
; 695 ;ASSEMBLER GENERALLY TAKES CARE OF THIS
; 696 2T=0 ;2 TICKS
; 697 3T=1 ;3 TICKS
; 698 4T=2 ;4 TICKS
; 699 5T=3 ;5 TICKS (COND/DIAG FUNC & #00, --> .5 USEC)
; 700
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 13
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS
; 701 .TOC "CONTROL RAM DEFINITIONS -- MEM SPECIAL FUNCTIONS"
; 702
; 703 MEM/=0,4,59,D ; (MCL1)
; 704 ; NOP=0 ;DEFAULT
; 705 ARL IND=1 ;CONTROL AR LEFT MUX FROM # FIELD
; 706 MB WAIT=2 ;WAIT FOR MBOX RESP IF PENDING
; 707 SEC 0=3 ;CLEAR VMAX
; 708 A RD=4 ;OPERAND READ
; 709 B WRITE=5 ;CONDITIONAL WRITE ON DRAM B 01
; 710 FETCH=6 ;LOAD NEXT INSTR TO ARX (CONTROL BY #)
; 711 REG FUNC=7 ;MBOX REGISTER FUNCTIONS
; 712 A IND=10 ;A-TYPE INDIRECT
; 713 BYTE IND=11 ;BYTE-TYPE INDIRECT
; 714 LOAD AR=12
; 715 LOAD ARX=13
; 716 AD FUNC=14 ;FUNCTION FROM AD LEFT
; 717 BYTE RD=15 ;BYTE READ TO BOTH AR AND ARX
; 718 WRITE=16 ;FROM AR TO MEMORY
; 719 RPW=17 ;LOAD AR WITH RPW CYCLE
; 720
; 721 SKIP/=0,6,65,D ;MICRO-PROGRAM SKIPS
; 722 ; 40-57 DECODED ON (CRA2)
; 723 ; SPARE=40
; 724 EVEN PAR=41,,1 ;AR PARITY IS EVEN
; 725 BR0=42 ;BR BIT 00
; 726 ARX0=43 ;ARX BIT 00
; 727 AR18=44 ;AR BIT 18
; 728 AR0=45 ;AR BIT 00
; 729 AC#0=46 ;IR9-12 .EQ. 0
; 730 SC0=47 ;SC BIT 00
; 731 SC .LT. 36=50
; 732 SCAD0=51,,1 ;SIGN OF SCAD OUTPUT
; 733 SCAD#0=52,,1 ;SCAD OUTPUT IS NON-ZERO
; 734 ADX0=53,1 ;ADDER EXTENSION BIT 00
; 735 AD CRY0=54,1 ;CARRY OUT OF AD BIT -2 (BOOLE IGNORED)
; 736 AD0=55,1 ;ADDER BIT 00
; 737 AD#0=56,1 ;AD BITS 00-35 CONTAIN SOME ONES
; 738 ; SPARE=57
; 739 ; 60-77 DECODED ON (CON2)
; 740 FETCH=60 ;VMA FETCH (LAST CYCLE WAS A FETCH)
; 741 KERNEL=61 ;PC IS IN KERNEL MODE
; 742 USER=62 ;PC IS IN USER MODE
; 743 PUBLIC=63 ;PC IS PUBLIC (INCLUDING SUPER)
; 744 RPW REF=64 ;MIDDLE OF READ-PAUSE-WRITE CYCLE
; 745 PI CYCLE=65 ;PI CYCLE IN PROGRESS
; 746 -EBUS GRANT=66 ;PI HASN'T RELEASED BUS FOR CPU USE
; 747 -EBUS XFER=67 ;NO TRANSFER RECIEVED FROM DEVICE
; 748 INTRPT=70 ;AN INTERRUPT REQUEST WAITING FOR SERVICE
; 749 -START=71 ;NO CONTINUE BUTTON
; 750 RUN=72 ;PROCESSOR NOT HALTED
; 751 IO LEGAL=73 ;KERNEL, PI CYCLE, USER IOT, OR DEVICE .GE. 740
; 752 P!S XCT=74 ;PXCT OR SXCT
; 753 ; EBOX PF=75 ;EBOX SHOULD HANDLE THIS PAGE FAIL
; 754 AC REF=76,,1 ;VMA .LT. 20 ON READ OR WRITE
; 755 -MTR REQ=77 ;INTERRUPT REQUEST NOT DUE TO METER
; 756
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 14
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- COND SPECIAL FUNCTIONS
; 757 .TOC "CONTROL RAM DEFINITIONS -- COND SPECIAL FUNCTIONS"
; 758 ;SKIP/COND FIELD CONTINUED
; 759
; 760 COND/=0,6,65,D ;NON-SKIP SPECIAL FUNCTIONS
; 761 ;0-7 DECODED ON (CTL2)
; 762 ; NOP=0 ;BY DEFAULT
; 763 LD AR0-8=1
; 764 LD AR9-17=2
; 765 LD AR18-35=3
; 766 AR CLR=4
; 767 ARX CLR=5
; 768 ARL IND=6 ;CONTROL AR LEFT, CALL, AND CLEAR BITS FROM #
; 769 REG CTL=7 ;CONTROL AR LOAD, EXP TST, AND MQ FROM #
; 770 ; 10-37 DECODED ON (CON1)
; 771 FM WRITE=10 ;WRITE AR INTO CURRENTLY ADDRESSED FM LOC
; 772 PCF←#=11 ;SET PC FLAGS FROM # FIELD
; 773 FE SHRT=12 ;SHIFT FE RIGHT 1
; 774 AD FLAGS=13 ;SET PC CRY0, CRY1, OVRFLO, TRAP1 AS APPROPRIATE
; 775 LOAD IR=14 ;LATCH AD OR CACHE DATA INTO IR
; 776 SPEC INSTR=15 ;SET/CLR SXCT, PXCT, PICYC, TRAP INSTR FLAGS
; 777 SR←#=16 ;CONTROL FOR STATE REGISTER
; 778 SEL VMA=17 ;READ VMA THROUGH ADA/PC
; 779 DIAG FUNC=20 ;SELECT DIAGNOSTIC INFO ONTO EBUS
; 780 EBOX STATE=21 ;SET STATE FLOPS
; 781 EBUS CTL=22 ;I/O FUNCTIONS
; 782 MBOX CTL=23
; 783 ; SPARE=24
; 784 ; SPARE=25
; 785 ; SPARE=26
; 786 ; SPARE=27
; 787 VMA←#=30
; 788 VMA←#+TRAP=31
; 789 VMA←#+MODE=32
; 790 VMA←#+AR32-35=33
; 791 VMA←#+PI*2=34
; 792 VMA DEC=35 ;VMA←VMA-1
; 793 VMA INC=36 ;VMA←VMA+1
; 794 LD VMA HELD=37 ;HOLD VMA ON SIDE
; 795 U66/=0,1,66,D ;BIT 66 UNUSED
; 796
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 15
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS
; 797 .TOC "CONTROL RAM DEFINITIONS -- DISP/SPEC SPECIAL FUNCTIONS"
; 798
; 799 DISP/=10,5,71,D ;0-7 AND 30-37 ARE DISPATCHES (CRA1&CRA2)
; 800 DIAG=0
; 801 DRAM J=1
; 802 DRAM A RD=2 ;IMPLIES INH CRY18
; 803 RETURN=3 ;POPJ RETURN
; 804 PG FAIL=4 ;PAGE FAIL TYPE DISP
; 805 SR=5 ;16 WAYS ON STATE REGISTER
; 806 NICOND=6 ;NEXT INSTRUCTION CONDITION
; 807 SH0-3=7,,2 ;16 WAYS ON HIGH-ORDER BITS OF SHIFTER
; 808 MUL=30 ;IMPLIES MQ SHIFT, AD LONG
; 809 DIV=31,,1 ;IMPLIES MQ SHIFT, AD LONG
; 810 SIGNS=32,1 ;AR0*4 + BR0*2 + AD0
; 811 DRAM B=33 ;8 WAYS ON DRAM B FIELD
; 812 BYTE=34,,1 ;FPD*4 + BR12*2 + SCAD0
; 813 NORM=35,2 ;IMPLIES AD LONG
; 814 EA MOD=36 ;@*2 + XR
; 815 EA TYPE=37
; 816
; 817 SPEC/=10,5,71,D ;NON-DISPATCH SPECIAL FUNCTIONS (CTL1)
; 818 ; NOP=10 ;DEFAULT
; 819 INH CRY18=11
; 820 MQ SHIFT=12 ;ENABLE MQ*2, MQ SHRT2
; 821 SCM ALT=13 ;ENABLE FE, ARSHIFT
; 822 CLR FPD=14
; 823 LOAD PC=15
; 824 XCRY AR0=16 ;CARRY INTO AD IS XOR'D WITH AR00
; 825 GEN CRY18=17
; 826 SEC HOLD=20 ;INHIBIT LOADING VMAX
; 827 CALL=21
; 828 ARL IND=22 ;# SPECIFIES ARL MIX, ENABLES, & CALL
; 829 MTR CTL=23 ;# CONTROLS METERS
; 830 FLAG CTL=24 ;FUNCTION ENCODED IN # FIELD
; 831 SAVE FLAGS=25 ;TELLS PI CYCLE TO HOLD INTRPT
; 832 SP MEM CYCLE=26 ;MEM REQUEST IS MODIFIED BY #
; 833 AD LONG=27 ;AD BECOMES 72 BIT ALU
; 834
; 835 U73/=0,2,73,D ;BITS 72-73 UNUSED
; 836
; 837 MARK/=0,1,74,D ;FIELD SERVICE "MARK" BIT
; 838
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 16
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 839 .TOC "CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD"
; 840
; 841 #/=0,9,83,D ;THE INFAMOUS "MAGIC NUMBERS"
; 842 VERS=101 ;MICRO-CODE VERSION NUMBER
; 843
; 844 .IF/ITSPAGE
; 845 PPRO=40 ;PAGE PROTECTION, READ ONLY
; 846 PPRWF=40 ;PAGE PROTECTION, READ/WRITE/FIRST
; 847 PPRW=50 ;PAGE PROTECTION, READ/WRITE
; 848 .ENDIF/ITSPAGE
; 849
; 850 FM#/=0,7,83 ;LOW 7 BITS OF # USED TO ADDRESS FM
; 851
; 852
; 853 ;TABLE OF OPTIONS BITS
; 854 ; 400 KL-MODE PAGING
; 855 ; 020 ITS-MODE PAGING
; 856 ; 004 JPC FEATURE
; 857 ; 002 IF JPC FEATURE, RING OF 16 JPC'S
; 858 ; 001 TRACKS FEATURE
; 859
; 860 Q400/=0,1,75
; 861 .IFNOT/KLPAGE
; 862 Q=0
; 863 .IF/KLPAGE
; 864 Q=1
; 865 .ENDIF/KLPAGE
; 866 Q200/=0,1,76
; 867 Q=0
; 868 Q100/=0,1,77
; 869 Q=0
; 870 Q40/=0,1,78
; 871 Q=0
; 872 Q20/=0,1,79
; 873 .IFNOT/ITSPAGE
; 874 Q=0
; 875 .IF/ITSPAGE
; 876 Q=1
; 877 .ENDIF/ITSPAGE
; 878 Q10/=0,1,80
; 879 Q=0
; 880 Q4/=0,1,81
; 881 .IFNOT/JPC
; 882 Q=0
; 883 .IF/JPC
; 884 Q=1
; 885 .ENDIF/JPC
; 886 Q2/=0,1,82
; 887 .IFNOT/JPC.RING
; 888 Q=0
; 889 .IF/JPC.RING
; 890 Q=1
; 891 .ENDIF/JPC.RING
; 892 Q1/=0,1,83
; 893 .IFNOT/TRACKS
; 894 Q=0
; 895 .IF/TRACKS
; 896 Q=1
; 897 .ENDIF/TRACKS
; 898
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 17
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 899 ;VARIOUS SPECIAL FUNCTIONS ENABLE SPECIAL DECODING OF THE
; 900 ; "MAGIC #" FIELD, AS FOLLOWS:
; 901
; 902 ;SPECIAL DATA PATH CONTROLS
; 903
; 904 CALL/=0,1,75 ;ENABLED BY ARL IND (CTL2)
; 905 CALL=1
; 906 AR0-8/=0,1,76 ;ENABLED BY ARL IND (CTL2)
; 907 LOAD=1
; 908 CLR/=0,4,80 ;ENABLED BY ARL IND (CTL2)
; 909 MQ=10
; 910 ARX=4
; 911 ARL=2
; 912 ARR=1
; 913 AR=3
; 914 AR+ARX=7
; 915 AR+MQ=13
; 916 ARX+MQ=14
; 917 AR+ARX+MQ=17
; 918 ARL+ARX=6
; 919 ARL+ARX+MQ=16
; 920 ARR+MQ=11
; 921 ARL/=0,3,83 ;ENABLED BY ARL IND (CTL2)
; 922 ARL=0
; 923 ARMM=0 ;REQUIRES SPECIAL FUNCTION
; 924 CACHE=1 ;ORDINARILY SELECTED BY HWARE
; 925 AD=2
; 926 EBUS=3
; 927 SH=4
; 928 AD*2=5
; 929 ADX=6
; 930 AD*.25=7
; 931 AR CTL/=0,3,77 ;ENABLED BY COND/REG CTL (CTL2)
; 932 AR0-8 LOAD=4
; 933 AR9-17 LOAD=2
; 934 ARR LOAD=1
; 935 ARL LOAD=6
; 936 EXP TST/=0,1,80 ;ENABLED BY COND/REG CTL (CTL1)
; 937 AR←EXP=1
; 938 MQ CTL/=0,2,83 ;ENABLED BY COND/REG CTL (CTL2)
; 939 ; MQ=0 ;WITH MQ/MQ SEL
; 940 MQ*2=1 ; "
; 941 ; MQ*.5=2 ; " (DROPS BITS 0,6,12,18,24,30)
; 942 0S=3 ; "
; 943 SH=0 ;WITH MQ/MQM SEL
; 944 MQ*.25=1 ; "
; 945 1S=2 ; "
; 946 AD=3 ; "
; 947
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 18
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 948 ;SPECIAL CONTROL OF EBOX FLAGS & FUNCTIONS
; 949
; 950 PC FLAGS/=0,9,83 ;ENABLED BY COND/PCF←# (SCD4)
; 951 AROV=420 ;SET ARITH OVFLO & TRAP1
; 952 FLOV=620 ;SAME, PLUS FLOATING OVFLO
; 953 FPD=100 ;SET FIRST PART DONE
; 954 TRAP2=40 ;SET TRAP2 (PDL OVFLO)
; 955 TRAP1=20 ;SET TRAP1 (ARITH OVFLO)
; 956 TRAP3=60 ;SET TRAP1 & TRAP2 (ONE PROCEED)
; 957 FXU=630 ;FLOV + EXP UNDERFLOW
; 958 DIV CHK=424 ;NO DIVIDE + AROV
; 959 FDV CHK=624 ;FLOATING NO DIVIDE
; 960 FLAG CTL/=0,9,83 ;ENABLED BY SPEC/FLAG CTL (SCD5)
; 961 RSTR FLAGS=420 ;AS IN JRSTF
; 962 JFCL=602 ;FORCE PC 00 = AROV
; 963 JFCL+LD=622 ;SECOND PART OF JFCL -- CLEAR TESTED FLAGS
; 964 DISMISS=502 ;CLEAR PI CYCLE IF SET (CON5)
; 965 ; ELSE DISMISS HIGHEST PI HOLD
; 966 HALT=442 ;STOP PROCESSOR IF LEGAL (CON2)
; 967 SET FLAGS=20 ;AS IN MUUO
; 968 PORTAL=412 ;CLEAR PUBLIC IF PRIVATE INSTR
; 969 SPEC INSTR/=0,9,83 ;ENABLED BY COND/SPEC INSTR
; 970 SET PI CYCLE=704; (CON5)
; 971 KERNEL CYCLE=200;MAKE IO LEGAL, EXEC ADDR SPACE (CON4)
; 972 INH PC+1=100 ;TO MAKE JSR WORK IN TRAP, INTRPT (CON4)
; 973 SXCT=40 ;START SECTION XCT (MCL4)
; 974 PXCT=20 ;START PREV CONTXT XCT (MCL4)
; 975 INTRPT INH=10 ;INHIBIT INTERRUPTS (CON4)
; 976 INSTR ABORT=4 ; (CON2)
; 977 HALTED=302 ;TELL CONSOLE WE'RE HALTED (CON4)
; 978 CONS XCT=310 ;FLAGS FOR INSTR XCT'D FROM CONSOLE
; 979 CONT=10 ;INHIBIT INTERRUPTS WHILE SINGLE STEPPING
; 980 FETCH/=0,9,83 ;ENABLED BY MEM/FETCH
; 981 UNCOND=400
; 982 ;LOW 2 BITS DECODED ON (IR3)
; 983 COMP=201,2 ;DEPENDING ON AD AND DRAM B
; 984 SKIP=202,2
; 985 TEST=203,1
; 986 JUMP=502,2 ;AS IN JUMPX, ON AD AND DRAM B
; 987 JFCL=503,1 ;JUMP ON TEST CONDITION
; 988
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 19
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 989 ;SPECIAL CONTROLS & FUNCTIONS FOR MBOX
; 990
; 991 SP MEM/=0,9,83 ;ENABLED BY SPEC/SP MEM CYCLE
; 992 FETCH=400 ;LOAD IR WHEN DATA ARRIVES (MCL5)
; 993 USER=200 ;FORCE USER OR UPT (MCL2)
; 994 EXEC=100 ;FORCE EXEC OR EPT (MCL3)
; 995 SEC 0=40 ;CLEAR VMAX (MCL4)
; 996 UPT EN=20 ;UPT IF USER EN (MCL3)
; 997 EPT EN=10 ;EPT IF NOT USER EN (MCL3)
; 998 CACHE INH=2 ; (MCL6)
; 999 UNPAGED=101 ; (MCL6)
; 1000 EPT=111
; 1001 EPT FETCH=511
; 1002 UPT=221
; 1003 UPT FETCH=621
; 1004 PT=31
; 1005 PT FETCH=431
; 1006 MREG FNC/=0,9,83 ;ENABLED BY MEM/REG FUNC (APR6)
; 1007 SBUS DIAG=7 ;PERFORM SBUS DIAGNOSTIC CYCLE
; 1008 READ UBR=502 ;ASK MBOX TO LOAD UBR INTO EBUS REG
; 1009 READ EBR=503 ;PUT EBR INTO EBUS REG
; 1010 READ ERA=504
; 1011 WR REFILL RAM=505 ;DISGUISED AS A "READ REG" FUNCTION
; 1012 LOAD CCA=601 ;START A SWEEP
; 1013 LOAD UBR=602 ;SETUP UBR FROM VMA
; 1014 LOAD EBR=603 ;SETUP EBR FROM VMA
; 1015 MAP=140 ;GET PHYS ADDR CORRESPONDING TO VMA (MCL6)
; 1016 MBOX CTL/=0,9,83 ;ENABLED BY COND/MBOX CTL (APR5)
; 1017 SET PAGE FAIL=200
; 1018 SET IO PF ERR=100
; 1019 PT DIR WR=20,1 ;WRITE PAGE TABLE DIRECTORY
; 1020 PT WR=10,1 ;WRITE PAGE TABLE ENTRY SELECTED BY VMA
; 1021 NORMAL=0 ;RESET PT WR SELECTION
; 1022 PT DIR CLR=1 ;SELECT FOR CLEARING PT DIR (PAG3)
; 1023 CLR PT LINE=21 ;CLEAR VALID FOR 8 ENTRIES
; 1024
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 20
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 CONTROL RAM DEFINITIONS -- MAGIC NUMBER FIELD
; 1025 ;I/O FUNCTIONS
; 1026
; 1027 EBUS CTL/=0,9,83 ;ENABLED BY COND/EBUS CTL (APR3)
; 1028 GRAB EEBUS=400 ;"EBUS RETURN" TAKES ECL EBUS FOR EBOX
; 1029 REQ EBUS=200
; 1030 REL EBUS=100 ; (CON3)
; 1031 EBUS DEMAND=60 ;ASSERT DEMAND, KEEP CS, FUNC
; 1032 EBUS NODEMAND=20;DROP DEMAND, KEEP CS, FUNC
; 1033 ; CTL←IR=10 ;SELECT F01 & F02 FROM IR
; 1034 ; DISABLE CS=4 ;TURN OFF CONTROLLER SELECT
; 1035 ; DATAIO=2 ;0 FOR CONI/O
; 1036 ; INPUT=1 ;0 FOR OUTPUT
; 1037 IO INIT=30 ;ENABLE IR3-9 TO EBUS CONTROLLER SELECT,
; 1038 ; IR10-12 (DECODED) TO FUNCTION
; 1039 ; AND AR ONTO EBUS IF FUNCTION IS OUTPUT
; 1040 DATAO=26 ;0'S TO CS, DATAO TO FCN, AND AR TO EBUS
; 1041 DATAI=27 ;0'S TO CS, DATAI TO FCN
; 1042 REL EEBUS=0 ;LEGGO
; 1043 DIAG FUNC/=0,9,83 ;ENABLED BY COND/DIAG FUNC (CTL3)
; 1044 .5 USEC=400,3 ;STRETCH CLOCK TO LET EBUS SETTLE (CON?)
; 1045 LD PA LEFT=404,3 ;LH PERF ANAL CONTROLS FROM RH (MTR)
; 1046 LD PA RIGHT=405,3 ;RH PA CONTROLS FROM RH (MTR)
; 1047 CONO MTR=406,3 ;ACCOUNTING CONTROLS (MTR)
; 1048 CONO TIM=407,3 ;INTERVAL TIMER CONTROLS (MTR)
; 1049 CONO APR=414,3 ; (CON3)
; 1050 CONO PI=415,3 ; (CON3)
; 1051 CONO PAG=416,3 ;CACHE & PAGING CTL (CON3)
; 1052 DATAO APR=417,3 ;ADDRESS BREAK (CON3)
; 1053 DATAO PAG=620,3 ;AC BLOCKS & PREV CONTXT (CON3)
; 1054 LD AC BLKS=425,3 ;FORCE LOADING AC BLOCKS
; 1055 LD PCS+CWSX=426,3 ;FORCE LOADING PREV CONTXT SEC, CWSX
; 1056 CONI PI(R)=500,3 ;PI HOLD & ACTIVE TO LH (PI)
; 1057 CONI PI(L)=501,3 ;PI GEN TO LH (PI)
; 1058 CONI APR(R)=510,3 ;APR INTERRUPT & PIA TO LH (APR6)
; 1059 RD TIME=510,3 ;TIME BASE TO RH (MTR5)
; 1060 DATAI PAG(L)=511,3 ;AC BLOCKS, PREV CONTXT TO LH (APR6)
; 1061 RD PERF CNT=511,3 ;PERFORMANCE COUNT TO RH (MTR5)
; 1062 CONI APR(L)=512,3 ;APR INTERRUPT ENABLES TO LH (APR6)
; 1063 RD EBOX CNT=512,3 ;EBOX COUNT TO RH (MTR5)
; 1064 DATAI APR=513,3 ;ADDR BREAK CONDITIONS TO LH (APR6)
; 1065 RD CACHE CNT=513,3 ;CACHE COUNT TO RH (MTR5)
; 1066 RD INTRVL=514,3 ;INTERVAL TIMER TO RH (MTR5)
; 1067 RD PERIOD=515,3 ;PERIOD REGISTER TO RH (MTR5)
; 1068 CONI MTR=516,3 ;CONTROLS & PIA TO RH (MTR5)
; 1069 RD MTR REQ=517,3 ;ENCODED UPDATE REQUEST TO 20-22 (MTR5)
; 1070 CONI PI(PAR)=530,3 ;WRITE EVEN PARITY ENABLES TO RH (CON1)
; 1071 CONI PAG=531,3 ;CACHE & TRAP CTL TO RH (CON1)
; 1072 RD EBUS REG=567,3 ;EBUS REGISTER IN MBOX (MBZ1 & MBC1)
; 1073 PARITY/=0,0,0,P ;USE ANY AVAILABLE FIELD FOR PARITY
; 1074
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 21
; DSK: UCODE; DEFINE 6 03:37:58 8-JAN-76 DISPATCH RAM DEFINITIONS
; 1075 .TOC "DISPATCH RAM DEFINITIONS"
; 1076 ;FIELDS ARE ARRANGED FOR EASY READING, NOT COMPACTNESS
; 1077
; 1078 .DCODE
; 1079 A/=0,3,2 ;OPERAND FETCH MODE
; 1080 IMMED=0 ;IMMEDIATE
; 1081 IMMED-PF=1 ;IMMEDIATE, START PREFETCH
; 1082 WR-TST=3 ;TEST WRITABILITY
; 1083 READ=4 ;READ ONLY
; 1084 READ-PF=5 ;READ, THEN PREFETCH
; 1085 RD-WR=6 ;READ WRITE (SEPARATE CYCLES)
; 1086 RD-P-WR=7 ;READ PAUSE WRITE
; 1087
; 1088 B/=0,3,5 ;STORE RESULTS AT--
; 1089 DBL AC=1 ;DOUBLE RESULT TO AC & AC+1
; 1090 DBL BOTH=2 ;MULB, DIVB, ETC
; 1091 SELF=3 ;SELF MODE INSTRUCTIONS
; 1092 AC=5 ;SINGLE RESULT TO AC, PREFETCH IN PROG
; 1093 MEM=6 ;RESULT TO MEMORY
; 1094 BOTH=7 ;SINGLE RESULT TO MEMORY AND AC
; 1095
; 1096 SJC-=3 ;SKIP JUMP COMPARE CONTROLS
; 1097 SJCL=2
; 1098 SJCE=1
; 1099 SJCLE=0
; 1100 SJCA=7
; 1101 SJCGE=6
; 1102 SJCN=5
; 1103 SJCG=4
; 1104 B0/=0,1,3 ;INVERTS VARIOUS TEST, SKIP, AND JUMP CONTROLS
; 1105 CRY0(0)=0 ;TEST TST CAUSES PC SKIP IF CRY0=0
; 1106 CRY0(1)=1 ; SAME IF CRY0=1
; 1107 B1-2/=0,2,5 ;FLOATING RESULT STORE MODE
; 1108 AC=1 ;RESULT TO AC
; 1109 MEM=2 ;RESULT JUST TO MEM
; 1110 BOTH=3 ;RESULT TO BOTH
; 1111
; 1112 PARITY/=0,1,11,P
; 1113
; 1114 J/=0,10,23 ;EXECUTOR (40&20-BITS ALWAYS 0)
; 1115 .UCODE
; 1116
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 22
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 DISPATCH RAM DEFINITIONS
; 1117
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 23
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- AC TRANSFERS
; 1118 .TOC "MACROS -- AC TRANSFERS"
; 1119
; 1120 GEN AC0 "FMADR/AC0,ADB/FM,AD/B"
; 1121 AR←AC0 "FMADR/AC0,ADB/FM,AD/B,AR/AD"
; 1122 AR←AC1 "FMADR/AC1,ADB/FM,AD/B,AR/AD"
; 1123 AR←AC2 "FMADR/AC2,ADB/FM,AD/B,AR/AD"
; 1124 AR←AC3 "FMADR/AC3,ADB/FM,AD/B,AR/AD"
; 1125 AR←AC4 "FMADR/AC4,ADB/FM,AD/B,AR/AD"
; 1126
; 1127 AC0←AR "FMADR/AC0,COND/FM WRITE"
; 1128 AC1←AR "FMADR/AC1,COND/FM WRITE"
; 1129 AC2←AR "FMADR/AC2,COND/FM WRITE"
; 1130 AC3←AR "FMADR/AC3,COND/FM WRITE"
; 1131 AC4←AR "FMADR/AC4,COND/FM WRITE"
; 1132
; 1133 ARX←AC0 "FMADR/AC0,ADB/FM,AD/B,ARX/AD"
; 1134 ARX←AC1 "FMADR/AC1,ADB/FM,AD/B,ARX/AD"
; 1135 ARX←AC2 "FMADR/AC2,ADB/FM,AD/B,ARX/AD"
; 1136 ARX←AC3 "FMADR/AC3,ADB/FM,AD/B,ARX/AD"
; 1137 ARX←AC4 "FMADR/AC4,ADB/FM,AD/B,ARX/AD"
; 1138
; 1139 AR←-AC0 "FMADR/AC0,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 1140 AR←AC0 COMP "FMADR/AC0,ADB/FM,AD/SETCB,AR/AD"
; 1141 AR←AC1 COMP "FMADR/AC1,ADB/FM,AD/SETCB,AR/AD"
; 1142 AR←AC1*2 "FMADR/AC1,ADB/FM,AD/B,AR/AD*2"
; 1143 AR←AC3*2 "FMADR/AC3,ADB/FM,AD/B,AR/AD*2"
; 1144
; 1145 GEN AR*AC0 "FMADR/AC0,ADB/FM,ADA/AR"
; 1146 AR←AR*AC0 "FMADR/AC0,ADB/FM,ADA/AR,AR/AD" ;GENERAL BINARY OPERATION
; 1147 AR←AR*AC1 "FMADR/AC1,ADB/FM,ADA/AR,AR/AD"
; 1148
; 1149 AR←AC0+1 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,AR/AD"
; 1150 ARX←AC0+1 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A+B+1,ARX/AD"
; 1151 ARX←-AC0 "ADA EN/0S,ADB/FM,FMADR/AC0,AD/A-B,ARX/AD"
; 1152 ARX←AC0 COMP "ADB/FM,FMADR/AC0,AD/SETCB,ARX/AD"
; 1153
; 1154 AR←XR "FMADR/XR,ADB/FM,AD/B,AR/AD"
; 1155 ARX←FM(VMA) "FMADR/VMA,ADB/FM,AD/B,ARX/AD"
; 1156
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 24
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- DATA PATH TRANSFERS AND SHIFTS
; 1157 .TOC "MACROS -- DATA PATH TRANSFERS AND SHIFTS"
; 1158
; 1159 MQ←AR "SH/AR,MQ/SH"
; 1160 MQ←ARX "SH/ARX,MQ/SH"
; 1161 AR←MQ "ADA/MQ,AD/A,AR/AD"
; 1162
; 1163 MQ←SHIFT "SH/SHIFT AR!ARX,MQ/SH"
; 1164 AR←SHIFT "SH/SHIFT AR!ARX,AR/SH"
; 1165 ARX←SHIFT "SH/SHIFT AR!ARX,ARX/SH"
; 1166 MQ←AD "COND/REG CTL,MQ CTL/AD,MQ/MQM SEL"
; 1167 MQ←AR (AD) "ADA/AR,AD/A,MQ←AD"
; 1168 (MQ)*.25 "COND/REG CTL,MQ/MQM SEL,MQ CTL/MQ*.25"
; 1169 (MQ)*2 "COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*2"
; 1170
; 1171 AR←ARX "SH/ARX,AR/SH"
; 1172 AR←ARX (ADX) "ADA EN/EN,AD/A,AR/ADX"
; 1173 AR←ARX (AD) "ADA/ARX,AD/A,AR/AD"
; 1174 ARX←AR "SH/AR,ARX/SH"
; 1175 ARX←AR (AD) "ADA/AR,AD/A,ARX/AD"
; 1176 BR←AR LONG "BR/AR,BRX/ARX"
; 1177
; 1178 AR←AR*2 "ADA/AR,AD/A,AR/AD*2"
; 1179 AR←AR*4 "ADB/AR*4,AD/B,AR/AD"
; 1180 AR←AR*8 "ADB/AR*4,AD/B,AR/AD*2"
; 1181 ARX←ARX*2 "ADA EN/EN,AD/A,ARX/ADX*2"
; 1182 ARX←ARX*4 "ADB/AR*4,AD/B,ARX/ADX"
; 1183 ARX←ARX*8 "ADB/AR*4,AD/B,ARX/ADX*2"
; 1184 AR←AR*2 LONG "ADA/AR,AD/A,AR/AD*2,ARX/ADX*2"
; 1185 AR←AR*4 LONG "ADB/AR*4,AD/B,AR/AD,ARX/ADX"
; 1186 AR←AR*8 LONG "ADB/AR*4,AD/B,AR/AD*2,ARX/ADX*2"
; 1187 AR←ARX*2 "ADA/ARX,AD/A,AR/AD*2"
; 1188 MQ←MQ*2 "SPEC/MQ SHIFT,MQ/MQ*2"
; 1189 AR←AR*.25 "ADA/AR,AD/A,AR/AD*.25"
; 1190 AR←ARX*.25 "ADA/ARX,AD/A,AR/AD*.25"
; 1191 AR←MQ*.25 "ADA/MQ,AD/A,AR/AD*.25"
; 1192 ARX←ARX*.25 "ADA EN/EN,AD/A,ARX/ADX*.25"
; 1193 MQ←MQ*.25 "SPEC/MQ SHIFT,MQ/MQ*.25"
; 1194 (AR+ARX+MQ)*2 "ADA/AR,AD/A,AR/AD*2,ARX/ADX*2,(MQ)*2"
; 1195 (AR+ARX+MQ)*.25 "ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25,(MQ)*.25"
; 1196 AR←AR*.5 "ADA/AR,AD/A*2,AR/AD*.25"
; 1197 ARX←ARX*.5 "ADA/EN,AD/A*2,ARX/ADX*.25"
; 1198 AR←AR*.5 LONG "ADA/AR,AD/A*2,SPEC/AD LONG,AR/AD*.25,ARX/ADX*.25"
; 1199
; 1200 AR←ARX COMP "ADA EN/EN,AD/SETCA,AR/ADX"
; 1201 AR←BR COMP "ADB/BR,AD/SETCB,AR/AD"
; 1202 ARX←BRX COMP "ADB/BR,AD/SETCB,ARX/ADX"
; 1203 AR←MQ COMP "ADA/MQ,AD/SETCA,AR/AD"
; 1204 ARX←AR*4 COMP "ADB/AR*4,AD/SETCB,ARX/AD"
; 1205 MQ←BR COMP "ADB/BR,AD/SETCB,MQ←AD"
; 1206 MQ←ARX COMP "ADA/ARX,AD/SETCA,MQ←AD"
; 1207
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 25
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- DATA PATH TRANSFERS AND SHIFTS
; 1208 AR←-AR "ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25"
; 1209 AR←BR "ADB/BR,AD/B,AR/AD"
; 1210 AR←BRX "ADB/BR,AD/B,AR/ADX"
; 1211 ARX←BRX "ADB/BR,AD/B,ARX/ADX"
; 1212 AR←BR LONG "ADB/BR,AD/B,AR/AD,ARX/ADX"
; 1213 ARX←BR "ADB/BR,AD/B,ARX/AD"
; 1214 AR←-BR "ADB/BR,ADA EN/0S,AD/A-B,AR/AD"
; 1215 AR←-BRX "ADB/BR,ADA EN/0S,AD/A-B,AR/ADX"
; 1216 ARX←-BRX "ADB/BR,ADA EN/0S,AD/A-B,ARX/ADX"
; 1217 AR←BR*2 "ADB/BR*2,AD/B,AR/AD"
; 1218 ARX←BRX*2 "ADB/BR*2,AD/B,ARX/ADX"
; 1219 ARX←BRX*2+1 "ADA EN/0S,ADB/BR*2,AD/A+B+1,ARX/ADX"
; 1220 AR←BR*4 LONG "ADB/BR*2,AD/B,AR/AD*2,ARX/ADX*2"
; 1221 AR←BR*.5 "ADB/BR*2,AD/B,AR/AD*.25"
; 1222 AR←BR*.5 LONG "ADB/BR*2,AD/B,AR/AD*.25,ARX/ADX*.25"
; 1223 AR←MQ*2 "ADA/MQ,AD/A,AR/AD*2"
; 1224
; 1225 GEN AR "ADA/AR,AD/A"
; 1226 GEN ARX "ADA/ARX,AD/A"
; 1227 GEN BR*2 "ADB/BR*2,AD/B"
; 1228 FORCE AR-ARX "ADB/AR*4,AD/B,AR/AD*.25,ARX/ADX*.25"
; 1229
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 26
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- ARITHMETIC
; 1230 .TOC "MACROS -- ARITHMETIC"
; 1231
; 1232 GEN AR+1 "ADA/AR,AD/A+1"
; 1233 GEN AR-1 "ADA/AR,AD/A-1"
; 1234 AR←AR+1 "ADA/AR,AD/A+1,AR/AD"
; 1235 AR←AR-1 "ADA/AR,AD/A-1,AR/AD"
; 1236 AR←AR+BR "ADA/AR,ADB/BR,AD/A+B,AR/AD"
; 1237 ARX←AR+BR "ADA/AR,ADB/BR,AD/A+B,ARX/AD"
; 1238 GEN AR*BR "ADA/AR,ADB/BR"
; 1239 GEN AR+BR "ADA/AR,ADB/BR,AD/A+B"
; 1240 GEN AR-BR "ADA/AR,ADB/BR,AD/A-B"
; 1241 GEN AR-BR-1 "GEN AR*BR,AD/A-B-1"
; 1242 AR←AR-BR "ADA/AR,ADB/BR,AD/A-B,AR/AD"
; 1243 ARX←AR+1 "ADA/AR,AD/A+1,ARX/AD"
; 1244 ARX←AR-1 "ADA/AR,AD/A-1,ARX/AD"
; 1245 ARX←ARX+1 "ADA EN/EN,AD/A+1,ARX/ADX"
; 1246 ARX←ARX-1 "ADA EN/EN,AD/A-1,ARX/ADX"
; 1247 ARX←ARX-1 (AD) "ADA/ARX,AD/A-1,ARX/AD"
; 1248 AR←ARX-1 "ADA EN/EN,AD/A-1,AR/ADX"
; 1249 ARX←BRX+1 "ADA EN/0S,ADB/BR,AD/A+B+1,ARX/ADX"
; 1250 AR←ARX+BR "ADA/ARX,ADB/BR,AD/A+B,AR/AD"
; 1251 AR←ARX-BR "ADA/ARX,ADB/BR,AD/A-B,AR/AD"
; 1252 GEN AR-AC3 "FMADR/AC3,ADB/FM,ADA/AR,AD/A-B"
; 1253 AR←MQ+1 "ADA/MQ,AD/A+1,AR/AD"
; 1254 MQ←MQ+1 "ADA/MQ,AD/A+1,MQ←AD"
; 1255 AR←MQ-1 "ADA/MQ,AD/A-1,AR/AD"
; 1256 AR←MQ-BR "ADA/MQ,ADB/BR,AD/A-B,AR/AD"
; 1257 AR←MQ+AC0 "FMADR/AC0,ADB/FM,ADA/MQ,AD/A+B,AR/AD"
; 1258 AR←MQ*AC1 "FMADR/AC1,ADB/FM,ADA/MQ,AR/AD"
; 1259 AR←MQ*AC2 "FMADR/AC2,ADB/FM,ADA/MQ,AR/AD"
; 1260 AR←MQ*AC3 "FMADR/AC3,ADB/FM,ADA/MQ,AR/AD"
; 1261
; 1262 AR←AR*BR "ADA/AR,ADB/BR,AR/AD"
; 1263 ARX←AR*BR "ADA/AR,ADB/BR,ARX/AD"
; 1264 AR←2(AR*BR) "ADA/AR,ADB/BR,AR/AD*2"
; 1265 AR←2(AR+BR) "AR←2(AR*BR),AD/A+B"
; 1266 AR←2(AR-BR) "AR←2(AR*BR),AD/A-B"
; 1267 AR←(AR+BR)*.25 "ADA/AR,ADB/BR,AD/A+B,AR/AD*.25"
; 1268 AR←(AR-BR)*.25 "ADA/AR,ADB/BR,AD/A-B,AR/AD*.25"
; 1269 AR←(AR+2BR)*.25 "ADA/AR,ADB/BR*2,AD/A+B,AR/AD*.25"
; 1270 AR←(AR-2BR)*.25 "ADA/AR,ADB/BR*2,AD/A-B,AR/AD*.25"
; 1271 GEN AR+2BR "ADA/AR,ADB/BR*2,AD/A+B"
; 1272 GEN AR-2BR "ADA/AR,ADB/BR*2,AD/A-B"
; 1273 ARX←ARX*BRX "ADA/AR,ADB/BR,ARX/ADX"
; 1274 ARX←ARX+BRX "ARX←ARX*BRX,AD/A+B"
; 1275 AR←ARX*BRX "ADA/AR,ADB/BR,AR/ADX"
; 1276
; 1277 AR←AR*10 "ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2"
; 1278 ARX←ARX*5 "ADA/AR,ADB/AR*4,AD/A+B,ARX/ADX"
; 1279 AR←2(AR+1) "ADA/AR,AD/A+1,AR/AD*2"
; 1280 AR←ARX*.25-AR-1 "ADB/AR*4,ADA/ARX,AD/A-B-1,AR/AD*.25"
; 1281 ARX←ARX*-6 "ADA EN/EN,ADB/AR*4,AD/A-B,ARX/ADX*2"
; 1282
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 27
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- SCRATCH AC'S (BLOCK 7)
; 1283 .TOC "MACROS -- SCRATCH AC'S (BLOCK 7)"
; 1284
; 1285 ;PARITY ERROR DIAGNOSIS/RECOVERY INFORMATION
; 1286
; 1287 .IFNOT/KLPAGE
; 1288 SV.AR←AR "FMADR/#B#,FM#/160,COND/FM WRITE" ;AR SAVED
; 1289 SV.ARX←AR "FMADR/#B#,FM#/161,COND/FM WRITE" ;ARX SAVED
; 1290 .ENDIF/KLPAGE
; 1291 SV.IOPF←AR "FMADR/#B#,FM#/162,COND/FM WRITE" ;IO PAGE FAIL WORD
; 1292
; 1293 T0 "FMADR/#B#,FM#/166"
; 1294 T1 "FMADR/#B#,FM#/171"
; 1295 T2 "FMADR/#B#,FM#/172"
; 1296 E0 "FMADR/#B#,FM#/164"
; 1297 E1 "FMADR/#B#,FM#/165"
; 1298 SLEN "FMADR/#B#,FM#/170" ;MUST BE 170
; 1299 MSK "FMADR/#B#,FM#/167"
; 1300 SFLGS "FMADR/AC0"
; 1301 SRCP "FMADR/AC1"
; 1302 DLEN "FMADR/AC3"
; 1303 DSTP "FMADR/AC4"
; 1304
; 1305 AR←FM "ADB/FM,AD/B,AR/AD"
; 1306 AR←FM+1 "ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 1307 FM←AR "COND/FM WRITE"
; 1308 ARX←FM "ADB/FM,AD/B,ARX/AD"
; 1309
; 1310 .IF/TRACKS
; 1311 ;ACCESS TO AC'S WHICH CONTROL TRACKS FEATURE
; 1312 TRB "FMADR/#B#,FM#/176"
; 1313 TRX "FMADR/#B#,FM#/177"
; 1314 AR←TRB "TRB,AR←FM"
; 1315 AR←AR+TRB "TRB,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 1316 ARX←TRB "TRB,ARX←FM"
; 1317 ARX←TRX "TRX,ARX←FM"
; 1318 VMA←TRB "TRB,ADB/FM,AD/B,VMA/AD"
; 1319 VMA←AR+TRB "TRB,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 1320 TRB←AR "TRB,FM←AR"
; 1321 AR←TRX "TRX,AR←FM"
; 1322 TRX←AR "TRX,FM←AR"
; 1323 AR←TRX+1 "TRX,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 1324 SET TRACKS ENABLE "COND/EBOX STATE,#/131"
; 1325 CLEAR TRACKS ENABLE "COND/EBOX STATE,#/121"
; 1326 .ENDIF/TRACKS
; 1327
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 28
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- SCRATCH AC'S (BLOCK 7)
; 1328 T0←AR "T0,FM←AR"
; 1329 T1←AR "T1,FM←AR"
; 1330 T2←AR "T2,FM←AR"
; 1331 E0←AR "E0,FM←AR"
; 1332 E1←AR "E1,FM←AR"
; 1333 SLEN←AR "SLEN,FM←AR"
; 1334 DLEN←AR "DLEN,FM←AR"
; 1335 MSK←AR "MSK,FM←AR"
; 1336 SRCP←AR "SRCP,FM←AR"
; 1337 SFLGS←AR "SFLGS,FM←AR"
; 1338 DSTP←AR "DSTP,FM←AR"
; 1339
; 1340 AR←T0 "T0,AR←FM"
; 1341 AR←AR+T0 "T0,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 1342 AR←AR-T0 "T0,ADB/FM,ADA/AR,AD/A-B,AR/AD"
; 1343 AR←AR*T0 "T0,ADB/FM,ADA/AR,AR/AD"
; 1344 VMA←T0+1 "T0,ADB/FM,ADA EN/0S,AD/A+B+1,VMA/AD"
; 1345 AR←T1 "T1,AR←FM"
; 1346 AR←T2 "T2,AR←FM"
; 1347 AR←AR+T1 "T1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 1348 ARX←T2 "T2,ARX←FM"
; 1349 AR←SLEN "SLEN,AR←FM"
; 1350 AR←SLEN+1 "SLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 1351 AR←SLEN COMP "SLEN,ADB/FM,AD/SETCB,AR/AD"
; 1352 AR←-SLEN "SLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 1353 ARX←-SLEN "SLEN,ADB/FM,ADA EN/0S,AD/A-B,ARX/AD"
; 1354 AR←AR*SLEN "SLEN,ADB/FM,ADA/AR,AR/AD"
; 1355 AR←DLEN "DLEN,AR←FM"
; 1356 AR←DLEN+1 "DLEN,ADB/FM,ADA EN/0S,AD/A+B+1,AR/AD"
; 1357 AR←DLEN COMP "DLEN,ADB/FM,AD/SETCB,AR/AD"
; 1358 AR←-DLEN "DLEN,ADB/FM,ADA EN/0S,AD/A-B,AR/AD"
; 1359 AR←E0 "E0,AR←FM"
; 1360 VMA←E0+1 "E0,ADB/FM,ADA EN/0S,AD/A+B+1,VMA/AD"
; 1361 VMA←AR+E0 "E0,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 1362 VMA←AR+E0+1 "E0,ADB/FM,ADA/AR,AD/A+B+1,VMA/AD"
; 1363 AR←E1 "E1,AR←FM"
; 1364 VMA←AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 1365 AR←AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 1366 GEN AR+E1 "E1,ADB/FM,ADA/AR,AD/A+B"
; 1367 AR←AR*MSK "MSK,ADB/FM,ADA/AR,AR/AD"
; 1368 ARX←AR*MSK "MSK,ADB/FM,ADA/AR,ARX/AD"
; 1369 AR←SRCP "SRCP,AR←FM"
; 1370 ARX←SRCP "SRCP,ARX←FM"
; 1371 AR←SFLGS "SFLGS,AR←FM"
; 1372 AR←AR*SFLGS "SFLGS,ADB/FM,ADA/AR,AR/AD"
; 1373 AR←DSTP "DSTP,AR←FM"
; 1374 ARX←DSTP "DSTP,ARX←FM"
; 1375
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 29
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 ITS AC BLOCKS USAGE TABLE
; 1376 .TOC "ITS AC BLOCKS USAGE TABLE"
; 1377
; 1378 ;ITS USES THE EIGHT ACCUMULATOR BLOCKS AS FOLLOWS:
; 1379 ;
; 1380 ;BLOCK 0 EXEC MODE ACCUMULATORS
; 1381 ;BLOCK 1 USER MODE ACCUMULATORS
; 1382 ;BLOCK 2 UNUSED
; 1383 ;BLOCK 3 UNUSED
; 1384 ;BLOCK 4 EXEC MODE JPC RING (.IF/JPC.RING)
; 1385 ;BLOCK 5 USER MODE JPC RING (.IF/JPC.RING)
; 1386 ;BLOCK 6 VARIOUS PAGING BOX AND OTHER REGISTERS
; 1387 ; 0 UPFW PFW AS OF THE LAST REAL PAGE FAILURE
; 1388 ; 1 DBR1 DBR FOR USER LOW HALF
; 1389 ; 2 DBR2 DBR FOR USER HIGH HALF
; 1390 ; 3 DBR3 DBR FOR EXEC HIGH HALF
; 1391 ; 4 DBR4 DBR FOR EXEC LOW HALF
; 1392 ; 5 LH.AGE AGE BITS IN LEFT HALFWORD
; 1393 ; 6 RH.AGE AGE BITS IN RIGHT HALFWORD
; 1394 ; 7 CN1000 MUST CONTAIN 1000 FOR PAGING BOX CODE
; 1395 ; 10 CN100 MUST CONTAIN 100 FOR PAGING BOX CODE
; 1396 ; 11 UNUSED
; 1397 ; 12 SV.VMA SAVED VMA DURING PAGE FAIL
; 1398 ; 13 SV.BR SAVED BR DURING PAGE FAIL
; 1399 ; 14 XJPC EXEC JPC (EXEC JPC RING POINTER IF RING)
; 1400 ; 15 JPC USER JPC (JPC RING POINTER IF JPC RING)
; 1401 ; 16 SV.AR SAVED AR DURING PAGE FAIL
; 1402 ; 17 SV.ARX SAVES ARX DURING PAGE FAIL
; 1403 ;BLOCK 7 VARIOUS RANDOM REGISTERS
; 1404 ; 0 SV.PAR SAVED WORD WITH BAD PARITY DURING PARITY ERROR
; 1405 ; 1 SV.PFW SAVED PAGE FAIL WORD
; 1406 ; 2 SV.IOPF SAVED I/O PAGE FAIL WORD
; 1407 ; 3 UNUSED
; 1408 ; 4 E0 TEMP FOR STRING STUFF ETC.
; 1409 ; 5 E1
; 1410 ; 6 T0
; 1411 ; 7 MSK
; 1412 ; 10 SLEN
; 1413 ; 11 T1
; 1414 ; 12 T2
; 1415 ; 13 UNUSED
; 1416 ; 14 UNUSED
; 1417 ; 15 UNUSED
; 1418 ; 16 TRB BASE AOBJN POINTER FOR TRACKS FEATURE
; 1419 ; 17 TRX CURRENT AOBJN POINTER FOR TRACKS
; 1420
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 30
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 KL-MODE PAGING REGISTERS
; 1421 .TOC "KL-MODE PAGING REGISTERS"
; 1422
; 1423 .IF/KLPAGE
; 1424 .IFNOT/ITSPAGE
; 1425 CSMSK "FMADR/#B#,FM#/140"
; 1426 PUR "FMADR/#B#,FM#/141"
; 1427 CBR "FMADR/#B#,FM#/142"
; 1428 SBR "FMADR/#B#,FM#/143"
; 1429 PFA "FMADR/#B#,FM#/144"
; 1430 SV.VMA "FMADR/#B#,FM#/145"
; 1431 SV.BR "FMADR/#B#,FM#/150"
; 1432 SV.SC "FMADR/#B#,FM#/151"
; 1433 SV.PFW "FMADR/#B#,FM#/152"
; 1434 .IF/ITSPAGE
; 1435 UPFW "FMADR/#B#,FM#/140" ;PFW AS OF LAST REAL PAGE FAIL
; 1436 DBR1 "FMADR/#B#,FM#/141" ;USER LOW
; 1437 DBR2 "FMADR/#B#,FM#/142" ;USER HIGH
; 1438 DBR3 "FMADR/#B#,FM#/143" ;EXEC HIGH
; 1439 DBR4 "FMADR/#B#,FM#/144" ;EXEC LOW
; 1440 LH.AGE "FMADR/#B#,FM#/145"
; 1441 RH.AGE "FMADR/#B#,FM#/146"
; 1442 CN1000 "FMADR/#B#,FM#/147"
; 1443 CN100 "FMADR/#B#,FM#/150"
; 1444 SV.VMA "FMADR/#B#,FM#/152"
; 1445 SV.BR "FMADR/#B#,FM#/153"
; 1446 .IF/JPC
; 1447 XJPC "FMADR/#B#,FM#/154" ;EXEC JPC (OR RING PTR)
; 1448 JPC "FMADR/#B#,FM#/155" ;JPC (OR JPC RING PTR)
; 1449 .ENDIF/JPC
; 1450 SV.PFW "FMADR/#B#,FM#/161"
; 1451 .ENDIF/ITSPAGE
; 1452 SV.AR "FMADR/#B#,FM#/156" ;GROSS KLUDGES AT PF2 AND PFPAR
; 1453 SV.ARX "FMADR/#B#,FM#/157" ; DEPEND ON THESE THREE
; 1454 SV.PAR "FMADR/#B#,FM#/160" ; VALUES BEING WHAT THEY ARE
; 1455
; 1456 PFA←AR "PFA,FM←AR"
; 1457 SV.PFW←AR "SV.PFW,FM←AR"
; 1458 SV.VMA←AR "SV.VMA,FM←AR"
; 1459 SV.AR←AR "SV.AR,FM←AR"
; 1460 SV.ARX←AR "SV.ARX,FM←AR"
; 1461 SV.BR←AR "SV.BR,FM←AR"
; 1462 SV.SC←AR "SV.SC,FM←AR"
; 1463 SV.PAR←AR "SV.PAR,FM←AR"
; 1464 .IF/ITSPAGE
; 1465 DBR1←AR "DBR1,FM←AR"
; 1466 DBR2←AR "DBR2,FM←AR"
; 1467 LH.AGE←AR "LH.AGE,FM←AR"
; 1468 RH.AGE←AR "RH.AGE,FM←AR"
; 1469 UPFW←AR "UPFW,FM←AR"
; 1470 .IF/JPC
; 1471 JPC←AR "JPC,FM←AR"
; 1472 XJPC←AR "XJPC,FM←AR"
; 1473 .ENDIF/JPC
; 1474 .ENDIF/ITSPAGE
; 1475
; 1476 AR←SV.PFW "SV.PFW,AR←FM"
; 1477 ARX←SV.VMA "SV.VMA,ARX←FM"
; 1478 VMA←SV.VMA "SV.VMA,ADB/FM,AD/B,VMA/AD"
; 1479 REQ SV.VMA "SV.VMA,ADB/FM,AD/B,VMA/1,MEM/AD FUNC"
; 1480 AR←SV.AR "SV.AR,AR←FM"
; 1481 ARX←SV.AR "SV.AR,ARX←FM"
; 1482 AR←SV.ARX "SV.ARX,AR←FM"
; 1483 ARX←SV.ARX "SV.ARX,ARX←FM"
; 1484 AR←SV.BR "SV.BR,AR←FM"
; 1485 ARX←SV.BR "SV.BR,ARX←FM"
; 1486 AR←SV.SC "SV.SC,AR←FM"
; 1487 .IF/ITSPAGE
; 1488 AR←DBR1 "DBR1,AR←FM"
; 1489 AR←DBR2 "DBR2,AR←FM"
; 1490 ARX←DBR1 "DBR1,ARX←FM"
; 1491 ARX←DBR2 "DBR2,ARX←FM"
; 1492 ARX←DBR3 "DBR3,ARX←FM"
; 1493 ARX←DBR4 "DBR4,ARX←FM"
; 1494 AR←LH.AGE "LH.AGE,AR←FM"
; 1495 AR←UPFW "UPFW,AR←FM"
; 1496 GEN SV.PFW "AD/B,ADB/FM,SV.PFW"
; 1497 .IF/JPC
; 1498 AR←JPC "JPC,AR←FM"
; 1499 AR←XJPC "XJPC,AR←FM"
; 1500 .IF/JPC.RING
; 1501 AR←JPC+1 "JPC,AR←FM+1"
; 1502 AR←XJPC+1 "XJPC,AR←FM+1"
; 1503 .ENDIF/JPC.RING
; 1504 .ENDIF/JPC
; 1505 .ENDIF/ITSPAGE
; 1506
; 1507 AR←AR+SBR "SBR,ADB/FM,ADA/AR,AD/A+B,AR/AD"
; 1508 VMA←AR+SBR "SBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 1509 ARX←AR+CBR "CBR,ADB/FM,ADA/AR,AD/A+B,ARX/AD"
; 1510 VMA←AR+CBR "CBR,ADB/FM,ADA/AR,AD/A+B,VMA/AD"
; 1511 ARX←ARX+CBR "CBR,ADB/FM,ADA/ARX,AD/A+B,ARX/AD"
; 1512 VMA←ARX+CBR "CBR,ADB/FM,ADA/ARX,AD/A+B,VMA/AD"
; 1513 AR←AR AND CSMSK "CSMSK,ADB/FM,ADA/AR,AD/AND,AR/AD"
; 1514 2AR←AR OR PUR "PUR,ADB/FM,ADA/AR,AD/OR,AR/AD"
; 1515 XAR←PUR+AR0 "PUR,ADB/FM,ADA EN/0S,AD/A+B,SPEC/XCRY AR0,AR/AD"
; 1516 .IF/ITSPAGE
; 1517 AR←AR*LH.AGE "LH.AGE,ADA/AR,ADB/FM,AR/AD"
; 1518 AR←AR*RH.AGE "RH.AGE,ADA/AR,ADB/FM,AR/AD"
; 1519 GEN ARX*CN1000 "CN1000,ADA/ARX,ADB/FM"
; 1520 ARX←ARX-CN100 "CN100,ADA/ARX,ADB/FM,AD/A-B,ARX/AD"
; 1521 .ENDIF/ITSPAGE
; 1522
; 1523 ;DEFINE PAGE FAIL CODES GENERATED BY MICROCODE
; 1524
; 1525 SC←PF.ILW "SC←#,#/24" ;ILLEGAL WRITE
; 1526 SC←PF.PNA "SC←#,#/33" ;PAGE NO ACCESS
; 1527 .IFNOT/ITSPAGE
; 1528 SC←PF.SNA "SC←#,#/30" ;SECTION NO ACCESS
; 1529 SC←PF.SNC "SC←#,#/31" ;SECTION TABLE NOT IN CORE
; 1530 SC←PF.SAG "SC←#,#/32" ;SECTION TABLE AGE
; 1531 SC←PF.PNC "SC←#,#/34" ;PAGE NOT IN CORE
; 1532 SC←PF.PAG "SC←#,#/35" ;PAGE AGE
; 1533 .ENDIF/ITSPAGE
; 1534 ; PF.APE 36 ;AR PARITY ERROR
; 1535 ; PF.XPE 37 ;ARX PARITY ERROR
; 1536 .ENDIF/KLPAGE
; 1537
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 31
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- ITS JPC RING REGISTERS
; 1538 .TOC "MACROS -- ITS JPC RING REGISTERS"
; 1539
; 1540 XJPC0 "FMADR/#B#,FM#/100" ;EXEC JPC RING - AC BLK 4
; 1541 XJPC1 "FMADR/#B#,FM#/101"
; 1542 XJPC2 "FMADR/#B#,FM#/102"
; 1543 XJPC3 "FMADR/#B#,FM#/103"
; 1544 XJPC4 "FMADR/#B#,FM#/104"
; 1545 XJPC5 "FMADR/#B#,FM#/105"
; 1546 XJPC6 "FMADR/#B#,FM#/106"
; 1547 XJPC7 "FMADR/#B#,FM#/107"
; 1548 XJPC10 "FMADR/#B#,FM#/110"
; 1549 XJPC11 "FMADR/#B#,FM#/111"
; 1550 XJPC12 "FMADR/#B#,FM#/112"
; 1551 XJPC13 "FMADR/#B#,FM#/113"
; 1552 XJPC14 "FMADR/#B#,FM#/114"
; 1553 XJPC15 "FMADR/#B#,FM#/115"
; 1554 XJPC16 "FMADR/#B#,FM#/116"
; 1555 XJPC17 "FMADR/#B#,FM#/117"
; 1556
; 1557 JPC0 "FMADR/#B#,FM#/120" ;USER JPC RING - AC BLK 5
; 1558 JPC1 "FMADR/#B#,FM#/121"
; 1559 JPC2 "FMADR/#B#,FM#/122"
; 1560 JPC3 "FMADR/#B#,FM#/123"
; 1561 JPC4 "FMADR/#B#,FM#/124"
; 1562 JPC5 "FMADR/#B#,FM#/125"
; 1563 JPC6 "FMADR/#B#,FM#/126"
; 1564 JPC7 "FMADR/#B#,FM#/127"
; 1565 JPC10 "FMADR/#B#,FM#/130"
; 1566 JPC11 "FMADR/#B#,FM#/131"
; 1567 JPC12 "FMADR/#B#,FM#/132"
; 1568 JPC13 "FMADR/#B#,FM#/133"
; 1569 JPC14 "FMADR/#B#,FM#/134"
; 1570 JPC15 "FMADR/#B#,FM#/135"
; 1571 JPC16 "FMADR/#B#,FM#/136"
; 1572 JPC17 "FMADR/#B#,FM#/137"
; 1573
; 1574 XJPC0←AR "XJPC0,FM←AR"
; 1575 XJPC1←AR "XJPC1,FM←AR"
; 1576 XJPC2←AR "XJPC2,FM←AR"
; 1577 XJPC3←AR "XJPC3,FM←AR"
; 1578 XJPC4←AR "XJPC4,FM←AR"
; 1579 XJPC5←AR "XJPC5,FM←AR"
; 1580 XJPC6←AR "XJPC6,FM←AR"
; 1581 XJPC7←AR "XJPC7,FM←AR"
; 1582 XJPC10←AR "XJPC10,FM←AR"
; 1583 XJPC11←AR "XJPC11,FM←AR"
; 1584 XJPC12←AR "XJPC12,FM←AR"
; 1585 XJPC13←AR "XJPC13,FM←AR"
; 1586 XJPC14←AR "XJPC14,FM←AR"
; 1587 XJPC15←AR "XJPC15,FM←AR"
; 1588 XJPC16←AR "XJPC16,FM←AR"
; 1589 XJPC17←AR "XJPC17,FM←AR"
; 1590
; 1591 JPC0←AR "JPC0,FM←AR"
; 1592 JPC1←AR "JPC1,FM←AR"
; 1593 JPC2←AR "JPC2,FM←AR"
; 1594 JPC3←AR "JPC3,FM←AR"
; 1595 JPC4←AR "JPC4,FM←AR"
; 1596 JPC5←AR "JPC5,FM←AR"
; 1597 JPC6←AR "JPC6,FM←AR"
; 1598 JPC7←AR "JPC7,FM←AR"
; 1599 JPC10←AR "JPC10,FM←AR"
; 1600 JPC11←AR "JPC11,FM←AR"
; 1601 JPC12←AR "JPC12,FM←AR"
; 1602 JPC13←AR "JPC13,FM←AR"
; 1603 JPC14←AR "JPC14,FM←AR"
; 1604 JPC15←AR "JPC15,FM←AR"
; 1605 JPC16←AR "JPC16,FM←AR"
; 1606 JPC17←AR "JPC17,FM←AR"
; 1607
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 32
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- CONSTANT GENERATION
; 1608 .TOC "MACROS -- CONSTANT GENERATION"
; 1609
; 1610 AR←1S "AD/1S,AR/AD"
; 1611 ARX←1S "AD/1S,ARX/AD"
; 1612 MQ←1S "COND/REG CTL,MQ CTL/1S,MQ/MQM SEL"
; 1613 AR←0S "AD/0S,AR/AD"
; 1614 ARX←0S "AD/0S,ARX/AD"
; 1615 AR←SIGN "AD/XCRY-1,SPEC/XCRY AR0,AR/AD"
; 1616 ARX←AR SIGN "AD/XCRY-1,SPEC/XCRY AR0,ARX/AD"
; 1617 AR←0.C "COND/ARL IND,CLR/AR"
; 1618 ARL←0.C "COND/ARL IND,CLR/ARL"
; 1619 ARR←0.C "COND/ARL IND,CLR/ARR"
; 1620 ARX←0.C "COND/ARL IND,CLR/ARX"
; 1621 MQ←0.C "COND/ARL IND,CLR/MQ"
; 1622 AR←0.S "SPEC/ARL IND,CLR/AR"
; 1623 ARL←0.S "SPEC/ARL IND,CLR/ARL"
; 1624 ARR←0.S "SPEC/ARL IND,CLR/ARR"
; 1625 ARX←0.S "SPEC/ARL IND,CLR/ARX"
; 1626 MQ←0.S "SPEC/ARL IND,CLR/MQ"
; 1627 AR←0.M "MEM/ARL IND,CLR/AR"
; 1628 ARL←0.M "MEM/ARL IND,CLR/ARL"
; 1629 ARR←0.M "MEM/ARL IND,CLR/ARR"
; 1630 ARX←0.M "MEM/ARL IND,CLR/ARX"
; 1631 MQ←0.M "MEM/ARL IND,CLR/MQ"
; 1632 ARX+MQ←0.M "MEM/ARL IND,CLR/ARX+MQ"
; 1633 AR+ARX+MQ←0.M "MEM/ARL IND,CLR/AR+ARX+MQ"
; 1634 ARL+ARX+MQ←0.M "MEM/ARL IND,CLR/ARL+ARX+MQ"
; 1635 ARL+ARX←0.M "MEM/ARL IND,CLR/ARL+ARX"
; 1636 AR+MQ←0.M "MEM/ARL IND,CLR/AR+MQ"
; 1637 AR+MQ←0.S "SPEC/ARL IND,CLR/AR+MQ"
; 1638 ARR+MQ←0.S "SPEC/ARL IND,CLR/ARR+MQ"
; 1639 ARX+MQ←0.S "SPEC/ARL IND,CLR/ARX+MQ"
; 1640 CLR AR "COND/AR CLR"
; 1641 CLR ARX "COND/ARX CLR"
; 1642 CLR MQ "COND/REG CTL,MQ/MQ SEL,MQ CTL/0S"
; 1643 AR←1 "ADA EN/0S,AD/A+1,AR/AD"
; 1644 ARX←1 "ADA EN/0S,AD/A+1,ARX/AD"
; 1645 AR←1 LONG "ADA EN/0S,AD/A+1,AR/AD*.25,ARX/ADX"
; 1646 MQ←1 "ADA EN/0S,AD/A+1,COND/REG CTL,MQ/MQM SEL,MQ CTL/AD"
; 1647 AR←2 "ADA EN/0S,AD/A+1,AR/AD*2"
; 1648 ARX←1B1 "ADA EN/0S,AD/A+1,ARX/ADX*.25"
; 1649
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 33
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- ADDRESS MANIPULATION
; 1650 .TOC "MACROS -- ADDRESS MANIPULATION"
; 1651
; 1652 GEN AR+XR "FMADR/XR,ADB/FM,ADA/AR,AD/A+B"
; 1653 GEN ARX+XR "FMADR/XR,ADB/FM,ADA/ARX,AD/A+B"
; 1654 VMA←AR+XR "GEN AR+XR,VMA/AD"
; 1655 VMA←ARX+XR "GEN ARX+XR,VMA/AD"
; 1656 AR←AR+XR "GEN AR+XR,AR/AD"
; 1657 AR←ARX+XR "GEN ARX+XR,AR/AD"
; 1658 VMA←ARX "ADA/ARX,AD/A,VMA/AD"
; 1659 VMA←AR "ADA/AR,AD/A,VMA/AD"
; 1660 VMA←AR+1 "ADA/AR,AD/A+1,VMA/AD"
; 1661 VMA←AR-1 "ADA/AR,AD/A-1,VMA/AD"
; 1662 VMA←MQ "ADA/MQ,AD/A,VMA/AD"
; 1663 VMA←BR "ADB/BR,AD/B,VMA/AD"
; 1664 VMA←AR+BR "ADA/AR,ADB/BR,AD/A+B,VMA/AD"
; 1665 VMA←ARX+BR "ADA/ARX,ADB/BR,AD/A+B,VMA/AD"
; 1666 VMA←AC3 "FMADR/AC3,ADB/FM,AD/B,VMA/AD"
; 1667
; 1668 VMA←PC+1 "VMA/PC+1"
; 1669 VMA←VMA-1 "VMA/VMA,COND/VMA DEC"
; 1670 VMA←VMA+1 "VMA/VMA,COND/VMA INC"
; 1671 VMA←# "VMA/1,COND/VMA←#"
; 1672 VMA←40 "VMA/1,COND/VMA←#,#/40"
; 1673 VMA←41 "VMA/1,COND/VMA←#,#/41"
; 1674 VMA←40+PI*2 "VMA/1,COND/VMA←#+PI*2,#/40"
; 1675 VMA←41+PI*2 "VMA/1,COND/VMA←#+PI*2,#/41"
; 1676 VMA←420+TRAP "VMA/1,COND/VMA←#+TRAP,#/420"
; 1677 VMA←430+MODE "VMA/1,COND/VMA←#+MODE,#/430"
; 1678 VMA←#+AR32-35 "VMA/1,COND/VMA←#+AR32-35"
; 1679 PC←VMA "SPEC/LOAD PC"
; 1680
; 1681 AR←PC "ADA/PC,AD/A,AR/AD"
; 1682 AR←PC+1 "ADA/PC,AD/A+1,AR/AD,SPEC/SAVE FLAGS"
; 1683 ARR←PC+1 "ADA/PC,AD/A+1,AR/AD"
; 1684 ARX←PC "ADA/PC,AD/A,ARX/AD"
; 1685
; 1686 REQ VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/1,MEM/AD FUNC"
; 1687 VMA←VMA HELD "COND/SEL VMA,ADA/PC,AD/A,VMA/AD"
; 1688 AR←VMA HELD "COND/SEL VMA,AR←PC"
; 1689 ARX←VMA HELD "COND/SEL VMA,ARX←PC"
; 1690
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 34
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- LONG (72-BIT) ARITHMETIC
; 1691 .TOC "MACROS -- LONG (72-BIT) ARITHMETIC"
; 1692
; 1693 AR←AR+1 LONG "AR←AR+1,ARX/ADX,SPEC/AD LONG"
; 1694 AR←BR+1 LONG "ADA EN/0S,ADB/BR,AD/A+B+1,AR/AD,ARX/ADX,SPEC/AD LONG"
; 1695 GEN -AR LONG "ADB/AR*4,ADA EN/0S,AD/A-B,SPEC/AD LONG"
; 1696 AR←AD*.25 LONG "AR/AD*.25,ARX/ADX*.25,SPEC/AD LONG"
; 1697 AR←-AR LONG "GEN -AR LONG,AR←AD*.25 LONG"
; 1698 AR←-BR LONG "ADA EN/0S,ADB/BR,AD/A-B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 1699 AR←BR*2 LONG "ADB/BR*2,AD/B,AR/AD,ARX/ADX"
; 1700 AR←AR+BR LONG "AR←AR+BR,ARX/ADX,SPEC/AD LONG"
; 1701 AR←AR-BR LONG "AR←AR-BR,ARX/ADX,SPEC/AD LONG"
; 1702 AR←2(AR+BR) LONG "AR←2(AR*BR),AD/A+B,ARX/ADX*2,SPEC/AD LONG"
; 1703 AR←AR*5 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR/AD,ARX/ADX,SPEC/AD LONG"
; 1704 AR←AR*10 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR/AD*2,ARX/ADX*2,SPEC/AD LONG"
; 1705 AR←AR*1.25 LONG "ADA/AR,ADB/AR*4,AD/A+B,AR←AD*.25 LONG"
; 1706 AR←AR*.25 LONG "ADA/AR,AD/A,AR/AD*.25,ARX/ADX*.25"
; 1707
; 1708 .TOC "MACROS -- HALFWORD MANIPULATION"
; 1709
; 1710 AR←AR SWAP "SH/AR SWAP,AR/SH"
; 1711 ARX←AR SWAP "SH/AR SWAP,ARX/SH"
; 1712 MQ←AR SWAP "SH/AR SWAP,MQ/SH"
; 1713 ARL←AC0 "FMADR/AC0,ADB/FM,AD/B,COND/ARL IND,ARL/AD"
; 1714 ARL←ARX "COND/ARL IND,ARL/AD,ADA/ARX,AD/A"
; 1715 ARR←AC0 "AR←AC0"
; 1716 ARL←ARR "COND/ARL IND,ARL/SH,SH/AR SWAP"
; 1717 ARL←ARR.S "SPEC/ARL IND,ARL/SH,SH/AR SWAP"
; 1718 ARL←ARR.M "MEM/ARL IND,ARL/SH,SH/AR SWAP"
; 1719 ARR←ARL "SH/AR SWAP,AR/SH"
; 1720 ARR←ARR "AR/AR"
; 1721 ARL←ARL "COND/ARL IND,ARL/ARL"
; 1722 ARL←ARL.M "MEM/ARL IND,ARL/ARL"
; 1723 ARL←ARXL "SPEC/ARL IND,SH/ARX,ARL/SH"
; 1724 ARL←ARX (ADX) "ADA EN/EN,AD/A,MEM/ARL IND,ARL/ADX"
; 1725 ARR←0S "AR←0S"
; 1726 ARL←0S "COND/ARL IND,CLR/ARL"
; 1727 ARR←1S "AR←1S"
; 1728 ARL←1S "AD/1S,COND/ARL IND,ARL/AD"
; 1729 ARL←1S.M "AD/1S,MEM/ARL IND,ARL/AD"
; 1730 ARL←BRL "ADB/BR,AD/B,COND/ARL IND,ARL/AD"
; 1731 ARL←BRL.S "ADB/BR,AD/B,SPEC/ARL IND,ARL/AD"
; 1732 ARL←SHIFT "MEM/ARL IND,SH/SHIFT AR!ARX,ARL/SH"
; 1733
; 1734 ARR←ARX "AR←ARX"
; 1735 ARL←SHIFT.C "COND/ARL IND,ARL/SH,SH/SHIFT AR!ARX"
; 1736
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 35
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- SC
; 1737 .TOC "MACROS -- SC"
; 1738
; 1739 CLR SC "SCADA EN/0S,SCAD/A,SC/SCAD"
; 1740 SC←# "SCADA/#,SCAD/A,SC/SCAD"
; 1741 SC←#-SC "SCADA/#,SCADB/SC,SCAD/A-B,SC/SCAD"
; 1742 SC←#+SC "SCADA/#,SCADB/SC,SCAD/A+B,SC/SCAD"
; 1743 SC←SC AND # "SCADA/#,SCADB/SC,SCAD/AND,SC/SCAD"
; 1744 SC←# OR SC "SCADA/#,SCADB/SC,SCAD/OR,SC/SCAD"
; 1745 SC←P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,SC/SCAD"
; 1746 SC←# AND S "SCADA/#,SCADB/AR6-11,SCAD/AND,SC/SCAD"
; 1747 SC←P-# "SCADA/AR0-5,SCADB/#,SCAD/A-B,SC/SCAD"
; 1748 SC←S "SCADB/AR6-11,SCADA EN/0S,SCAD/A+B,SC/SCAD"
; 1749 SC←P "SCADA/AR0-5,SCAD/A,SC/SCAD"
; 1750 SC←-SC "SCADA EN/0S,SCADB/SC,SCAD/A-B,SC/SCAD"
; 1751 SC←-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 1752 SC←1 "SCADA EN/0S,SCAD/A+1,SC/SCAD"
; 1753 SC←1S "SCADA EN/0S,SCAD/A-1,SC/SCAD"
; 1754 SC←FE "SPEC/SCM ALT,SC/FE"
; 1755 SC←FE+1 "SCADA/FE,SCAD/A+1,SC/SCAD"
; 1756 SC←FE-1 "SCADA/FE,SCAD/A-1,SC/SCAD"
; 1757 SC←FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,SC/SCAD"
; 1758 SC←FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,SC/SCAD"
; 1759 SC←FE-SC-1 "SCADA/FE,SCADB/SC,SCAD/A-B-1,SC/SCAD"
; 1760 SC←FE+# "SCADA/FE,SCADB/#,SCAD/A+B,SC/SCAD"
; 1761 SC←FE AND # "SCADA/FE,SCADB/#,SCAD/AND,SC/SCAD"
; 1762 SC←EA "SPEC/SCM ALT,SC/AR SHIFT"
; 1763 SC←AR0-8 AND # "SCADA/#,SCADB/AR0-8,SCAD/AND,SC/SCAD"
; 1764 SC←EXP "SCADA/AR EXP,SCAD/A,SC/SCAD"
; 1765 SC←EXP+1 "SCADA/AR EXP,SCAD/A+1,SC/SCAD"
; 1766 SC←EXP-1 "SCADA/AR EXP,SCAD/A-1,SC/SCAD"
; 1767 SC←EXP+SC "SCADA/AR EXP,SCADB/SC,SCAD/A+B,SC/SCAD"
; 1768 SC←EXP-# "SCADA/AR EXP,SCADB/#,SCAD/A-B,SC/SCAD"
; 1769 SC←EXP-SC "SCADA/AR EXP,SCADB/SC,SCAD/A-B,SC/SCAD"
; 1770
; 1771 SC←AR0-8 "SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,SC/SCAD"
; 1772
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 36
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- FE
; 1773 .TOC "MACROS -- FE"
; 1774
; 1775 FE←S "SCADA EN/0S,SCADB/AR6-11,SCAD/A+B,FE/SCAD"
; 1776 FE←# AND S "SCADA/#,SCADB/AR6-11,SCAD/AND,FE/SCAD"
; 1777 FE←P "SCADA/AR0-5,SCAD/A,FE/SCAD"
; 1778 FE←SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,FE/SCAD"
; 1779 FE←-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,FE/SCAD"
; 1780 FE←# "SCADA/#,SCAD/A,FE/SCAD"
; 1781 FE←+# "SCADA EN/0S,SCADB/#,SCAD/A+B,FE/SCAD"
; 1782 FE←#+SC "SCADA/#,SCADB/SC,SCAD/A+B,FE/SCAD"
; 1783 FE←#-SC "SCADA/#,SCADB/SC,SCAD/A-B,FE/SCAD"
; 1784 FE←FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,FE/SCAD"
; 1785 FE←FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,FE/SCAD"
; 1786 FE←FE+# "SCADA/FE,SCADB/#,SCAD/A+B,FE/SCAD"
; 1787 FE←FE-# "SCADA/FE,SCADB/#,SCAD/A-B,FE/SCAD"
; 1788 FE←FE OR # "SCADA/FE,SCADB/#,SCAD/OR,FE/SCAD"
; 1789 FE←FE AND # "SCADA/FE,SCADB/#,SCAD/AND,FE/SCAD"
; 1790 FE←EXP "SCADA/AR EXP,SCAD/A,FE/SCAD"
; 1791 FE←EXP-1 "SCADA/AR EXP,SCAD/A-1,FE/SCAD"
; 1792 FE←EXP+SC "SCADA/AR EXP,SCADB/SC,SCAD/A+B,FE/SCAD"
; 1793 FE←EXP-# "SCADA/AR EXP,SCADB/#,SCAD/A-B,FE/SCAD"
; 1794 FE←AR0-8 "SCADA EN/0S,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 1795 FE←AR0-8 COMP "SCADA EN/0S,SCADB/AR0-8,SCAD/A-B-1,FE/SCAD"
; 1796 FE←#+AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/A+B,FE/SCAD"
; 1797 FE←AR0-8 AND # "SCADA/#,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 1798 FE←FE OR AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/OR,FE/SCAD"
; 1799 FE←FE AND AR0-8 "SCADA/FE,SCADB/AR0-8,SCAD/AND,FE/SCAD"
; 1800 GEN P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND"
; 1801 GEN P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND"
; 1802 FE←P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,FE/SCAD"
; 1803 FE←P+SC "SCADA/AR0-5,SCADB/SC,SCAD/A+B,FE/SCAD"
; 1804 FE←FE SHRT "COND/FE SHRT,FE/0"
; 1805 CLR FE "SCADA EN/0S,SCAD/A,FE/SCAD"
; 1806 FE←-1 "SCADA EN/0S,SCAD/A-1,FE/SCAD"
; 1807 FE←FE+1 "SCADA/FE,SCAD/A+1,FE/SCAD"
; 1808 FE←FE-1 "SCADA/FE,SCAD/A-1,FE/SCAD"
; 1809 GEN SC "SCADB/SC,SCADA EN/0S,SCAD/A+B"
; 1810 GEN FE "SCADA/FE,SCAD/A"
; 1811 GEN FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B"
; 1812 GEN FE AND SC "SCADA/FE,SCADB/SC,SCAD/AND"
; 1813 GEN FE AND # "SCADA/FE,SCADB/#,SCAD/AND"
; 1814 GEN FE-# "SCADA/FE,SCADB/#,SCAD/A-B"
; 1815 GEN #+SC "SCADA/#,SCADB/SC,SCAD/A+B"
; 1816 GEN #+AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/A+B"
; 1817 GEN # AND AR0-8 "SCADA/#,SCADB/AR0-8,SCAD/AND"
; 1818
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 37
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- AR MIXER MIXER (BITS 0-8)
; 1819 .TOC "MACROS -- AR MIXER MIXER (BITS 0-8)"
; 1820
; 1821 GEN P-# "SCADA/AR0-5,SCADB/#,SCAD/A-B"
; 1822 P←SCAD "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 1823 P←SCAD.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 1824 P←SCAD.C "COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD POS"
; 1825 P←SCAD# "COND/LD AR0-8,AR/ARMM,ARMM/SCAD POS"
; 1826 P←P-S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A-B,P←SCAD.M"
; 1827 P←P+S "SCADA/AR0-5,SCADB/AR6-11,SCAD/A+B,P←SCAD"
; 1828 P←P+1 "SCADA/AR0-5,SCAD/A+1,P←SCAD"
; 1829 P←SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,P←SCAD.M"
; 1830 P←SC# "SCADA EN/0S,SCADB/SC,SCAD/A+B,P←SCAD#"
; 1831 P←-SC "SCADA EN/0S,SCADB/SC,SCAD/A-B,P←SCAD.M"
; 1832 P←P OR SC "SCADA/AR0-5,SCADB/SC,SCAD/OR,P←SCAD.M"
; 1833 P←P AND SC "SCADA/AR0-5,SCADB/SC,SCAD/AND,P←SCAD.M"
; 1834 P←P OR # "SCADA/AR0-5,SCADB/#,SCAD/OR,P←SCAD#"
; 1835 P←P AND # "SCADA/AR0-5,SCADB/#,SCAD/AND,P←SCAD#"
; 1836 P←P+# "SCADA/AR0-5,SCADB/#,SCAD/A+B,P←SCAD#"
; 1837 P←P-# "SCADA/AR0-5,SCADB/#,SCAD/A-B,P←SCAD#"
; 1838 P←FE "SCADA/FE,SCAD/A,P←SCAD"
; 1839 P←# "SCADA/#,SCAD/A,P←SCAD#"
; 1840 P←FE-S "SCADA/FE,SCADB/AR6-11,SCAD/A-B,P←SCAD.C"
; 1841 P←FE+SC "SCADA/FE,SCADB/SC,SCAD/A+B,P←SCAD.C"
; 1842 P←FE OR SC "SCADA/FE,SCADB/SC,SCAD/OR,P←SCAD"
; 1843 EXP←SCAD "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 1844 EXP←SCAD.C "COND/REG CTL,AR CTL/AR0-8 LOAD,AR/ARMM,ARMM/SCAD EXP"
; 1845 EXP TST "COND/REG CTL,EXP TST/AR←EXP"
; 1846 CLR P "SCADA EN/0S,SCAD/A,P←SCAD"
; 1847 P←1S "SCADA EN/0S,SCAD/A-1,P←SCAD"
; 1848 CLR EXP "SCADA EN/0S,SCAD/A,EXP←SCAD"
; 1849 EXP←1 "SCADA EN/0S,SCAD/A+1,EXP←SCAD"
; 1850 EXP←SIGN "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP←SIGN"
; 1851 EXP←SIGN.C "COND/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP←SIGN"
; 1852 EXP←SIGN.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/EXP←SIGN"
; 1853 EXP←SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,EXP←SCAD"
; 1854 EXP←-SC-1 "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP←SCAD"
; 1855 EXP←FE TST "SCADA/FE,SCAD/A,EXP←SCAD.C,EXP TST"
; 1856 EXP←-SC-1 TST "SCADA EN/0S,SCADB/SC,SCAD/A-B-1,EXP←SCAD.C,EXP TST"
; 1857 AR0-8←SCAD "SPEC/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 1858 AR0-8←SCAD# "ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 1859 AR0-8←SCAD.M "MEM/ARL IND,ARL/ARMM,AR0-8/LOAD,ARMM/SCAD EXP"
; 1860 AR0-8←SCAD.R "ARMM/SCAD EXP,AR/ARMM,COND/REG CTL,AR CTL/AR0-8 LOAD"
; 1861 AR0-8←SC "SCADA EN/0S,SCADB/SC,SCAD/A+B,AR0-8←SCAD"
; 1862 AR0-8←FE "SCADA/FE,SCAD/A,AR0-8←SCAD"
; 1863 AR0-8←FE.R "GEN FE,AR0-8←SCAD.R"
; 1864 AR0-8←FE# "SCADA/FE,SCAD/A,ARMM/SCAD EXP,AR/ARMM,COND/LD AR0-8"
; 1865 AR0-8←FE-SC "SCADA/FE,SCADB/SC,SCAD/A-B,AR0-8←SCAD.M"
; 1866 AR0-8←FE+# "SCADA/FE,SCADB/#,SCAD/A+B,AR0-8←SCAD#"
; 1867 AR0-8←FE OR # "SCADA/FE,SCADB/#,SCAD/OR,AR0-8←SCAD#"
; 1868 AR0-8←# "COND/LD AR0-8,AR/ARMM,ARMM/#"
; 1869
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 38
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- MICROPROGRAM SKIPS
; 1870 .TOC "MACROS -- MICROPROGRAM SKIPS"
; 1871
; 1872 SKP AR0 "SKIP/AR0"
; 1873 SKP ARX0 "SKIP/ARX0"
; 1874 SKP BR0 "SKIP/BR0"
; 1875 SKP AD0 "SKIP/AD0"
; 1876 SKP ADX0 "SKIP/ADX0"
; 1877 SKP AR18 "SKIP/AR18"
; 1878 SKP SCAD0 "SKIP/SCAD0"
; 1879 SKP AD NE "SKIP/AD#0"
; 1880 SKP SCAD NE "SKIP/SCAD#0"
; 1881 SKP CRY0 "SKIP/AD CRY0"
; 1882 SKP INTRPT "SKIP/INTRPT"
; 1883 SKP AC#0 "SKIP/AC#0"
; 1884 SKP -START "SKIP/-START"
; 1885 SKP RUN "SKIP/RUN"
; 1886 SKP KERNEL "SKIP/KERNEL"
; 1887 SKP USER "SKIP/USER"
; 1888 SKP P!S XCT "SKIP/P!S XCT"
; 1889 SKP RPW "SKIP/RPW REF"
; 1890 SKP FETCH "SKIP/FETCH"
; 1891 SKP SC LE 36 "SCADB/SC,SCADA/#,#/-36.,SCAD/A+B,SKIP/SCAD0"
; 1892 SKP SC NE "SCADB/SC,SCADA EN/0S,SCAD/A+B,SKIP/SCAD#0"
; 1893 SKP EXP NE "SCADA/AR EXP,SCAD/A,SKIP/SCAD#0"
; 1894 SKP P NE "SCADA/AR0-5,SCAD/A,SKIP/SCAD#0"
; 1895 SKP AR GT BR "ADA/AR,ADB/BR,AD/XOR,SKIP/AD CRY0"
; 1896 SKP ARX LT BRX "ADA EN/EN,ADB/BR,AD/A-B,SKIP/ADX0"
; 1897 SKP ARX LE BRX "ADA EN/EN,ADB/BR,AD/A-B-1,SKIP/ADX0"
; 1898 SKP MQ EQ -1 "ADA/MQ,AD/CRY A EQ -1,SKIP/AD CRY0"
; 1899 SKP AR SIG "ADA/AR,AD/A+XCRY,SPEC/XCRY AR0,SKIP/AD#0"
; 1900 SKP AC0- "FMADR/AC0,ADB/FM,AD/B,SKIP/AD0"
; 1901 SKP AC0+ "FMADR/AC0,ADB/FM,AD/SETCB,SKIP/AD0"
; 1902 SKP AR1 "ADA/AR,AD/A*2,SKIP/AD0"
; 1903 SKP AR2 "ADB/AR*4,AD/B,SKIP/AD0"
; 1904 SKP AR6 "SCADB/AR6-11,SCADA/#,#/40,SCAD/AND,SKIP/SCAD#0"
; 1905 SKP AR NE "ADA/AR,AD/CRY A#0,SKIP/AD CRY0"
; 1906 SKP ARX2 "ADB/AR*4,AD/B,SKIP/ADX0"
; 1907 SKP ARX NE "ADA/ARX,AD/CRY A#0,SKIP/AD CRY0"
; 1908 SKP BR EQ "ADA EN/0S,ADB/BR,AD/CRY A GE B,SKIP/AD CRY0"
; 1909 SKP BR EQ -1 "ADA EN/0S,ADB/BR,AD/A+B+1,SKIP/AD CRY0"
; 1910 SKP ARX+MQ NE "ADA/MQ,AD/CRY A#0,SPEC/AD LONG,SKIP/AD CRY0"
; 1911 SKP AR EQ "ADA EN/0S,ADB/AR*4,AD/ORCB+1,SKIP/AD CRY0"
; 1912
; 1913 SKP SC0 "SKIP/SC0"
; 1914
; 1915 .TOC "MACROS -- CRY0 GENERATORS"
; 1916
; 1917 NO CRY "AD/SETCA"
; 1918 TEST AR "ADA/AR,AD/CRY A#0"
; 1919 TEST ARX "ADA/ARX,AD/CRY A#0"
; 1920 TEST AR.AC0 "FMADR/AC0,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 1921 TEST AR.BR "ADB/BR,ADA/AR,AD/CRY A.B#0"
; 1922 TEST AR.MSK "MSK,ADB/FM,ADA/AR,AD/CRY A.B#0"
; 1923 TEST BRL "ADA EN/0S,ADB/BR,AD/ORCB+1,GEN CRY18"
; 1924
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 39
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- SUBROUTINE CALL AND RETURNS
; 1925 .TOC "MACROS -- SUBROUTINE CALL AND RETURNS"
; 1926
; 1927 CALL "SPEC/CALL"
; 1928 CALL.M "MEM/ARL IND,CALL/CALL"
; 1929 CALL.S "SPEC/ARL IND,CALL/CALL"
; 1930 CALL.C "COND/ARL IND,CALL/CALL"
; 1931
; 1932 RETURN0 "DISP/RETURN,J/0"
; 1933 RETURN1 "DISP/RETURN,J/1"
; 1934 RETURN2 "DISP/RETURN,J/2"
; 1935 RETURN3 "DISP/RETURN,J/3"
; 1936 RETURN4 "DISP/RETURN,J/4"
; 1937 RETURN5 "DISP/RETURN,J/5"
; 1938 RETURN6 "DISP/RETURN,J/6"
; 1939 RETURN7 "DISP/RETURN,J/7"
; 1940 RETURN10 "DISP/RETURN,J/10"
; 1941 RETURN12 "DISP/RETURN,J/12"
; 1942
; 1943 .TOC "MACROS -- DISPATCHES"
; 1944
; 1945 IR DISP "DISP/DRAM J"
; 1946 B DISP "DISP/DRAM B"
; 1947 EA MOD DISP "DISP/EA MOD"
; 1948 EA TYPE DISP "DISP/EA TYPE"
; 1949 .IFNOT/OLD.TRK
; 1950 NXT INSTR "MEM/MB WAIT,DISP/NICOND,J/NEXT"
; 1951 .IF/OLD.TRK
; 1952 NXT INSTR "MEM/MB WAIT,PC←VMA,J/TRC1"
; 1953 .ENDIF/OLD.TRK
; 1954 .IF/NXT.INSTR.BITES
; 1955 NXT INSTR AFTER AC1 "J/FINI"
; 1956 .IF/JPC
; 1957 NXT INSTR AFTER JPC "J/FINI"
; 1958 .ENDIF/JPC
; 1959 .IFNOT/NXT.INSTR.BITES
; 1960 NXT INSTR AFTER AC1 "NXT INSTR"
; 1961 .IF/JPC
; 1962 NXT INSTR AFTER JPC "NXT INSTR"
; 1963 .ENDIF/JPC
; 1964 .ENDIF/NXT.INSTR.BITES
; 1965 SH DISP "SH/SHIFT AR!ARX,DISP/SH0-3"
; 1966 AR0-3 DISP "SH/AR,DISP/SH0-3"
; 1967 AR18-21 DISP "SH/AR SWAP,DISP/SH0-3"
; 1968 ARX0-3 DISP "SH/ARX,DISP/SH0-3"
; 1969 BYTE DISP "DISP/BYTE"
; 1970 SIGNS DISP "DISP/SIGNS"
; 1971 SR DISP "DISP/SR"
; 1972 PF DISP "DISP/PG FAIL"
; 1973 NORM "DISP/NORM"
; 1974 NORM AR "ADB/AR*4,AD/B,DISP/NORM"
; 1975 NORM -AR "ADA EN/0S,ADB/AR*4,AD/A-B,AR/AD*.25,ARX/ADX*.25,DISP/NORM"
; 1976
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 40
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- I/O OPERATIONS ON EBUS
; 1977 .TOC "MACROS -- I/O OPERATIONS ON EBUS"
; 1978
; 1979 AR←EBUS "AR/EBUS,TIME/5T"
; 1980 IO INIT "COND/EBUS CTL,EBUS CTL/IO INIT"
; 1981 SET DATAO "COND/EBUS CTL,EBUS CTL/DATAO"
; 1982 SET DATAI "COND/EBUS CTL,EBUS CTL/DATAI,AD/0S,AR/AD"
; 1983 REQ EBUS "COND/EBUS CTL,EBUS CTL/REQ EBUS"
; 1984 REL EBUS "COND/EBUS CTL,EBUS CTL/REL EBUS"
; 1985 DROP EBUS REQ "COND/EBUS CTL,EBUS CTL/0"
; 1986 SKP -EBUS GRANT "SKIP/-EBUS GRANT"
; 1987 SKP -EBUS XFER "SKIP/-EBUS XFER"
; 1988 SET EBUS DEMAND "COND/EBUS CTL,EBUS CTL/EBUS DEMAND"
; 1989 CLR EBUS DEMAND "COND/EBUS CTL,EBUS CTL/EBUS NODEMAND"
; 1990 SKP IO LEGAL "SKIP/IO LEGAL"
; 1991 SKP PI CYCLE "SKIP/PI CYCLE"
; 1992 GET ECL EBUS "COND/EBUS CTL,EBUS CTL/GRAB EEBUS"
; 1993 REL ECL EBUS "COND/EBUS CTL,EBUS CTL/REL EEBUS"
; 1994
; 1995 DIAG OUT "COND/DIAG FUNC,ADA/AR,AD/A"
; 1996 DIAG IN "COND/DIAG FUNC,AR/EBUS"
; 1997 AR←EBUS REG "DIAG IN,DIAG FUNC/RD EBUS REG"
; 1998 AR05←SCD ADDR BRK CYC "DIAG IN,DIAG FUNC/537"
; 1999 AR03-04←SCD TRAP CYC "DIAG IN,DIAG FUNC/530"
; 2000 DATAO APR "DIAG OUT,DIAG FUNC/DATAO APR"
; 2001 DATAI APR(L) "DIAG IN,DIAG FUNC/DATAI APR"
; 2002 CONO APR "DIAG OUT,DIAG FUNC/CONO APR"
; 2003 CONI APR(L) "DIAG IN,DIAG FUNC/CONI APR(L)"
; 2004 CONI APR(R) "DIAG IN,DIAG FUNC/CONI APR(R)"
; 2005 CONO PI "DIAG OUT,DIAG FUNC/CONO PI"
; 2006 CONI PI(L) "DIAG IN,DIAG FUNC/CONI PI(L)"
; 2007 CONI PI(R) "DIAG IN,DIAG FUNC/CONI PI(R)"
; 2008 CONI PI(PAR) "DIAG IN,DIAG FUNC/CONI PI(PAR)"
; 2009 DATAO PAG(L) "DIAG OUT,DIAG FUNC/DATAO PAG"
; 2010 DATAI PAG(L) "DIAG IN,DIAG FUNC/DATAI PAG(L)"
; 2011 CONO PAG "DIAG OUT,DIAG FUNC/CONO PAG"
; 2012 CONI PAG "DIAG IN,DIAG FUNC/CONI PAG"
; 2013 AR←SERIAL "AR/ARMM,COND/REG CTL,AR CTL/ARR LOAD"
; 2014 LD PREV CTXT "COND/DIAG FUNC,DIAG FUNC/LD PCS+CWSX,ADA/PC,AD/A"
; 2015
; 2016 AR←TIME BASE "DIAG IN,DIAG FUNC/RD TIME"
; 2017 RD+CLR TB "SPEC/MTR CTL,AR←TIME BASE"
; 2018 AR←PERF CNT "DIAG IN,DIAG FUNC/RD PERF CNT"
; 2019 RD+CLR PA "SPEC/MTR CTL,AR←PERF CNT"
; 2020 AR←EBOX CNT "DIAG IN,DIAG FUNC/RD EBOX CNT"
; 2021 RD+CLR E CNT "SPEC/MTR CTL,AR←EBOX CNT"
; 2022 AR←CACHE CNT "DIAG IN,DIAG FUNC/RD CACHE CNT"
; 2023 RD+CLR C CNT "SPEC/MTR CTL,AR←CACHE CNT"
; 2024 AR←INTERVAL "DIAG IN,DIAG FUNC/RD INTRVL"
; 2025 AR←PERIOD "DIAG IN,DIAG FUNC/RD PERIOD"
; 2026 CONI MTR "DIAG IN,DIAG FUNC/CONI MTR"
; 2027 AR←MTR REQ "DIAG IN,DIAG FUNC/RD MTR REQ"
; 2028 CONO TIM "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO TIM"
; 2029 CONO MTR "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/CONO MTR"
; 2030 BLKO TIM(L) "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA LEFT"
; 2031 BLKO TIM(R) "SPEC/MTR CTL,DIAG OUT,DIAG FUNC/LD PA RIGHT"
; 2032
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 41
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- MEMORY ACCESS
; 2033 .TOC "MACROS -- MEMORY ACCESS"
; 2034
; 2035 LOAD AR "MEM/LOAD AR"
; 2036 LOAD ARX "MEM/LOAD ARX"
; 2037 LOAD IR "COND/LOAD IR"
; 2038 LOAD AR VIA RPW "MEM/RPW"
; 2039 EXIT "DISP/DRAM B,MEM/B WRITE,J/ST0"
; 2040 STORE "MEM/WRITE"
; 2041 B WRITE "DISP/DRAM B,MEM/B WRITE"
; 2042 I FETCH "VMA/PC+1,MEM/FETCH,FETCH/UNCOND"
; 2043 FETCH "MEM/FETCH,FETCH/UNCOND"
; 2044 FETCH+1 "COND/VMA INC,MEM/FETCH,FETCH/UNCOND"
; 2045 COMP FETCH "AD/XOR,VMA/PC+1,MEM/FETCH,FETCH/COMP"
; 2046 SKIP FETCH "ADA/AR,AD/A,VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 2047 JUMP FETCH "VMA/PC+1,MEM/FETCH,FETCH/JUMP"
; 2048 TEST FETCH "VMA/PC+1,MEM/FETCH,FETCH/TEST"
; 2049 JFCL FETCH "VMA/PC+1,MEM/FETCH,FETCH/JFCL"
; 2050 CMS FETCH "VMA/PC+1,MEM/FETCH,FETCH/SKIP"
; 2051 A READ "VMA/PC+1,DISP/DRAM A RD,MEM/A RD,J/0"
; 2052 A INDRCT "MEM/A IND,VMA/1"
; 2053 BYTE READ "MEM/BYTE RD"
; 2054 BYTE INDRCT "MEM/BYTE IND,VMA/1"
; 2055
; 2056 MB WAIT "MEM/MB WAIT"
; 2057 FIN STORE "FMADR/VMA" ;FINISH STOREING
; 2058 FIN XFER "FMADR/VMA,ADB/FM,AD/B" ;FINISH XFER WHILE STARTING ANOTHER
; 2059 AR←MEM "MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
; 2060 ARX←MEM "MEM/MB WAIT,FMADR/VMA,ADB/FM,AD/B"
; 2061 MEM←AR "FMADR/VMA,MEM/MB WAIT"
; 2062 EPT REF "SPEC/SP MEM CYCLE,SP MEM/EPT"
; 2063 EPT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/EPT FETCH"
; 2064 UPT REF "SPEC/SP MEM CYCLE,SP MEM/UPT"
; 2065 UPT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/UPT FETCH"
; 2066 PT REF "SPEC/SP MEM CYCLE,SP MEM/PT"
; 2067 PT FETCH "MEM/LOAD ARX,SPEC/SP MEM CYCLE,SP MEM/PT FETCH"
; 2068 PHYS REF "SPEC/SP MEM CYCLE,SP MEM/UNPAGED"
; 2069 EXEC REF "SPEC/SP MEM CYCLE,SP MEM/EXEC"
; 2070 USER REF "SPEC/SP MEM CYCLE,SP MEM/USER"
; 2071 MAP "MEM/REG FUNC,MREG FNC/MAP"
; 2072 LOAD EBR "MEM/REG FUNC,MREG FNC/LOAD EBR"
; 2073 LOAD UBR "MEM/REG FUNC,MREG FNC/LOAD UBR"
; 2074 READ EBR "MEM/REG FUNC,MREG FNC/READ EBR"
; 2075 READ UBR "MEM/REG FUNC,MREG FNC/READ UBR"
; 2076 READ ERA "MEM/REG FUNC,MREG FNC/READ ERA"
; 2077 SWEEP CACHE "MEM/REG FUNC,MREG FNC/LOAD CCA"
; 2078 SBUS DIAG "MEM/REG FUNC,MREG FNC/SBUS DIAG"
; 2079 WR REFILL RAM "MEM/REG FUNC,MREG FNC/WR REFILL RAM"
; 2080
; 2081 CLR PT LINE "COND/MBOX CTL,MBOX CTL/CLR PT LINE"
; 2082 WR PT ENTRY "COND/MBOX CTL,MBOX CTL/PT WR"
; 2083 PT SEL←INVAL "COND/MBOX CTL,MBOX CTL/PT DIR CLR"
; 2084 PT SEL←NORMAL "COND/MBOX CTL,MBOX CTL/NORMAL"
; 2085
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 42
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- FLAG CONTROL
; 2086 .TOC "MACROS -- FLAG CONTROL"
; 2087
; 2088 TRAP1 "COND/PCF←#,PC FLAGS/TRAP1"
; 2089 TRAP2 "COND/PCF←#,PC FLAGS/TRAP2"
; 2090 TRAP3 "COND/PCF←#,PC FLAGS/TRAP3"
; 2091 SET FPD "COND/PCF←#,PC FLAGS/FPD"
; 2092 CLR FPD "SPEC/CLR FPD"
; 2093 SET AROV "COND/PCF←#,PC FLAGS/AROV"
; 2094 SET NO DIVIDE "COND/PCF←#,PC FLAGS/DIV CHK"
; 2095 SET FLOV "COND/PCF←#,PC FLAGS/FLOV"
; 2096 SET FL NO DIV "COND/PCF←#,PC FLAGS/FDV CHK"
; 2097 EXP TEST "COND/REG CTL,EXP TST/AR←EXP"
; 2098
; 2099 GEN CRY18 "SPEC/GEN CRY18"
; 2100 INH CRY18 "SPEC/INH CRY18"
; 2101 AD LONG "SPEC/AD LONG"
; 2102 AD FLAGS "COND/AD FLAGS"
; 2103 SET FLAGS←AR "SPEC/FLAG CTL,FLAG CTL/SET FLAGS"
; 2104 RSTR FLAGS←AR "SPEC/FLAG CTL,FLAG CTL/RSTR FLAGS"
; 2105 JFCL T "SPEC/FLAG CTL,FLAG CTL/JFCL"
; 2106 JFCL S "SPEC/FLAG CTL,FLAG CTL/JFCL+LD"
; 2107 DISMISS "SPEC/FLAG CTL,FLAG CTL/DISMISS"
; 2108 PORTAL "SPEC/FLAG CTL,FLAG CTL/PORTAL"
; 2109 HALT "SPEC/FLAG CTL,FLAG CTL/HALT"
; 2110
; 2111 SET PI CYCLE "COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE"
; 2112 SET PC+1 INH "COND/SPEC INSTR,SPEC INSTR/INH PC+1"
; 2113 TAKE INTRPT "SKIP/-MTR REQ,J/MTRINT"
; 2114 ABORT INSTR "COND/SPEC INSTR,SPEC INSTR/INSTR ABORT"
; 2115 SET SXCT "COND/SPEC INSTR,SPEC INSTR/SXCT"
; 2116 SET PXCT "COND/SPEC INSTR,SPEC INSTR/PXCT"
; 2117 SET HALTED "COND/SPEC INSTR,SPEC INSTR/HALTED"
; 2118 CONTINUE "COND/SPEC INSTR,SPEC INSTR/CONT"
; 2119 SET CONS XCT "COND/SPEC INSTR,SPEC INSTR/CONS XCT"
; 2120
; 2121 SET IO PF "COND/MBOX CTL,MBOX CTL/SET IO PF ERR"
; 2122
; 2123
; 2124 #OPTIONS "Q400/Q,Q200/Q,Q100/Q,Q40/Q,Q20/Q,Q10/Q,Q4/Q,Q2/Q,Q1/Q"
; 2125
; 2126 BAG-BITING NO-OP "FORCE AR-ARX" ;TO FIX GODDAMN TIMING SCREWS
; 2127
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 43
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 MACROS -- STATE REGISTER CONTROL
; 2128 .TOC "MACROS -- STATE REGISTER CONTROL"
; 2129
; 2130 SR←# "COND/SR←#" ;USED FOR NON-PAGE-FAIL APPLICATIONS
; 2131 SR←0 "COND/SR←#,#/0"
; 2132 SR←1 "COND/SR←#,#/1"
; 2133 SR←BLT(SRC) "COND/SR←#,#/607" ;CONTEXT CONTROLLED BY PXCT 2,1
; 2134 SR←BLT(DST) "COND/SR←#,#/107" ; BY PXCT 10,4
; 2135 .IF/EIS
; 2136 SR←ED(S) "COND/SR←#,#/1"
; 2137 SR←ED(+D) "COND/SR←#,#/24"
; 2138 .IF/DECIMAL
; 2139 SR←DB "COND/SR←#,#/2" ;D2B ANYWHERE
; 2140 SR←BDF "COND/SR←#,#/3" ;B2D STORING FILLERS
; 2141 SR←BDD "COND/SR←#,#/6" ;B2D AFTER UPDATING DST PTR
; 2142 SR←BDT "COND/SR←#,#/10" ;B2D IN TRANSLATION
; 2143 .ENDIF/DECIMAL
; 2144 SR←SRC "COND/SR←#,#/11"
; 2145 SR←DST "COND/SR←#,#/12"
; 2146 SR←SRC+DST "COND/SR←#,#/13"
; 2147 .ENDIF/EIS
; 2148 .IF/MAP
; 2149 SR←MAP "COND/SR←#,#/14" ;CATCH MAP PAGE FAILURES
; 2150 .ENDIF/MAP
; 2151
; 2152 .IF/LISP
; 2153 SR←LIST "COND/SR←#,#/15" ;LISP LIST HACKERY
; 2154 .ENDIF/LISP
; 2155 SET SR1 "COND/SR←#,#/64"
; 2156 SET SR2 "COND/SR←#,#/62"
; 2157 SET SR3 "COND/SR←#,#/61"
; 2158 CLR SR2 "COND/SR←#,#/20"
; 2159
; 2160 .TOC "DISPATCH RAM MACROS"
; 2161
; 2162 .DCODE
; 2163
; 2164 ;"A FIELD" MACROS
; 2165 ; DECODED TO TELL WHAT TO DO WITH EFFECTIVE ADDRESS
; 2166 ; AND WHETHER TO PREFETCH FROM PC+1
; 2167
; 2168 I "A/IMMED"
; 2169 I-PF "A/IMMED-PF"
; 2170 W "A/WR-TST"
; 2171 R "A/READ"
; 2172 R-PF "A/READ-PF"
; 2173 RW "A/RD-WR"
; 2174 .IF/RPW
; 2175 RPW "A/RD-P-WR"
; 2176 .IFNOT/RPW
; 2177 RPW "A/RD-WR"
; 2178 .ENDIF/RPW
; 2179
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 44
; DSK: UCODE; MACRO 13 21:41:17 31-JAN-76 DISPATCH RAM MACROS
; 2180 ;"B FIELD" MACROS
; 2181 ; DECODED BY MOST INSTRUCTIONS TO TELL WHERE TO STORE RESULTS,
; 2182 ; BUT USED BY OTHERS TO HOLD VARIOUS "MODE" INFORMATION
; 2183
; 2184 AC "B/AC"
; 2185 M "B/MEM"
; 2186 S "B/SELF"
; 2187 B "B/BOTH"
; 2188 DBL AC "B/DBL AC"
; 2189 DBL B "B/DBL BOTH"
; 2190 FL-AC "B1-2/AC"
; 2191 FL-MEM "B1-2/MEM"
; 2192 FL-BOTH "B1-2/BOTH"
; 2193
; 2194 TN- "B0/CRY0(1),B1-2/0"
; 2195 TNE "B0/CRY0(0),B1-2/0"
; 2196 TNA "B0/CRY0(0),B1-2/0"
; 2197 TNN "B0/CRY0(1),B1-2/0"
; 2198 TZ- "B0/CRY0(1),B1-2/1"
; 2199 TZE "B0/CRY0(0),B1-2/1"
; 2200 TZA "B0/CRY0(0),B1-2/1"
; 2201 TZN "B0/CRY0(1),B1-2/1"
; 2202 TC- "B0/CRY0(1),B1-2/2"
; 2203 TCE "B0/CRY0(0),B1-2/2"
; 2204 TCA "B0/CRY0(0),B1-2/2"
; 2205 TCN "B0/CRY0(1),B1-2/2"
; 2206 TO- "B0/CRY0(1),B1-2/3"
; 2207 TOE "B0/CRY0(0),B1-2/3"
; 2208 TOA "B0/CRY0(0),B1-2/3"
; 2209 TON "B0/CRY0(1),B1-2/3"
; 2210
; 2211 SJC- "B/SJC-"
; 2212 SJCL "B/SJCL"
; 2213 SJCE "B/SJCE"
; 2214 SJCLE "B/SJCLE"
; 2215 SJCA "B/SJCA"
; 2216 SJCGE "B/SJCGE"
; 2217 SJCN "B/SJCN"
; 2218 SJCG "B/SJCG"
; 2219
; 2220 BLKI "B0/CRY0(0),B1-2/2"
; 2221 BLKO "B0/CRY0(0),B1-2/0"
; 2222 DATAI "B/6"
; 2223 DATAO "B/4"
; 2224 CONI "B/6"
; 2225 CONO "B/4"
; 2226 CONSO "B0/CRY0(1),B1-2/1"
; 2227 CONSZ "B0/CRY0(0),B1-2/1"
; 2228
; 2229 .UCODE
; 2230
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 45
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 DISPATCH RAM MACROS
; 2231
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 46
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 THE INSTRUCTION LOOP
; 2232 .TOC "THE INSTRUCTION LOOP"
; 2233
; 2234 ;INSTRUCTION DECODE, EA COMPUTATION, AND OPERAND FETCH
; 2235 ; IN GENERAL, AN INSTRUCTION IS STARTED AT XCTGO.
; 2236 ; AT THIS TIME THE INSTRUCTION IS IN ARX AND IR, AND PC HAS ITS ADDRESS.
; 2237 ; THE DRAM OUTPUTS AND "AC" BITS WILL SETTLE DURING THIS
; 2238 ; MICROINSTRUCTION, AND WILL BE LATCHED BY THE CLOCK WHICH ENDS
; 2239 ; THE CYCLE. XCTGO DISPATCHES ON THE STATE OF THE
; 2240 ; INDIRECT AND INDEX BITS OF THE ARX (EA MOD DISP) TO COMPEA OR
; 2241 ; ONE OF THE THREE LOCATIONS FOLLOWING IT.
; 2242 ; IF INDIRECT IS SPECIFIED, THE INDIRECT POINTER IS FETCHED (AT
; 2243 ; COMPEA+2 OR +3 DEPENDING ON WHETHER INDEXING IS ALSO SPECIFIED).
; 2244 ; WE WAIT FOR IT AT INDRCT, AND THEN LOOP BACK TO COMPEA. WHEN NO
; 2245 ; INDIRECT IS CALLED FOR, WE COMPUTE THE INSTRUCTION'S EFFECTIVE ADDRESS
; 2246 ; (EA) AT COMPEA OR COMPEA+1 (DEPENDING ON WHETHER INDEXING IS CALLED
; 2247 ; FOR), AND PERFORM THE FUNCTION "A READ", WHOSE OPERATION DEPENDS
; 2248 ; ON THE DRAM A FIELD, AS FOLLOWS:
; 2249 ;
; 2250 ; MACRO A-FLD MEM FUNCTION VMA DISPATCH
; 2251 ; I 0 NONE AD(=EA) DRAM J
; 2252 ; I-PF 1 FETCH PC+1 DRAM J
; 2253 ; 2 WRITE AD 42 ILLEGAL
; 2254 ; W 3 WR TST AD 43
; 2255 ; R 4 READ AD 44
; 2256 ; R-PF 5 READ AD 45
; 2257 ; RW 6 READ/WR TST AD 46
; 2258 ; RPW 7 RD-PSE/WR TST AD 47
; 2259 ;
; 2260 ; A FIELD VALUES 0 AND 1 ARE USED FOR INSTRUCTIONS WHICH NEITHER
; 2261 ; READ NOR WRITE THE CONTENTS OF EA (IMMEDIATE-MODE INSTRUCTIONS,
; 2262 ; JUMPS, ETC). THESE DISPATCH FROM "A READ" DIRECTLY TO THE MICROCODE
; 2263 ; WHICH HANDLES THE INSTRUCTION. IF THE A FIELD CONTAINS 1, "A READ"
; 2264 ; CAUSES A PREFETCH (FROM PC+1), SO THAT THE MBOX CAN WORK ON GETTING
; 2265 ; THE NEXT INSTRUCTION INTO ARX WHILE THE EBOX PERFORMS THIS ONE.
; 2266 ; THE A FIELD MUST NOT CONTAIN THE VALUE 2.
; 2267 ; IF THE A FIELD CONTAINS 3, THE MBOX PERFORMS A PAGING CHECK ON
; 2268 ; EA, AND CAUSES A PAGE FAIL IF THAT LOCATION IS NOT WRITABLE.
; 2269 ; THE MICROCODE GOES TO 43 TO WAIT FOR COMPLETION OF THE PAGE CHECK,
; 2270 ; AND AT THAT LOCATION LOADS AC INTO AR. THE WRITABILITY OF EA IS
; 2271 ; VERIFIED AT THIS TIME TO PREVENT INCORRECTLY SETTING FLAGS OR
; 2272 ; THE PROCESSOR STATE IF THE INSTRUCTION WILL BE ABORTED BY PAGE
; 2273 ; FAILURE. LOCATION 43 THEN DISPATCHES TO THE HANDLER FOR THE
; 2274 ; CURRENT INSTRUCTION.
; 2275 ; A FIELD VALUES 4 TO 7 PERFORM READS FROM EA. 6 AND 7 ALSO TEST
; 2276 ; THE WRITABILITY OF THE LOCATION, AND 7 PERFORMS THE FIRST HALF OF
; 2277 ; A READ-PAUSE-WRITE CYCLE IF EA IS AN UN-CACHED ADDRESS. THE DISPATCH
; 2278 ; IS TO 40+A, WHERE WE WAIT FOR MEMORY DATA TO ARRIVE IN AR. IF THE A
; 2279 ; FIELD WAS 5, WE PREFETCH FROM PC+1 AS SOON AS THE DATA ARRIVES.
; 2280 ; IN ANY CASE, WE DISPATCH ACCORDING TO THE DRAM J FIELD TO THE
; 2281 ; HANDLER FOR THE INSTRUCTION.
; 2282 ; IF A PAGE FAIL OCCURS AT ANY TIME (EITHER IN THIS CODE OR DURING
; 2283 ; INSTRUCTION EXECUTION) THE MICROPROCESSOR TRAPS TO CRAM LOCATION
; 2284 ; 1777, WHERE IT CAUSES A PAGE FAIL TRAP.
; 2285
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 47
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 THE INSTRUCTION LOOP
; 2286 ; MOST INSTRUCTIONS (THE MOVE, HALFWORD, AND BOOLEAN GROUPS,
; 2287 ; PLUS ADD AND SUB) ARE PERFORMED BY HANDLERS CONSISTING OF ONE OR
; 2288 ; TWO MICROINSTRUCTIONS WHICH LEAVE THE RESULT IN AR, AND COMPLETE
; 2289 ; BY INVOKING THE "EXIT" MACRO. EXIT USES THE MEM/B WRITE FUNCTION
; 2290 ; TO BEGIN A STORE TO MEMORY FOR THOSE MODES IN WHICH THE RESULT
; 2291 ; GOES TO MEMORY, AND DISP/DRAM B TO GET TO ONE OF THE MICROINSTRUCTIONS
; 2292 ; FOLLOWING ST0. THIS CODE DEPENDS ON A CERTAIN AMOUNT OF CORRELATION
; 2293 ; BETWEEN THE DRAM A AND B FIELDS. IN PARTICULAR, STAC (STORE AC)
; 2294 ; ASSUMES THAT A PREFETCH HAS OCCURRED, WHILE THE OTHERS ASSUME THAT
; 2295 ; NO PREFETCH HAS OCCURED. THUS NORMAL AND IMMEDIATE MODES, WHOSE
; 2296 ; RESULTS GO ONLY TO AC, MUST PREFETCH IN THE DRAM A FIELD, WHILE
; 2297 ; MEM, BOTH, AND SELF MODES, WHOSE RESULTS GO TO MEMORY, MUST NOT.
; 2298 ; (THIS RESTRICTION IS AVOIDED FOR THOSE INSTRUCTIONS WHICH NEVER
; 2299 ; PREFETCH -- IN MUL, DIV, AND IDIV BY USE OF THE EXIT TO ST2AC,
; 2300 ; AND IN IMUL AND THE SINGLE PRECISION FLOATING POINT
; 2301 ; INSTRUCTIONS BY A RESTRICTED EXIT TO ST6.)
; 2302 ; ANOTHER LARGE SET OF INSTRUCTIONS (SKIP, AOS, SOS, JUMP, AOJ,
; 2303 ; SOJ, AOBJ, CAI, CAM, AND THE TEST GROUP) KNOWS WHERE TO PUT THE
; 2304 ; RESULTS WITHOUT MODE INFORMATION, AND THEY USE THE DRAM B FIELD TO
; 2305 ; DETERMINE WHETHER TO SKIP OR JUMP, AS A FUNCTION OF THEIR OPERANDS.
; 2306 ; SKIP, AOS, AND SOS ARE CONSIDERED SELF-MODE INSTRUCTIONS,
; 2307 ; AND AFTER MAKING THE FETCH DECISION (AND RE-WRITING MEMORY, IN
; 2308 ; THE CASE OF AOS OR SOS), JUMP TO STSELF TO DECIDE WHETHER OR NOT
; 2309 ; TO PUT THE RESULT ALSO IN AC. THE OTHER INSTRUCTIONS OF THIS SET
; 2310 ; JUMP TO STORAC OR NOP AFTER MAKING THE FETCH DECISION, DEPENDING
; 2311 ; ON WHETHER OR NOT THE OPCODE DEFINITION REQUIRES MODIFICATION OF AC.
; 2312 ; (NOTE THE DIFFERENCE BETWEEN STAC AND FINI ON THE ONE HAND,
; 2313 ; AND STORAC AND NOP ON THE OTHER -- STORAC AND NOP MUST BE USED WHEN
; 2314 ; THE NEXT INSTRUCTION FETCH OCCURS ON THE PRECEDING EBOX CYCLE, BECAUSE
; 2315 ; NICOND MUST NOT IMMEDIATELY FOLLOW A FETCH (ONE CYCLE REQUIRED FOR
; 2316 ; VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC), STAC AND FINI ARE
; 2317 ; USED WHEN THERE HAS BEEN AN INTERVENING CYCLE.)
; 2318
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 48
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 NEXT INSTRUCTION DISPATCH
; 2319 .TOC "NEXT INSTRUCTION DISPATCH"
; 2320
; 2321 ;START BY PUTTING PC WORD IN AR, JUMP HERE
; 2322 0:
U 0000, 0027,0001,0040,0000,0000,0024,0020 ; 2323 START: SET FLAGS←AR,BR/AR,J/BRJMP
; 2324
; 2325 ; DISP/NICOND (THE "NXT INSTR" MACRO) BRINGS US TO ONE OF THE
; 2326 ; LOCATIONS FOLLOWING "NEXT". PC HAS BEEN UPDATED TO ADDRESS THE NEXT
; 2327 ; INSTRUCTION IN THE NORMAL FLOW, AND IF IT IS FROM MEMORY
; 2328 ; (AS OPPOSED TO AC'S), THE INSTRUCTION IS IN ARX AND IR.
; 2329 ; THE NICOND DISPATCH IS PRIORITY ENCODED, AS FOLLOWS:
; 2330 ; [FOR FULL DETAILS, SEE PRINT CON2]
; 2331 ;(1) IF PI CYCLE IS TRUE, GO TO NEXT FOR SECOND HALF
; 2332 ; OF STANDARD OR VECTOR INTERRUPT.
; 2333 ;(2) IF THE RUN FLOP (CON RUN) IS OFF, GO TO NEXT+2, FROM WHICH THE
; 2334 ; MICROCODE WILL ENTER THE HALT LOOP TO WAIT FOR THE CONSOLE TO RESTART
; 2335 ; INSTRUCTION PROCESSING.
; 2336 ;(3) IF THE METER HAS A REQUEST UP, GO TO NEXT+4 TO SERVE IT.
; 2337 ;(4) IF THE PI SYSTEM HAS A REQUEST READY, GO TO NEXT+6 TO START
; 2338 ; A PI CYCLE.
; 2339 ;(5) IF THE LAST INSTRUCTION SET A TRAP FLAG, GO TO NEXT+3 OR +7,
; 2340 ; IT DOESN'T MATTER WHICH.
; 2341 ;(6) IF VMA CONTAINS AN AC ADDRESS, IMPLYING THAT THE NEXT
; 2342 ; INSTRUCTION IS TO COME OUT OF FAST MEMORY, GO TO NEXT+16 TO GET IT.
; 2343 ;(7) --NORMAL CASE-- THE INSTRUCTION IS IN ARX, READY TO GO, GO
; 2344 ; TO NEXT+12.
; 2345
; 2346 =11*0000 ;USE LOC'NS INACCESSIBLE TO DRAM
; 2347 NEXT: SET PI CYCLE,GEN FE, ;2ND PART OF INTERRUPT
U 0140, 1466,4001,0000,0000,0020,1534,0704 ; 2348 BYTE DISP,J/PICYC2 ;SKIP IF VECTOR INT
U 0142, 0074,3441,2000,0000,0000,1510,0302 ; 2349 =0010 AR←0S,SET HALTED,J/HALT1 ;HERE IF RUN FLOP OFF
; 2350 =0100
U 0144, 1403,0001,0000,0000,0000,2210,0400 ; 2351 MTRINT: GET ECL EBUS,J/MTRREQ ;HERE IF METER REQUEST UP
U 0145, 1437,0001,3000,0302,0060,0010,0002 ; 2352 AR←EBUS,SC←#,#/2,J/PICYC1 ;HERE IF TAKE INTRPT DOESNT FIND
; 2353 =0110 ; A METER REQUEST
U 0146, 1437,0001,3000,0302,0060,0010,0002 ; 2354 INTRPT: AR←EBUS,SC←#,#/2,J/PICYC1 ;HERE IF INTERRUPT PENDING
; 2355 .IF/TRACKS
; 2356 =1000 AR←TRX+1,GEN CRY18,SKP CRY0,J/TRK1 ;HERE TO STORE PC BEFORE
; 2357 AR←TRX+1,GEN CRY18,SKP CRY0,J/TRK1 ; EXECUTING NEXT INSTR
; 2358 .ENDIF/TRACKS
; 2359 =1010
; 2360 XCTGO: BRX/ARX,EA MOD DISP,J/COMPEA, ;SAVE INSTR, GO CALCULATE EA
U 0152, 0160,2301,2020,0000,0000,0036,0000 ; 2361 AR←1S ;-1 FOR HACK AT SOJ SERIES INSTRS
; 2362 .IFNOT/ONE PROCEED
; 2363 TRAP: VMA←420+TRAP,J/TRAPX ;HERE IF TRAP BITS SET
; 2364 .IF/ONE PROCEED
U 0153, 0001,0001,0000,4402,0000,2210,0400 ; 2365 TRAP: GET ECL EBUS,SC←1,J/TR3CHK ;TRAP, CHECK FOR ONE PROCEED
; 2366 .ENDIF/ONE PROCEED
U 0156, 0152,3240,0203,0000,0020,1410,0000 ; 2367 =1110 ARX←FM(VMA),time/3t,LOAD IR,J/XCTGO ;HERE IF INSTR IS IN fm
; 2368 .IFNOT/ONE PROCEED
; 2369 VMA←420+TRAP,J/TRAPX ;HERE IF TRAP BITS SET
; 2370 .IF/ONE PROCEED
; 2371 ARX←FM(VMA),TIME/3T,LOAD IR, ;HERE IF TRAP AND VMA->ACS
U 0157, 0153,3200,0203,0000,0020,1410,0000 ; 2372 J/TRAP ;FETCH THE INSTR THEN TRAP
; 2373 .ENDIF/ONE PROCEED
; 2374
; 2375 .IF/ONE PROCEED
; 2376 ;HERE ON TRAPS, WITH INSTRUCTION IN ARX AND IR, 1 IN SC,
; 2377 ;AND ECL EBUS GRABBED. UNFORTUNATELY THE HARDWARE CAREFULLY
; 2378 ;CLEARS THE TRAP BITS IN THE PC WORD ON A NICOND, BUT
; 2379 ;WE CAN USE A DIAGNOSTIC FUNCTION TO READ THE TRAP CYC BITS (SCD4).
; 2380 ;THE "ADDRESS BREAK INHIBIT" HAIR (SCD5) IS USED TO
; 2381 ;DETECT WHEN AN INSTRUCTION IS COMPLETED.
; 2382 ;IF THIS IS A TRAP 3, AND SCD ADDR BRK CYC IS TRUE, WE ARE
; 2383 ;IN THE MIDDLE OF A ONE-PROCEED, SO SUPPRESS THE TRAP.
; 2384 ;SCD ADDR BRK CYC IS ON WHEN NICOND IS DONE WITH
; 2385 ;ADR BRK INH SET IN THE PC FLAGS (I.E. JUST STARTING
; 2386 ;OR RE-STARTING THE INSTRUCTION BEING ONE-PROCEEDED.)
; 2387
U 0001, 0002,4001,3000,0000,0000,2010,0530 ; 2388 TR3CHK: AR03-04←SCD TRAP CYC
U 0002, 0034,4001,0000,0000,0140,3107,0420 ; 2389 VMA←420+TRAP,SH DISP,J/TR3DSP ;VMA -> TRAP INST, CHECK TRAP NUMBER
; 2390 =11100
; 2391 TR3DSP:
; 2392 =01
U 0035, 0007,0001,0000,0000,0000,2210,0000 ; 2393 REL ECL EBUS,J/TRAPX ;TRAP 1 - TAKE TRAP
U 0036, 0007,0001,0000,0000,0000,2210,0000 ; 2394 REL ECL EBUS,J/TRAPX ;TRAP 2 - TAKE TRAP
U 0037, 0003,4001,3000,0000,0000,2010,0537 ; 2395 AR05←SCD ADDR BRK CYC ;TRAP 3 - CHECK FOR ONE PROCEED
U 0003, 0004,3731,2000,7100,0020,5210,0000 ; 2396 GEN P AND SC,SKP SCAD NE,AR←PC ;SKIP IF ONE-PROCEEDING
; 2397 =0
U 0004, 0007,0001,0000,0000,0000,2210,0000 ; 2398 REL ECL EBUS,J/TRAPX ;TAKE THE TRAP
; 2399 ;REL ECL EBUS ;DO THE INSTR
; 2400 ;HAIRILY BUM 1 INSTR
U 0005, 0006,4001,0000,0000,0000,2224,0020 ; 2401 COND/EBUS CTL,SET FLAGS←AR ;CLEAR THE TRAP CYC FLAGS
U 0006, 0152,4001,0000,0000,0000,1110,0060 ; 2402 TRAP3,J/XCTGO ;ARRANGE FOR ANOTHER TRAP
; 2403 ;WHEN THE INSTRUCTION COMPLETES
; 2404 .ENDIF/ONE PROCEED
; 2405
; 2406 ;HERE ON TRAPS, VMA SETUP WITH 420+TRAP CODE
; 2407
U 0007, 0010,0001,0000,0000,0013,0026,0031 ; 2408 TRAPX: LOAD ARX,PT REF ;GET AND XCT TRAP INSTR
U 0010, 0011,4001,0000,0000,0000,1510,0100 ; 2409 set pc+1 inh ;don't increment pc for this instr
; 2410
; 2411 ;HERE AFTER FETCHING INSTR TO BE EXECUTED
; 2412
U 0011, 0152,3240,0003,0000,0022,1410,0000 ; 2413 XCTW: ARX←MEM,LOAD IR,J/XCTGO ;GET INSTR TO XCT
; 2414
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 49
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH
; 2415 .TOC "EFFECTIVE ADDRESS COMPUTATION AND OPERAND FETCH"
; 2416
; 2417 ;COME HERE WITH -1 IN AR IF YOU EXPECT SOJ TO WORK!
; 2418 =11***00 ;HERE WITH XR CALC IN PROG
; 2419 COMPEA: AR←ARX (AD),A READ, ;NO MOD, GET OPERAND IF ANY
U 0160, 0000,3711,2010,0000,1204,0002,0000 ; 2420 MQ←AR ;SOJ SERIES EXPECTS -1 IN MQ
; 2421 AR←ARX+XR,A READ, ;INDEXED, NO @
U 0161, 0000,0610,2012,0000,1224,0002,0000 ; 2422 MQ←AR ;SOJ SERIES EXPECTS -1 IN MQ
; 2423 GEN ARX,A INDRCT, ;DO INDIRECT, NO INDEX
U 0162, 0150,3713,0000,0000,0110,7010,0000 ; 2424 SKP INTRPT,J/INDRCT
; 2425 GEN ARX+XR,A INDRCT, ;BOTH @ AND XR
U 0163, 0150,0610,0002,4000,0130,7010,0000 ; 2426 SKP INTRPT,J/INDRCT
; 2427 =11****0
U 0150, 0012,3240,0003,0000,0022,0010,0000 ; 2428 INDRCT: ARX←MEM,J/INDLP ;GET INDIRECT POINTER, EVAL
U 0151, 0144,3200,0003,0000,0022,7710,0000 ; 2429 TAKINT: ARX←MEM,TAKE INTRPT ;INTERRUPT DURING INDIRECT
; 2430
; 2431 ;APPARENTLY A INDRCT AT COMPEA+2/+3 CAN
; 2432 ; CAUSE AR AS WELL AS ARX TO BE CLOBBERED BY ARX←MEM.
; 2433 ;HENCE WE MUST RESTORE THE -1 THAT THE SOJ SERIES DEPENDS ON.
; 2434
U 0012, 0160,2341,2000,0000,0000,0036,0000 ; 2435 INDLP: EA MOD DISP,AR←1S,J/COMPEA ;EVALUATE POINTER
; 2436
; 2437
; 2438 ;THE EXECUTE CODE FOR EACH INSTRUCTION IS ENTERED WITH
; 2439 ; THE OPCODE AND AC # IN BRX AND IR, THE LAST INDIRECT WORD
; 2440 ; IN ARX, AND AR AND VMA SETUP AS A FUNCTION OF THE A
; 2441 ; FIELD OF THE DISPATCH RAM. A PREFETCH IS IN PROGRESS IF THE
; 2442 ; DRAM A FIELD WAS 1 OR 5 (OR IF IR CONTAINS "JRST 0,").
; 2443
; 2444 ;ON "A READ", THE HARDWARE DISPATCHES TO THE EXECUTE CODE FOR
; 2445 ; THE INSTRUCTION IF THE DRAM A FIELD IS 0 OR 1. IF THE A FIELD
; 2446 ; CONTAINS 2-7, THE HARDWARE DISPATCHES TO 40+A, BELOW:
; 2447
; 2448 ;COME HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 3
; 2449 ; A "WRITE TST" IS IN PROGRESS
; 2450
; 2451 43: BR/AR,AR←AC0,MB WAIT, ;WAIT FOR PERMISSION TO WRITE
U 0043, 0000,3240,2040,0000,0022,0001,0000 ; 2452 TIME/3T,IR DISP,J/0 ;AND GO TO EXECUTE CODE
; 2453
; 2454 ;HERE ON "A READ" FUNCTION IF DRAM A FIELD IS 4
; 2455 ; A "LOAD AR" IS IN PROGRESS
; 2456
; 2457 44: BR/AR,AR←MEM,TIME/3T, ;GET OPERAND
U 0044, 0000,3200,0043,0000,0022,0001,0000 ; 2458 IR DISP,J/0 ; START EXECUTE
; 2459
; 2460 ;HERE ON "A READ" IF A FIELD IS 5
; 2461 ; A "LOAD AR" IS IN PROGRESS, AND WE MUST PREFETCH WHEN IT COMPLETES
; 2462
; 2463 45: BR/AR,FIN XFER,I FETCH, ;GET OPERAND, PREFETCH,
U 0045, 0000,3240,0043,0000,0226,0001,0400 ; 2464 TIME/3T,IR DISP,J/0 ; & START EXECUTE
; 2465
; 2466 ;HERE ON "A READ" IF A FIELD IS 6
; 2467 ; A "LOAD AR" IS IN PROGRESS, BUT PAGING IS TESTING WRITABILITY
; 2468
; 2469 46: BR/AR,AR←MEM,TIME/3T, ;GET OPERAND
U 0046, 0000,3200,0043,0000,0022,0001,0000 ; 2470 IR DISP,J/0 ; START EXECUTE
; 2471
; 2472 ;HERE ON "A READ" IF A FIELD IS 7
; 2473 ; A "READ-PAUSE-WRITE" IS IN PROGRESS
; 2474
; 2475 47: BR/AR,AR←MEM,TIME/3T, ;GET OPERAND
U 0047, 0000,3200,0043,0000,0022,0001,0000 ; 2476 IR DISP,J/0 ; START EXECUTE
; 2477
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 50
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 TERMINATION
; 2478 .TOC "TERMINATION"
; 2479
; 2480 ;DISPATCH HERE WITH THE "EXIT" MACRO,
; 2481 ; OR JUMP DIRECTLY TO ONE OF THESE LOCATIONS.
; 2482
; 2483 =11*000
; 2484 ST0: ;BASE FOR B DISP IN EXIT MACRO
; 2485 =001
U 0061, 0015,5401,2000,0000,0226,1016,0400 ; 2486 ST2AC: AC0←AR,AR←SIGN,I FETCH,J/STD1 ;HERE TO STORE AC0 & AC1
U 0062, 0014,4001,0003,0000,0206,0010,0400 ; 2487 FIN STORE,I FETCH,J/DSTAC ;MULB, DIVB, ETC ...
; 2488 FIN STORE,I FETCH, ;SELF MODE
U 0063, 0070,4001,0003,0000,0206,4610,0400 ; 2489 SKP AC#0,J/STSELF ; RESULT TO AC TOO?
; 2490 =101
U 0065, 0140,0001,0000,0000,0002,1006,0000 ; 2491 STAC: AC0←AR,NXT INSTR ;NORMAL AND IMMEDIATE MODES
; 2492 ST6:
; 2493 IFNOP:
U 0066, 0071,4001,0003,0000,0206,0010,0400 ; 2494 STMEM: FIN STORE,I FETCH,J/NOP ;MEM MODE
; 2495 IFSTAC:
U 0067, 0070,0001,0003,0000,0206,0010,0400 ; 2496 STBOTH: FIN STORE,I FETCH,J/STORAC ;BOTH MODE
; 2497 =
; 2498 ;HERE TO FINISH, AFTER FETCHING NEXT INSTRUCTION.
; 2499 ; WE MUST GUARANTEE AT LEAST ONE EBOX CYCLE BETWEEN FETCH AND NICOND,
; 2500 ; TO ALLOW VMA AC REF TO MAKE IT THROUGH THE NICOND LOGIC.
; 2501 =11***0
; 2502 STSELF: ;SKIP, AOS, SOS COME HERE
U 0070, 0065,0001,0000,0000,0000,1610,0000 ; 2503 STORAC: SR←0,J/STAC ;STORE AC, TOO
U 0071, 0013,4001,0000,0000,0000,1610,0000 ; 2504 NOP: SR←0,J/FINI
; 2505
; 2506 .IF/JPC
; 2507 =110
; 2508 NJPCP: AR←PC,SKP USER,J/JPCEX ;FOR JPC HACK - SKIP IF NOT JUMPING
; 2509 .ENDIF/JPC
U 0013, 0140,4001,0000,0000,0002,0006,0000 ; 2510 FINI: NXT INSTR ;GET NEXT INSTR IN ARX & IR,
; 2511 ; LOAD PC, TEST PI CYCLE, RUN,
; 2512 ; PI READY, TRAPS
; 2513
; 2514 ;HERE TO STORE ARITHMETIC DOUBLE RESULTS
; 2515
U 0014, 0015,5401,2000,0000,0020,1016,0000 ; 2516 DSTAC: AC0←AR,AR←SIGN ;HERE WITH FETCH STARTED
U 0015, 0016,0001,4000,0000,0000,1610,0000 ; 2517 STD1: AR←SHIFT,SR←0 ;BRING IN LOW PART
U 0016, 0013,0001,0001,0000,0000,1010,0000 ; 2518 STAC1: AC1←AR,NXT INSTR AFTER AC1 ;STORE AC1
; 2519
; 2520
; 2521 ;HERE TO GET MICRO-CODE VERSION #. FIXED LOC'N SO SOFTWARE CAN FIND IT
; 2522 137:
U 0137, 1475,0001,0040,0000,0000,0110,0101 ; 2523 UVERS: BR/AR,AR0-8←#,#/VERS,J/GTAR08 ;COPY VERSION TO AR
; 2524
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 51
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 EXCH, BLT, MOVE GROUP
; 2525 .TOC "EXCH, BLT, MOVE GROUP"
; 2526 ;EXCH, BLT
; 2527
; 2528 .DCODE
D 0250, 7001,0100 ; 2529 250: RPW, J/EXCH
D 0251, 0001,0101 ; 2530 I, J/BLT
; 2531 .UCODE
; 2532
; 2533 =00***0
U 0100, 0134,3200,2400,0000,1036,0010,0000 ; 2534 EXCH: ARX←AR,AR←AC0,STORE,J/STMAC ;PUT AC AT E, THEN STORE AC
; 2535
; 2536 BLT: MQ←AR,ARX←AR, ;END ADDR TO MQ & ARX
U 0101, 1731,3240,2410,0000,1020,0610,0000 ; 2537 ARR←AC0,ARL←ARL,J/BLT1 ;FIRST DEST ADDR TO AR
; 2538 =
; 2539
; 2540
; 2541 ;MOVE GROUP
; 2542
; 2543 .DCODE
D 0200, 5501,0110 ; 2544 200: R-PF, AC, J/MOVE ;BASIC MOVE
D 0201, 1500,0110 ; 2545 I-PF, AC, J/MOVE
D 0202, 3601,0110 ; 2546 W, M, J/MOVE
D 0203, 7300,0110 ; 2547 RPW, S, J/MOVE
; 2548
D 0204, 5501,0102 ; 2549 204: R-PF, AC, J/MOVS
D 0205, 1500,0102 ; 2550 I-PF, AC, J/MOVS
D 0206, 3601,0102 ; 2551 W, M, J/MOVS
D 0207, 7300,0102 ; 2552 RPW, S, J/MOVS
; 2553
D 0210, 5501,0104 ; 2554 210: R-PF, AC, J/MOVN
D 0211, 1500,0104 ; 2555 I-PF, AC, J/MOVN
D 0212, 3601,0104 ; 2556 W, M, J/MOVN
D 0213, 7300,0104 ; 2557 RPW, S, J/MOVN
; 2558
D 0214, 5500,0103 ; 2559 214: R-PF, AC, J/MOVM
D 0215, 1501,0103 ; 2560 I-PF, AC, J/MOVM
D 0216, 3600,0103 ; 2561 W, M, J/MOVM
D 0217, 7301,0103 ; 2562 RPW, S, J/MOVM
; 2563 .UCODE
; 2564
; 2565 ; ENTER WITH 0,E, (E), OR (AC) IN AR
; 2566
; 2567 =00****
U 0102, 0060,4001,4000,0000,3005,0033,0000 ; 2568 MOVS: AR←AR SWAP,EXIT ;ALSO USED BY HALFWORD GROUP
; 2569 =
; 2570 =00****
U 0103, 0110,4001,0040,0000,0000,4510,0000 ; 2571 MOVM: BR/AR,SKP AR0,J/MOVE ;FORCE POSITIVE
; 2572 =
; 2573 =00****
U 0104, 0111,4001,0040,0000,0000,0010,0000 ; 2574 MOVN: BR/AR,J/MOVNEG ;GET NEGATIVE
; 2575 =
; 2576 =00**00
U 0110, 0060,0001,0000,0000,0005,0033,0000 ; 2577 MOVE: EXIT ;STORE AS IS FROM AR
U 0111, 0110,5142,2000,0000,0020,1310,0000 ; 2578 MOVNEG: AR←-BR,AD FLAGS,J/MOVE
; 2579
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 52
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 HALFWORD GROUP
; 2580 .TOC "HALFWORD GROUP"
; 2581 ; DESTINATION LEFT HALF
; 2582
; 2583 .DCODE
D 0500, 5501,0113 ; 2584 500: R-PF, AC, J/HLL
D 0501, 1500,0113 ; 2585 I-PF, AC, J/HLL
D 0502, 7601,0112 ; 2586 RPW, M, J/HRR ;HLLM = HRR EXCEPT FOR STORE
D 0503, 7300,0110 ; 2587 RPW, S, J/MOVE ;HLLS = MOVES
; 2588
D 0504, 5500,0105 ; 2589 R-PF, AC, J/HRL
D 0505, 1501,0105 ; 2590 I-PF, AC, J/HRL
D 0506, 7601,0114 ; 2591 RPW, M, J/HRLM
D 0507, 7300,0115 ; 2592 RPW, S, J/HRLS
; 2593
D 0510, 5500,0212 ; 2594 510: R-PF, AC, J/HLLZ
D 0511, 1501,0212 ; 2595 I-PF, AC, J/HLLZ
D 0512, 3600,0212 ; 2596 W, M, J/HLLZ
D 0513, 7301,0212 ; 2597 RPW, S, J/HLLZ
; 2598
D 0514, 5501,0204 ; 2599 R-PF, AC, J/HRLZ
D 0515, 1500,0204 ; 2600 I-PF, AC, J/HRLZ
D 0516, 3601,0204 ; 2601 W, M, J/HRLZ
D 0517, 7300,0204 ; 2602 RPW, S, J/HRLZ
; 2603
D 0520, 5501,0213 ; 2604 520: R-PF, AC, J/HLLO
D 0521, 1500,0213 ; 2605 I-PF, AC, J/HLLO
D 0522, 3601,0213 ; 2606 W, M, J/HLLO
D 0523, 7300,0213 ; 2607 RPW, S, J/HLLO
; 2608
D 0524, 5500,0205 ; 2609 R-PF, AC, J/HRLO
D 0525, 1501,0205 ; 2610 I-PF, AC, J/HRLO
D 0526, 3600,0205 ; 2611 W, M, J/HRLO
D 0527, 7301,0205 ; 2612 RPW, S, J/HRLO
; 2613
D 0530, 5501,0207 ; 2614 530: R-PF, AC, J/HLLE
D 0531, 1500,0207 ; 2615 I-PF, AC, J/HLLE
D 0532, 3601,0207 ; 2616 W, M, J/HLLE
D 0533, 7300,0207 ; 2617 RPW, S, J/HLLE
; 2618
D 0534, 5501,0116 ; 2619 R-PF, AC, J/HRLE
D 0535, 1500,0116 ; 2620 I-PF, AC, J/HRLE
D 0536, 3601,0116 ; 2621 W, M, J/HRLE
D 0537, 7300,0116 ; 2622 RPW, S, J/HRLE
; 2623
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 53
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 HALFWORD GROUP
; 2624 ; DESTINATION RIGHT HALF
; 2625
D 0540, 5500,0112 ; 2626 540: R-PF, AC, J/HRR
D 0541, 1501,0112 ; 2627 I-PF, AC, J/HRR
D 0542, 7600,0113 ; 2628 RPW, M, J/HLL ;HRRM = HLL EXCEPT FOR STORE
D 0543, 7300,0110 ; 2629 RPW, S, J/MOVE ;HRRS = MOVES
; 2630
D 0544, 5500,0106 ; 2631 R-PF, AC, J/HLR
D 0545, 1501,0106 ; 2632 I-PF, AC, J/HLR
D 0546, 7601,0200 ; 2633 RPW, M, J/HLRM
D 0547, 7300,0201 ; 2634 RPW, S, J/HLRS
; 2635
D 0550, 5501,0202 ; 2636 550: R-PF, AC, J/HRRZ
D 0551, 1500,0202 ; 2637 I-PF, AC, J/HRRZ
D 0552, 3601,0202 ; 2638 W, M, J/HRRZ
D 0553, 7300,0202 ; 2639 RPW, S, J/HRRZ
; 2640
D 0554, 5501,0210 ; 2641 R-PF, AC, J/HLRZ
D 0555, 1500,0210 ; 2642 I-PF, AC, J/HLRZ
D 0556, 3601,0210 ; 2643 W, M, J/HLRZ
D 0557, 7300,0210 ; 2644 RPW, S, J/HLRZ
; 2645
D 0560, 5500,0203 ; 2646 560: R-PF, AC, J/HRRO
D 0561, 1501,0203 ; 2647 I-PF, AC, J/HRRO
D 0562, 3600,0203 ; 2648 W, M, J/HRRO
D 0563, 7301,0203 ; 2649 RPW, S, J/HRRO
; 2650
D 0564, 5500,0211 ; 2651 R-PF, AC, J/HLRO
D 0565, 1501,0211 ; 2652 I-PF, AC, J/HLRO
D 0566, 3600,0211 ; 2653 W, M, J/HLRO
D 0567, 7301,0211 ; 2654 RPW, S, J/HLRO
; 2655
D 0570, 5501,0107 ; 2656 570: R-PF, AC, J/HRRE
D 0571, 1500,0107 ; 2657 I-PF, AC, J/HRRE
D 0572, 3601,0107 ; 2658 W, M, J/HRRE
D 0573, 7300,0107 ; 2659 RPW, S, J/HRRE
; 2660
D 0574, 5500,0206 ; 2661 R-PF, AC, J/HLRE
D 0575, 1501,0206 ; 2662 I-PF, AC, J/HLRE
D 0576, 3600,0206 ; 2663 W, M, J/HLRE
D 0577, 7301,0206 ; 2664 RPW, S, J/HLRE
; 2665
; 2666 .UCODE
; 2667
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 54
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 HALFWORD GROUP
; 2668 ;FIRST, THE 16 OPS WHICH DO NOT AFFECT THE "OTHER" HALF.
; 2669 ;THESE MUST BE TREATED SEPARATELY, BECAUSE THEY COMBINE MEMORY DATA
; 2670 ;IN AR WITH DATA FROM THE FM. ENTER WITH 0,E OR (E) IN AR.
; 2671
; 2672 =00***0
U 0112, 0060,3200,0000,0000,0025,0633,0002 ; 2673 HRR: ARL←AC0,ARR←ARR,EXIT ;HRR, HRRI, HLLM
; 2674 =00****
U 0113, 0060,3200,2000,0000,0025,0633,0000 ; 2675 HLL: ARR←AC0,ARL←ARL,EXIT ;HLL, HLLI, HRRM
; 2676 = ;HRRS, HLLS ARE BOTH EQUIVALENT TO MOVES
; 2677 =00****
U 0105, 0060,3240,2000,0000,3025,0633,0004 ; 2678 HRL: ARL←ARR,ARR←AC0,EXIT ;HRL, HRLI
; 2679 =
; 2680 =00****
U 0106, 0060,3240,4000,0000,3025,0633,0002 ; 2681 HLR: ARR←ARL,ARL←AC0,EXIT ;HLR, HLRI
; 2682 =
; 2683 =00***0
U 0114, 0102,3200,2000,0000,3020,0610,0004 ; 2684 HRLM: ARL←ARR,ARR←AC0,J/MOVS ;HRLM
U 0115, 0060,4001,0000,0000,3005,0633,0004 ; 2685 HRLS: ARL←ARR,ARR←ARR,EXIT ;HRLS
; 2686 =
; 2687 =00***0
U 0200, 0102,3200,4000,0000,3020,0610,0002 ; 2688 HLRM: ARR←ARL,ARL←AC0,J/MOVS ;HLRM
U 0201, 0060,4001,4000,0000,3005,0633,0000 ; 2689 HLRS: ARR←ARL,ARL←ARL,EXIT ;HLRS
; 2690 =
; 2691 ;NOW THE HALFWORD OPS WHICH CONTROL THE "OTHER" HALF
; 2692 ; ENTER WITH 0,E, (E), OR (AC) IN AR
; 2693
; 2694 =00****
U 0107, 0202,4001,0000,0000,0000,4410,0000 ; 2695 HRRE: SKP AR18 ;SELECT HRRZ OR HRRO ON SIGN
; 2696 =
; 2697 =00***0
U 0202, 0060,4001,0000,0000,0005,0633,0020 ; 2698 HRRZ: ARL←0S,ARR←ARR,EXIT
U 0203, 0060,2301,0000,0000,0005,0633,0002 ; 2699 HRRO: ARL←1S,ARR←ARR,EXIT
; 2700 =
; 2701 =00****
U 0116, 0204,4001,0000,0000,0000,4410,0000 ; 2702 HRLE: SKP AR18
; 2703 =
; 2704 =00***0
U 0204, 0060,3441,2000,0000,3005,0633,0004 ; 2705 HRLZ: ARL←ARR,ARR←0S,EXIT
U 0205, 0060,2341,2000,0000,3005,0633,0004 ; 2706 HRLO: ARL←ARR,ARR←1S,EXIT
; 2707 =
; 2708 =00****
U 0206, 0210,0001,0000,0000,0000,4510,0000 ; 2709 HLRE: SKP AR0
; 2710 =
; 2711 =00***0
U 0210, 0060,0001,4000,0000,3005,0633,0020 ; 2712 HLRZ: ARR←ARL,ARL←0S,EXIT
U 0211, 0060,2341,4000,0000,3005,0633,0002 ; 2713 HLRO: ARR←ARL,ARL←1S,EXIT
; 2714 =
; 2715 =00****
U 0207, 0212,4001,0000,0000,0000,4510,0000 ; 2716 HLLE: SKP AR0
; 2717 =
; 2718 =00***0
U 0212, 0060,3401,2000,0000,0005,0633,0000 ; 2719 HLLZ: ARR←0S,ARL←ARL,EXIT
U 0213, 0060,2301,2000,0000,0005,0633,0000 ; 2720 HLLO: ARR←1S,ARL←ARL,EXIT
; 2721 =
; 2722
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 55
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 DMOVE, DMOVN, DMOVEM, DMOVNM
; 2723 .TOC "DMOVE, DMOVN, DMOVEM, DMOVNM"
; 2724 ;DOUBLE-WORD MOVES
; 2725
; 2726 .DCODE
D 0120, 4001,0214 ; 2727 120: R, B/0, J/DMOVE
D 0121, 4100,0214 ; 2728 R, B/1, J/DMOVN
; 2729 .UCODE
; 2730
; 2731 ; ENTER WITH (E) IN AR
; 2732 =00****
; 2733 DMOVN:
U 0214, 0020,0001,0000,0000,0013,3633,0000 ; 2734 DMOVE: VMA←VMA+1,LOAD ARX,B DISP ;PICK UP (E+1)
; 2735 =
U 0020, 0335,3240,0003,0000,0022,0010,0000 ; 2736 =00 ARX←MEM,J/STDAC ;GO STORE DOUBLE AC
U 0021, 0025,3240,0003,0000,0022,0022,0500 ; 2737 ARX←MEM,MQ←0.S,CALL.S,J/GTDBR ;LOAD BR WITH DOUBLE OPERAND
; 2738 =11 AR←-BR LONG,AD FLAGS, ;NEGATE DOUBLE OPERAND
U 0023, 0017,5162,2600,0302,0020,1327,0043 ; 2739 SC←#,#/35. ;& STORE RESULT
U 0017, 0015,3441,2000,0000,0206,1010,0400 ; 2740 DBLST: AC0←AR,AR←0S,I FETCH,J/STD1 ;STORE HIGH WORD, READY LOW
; 2741
; 2742
; 2743 ;DOUBLE MOVES TO MEMORY
; 2744
; 2745 .DCODE
D 0124, 3001,0300 ; 2746 124: W, J/DMOVEM
D 0125, 3000,0301 ; 2747 W, J/DMOVNM
; 2748 .UCODE
; 2749
; 2750 ;ENTER WITH (AC) IN AR
; 2751 =00**00
U 0300, 0022,3200,0201,0302,0036,0010,0044 ; 2752 DMOVEM: ARX←AC1,STORE,SC←#,#/36.,J/DMVM1
U 0301, 0025,3200,0201,0000,0020,0022,0500 ; 2753 DMOVNM: ARX←AC1,MQ←0.S,CALL.S,J/GTDBR ;HIGH WORD IS ALREADY IN AR
; 2754 =11 AR←-BR LONG,AD FLAGS, ;NEGATE
U 0303, 0022,5142,2600,0302,0036,1327,0043 ; 2755 STORE,SC←#,#/35. ; & STORE
; 2756 =
U 0022, 0024,3401,2003,0000,0002,3610,0000 ; 2757 DMVM1: MEM←AR,VMA←VMA+1,AR←0S
U 0024, 0066,4001,4000,0000,0016,0010,0000 ; 2758 AR←SHIFT,STORE,J/STMEM
; 2759
U 0025, 0026,3721,0500,0000,0000,0010,0000 ; 2760 GTDBR: ARX←ARX*2 ;SHIFT OUT LOW SIGN
U 0026, 0003,0001,0060,0000,0000,0003,0000 ; 2761 LDBRL: BR←AR LONG,RETURN3 ;COPY TO BR LONG
; 2762
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 56
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 BOOLEAN GROUP
; 2763 .TOC "BOOLEAN GROUP"
; 2764
; 2765 .DCODE
D 0400, 1500,0215 ; 2766 400: I-PF, AC, J/SETZ
D 0401, 1500,0215 ; 2767 I-PF, AC, J/SETZ
D 0402, 3601,0215 ; 2768 W, M, J/SETZ
D 0403, 3700,0215 ; 2769 W, B, J/SETZ
; 2770 .UCODE
; 2771
; 2772 =00****
U 0215, 0060,3401,2000,0000,0005,0033,0000 ; 2773 SETZ: AR←0S,EXIT
; 2774 =
; 2775 .DCODE
D 0404, 5501,0216 ; 2776 404: R-PF, AC, J/AND
D 0405, 1500,0216 ; 2777 I-PF, AC, J/AND
D 0406, 7600,0216 ; 2778 RPW, M, J/AND
D 0407, 7701,0216 ; 2779 RPW, B, J/AND
; 2780 .UCODE
; 2781
; 2782 =00****
U 0216, 0060,3600,2000,4000,0025,0033,0000 ; 2783 AND: AR←AR*AC0,AD/AND,EXIT
; 2784 =
; 2785 .DCODE
D 0410, 5500,0217 ; 2786 410: R-PF, AC, J/ANDCA
D 0411, 1501,0217 ; 2787 I-PF, AC, J/ANDCA
D 0412, 7601,0217 ; 2788 RPW, M, J/ANDCA
D 0413, 7700,0217 ; 2789 RPW, B, J/ANDCA
; 2790 .UCODE
; 2791
; 2792 =00****
U 0217, 0060,3500,2000,4000,0025,0033,0000 ; 2793 ANDCA: AR←AR*AC0,AD/ANDCB,EXIT
; 2794 =
; 2795 .DCODE
D 0414, 5501,0110 ; 2796 414: R-PF, AC, J/MOVE ;SETM = MOVE
D 0415, 1500,0110 ; 2797 I-PF, AC, J/MOVE
D 0416, 7600,0110 ; 2798 RPW, M, J/MOVE ;SETMM = NOP THAT WRITES MEMORY
D 0417, 7701,0110 ; 2799 RPW, B, J/MOVE ;SETMB = MOVE THAT WRITES MEMORY
; 2800
D 0420, 5500,0302 ; 2801 420: R-PF, AC, J/ANDCM
D 0421, 1501,0302 ; 2802 I-PF, AC, J/ANDCM
D 0422, 7601,0302 ; 2803 RPW, M, J/ANDCM
D 0423, 7700,0302 ; 2804 RPW, B, J/ANDCM
; 2805 .UCODE
; 2806
; 2807 =00****
U 0302, 0060,3000,2000,4000,0025,0033,0000 ; 2808 ANDCM: AR←AR*AC0,AD/ANDCA,EXIT
; 2809 =
; 2810 .DCODE
D 0424, 5001,0404 ; 2811 424: R-PF, J/TDN
D 0425, 1000,0404 ; 2812 I-PF, J/TDN
D 0426, 3601,0110 ; 2813 W, M, J/MOVE ;SETAM = MOVEM
D 0427, 3601,0110 ; 2814 W, M, J/MOVE ;SETAB, TOO
; 2815 .UCODE
; 2816
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 57
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 BOOLEAN GROUP
; 2817 .DCODE
D 0430, 5500,0304 ; 2818 430: R-PF, AC, J/XOR
D 0431, 1501,0304 ; 2819 I-PF, AC, J/XOR
D 0432, 7601,0304 ; 2820 RPW, M, J/XOR
D 0433, 7700,0304 ; 2821 RPW, B, J/XOR
; 2822 .UCODE
; 2823
; 2824 =00****
U 0304, 0060,3100,2000,0000,0025,0033,0000 ; 2825 XOR: AR←AR*AC0,AD/XOR,EXIT
; 2826 =
; 2827 .DCODE
D 0434, 5501,0305 ; 2828 434: R-PF, AC, J/IOR
D 0435, 1500,0305 ; 2829 I-PF, AC, J/IOR
D 0436, 7600,0305 ; 2830 RPW, M, J/IOR
D 0437, 7701,0305 ; 2831 RPW, B, J/IOR
; 2832 .UCODE
; 2833
; 2834 =00****
U 0305, 0060,3300,2000,4000,0025,0033,0000 ; 2835 IOR: AR←AR*AC0,AD/OR,EXIT
; 2836 =
; 2837 .DCODE
D 0440, 5501,0306 ; 2838 440: R-PF, AC, J/ANDCB
D 0441, 1500,0306 ; 2839 I-PF, AC, J/ANDCB
D 0442, 7600,0306 ; 2840 RPW, M, J/ANDCB
D 0443, 7701,0306 ; 2841 RPW, B, J/ANDCB
; 2842 .UCODE
; 2843
; 2844 =00****
U 0306, 0060,2400,2000,4000,0025,0033,0000 ; 2845 ANDCB: AR←AR*AC0,AD/ANDC,EXIT
; 2846 =
; 2847 .DCODE
D 0444, 5500,0307 ; 2848 444: R-PF, AC, J/EQV
D 0445, 1501,0307 ; 2849 I-PF, AC, J/EQV
D 0446, 7601,0307 ; 2850 RPW, M, J/EQV
D 0447, 7700,0307 ; 2851 RPW, B, J/EQV
; 2852 .UCODE
; 2853
; 2854 =00****
U 0307, 0060,2600,2000,0000,0025,0033,0000 ; 2855 EQV: AR←AR*AC0,AD/EQV,EXIT
; 2856 =
; 2857 .DCODE
D 0450, 1501,0310 ; 2858 450: I-PF, AC, J/SETCA
D 0451, 1501,0310 ; 2859 I-PF, AC, J/SETCA
D 0452, 3600,0310 ; 2860 W, M, J/SETCA
D 0453, 3701,0310 ; 2861 W, B, J/SETCA
; 2862 .UCODE
; 2863
; 2864 =00****
U 0310, 0060,2500,2000,0000,0025,0033,0000 ; 2865 SETCA: AR←AR*AC0,AD/SETCB,EXIT
; 2866 =
; 2867
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 58
; DSK: UCODE; BASIC 10 04:18:23 8-JAN-76 BOOLEAN GROUP
; 2868 .DCODE
D 0454, 5501,0311 ; 2869 454: R-PF, AC, J/ORCA
D 0455, 1500,0311 ; 2870 I-PF, AC, J/ORCA
D 0456, 7600,0311 ; 2871 RPW, M, J/ORCA
D 0457, 7701,0311 ; 2872 RPW, B, J/ORCA
; 2873 .UCODE
; 2874
; 2875 =00****
U 0311, 0060,2700,2000,4000,0025,0033,0000 ; 2876 ORCA: AR←AR*AC0,AD/ORCB,EXIT
; 2877 =
; 2878 .DCODE
D 0460, 5501,0312 ; 2879 460: R-PF, AC, J/SETCM
D 0461, 1500,0312 ; 2880 I-PF, AC, J/SETCM
D 0462, 7600,0312 ; 2881 RPW, M, J/SETCM
D 0463, 7701,0312 ; 2882 RPW, B, J/SETCM
; 2883 .UCODE
; 2884
; 2885 =00****
U 0312, 0060,2001,2000,0000,0005,0033,0000 ; 2886 SETCM: ADA/AR,AD/SETCA,AR/AD,EXIT
; 2887 =
; 2888 .DCODE
D 0464, 5500,0313 ; 2889 464: R-PF, AC, J/ORCM
D 0465, 1501,0313 ; 2890 I-PF, AC, J/ORCM
D 0466, 7601,0313 ; 2891 RPW, M, J/ORCM
D 0467, 7700,0313 ; 2892 RPW, B, J/ORCM
; 2893 .UCODE
; 2894
; 2895 =00****
U 0313, 0060,2200,2000,4000,0025,0033,0000 ; 2896 ORCM: AR←AR*AC0,AD/ORCA,EXIT
; 2897 =
; 2898 .DCODE
D 0470, 5501,0314 ; 2899 470: R-PF, AC, J/ORCB
D 0471, 1500,0314 ; 2900 I-PF, AC, J/ORCB
D 0472, 7600,0314 ; 2901 RPW, M, J/ORCB
D 0473, 7701,0314 ; 2902 RPW, B, J/ORCB
; 2903 .UCODE
; 2904
; 2905 =00****
U 0314, 0060,2100,2000,4000,0025,0033,0000 ; 2906 ORCB: AR←AR*AC0,AD/ORC,EXIT
; 2907 =
; 2908 .DCODE
D 0474, 1501,0315 ; 2909 474: I-PF, AC, J/SETO
D 0475, 1501,0315 ; 2910 I-PF, AC, J/SETO
D 0476, 3600,0315 ; 2911 W, M, J/SETO
D 0477, 3701,0315 ; 2912 W, B, J/SETO
; 2913 .UCODE
; 2914
; 2915 =00****
U 0315, 0060,2301,2000,0000,0005,0033,0000 ; 2916 SETO: AR←1S,EXIT
; 2917 =
; 2918
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 59
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 BOOLEAN GROUP
; 2919
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 60
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 TEST GROUP
; 2920 .TOC "TEST GROUP"
; 2921
; 2922 .DCODE
D 0600, 1000,0404 ; 2923 600: I-PF, J/TDN ;TRN- IS NOP
D 0601, 1000,0404 ; 2924 I-PF, J/TDN ;SO IS TLN-
D 0602, 0000,0403 ; 2925 I, TNE, J/TDXX
D 0603, 0001,0402 ; 2926 I, TNE, J/TSXX
D 0604, 0000,0400 ; 2927 I, TNA, J/TDX
D 0605, 0001,0401 ; 2928 I, TNA, J/TSX
D 0606, 0401,0403 ; 2929 I, TNN, J/TDXX
D 0607, 0400,0402 ; 2930 I, TNN, J/TSXX
; 2931
D 0610, 1000,0404 ; 2932 610: I-PF, J/TDN ;TDN- IS A NOP
D 0611, 1000,0404 ; 2933 I-PF, J/TDN ;TSN- ALSO
D 0612, 4001,0403 ; 2934 R, TNE, J/TDXX
D 0613, 4000,0402 ; 2935 R, TNE, J/TSXX
D 0614, 4001,0400 ; 2936 R, TNA, J/TDX
D 0615, 4000,0401 ; 2937 R, TNA, J/TSX
D 0616, 4400,0403 ; 2938 R, TNN, J/TDXX
D 0617, 4401,0402 ; 2939 R, TNN, J/TSXX
; 2940
D 0620, 0500,0400 ; 2941 620: I, TZ-, J/TDX
D 0621, 0501,0401 ; 2942 I, TZ-, J/TSX
D 0622, 0101,0403 ; 2943 I, TZE, J/TDXX
D 0623, 0100,0402 ; 2944 I, TZE, J/TSXX
D 0624, 0101,0400 ; 2945 I, TZA, J/TDX
D 0625, 0100,0401 ; 2946 I, TZA, J/TSX
D 0626, 0500,0403 ; 2947 I, TZN, J/TDXX
D 0627, 0501,0402 ; 2948 I, TZN, J/TSXX
; 2949
D 0630, 4501,0400 ; 2950 630: R, TZ-, J/TDX
D 0631, 4500,0401 ; 2951 R, TZ-, J/TSX
D 0632, 4100,0403 ; 2952 R, TZE, J/TDXX
D 0633, 4101,0402 ; 2953 R, TZE, J/TSXX
D 0634, 4100,0400 ; 2954 R, TZA, J/TDX
D 0635, 4101,0401 ; 2955 R, TZA, J/TSX
D 0636, 4501,0403 ; 2956 R, TZN, J/TDXX
D 0637, 4500,0402 ; 2957 R, TZN, J/TSXX
; 2958
D 0640, 0600,0400 ; 2959 640: I, TC-, J/TDX
D 0641, 0601,0401 ; 2960 I, TC-, J/TSX
D 0642, 0201,0403 ; 2961 I, TCE, J/TDXX
D 0643, 0200,0402 ; 2962 I, TCE, J/TSXX
D 0644, 0201,0400 ; 2963 I, TCA, J/TDX
D 0645, 0200,0401 ; 2964 I, TCA, J/TSX
D 0646, 0600,0403 ; 2965 I, TCN, J/TDXX
D 0647, 0601,0402 ; 2966 I, TCN, J/TSXX
; 2967
D 0650, 4601,0400 ; 2968 650: R, TC-, J/TDX
D 0651, 4600,0401 ; 2969 R, TC-, J/TSX
D 0652, 4200,0403 ; 2970 R, TCE, J/TDXX
D 0653, 4201,0402 ; 2971 R, TCE, J/TSXX
D 0654, 4200,0400 ; 2972 R, TCA, J/TDX
D 0655, 4201,0401 ; 2973 R, TCA, J/TSX
D 0656, 4601,0403 ; 2974 R, TCN, J/TDXX
D 0657, 4600,0402 ; 2975 R, TCN, J/TSXX
; 2976
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 61
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 TEST GROUP
D 0660, 0701,0400 ; 2977 660: I, TO-, J/TDX
D 0661, 0700,0401 ; 2978 I, TO-, J/TSX
D 0662, 0300,0403 ; 2979 I, TOE, J/TDXX
D 0663, 0301,0402 ; 2980 I, TOE, J/TSXX
D 0664, 0300,0400 ; 2981 I, TOA, J/TDX
D 0665, 0301,0401 ; 2982 I, TOA, J/TSX
D 0666, 0701,0403 ; 2983 I, TON, J/TDXX
D 0667, 0700,0402 ; 2984 I, TON, J/TSXX
; 2985
D 0670, 4700,0400 ; 2986 670: R, TO-, J/TDX
D 0671, 4701,0401 ; 2987 R, TO-, J/TSX
D 0672, 4301,0403 ; 2988 R, TOE, J/TDXX
D 0673, 4300,0402 ; 2989 R, TOE, J/TSXX
D 0674, 4301,0400 ; 2990 R, TOA, J/TDX
D 0675, 4300,0401 ; 2991 R, TOA, J/TSX
D 0676, 4700,0403 ; 2992 R, TON, J/TDXX
D 0677, 4701,0402 ; 2993 R, TON, J/TSXX
; 2994 .UCODE
; 2995
; 2996 ;THESE 64 INSTRUCTIONS ARE DECODED BY MASK MODE (IMMEDIATE OR MEMORY)
; 2997 ; IN THE A FIELD, DISPATCH TO HERE ON THE J FIELD, AND RE-DISPATCH
; 2998 ; FOR THE MODIFICATION ON THE B FIELD.
; 2999
; 3000 ; ENTER WITH 0,E OR (E) IN AR, B FIELD BITS 1 AND 2 AS FOLLOWS:
; 3001 ; 0 0 NO MODIFICATION
; 3002 ; 0 1 ZEROS
; 3003 ; 1 0 COMPLEMENT
; 3004 ; 1 1 ONES
; 3005 ; THIS ORDER HAS NO SIGNIFICANCE EXCEPT THAT IT CORRESPONDS TO THE
; 3006 ; ORDER OF INSTRUCTIONS AT TGROUP.
; 3007
; 3008 ;THE HIGH ORDER BIT OF THE B FIELD (B0) IS XOR'D WITH AD CRY0 TO
; 3009 ; DETERMINE THE SENSE OF THE SKIP:
; 3010 ; 0 SKIP IF CRY0=1 (TXX- AND TXXN)
; 3011 ; 1 SKIP IF CRY0=0 (TXXA AND TXXE)
; 3012
; 3013 =00*000
; 3014 TDX: TEST FETCH,NO CRY, ;TDXA AND TRXA
U 0400, 0404,2001,0000,0000,0226,0033,0203 ; 3015 B DISP,J/TDN
; 3016
; 3017 TSX: AR←AR SWAP,TEST FETCH,NO CRY, ;TSX, TSXA, TLX, AND TLXA
U 0401, 0404,2041,4000,0000,3226,0033,0203 ; 3018 B DISP,J/TDN
; 3019
U 0402, 0403,4001,4000,0000,3000,0010,0000 ; 3020 TSXX: AR←AR SWAP ;TSXE, TSXN, TLXE, AND TLXN
; 3021
U 0403, 0404,3600,0000,0000,0246,0033,0203 ; 3022 TDXX: TEST AR.AC0,TEST FETCH,B DISP ;TDXE, TDXN, TRXE, AND TRXN
; 3023
U 0404, 0013,0001,0000,0000,0000,0010,0000 ; 3024 TDN: J/FINI ;NO MODIFICATION
U 0405, 0065,3000,2000,0000,0020,0010,0000 ; 3025 TDZ: AR←AR*AC0,AD/ANDCA,J/STAC ;ZEROS
U 0406, 0065,3100,2000,4000,0020,0010,0000 ; 3026 TDC: AR←AR*AC0,AD/XOR,J/STAC ;COMP
U 0407, 0065,3300,2000,4000,0020,1610,0000 ; 3027 TDO: AR←AR*AC0,AD/OR,SR←0,J/STAC ;ONES
; 3028 =
; 3029
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 62
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 COMPARE -- CAI, CAM
; 3030 .TOC "COMPARE -- CAI, CAM"
; 3031
; 3032 .DCODE
D 0300, 0300,0316 ; 3033 300: I, SJC-, J/CAIM ;CAI
D 0301, 0201,0316 ; 3034 I, SJCL, J/CAIM
D 0302, 0101,0316 ; 3035 I, SJCE, J/CAIM
D 0303, 0000,0316 ; 3036 I, SJCLE, J/CAIM
D 0304, 0701,0316 ; 3037 I, SJCA, J/CAIM
D 0305, 0600,0316 ; 3038 I, SJCGE, J/CAIM
D 0306, 0500,0316 ; 3039 I, SJCN, J/CAIM
D 0307, 0401,0316 ; 3040 I, SJCG, J/CAIM
; 3041
D 0310, 4301,0316 ; 3042 310: R, SJC-, J/CAIM ;CAM
D 0311, 4200,0316 ; 3043 R, SJCL, J/CAIM
D 0312, 4100,0316 ; 3044 R, SJCE, J/CAIM
D 0313, 4001,0316 ; 3045 R, SJCLE, J/CAIM
D 0314, 4700,0316 ; 3046 R, SJCA, J/CAIM
D 0315, 4601,0316 ; 3047 R, SJCGE, J/CAIM
D 0316, 4501,0316 ; 3048 R, SJCN, J/CAIM
D 0317, 4400,0316 ; 3049 R, SJCG, J/CAIM
; 3050 .UCODE
; 3051
; 3052 =00****
U 0316, 0071,3100,0000,4000,0246,0010,0201 ; 3053 CAIM: GEN AR*AC0,COMP FETCH,J/NOP
; 3054 =
; 3055
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 63
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 ARITHMETIC SKIPS -- AOS, SOS, SKIP
; 3056 .TOC "ARITHMETIC SKIPS -- AOS, SOS, SKIP"
; 3057 ;ENTER WITH (E) IN AR
; 3058
; 3059 .DCODE
D 0330, 4300,0317 ; 3060 330: R, SJC-, J/SKIP ;NOT A NOP IF AC .NE. 0
D 0331, 4201,0317 ; 3061 R, SJCL, J/SKIP
D 0332, 4101,0317 ; 3062 R, SJCE, J/SKIP
D 0333, 4000,0317 ; 3063 R, SJCLE, J/SKIP
D 0334, 4701,0317 ; 3064 R, SJCA, J/SKIP
D 0335, 4600,0317 ; 3065 R, SJCGE, J/SKIP
D 0336, 4500,0317 ; 3066 R, SJCN, J/SKIP
D 0337, 4401,0317 ; 3067 R, SJCG, J/SKIP
; 3068 .UCODE
; 3069
; 3070 =00****
; 3071 SKIP: FIN STORE,SKIP FETCH,
U 0317, 0070,3701,0003,0000,0246,4610,0202 ; 3072 SKP AC#0,J/STSELF ;STORE IN SELF MODE
; 3073 =
; 3074
; 3075 .DCODE
D 0350, 7300,0410 ; 3076 350: RPW, SJC-, J/AOS
D 0351, 7201,0410 ; 3077 RPW, SJCL, J/AOS
D 0352, 7101,0410 ; 3078 RPW, SJCE, J/AOS
D 0353, 7000,0410 ; 3079 RPW, SJCLE, J/AOS
D 0354, 7701,0410 ; 3080 RPW, SJCA, J/AOS
D 0355, 7600,0410 ; 3081 RPW, SJCGE, J/AOS
D 0356, 7500,0410 ; 3082 RPW, SJCN, J/AOS
D 0357, 7401,0410 ; 3083 RPW, SJCG, J/AOS
; 3084 .UCODE
; 3085
; 3086 =00****
U 0410, 0317,4001,2000,0000,0036,1310,0000 ; 3087 AOS: AR←AR+1,AD FLAGS,STORE,J/SKIP
; 3088 =
; 3089
; 3090 .DCODE
D 0370, 7301,0411 ; 3091 370: RPW, SJC-, J/SOS
D 0371, 7200,0411 ; 3092 RPW, SJCL, J/SOS
D 0372, 7100,0411 ; 3093 RPW, SJCE, J/SOS
D 0373, 7001,0411 ; 3094 RPW, SJCLE, J/SOS
D 0374, 7700,0411 ; 3095 RPW, SJCA, J/SOS
D 0375, 7601,0411 ; 3096 RPW, SJCGE, J/SOS
D 0376, 7501,0411 ; 3097 RPW, SJCN, J/SOS
D 0377, 7400,0411 ; 3098 RPW, SJCG, J/SOS
; 3099 .UCODE
; 3100
; 3101 =00****
U 0411, 0317,1703,2000,0000,0036,1310,0000 ; 3102 SOS: AR←AR-1,AD FLAGS,STORE,J/SKIP
; 3103 =
; 3104
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 64
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ
; 3105 .TOC "CONDITIONAL JUMPS -- JUMP, AOJ, SOJ, AOBJ"
; 3106 ; ENTER WITH E IN VMA
; 3107
; 3108 .DCODE
D 0320, 0300,0412 ; 3109 320: I, SJC-, J/JUMP
D 0321, 0201,0412 ; 3110 I, SJCL, J/JUMP
D 0322, 0101,0412 ; 3111 I, SJCE, J/JUMP
D 0323, 0000,0412 ; 3112 I, SJCLE, J/JUMP
D 0324, 0701,0412 ; 3113 I, SJCA, J/JUMP
D 0325, 0600,0412 ; 3114 I, SJCGE, J/JUMP
D 0326, 0500,0412 ; 3115 I, SJCN, J/JUMP
D 0327, 0401,0412 ; 3116 I, SJCG, J/JUMP
; 3117 .UCODE
; 3118
; 3119 =00****
; 3120 .IFNOT/JPC
U 0412, 0071,3240,2000,0000,0246,0010,0502 ; 3121 JUMP: AR←AC0,JUMP FETCH,J/NOP
; 3122 .IF/JPC
; 3123 JUMP: AR←AC0,JUMP FETCH,B DISP,J/JMPJPC
; 3124 .ENDIF/JPC
; 3125 =
; 3126
; 3127 .DCODE
D 0340, 0301,0413 ; 3128 340: I, SJC-, J/AOJ
D 0341, 0200,0413 ; 3129 I, SJCL, J/AOJ
D 0342, 0100,0413 ; 3130 I, SJCE, J/AOJ
D 0343, 0001,0413 ; 3131 I, SJCLE, J/AOJ
D 0344, 0700,0413 ; 3132 I, SJCA, J/AOJ
D 0345, 0601,0413 ; 3133 I, SJCGE, J/AOJ
D 0346, 0501,0413 ; 3134 I, SJCN, J/AOJ
D 0347, 0400,0413 ; 3135 I, SJCG, J/AOJ
; 3136 .UCODE
; 3137
; 3138 =00****
; 3139 .IFNOT/JPC
U 0413, 0070,4660,2000,0000,0266,1310,0502 ; 3140 AOJ: AR←AC0+1,AD FLAGS,JUMP FETCH,J/STORAC
; 3141 .IF/JPC
; 3142 AOJ: AR←AC0+1,AD FLAGS,JUMP FETCH,J/AOJJPC
; 3143 .ENDIF/JPC
; 3144 =
; 3145
; 3146 .DCODE
D 0360, 0300,0414 ; 3147 360: I, SJC-, J/SOJ
D 0361, 0201,0414 ; 3148 I, SJCL, J/SOJ
D 0362, 0101,0414 ; 3149 I, SJCE, J/SOJ
D 0363, 0000,0414 ; 3150 I, SJCLE, J/SOJ
D 0364, 0701,0414 ; 3151 I, SJCA, J/SOJ
D 0365, 0600,0414 ; 3152 I, SJCGE, J/SOJ
D 0366, 0500,0414 ; 3153 I, SJCN, J/SOJ
D 0367, 0401,0414 ; 3154 I, SJCG, J/SOJ
; 3155 .UCODE
; 3156
; 3157 ;THE BASIC INSTRUCTION DISPATCH LOADS MQ WITH -1
; 3158 ;SO THAT WHEN WE GET HERE WE CAN ADD -1 TO THE AC IN
; 3159 ;A SINGLE MICRO-INSTRUCTION.
; 3160 =00****
; 3161 .IFNOT/JPC
U 0414, 0070,0620,2000,0000,0266,1310,0502 ; 3162 SOJ: AR←MQ+AC0,AD FLAGS,JUMP FETCH,J/STORAC
; 3163 .IF/JPC
; 3164 SOJ: AR←MQ+AC0,AD FLAGS,JUMP FETCH,J/SOJJPC
; 3165 .ENDIF/JPC
; 3166 =
; 3167 .DCODE
D 0252, 0601,0415 ; 3168 252: I, SJCGE, J/AOBJ
D 0253, 0200,0415 ; 3169 I, SJCL, J/AOBJ
; 3170 .UCODE
; 3171
; 3172 =00****
; 3173 .IFNOT/JPC
U 0415, 0070,4660,2000,0000,0266,0017,0502 ; 3174 AOBJ: AR←AC0+1,GEN CRY18,JUMP FETCH,J/STORAC
; 3175 .IF/JPC
; 3176 AOBJ: AR←AC0+1,GEN CRY18,JUMP FETCH,J/AOBJPC
; 3177 .ENDIF/JPC
; 3178 =
; 3179
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 65
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 AC DECODE JUMPS -- JRST, JFCL
; 3180 .TOC "AC DECODE JUMPS -- JRST, JFCL"
; 3181
; 3182 .DCODE
D 0254, 0001,0600 ; 3183 254: I, J/JRST ;DISPATCHES TO 1 OF 16 ON AC BITS
D 0255, 0401,0700 ; 3184 I,tnn, J/JFCL
; 3185 .UCODE
; 3186
; 3187 ;A READ DETECTS JRST, AND DISPATCHES TO ONE OF 16 LOC'NS ON AC BITS
; 3188
; 3189 600: ;dram requires jrst at multiple of 200
; 3190 .IFNOT/JPC
U 0600, 0013,0001,0000,0000,0000,0010,0000 ; 3191 JRST: J/FINI ;(0) A READ PREFETCHES ON JRST 0,
; 3192 .IF/JPC
; 3193 JRST: AR←PC,SKP USER, ;(0) A READ PREFETCHES - GO STORE JPC
; 3194 SC←#,#/32.,J/JPCEX
; 3195 .ENDIF/JPC
; 3196 601:
; 3197 .IFNOT/ITSPAGE
; 3198 PORTAL,br/ar,J/brJRST ;(1) PORTAL
; 3199 .IF/ITSPAGE
U 0601, 1002,4001,0000,0000,0000,0010,0000 ; 3200 J/UUO ;(1) NO PUBLIC PAGES => NO PORTAL
; 3201 .ENDIF/ITSPAGE
; 3202 602:
; 3203 .IFNOT/JPC.RING
U 0602, 0072,4001,4040,0000,2000,0036,0000 ; 3204 JRST2: EA MOD DISP,br/ar,ar←arx,J/JRSTF;(2) JRSTF
; 3205 .IF/JPC.RING
; 3206 JRST2: BR/AR,AR←ARX,SC←#,#/32., ;(2) JRSTF
; 3207 EA MOD DISP,J/JRSTF
; 3208 .ENDIF/JPC.RING
U 0603, 1002,4001,0000,0000,0000,0010,0000 ; 3209 603: J/UUO ;(3)
U 0604, 1016,0001,0000,0000,0000,7324,0442 ; 3210 604: HALT,SKP IO LEGAL,J/IHALT ;(4) HALT
U 0605, 1002,4001,0000,0000,0000,0010,0000 ; 3211 605: J/UUO ;(5)
U 0606, 1002,4001,0000,0000,0000,0010,0000 ; 3212 606: J/UUO ;(6)
U 0607, 1002,4001,0000,0000,0000,0010,0000 ; 3213 607: J/UUO ;(7)
; 3214 610:
; 3215 .IFNOT/JPC.RING
U 0610, 0027,0001,0040,0000,0000,0024,0502 ; 3216 DISMISS,br/ar,J/brJRST ;(10)
; 3217 .IF/JPC.RING
; 3218 DISMISS,BR/AR,J/JRS10A ;(10)
; 3219 .ENDIF/JPC.RING
U 0611, 1002,4001,0000,0000,0000,0010,0000 ; 3220 611: J/UUO ;(11)
U 0612, 0602,0001,0000,0000,0000,0024,0502 ; 3221 612: DISMISS,J/JRST2 ;(12) JEN
U 0613, 1002,4001,0000,0000,0000,0010,0000 ; 3222 613: J/UUO ;(13)
U 0614, 1002,4001,0000,0000,0000,0010,0000 ; 3223 614: J/UUO ;(14)
U 0615, 1002,4001,0000,0000,0000,0010,0000 ; 3224 615: J/UUO ;(15)
U 0616, 1002,4001,0000,0000,0000,0010,0000 ; 3225 616: J/UUO ;(16)
; 3226 617:
; 3227 .IFNOT/JRSTON
; 3228 J/UUO ;(17)
; 3229 .IF/JRSTON
; 3230 JRST17: BR/AR,BRX/ARX,AR←1,GEN CRY18, ;(17) JRSTON
U 0617, 0030,4061,2260,0302,0020,0017,0007 ; 3231 ARX/AD,SC←#,#/7,J/JRSTON
; 3232 .ENDIF/JRSTON
; 3233
; 3234 =11***0
U 0072, 0027,0001,0000,0000,0000,0024,0420 ; 3235 JRSTF: RSTR FLAGS←AR,J/brJRST ;NO XR, RESTORE FROM INDIRECT WORD
U 0073, 0072,3200,2002,0000,0020,0010,0000 ; 3236 ar←xr,j/jrstf ;INDEXED, RESTORE FROM REGISTER
; 3237
; 3238 .IF/JPC
; 3239 .IFNOT/JPC.RING
; 3240 BRJRST: VMA←BR,FETCH,J/JPCIFY
; 3241 .IF/JPC.RING
; 3242 JRS10A: SC←#,#/32. ;GRUMBLE - FOR JPC RING
; 3243 BRJRST: VMA←BR,FETCH,SKP USER,J/JPCEX
; 3244 .ENDIF/JPC.RING
; 3245 .IFNOT/JPC
; 3246 BRJRST: ;SAME AS BRJMP
; 3247 .ENDIF/JPC
U 0027, 0071,3242,0000,0000,0306,0010,0400 ; 3248 brJMP: VMA←br,FETCH,J/NOP ;RELOAD VMA WITH NEW FLAGS
; 3249
; 3250
; 3251 .IF/JRSTON
; 3252 ;OKAY TO DO THIS INSTR IN USER MODE, SINCE WHEN IN
; 3253 ; USER MODE THE PI SYSTEM SHOULD BE ON ANYWAY.
; 3254 ;THIS INSTRUCTION IS USEFUL IN CONJUNCTION WITH THE
; 3255 ; PFAIL.PIHACK BUSINESS.
; 3256 =00
U 0030, 1302,3242,4600,0000,0000,2221,0200 ; 3257 JRSTON: AR←SHIFT,ARX←BRX,REQ EBUS,CALL,J/WGRANT ;GOBBLE EBUS
U 0033, 0031,3701,0000,0000,0060,2010,0415 ; 3258 =11 CONO PI ;TURN ON PI SYSTEM
; 3259 REL EBUS,AR←ARX, ;RELEASE EBUS, THEN
U 0031, 0072,4001,4000,0000,2000,2236,0100 ; 3260 EA MOD DISP,J/JRSTF ; GO DO A JRSTF
; 3261 .ENDIF/JRSTON
; 3262
; 3263
; 3264 700: ;jfcl must be at jrst+100
U 0700, 0040,3242,0600,0302,0000,0010,0015 ; 3265 JFCL: arx←brx,sc←#,#/13. ;get back ac field
; 3266 =0* ar←shift,arx←0s, ;move ac to ar32-35
U 0040, 1174,3441,4200,0302,0000,0021,0040 ; 3267 sc←#,#/32.,call,j/shift ;shifter will move to 0-3
U 0042, 0032,3733,2040,0000,0000,0024,0602 ; 3268 br/ar,ar←pc,jfcl t ;get pc flags into ar
; 3269 .IFNOT/JPC
U 0032, 0034,3602,0000,0000,0246,0010,0503 ; 3270 test ar.br,jfcl fetch ;jump if test satisfied
U 0034, 0041,3502,2000,0000,0000,0010,0000 ; 3271 ar←ar*br,ad/andcb ;clear tested flags in ar
U 0041, 0013,4001,0000,0000,0000,0024,0622 ; 3272 jfcl s,j/fini ;set pc from them
; 3273 .IF/JPC
; 3274 ARX←AR*BR,AD/ANDCB,SC←#,#/32. ;SET UP SC FOR JPC RING
; 3275 TEST AR.BR,JFCL FETCH,AR←ARX,SKP CRY0
; 3276 =0 JFCL S,J/FINI ;NO JUMP, ALL DONE
; 3277 JFCL S,AR←PC,SKP USER,J/JPCEX ;JUMP, GO RECORD JPC
; 3278 .ENDIF/JPC
; 3279
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 66
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 HALT LOOP
; 3280 .TOC "HALT LOOP"
; 3281 ;HERE WHILE PROCESSOR IS "HALTED"
; 3282
; 3283 1016:
; 3284 UUO107: ;OP 107 COMES HERE
U 1016, 1002,4001,0000,0000,0000,0010,0000 ; 3285 IHALT: J/UUO ;HERE IF HALT IN USER/SUPER MODE
; 3286 1017:
; 3287 DHALT: AR←0S,SET HALTED, ;KERNEL OR CONSOLE HALT
U 1017, 0074,3401,2000,0000,0100,1515,0302 ; 3288 VMA/PC,PC←VMA ; IF JRST 4, COPY EA TO PC
; 3289 =11***0
U 0074, 0076,4001,0000,0000,0020,7110,0000 ; 3290 HALT1: SKP -START,time/3t,J/HALT2 ;CHECK FOR CONTINUE BUTTON
U 0075, 0144,0001,0000,0000,0000,7710,0000 ; 3291 TAKE INTRPT ;HERE IF EXAMINE/DEPOSIT UP
; 3292 =11***0
U 0076, 0164,3701,0000,0000,0040,5410,0000 ; 3293 HALT2: SKP ar ne,J/UNHALT ;instr from switches?
U 0077, 0074,0001,0000,0000,0000,7010,0000 ; 3294 SKP INTRPT,J/HALT1
; 3295 =11***0
U 0164, 0050,0001,0000,0000,0100,1510,0010 ; 3296 UNHALT: CONTINUE,vma/PC,J/cont ;RESUME. FETCH FROM PC
U 0165, 0266,0001,0000,0000,0000,1510,0310 ; 3297 SET CONS XCT,J/uXCT ;XCT ONE FROM "SWITCHES"
; 3298
U 0050, 0011,0001,0000,0000,0006,0010,0400 ; 3299 cont: fetch,j/xctw ;xct next instr in line
; 3300
; 3301
; 3302 .TOC "MAP, XCT"
; 3303
; 3304 .DCODE
D 0256, 4000,1001 ; 3305 256: R, J/XCT ;OPERAND FETCHED AS DATA
; 3306 .IF/MAP
; 3307 I, AC, J/MAP
; 3308 .IFNOT/MAP
D 0257, 0001,1002 ; 3309 J/UUO
; 3310 .ENDIF/MAP
; 3311 .UCODE
; 3312
; 3313 .IF/MAP
; 3314 =00***0
; 3315 .IFNOT/MAP
; 3316 1001: ;GET XCT NEAR UUO
; 3317 .ENDIF/MAP
; 3318 .IFNOT/XCTR
; 3319 XCT: skp intrpt,j/xct1 ;check for xct . loop
; 3320 .IF/XCTR
U 1001, 0266,4001,0000,0000,0000,7010,0000 ; 3321 XCT: SKP INTRPT,J/UXCT ;CHECK FOR XCT LOOP
; 3322 .ENDIF/XCTR
; 3323
; 3324 .IF/MAP
; 3325 MAP: MAP,BR/AR ;MAP E, GO READ BACK EBRG
; 3326 =
; 3327 .IF/KLPAGE ;IN KL PAGING MODE,
; 3328 SR←MAP ;MAP CAN PAGE FAIL
; 3329 .ENDIF/KLPAGE
; 3330 .IFNOT/MAP
; 3331 .IFNOT/XCTR
; 3332 =
; 3333 .ENDIF/XCTR
; 3334 .ENDIF/MAP
; 3335 =11***0
; 3336 RDEBRG: AR←0S,SKP IO LEGAL,MB WAIT, ;FINISH READ REG FUNC
U 0166, 1324,3441,2000,0000,0002,7321,0000 ; 3337 CALL,J/GETEEB ;AND GET EBUS
U 0167, 0051,0001,3000,0000,0060,2010,0567 ; 3338 AR←EBUS REG ;READ DATA
U 0051, 0066,0001,0000,0000,0005,2233,0000 ; 3339 REL ECL EBUS,B WRITE,J/ST6 ;GIVE IT TO USER
; 3340
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 67
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 ITS PAGE MAP INSTRUCTIONS -- LPM, SPM
; 3341 .TOC "ITS PAGE MAP INSTRUCTIONS -- LPM, SPM"
; 3342
; 3343 ;THE WORDS LOADED OR STORED BY LPM AND SPM ARE AS FOLLOWS:
; 3344 ; (E) JPC (OR JPC RING POINTER)
; 3345 ; (E+1) ADDRESS BREAK WORD
; 3346 ; (E+2) PFW AS OF MOST RECENT PAGE FAIL
; 3347 ; (E+3) DBR1
; 3348 ; (E+4) DBR2
; 3349
; 3350 .IF/LPM.SPM
; 3351 =00**00
U 0500, 0170,4001,0400,0000,1012,3610,0000 ; 3352 LPM: ARX←AR,VMA←VMA+1,LOAD AR,J/LPM1 ;ARX←JPC,FETCH MAR
; 3353
; 3354 =10
U 0502, 2002,4001,0000,0000,0000,6121,0000 ; 3355 SPM: CALL,SKP KERNEL,J/IOCHK ;SPM OKAY ONLY IN KERNEL MODE
; 3356 .IFNOT/JPC
U 0503, 0052,0001,0000,0000,0000,3610,0000 ; 3357 VMA←VMA+1
; 3358 =
; 3359 .IF/JPC
; 3360 AR←JPC,STORE
; 3361 = MEM←AR,VMA←VMA+1
; 3362 .ENDIF/JPC
U 0052, 0053,3240,2007,0000,0036,3610,0140 ; 3363 AR←UPFW,STORE,VMA←VMA+1
U 0053, 0054,4001,0003,0000,0002,3610,0000 ; 3364 MEM←AR,VMA←VMA+1
U 0054, 0055,3200,2007,0000,0036,0010,0141 ; 3365 AR←DBR1,STORE
U 0055, 0056,0001,0003,0000,0002,3610,0000 ; 3366 MEM←AR,VMA←VMA+1
U 0056, 0066,3200,2007,0000,0036,0010,0142 ; 3367 AR←DBR2,STORE,J/STMEM
; 3368
; 3369 =11***0
U 0170, 1324,3200,0003,0000,0022,6121,0000 ; 3370 LPM1: AR←MEM,CALL,SKP KERNEL,J/GETEEB ;LPM LEGAL ONLY IN KERNEL MODE
U 0171, 0057,3703,0000,0000,0060,2010,0417 ; 3371 DATAO APR
U 0057, 0060,4001,4000,0000,2000,2210,0000 ; 3372 REL ECL EBUS,AR←ARX
; 3373 .IF/JPC
; 3374 JPC←AR
; 3375 .ENDIF/JPC
U 0060, 0064,0001,0000,0000,0012,3610,0000 ; 3376 VMA←VMA+1,LOAD AR
U 0064, 0117,3200,0003,0000,0022,3610,0000 ; 3377 AR←MEM,VMA←VMA+1
U 0117, 0120,3243,7700,0000,0000,0010,0000 ; 3378 BAG-BITING NO-OP
U 0120, 0121,0001,0007,0000,0012,1010,0140 ; 3379 UPFW←AR,LOAD AR
U 0121, 0122,3200,0003,0000,0022,3610,0000 ; 3380 AR←MEM,VMA←VMA+1
U 0122, 0123,3243,7700,0000,0000,0010,0000 ; 3381 BAG-BITING NO-OP
U 0123, 0124,4001,0007,0000,0012,1010,0141 ; 3382 DBR1←AR,LOAD AR
U 0124, 0125,3240,0003,0000,0022,0010,0000 ; 3383 AR←MEM
U 0125, 0126,3243,7700,0000,0000,0010,0000 ; 3384 BAG-BITING NO-OP
U 0126, 1355,4001,0007,0000,0000,1010,0142 ; 3385 DBR2←AR,J/CLRPT1 ;REALLY LPMR - CLEAR PAGE TABLE
; 3386 .ENDIF/LPM.SPM
; 3387
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 68
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ
; 3388 .TOC "STACK INSTRUCTIONS -- PUSHJ, PUSH, POP, POPJ"
; 3389
; 3390 .DCODE
D 0260, 0000,0417 ; 3391 260: I, J/PUSHJ
D 0261, 4000,0416 ; 3392 R, J/PUSH
D 0262, 0000,0504 ; 3393 I, J/POP
D 0263, 0001,0505 ; 3394 I, J/POPJ
; 3395 .UCODE
; 3396
; 3397 ;PUSHJ
; 3398 ; ENTER WITH E IN AR
; 3399 ;PUSH
; 3400 ; ENTER WITH (E) IN AR
; 3401
; 3402 =00***0
; 3403 PUSH: ARX←AC0+1,GEN CRY18,SKP CRY0, ;BUMP BOTH HALVES OF AC,
U 0416, 0134,4660,0200,0000,0356,5417,0000 ; 3404 VMA/AD,STORE,j/stmac ;PUT AR ONTO LIST
; 3405
U 0417, 0127,4031,2040,0000,0020,0025,0000 ; 3406 PUSHJ: BR/AR,AR←PC+1 ;SAVE JUMP ADDR, GET PC
; 3407 = ARX←AC0+1,GEN CRY18,SKP CRY0, ;COMPUTE STACK ADDRESS
U 0127, 0132,4660,0200,0000,0356,5417,0000 ; 3408 VMA/AD,STORE,J/JSTAC ;AND PREPARE TO STORE PC
; 3409 =*1**00
U 0130, 0757,3701,0000,0000,0313,0021,0000 ; 3410 JRA1: VMA←AR,LOAD ARX,CALL,J/XFERW ;GET SAVED AC
; 3411 =10
; 3412 .IFNOT/JPC
; 3413 jstac: FIN STORE,VMA←BR,FETCH, ;STORE PC, JUMP ADDR TO VMA
U 0132, 0070,3202,4003,0000,2306,0010,0400 ; 3414 AR←ARX,j/storac ;PREPARE TO STORE AC VALUE
; 3415 .IF/JPC
; 3416 JSTAC: FIN STORE,VMA←BR,
; 3417 FETCH,AR←ARX,
; 3418 SKP USER,J/JPCSTO ;STORE AC, THEN RECORD JPC
; 3419 .ENDIF/JPC
U 0133, 0132,4001,0003,0000,0002,1110,0040 ; 3420 MEM←AR,TRAP2,J/JSTAC ;CAUSE PDL OVRFLO
; 3421
; 3422 =0
; 3423 STMAC: FIN STORE,I FETCH, ;STORE RESULT, GET NEXT INSTR
U 0134, 0070,0001,4003,0000,2206,0010,0400 ; 3424 AR←ARX,J/STORAC ;STORE AC
; 3425 MEM←AR,TRAP2, ;PDL OVFLO, CAUSE TRAP
U 0135, 0067,0001,4003,0000,2002,1110,0040 ; 3426 AR←ARX,J/IFSTAC ;UPDATE AC BEFORE TRAPPING
; 3427
; 3428
; 3429 ;pop, POPJ
; 3430 ;enter with e in ar
; 3431
; 3432 =00***0
; 3433 pop: br/ar,ar←ac0,vma/ad, ;get pushdown pointer
U 0504, 0141,3240,2040,0000,0332,0010,0000 ; 3434 load ar,j/pop1 ;begin data fetch from stack
; 3435
U 0505, 0131,3200,2000,0000,0333,0010,0000 ; 3436 POPJ: AR←AC0,VMA/AD,LOAD ARX ;START FETCH FROM STACK
U 0131, 0172,1701,2000,0000,0040,5411,0000 ; 3437 = AR←AR-1,INH CRY18,SKP CRY0 ;DECR STACK POINTER, CHECK UNDERFLOW
; 3438 .IFNOT/JPC.RING
; 3439 =*1***0
U 0172, 0136,3240,0003,0000,0022,1110,0040 ; 3440 ARX←MEM,TRAP2,J/POPJ1 ;UNDERFLOW OCCURRED
U 0173, 0136,3200,0003,0000,0022,0010,0000 ; 3441 ARX←MEM ;GET STACK WORD
; 3442 .IFNOT/JPC
U 0136, 0071,3713,0000,0000,0306,1010,0400 ; 3443 POPJ1: AC0←AR,VMA←ARX,FETCH,J/NOP ;SET NEW AC VALUE, JUMP
; 3444 .IF/JPC
; 3445 POPJ1: AC0←AR,VMA←ARX,FETCH,J/JPCIFY
; 3446 .ENDIF/JPC
; 3447 .IF/JPC.RING
; 3448 =*1***0
; 3449 ARX←MEM,TRAP2 ;TWO TICKS SLOWER ON OVERFLOW, BUT WHO CARES?
; 3450 ARX←MEM,SKP USER,SC←#,#/32. ;JPC.RING NEEDS 32. IN SC
; 3451 AC0←AR,VMA←ARX,FETCH,J/JPCEX
; 3452 AC0←AR,VMA←ARX,FETCH,J/JPCUSR
; 3453 .ENDIF/JPC.RING
; 3454
; 3455
U 0141, 0174,1701,0200,0000,0040,5411,0000 ; 3456 pop1: ARX←AR-1,INH CRY18,SKP CRY0 ;ADJUST POINTER, CHECK TRAP
; 3457 =*1***0
U 0174, 0175,3200,0003,0000,0022,1110,0040 ; 3458 AR←MEM,TRAP2 ;PDL OVFLO, CAUSE TRAP
U 0175, 0143,3240,0003,0000,0022,1610,0100 ; 3459 AR←MEM,SR←#,#/100 ;SET DEST CONTEXT FLAG
U 0143, 0134,3202,0000,0000,0316,1610,0000 ; 3460 VMA←BR,STORE,SR←0,J/STMAC ;PUT RESULT AWAY, THEN AC
; 3461
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 69
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA
; 3462 .TOC "SUBROUTINE CALL/RETURN -- JSR, JSP, JSA, JRA"
; 3463
; 3464 .DCODE
D 0264, 0000,0507 ; 3465 264: I, J/JSR
D 0265, 0001,0506 ; 3466 I, J/JSP
D 0266, 0000,0510 ; 3467 I, J/JSA
D 0267, 0001,0511 ; 3468 I, J/JRA
; 3469 .UCODE
; 3470
; 3471 =00***0
; 3472 .IFNOT/JPC
U 0506, 0070,4031,2000,0000,0026,0025,0400 ; 3473 JSP: AR←PC+1,FETCH,J/STORAC
; 3474 .IF/JPC
; 3475 JSP: AR←PC+1,FETCH,SKP USER,J/JPCSTO
; 3476 .ENDIF/JPC
; 3477
U 0507, 0147,4031,2000,0000,0036,0025,0000 ; 3478 JSR: AR←PC+1,STORE
; 3479 =
; 3480 .IFNOT/JPC
U 0147, 0071,0001,0003,0000,0006,3610,0400 ; 3481 FIN STORE,VMA←VMA+1,FETCH,J/NOP
; 3482 .IF/JPC
; 3483 FIN STORE,VMA←VMA+1,FETCH,J/JPCIFY
; 3484 .ENDIF/JPC
; 3485
; 3486 =00***0
U 0510, 0155,3200,2400,0000,3036,0010,0000 ; 3487 JSA: ARX←AR SWAP,AR←AC0,STORE,J/JSA1 ;SAVE E IN ARX LEFT, GET AC
; 3488
U 0511, 0154,3200,2040,0000,0020,0010,0000 ; 3489 JRA: BR/AR,AR←AC0 ;GET AC, SAVE JUMP ADDR
U 0154, 0130,4001,4000,0000,3001,0010,0020 ; 3490 = ARR←ARL,ARL←0.M,J/JRA1 ;GET AC LEFT
; 3491
U 0155, 0176,0001,0003,0000,0006,3610,0400 ; 3492 JSA1: FIN STORE,VMA←VMA+1,FETCH ;JUMP TO E+1
; 3493 .IFNOT/JPC
U 0176, 0065,4033,2000,0000,2020,0022,0004 ; 3494 ARR←PC+1,ARL←ARXL,J/STAC ;PC+1,,E GOES TO AC
; 3495 .IF/JPC
; 3496 ARR←PC+1,ARL←ARXL,SKP USER,J/JPCSTO
; 3497 .ENDIF/JPC
; 3498
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 70
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 UUO'S
; 3499 .TOC "UUO'S"
; 3500 ;LUUO'S TRAP TO CURRENT CONTEXT
; 3501 ; extended instruction set is "hidden" beneath luuo opcodes
; 3502
; 3503 .DCODE
D 0000, 0001,1002 ; 3504 000: i, j/uuo
; 3505 .IF/EIS
; 3506 i, sjcl, j/l-cms ;cmsl hidden beneath luuo
; 3507 i, sjce, j/l-cms
; 3508 i, sjcle, j/l-cms
; 3509 i, b/2, j/l-edit ;edit hidden under 004
; 3510 i, sjcge, j/l-cms
; 3511 i, sjcn, j/l-cms
; 3512 i, sjcg, j/l-cms
; 3513
; 3514 .IF/DECIMAL
; 3515 010: i, b/1, j/l-dbin ;cvtdbo
; 3516 i, b/4, j/l-dbin ;cvtdbt
; 3517 i, b/1, j/l-bdec ;cvtbdo
; 3518 i, b/0, j/l-bdec ;cvtbdt
; 3519 .IFNOT/DECIMAL
; 3520 010: I, J/LUUO
; 3521 I, J/LUUO
; 3522 I, J/LUUO
; 3523 I, J/LUUO
; 3524 .ENDIF/DECIMAL
; 3525
; 3526 014: i, b/1, j/l-mvs ;movso
; 3527 i, b/0, j/l-mvs ;movst
; 3528 i, b/2, j/l-mvs ;movslj
; 3529 i, b/3, j/l-mvs ;movsrj
; 3530 .IFNOT/EIS
D 0001, 0000,1006 ; 3531 I, J/LUUO
D 0002, 0000,1006 ; 3532 I, J/LUUO
D 0003, 0000,1006 ; 3533 I, J/LUUO
; 3534
D 0004, 0000,1006 ; 3535 004: I, J/LUUO
D 0005, 0000,1006 ; 3536 I, J/LUUO
D 0006, 0000,1006 ; 3537 I, J/LUUO
D 0007, 0000,1006 ; 3538 I, J/LUUO
; 3539
D 0010, 0000,1006 ; 3540 010: I, J/LUUO
D 0011, 0000,1006 ; 3541 I, J/LUUO
D 0012, 0000,1006 ; 3542 I, J/LUUO
D 0013, 0000,1006 ; 3543 I, J/LUUO
; 3544
D 0014, 0000,1006 ; 3545 014: I, J/LUUO
D 0015, 0000,1006 ; 3546 I, J/LUUO
D 0016, 0000,1006 ; 3547 I, J/LUUO
D 0017, 0000,1006 ; 3548 I, J/LUUO
; 3549 .ENDIF/EIS
; 3550
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 71
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 UUO'S
; 3551 ;USER UUO'S 20-37
; 3552
D 0020, 0000,1006 ; 3553 020: I, J/LUUO
D 0021, 0000,1006 ; 3554 I, J/LUUO
D 0022, 0000,1006 ; 3555 I, J/LUUO
D 0023, 0000,1006 ; 3556 I, J/LUUO
; 3557
D 0024, 0000,1006 ; 3558 024: I, J/LUUO
D 0025, 0000,1006 ; 3559 I, J/LUUO
D 0026, 0000,1006 ; 3560 I, J/LUUO
D 0027, 0000,1006 ; 3561 I, J/LUUO
; 3562
D 0030, 0000,1006 ; 3563 030: I, J/LUUO
D 0031, 0000,1006 ; 3564 I, J/LUUO
D 0032, 0000,1006 ; 3565 I, J/LUUO
D 0033, 0000,1006 ; 3566 I, J/LUUO
; 3567
D 0034, 0000,1006 ; 3568 034: I, J/LUUO
D 0035, 0000,1006 ; 3569 I, J/LUUO
D 0036, 0000,1006 ; 3570 I, J/LUUO
D 0037, 0000,1006 ; 3571 I, J/LUUO
; 3572
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 72
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 UUO'S
; 3573 ;MONITOR UUO'S -- TRAP TO EXEC
; 3574
D 0040, 0001,1002 ; 3575 040: I, J/MUUO ;CALL
D 0041, 0001,1002 ; 3576 I, J/MUUO ;INIT
D 0042, 0001,1002 ; 3577 I, J/MUUO
D 0043, 0001,1002 ; 3578 I, J/MUUO
D 0044, 0001,1002 ; 3579 I, J/MUUO
D 0045, 0001,1002 ; 3580 I, J/MUUO
D 0046, 0001,1002 ; 3581 I, J/MUUO
D 0047, 0001,1002 ; 3582 I, J/MUUO ;CALLI
D 0050, 0001,1002 ; 3583 I, J/MUUO ;OPEN
D 0051, 0001,1002 ; 3584 I, J/MUUO ;TTCALL
D 0052, 0001,1002 ; 3585 I, J/MUUO
D 0053, 0001,1002 ; 3586 I, J/MUUO
D 0054, 0001,1002 ; 3587 I, J/MUUO
D 0055, 0001,1002 ; 3588 I, J/MUUO ;RENAME
D 0056, 0001,1002 ; 3589 I, J/MUUO ;IN
D 0057, 0001,1002 ; 3590 I, J/MUUO ;OUT
D 0060, 0001,1002 ; 3591 I, J/MUUO ;SETSTS
D 0061, 0001,1002 ; 3592 I, J/MUUO ;STATO
D 0062, 0001,1002 ; 3593 I, J/MUUO ;GETSTS
D 0063, 0001,1002 ; 3594 I, J/MUUO ;STATZ
D 0064, 0001,1002 ; 3595 I, J/MUUO ;INBUF
D 0065, 0001,1002 ; 3596 I, J/MUUO ;OUTBUF
D 0066, 0001,1002 ; 3597 I, J/MUUO ;INPUT
D 0067, 0001,1002 ; 3598 I, J/MUUO ;OUTPUT
D 0070, 0001,1002 ; 3599 I, J/MUUO ;CLOSE
D 0071, 0001,1002 ; 3600 I, J/MUUO ;RELEAS
D 0072, 0001,1002 ; 3601 I, J/MUUO ;MTAPE
D 0073, 0001,1002 ; 3602 I, J/MUUO ;UGETF
; 3603 .IFNOT/XCTR
; 3604 I, J/MUUO ;USETI
; 3605 I, J/MUUO ;USETO
; 3606 .IF/XCTR
D 0074, 4000,0514 ; 3607 R, J/PXCT ;PXCT FOR ITS
D 0075, 4000,0514 ; 3608 R, J/PXCT ;PXCTI FOR ITS
; 3609 .ENDIF/XCTR
; 3610 .IFNOT/LPM.SPM
; 3611 I, J/MUUO ;LOOKUP
; 3612 I, J/MUUO ;ENTER
; 3613 .IF/LPM.SPM
D 0076, 4000,0500 ; 3614 R, J/LPM ;LOAD PAGE MAP
D 0077, 3000,0502 ; 3615 W, J/SPM ;STORE PAGE MAP
; 3616 .ENDIF/LPM.SPM
; 3617
; 3618 ;EXPANSION OPCODES
; 3619
; 3620 100:
D 0100, 0001,1002 ; 3621 I, J/UUO ;UJEN
D 0101, 0001,1002 ; 3622 I, J/UUO
; 3623 102:
D 0102, 0001,1002 ; 3624 I, J/UUO
D 0103, 0001,1002 ; 3625 I, J/UUO
; 3626 .UCODE
; 3627
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 73
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 UUO'S
; 3628 ;HERE FOR UNDEFINED OPS (UUO'S) AND ILLEGAL INSTRUCTIONS
; 3629 ;E IS IN AR, OPCODE AND AC IN BRX
; 3630
; 3631 1002: ;fixed address to cooperate
; 3632 ;with extend AND OTHER OPS
; 3633 UUO: ;UNDEFINED OP'S .GE. 100
U 1002, 0264,3242,0600,0302,0000,0021,0015 ; 3634 MUUO: ARX←BRX,SC←#,#/13.,CALL,J/ROTS
U 1003, 0220,0001,4000,0000,0100,3010,0424 ; 3635 1003: AR←SHIFT,VMA←#,#/424,J/MUUO1
; 3636
; 3637 ;HERE ON LUUO'S
; 3638 ; E IN AR, INSTR IN BRX
; 3639 1005:
; 3640 .IFNOT/EIS
; 3641 FIX: FE←EXP-#,#/244,SKP SCAD0, ;GET BINARY POINT POSITION
U 1005, 0762,5401,0200,5231,0020,5116,0244 ; 3642 ARX←AR SIGN,J/FIX1 ;SET ROUNDING CONSTANT, GO FIX
; 3643 .IF/EIS
; 3644 l-cms: j/luuo ;loc for hiding string compare
; 3645 .ENDIF/EIS
; 3646 1006:
; 3647 .IF/EIS
; 3648 l-edit: ;hide edit here
; 3649 .ENDIF/EIS
; 3650 LUUO: ARX←BRX,SC←#,#/13.,
U 1006, 0264,3202,0600,0302,0000,7021,0015 ; 3651 CALL,SKP INTRPT,J/ROTS ;COMBINE E WITH UUO
U 1007, 0177,0001,4000,0000,0116,3010,0040 ; 3652 1007: AR←SHIFT,vma←40,store ;store opcode etc at 40
; 3653 fin store,vma←41,
U 0177, 0011,4001,0003,0000,0113,3010,0041 ; 3654 load arx,j/xctw ;go perform 41
; 3655
; 3656 .IF/EIS
; 3657 .IF/DECIMAL
; 3658 1010:
; 3659 l-dbin: j/luuo ;dbin at 2010
; 3660 1011:
; 3661 l-bdec: j/luuo ;bdec at 2011
; 3662 .ENDIF/DECIMAL
; 3663 1012:
; 3664 l-mvs: j/luuo ;move string at 2012
; 3665 .ENDIF/EIS
; 3666
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 74
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 UUO'S
; 3667 ;HERE ON MUUO'S
; 3668 ; E IN AR, OP AND AC IN BRX
; 3669
; 3670 ;MUUO: ARX←BRX,SC←#,#/13.,CALL,J/ROTS
; 3671 ; AR←SHIFT,VMA←#,#/424
U 0220, 0221,0001,0000,0000,0016,0026,0221 ; 3672 MUUO1: STORE,UPT REF ;first, store instruction
U 0221, 0260,4031,2003,0000,0036,3625,0000 ; 3673 fin store,AR←PC+1,VMA←vma+1,store ;next, pc
; 3674 =11**00
; 3675 mem←ar,vma←vma+1,sc←#,#/70,
U 0260, 1325,4001,0003,0302,0002,3621,0070 ; 3676 call,j/gteeb1
U 0261, 1341,0001,3000,0000,0060,2021,0511 ; 3677 datai pag(l),call,j/pctxt ;get process context variables
U 0263, 0222,3731,0000,0000,0060,2010,0426 ; 3678 =11 ld prev ctxt ;pcs from pc, cwsx from sxct
; 3679 ar←shift,arl←brl.s, ;combine ubr with ac blks, cwsx
; 3680 STORE, ; store that at 426
U 0222, 0223,3202,4000,0000,0016,2222,0002 ; 3681 cond/ebus ctl,ebus ctl/2; & release ecl ebus
U 0223, 0224,0001,0003,0000,0102,3210,0430 ; 3682 MEM←AR,VMA←430+MODE ;now ready to get new pc
U 0224, 0225,0001,0000,0000,0012,0026,0221 ; 3683 NEWPC: LOAD AR,UPT REF ;FETCH NEW PC
U 0225, 0000,3200,0003,0000,0022,1610,0000 ; 3684 NEWPC1: AR←MEM,SR←0,J/START ;USE IT
; 3685
; 3686
; 3687 ;ROTATE SUBROUTINE
; 3688
; 3689 =11***0
U 0264, 0003,4001,4400,5302,0000,0003,0044 ; 3690 ROTS: AR←SHIFT,ARX←SHIFT,SC←#-SC,#/36.,RETURN3
U 0265, 0144,0001,0000,0000,0000,7710,0000 ; 3691 TAKE INTRPT ;FIXES LUUO IN USER 41 LOOP BUG
; 3692
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 75
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 JSYS, ADJSP
; 3693 .TOC "JSYS, ADJSP"
; 3694
; 3695 .DCODE
; 3696 104:
; 3697 .IFNOT/MVSQZ
; 3698 I, J/uuo ;JSYS
; 3699 .IF/MVSQZ
D 0104, 4000,0512 ; 3700 R, J/MVSQZ
; 3701 .ENDIF/MVSQZ
D 0105, 0000,0513 ; 3702 I, J/ADJSP
; 3703 .UCODE
; 3704
; 3705 ;HERE FOR ADJSP INSTRUCTION
; 3706 ; ENTER WITH E IN AR, PREFETCH IN PROGRESS
; 3707
; 3708 .IFNOT/MVSQZ
; 3709 1000: ;put adjsp next to uuo
; 3710 .IF/MVSQZ
; 3711 =00***0
; 3712 MVSQZ: FE←#,#/5,ARX←0S,MQ←MQ*.25, ;FE COUNTS LOOP, CLEAR MQ00,
U 0512, 0232,3401,0210,0301,0000,0012,0005 ; 3713 J/MVSQZ0 ;ARX ACCUMULATES SQUOZE
; 3714 .ENDIF/MVSQZ
U 0513, 0226,0001,0000,0000,3000,0610,0004 ; 3715 ADJSP: ARL←ARR,ARR←ARR ;PUT E IN BOTH HALVES
; 3716 = AR←AR*AC0,AD/A+B,INH CRY18, ;ADJUST POINTER,
U 0226, 0230,0600,2200,0000,0020,4511,0000 ; 3717 arx/ad,SKP AR0 ;SKIP IF NEGATIVE
; 3718 =0 GEN AR*AC0,AD/ANDCA, ;TEST FOR - TO + CHANGE
U 0230, 0134,3000,0000,4000,0020,5510,0000 ; 3719 SKP AD0,J/stmac
; 3720 GEN AR*AC0,AD/ANDCB, ;TEST FOR + TO - CHANGE
U 0231, 0134,3500,0000,4000,0020,5510,0000 ; 3721 SKP AD0,J/stmac
; 3722
; 3723
; 3724 .IF/MVSQZ
; 3725 =0
; 3726 MVSQZ0: ARX←ARX*8,GEN P-#,#/41,
U 0232, 0234,3203,0500,5130,0020,5110,0041 ; 3727 SKP SCAD0,J/MVSQZ1
U 0233, 0070,0001,4000,0000,2206,0010,0400 ; 3728 AR←ARX,I FETCH,J/STORAC
; 3729 =0
U 0234, 0245,0603,0600,5130,3020,0110,0026 ; 3730 MVSQZ1: P←P-#,#/26,ARX←ARX*5,J/MVSQZ5
; 3731 GEN P-#,#/20,ARX←ARX*5,
U 0235, 0240,0603,0600,5130,0020,5110,0020 ; 3732 SKP SCAD0
; 3733 =1****0
U 0240, 0245,4001,0000,5130,3000,0110,0017 ; 3734 P←P-#,#/17,J/MVSQZ5
U 0241, 0242,0001,0000,5130,0020,5210,0016 ; 3735 GEN P-#,#/16,SKP SCAD NE
; 3736 =1****0
U 0242, 0245,4001,0000,0300,3000,0110,0045 ; 3737 P←#,#/45,J/MVSQZ5
U 0243, 0244,0001,0000,5130,0020,5110,0001 ; 3738 GEN P-#,#/1,SKP SCAD0
; 3739 =1****0
U 0244, 0245,0001,0000,2130,3000,0110,0042 ; 3740 P←P+#,#/42
U 0245, 0227,3441,2460,0302,1000,0010,0006 ; 3741 MVSQZ5: BR/AR,BRX/ARX,ARX←AR,AR←0S,SC←#,#/6
U 0227, 0236,3242,2400,0000,0000,0010,0000 ; 3742 ARX←SHIFT,AR←BR
; 3743 ARX←ARX+BRX,AR←SHIFT,
U 0236, 0232,0602,4604,3001,0020,5110,0000 ; 3744 FE←FE-1,SKP SCAD0,J/MVSQZ0
; 3745 .ENDIF/MVSQZ
; 3746
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 76
; DSK: UCODE; SKPJMP 2 21:19:22 31-JAN-76 XCT, PXCT, SXCT
; 3747 .TOC "xct, pXCT, sXCT"
; 3748 ;HERE FOR EXTENDED ADDRESSING INSTRUCTIONS
; 3749
; 3750 .IFNOT/XCTR
; 3751 =0
; 3752 xct1: skp user,j/pxct ;here on xct, no interrupt
; 3753 take intrpt ;get out of long xct chain
; 3754 =0
; 3755 PXCT: br/ar,arx←ar,SET PXCT,J/PXCTea ;SETUP CONTROL FLOPS
; 3756 uxct: ARX←AR (AD),LOAD IR,J/XCTGO ;COPY INSTR TO ARX, IR
; 3757 .IF/XCTR
; 3758 =00***0
U 0514, 2002,4001,0000,0000,0000,6121,0000 ; 3759 PXCT: CALL,SKP KERNEL,J/IOCHK ;XCTR OKAY ONLY IN KERNEL MODE
U 0515, 0534,4001,0000,0000,0000,7010,0000 ; 3760 SKP INTRPT,J/XCTR ;XCTR AND XCTRI
; 3761
; 3762 =*1***0
U 0534, 0247,4001,0440,0000,1000,1510,0020 ; 3763 XCTR: BR/AR,ARX←AR,SET PXCT,J/PXCTEA
U 0535, 0144,0001,0000,0000,0000,7710,0000 ; 3764 TAKE INTRPT
; 3765 =*1***0
U 0266, 0152,3703,0200,0000,0000,1410,0000 ; 3766 UXCT: ARX←AR (AD),LOAD IR,J/XCTGO
U 0267, 0144,0001,0000,0000,0000,7710,0000 ; 3767 TAKE INTRPT
; 3768 .ENDIF/XCTR
; 3769
; 3770 .DCODE
; 3771 .IFNOT/SXCT
; 3772 106: I, J/UUO
; 3773 I, J/UUO
; 3774 .IF/SXCT ;NOTE: THE SXCT INSTRUCTION IS A TEMPORARY MECHANISM
D 0106, 4001,1014 ; 3775 106: R, J/SXCT ;INTENDED FOR DIAGNOSTICS ONLY
D 0107, 0001,1016 ; 3776 i, J/uuo107
; 3777 .ENDIF/SXCT
; 3778 .UCODE
; 3779
; 3780 .IF/SXCT
; 3781 1014: ;put next to uuo107
U 1014, 2002,4001,0000,0000,0000,6121,0000 ; 3782 SXCT: SKP KERNEL,CALL,J/IOCHK ;LEGAL IN KERNEL MODE ONLY
; 3783 1015: BR/AR,ARX←AR,AR←AC0, ;SHUFFLE INSTR TO GET BASE REG
U 1015, 0237,3200,2440,0000,1020,1510,0040 ; 3784 SET SXCT ;SETUP HARDWARE FLAGS
U 0237, 0246,0001,0000,0000,0000,4610,0000 ; 3785 SKP AC#0 ;CHOOSE LOOP FOR EA CALC
; 3786 =0 BR/AR,AR←BR,LOAD IR, ;AC0 IS BASE INDEX
; 3787 brx/arx,arl←0.m,
U 0246, 0274,3242,2060,0000,0001,1436,0020 ; 3788 ea mod disp,j/sxctb
; 3789 .ENDIF/SXCT
; 3790 pxctea: AR←BR,LOAD IR,ARL←0.M, ;get ext addr from xr or indrct
U 0247, 0270,3202,2020,0000,0001,1410,0020 ; 3791 BRX/ARX,j/xind2
; 3792 =1***00
U 0250, 0000,3701,0000,0000,0204,0002,0000 ; 3793 PXLOOP: gen ar,A READ ;GO DO INSTR
U 0251, 0000,0600,2002,4000,0224,0002,0000 ; 3794 AR←AR+XR,A READ
U 0252, 0254,3703,0000,0000,0110,7010,0000 ; 3795 GEN AR,A INDRCT,SKP INTRPT,J/XIND1
U 0253, 0254,0600,0002,4000,0130,7010,0000 ; 3796 GEN AR+XR,A INDRCT,SKP INTRPT
; 3797
; 3798 =1****0
U 0254, 0270,3240,0003,0000,0042,0037,0000 ; 3799 XIND1: AR←MEM,ARX←MEM,EA TYPE DISP,J/XIND2
U 0255, 0144,4001,0000,0000,0002,7710,0000 ; 3800 MB WAIT,TAKE INTRPT
; 3801 =1***00
U 0270, 0250,4001,0000,0000,0000,0036,0000 ; 3802 XIND2: EA MOD DISP,J/PXLOOP ;current OR PREV WITHOUT CWSX
U 0271, 0000,3711,2000,0000,0204,0002,0000 ; 3803 AR←ARX (AD),A READ ;PREV AND CWSX
; 3804 .IF/SXCT
U 0272, 0000,3711,2000,0000,0204,0002,0000 ; 3805 AR←ARX (AD),A READ ;SXCT 0,
U 0273, 0274,4001,0000,0000,0000,0036,0000 ; 3806 EA MOD DISP,J/SXCTB ;SXCT B,
; 3807
; 3808 =1***00
U 0274, 0000,0602,2004,0000,0224,0002,0000 ; 3809 SXCTB: AR←AR+BR,A READ ;GO
U 0275, 0274,0600,2002,4000,0020,0610,0020 ; 3810 AR←AR+XR,ARL←0.C,j/sxctb ;NO MORE INDIRECTS
; 3811 GEN AR,A INDRCT, ;FOLLOW INDRCT POINTER
U 0276, 0254,3703,0000,0000,0110,7010,0000 ; 3812 SKP INTRPT,J/XIND1
; 3813 GEN AR+XR,A INDRCT,
U 0277, 0254,0600,0002,4000,0130,7010,0000 ; 3814 SKP INTRPT,J/XIND1
; 3815 .ENDIF/SXCT
; 3816
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 77
; DSK: UCODE; SHIFT 3 21:21:46 31-JAN-76 XCT, PXCT, SXCT
; 3817
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 78
; DSK: UCODE; SHIFT 3 21:21:46 31-JAN-76 ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO
; 3818 .TOC "ROTATES AND LOGICAL SHIFTS -- ROT, LSH, JFFO"
; 3819
; 3820 .DCODE
D 0240, 0001,0702 ; 3821 240: I, b/0, J/ASH
D 0241, 0000,0703 ; 3822 I, B/0, J/ROT
D 0242, 0201,0516 ; 3823 I, B/2, J/LSH
D 0243, 0001,0517 ; 3824 I, J/JFFO
D 0244, 0100,0704 ; 3825 I, b/1, J/ASHC
D 0245, 0000,0705 ; 3826 I, J/ROTC
D 0246, 0001,0710 ; 3827 I, J/LSHC
; 3828 .IFNOT/CIRC
; 3829 I, J/uuo
; 3830 .IF/CIRC
D 0247, 0000,0711 ; 3831 I, J/CIRC
; 3832 .ENDIF/CIRC
; 3833 .UCODE
; 3834
; 3835 ;ENTER WITH 0,E IN AR
; 3836 ; NOTE THAT VALUES OF SC GREATER THAN 36
; 3837 ; CAUSE THE SHIFTER TO SELECT ARX.
; 3838
; 3839 =00***0
; 3840 LSH: AR←AC0,ARL/AD,ARX←0.M,SC←EA,
U 0516, 0324,3240,2000,0002,0021,4413,0042 ; 3841 SKP AR18,J/SHR1
; 3842
U 0517, 0256,3240,2000,0302,0020,5610,0006 ; 3843 JFFO: AR←AC0,SKP AD NE,SC←#,#/6
; 3844 =
U 0256, 0071,4001,0001,0000,0206,1010,0400 ; 3845 =0 AC1←AR,I FETCH,J/NOP ;AC WAS ZERO, NO JUMP
; 3846 ARX+mq←0.m,FE←P,SKP SCAD NE, ;TEST FIRST 6 BITS
U 0257, 0320,4001,4000,0101,0021,5210,0144 ; 3847 ar←shift,arl/sh ;discard them
; 3848 =0
; 3849 JFFO1: AR←SHIFT,FE←P,SKP SCAD NE, ;TEST NEXT 6 BITS
U 0320, 0320,1721,4600,0101,0020,5210,0000 ; 3850 ARX←ARX-1,J/JFFO1 ;LOOP, COUNTING, TILL NE
; 3851 P←FE,ARR←0.S, ;RESTORE 6 NON-ZERO BITS
U 0321, 0322,5123,0500,0000,3020,0022,0210 ; 3852 arx←arx*-6 ;get pos group count*6
; 3853 =0
; 3854 JFFO2: SKP AR0,ar←2(ar+1), ;LOOP TO FIND A 1
U 0322, 0322,4001,5600,0000,0040,4510,0000 ; 3855 arx←arx+1,j/jffo2 ;counting as we go
; 3856 .IFNOT/JPC
U 0323, 1066,1701,6000,0000,0026,0010,0400 ; 3857 AR←ARX-1,FETCH,J/STRAC1
; 3858 .IF/JPC
; 3859 AR←ARX-1,FETCH,SKP USER
; 3860 =0 AC1←AR,AR←PC,SC←#,#/32.,J/JPCEX
; 3861 AC1←AR,AR←PC,SC←#,#/32.,J/JPCUSR
; 3862 .ENDIF/JPC
; 3863
; 3864 =00***0
; 3865 ASH: SC←EA,SKP AR18, ;GET SHIFT AMOUNT
U 0702, 0354,3441,2000,0002,0000,4413,0000 ; 3866 AR←0S,J/ASHL ;SET LOW PART = 0
U 0703, 0324,3240,2200,0002,0040,4413,0000 ; 3867 ROT: AR←AC0,ARX←AC0,SC←EA,SKP AR18
; 3868 =
; 3869 ;SINGLE-WORD LSH/ROT
; 3870 ; FOR ROT, B=0, ar and arx both contain ac
; 3871 ; FOR LSH, B=2, ar has ac, arx is zero
; 3872
; 3873 =00
; 3874 SHR1: AR←SHIFT,SC←#+SC,#/-36., ;DO POS (LEFT) SHIFT, CHK RANGE
U 0324, 0326,4001,4000,2302,0020,5110,0734 ; 3875 SKP SCAD0,J/SHR2
; 3876 ARX←AR (AD),AR←ARX (ADX),
; 3877 SC←#+SC,#/36.,
U 0325, 0324,3701,6200,2302,0020,5133,0044 ; 3878 B DISP,SKP SCAD0,J/SHR1 ;MAKE NEG SHIFT TO EQUIV POS
; 3879 SHR2: AR←SHIFT,SC←#+SC,#/-36.,
U 0326, 0326,4001,4000,2302,0020,5110,0734 ; 3880 SKP SCAD0,J/SHR2 ;BRING SC INTO RANGE
U 0327, 0071,0001,0000,0000,0206,1010,0400 ; 3881 AC0←AR,I FETCH,J/NOP ;DONE
; 3882
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 79
; DSK: UCODE; SHIFT 3 21:21:46 31-JAN-76 ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC
; 3883 .TOC "ROTATE AND LOGICAL SHIFT COMBINED -- ROTC, LSHC"
; 3884
; 3885 =00***0
; 3886 ASHC: SC←EA,SKP AR18, ;SETUP SHIFT COUNT
U 0704, 0354,3240,5001,0002,0020,4413,0000 ; 3887 AR←AC1*2,j/ashl ;GET LOW WORD
U 0705, 0262,3200,0201,0000,0020,0010,0000 ; 3888 ROTC: ARX←AC1
U 0262, 0330,3200,2000,0002,0020,4413,0000 ; 3889 = AR←AC0,SC←EA,SKP AR18 ;SETUP BOTH AC'S
; 3890 =0
; 3891 ROT3: MQ←SHIFT,ARX←AR (AD),
U 0330, 0332,3703,6210,0000,0000,0010,0000 ; 3892 AR←ARX (ADX),J/ROT4
; 3893 ARX←AR (AD),AR←ARX (ADX),
U 0331, 0330,3703,6200,2302,0020,5110,0044 ; 3894 SC←#+SC,#/36.,SKP SCAD0,J/ROT3
; 3895
; 3896 ROT4: AR←MQ,ARX←SHIFT,
U 0332, 0334,3721,2400,2302,0020,5110,0734 ; 3897 SC←#+SC,#/-36.,SKP SCAD0
; 3898 =0 MQ←SHIFT,ARX←AR (AD),
U 0334, 0332,3703,6210,0000,0000,0010,0000 ; 3899 AR←ARX (ADX),J/ROT4
U 0335, 1066,4001,4000,0000,2206,1010,0400 ; 3900 STDAC: AC0←AR,AR←ARX,I FETCH,J/STRAC1
; 3901
; 3902
; 3903 .IFNOT/CIRC
; 3904 1004: ;next to uuo
; 3905 .IF/CIRC
; 3906 =00**00
; 3907 .ENDIF/CIRC
U 0710, 0333,3200,0201,0000,0021,0010,0100 ; 3908 LSHC: ARX←AC1,MQ←0.M,J/LSHC1
; 3909 .IF/CIRC
; 3910 =01
U 0711, 0346,3240,2011,0303,1020,0521,0043 ; 3911 CIRC: MQ←AR,AR←AC1,FE←#,SC←#,#/35.,CLR ARX,CALL,J/WDREV
U 0713, 0344,3200,2000,0002,0020,4413,0000 ; 3912 =11 SC←EA,AR←AC0,SKP AR18,J/CIRC3
; 3913 .ENDIF/CIRC
; 3914 =
U 0333, 0336,3240,2000,0303,0020,4413,0044 ; 3915 LSHC1: AR←AC0,SC←EA,FE←#,#/36.,SKP AR18
; 3916 =0
; 3917 LSH2: MQ←SHIFT,AR←ARX (ADX),
U 0336, 0340,3721,6310,0301,0000,0010,0734 ; 3918 ARX/MQ,FE←#,#/-36.,J/LSH3
; 3919 ARX←AR (AD),AR←0.M,MQ←ARX,
U 0337, 0336,3701,0210,2002,2021,5110,0030 ; 3920 SC←FE+SC,SKP SCAD0,J/LSH2
; 3921
; 3922 LSH3: AR←MQ,ARL/AD,ARX←SHIFT,MQ←0.M,
U 0340, 0342,3721,2400,2002,0021,5110,0102 ; 3923 SC←FE+SC,SKP SCAD0
U 0342, 0340,3701,6310,0000,0000,0010,0000 ; 3924 =0 MQ←SHIFT,AR←ARX (ADX),ARX/MQ,J/LSH3
U 0343, 1066,4001,4000,0000,2206,1010,0400 ; 3925 AC0←AR,AR←ARX,I FETCH,J/STRAC1
; 3926
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 80
; DSK: UCODE; SHIFT 3 21:21:46 31-JAN-76 CIRC INSTRUCTION
; 3927 .TOC "CIRC INSTRUCTION"
; 3928
; 3929 .IF/CIRC
; 3930 =0
U 0344, 0341,3701,6210,0000,0000,0010,0000 ; 3931 CIRC3: MQ←SHIFT,ARX←AR (AD),AR←ARX (ADX),J/CIRC4
U 0345, 0344,3703,6200,2302,0020,5110,0044 ; 3932 ARX←AR (AD),AR←ARX (ADX),SC←#+SC,#/36.,SKP SCAD0,J/CIRC3
; 3933
U 0341, 0350,3723,2400,2302,0020,5110,0734 ; 3934 CIRC4: AR←MQ,ARX←SHIFT,SC←#+SC,#/-36.,SKP SCAD0
U 0350, 0341,3701,6210,0000,0000,0010,0000 ; 3935 =00 MQ←SHIFT,ARX←AR (AD),AR←ARX (ADX),J/CIRC4
U 0351, 0346,3441,4200,0303,2000,1021,0043 ; 3936 AC0←AR,AR←ARX,FE←#,SC←#,#/35.,ARX←0S,CALL,J/WDREV
U 0353, 0015,0001,4000,0402,2206,0010,0400 ; 3937 =11 AR←ARX,CLR SC,I FETCH,J/STD1
; 3938
; 3939
; 3940 ;SUBROUTINE TO REVERSE A WORD IN AR, RETURNING IT IN ARX.
; 3941 ;ON ENTRY, ARX MUST BE CLEAR, AND SC AND FE MUST BOTH CONTAIN 35.
; 3942 ;ON EXIT, MQ IS COPIED INTO AR.
; 3943
; 3944 .IFNOT/CIRC.BIG.OPT
; 3945 =0
U 0346, 0367,0001,0020,0000,0040,0007,0000 ; 3946 WDREV: BRX/ARX,SH DISP,J/WDREV1
U 0347, 0002,3721,2000,0000,0000,0003,0000 ; 3947 AR←MQ,RETURN2
; 3948 =0111
U 0367, 0346,3241,0600,3003,0020,5110,0000 ; 3949 WDREV1: FE←FE-1,SC/SCAD,SKP SCAD0,ARX←BRX*2,J/WDREV
U 0377, 0346,4641,0600,3003,0020,5110,0000 ; 3950 FE←FE-1,SC/SCAD,SKP SCAD0,ARX←BRX*2+1,J/WDREV
; 3951 .IF/CIRC.BIG.OPT
; 3952 =0
; 3953 WDREV: SH DISP,BR/AR,AR←ARX (ADX),SC←#,#/32.,J/WDREV1
; 3954 AR←MQ,RETURN2
; 3955
; 3956 =0000
; 3957 WDREV1: AR←BR,ARX←SHIFT,FE←FE-#,#/4,SC/SCAD,SKP SCAD0,J/WDREV
; 3958 AR←SHIFT,SC←#,#/10,J/WDREV2
; 3959 AR←SHIFT,SC←#,#/4,J/WDREV2
; 3960 AR←SHIFT,SC←#,#/14,J/WDREV2
; 3961 AR←SHIFT,SC←#,#/2,J/WDREV2
; 3962 AR←SHIFT,SC←#,#/12,J/WDREV2
; 3963 AR←SHIFT,SC←#,#/6,J/WDREV2
; 3964 AR←SHIFT,SC←#,#/16,J/WDREV2
; 3965 AR←SHIFT,SC←#,#/1,J/WDREV2
; 3966 AR←SHIFT,SC←#,#/11,J/WDREV2
; 3967 AR←SHIFT,SC←#,#/5,J/WDREV2
; 3968 AR←SHIFT,SC←#,#/15,J/WDREV2
; 3969 AR←SHIFT,SC←#,#/3,J/WDREV2
; 3970 AR←SHIFT,SC←#,#/13,J/WDREV2
; 3971 AR←SHIFT,SC←#,#/7,J/WDREV2
; 3972 AR←SHIFT,SC←#,#/17,J/WDREV2
; 3973
; 3974 WDREV2: AR0-5←AR0-5 OR SC
; 3975 AR←BR,ARX←AR,FE←FE-#,#/4,SC/SCAD,SKP SCAD0,J/WDREV
; 3976 .ENDIF/CIRC.BIG.OPT
; 3977 .ENDIF/CIRC
; 3978
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 81
; DSK: UCODE; SHIFT 3 21:21:46 31-JAN-76 ARITHMETIC SHIFTS -- ASH, ASHC
; 3979 .TOC "ARITHMETIC SHIFTS -- ASH, ASHC"
; 3980
; 3981 ;COMMON CODE FOR ARITHMETIC SHIFTS
; 3982
; 3983 =0
; 3984 ASHL: ARX←AR,AR←AC0, ;INPUT NOW IN AR LONG
U 0354, 0360,3200,2400,2400,1040,5210,0000 ; 3985 SKP SC NE,J/ASHL1 ;CHECK FOR NULL SHIFT
; 3986 ARX←AR,AR←AC0, ;HERE IF RIGHT SHIFT
U 0355, 0356,3200,2400,2302,1040,5110,0044 ; 3987 SC←#+SC,#/36.,SKP SCAD0 ;CHECK FOR LONG ONE
; 3988 =0
U 0356, 0352,5441,2440,0000,0020,0016,0000 ; 3989 ASHR1: BR/AR,ARX←SHIFT,AR←SIGN,J/ASHR2 ;LOW OUTPUT TO ARX
; 3990 ARX←AR,AR←SIGN, ;HERE IF SHIFT COUNT .GT. 36
; 3991 SC←#+SC,#/36., ;BRING COUNT UP BY 36
U 0357, 0356,5441,2400,2302,1020,5116,0044 ; 3992 SKP SCAD0,J/ASHR1 ;LOOP TILL COUNT REASONABLE
; 3993
; 3994 ASHR2: brx/arx,ARX←BR, ;HIGH input TO ARX
U 0352, 0420,3242,0220,0000,0000,0033,0000 ; 3995 b disp,j/ashx
; 3996
; 3997 ;here for left arithmetic shift
; 3998
; 3999 =0
U 0360, 0071,4001,0000,0000,0206,0010,0400 ; 4000 ASHL1: I FETCH,J/NOP ;SHIFT 0 IS A NOP
U 0361, 0362,5441,2060,0000,0020,0016,0000 ; 4001 br←AR long,AR←SIGN ;SAVE INPUT, GEN SIGN WORD
U 0362, 0364,3241,2640,0000,0000,0010,0000 ; 4002 BR/AR,AR←BR*2 LONG ;SAVE SIGN, GET MAGNITUDE BITS
; 4003 =0*
; 4004 ASHL2: BRX/ARX,ARX←AR,AR←BR, ;hi in to arx, low to brx
U 0364, 1174,3242,2420,0000,1000,0021,0000 ; 4005 CALL,J/SHIFT ;CALL SHIFTER TO GET BITS LOST
U 0366, 0370,0003,0000,0000,0040,5616,0000 ; 4006 SKP AR SIG ;any significant bits?
; 4007 =0
; 4008 ASHL3: AR←ARX,ARX←BRX, ;restore hi to ar, low to arx
U 0370, 0372,3242,4600,2300,2020,5110,0734 ; 4009 gen #+sc,#/-36.,SKP SCad0,J/ASHL4
U 0371, 0370,0001,0000,0000,0000,1110,0420 ; 4010 SET AROV,J/ASHL3 ;BITS SHIFTED OUT NE SIGN
; 4011 =0
; 4012 ASHL4: AR←ARX,arx←0s, ;HERE IF E .GT. 36
U 0372, 0364,3401,4200,2302,2000,0010,0734 ; 4013 SC←#+SC,#/-36.,J/ASHL2 ;shift 36 places, try again
; 4014 MQ←SHIFT,AR←BRX,CLR ARX, ;HIGH OUTPUT TO MQ,
U 0373, 0374,3242,6010,2302,0000,0533,0777 ; 4015 SC←#+SC,#/-1,b disp ;COMPENSATE FOR EXTRA SHIFT
; 4016 =0
; 4017 ashl5: ar←br,brx/arx,arx/mq, ;sign to ar, high out to arx
; 4018 sc←#,#/35., ;ready to combine them
U 0374, 0420,3242,2320,0302,0000,0033,0043 ; 4019 b disp,j/ashx ;store as appropriate
U 0375, 0374,0001,0400,0000,0000,0010,0000 ; 4020 arx←shift,j/ashl5 ;low output to arx
; 4021
; 4022 ;here to get final results.
; 4023
; 4024 =0
U 0420, 0070,4001,4000,0000,0206,0010,0400 ; 4025 ashx: AR←SHIFT,I FETCH,J/STORAC ;HERE AFTER ash
; 4026 ar←shift,arx←brx, ;here after ashc
U 0421, 0061,3202,4600,0302,0000,0010,0043 ; 4027 sc←#,#/35.,j/st2ac
; 4028
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 82
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 ARITHMETIC SHIFTS -- ASH, ASHC
; 4029
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 83
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 ADD, SUB
; 4030 .TOC "ADD, SUB"
; 4031
; 4032 .DCODE
D 0270, 5500,0501 ; 4033 270: R-PF, AC, J/ADD
D 0271, 1501,0501 ; 4034 I-PF, AC, J/ADD
D 0272, 7601,0501 ; 4035 RPW, M, J/ADD
D 0273, 7700,0501 ; 4036 RPW, B, J/ADD
; 4037 .UCODE
; 4038
; 4039 =00****
U 0501, 0060,0600,2000,0000,0025,1333,0000 ; 4040 ADD: AR←AR*AC0,AD/A+B,AD FLAGS,EXIT
; 4041 =
; 4042
; 4043
; 4044 .DCODE
D 0274, 5501,0701 ; 4045 274: R-PF, AC, J/SUB
D 0275, 1500,0701 ; 4046 I-PF, AC, J/SUB
D 0276, 7600,0701 ; 4047 RPW, M, J/SUB
D 0277, 7701,0701 ; 4048 RPW, B, J/SUB
; 4049 .UCODE
; 4050
; 4051 =00****
U 0701, 0363,3200,2040,0000,0020,0010,0000 ; 4052 SUB: AR←AC0,BR/AR
U 0363, 0060,5102,2000,0000,0025,1333,0000 ; 4053 = AR←AR-BR,AD FLAGS,EXIT
; 4054
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 84
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 MUL, IMUL
; 4055 .TOC "MUL, IMUL"
; 4056
; 4057 .DCODE
D 0220, 4501,0712 ; 4058 220: R, AC, J/IMUL
D 0221, 0500,0712 ; 4059 I, AC, J/IMULi
D 0222, 6600,0712 ; 4060 RW, M, J/IMUL
D 0223, 6701,0712 ; 4061 RW, B, J/IMUL
; 4062 .UCODE
; 4063
; 4064 .IFNOT/IMULI.OPT
; 4065 =00*01*
; 4066 IMULI:
; 4067 .IF/IMULI.OPT
; 4068 =00*000
; 4069 imuli: skp ar18,gen ac0,signs disp, ;optimize special case
; 4070 time/3t,sc←#,#/17.
; 4071 =010 mq←ar,ar←ac0, ;here for imuli of + by +
; 4072 clr arx,fe←#,#/-9., ; 9 steps will do
; 4073 call,j/mulsub
; 4074 .ENDIF/IMULI.OPT
; 4075 IMUL: MQ←AR,AR←AC0, ;M'IER TO MQ, M'CAND TO AR
; 4076 CLR ARX,FE←#,#/-18.,
U 0712, 0365,3200,2010,0301,1020,0521,0756 ; 4077 CALL,J/MULSUB ;CALL MULTIPLY SUBROUTINE
; 4078 .IF/IMULI.OPT
; 4079 =110 ar←shift,skp ar ne,INH cry18, ;here from imuli
; 4080 i fetch,j/mul1 ; after short multiply
; 4081 .ENDIF/IMULI.OPT
U 0716, 0422,0003,0000,0302,0040,5616,0043 ; 4082 SC←#,#/35.,SKP AR SIG ;CHECK OVERFLOW AND STORE
; 4083 =
; 4084 =0
U 0422, 0066,4001,4000,0000,0005,0033,0000 ; 4085 IMUL2: AR←SHIFT,B WRITE,J/ST6 ;STORE LOW WORD OF PRODUCT
U 0423, 0422,5441,2000,0000,0020,1116,0420 ; 4086 SET AROV,AR←SIGN,J/IMUL2 ;NOTE OVERFLOW...
; 4087
; 4088
; 4089 .DCODE
D 0224, 4101,1100 ; 4090 224: R, DBL AC, J/MUL
D 0225, 0100,1100 ; 4091 I, DBL AC, J/MUL
D 0226, 6601,1100 ; 4092 RW, M, J/MUL
D 0227, 6200,1100 ; 4093 RW, DBL B, J/MUL
; 4094 .UCODE
; 4095
; 4096 =00*000
; 4097 MUL: MQ←AR,CLR ARX, ;MULTIPLIER TO MQ
; 4098 AR←AC0,FE←#,#/-18., ;SETUP MULTIPLICAND AND STEP CNT
U 1100, 0365,3200,2010,0301,1020,0521,0756 ; 4099 CALL,J/MULSUB ;AND GO TO SUBROUTINE
U 1104, 1106,3602,0000,0000,0020,5510,0000 ; 4100 =100 GEN AR*BR,AD/AND,SKP AD0 ;M'IER NEG, CHECK M'CAND & PROD TOO
; 4101 =110
U 1106, 0060,0001,0000,0302,0005,0033,0043 ; 4102 MUL1: SC←#,#/35.,EXIT ;STORE DOUBLE RESULT
U 1107, 1106,4001,0000,0000,0000,1110,0420 ; 4103 SET AROV,J/MUL1 ;MUST HAVE SQUARED 400000,,0
; 4104 =
; 4105
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 85
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 MULTIPLY SUBROUTINE
; 4106 .TOC "MULTIPLY SUBROUTINE"
; 4107 ; ENTER WITH MULTIPLIER IN MQ,
; 4108 ; MULTIPLICAND IN AR!ARX, MINUS STEP COUNT IN FE
; 4109 ; RETURNS PRODUCT IN AR!ARX!MQ.
; 4110 ; RETURN 4, 6 TELLS SIGN OF MULTIPLIER
; 4111 ; 4 AND 6 ARE USED SO CALLER CAN IGNORE
; 4112 ; DIFFERENCE BY ALIGNMENT OF CALL LOC'N
; 4113 ;[time=4+2(-fe)+(# of arith steps)] ... if fe=-18, 40-58.
; 4114
; 4115 MUL "FE←FE+1,DISP/MUL,MQ/MQ*.25"
; 4116
; 4117 MULSUB: BR←AR LONG,AR←0S,ARX←0S, ;M'CAND TO BR LONG, CLEAR PROD
U 0365, 0430,3441,2270,4001,0000,0030,0000 ; 4118 MUL,j/mulp ;START THE MULTIPLICATION
; 4119 =000 ;GRAB An 8-WORD BLOCK
; 4120 MULP:
U 0433, 0006,3701,5500,2401,0000,0703,0001 ; 4121 =011 (AR+ARX+MQ)*2,FE←SC,RETURN6 ;DISCARD REDUNDANT SIGN BIT
; 4122
U 0434, 0430,3703,7710,4001,0000,0030,0000 ; 4123 =100 AR←AR*.25 LONG,MUL,J/MULP ;M'IER BITS 00 AFTER POS STEP
; 4124 AR←(AR+BR)*.25,ARX/ADX*.25, ;01 AFTER +
U 0435, 0430,0602,7714,4001,0020,0030,0000 ; 4125 MUL,J/MULP
; 4126 AR←(AR-2BR)*.25,ARX/ADX*.25, ;10 AFTER +
U 0436, 0440,5101,7714,4001,0020,0030,0000 ; 4127 MUL,J/MULM
; 4128 AR←(AR-BR)*.25,ARX/ADX*.25,
U 0437, 0440,5102,7714,4001,0020,0030,0000 ; 4129 MUL,J/MULM ;11 AFTER +
; 4130
; 4131 =000 ;another 8-word block for
; 4132 mulm: ; after subtraction steps
U 0443, 0004,3703,5500,2401,0000,0703,0001 ; 4133 =011 (AR+ARX+MQ)*2,FE←SC,RETURN4 ;M'IER WAS NEGATIVE
; 4134
; 4135 =100 AR←(AR+BR)*.25,ARX/ADX*.25, ;M'IER BITS 00 AFTER NEG STEP
U 0444, 0430,0602,7714,4001,0020,0030,0000 ; 4136 MUL,J/MULP
; 4137 AR←(AR+2BR)*.25,ARX/ADX*.25, ;01 AFTER -
U 0445, 0430,0601,7714,4001,0020,0030,0000 ; 4138 MUL,J/MULP
; 4139 AR←(AR-BR)*.25,ARX/ADX*.25, ;10 AFTER -
U 0446, 0440,5102,7714,4001,0020,0030,0000 ; 4140 MUL,J/MULM
U 0447, 0440,3701,7710,4001,0000,0030,0000 ; 4141 AR←AR*.25 LONG,MUL,J/MULM ;11 AFTER -
; 4142
; 4143 ;HERE TO CONTINUE A LONG MULTIPLICATION
; 4144 ; WITH PARTIAL PRODUCT IN AR LONG
; 4145
U 0376, 0430,3441,0010,4001,0000,0030,0000 ; 4146 MULREE: AD/0S,MUL,J/MULP ;DIVE IN WITHOUT CLOBBERING AR
; 4147
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 86
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 DIV, IDIV
; 4148 .TOC "DIV, IDIV"
; 4149
; 4150 .DCODE
D 0230, 4101,1112 ; 4151 230: R, DBL AC, J/IDIV
D 0231, 0100,1112 ; 4152 I, DBL AC, J/IDIV
D 0232, 6601,1112 ; 4153 RW, M, J/IDIV
D 0233, 6200,1112 ; 4154 RW, DBL B, J/IDIV
; 4155
D 0234, 4100,1110 ; 4156 234: R, DBL AC, J/DIV
D 0235, 0101,1110 ; 4157 I, DBL AC, J/DIV
D 0236, 6600,1110 ; 4158 RW, M, J/DIV
D 0237, 6201,1110 ; 4159 RW, DBL B, J/DIV
; 4160 .UCODE
; 4161
; 4162 =00*000
; 4163 DIV: BR/AR,ARX+MQ←0.M, ;DIVISOR TO BR
; 4164 AR←AC1*2,ARL/AD*2, ;LOW DIVIDEND TO AR
U 1110, 0424,3240,5041,0000,0021,0010,0545 ; 4165 CALL.M,J/DIV1 ;GET HIGH DIVIDEND
; 4166 =10
; 4167 IDIV: BR/AR,ARX+MQ←0.M,SC←1, ;DIVISOR TO BR
; 4168 AR←AC0,ARL/AD,CALL.M, ;DIVIDEND TO AR
U 1112, 0426,3240,2040,4402,0021,4510,0542 ; 4169 SKP AR0,J/DIV2 ;TEST DIVISOR SIGN
; 4170 =011
U 1113, 0013,4001,0000,0000,0000,1110,0424 ; 4171 NODIVD: SET NO DIVIDE,J/FINI ;HERE IF NO DIVIDE POSSIBLE
; 4172
; 4173 =110 ARX←AR,AR←-BRX, ;REMAIN TO ARX, GET CORRECT QUOTIENT
U 1116, 0060,5142,6400,0302,1025,0033,0044 ; 4174 SC←#,#/36.,EXIT
; 4175 ARX←AR,AR←BRX, ;HERE FOR POS QUOTIENT
U 1117, 0060,3202,6400,0302,1005,0033,0044 ; 4176 SC←#,#/36.,EXIT
; 4177 =
; 4178 ;here on divide to set up dividend
; 4179
; 4180 DIV1: BRX/ARX,ARX←AR,AR←AC0, ;CLR BRX, DIVIDEND IN AR LONG
; 4181 FE←#,#/33.,TIME/3T, ;SETUP ITERATION COUNT
U 0424, 0454,3240,2420,0301,1020,0032,0041 ; 4182 SIGNS DISP,J/DIVS1 ;ENTER SUBR
; 4183
; 4184 ;here on idiv to set up dividend. skip if divisor neg
; 4185 ; ALSO CALLED BY ADJBP
; 4186 =0
; 4187 DIV2: BRX/ARX,ARX←SHIFT,AR←SIGN, ;CLR BRX, DIVIDEND TO AR LONG
; 4188 FE←#,#/33., ;SETUP LOOP COUNT
U 0426, 0454,5401,2420,0301,0020,4516,0041 ; 4189 SKP AR0,J/DIVS1 ;ENTER SUBR ACCORDING TO SIGNS
; 4190 BRX/ARX,ARX←SHIFT,AR←SIGN, ;CLR BRX, DIVIDEND TO AR LONG
; 4191 FE←#,#/33., ;SETUP LOOP COUNT
U 0427, 0456,5441,2420,0301,0020,4516,0041 ; 4192 SKP AR0,J/DIVS2 ;ENTER SUBR ACCORDING TO SIGNS
; 4193
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 87
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 INTEGER DIVIDE SUBROUTINE
; 4194 .TOC "INTEGER DIVIDE SUBROUTINE"
; 4195 ; ENTER WITH SIGNS DISPATCH OF DIVISOR AND DIVIDEND,
; 4196 ; DIVISOR IN BR, BRX CLR; DIVIDEND IN AR!ARX
; 4197 ; STEP COUNT IN FE (# OF QUOTIENT BITS -2)
; 4198 ; IF NO DIVIDE, RETURN 3 WITH IFETCH STARTED
; 4199 ; OTHERWISE, RETURN WITH SIGNED REMAINDER IN AR,
; 4200 ; POSITIVE QUOTIENT IN BRX AND MQ.
; 4201 ; RETURN 6 IF QUOTIENT SHOULD BE NEGATIVE,
; 4202 ; RETURN 7 IF QUOTIENT SHOULD BE POSITIVE.
; 4203 ;[time=14+3(fe)+3(d'end neg)+3(restore req'd)+1(remainder neg)]
; 4204 ; ... if fe=33, 113-120
; 4205
; 4206 DIVIDE "FE←FE-1,DISP/DIV,MQ/MQ*2"
; 4207
; 4208 =100
; 4209 DIVS1: DIVIDE,AR←2(AR-BR),
U 0454, 0462,5102,5500,3001,0020,0031,0000 ; 4210 ARX/ADX*2,J/DIVS3 ;BOTH D'END AND D'SOR POS
U 0455, 0454,5143,7700,0000,0020,0027,0000 ; 4211 AR←-AR LONG,J/DIVS1 ;MAKE POS DIVIDEND, THEN CHK
; 4212 DIVS2: DIVIDE,AR←2(AR+BR),
U 0456, 0472,0602,5500,3001,0020,0031,0000 ; 4213 ARX/ADX*2,J/DIVS4 ;D'END POS, D'SOR NEG
U 0457, 0456,5163,7700,0000,0020,0027,0000 ; 4214 AR←-AR LONG,J/DIVS2
; 4215
; 4216 =010
; 4217 DIVS3: DIVIDE,AR←2(AR+BR),ARX/ADX*2,
U 0462, 0520,0602,5500,3001,0021,0031,0405 ; 4218 ARL/AD*2,CALL.M,J/DIVLP ;START DIVIDING
U 0463, 0003,0001,0000,0000,0206,0003,0400 ; 4219 I FETCH,RETURN3 ;RETURN TO CALLER WITH NO DIVIDE
; 4220
U 0466, 0006,5162,2020,0000,0020,0003,0000 ; 4221 AR←-BR,BRX/ARX,RETURN6 ;D'END NEG, SO NEGATE QUO & REM
U 0467, 0007,0001,0020,0000,0000,0003,0000 ; 4222 BRX/ARX,RETURN7 ;EVERYTHING POSITIVE
; 4223
; 4224
; 4225 =010
; 4226 DIVS4: DIVIDE,AR←2(AR-BR),ARX/ADX*2,
U 0472, 0520,5102,5504,3001,0021,0031,0405 ; 4227 ARL/AD*2,CALL.M,J/DIVLP ;BEGIN DIVISION FOR REAL BITS
U 0473, 0003,0001,0000,0000,0206,0003,0400 ; 4228 I FETCH,RETURN3 ;ABORT FOR IMPOSSIBLE DIVISION
; 4229
U 0476, 0006,4001,0020,0000,0000,0003,0000 ; 4230 BRX/ARX,RETURN6 ;NEGATE QUO
U 0477, 0007,5142,2020,0000,0020,0003,0000 ; 4231 AR←-BR,BRX/ARX,RETURN7 ;NEGATE REM
; 4232
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 88
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 BASIC DIVIDE LOOP
; 4233 .TOC "BASIC DIVIDE LOOP"
; 4234 ; THE LOOP ITSELF IS AN INNER SUBROUTINE, TO MAKE IT SUITABLE
; 4235 ; FOR USE IN DOUBLE-LENGTH DIVISION.
; 4236 ; THE DOUBLE LENGTH REMAINDER IS RETURNED IN BR!BRX (RESTORED)
; 4237 ; THE SINGLE LENGTH QUOTIENT (LOW PART IF DBL-LEN DIVISION) IN ARX
; 4238 ; RETURN 6 IF QUOTIENT (REALLY AC0.XOR.BR) NEGATIVE, OR 7 IF POSITIVE
; 4239 ;[time=12+3(fe)+3(restore req'd)] ... if fe=33, 111-114.
; 4240
; 4241 =000
U 0520, 0520,0602,5500,3001,0020,0031,0000 ; 4242 DIVLP: DIVIDE,AR←2(AR+BR),ARX/ADX*2,J/DIVLP
U 0521, 0520,5102,5504,3001,0020,0031,0000 ; 4243 DIVIDE,AR←2(AR-BR),ARX/ADX*2,J/DIVLP
U 0522, 0520,5102,5504,3001,0020,0031,0000 ; 4244 DIV-: DIVIDE,AR←2(AR-BR),ARX/ADX*2,J/DIVLP
U 0523, 0520,0602,5500,3001,0020,0031,0000 ; 4245 DIV+: DIVIDE,AR←2(AR+BR),ARX/ADX*2,J/DIVLP
U 0524, 0544,0602,2600,3001,0020,0031,0000 ; 4246 DIVIDE,AR←AR+BR,ARX/ADX,J/DIVX
U 0525, 0544,5102,2604,3001,0020,0031,0000 ; 4247 DIVIDE,AR←AR-BR,ARX/ADX,J/DIVX
U 0526, 0544,5102,2604,3001,0020,0031,0000 ; 4248 DIVIDE,AR←AR-BR,ARX/ADX,J/DIVX ;NO SHIFT ON FINAL STEP
U 0527, 0544,0602,2600,3001,0020,0031,0000 ; 4249 DIVIDE,AR←AR+BR,ARX/ADX,J/DIVX
; 4250
; 4251 ;HERE AFTER FINAL DIVIDE STEP
; 4252 ; MQ HAS POSITIVE FORM QUOTIENT
; 4253 ; AR!ARX HAS REMAINDER, EXCEPT THAT IT MUST BE RESTORED IF IT IS
; 4254 ; NEGATIVE (IT'S NEGATIVE IF THERE WAS NO CARRY ON FINAL STEP)
; 4255 ; THE ORIGINAL DIVIDEND IS STILL IN AC0, SO WE CHECK ITS SIGN
; 4256 ; TO DETERMINE WHETHER TO NEGATE THE (RESTORED) REMAINDER.
; 4257
; 4258 =100
U 0544, 0545,0602,2604,0000,0020,0027,0000 ; 4259 DIVX: AR←AR+BR LONG ;RESTORE REMAIN WITH POS D'SOR
; 4260 BR←AR LONG,ARX/MQ,FE←SC, ;LONG REMAIN TO BR, QUO TO ARX
U 0545, 0006,2500,0360,2401,0020,5503,0000 ; 4261 SKP AC0+,RETURN6 ;RETURN TESTING D'END SIGN
U 0546, 0547,5102,2604,0000,0020,0027,0000 ; 4262 AR←AR-BR LONG ;RESTORE REMAIN WITH NEG D'SOR
; 4263 BR←AR LONG,ARX/MQ,FE←SC,
U 0547, 0006,3200,0360,2401,0020,5503,0000 ; 4264 SKP AC0-,RETURN6
; 4265
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 89
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 4266 .TOC "DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV"
; 4267
; 4268 .DCODE
D 0114, 4000,0715 ; 4269 114: R, B/0, J/DASMD ;DADD
D 0115, 4201,0715 ; 4270 R, B/2, J/DASMD ;DSUB
D 0116, 4401,0715 ; 4271 R, B/4, J/DASMD ;DMUL
D 0117, 4600,0715 ; 4272 R, B/6, J/DASMD ;DDIV
; 4273 .UCODE
; 4274
; 4275 ;HERE FOR DOUBLE WORD ADD, SUBTRACT, MULTIPLY, OR DIVIDE
; 4276 ;ENTER WITH (E) IN AR, E IN VMA
; 4277
; 4278 =00**0*
; 4279 DASMD: BR/AR,AR←AC1*2,ARL/AD*2, ;HIGH MEM WORD TO BR
; 4280 VMA←VMA+1,LOAD ARX, ;ASK FOR LOW WORD
U 0715, 0757,3200,5041,0000,0033,3622,0505 ; 4281 MQ←0.S,CALL.S,J/XFERW ;AND WAIT FOR IT
U 0717, 0425,3701,0500,0000,0000,0010,0000 ; 4282 ARX←ARX*2 ;SHIFT LOW MEM WORD LEFT
; 4283 = BRX/ARX,ARX←AR,AR←AC0, ;ALL DATA IN PLACE
U 0425, 0550,3240,2420,0302,1020,0033,0043 ; 4284 SC←#,#/35.,B DISP ;DO THE OPERATION
; 4285
; 4286 ;HERE WITH (E) IN BR, (E+1)*2 IN BRX
; 4287 ; (AC) IN AR, (AC+1)*2 IN ARX
; 4288
; 4289 =00* AR←AR+BR LONG,AD FLAGS, ;DADD
U 0550, 0014,0602,2604,0000,0226,1327,0400 ; 4290 i fetch,j/dstac
; 4291
; 4292 AR←AR-BR LONG,AD FLAGS, ;DSUB
U 0552, 0014,5102,2600,0000,0226,1327,0400 ; 4293 i fetch,j/dstac
; 4294
; 4295 MQ←SHIFT,AR←0S,ARX←0S, ;DMUL, USE AC1 AS INITIAL M'IER
U 0554, 0551,3401,2210,0301,0000,0010,0756 ; 4296 FE←#,#/-18.,J/DMULT ;SETUP STEP COUNT
; 4297
; 4298 GEN AR*BR,AD/XOR,SKP AD0, ;COMPARE D'SOR AND D'END SIGNS
U 0556, 0460,3102,0000,0301,0020,5510,0043 ; 4299 FE←#,#/35.,J/DDVC1
; 4300
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 90
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 4301 ;HERE FOR DOUBLE WORD MULTIPLY
; 4302
; 4303 =00*
U 0551, 0430,3441,0010,4001,0001,0030,0400 ; 4304 DMULT: AD/0S,MUL,CALL.M,J/MULP ;BEGIN MULTIPLY
U 0555, 0557,0602,2604,0000,0020,0027,0000 ; 4305 =10* AR←AR+BR LONG ;CANCEL EFFECTS OF LOW BIT 0
U 0557, 0430,3723,2010,0000,1000,0010,0000 ; 4306 MQ←AR,AR←MQ ;EXCH HI AND LOW PRODUCT WORDS
; 4307
; 4308 ;HERE AFTER 1ST CALL ON MPY SUBR. SAVE LOW WORD OF PROD, GET HIGH M'IER
; 4309
U 0430, 0431,0001,0005,0000,0000,1010,0000 ; 4310 AC3←AR ;LOW WORD OF PRODUCT
U 0431, 0560,3240,2000,0000,0020,0010,0000 ; 4311 AR←AC0 ;GET HIGH M'IER WORD
; 4312 =000 MQ←AR,AR←MQ,CALL, ;DIVE IN AGAIN
U 0560, 0376,3721,2010,0301,1000,0021,0756 ; 4313 FE←#,#/-18.,J/MULREE ;CONTINUE THE MULTIPLY
U 0564, 0566,3602,0000,0000,0020,5510,0000 ; 4314 =100 GEN AR*BR,AD/AND,SKP AD0 ;SKP IF M'IER, M'CAND, & PROD NEG
; 4315 =110
; 4316 DMUL1: AC0←AR,AR←SIGN,
U 0566, 0432,5441,2000,0302,0020,1016,0043 ; 4317 SC←#,#/35.,J/DMUL2 ;STORE HIGH WORD OF PRODUCT
U 0567, 0566,4001,0000,0000,0000,1110,0420 ; 4318 SET AROV,J/DMUL1
; 4319
; 4320 ;MULTIPLY NOW COMPLETE, STORE RESULTS WITH PROPER SIGN IN BIT 0
; 4321
U 0432, 0440,4001,4040,0000,0000,0010,0000 ; 4322 DMUL2: BR/AR,AR←SHIFT ;GET 2ND WITH SIGN, SAVE SIGN
U 0440, 0441,0001,4301,0000,2000,1010,0000 ; 4323 AC1←AR,AR←ARX,ARX/MQ ;READY TO BUILD 3RD WORD
U 0441, 0442,3202,2400,0000,0000,0012,0000 ; 4324 ARX←SHIFT,AR←BR,MQ←MQ*2 ;SIGNIFICANT BITS TO ARX, SIGN TO AR
; 4325 AR←SHIFT,ARX←AC3, ;3RD WORD IN AR, GET LOW
U 0442, 0450,3240,4215,0000,0020,0012,0000 ; 4326 MQ←MQ*.25 ;EXTRA PROD BIT TO MQ 35
U 0450, 0451,3721,2004,0000,0206,1010,0400 ; 4327 AC2←AR,AR←MQ,I FETCH
; 4328 =0* ARX←SHIFT,AR←BR, ;LOW WORD AND SIGN READY
U 0451, 1174,3242,2400,0000,0000,0021,0000 ; 4329 CALL,J/SHIFT ; GET LOW WORD TO AR
U 0453, 0140,0001,0005,0000,0002,1006,0000 ; 4330 STRAC3: AC3←AR,NXT INSTR ;GANZ GETAN
; 4331
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 91
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 4332 ;HERE FOR DOUBLE INTEGER DIVISION
; 4333
; 4334 =0
U 0460, 0536,5102,0004,0000,0020,0031,0000 ; 4335 DDVC1: GEN AR-BR,DISP/DIV,J/DDVC2 ;SIGNS EQUAL
U 0461, 0536,0602,0000,0000,0020,1631,0061 ; 4336 GEN AR+BR,DISP/DIV,SET SR3 ;SIGNS DIFFER
; 4337 =110
; 4338 DDVC2: AR←AC3*2,MQ←SHIFT,SC←#,#/2, ;MQ= AC0 BIT 35 & AC1 1-35
U 0536, 0530,3200,5015,0302,0020,4510,0002 ; 4339 SKP AR0,J/DDVP ;OK TO DIVIDE IF D'END POS
U 0537, 0464,2341,2000,0000,0001,4510,0060 ; 4340 skp ar0,ar←1s,arl+arx←0.m ;neg d'end?
; 4341
U 0464, 1113,0001,0000,0000,0206,0010,0400 ; 4342 =0 I FETCH,J/NODIVD ;NO, ABORT DIVISION
U 0465, 0452,0001,0010,0000,0000,0010,0000 ; 4343 mq←shift ;yes, put 1b0 in mq
; 4344
; 4345 AR←MQ*AC3,AD/ORCB+1, ;FORCE BIT 0 IN COMPLEMENT
U 0452, 0470,5020,2005,4000,0020,1610,0062 ; 4346 SET SR2 ; AND REMEMBER D'END WAS NEG
U 0470, 0573,0001,0005,0000,0020,1032,0000 ; 4347 AC3←AR,signs disp ;STORE IT BACK
; 4348
U 0573, 0471,5020,2004,4000,0020,0010,0000 ; 4349 =011 ar←mq*ac2,ad/orcb+1,j/ddvn2 ;propagate carry from ac3
U 0577, 0471,2720,2004,4000,0020,0010,0000 ; 4350 AR←MQ*AC2,AD/ORCB ;COMPLEMENT AC2
U 0471, 0623,0001,0004,4402,0020,1032,0000 ; 4351 ddvn2: AC2←AR,SC←1,signs disp ;STORE IT BACK
; 4352
U 0623, 0474,5020,2001,4000,0020,0010,0000 ; 4353 =011 ar←mq*ac1,ad/orcb+1,j/ddvn3 ;propagate carry again
U 0627, 0474,2720,2001,4000,0020,0010,0000 ; 4354 AR←MQ*AC1,AD/ORCB ;COMPLEMENT AC1
U 0474, 0633,4001,0401,0000,0020,1032,0000 ; 4355 ddvn3: AC1←AR,ARX←SHIFT,signs disp ;SAVE AC1
; 4356
U 0633, 0475,5140,2000,0000,0020,0010,0000 ; 4357 =011 ar←-ac0,j/ddvn4
U 0637, 0475,2540,2000,0000,0020,0010,0000 ; 4358 AR←AC0 COMP ;ONCE MORE FOR HIGH WORD
U 0475, 0536,0001,0000,0302,0000,1010,0043 ; 4359 ddvn4: AC0←AR,SC←#,#/35.,J/DDVC2 ;GO DIVIDE WITH POS DIVIDEND
; 4360
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 92
; DSK: UCODE; ARITH 2 20:55:29 10-JAN-76 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 4361 ;HERE WITH POSITIVE DIVIDEND
; 4362 =0
U 0530, 0532,3240,2404,0000,1020,0010,0000 ; 4363 DDVP: ARX←AR,AR←AC2,J/DDVP1
U 0531, 1113,0001,0000,0000,0206,0010,0400 ; 4364 I FETCH,J/NODIVD
; 4365
U 0532, 0645,0001,0310,4402,0000,0010,0000 ; 4366 DDVP1: MQ←SHIFT,ARX/MQ,SC←1 ;MQ= AC2 BITS 2-35 & AC3 1-2
; 4367 =101 ARX←SHIFT,AR←ARX (ADX),
U 0645, 0661,3721,6400,0000,0000,0021,0000 ; 4368 CALL,J/DDVP2 ;SETUP RETURN FROM FINAL DIVIDE
U 0647, 0561,3242,2600,0000,0000,0005,0000 ; 4369 AR←BR LONG,SR DISP,J/DDVX0 ;RECOVER REMAIN
; 4370
; 4371 =0001
; 4372 DDVP2: ARX←SHIFT,AR←AC0, ;ARX= AC1 BITS 1-35 & AC2 1
; 4373 FE←#,#/34.,CALL, ;SETUP FOR PARTIAL DIVIDE
U 0661, 0652,3240,2400,0301,0020,4221,0042 ; 4374 SKP BR0,J/DDVSUB
U 0663, 0533,4001,4000,0000,2000,1021,0000 ; 4375 =0011 AC0←AR,AR←ARX,CALL,J/DDVP3 ;SAVE HIGH PART OF QUOTIENT
U 0665, 0533,4001,4000,0000,2000,1021,0000 ; 4376 =0101 AC0←AR,AR←ARX,CALL,J/DDVP3 ;RESUME WITH SUBTRACT
U 0673, 0523,3240,0201,0000,0020,0010,0000 ; 4377 =1011 ARX←AC1,J/DIV+ ;SECOND PART OF DIVISION
U 0675, 0522,3200,0201,0000,0020,0010,0000 ; 4378 =1101 ARX←AC1,J/DIV- ; RETURN ABOVE
; 4379 =
U 0533, 0540,0001,0001,0000,0000,1010,0000 ; 4380 DDVP3: AC1←AR ;HOLD PARTIAL REMAINDER
U 0540, 0541,3200,2005,0302,0020,0510,0003 ; 4381 AR←AC3,CLR ARX,SC←#,#/3 ;GET LOW DIVIDEND
U 0541, 0010,3723,2010,0000,0000,0003,0000 ; 4382 MQ←SHIFT,AR←MQ,RETURN10 ;READY TO RESUME
; 4383
; 4384 ;HERE WITH REMAIN (POS) IN AR, QUO IN AC0 AND MQ
; 4385
; 4386 =01
U 0561, 0542,5401,2004,0302,0020,1016,0043 ; 4387 DDVX0: AC2←AR,AR←SIGN,SC←#,#/35.,J/DDVX1
U 0563, 0561,5162,2600,0000,0020,1627,0020 ; 4388 AR←-BR LONG,CLR SR2,J/DDVX0 ;NEGATE REMAIN
; 4389
; 4390 DDVX1: AR←SHIFT,ARX←AC0, ;LOW REM TO AR, HI QUO TO ARX
U 0542, 0543,3260,4200,0000,0020,0012,0000 ; 4391 MQ←MQ*2,ADA EN/0S
; 4392 AC3←AR,AR←ARX,ARX/MQ, ;DONE WITH REM, READY QUO
U 0543, 0570,0001,4305,0000,2000,1005,0000 ; 4393 SR DISP ;NEG QUO?
; 4394
U 0570, 0015,5401,2000,0000,0226,1016,0400 ; 4395 =0 AC0←AR,AR←SIGN,I FETCH,J/STD1 ;STORE AWAY QUOTIENT
U 0571, 0014,5143,7700,0000,0226,0027,0400 ; 4396 AR←-AR LONG,i fetch,j/dstac ;NEGATE IT, THEN STORE
; 4397
; 4398 ;SUBROUTINE FOR FIRST PART OF LONG DIVISIONS
; 4399 ; ENTER AT DDVSUB WITH SKP BR0
; 4400 ; RETURN3 IF SHOULD RESUME WITH ADD STEP
; 4401 ; RETURN5 IF SHOULD RESUME WITH SUBTRACT
; 4402
; 4403 =000
U 0650, 0650,0602,5504,3001,0020,0031,0000 ; 4404 DDVLP: AR←2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0651, 0650,5102,5500,3001,0020,0031,0000 ; 4405 AR←2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0652, 0650,5102,5500,3001,0020,0031,0000 ; 4406 DDVSUB: AR←2(AR-BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0653, 0650,0602,5504,3001,0020,0031,0000 ; 4407 AR←2(AR+BR),ARX/ADX*2,DIVIDE,J/DDVLP
U 0654, 0003,3723,2010,0301,1000,0003,0040 ; 4408 AR←MQ,MQ←AR,FE←#,#/32.,RETURN3
U 0655, 0005,3723,2010,0301,1000,0003,0040 ; 4409 AR←MQ,MQ←AR,FE←#,#/32.,RETURN5
U 0656, 0005,3723,2010,0301,1000,0003,0040 ; 4410 AR←MQ,MQ←AR,FE←#,#/32.,RETURN5
U 0657, 0003,3723,2010,0301,1000,0003,0040 ; 4411 AR←MQ,MQ←AR,FE←#,#/32.,RETURN3
; 4412
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 93
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 DOUBLE INTEGER ARITHMETIC -- DADD, DSUB, DMUL, DDIV
; 4413
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 94
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 4414 .TOC "SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR"
; 4415
; 4416 .DCODE
; 4417 .IFNOT/UFA.DFN
; 4418 130: I, J/UUO ;UFA
; 4419 I, J/UUO ;DFN
; 4420 .ENDIF/UFA.DFN
; 4421
D 0140, 4100,0706 ; 4422 140: R, FL-AC, b0/0, J/FAD
D 0141, 4000,0707 ; 4423 R, b0/0, J/FADL
D 0142, 6201,0706 ; 4424 RW, FL-MEM, b0/0, J/FAD
D 0143, 6300,0706 ; 4425 RW, FL-BOTH,b0/0, J/FAD
; 4426
D 0144, 4101,1203 ; 4427 R, FL-AC, J/FADR
D 0145, 0101,1202 ; 4428 I, FL-AC, B0/0, J/FADRI
D 0146, 6200,1203 ; 4429 RW, FL-MEM, J/FADr
D 0147, 6301,1203 ; 4430 RW, FL-BOTH, J/FADR
; 4431
D 0150, 4501,0706 ; 4432 150: R, FL-AC, b0/1, J/FSB
D 0151, 4401,0707 ; 4433 R, b0/1, J/FSBL
D 0152, 6600,0706 ; 4434 RW, FL-MEM, b0/1, J/FSB
D 0153, 6701,0706 ; 4435 RW, FL-BOTH,b0/1, J/FSB
; 4436
D 0154, 4100,1207 ; 4437 R, FL-AC, J/FSBR
D 0155, 0500,1202 ; 4438 I, FL-AC, B0/1, J/FSBRI
D 0156, 6201,1207 ; 4439 RW, FL-MEM, J/FSBR
D 0157, 6300,1207 ; 4440 RW, FL-BOTH, J/FSBR
; 4441 .UCODE
; 4442
; 4443 .IFNOT/FPLONG
; 4444 =00**00
; 4445 FAD:
; 4446 FSB: SR←#,#/1,B DISP,J/FADR ;FLAG NO ROUND, GO FAD/FSB
; 4447 FMP: SR←#,#/1,J/FMPR
; 4448 FDV: SR←#,#/1,J/FDVR
; 4449 FADL:
; 4450 FSBL:
; 4451 FMPL:
; 4452 FDVL: AR←BR,J/UUO ;LONG MODE BECOMES UUO
; 4453 =
; 4454 .IF/FPLONG
; 4455 =00***0
; 4456 FAD:
U 0706, 1203,0001,0000,0000,0000,1633,0001 ; 4457 fsb: SR←#,#/1,b disp,J/FADR ;FLAG TRUNCATE MODE, GO FAD
; 4458 FADL:
U 0707, 1203,0001,0000,0000,0000,1633,0002 ; 4459 fsbl: SR←#,#/2,b disp,J/FADR ;FLAG LONG MODE
; 4460 .ENDIF/FPLONG
; 4461 =
; 4462 =00*010
; 4463 FADRI:
U 1202, 1203,4001,4000,0000,3000,0033,0000 ; 4464 FSBRI: AR←AR SWAP,B DISP
; 4465 FADR: FE←EXP,EXP←SIGN,SC/SCAD,
U 1203, 0562,3401,0200,0203,1000,0022,0200 ; 4466 ARX←0S,J/fas
; 4467 =111
U 1207, 0553,3441,0200,0203,1000,0022,0200 ; 4468 fsbr: fe←exp,sc/scad,exp←sign,arx←0s
U 0553, 0562,5163,7000,0000,0020,0010,0000 ; 4469 = AR←-AR,J/fas ;NEGATE SUBTRAHEND
; 4470
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 95
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE FLOATING ADD & SUB -- FAD, FADR, FSB, FSBR
; 4471 ;FIND OPERAND WITH LARGER EXP, LEAVING IT IN BR,
; 4472 ; AND ITS EXP-1 IN FE. THE SMALLER OPERAND IS LEFT IN AR,
; 4473 ; SHIFTED RIGHT BY THE DIFFERENCE BETWEEN THE EXPONENTS -1
; 4474
U 0562, 0565,3240,2060,0000,0020,0010,0000 ; 4475 fas: BR/AR,BRX/ARX,AR←AC0 ;SAVE MEM OP IN BR, GET AC
U 0565, 0574,0001,0000,5202,1020,5122,0200 ; 4476 SC←EXP-SC,EXP←SIGN,SKP SCAD0 ;FIND LARGER OPERAND
U 0574, 0572,3201,2040,2001,0000,0010,0000 ; 4477 =0 FE←FE+SC,BR/AR,AR←BR*2,J/fas1 ;AC EXP .GE. MEM
; 4478 MQ←AR,SC←#+SC,#/37., ;MEM OP LARGER, SHIFT AC OP
U 0575, 0620,4001,0010,2302,1020,5110,0045 ; 4479 SKP SCAD0,J/fas2 ;COMPUTE SHIFT AMOUNT
; 4480
U 0572, 0620,4001,0010,5302,1020,5110,0044 ; 4481 fas1: MQ←AR,SC←#-SC,#/36.,SKP SCAD0 ;CHECK SHIFT AMOUNT
; 4482 =0
U 0620, 0576,5401,2310,0000,0020,0016,0000 ; 4483 fas2: MQ←SHIFT,ARX/MQ,AR←SIGN,J/fas3 ;LOW TO MQ, READY TO GET HI
; 4484 AR←SIGN,ARX←AR, ;HERE IF EXP DIFF .GT. 36
U 0621, 0624,5441,2400,2302,1020,5116,0044 ; 4485 SC←#+SC,#/36.,SKP SCAD0 ; .gt. 72?
U 0624, 0622,0001,0400,4001,0001,0010,0100 ; 4486 =0 ARX←SHIFT,MQ←0.M,FE←FE+1,j/fas5
U 0625, 0622,4001,0400,4001,1001,0010,0100 ; 4487 arx←ar,MQ←0.M,FE←FE+1,j/fas5 ;SHIFTED CLEAR OUT
; 4488
; 4489 fas3: AR←SHIFT,ARL/SH,ARX/MQ,
U 0576, 0622,4001,4300,4001,0001,0010,0104 ; 4490 MQ←0.M,FE←FE+1 ;READY TO ADD
; 4491
; 4492 fas5: AR←(AR+2BR)*.25,ARX/ADX*.25, ;HERE FOR ADD OR SUB
U 0622, 0770,0601,7700,0000,0060,0035,0000 ; 4493 NORM,J/SNORM
; 4494
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 96
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE FLOATING MULTIPLY -- FMP, FMPR
; 4495 .TOC "SINGLE FLOATING MULTIPLY -- FMP, FMPR"
; 4496
; 4497 .DCODE
D 0160, 4101,1010 ; 4498 160: R, FL-AC, J/FMP
D 0161, 4001,1011 ; 4499 R, J/FMPL
D 0162, 6200,1010 ; 4500 RW, FL-MEM, J/FMP
D 0163, 6301,1010 ; 4501 RW, FL-BOTH,J/FMP
; 4502
D 0164, 4101,1013 ; 4503 R, FL-AC, J/FMPR
D 0165, 0101,1012 ; 4504 I, FL-AC, J/FMPRI
D 0166, 6200,1013 ; 4505 RW, FL-MEM, J/FMPR
D 0167, 6301,1013 ; 4506 RW, FL-BOTH,J/FMPR
; 4507 .UCODE
; 4508 .IF/FPLONG
; 4509 =00***0
U 1010, 1013,4001,0000,0000,0000,1610,0001 ; 4510 fMP: SR←#,#/1,J/FMPR ;FLAG TRUNCATE MODE
U 1011, 1013,4001,0000,0000,0000,1610,0002 ; 4511 FMPL: SR←#,#/2,J/FMPR ;LONG MODE
; 4512 =
; 4513 .ENDIF/FPLONG
; 4514 =00***0
U 1012, 1013,0001,4000,0000,3000,0010,0000 ; 4515 FMPRI: AR←AR SWAP
U 1013, 0626,3441,0200,0202,1000,0022,0200 ; 4516 FMPR: SC←EXP,EXP←SIGN,ARX←0S ;PREPARE M'IER FRACTION
; 4517
U 0626, 0632,3240,2010,0301,1020,0010,0762 ; 4518 = MQ←AR,AR←AC0,FE←#,#/-14. ;M'IER TO MQ, GET M'CAND
; 4519 =01* SC←EXP+SC,EXP←SIGN, ;SEPARATE M'CAND FRACTION FROM EXP
U 0632, 0365,0001,0000,2202,1000,0022,0600 ; 4520 CALL.S,J/MULSUB ;AND BEGIN MULTIPLY
U 0636, 0770,3243,0000,2301,0040,0035,0600 ; 4521 =11* FE←#+SC,#/-200,NORM AR,J/SNORM
; 4522 =
; 4523
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 97
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE FLOATING DIVIDE -- FDV, FDVR
; 4524 .TOC "SINGLE FLOATING DIVIDE -- FDV, FDVR"
; 4525
; 4526 .DCODE
D 0170, 4101,1103 ; 4527 170: R, FL-AC, J/FDV
D 0171, 4100,1102 ; 4528 R, FL-AC, J/FDVL
D 0172, 6200,1103 ; 4529 RW, FL-MEM, J/FDV
D 0173, 6301,1103 ; 4530 RW, FL-BOTH,J/FDV
; 4531
D 0174, 4100,1115 ; 4532 R, FL-AC, J/FDVR
D 0175, 0100,1114 ; 4533 I, FL-AC, J/FDVRI
D 0176, 6201,1115 ; 4534 RW, FL-MEM, J/FDVR
D 0177, 6300,1115 ; 4535 RW, FL-BOTH,J/FDVR
; 4536 .UCODE
; 4537 .IF/FPLONG
; 4538 =00***0
U 1102, 0730,4001,0000,3201,1000,0022,0340 ; 4539 FDVL: FE←EXP-1,EXP←SIGN,ARX+MQ←0.S,J/FDVL1
U 1103, 1115,0001,0000,0000,0000,1610,0001 ; 4540 FDV: SR←#,#/1,J/FDVR ;FLAG TRUNCATE MODE
; 4541 =
; 4542 .ENDIF/FPLONG
; 4543 =00***0
U 1114, 1115,4001,4000,0000,3000,0010,0000 ; 4544 FDVRI: AR←AR SWAP
U 1115, 0720,4001,0000,4202,1000,0022,0340 ; 4545 FDVr: SC←EXP+1,EXP←SIGN,ARX+MQ←0.S ;SETUP DIVISOR
; 4546 =
; 4547 =000 BR/AR,BRX/ARX, ;DIVISOR TO BR, CLR BRX
; 4548 AR←AC0,FE←#,#/27., ;GET DIVIDEND, STEP COUNT
U 0720, 0724,3200,2060,0301,0020,5521,0033 ; 4549 SKP AD0,CALL,J/FDVCHK
; 4550
U 0722, 0522,0001,0000,0000,0000,4221,0000 ; 4551 =10 SKP BR0,CALL,J/DIV- ;OK, BEGIN DIVISION
U 0723, 0066,4001,0000,0000,0000,1110,0624 ; 4552 SET FL NO DIV,J/ifNOP ;NO DIVIDE, SORRY
; 4553
; 4554 ;return here with quotient in arx. we took 29 divide steps, to
; 4555 ; guarantee having a rounding bit even if the first step generates
; 4556 ; a quotient bit of zero. therefore, the msb of quotient is either
; 4557 ; in bit 7 or 8, and norm will find it in one step.
; 4558
; 4559 =110 AR←ARX,fe←fe+#,#/2, ;NEGATIVE QUOTIENT
U 0726, 0630,7162,4000,2031,2040,5410,0002 ; 4560 skp br eq,j/fdvneg ;check for more quo to come
; 4561 AR←ARX*.25,ARX←arx*.25,norm, ;junk is 36 bits away from msb
U 0727, 0770,3711,7700,2031,0040,0035,0002 ; 4562 fe←fe+#,#/2,j/snorm ;POS QUOTIENT, NORMALIZE
; 4563 =
; 4564 ;here if quotient should be negative, with positive form in
; 4565 ; ar and arx. skip if remainder (in br) is zero. in this case,
; 4566 ; we clear arx, because ar contains the entire quotient.
; 4567 ; if, however, the remainder is not zero, we infer
; 4568 ; that an infinite precision division would generate more ones
; 4569 ; in the quotient. if that is the case, we leave arx with the
; 4570 ; quotient, so the negation process will work correctly to return
; 4571 ; the high order part of the infinite-precision negative quotient.
; 4572 =0
U 0630, 0770,3701,7700,0000,0040,1635,0064 ; 4573 fdvneg: set sr1,ar←ar*.25 long,norm,j/snorm
U 0631, 0630,3441,0200,0000,0000,0010,0000 ; 4574 arx←0s,j/fdvneg ;remainder went to zero
; 4575
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 98
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE FLOATING DIVIDE -- FDV, FDVR
; 4576 ;HERE FOR FDVL
; 4577
; 4578 .IF/FPLONG
; 4579
; 4580 ;FDVL: FE←EXP-1,EXP←SIGN,CLR ARX+MQ
; 4581 =000
; 4582 FDVL1: AR←AC1,BR←AR LONG, ;SAVE DIVISOR IN BR LONG
U 0730, 0731,3200,2061,0302,0020,0021,0011 ; 4583 SC←#,#/9.,CALL ;READY TO SHIFT LOW DIVIDEND
; 4584 ARX←SHIFT,AR←AC0, ;DIVIDEND IN PLACE
; 4585 SC←FE,FE←#,#/24., ;EXP TO SC, STEP COUNT TO FE
U 0731, 0724,3200,2400,0301,0020,5513,0030 ; 4586 SKP AD0,J/FDVCHK ;GO CHECK FOR NO DIVIDE
U 0732, 0634,4001,0000,0000,0000,4221,0000 ; 4587 =010 CALL,SKP BR0,J/FDVL2 ;GO BEGIN DIVIDE
U 0733, 0066,4001,0000,0000,0000,1110,0624 ; 4588 SET FL NO DIV,J/ifNOP ;CAN'T DIVIDE, ABORT
; 4589
; 4590 =110 AR←AC0,SR←#,#/5, ;NEG QUO, FLAG TRUNCATE MODE
U 0736, 0666,3240,2000,0000,0020,1605,0005 ; 4591 SR DISP,J/FDVL4 ; WAS IT 26 OR 27 STEPS?
; 4592 AR←AC0,SR←#,#/1, ;POS QUO
U 0737, 0666,3200,2000,0000,0020,1605,0001 ; 4593 SR DISP,J/FDVL4
; 4594 =
; 4595
; 4596
; 4597 ;COME HERE TO START THE DIVISION. ON THE FIRST STEP, WE CHECK
; 4598 ; TO SEE WHETHER A 1 HAS BEEN GENERATED IN THE QUOTIENT. IF SO,
; 4599 ; 26 ADDITIONAL STEPS WILL GENERATE THE FULL 27 SIGNIFICANT BITS
; 4600 ; OF THE QUOTIENT. IF NOT, 27 STEPS ARE REQUIRED.
; 4601
; 4602 =0
U 0634, 0640,5102,5504,3001,0020,0031,0000 ; 4603 FDVL2: DIVIDE,AR←2(AR-BR),ARX/ADX*2,J/FDVL3 ;FIRST DIVIDE STEP
U 0635, 0640,0602,5500,3001,0020,0031,0000 ; 4604 DIVIDE,AR←2(AR+BR),ARX/ADX*2 ; DOES IT GENERATE A 1?
; 4605 =00
; 4606 FDVL3: DISP/DIV,MQ/MQ*2, ;NO, TAKE AN EXTRA DIVIDE STEP
U 0640, 0520,0602,5504,0000,0020,0031,0000 ; 4607 AR←2(AR+BR),ARX/ADX*2,J/DIVLP ; WITHOUT COUNTING FE
U 0641, 0522,4001,0000,2302,0000,1610,0001 ; 4608 SR←1,SC←#+SC,#/1,J/DIV- ;YES, 27 STEPS WILL NORMALIZE QUO
U 0642, 0520,5102,5500,0000,0020,0031,0000 ; 4609 DISP/DIV,MQ/MQ*2,AR←2(AR-BR),ARX/ADX*2,J/DIVLP
U 0643, 0523,0001,0000,2302,0000,1610,0001 ; 4610 SR←1,SC←#+SC,#/1,J/DIV+
; 4611
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 99
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE FLOATING DIVIDE -- FDV, FDVR
; 4612 ;WE COME HERE AFTER DOING THE DIVISION, EITHER 26 OR 27 STEPS
; 4613 ; AS REQUIRED TO GENERATE A NORMALIZED QUOTIENT FROM NORMALIZED
; 4614 ; OPERANDS. NOW FIGURE OUT WHAT EXPONENT THE REMAINDER SHOULD HAVE.
; 4615
; 4616 =0
; 4617 FDVL4: SC←EXP-#,#/27., ;DIVIDEND EXP-27
U 0666, 0670,3242,2000,5232,0000,4510,0033 ; 4618 AR←BR,SKP AR0,J/FDVL6 ;GET REMAINDER, TEST D'END SIGN
; 4619 SC←EXP-#,#/26., ;D'END EXP-26
U 0667, 0670,3202,2000,5232,0000,4510,0032 ; 4620 AR←BR,SKP AR0
; 4621
; 4622 ;HERE WITH REMAINDER IN AR, ITS EXP IN SC
; 4623 ; SKIP IF D'END (AND THEREFORE REM) NEGATIVE.
; 4624
; 4625 =0
; 4626 FDVL6: EXP←SC,BYTE DISP, ;TEST FOR UNDERFLOW
U 0670, 0746,5043,0000,2400,2041,5434,0200 ; 4627 SKP AR EQ,J/FDVL7 ; OR REM =0
; 4628 AR←-BR,SKP CRY0, ;NEGATE REM, CHECK =0
U 0671, 0676,5162,2000,2400,0040,5434,0000 ; 4629 GEN SC,BYTE DISP ; AND LOOK FOR EXP UFLO
U 0676, 0746,0001,0000,1400,2001,0010,0200 ; 4630 =110 EXP←-SC-1,J/FDVL7 ;ONE'S COMPLEMENT EXP
U 0677, 0746,3441,2000,0000,0000,0010,0000 ; 4631 AR←0S ;REM =0 OR EXP UFLO
; 4632 =110
; 4633 FDVL7: AC1←AR,ARX+MQ←0.M, ;SAVE REMAINDER
U 0746, 0772,3723,2001,0000,0001,1010,0142 ; 4634 AR←MQ,ARL/AD,J/snr2 ;GO NORMALIZE QUOTIENT
U 0747, 0746,3441,2000,0000,0000,0010,0000 ; 4635 AR←0S,J/FDVL7
; 4636 .ENDIF/FPLONG
; 4637
; 4638
; 4639 ;SUBR TO CHECK FOR FLOATING NO DIVIDE
; 4640 ; ENTER WITH SKP ON DIVIDEND SIGN, IN AR LONG, WITH
; 4641 ; DIVISOR EXP IN SC, DIVISOR IN BR
; 4642
; 4643 =0
U 0724, 0734,0001,0000,5202,1000,4222,0200 ; 4644 FDVCHK: SC←EXP-SC,EXP←SIGN,SKP BR0,J/FDVCK1
U 0725, 0724,5163,7700,0000,0020,0027,0000 ; 4645 AR←-AR LONG,J/FDVCHK ;GET POSITIVE DIVIDEND
; 4646 =0
; 4647 FDVCK1: GEN AR-2BR,SKP CRY0, ;TEST FOR NO DIVIDE
U 0734, 0002,5101,0004,2302,0040,5403,0177 ; 4648 SC←#+SC,#/177,RETURN2 ;AND CORRECT EXP
; 4649 GEN AR+2BR,SKP CRY0, ;SAME TEST, NEG DIVISOR
U 0735, 0002,0601,0000,2302,0040,5403,0177 ; 4650 SC←#+SC,#/177,RETURN2 ;AND SAME EXP CORRECTION
; 4651
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 100
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 UFA, DFN, FSC, IBP
; 4652 .TOC "UFA, DFN, FSC, IBP"
; 4653 ;ENTER WITH (E) IN AR
; 4654 .IF/UFA.DFN
; 4655 .DCODE
D 0130, 4001,1201 ; 4656 130: R, J/UFA
D 0131, 7000,1200 ; 4657 RPW, J/DFN
; 4658 .UCODE
; 4659 =00***0
; 4660 DFN: FE←AR0-8,AR0-8←#,#/0, ;SAVE LOW EXP, CLR SO CAN
U 1200, 0644,3401,0200,2421,0000,0110,0000 ; 4661 ARX←0S,J/DFN1 ; DETECT FRACTION = 0
U 1201, 0750,3401,0200,0203,1000,0022,0200 ; 4662 UFA: FE←EXP,SC/SCAD,EXP←SIGN,ARX←0S
; 4663 =
U 0750, 1042,3240,2060,0000,0020,0021,0000 ; 4664 =000 BR←AR long,AR←AC0,CALL,J/EXPD
; 4665 =100
; 4666 UFA1: ARX←AR,AR←SIGN,ARL/AD, ;READY TO UNNORMALIZE SMALLER OP
U 0754, 1174,5441,2400,0000,1021,0016,0402 ; 4667 CALL.M,J/SHIFT
U 0755, 0756,5401,2200,0000,0020,0016,0000 ; 4668 ar←sign,arx/ad ;lost smaller op, use its sign
; 4669 =110 AR←AR+BR,SKP AD NE, ;IS RESULT SIGNIFICANT?
U 0756, 0740,0602,2004,0000,0246,5613,0400 ; 4670 SC←FE,I FETCH
; 4671 =
; 4672 =0
U 0740, 0013,0001,0001,0000,0000,1010,0000 ; 4673 UFA3: AC1←AR,J/FINI ;NO, CLEAR RESULT AC
U 0741, 0742,0001,0040,0200,0020,5210,0000 ; 4674 SKP EXP NE,BR/AR ;IS RIGHT SHIFT REQ'D?
; 4675
U 0742, 0752,0001,0000,0000,0000,4510,0000 ; 4676 =0 SKP AR0,J/UFA4 ;NO, IS RESULT NEG?
U 0743, 0744,3201,7000,5030,0020,5210,0377 ; 4677 AR←BR*.5,gen fe-#,#/377,skp scad ne
U 0744, 0745,0001,0000,3401,0000,1110,0620 ; 4678 =0 fe←-1,set flov
U 0745, 0752,4001,0000,4003,0000,4510,0000 ; 4679 FE←FE+1,SC/SCAD,SKP AR0
; 4680 =0
U 0752, 0016,0001,0000,0000,2000,0710,0410 ; 4681 UFA4: exp←FE TST,J/STAC1 ;POS, PUT IN EXP STRAIGHT
U 0753, 0016,0001,0000,1400,2000,0710,0410 ; 4682 exp←-SC-1 TST,J/STAC1 ;NEG, USE COMPLEMENT OF EXP
; 4683
; 4684
U 0644, 0760,5143,7000,0000,0040,5410,0000 ; 4685 DFN1: AR←-AR,SKP CRY0 ; LOW FRACTION =0?
; 4686 =0 AR0-8←FE,STORE, ;STORE LOW WORD BACK TO MEM
U 0760, 0134,2540,0200,0000,2036,0022,0200 ; 4687 ARX←AC0 COMP,J/STMAC ; GET COMPLEMENTED HIGH WORD
; 4688 AR0-8←FE,STORE, ;LOW WORD WAS ZERO, INSTALL EXP
U 0761, 0134,5140,0200,0000,2036,0022,0200 ; 4689 ARX←-AC0,J/STMAC ; GET NEGATED HIGH WORD
; 4690 .ENDIF/UFA.DFN
; 4691
; 4692 .DCODE
D 0132, 0100,1205 ; 4693 132: I, FL-AC, J/FSC
D 0133, 4001,1204 ; 4694 R, J/IBP ;ADJBP IF AC .NE. 0
; 4695 .UCODE
; 4696 =00***0
U 1204, 1160,0001,0000,0000,0000,4610,0000 ; 4697 IBP: SKP AC#0,J/IBP1 ;IS IT IBP, OR ADJBP?
; 4698
; 4699 ;FSC
; 4700 ;ENTER WITH E IN AR
; 4701 =00****
; 4702 FSC: SC←EA,ARX+MQ←0.M,
U 1205, 0646,3240,2000,0002,0021,0013,0142 ; 4703 AR←AC0,ARL/AD
U 0646, 0772,0001,0000,2201,1000,0022,0200 ; 4704 = FE←EXP+SC,EXP←SIGN,J/snr2 ;NORMALIZE SCALED RESULT
; 4705
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 101
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 FIX, FIXR, FLTR, EXTEND
; 4706 .TOC "FIX, FIXR, FLTR, extend"
; 4707
; 4708 .DCODE
D 0122, 4001,1005 ; 4709 122: R, J/FIX ;UNROUNDED
; 4710 .IF/EIS
; 4711 r, J/extend ;extended instruction set
; 4712 .IFNOT/EIS
D 0123, 0001,1002 ; 4713 I, J/UUO
; 4714 .ENDIF/EIS
; 4715
D 0126, 4000,1211 ; 4716 126: R, J/FIXR ;ROUNDED
D 0127, 4100,1210 ; 4717 R, FL-AC, J/FLTR
; 4718 .UCODE
; 4719
; 4720 ;FLTR
; 4721 ;ENTER WITH (E) IN AR
; 4722 =00***0
; 4723 FLTR: FE←#,#/277,ARX←ar,skp ar0, ;BINARY POINT TO RIGHT OF ARx
U 1210, 0770,5441,2400,0301,1020,4516,0277 ; 4724 ar←sign,j/snorm ; sign extended. go normalize
; 4725
; 4726 ;FIX AND FIXR
; 4727 ;ENTER WITH (E) IN AR
; 4728 ; FIX AND FIXR DIFFER ONLY IN THE ROUNDING CRITERION:
; 4729 ;FIXR ADDS 1 TO THE INTEGER PART IF THE FRACTION PART IS ONE-HALF
; 4730 ;OR GREATER. FIX DROPS THE FRACTION PART OF POSITIVE NUMBERS, BUT ADDS
; 4731 ;1 TO THE INTEGER PART OF NEGATIVE NUMBERS IF THE FRACTION PART IS NOT
; 4732 ;ALL ZERO.
; 4733 ; THIS IS IMPLEMENTED BY CHOOSING A FRACTION (THE ROUNDING
; 4734 ;CONSTANT) TO ADD TO THE INPUT, SUCH THAT A CARRY WILL OCCUR INTO THE
; 4735 ;INTEGER PART UNDER THE APPROPRIATE CONDITIONS. FOR FIXR, THE ROUNDING
; 4736 ;CONSTANT IS EXACTLY ONE-HALF. FOR FIX, IT IS ZERO ON POSITIVE INPUT,
; 4737 ;OR THE LARGEST POSSIBLE FRACTION (ALL 1S) ON NEGATIVE INPUT.
; 4738
; 4739 =00****
; 4740 FIXR: FE←EXP-#,#/244,SKP SCAD0, ;GET BINARY POINT POSITION
U 1211, 0762,4061,0700,5231,0020,5110,0244 ; 4741 ARX←1B1,J/FIX1 ;GET ROUNDING CONSTANT
; 4742 =
; 4743 .IFNOT/EIS
; 4744 ;1005: ;REALLY IN SKPJMP FILE TO PREVENT 1005 BEING USED TWICE
; 4745 ;FIX: FE←EXP-#,#/244,SKP SCAD0, ;GET BINARY POINT POSITION
; 4746 ; ARX←AR SIGN,J/FIX1 ;SET ROUNDING CONSTANT, GO FIX
; 4747 .IF/EIS
; 4748 =00***0
; 4749 FIX: FE←EXP-#,#/244,SKP SCAD0, ;GET BINARY POINT POSITION
; 4750 ARX←AR SIGN,J/FIX1 ;SET ROUNDING CONSTANT, GO FIX
; 4751 extend: fe←#+ar0-8,#/-20,skp scad0, ;valid extended operation?
; 4752 arx←ar,ar←brx,j/ext1 ; opr to arx, ac to ar
; 4753 =
; 4754 .ENDIF/EIS
; 4755 =0
U 0762, 0066,4001,0000,0000,0000,1110,0420 ; 4756 FIX1: SET AROV,J/ifNOP ;CAN'T DO IT, GIVE UP
U 0763, 0660,3701,0540,0000,0000,0410,0000 ; 4757 BR/AR,CLR AR,ARX←ARX*2 ;ROUNDING CONSTANT READY IN ARX
; 4758 BR←AR long,AR←BR,CLR ARX, ;MANTISSA TO AR LONG
U 0660, 0662,3242,2060,0302,0000,0510,0011 ; 4759 SC←#,#/9. ;READY TO SHIFT OFF EXPONENT
; 4760 ARX←SHIFT,AR←SIGN, ;MANTISSA LEFT ALIGNED IN ARX
U 0662, 0764,5401,2400,2032,0020,5116,0044 ; 4761 SC←FE+#,#/36.,SKP SCAD0 ;ANY INTEGER BITS?
; 4762 =0 MQ←SHIFT, ;YES, PUT THEM IN MQ
; 4763 AR←ARX (ADX),CLR ARX, ;SHIFT MANTISSA LEFT 36 PLACES
U 0764, 0664,3701,6010,0000,0206,0510,0400 ; 4764 I FETCH,J/FIX2 ;AND PREFETCH NEXT
U 0765, 0070,3401,2000,0000,0206,0010,0400 ; 4765 AR←0S,I FETCH,J/STORAC ;ALL SIGNIFICANCE LOST
; 4766
U 0664, 0672,3723,2400,0000,0000,0010,0000 ; 4767 FIX2: ARX←SHIFT,AR←MQ ;INTEGER IN AR, FRACTION IN ARX
U 0672, 0065,0602,2000,0000,0020,0027,0000 ; 4768 AR←AR+BR,AD LONG,J/STAC ;ROUND AND STORE
; 4769
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 102
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE PRECISION FLOATING NORMALIZATION
; 4770 .TOC "SINGLE PRECISION FLOATING NORMALIZATION"
; 4771
; 4772 ;HERE TO NORMALIZE SINGLE PRECISION RESULTS
; 4773 ;SR2-3 TELL HOW TO STORE RESULTS:
; 4774 ;XX00 ... ROUND, SINGLE PRECISION
; 4775 ;XX01 ... TRUNCATE, SINGLE PRECISION
; 4776 ;XX10 ... LONG MODE (IMPLIES TRUNCATION)
; 4777 ;IN ADDITION, THIS CODE SETS SR 1 IF ANSWER IS NEGATIVE, SO X1YZ
; 4778 ; CORRESPONDS TO X0YZ EXCEPT THAT THE RESULT MUST BE NEGATED.
; 4779
; 4780 ;dispatch to snorm with "disp/norm,ar/ad*.25"
; 4781 ; thus the 8 possibilities are:
; 4782 ;snorm ad=0 ar=0 either answer is zero, or msb is in arx
; 4783 ;snorm+1 ad0 ar neg result is neg. make pos, try again
; 4784 ;snorm+2 ad1-6 ar3-8 msb too far left, shift right & retry
; 4785 ;snorm+3 ad7 ar9 result is correctly normalized
; 4786 ;snorm+4 ad8 ar10 shift left once for normalization
; 4787 ;snorm+5 ad9 ar11 shift left 2 places
; 4788 ;snorm+6 ad10 ar12 shift left thrice
; 4789 ;snorm+7 ad11-35 ar13-35 shift left a lot, try again
; 4790
; 4791 =000
; 4792 SNORM: ar←arx,arl/sh,SKP ARX NE, ;AR IS ZERO, GET ARX
U 0770, 1020,3711,4000,0000,2041,5410,0044 ; 4793 arx←0.m,j/snzero
U 0771, 0770,5163,7700,0000,0060,1635,0064 ; 4794 NORM -AR,SET SR1,J/SNORM ;REMEMBER NEGATIVE, GO POSITIVE
; 4795 snr2: AR←AR*.25 LONG,FE←FE+#,#/2, ;SHIFT RIGHT,
U 0772, 0770,3703,7700,2031,0040,0035,0002 ; 4796 NORM,J/SNORM ;TRY AGAIN
U 0773, 1034,0001,0000,0000,0000,0005,0000 ; 4797 SR DISP,J/SROUND ;ad7 -> ar9, is ROUND REQ'D?
; 4798 AR←AR*2 LONG,FE←FE-1, ;ad8 -> ar10, ONCE LEFT AND DONE
U 0774, 1034,3701,5500,3001,0000,0005,0000 ; 4799 SR DISP,J/SROUND
; 4800 AR←AR*4 LONG,FE←FE-#,#/2, ;ad9 -> ar11
U 0775, 1034,3243,2600,5031,0000,0005,0002 ; 4801 SR DISP,J/SROUND
; 4802 AR←AR*8 LONG,FE←FE-#,#/3, ;ad10 -> ar12
U 0776, 1034,3243,5500,5031,0000,0005,0003 ; 4803 SR DISP,J/SROUND
; 4804 ada en/0s,adb/ar*4,ad/andca, ;generate ar*4
; 4805 ar/ad*2,arx/adx*2, ; ar←ar*8 long
; 4806 sc←#,#/12., ;ready to shift farther
U 0777, 0766,3043,5500,0302,0020,5417,0014 ; 4807 gen cry18,skp cry0 ; test ar0-19 for zero
; 4808
; 4809 =0 AR←AR*8 LONG,br←ar long, ;it was in ar13-19
U 0766, 1024,3243,5560,5031,0040,0035,0006 ; 4810 fe←fe-#,#/6,NORM,J/SN1 ; now in ar10-16, ad8-14
; 4811 MQ←SHIFT,AR←ARX (ADX), ;13-19=0, shift to try 20-35
U 0767, 0674,3701,6010,0302,0000,0510,0012 ; 4812 CLR ARX,sc←#,#/10.
; 4813 arx←shift,ar←mq*.25, ;reposition fraction in ar long
; 4814 fe←fe-#,#/13., ;compensate exponent
U 0674, 0770,3723,7400,5031,0040,0035,0015 ; 4815 norm,j/snorm
; 4816 =100
; 4817 SN1: AR←BR*2 LONG,FE←FE+#,#/2, ;msb in ad8, so in br10
U 1024, 1034,3241,2600,2031,0000,0005,0002 ; 4818 SR DISP,J/SROUND
; 4819 AR←BR*4 LONG,FE←FE+1, ;msb in ad9, thus in br11
U 1025, 1034,3241,5500,4001,0000,0005,0000 ; 4820 SR DISP,J/SROUND
U 1026, 1034,0001,0000,0000,0000,0005,0000 ; 4821 SR DISP,J/SROUND ;ad10 -> ar9, A LUCKY GUESS
; 4822 ar←ar*8 long,br←ar long, ;try shifting 3 more
U 1027, 1024,3243,5560,5031,0040,0035,0003 ; 4823 fe←fe-#,#/3,norm,j/sn1
; 4824
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 103
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE PRECISION FLOATING NORMALIZATION
; 4825 ;here when ad entirely zero on normalize attempt. skip if arx
; 4826 ; is not zero, having copied it to ar (ie, left shift 36 places).
; 4827 ; otherwise, the entire result is zero, so we store that.
; 4828 =0
; 4829 SNZERO: CLR FE,AR+ARX+MQ←0.M, ;RESULT = 0
U 1020, 1051,4001,0000,0401,0001,0005,0170 ; 4830 SR DISP,J/SRND5
; 4831 ar←ar*.25 long,fe←fe-#,#/34., ;have moved left 36, go right 2
U 1021, 0770,3703,7700,5031,0040,0035,0042 ; 4832 norm,j/snorm ;and try that
; 4833
; 4834
; 4835 ;WE GET HERE WITH A NORMALIZED POSITIVE FRACTION IN AR'ARX,
; 4836 ; THE CORRECTED EXPONENT IN FE, AND SR INDICATES THE PROPER SIGN
; 4837 ; FOR THE RESULT AND WHETHER THE ANSWER SHOULD BE ROUNDED,
; 4838 ; TRUNCATED, OR LONG.
; 4839
; 4840 .IF/FPLONG
; 4841 =100
; 4842 .IFNOT/FPLONG
; 4843 =1*0
; 4844 .ENDIF/FPLONG
U 1034, 1045,3441,2060,0000,0000,0010,0000 ; 4845 SROUND: BR←AR LONG,AR←0S,J/SRND2 ;PREPARE TO ROUND BY ADDING THE
; 4846 ; PART OF THE FRACTION WE WILL
; 4847 ; DISCARD (CARRY IF ARX0)
; 4848 BR←AR LONG,CLR AR,ARX←1S, ;TRUNCATE MODE
U 1035, 1041,2301,0260,0000,0000,0405,0000 ; 4849 SR DISP,J/STRNC ; HANDLING DEPENDS ON SIGN
; 4850 .IF/FPLONG
; 4851 br←ar long,clr ar,arx←1s, ;long mode
U 1036, 0714,2301,0260,0302,0000,0410,0011 ; 4852 sc←#,#/9.
U 0714, 1033,0001,0400,0000,0000,0005,0000 ; 4853 = arx←shift,sr disp ;mask = 0,,000777 to arx
; 4854 =01*
U 1033, 1047,3202,2660,0000,0000,0010,0000 ; 4855 br←ar long,ar←br long,j/srnd4 ;pos, truncate by anding
; 4856 ar←ar+br,arx/adx,br←ar long, ;neg, must diddle
U 1037, 1046,0602,2664,0000,0060,0035,0000 ; 4857 norm,j/srnd3 ; norm forces long arith
; 4858 .ENDIF/FPLONG
; 4859
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 104
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 SINGLE PRECISION FLOATING NORMALIZATION
; 4860 ;HERE TO PERFORM ROUNDING OR TRUNCATION OF SINGLE-PRECISION RESULTS,
; 4861 ; AND CHECK FOR CARRY INTO EXPONENT FIELD REQUIRING RENORMALIZATION
; 4862
; 4863 =0*1
U 1041, 1047,3202,2000,0000,0000,0510,0000 ; 4864 STRNC: AR←BR,CLR ARX,J/SRND4 ;POS TRUNCATE, GO STUFF IN EXP
U 1045, 1046,0602,2004,0000,0060,0535,0000 ; 4865 SRND2: AR←AR+BR,NORM,CLR ARX ;NORM FORCES LONG ARITH
; 4866 ; SO THIS ADDS ARX TO BR'BRX
; 4867 =1*0
U 1046, 1047,0301,7000,4001,0020,0010,0000 ; 4868 SRND3: AR←AR*.5,FE←FE+1 ;RENORMALIZE
; 4869 SRND4: EXP←FE TST,SR DISP, ;STUFF EXP, CHECK NEG OR LONG
U 1047, 1051,3502,0600,0000,2000,0705,0410 ; 4870 arx←arx*brx,ad/andcb ;clear truncated fraction
; 4871
; 4872 ;HERE TO STORE RESULT AS A FUNCTION OF SINGLE OR LONG PRECISION
; 4873 ; AND POSITIVE OR NEGATIVE...
; 4874 .IF/FPLONG
; 4875 =001
; 4876 .IFNOT/FPLONG
; 4877 =0*1
; 4878 .ENDIF/FPLONG
U 1051, 0066,4001,0000,0000,0005,1633,0000 ; 4879 SRND5: SR←0,B WRITE,J/ST6 ;POS & NOT LONG
; 4880 .IF/FPLONG
U 1053, 0721,3401,2000,0302,0000,1010,0033 ; 4881 SLNG3: AC0←AR,AR←0s,sc←#,#/27.,J/SLNG4 ;STORE HIGH PART OF LONG ANS
; 4882 .ENDIF/FPLONG
U 1055, 0066,5143,7000,0000,0025,1633,0000 ; 4883 AR←-AR,SR←0,B WRITE,J/ST6 ;NEG & NOT LONG
; 4884 .IF/FPLONG
U 1057, 1053,5163,7700,0000,0020,0027,0000 ; 4885 AR←-AR LONG,J/SLNG3 ;LONG NEG, MAKE IT SO
; 4886
U 0721, 0751,0001,4000,0000,0206,0010,0400 ; 4887 SLNG4: ar←shift,i fetch
; 4888 AR0-8←FE-SC,BYTE DISP, ;TEST FOR EXP UNDERFLOW
U 0751, 1066,5063,0000,5000,2041,5434,0200 ; 4889 SKP AR EQ ; OR LOW WORD ZERO
; 4890
; 4891 =110
; 4892 .ENDIF/FPLONG
U 1066, 0016,4001,0000,0000,0000,1610,0000 ; 4893 STRAC1: sr←0,j/stac1 ;PUT AWAY LOW WORD OF LONG RESULT
; 4894 .IF/FPLONG
U 1067, 0016,3441,2000,0000,0000,1610,0000 ; 4895 AR←0S,sr←0,J/STAC1 ;CLEAR LOW WORD IN AC1
; 4896 .ENDIF/FPLONG
; 4897
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 105
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 4898 .TOC "DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV"
; 4899
; 4900 .DCODE
D 0110, 4000,1214 ; 4901 110: R, B/0, J/DFLOAT ;DFAD
D 0111, 4201,1214 ; 4902 R, B/2, J/DFLOAT ;DFSB
D 0112, 4401,1214 ; 4903 R, B/4, J/DFLOAT ;DFMP
D 0113, 4600,1214 ; 4904 R, B/6, J/DFLOAT ;DFDV
; 4905 .UCODE
; 4906
; 4907 =00**0*
; 4908 DFLOAT: FE←EXP,EXP←SIGN,SC/SCAD,MQ←0.S,
; 4909 VMA←VMA+1,LOAD ARX,
U 1214, 0757,0001,0000,0203,1013,3622,0700 ; 4910 CALL.S,J/XFERW ;GET LOW WORD
U 1216, 1050,3701,0500,0000,0000,0033,0000 ; 4911 ARX←ARX*2,B DISP ;LOW BIT 0 IGNORED
; 4912 =
; 4913 =00*
U 1050, 1060,3200,5061,0000,0020,0010,0000 ; 4914 DFAS: BR←AR LONG,AR←AC1*2,J/DFAS1 ;MEM OP READY, GET AC OP
; 4915
U 1052, 1050,5163,7700,0000,0020,0027,0000 ; 4916 AR←-AR LONG,J/DFAS ;DFSB, NEGATE AND ADD
; 4917
; 4918 AR←AC1,BR←AR LONG, ;HERE FOR DOUBLE FLOATING MUL
U 1054, 1070,3200,2061,0301,0020,0010,0756 ; 4919 FE←#,#/-18.,J/DFMP
; 4920
; 4921 GEN AR*AC0,AD/XOR,SKP AD0, ;DFDV. WILL QUO BE NEG?
; 4922 BR←AR LONG, ;SAVE D'SOR IN BR, BRX
U 1056, 1130,3100,0060,3022,0020,5510,0000 ; 4923 SC←FE-1,J/DFDV
; 4924
; 4925
U 0757, 0002,3240,0003,0000,0022,0003,0000 ; 4926 XFERW: FIN XFER,MB WAIT,RETURN2 ;FINISH TRANSFER, RETURN
; 4927
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 106
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 4928 ;HERE FOR DFAD AND DFSB
; 4929 ; MEM OPERAND IS IN BR (NEGATED IF DFSB)
; 4930 ; FE AND SC HAVE ITS EXPONENT
; 4931
; 4932 =0*0
U 1060, 1042,3240,2400,0000,1020,0021,0000 ; 4933 DFAS1: ARX←AR,AR←AC0,CALL,J/EXPD ;AC OPERAND IN PLACE
; 4934 =1*0
; 4935 DFAS2: ARX←AR,AR←SIGN, ;GET SHIFTED HIGH WORD
; 4936 gen #+sc,#/-36., ;is any shift required?
U 1064, 1030,5441,2400,2300,1020,5116,0734 ; 4937 skp scad0,j/dfas3
; 4938 ARX←AR,AR←SIGN, ;DIFF IS > 36
U 1065, 1022,5401,2400,2302,1020,5116,0044 ; 4939 SC←#+SC,#/36.,skp scad0 ;CHECK FOR >72
; 4940 =0 AC0←AR,MQ←SHIFT,AR←ARX (ADX),
U 1022, 1032,3701,6310,0000,0000,1010,0000 ; 4941 ARX/MQ,J/DFAS4 ;36 < DIFF < 72
; 4942 AR←BR,ARL/AD,ARX←BRX, ;DIFF >72
U 1023, 1126,3242,2600,0000,0001,0010,0102 ; 4943 MQ←0.M,J/DNTRY ;NORMALIZE LARGER OP
; 4944 =0
; 4945 dfas3: ar←arx,arl/sh,arx/mq, ;no shift required
U 1030, 1040,0001,4300,0000,2001,0010,0104 ; 4946 mq←0.m,j/dfas5
U 1031, 1000,4001,4000,0000,0000,0010,0000 ; 4947 ar←shift ;begin shifting smaller op
U 1000, 1004,0001,4300,0000,2000,1010,0000 ; 4948 AC0←AR,AR←ARX,ARX/MQ ;HI PART TO AC
; 4949 MQ←SHIFT,AR←ARX (ADX), ;MID PART TO MQ
U 1004, 1032,3721,6010,0000,0000,0510,0000 ; 4950 CLR ARX ;SHIFT ZEROS IN FROM RIGHT
U 1032, 1040,3200,2310,0000,0020,0010,0000 ; 4951 DFAS4: MQ←SHIFT,ARX/MQ,AR←AC0 ;ALL PIECES NOW IN PLACE
; 4952 dfas5: AR←AR+BR,ARX/ADX,SC←#,#/4, ;here when operands aligned
U 1040, 1150,0602,2604,0302,0060,0035,0004 ; 4953 NORM,J/DNORM ;ADD, AND NORMALIZE RESULT
; 4954
; 4955
; 4956 ;SUBROUTINE TO CHOOSE OPERAND WITH SMALLER EXPONENT, AND
; 4957 ; PREPARE FOR SHIFTING IT.
; 4958 ; enter with one operand fraction in br, its exponent in fe & sc,
; 4959 ; the other op in ar with its exponent in ar0-8
; 4960 ; return the larger exponent in fe, and 36-(magnitude of difference)
; 4961 ; in sc. return 4 if sc positive, 5 if negative.
; 4962
U 1042, 1062,0001,0000,5202,1020,5122,0200 ; 4963 EXPD: SC←EXP-SC,EXP←SIGN,SKP SCAD0 ;COMPARE MAGNITUDES
; 4964 =0 AR←BR,ARX←BRX,BR/AR,BRX/ARX, ;AC OP IS LARGER MAGNITUDE
U 1062, 1043,3242,2660,2001,0000,0010,0000 ; 4965 FE←FE+SC,J/EXPD1 ;ITS EXP TO FE
; 4966 MQ←ARX,SC←#+SC,#/36., ;CHECK FOR EXP DIFF > 36
U 1063, 0004,4001,0010,2302,2020,5103,0044 ; 4967 SKP SCAD0,RETURN4
; 4968 EXPD1: MQ←ARX,SC←#-SC,#/36., ;AC EXP .GE. MEM
U 1043, 0004,0001,0010,5302,2020,5103,0044 ; 4969 SKP SCAD0,RETURN4 ;SHIFT MEM OP
; 4970
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 107
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 DOUBLE FLOATING ARITHMETIC -- DFAD, DFSB, DFMP, DFDV
; 4971 ;DFMP
; 4972 ; GET HERE WITH MEM OPERAND (M'CAND) IN BR!BRX
; 4973 ; AR HAS (AC1), LOW HALF OF M'IER
; 4974
; 4975 =00*
; 4976 DFMP: MQ←AR,AR←0S,ARX←0S, ;SETUP LOW M'IER
; 4977 SC←#+SC,#/-200, ;CORRECT EXPONENT
U 1070, 0376,3401,2210,2302,1000,0021,0600 ; 4978 CALL,J/MULREE ;MULTIPLY BY THE LOW PART
U 1074, 1076,0602,2600,0000,0020,0027,0000 ; 4979 =10* AR←AR+BR LONG ;OOPS, LOW SIGN WAS SET
U 1076, 1044,3240,2010,0301,1020,0010,0762 ; 4980 MQ←AR,AR←AC0,FE←#,#/-14. ;READY TO CONTINUE WITH HIGH PART
; 4981
; 4982 ;HERE TO USE HIGH MULTIPLIER
; 4983
; 4984 SC←EXP+SC,EXP←SIGN.m, ;EXTRACT EXP FROM HIGH WORD
U 1044, 1122,0001,0000,2202,1001,4510,0200 ; 4985 skp ar0 ;CHECK FOR NEG M'IER
; 4986 =010
U 1122, 0376,3721,2010,0000,1000,0021,0000 ; 4987 DFMP2: MQ←AR,AR←MQ,CALL,J/MULREE ;GO BACK IN FOR HIGH PART
U 1123, 1122,0001,0000,4400,2001,0010,0200 ; 4988 EXP←1,J/DFMP2 ;OOPS, NEG, MOVE SIGN TO BIT 8
; 4989 =110
U 1126, 1150,3701,0000,0302,0040,0035,0004 ; 4990 DNTRY: SC←#,#/4,gen AR,NORM,J/DNORM ;NORMALIZE THE ANSWER
; 4991 =
; 4992
; 4993
; 4994 ;DFDV
; 4995 ; GET HERE WITH DIVISOR IN BR!BRX, ITS EXP-1 IN SC
; 4996 ; SKIP IF D'SOR AND D'END SIGNS DIFFER
; 4997
; 4998 =000
U 1130, 1140,3240,5001,0000,0020,0021,0000 ; 4999 DFDV: AR←AC1*2,CALL,J/DFDV1 ;GET LOW D'END, GO START DIVIDE
U 1131, 1140,3240,5001,0000,0020,1621,0001 ; 5000 SR←1,AR←AC1*2,CALL,J/DFDV1 ;NOTE NEG QUO
; 5001
; 5002 =011 AC1←AR,AR←MQ,ARL/AD,FE←FE+1, ;HERE FROM DDVSUB. NEW STEP CNT
U 1133, 0523,3723,2001,4001,0001,1010,0502 ; 5003 MQ←0.M,CALL.M,J/DIV+ ; SAVE HIGH QUO, RESUME
; 5004 =101 AC1←AR,AR←MQ,ARL/AD,FE←FE+1,
U 1135, 0522,3721,2001,4001,0001,1010,0502 ; 5005 MQ←0.M,CALL.M,J/DIV-
; 5006
; 5007 =111 AR←AC1,ARX/MQ,SC←#,#/4, ;POSITIVE QUOTIENT TO AR LONG
U 1137, 1150,3240,2301,0302,0040,0035,0004 ; 5008 NORM,J/DNORM ;NORMALIZE AND ROUND
; 5009
; 5010 =00
; 5011 DFDV1: ARX←AR,AR←AC0,SKP AD0, ;TEST DIVIDEND SIGN
; 5012 FE←#,#/26., ;SETUP COUNT FOR HIGH QUO
U 1140, 0724,3240,2400,0301,1020,5521,0032 ; 5013 CALL,J/FDVCHK ;GO CHECK DIVIDABILITY
U 1142, 0652,0001,0000,0000,0000,4210,0000 ; 5014 =10 SKP BR0,J/DDVSUB ;BEGIN DIVISION (RETURN ABOVE)
U 1143, 0066,4001,0000,0000,0000,1110,0624 ; 5015 SET FL NO DIV,J/ifNOP ;ABORT THE DIVISION
; 5016
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 108
; DSK: UCODE; FP 2 20:56:15 10-JAN-76 DOUBLE PRECISION NORMALIZATION
; 5017 .TOC "DOUBLE PRECISION NORMALIZATION"
; 5018
; 5019 =000
U 1150, 1124,3721,0000,0302,0040,5427,0043 ; 5020 DNORM: SKP ARX+MQ NE,SC←#,#/35.,J/DNZERO ;AR=0
; 5021 BR/AR,BRX/ARX,AR←MQ COMP, ;RESULT NEG, MAKE POS
U 1151, 1073,2021,2060,0000,0000,1610,0001 ; 5022 SR←1,J/DNNEG ;FLAG NEGATIVE
; 5023 AR←AR*.25 LONG,MQ←MQ*.25,
U 1152, 1075,3703,7710,2031,0000,0012,0004 ; 5024 FE←FE+#,#/4,J/DNHI ;MSB IN AR 1-6
; 5025 AR←AR*.25 LONG,
U 1153, 1155,3703,7700,2031,0000,0010,0002 ; 5026 FE←FE+#,#/2,J/DROUND ;MSB IN AR7
U 1154, 1155,0303,7700,4001,0020,0027,0000 ; 5027 AR←AR*.5 LONG,FE←FE+1 ;MSB IN AR8
; 5028 DROUND: AR←AR+1,ARX/ADX,NORM, ;MSB IS AR9, RIGHT ON
U 1155, 1146,4003,2600,0302,0060,0035,0043 ; 5029 SC←#,#/35.,J/DRND1
U 1156, 1155,3703,5500,3001,0000,0710,0001 ; 5030 (AR+ARX+MQ)*2,FE←FE-1,J/DROUND ;MSB IN AR10
U 1157, 1061,4001,4000,5001,0000,0010,0000 ; 5031 AR←SHIFT,FE←FE-SC ;SOMEWHERE IN AR 11-35
; 5032
U 1061, 1071,4001,4340,0000,2000,0010,0000 ; 5033 DNSHFT: BR/AR,AR←ARX,ARX/MQ ;SHIFT THE WHOLE THING
U 1071, 1072,3701,6010,0000,0000,0510,0000 ; 5034 MQ←SHIFT,AR←ARX (ADX),CLR ARX
; 5035 MQ←SHIFT,ARX/MQ,AR←BR,SC←#,#/10.,
U 1072, 1150,3242,2310,0302,0040,0035,0012 ; 5036 NORM,J/DNORM ;GIVE IT ANOTHER GO
; 5037
U 1073, 1120,4001,2000,0000,0040,5410,0000 ; 5038 DNNEG: AR←AR+1,SKP CRY0 ;COMPLETE NEGATION OF MQ
; 5039 =0 MQ←AR,AR←BR COMP,ARX←BRX COMP,
U 1120, 1150,2542,2610,0000,1040,0035,0000 ; 5040 NORM,J/DNORM ;NORMALIZE THE POS FORM
U 1121, 1150,5162,2610,0000,1060,0035,0000 ; 5041 MQ←AR,AR←-BR,ARX/ADX,NORM,J/DNORM
; 5042
U 1075, 1126,3701,7710,0000,0000,0710,0001 ; 5043 DNHI: (AR+ARX+MQ)*.25,J/DNTRY ;GO TRY AGAIN
; 5044
; 5045 =0
U 1124, 0017,3441,2200,0000,0000,1610,0000 ; 5046 DNZERO: SR←0,AR←0S,ARX←0S,J/DBLST ;RESULT = 0, STORE THAT
U 1125, 1061,4001,4000,5001,0000,0010,0000 ; 5047 AR←SHIFT,FE←FE-SC,J/DNSHFT ;NOT ZERO, SHIFT AND TRY AGAIN
; 5048
; 5049 =110
U 1146, 1147,0303,7700,4001,0020,0027,0000 ; 5050 DRND1: AR←AR*.5 LONG,FE←FE+1 ;ROUNDING BLEW THE NORM, GO RIGHT
; 5051 EXP←FE TST,SR DISP,CLR MQ, ;STUFF EXP IN, CHECK RESULT SIGN
U 1147, 1144,4061,0220,0000,2020,0705,0413 ; 5052 BRX/ARX,ARX←1 ;READY IF NEGATION NECESSARY
; 5053
; 5054 =0 AC0←AR,AR←SHIFT,ARX←BRX, ;STORE HIGH WORD, READY LOW
U 1144, 0015,3242,4600,0000,0206,1010,0400 ; 5055 I FETCH,J/STD1
U 1145, 1077,3002,0604,0000,0000,1610,0000 ; 5056 ARX←ARX*BRX,AD/ANDCA,SR←0 ;CLEAR ROUNDING BIT
U 1077, 0017,5143,7700,0000,0020,0027,0000 ; 5057 AR←-AR LONG,J/DBLST ;NEGATE RESULT AND STORE
; 5058
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 109
; DSK: UCODE; BYTE 2 20:56:22 10-JAN-76 DOUBLE PRECISION NORMALIZATION
; 5059
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 110
; DSK: UCODE; BYTE 2 20:56:22 10-JAN-76 BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB
; 5060 .TOC "BYTE GROUP -- IBP, ILDB, LDB, IDPB, DPB"
; 5061
; 5062 .DCODE
; 5063 ;133: R, J/IBP ;OR ADJBP
D 0134, 6000,1300 ; 5064 134: RW, J/ILDB ;CAN'T USE RPW BECAUSE OF FPD
D 0135, 4000,1304 ; 5065 R, J/LDB
D 0136, 6001,1310 ; 5066 RW, J/IDPB
D 0137, 4001,1314 ; 5067 R, J/DPB
; 5068 .UCODE
; 5069
; 5070 ;ALL FIVE INSTRUCTIONS OF THIS GROUP ARE CALLED WITH THE BYTE POINTER
; 5071 ;IN THE AR. ALL INSTRUCTIONS SHARE COMMON SUBROUTINES, SO THAT
; 5072 ;THE 10/11 INTERFACE AND STRING MAY ALSO USE THESE SUBROUTINES
; 5073
; 5074 ;IBP OR ADJBP
; 5075 ;IBP IF AC#0, ADJBP OTHERWISE
; 5076 ; HERE WITH THE BASE POINTER IN AR
; 5077
; 5078 ;IBP: SKP AC#0 ;IS THIS IBP OR ADJBP?
; 5079 =000
; 5080 IBP1: T0←AR,BR/AR, ;SAVE POINTER FOR ADJBP
U 1160, 1244,3401,2047,2412,0000,1021,0166 ; 5081 SC←S,AR←0S,CALL,J/GETSC ; GET BYTE SIZE
; 5082 BR/AR,P←P-S,CALL.M, ;NEW P UNLESS OVERFLOW
U 1161, 1172,4001,0040,5110,3021,5110,0600 ; 5083 SKP SCAD0,J/IBPS
U 1162, 1163,3202,2040,0000,0000,0010,0000 ; 5084 BR/AR,AR←BR,J/ADJBP ;HOLD S IN BR AND MQ
U 1165, 0071,4001,0003,0000,0206,0010,0400 ; 5085 =101 FIN STORE,I FETCH,J/NOP ;IBP DONE
; 5086
; 5087
; 5088 =00*000
; 5089 ILDB: BR/AR,P←P-S,BYTE DISP, ;START IBP
U 1300, 1172,0001,0040,5110,3021,0034,0600 ; 5090 CALL.M,J/IBPS ;AND CALL SUBR
; 5091 =100
U 1304, 1111,0001,0400,0102,1000,0021,0000 ; 5092 LDB: ARX←AR,SC←P,CALL,J/BYTEA ;BEGIN EA COMPUTATION
U 1305, 1132,4001,0000,2002,0000,0021,0000 ; 5093 SC←FE+SC,CALL,J/LDB1 ;SC←P+S WHILE LOADING AR
U 1307, 0071,4001,0000,0000,0206,1014,0400 ; 5094 =111 AC0←AR,CLR FPD,I FETCH,J/NOP ;DONE
; 5095 =
; 5096
; 5097 =00*000
; 5098 IDPB: BR/AR,P←P-S,BYTE DISP, ;START IBP
U 1310, 1172,0001,0040,5110,3021,0034,0600 ; 5099 CALL.M,J/IBPS
; 5100 =100
U 1314, 1111,0001,0400,0102,1000,0021,0000 ; 5101 DPB: ARX←AR,SC←P,CALL,J/BYTEA ;COMPUTE EFFECTIVE BYTE ADDR
; 5102 AR←AC0,TIME/3T,SC←#-SC,#/36., ;COMPUTE 36-P
U 1315, 1212,3200,2000,5302,0020,5121,0044 ; 5103 CALL,SKP SCAD0,J/DPB1 ;CALL DEPOSITOR
; 5104 =111
U 1317, 1101,0001,0003,0000,0206,0010,0400 ; 5105 BFIN: FIN STORE,I FETCH ;DONE
; 5106 =
U 1101, 0013,4001,0000,0000,0000,0014,0000 ; 5107 CLRFPD: CLR FPD,J/FINI ;CAN'T DO THIS UNTIL STORE COMPLETE
; 5108
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 111
; DSK: UCODE; BYTE 2 20:56:22 10-JAN-76 INCREMENT BYTE POINTER SUBROUTINE
; 5109 .TOC "INCREMENT BYTE POINTER SUBROUTINE"
; 5110
; 5111 ;THIS SUBROUTINE IS CALLED BY THE INSTRUCTIONS ILDB, IDPB AS
; 5112 ;WELL AS THE MICROCODED 10/11 INTERFACE HANDLER.
; 5113 ;CALL WITH BYTE DISP TESTING FPD AND SIGN OF P-S
; 5114 ;[time=2+2(bp ovflo)]
; 5115
; 5116 =010 ;BR12 IRELEVANT
U 1172, 0004,0001,0000,0000,0016,0003,0000 ; 5117 IBPS: STORE,RETURN4 ;SIMPLE, NO OVERFLOW
; 5118 FE←#,#/36.,GEN AR+1,TIME/2T, ;HERE IF OVRFLO OF WORD
U 1173, 1105,4003,0400,0301,1000,0010,0044 ; 5119 ARX←AR,J/NXTWRD
U 1176, 0004,3242,2000,0000,0000,0003,0000 ; 5120 AR←BR,RETURN4 ;FPD WAS SET, RESTORE AR
U 1177, 0004,3242,2000,0000,0000,0003,0000 ; 5121 AR←BR,RETURN4 ; AND CONVERT TO LDB OR DPB
; 5122 ;TEST BR12 ONLY
; 5123 NXTWRD: AR←AR+1,P←FE-S,STORE,
U 1105, 0004,4001,2000,5010,3016,0603,0200 ; 5124 TIME/2T,RETURN4
; 5125
; 5126
; 5127 .TOC "BYTE EFFECTIVE ADDRESS EVALUATOR"
; 5128
; 5129 ;ENTER WITH POINTER IN AR, ARX, AND BR
; 5130 ;RETURN1 WITH (EA) LOADING INTO AR AND ARX,
; 5131 ;FPD SET, P IN SC, AND S IN FE
; 5132 ;[time=4+1(indexed)+?(indirect)]
; 5133
; 5134 BYTEA: MEM←AR,FE←S,set fpd, ;PUT AWAY UPDATED POINTER
U 1111, 1220,4001,0003,2411,0002,1136,0100 ; 5135 EA MOD DISP ;EVAL BP ADDR
; 5136 =00
U 1220, 0001,3711,0000,0000,0315,0003,0000 ; 5137 BFETCH: VMA←ARX,BYTE READ,return1 ;START DATA FETCH
U 1221, 0001,0610,0002,0000,0335,0003,0000 ; 5138 VMA←ARX+XR,BYTE READ,return1 ;ADDRESS IS INDEXED
U 1222, 1127,3711,0000,0000,0111,0010,0000 ; 5139 GEN ARX,BYTE INDRCT,j/bytei ;DO INDIRECT
U 1223, 1127,0610,0002,0000,0131,0010,0000 ; 5140 GEN ARX+XR,BYTE INDRCT,j/bytei ;INDIRECT INDEXED!!!
; 5141
U 1127, 1166,3200,0003,0000,0022,7010,0000 ; 5142 BYTEI: ARX←MEM,SKP INTRPT ;WAIT FOR INDIRECT WORD
U 1166, 1220,4001,0000,0000,0000,0036,0000 ; 5143 =0 EA MOD DISP,J/BFETCH ;PROCEED IN ADDR EVAL
U 1167, 2060,4001,0000,0000,0000,0005,0000 ; 5144 SR DISP,J/CLEAN ;INTERRUPTED, CLEAN UP AS REQ'D
; 5145
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 112
; DSK: UCODE; BYTE 2 20:56:22 10-JAN-76 LOAD BYTE SUBROUTINE
; 5146 .TOC "LOAD BYTE SUBROUTINE"
; 5147 ;ENTER WITH S IN FE, P+S IN SC, AND AR LOAD IN PROGRESS
; 5148 ;RETURN2 WITH BYTE RIGHT JUSTIFIED IN AR
; 5149 ;[time=7]
; 5150
U 1132, 1170,3200,0003,5302,0042,5110,0044 ; 5151 LDB1: AR←MEM,SC←#-SC,#/36.,skp scad0 ;36-(P+S)
; 5152
; 5153 =0
U 1170, 1174,3401,2400,0000,0000,0013,0000 ; 5154 LDB2: ARX←SHIFT,AR←0S,SC←FE,J/SHIFT ;BYTE IN ARX HI, READY TO SHIFT
; 5155 ARX←AR,AR←0S, ;p+s > 36, PUT BYTE IN ARX HI
U 1171, 1174,3441,2400,2002,1020,5110,0000 ; 5156 SC←FE+SC,SKP SCAD0 ;ADJUST S AND SHIFT BYTE
; 5157
; 5158 ;PUT BYTE INTO AR RIGHT-JUSTIFIED
; 5159 ; THIS INSTRUCTION ALSO CALLED ALONE AS A SUBROUTINE
; 5160
; 5161 =0
U 1174, 0002,0001,4000,0000,0000,0003,0000 ; 5162 SHIFT: AR←SHIFT,RETURN2 ;RETURN WITH BYTE IN AR
U 1175, 0002,4001,0000,0000,0000,0003,0000 ; 5163 RETURN2 ;BYTE WAS OFF THE END, RETURN AR=0
; 5164
; 5165
; 5166 .TOC "DEPOSIT BYTE SUBROUTINE"
; 5167 ;ENTER WITH BYTE RIGHT JUSTIFIED IN AR, POINTER IN BR,
; 5168 ; S IN FE, 36-P IN SC, AND LOAD AR-ARX STARTED
; 5169 ; SKP IF P>36
; 5170 ;RETURN3 WITH FINAL STORE IN PROGRESS
; 5171 ;[time=11]
; 5172
; 5173 =0
; 5174 DPB1: MQ←AR,AR←MEM,ARX←MEM, ;GET WORD TO ROTATE 36-P
; 5175 GEN FE-SC, ;COMPUTE S-(36-P)
U 1212, 1224,3240,0013,5000,1062,5110,0000 ; 5176 skp scad0,J/DPB2 ;CHECK THAT P+S<36
U 1213, 0003,4001,0000,0000,0002,0003,0000 ; 5177 mb wait,return3 ;p>36, store nothing
; 5178
; 5179 =0
U 1224, 1225,4001,0000,2401,0000,0010,0000 ; 5180 DPB2: FE←SC ;P+S>36, S←36-P
; 5181 ARX←SHIFT,AR←MQ,SC←FE, ;ARX HAS P,X,S
U 1225, 1134,3723,2400,5301,0000,0013,0110 ; 5182 FE←#-SC,#/72. ;SC←S, FE←72-(36-P)=36+P
U 1134, 1136,0001,0000,5302,0000,0010,0044 ; 5183 SC←#-SC,#/36. ;SC←36-S (KNOWN .LE. P)
; 5184 AR←SHIFT,ARX←SHIFT, ;S,P,X
U 1136, 1141,0001,4400,5002,0000,0010,0000 ; 5185 SC←FE-SC ;SC←(36+P)-(36-S)=P+S
U 1141, 0003,0001,4000,0000,0016,0003,0000 ; 5186 AR←SHIFT,STORE,RETURN3 ;DONE, STORE IT BACK
; 5187
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 113
; DSK: UCODE; BYTE 2 20:56:22 10-JAN-76 ADJBP
; 5188 .TOC "ADJBP"
; 5189 ;HERE FOR ADJUST BYTE POINTER (IBP WITH NON-ZERO AC)
; 5190 ; BYTE SIZE (S) IS RIGHT ADJUSTED IN BR AND MQ
; 5191 ; FULL POINTER IS IN AR, AND SAVED IN T0
; 5192
; 5193 ADJBP: SC←P,AR+ARX+MQ←0.M, ;GET P
U 1163, 1230,7162,0000,0102,0041,5410,0170 ; 5194 SKP BR EQ ;CHECK SIZE IS NON-ZERO
; 5195
U 1230, 1246,0001,0020,2400,3001,0010,0600 ; 5196 =00 BRX/ARX,P←SC,CALL.M,J/SIXDIV ;DIVIDE P BY S
U 1231, 0067,3200,2007,0000,0020,0010,0166 ; 5197 AR←T0,J/IFSTAC ;OOPS, S=0, RETURN UNALTERED POINTER
; 5198 T1←AR,AR←0S,ARX←0S, ;SAVE P/S
U 1232, 1215,3441,2207,5002,0000,1010,0171 ; 5199 SC←FE-SC ;36-P IN SC
; 5200 =
U 1215, 1246,0001,0000,2400,3001,0010,0700 ; 5201 =0* P←SC,MQ←0.M,CALL.M,J/SIXDIV ;36-P IN AR0-5
U 1217, 1226,0600,2007,4000,0040,5610,0171 ; 5202 AR←AR+T1,SKP AD NE ;(P/S)+(36-P/S)=BYTES/WORD
U 1226, 1113,0001,0000,0000,0206,0010,0400 ; 5203 =0 I FETCH,J/NODIVD ;ABORT, BYTES/WORD=0
U 1227, 1164,0001,4047,0000,2000,1010,0171 ; 5204 T1←AR,BR/AR,AR←ARX ;SAVE BYTES/WORD, READY TO
; 5205 ; DIVIDE BY IT
U 1164, 1206,3723,2007,0000,0000,1010,0172 ; 5206 T2←AR,AR←MQ ;SAVE REMAIN(36-P/S), GET (36-P)/S
; 5207 AR←AR*AC0,AD/A+B,ARL/AD, ;ADJUSTMENT IN AR
U 1206, 1234,0600,2000,4000,0021,0010,0142 ; 5208 ARX+MQ←0.M
; 5209
; 5210 ;COMPUTE QUOTIENT Q AND REMAINDER R OF ADJUSTMENT/(BYTES/WORD)
; 5211 ; SUCH THAT ADJUSTMENT=Q*(BYTES/WORD)+R, 1 .LE. R .LE. (BYTES/WORD)
; 5212 ; SINCE ADJUSTMENT IS CALCULATED RELATIVE TO LEFT-MOST BYTE OF
; 5213 ; A WORD, THIS GIVES Q AS THE NUMBER OF WORDS BY WHICH TO INDEX THE
; 5214 ; BYTE POINTER, AND R AS THE NUMBER OF BYTES FROM THE LEFT OF THE
; 5215 ; WORD. MULTIPLYING R BY THE BYTE SIZE WILL GIVE THE NUMBER OF BITS
; 5216 ; FROM THE LEFTMOST BYTE, AND ADDING REMAIN(36-P/S) WILL GIVE NUMBER
; 5217 ; OF BITS FROM BIT 0. FINALLY, WE MUST SUBTRACT THIS FROM 36 TO GET
; 5218 ; THE CORRECT P FIELD, WHICH IS ALWAYS RELATIVE TO THE RIGHT EDGE OF
; 5219 ; THE WORD.
; 5220
U 1234, 0426,0001,0000,4402,0000,1021,0000 ; 5221 =100 AC0←AR,SC←1,CALL,J/DIV2 ;DO THE BASIC DIVIDE
U 1236, 1240,5162,0600,0301,0020,0010,0774 ; 5222 =110 ARX←-BRX,FE←#,#/-4,J/ADJD1 ;NEG QUO ==> NEG REMAIN
U 1237, 1240,3703,0300,0301,0040,5410,0774 ; 5223 ARX/MQ,SKP AR NE,FE←#,#/-4 ;POS QUO. IS REMAIN .GT. 0?
; 5224 =0
U 1240, 1233,0600,2007,0000,0020,0010,0171 ; 5225 ADJD1: AR←AR+T1,J/ADJD2 ;INCREASE REMAIN TO MEET CONSTRAINT
; 5226 BR/AR,AR←ARX (ADX), ;REMAIN IN RANGE,
U 1241, 1235,3701,6040,0000,0001,0010,0060 ; 5227 ARL+ARX←0.M,J/ADJD3 ; QUOTIENT TO ARR
; 5228
; 5229 ADJD2: BR/AR,AR←ARX-1, ;HOLD UPDATED REMAINDER,
U 1233, 1235,1701,6040,0000,0021,0010,0060 ; 5230 ARL+ARX←0.M ; GET CORRESPONDING QUOTIENT
; 5231 ADJD3: AR←AR+T0,INH CRY18, ;ADD Q TO Y OF POINTER,
U 1235, 1250,0600,2027,0000,0020,0011,0166 ; 5232 BRX/ARX ;CLR BRX
; 5233
U 1250, 1244,3441,2000,2412,0000,1021,0000 ; 5234 =00* AC0←AR,AR←0S,SC←S,CALL,J/GETSC ;SAVE UPDATED Y, GET SIZE
; 5235 MQ←AR,AR←T2,clr arx, ;M'IER IS S, GET REMAIN(36-P/S)
U 1252, 0376,3240,2017,0000,1020,0521,0172 ; 5236 call,j/mulree ;compute (r*s)+remain(36-p/s)
U 1256, 1242,3713,5000,0000,0206,0010,0400 ; 5237 =11* AR←ARX*2,i fetch ;PUT THAT IN AR0-5
U 1242, 1243,3200,2000,5132,0020,0010,0044 ; 5238 SC←P-#,#/36.,AR←AC0
U 1243, 0065,0001,0000,5400,3001,0010,0200 ; 5239 P←-SC,J/STAC ;THAT'S NEW P, DONE
; 5240
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 114
; DSK: UCODE; BYTE 2 20:56:22 10-JAN-76 ADJBP
; 5241 ;SUBROUTINE TO GET CONTENTS OF SC RIGHT ALIGNED IN AR
; 5242 ;[time=6]
; 5243
U 1244, 1245,4001,0000,2400,2000,0022,0200 ; 5244 GETSC: AR0-8←SC ;PUT SC INTO AR
U 1245, 1174,0001,0400,0302,1000,0010,0011 ; 5245 getexp: ARX←AR,SC←#,#/9.,J/SHIFT ;HERE WITH DATA IN AR0-8
; 5246
; 5247
; 5248 ;SUBROUTINE FOR SHORT DIVISION, BR KNOWN POSITIVE
; 5249 ; CALL WITH MQ CLEAR, DIVISOR RIGHT-ALIGNED IN BR, AND DIVIDEND
; 5250 ; IN AR0-5 (OR LEFT-ALIGNED IN ARX IF ENTERING AT SDIV)
; 5251 ; RETURN QUOTIENT IN AR AND MQ, REMAIN IN ARX
; 5252 ;[time=22+3(restore req'd)]
; 5253
; 5254 ;TO IMPROVE ADJBP PERFORMANCE, INSERT THE INSTRUCTION SHOWN BELOW
; 5255 ; (SIXDZ), AND CHANGE THE CALLS TO SIXDIV TO "SKP SCAD NE,J/SIXDZ"
; 5256 ;=0
; 5257 ;SIXDZ: AR←0S,ARX←0S,FE←#,#/36.,RETURN2 ;HERE IF DIVIDEND IS ZERO
; 5258
U 1246, 1261,3401,2400,0301,1000,0010,0004 ; 5259 SIXDIV: ARX←AR,AR←0S,FE←#,#/4,J/SDIV-
; 5260 =0*0
U 1260, 1260,0602,5504,3001,0020,0031,0000 ; 5261 SDIV: DIVIDE,AR←2(AR+BR),ARX/ADX*2,J/SDIV
U 1261, 1260,5102,5500,3001,0020,0031,0000 ; 5262 SDIV-: DIVIDE,AR←2(AR-BR),ARX/ADX*2,J/SDIV
U 1264, 1254,0602,2004,3001,0020,0031,0000 ; 5263 DIVIDE,AR←AR+BR,J/SDIVR ;NO SHIFT ON FINAL STEP
U 1265, 1254,5102,2000,3001,0020,0031,0000 ; 5264 DIVIDE,AR←AR-BR
; 5265 =1*0
U 1254, 1255,0602,2004,0000,0020,0010,0000 ; 5266 SDIVR: AR←AR+BR ;NO CRY0 MEANS RESTORE REQ'D
; 5267 ARX←AR,AR←MQ, ;RETURN QUO IN AR, REMAIN IN ARX
U 1255, 0002,3723,2400,0301,1000,0003,0044 ; 5268 FE←#,#/36.,RETURN2
; 5269
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 115
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 ADJBP
; 5270
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 116
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 I/O INSTRUCTIONS
; 5271 .TOC "I/O INSTRUCTIONS"
; 5272
; 5273 ; BITS 10-12 OF INSTRUCTION GET MAPPED TO IR 7-9 FOR I/O INSTRUCTIONS
; 5274 ; THE DEVICE ADDRESS IS BROKEN DOWN AS ONE OF THE FIRST 7, OR ALL OTHERS
; 5275 .DCODE
; 5276
; 5277 ;DEVICE 000 (APR)
; 5278
D 0700, 3001,1502 ; 5279 700: W, J/APRBI ;BLKI APR, OPTIONS, SERIAL #
D 0701, 3600,1500 ; 5280 W, DATAI, J/APRDI ;DATAI APR, ADDRESS COMPARE
D 0702, 0001,1412 ; 5281 I, J/APRBO ;BLKO APR, REFILL RAM
D 0703, 4400,1410 ; 5282 R, DATAO, J/APRDO ;DATAO APR, ADDRESS COMPARE
D 0704, 0400,1414 ; 5283 I, CONO, J/APRCO ;CONO APR, APR FLAGS
D 0705, 0600,1416 ; 5284 I, CONI, J/APRCI ;CONI APR,
D 0706, 0101,1416 ; 5285 I, CONSZ, J/APRCI ;CONSZ APR,
D 0707, 0500,1416 ; 5286 I, CONSO, J/APRCI ;CONSO APR,
; 5287
; 5288 ;DEVICE 004 (PI)
; 5289
D 0710, 3600,1511 ; 5290 710: W, M, J/PIBI ;BLKI PI, READ ERA
D 0711, 3301,1510 ; 5291 W, B/3, J/PIDI ;DATAI PI, UNASSIGNED
D 0712, 4001,1512 ; 5292 R, J/PIBO ;BLKO PI, SBUS DIAGNOSTIC
D 0713, 4000,1510 ; 5293 R, B/0, J/PIDO ;DATAO PI, UNASSIGNED
D 0714, 0401,1600 ; 5294 I, CONO, J/PICO ;CONO PI, PI SYSTEM CONTROL
D 0715, 0601,1604 ; 5295 I, CONI, J/PICI ;CONI PI, IN PROGRESS, ENABLE
D 0716, 0100,1604 ; 5296 I, CONSZ, J/PICI
D 0717, 0501,1604 ; 5297 I, CONSO, J/PICI
; 5298
; 5299 ;DEVICE 010 (PAG)
; 5300
D 0720, 6201,1612 ; 5301 720: RW, BLKI, J/PAGBI ;BLKI PAG, UNASSIGNED
D 0721, 3601,1610 ; 5302 W, DATAI, J/PAGDI ;DATAI PAG, USER CONTEXT
D 0722, 0000,1514 ; 5303 I, J/PAGBO ;BLKO PAG, INVAL PAGE TABLE
D 0723, 4401,1516 ; 5304 R, DATAO, J/PAGDO ;DATAO PAG, USER CONTEXT
D 0724, 0401,1614 ; 5305 I, CONO, J/PAGCO ;CONO PAG, EXEC CONTEXT
D 0725, 0601,1616 ; 5306 I, CONI, J/PAGCI ;CONI PAG,
D 0726, 0100,1616 ; 5307 I, CONSZ, J/PAGCI
D 0727, 0501,1616 ; 5308 I, CONSO, J/PAGCI
; 5309
; 5310 ;DEVICE 014 (CCA)
; 5311
D 0730, 0000,1404 ; 5312 730: I, J/SWEEP ;8 FUNCTIONS TO SWEEP THE CACHE
D 0731, 0000,1404 ; 5313 I, J/SWEEP ;SWPIA INVALIDATE ALL CACHE, NO CORE UPDATE
D 0732, 0000,1404 ; 5314 I, J/SWEEP ;SWPVA VALIDATE ALL CORE, LEAVE CACHE VALID
D 0733, 0000,1404 ; 5315 I, J/SWEEP ;SWPUA UNLOAD ALL CACHE TO CORE, CLEAR CACHE
D 0734, 0000,1404 ; 5316 I, J/SWEEP
D 0735, 0000,1404 ; 5317 I, J/SWEEP ;SWPIO INVALIDATE ONE PAGE
D 0736, 0000,1404 ; 5318 I, J/SWEEP ;SWPVO VALIDATE ONE PAGE
D 0737, 0000,1404 ; 5319 I, J/SWEEP ;SWPUO UNLOAD ONE PAGE
; 5320 ;I/O CONT'D
; 5321
; 5322 ;DEVICE 020 (TIM)
; 5323
D 0740, 3100,1504 ; 5324 740: W, B/1, J/RDMTR ;BLKI TIM, PERF CNT
D 0741, 3001,1504 ; 5325 W, B/0, J/RDMTR ;DATAI TIM, TIME BASE
D 0742, 4401,1712 ; 5326 R, DATAO, J/TIMBO ;BLKO TIM, PA ENABLES
D 0743, 4400,1710 ; 5327 R, DATAO, J/TIMDO ;DATAO TIM, UNDEFINED
D 0744, 0400,1700 ; 5328 I, CONO, J/TIMCO ;CONO TIM, SETUP INTERVAL TIMER
D 0745, 0600,1702 ; 5329 I, CONI, J/TIMCI ;CONI TIM, RD INTERVAL & PERIOD
D 0746, 0101,1702 ; 5330 I, CONSZ, J/TIMCI
D 0747, 0500,1702 ; 5331 I, CONSO, J/TIMCI
; 5332
; 5333 ;DEVICE 024 (MTR)
; 5334
D 0750, 3301,1504 ; 5335 750: W, B/3, J/RDMTR ;BLKI MTR, CACHE CNT
D 0751, 3200,1504 ; 5336 W, B/2, J/RDMTR ;DATAI MTR, EBOX CNT
D 0752, 0001,1002 ; 5337 I, J/UUO ;BLKO MTR, UNDEFINED
D 0753, 0001,1002 ; 5338 I, J/UUO ;DATAO MTR, UNDEFINED
D 0754, 0401,1704 ; 5339 I, CONO, J/MTRCO ;CONO MTR, ACCT & TB CTL
D 0755, 0601,1706 ; 5340 I, CONI, J/MTRCI ;CONI MTR, SAME
D 0756, 0100,1706 ; 5341 I, CONSZ, J/MTRCI
D 0757, 0501,1706 ; 5342 I, CONSO, J/MTRCI
; 5343
; 5344 ;DEVICE 030
; 5345
D 0760, 6200,1400 ; 5346 760: RW, BLKI, J/BLKIO
D 0761, 3601,1406 ; 5347 W, DATAI, J/IO
D 0762, 6001,1400 ; 5348 RW, BLKO, J/BLKIO
D 0763, 4401,1406 ; 5349 R, DATAO, J/IO
D 0764, 0401,1402 ; 5350 I, CONO, J/CONO
D 0765, 3601,1406 ; 5351 W, CONI, J/IO
D 0766, 0101,1402 ; 5352 I, CONSZ, J/CONS
D 0767, 0500,1402 ; 5353 I, CONSO, J/CONS
; 5354
; 5355 ;DEVICES 034-774 (ALL OTHERS)
; 5356
D 0770, 6200,1400 ; 5357 770: RW, BLKI, J/BLKIO
D 0771, 3601,1406 ; 5358 W, DATAI, J/IO
D 0772, 6001,1400 ; 5359 RW, BLKO, J/BLKIO
D 0773, 4401,1406 ; 5360 R, DATAO, J/IO
D 0774, 0401,1402 ; 5361 I, CONO, J/CONO
D 0775, 3601,1406 ; 5362 W, CONI, J/IO
D 0776, 0101,1402 ; 5363 I, CONSZ, J/CONS
D 0777, 0500,1402 ; 5364 I, CONSO, J/CONS
; 5365
; 5366 .UCODE
; 5367
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 117
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 EXTERNAL DEVICE I/O INSTRUCTIONS
; 5368 .TOC "EXTERNAL DEVICE I/O INSTRUCTIONS"
; 5369
; 5370 =00*000
U 1400, 2002,4001,0000,0000,0000,7321,0000 ; 5371 BLKIO: SKP IO LEGAL,CALL,J/IOCHK ;FIRST VERIFY INSTR VALIDITY
U 1401, 1253,0001,0000,0000,0020,0034,0000 ; 5372 BYTE DISP,J/BLK1 ;TEST FPD
; 5373 CONS: ;HERE FOR CONSO, CONSZ TO LOAD
; 5374 ; BR IN CASE OF UUO
U 1402, 1406,4001,0040,0000,3000,0610,0004 ; 5375 CONO: BR/AR,ARL←ARR,ARR←ARR ;CONDITIONS TO BOTH HALVES
; 5376 =10
; 5377 IO: FIN XFER,MB WAIT, ;WAIT FOR MBOX IF BLKI/O
U 1406, 1320,3240,0003,0000,0022,7321,0000 ; 5378 SKP IO LEGAL,CALL,J/GTEBUS
U 1407, 1262,4001,0000,0000,0005,2233,0000 ; 5379 RELEEB: REL ECL EBUS,B WRITE ;XFER DONE, WHAT TO DO?
; 5380 =
; 5381 =010
U 1262, 1101,5062,0000,0000,0246,0017,0203 ; 5382 IOTEND: TEST BRL,TEST FETCH,J/CLRFPD ;BLKI/BLKO
U 1263, 0071,3602,0000,0000,0246,0010,0203 ; 5383 TEST AR.BR,TEST FETCH,J/NOP ;CONSZ
U 1266, 1270,4001,0003,0000,0002,6510,0000 ; 5384 MEM←AR,SKP PI CYCLE,J/IOFET ;DATA/CON I/O
U 1267, 0071,3602,0000,0000,0246,0010,0203 ; 5385 TEST AR.BR,TEST FETCH,J/NOP ;CONSO
; 5386
; 5387 =0
U 1270, 0071,4001,0000,0000,0206,0010,0400 ; 5388 IOFET: I FETCH,J/NOP ;HERE IF NOT PI CYCLE
U 1271, 1564,4001,0000,0000,0000,0024,0502 ; 5389 DISMISS,J/PIFET ;DISMISS INTRPT AFTER DATA/CON I/O
; 5390
; 5391 =011
U 1253, 1257,4003,2000,0000,0036,0017,0000 ; 5392 BLK1: AR←AR+1,GEN CRY18,STORE ;UPDATE POINTER WORD
U 1257, 1275,3701,0043,0000,0302,0033,0000 ; 5393 MEM←AR,BR/AR,VMA←AR,B DISP ;DO DATAI OR DATAO
U 1275, 1406,0001,0000,0000,0012,1110,0100 ; 5394 =101 LOAD AR,SET FPD,J/IO ;GET DATA TO OUTPUT
U 1277, 1406,0001,0000,0000,0000,1110,0100 ; 5395 SET FPD,J/IO ;INPUT, DO IO BEFORE MEM
; 5396 ;SUBROUTINES TO HANDLE EBUS
; 5397 ;CALL WITH "SKP IO LEGAL"
; 5398 ;ENTER AFTER LOADING AR IF OUTPUT FUNCTION
; 5399
; 5400 =00
U 1320, 1002,3242,2000,0000,0000,0010,0000 ; 5401 GTEBUS: AR←BR,J/UUO ;HERE IF IO ILLEGAL IN THIS MODE
U 1321, 1302,4001,0000,0000,0000,2221,0200 ; 5402 REQ EBUS,CALL,J/WGRANT ;ASK PI SYSTEM FOR BUS
; 5403 =11 ;RETURN TO TRANSFER ROUTINE
; 5404
; 5405 ;SUBROUTINE TO PERFORM EBUS TRANSFER
; 5406 ;SETUP CONTROLLER SELECT AND FUNCTION LINES BEFORE CALL
; 5407 ;IF OUTPUT, ALSO PUT AR ONTO EBUS DATA LINES
; 5408
U 1323, 1247,3701,0000,0000,0060,0010,0000 ; 5409 EBUSX: GEN AR,TIME/5T ;JUST WAIT
; 5410 GEN AR,TIME/5T,
U 1247, 1273,3703,0000,0000,0060,2210,0060 ; 5411 SET EBUS DEMAND,J/WXFER ;AFTER 300 NS, ASSERT DEMAND
; 5412 =0
; 5413 EBUSW: AR←EBUS,GEN AR,
U 1272, 1251,3701,3000,0000,0060,2210,0020 ; 5414 CLR EBUS DEMAND,J/RELEB ;STROBE DATA AND DROP DEMAND
U 1273, 1272,3703,0000,0000,0000,6710,0000 ; 5415 WXFER: GEN AR,SKP -EBUS XFER,J/EBUSW ;WAIT FOR TRANSFER
; 5416
; 5417 RELEB: GEN AR,REL EBUS,TIME/5T, ;DROP DATA, CS, AND FCN
U 1251, 0003,3701,0000,0000,0060,2203,0100 ; 5418 RETURN3 ;AFTER 150 NS, THEN RELEASE BUS
; 5419
; 5420
; 5421 ;SUBROUTINE TO WAIT FOR PI SYSTEM TO GRANT EBUS
; 5422 ; IT WILL EITHER SEND EBUS GRANT, OR PI READY
; 5423
; 5424 =0
U 1302, 1312,0001,0000,0000,0000,6610,0000 ; 5425 WGRANT: SKP -EBUS GRANT,J/WGRNT1 ;GOT IT?
U 1303, 0151,4001,0000,0000,0000,2210,0000 ; 5426 DROP EBUS REQ,J/TAKINT
; 5427 =0
U 1312, 0003,3703,0000,0000,0000,2203,0030 ; 5428 WGRNT1: IO INIT,GEN AR,RETURN3 ;GOT IT, SETUP CS, FCN, AND DATA
U 1313, 1302,0001,0000,0000,0000,7010,0000 ; 5429 SKP INTRPT,J/WGRANT ;DIDN'T GET IT, TEST FOR INTERUPT
; 5430
; 5431
; 5432 ;SUBROUTINES TO CHECK IO LEGALITY FOR INTERNAL I/O INSTRUCTIONS
; 5433
; 5434 2002: ;ACCESSIBLE ON EXTEND [0]
U 2002, 1002,3242,2000,0000,0000,0010,0000 ; 5435 IOCHK: AR←BR,J/UUO ;NAUGHTY, MUST'NT DO
U 2003, 0001,4001,0000,0000,0000,0003,0000 ; 5436 2003: RETURN1
; 5437
; 5438 =0
U 1324, 1002,3242,2000,0000,0000,0010,0000 ; 5439 GETEEB: AR←BR,J/UUO ;IO ILLEGAL IN THIS MODE
U 1325, 0001,0001,0000,0000,0000,2203,0400 ; 5440 GTEEB1: GET ECL EBUS,RETURN1
; 5441
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 118
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 INTERNAL DEVICE FUNCTIONS -- APR, CCA
; 5442 .TOC "INTERNAL DEVICE FUNCTIONS -- APR, CCA"
; 5443
; 5444 =00***0
; 5445 SWEEP: BR/AR,SC←#,#/9.,CALL,
U 1404, 2002,4001,0040,0302,0000,7321,0011 ; 5446 SKP IO LEGAL,J/IOCHK ;ALLOWED?
U 1405, 1274,0001,4000,0000,0000,0010,0000 ; 5447 AR←SHIFT ;MOVE PAGE # TO PLACE
U 1274, 1276,3703,0000,0000,0307,0010,0601 ; 5448 = VMA←AR,SWEEP CACHE ;START A SWEEP
U 1276, 0066,0001,0000,0000,0002,0010,0000 ; 5449 MBREL: MB WAIT,J/IFNOP ;COMPLETE REG FUNC BEFORE FETCH
; 5450
; 5451
; 5452 =00**00
U 1410, 1324,0001,0000,0000,0000,7321,0000 ; 5453 APRDO: CALL,SKP IO LEGAL,J/GETEEB ;SET ADDR BREAK
U 1411, 1407,3703,0000,0000,0060,2010,0417 ; 5454 DATAO APR,J/RELEEB
U 1412, 2002,0001,0040,0000,0000,7321,0000 ; 5455 APRBO: BR/AR,CALL,SKP IO LEGAL,J/IOCHK ;SET CACHE REFILL ALGORITHM
U 1413, 1276,4001,0000,0000,0007,0010,0505 ; 5456 WR REFILL RAM,J/MBREL ;INFO ALREADY IN VMA
; 5457 =
; 5458
; 5459 =00*000
U 1500, 1324,0001,0000,0000,0000,7321,0000 ; 5460 APRDI: CALL,SKP IO LEGAL,J/GETEEB ;READ ADDR BREAK
U 1501, 1407,0001,3000,0000,0060,2010,0513 ; 5461 DATAI APR(L),J/RELEEB
; 5462 =010
U 1502, 2002,4001,0000,0000,0000,7321,0000 ; 5463 APRBI: CALL,SKP IO LEGAL,J/IOCHK ;RETURN MICRO VERSION, SERIAL #
; 5464 AR←SERIAL,TIME/3T, ;READ SERIAL NUMBER
U 1503, 0137,4001,0000,0000,0020,0721,0100 ; 5465 CALL,J/UVERS ;GET MICRO-CODE VERSION IN AR
U 1507, 1301,3242,2000,0000,3000,0022,0004 ; 5466 =111 ARL←ARR.S,AR←BR ;COMB SERIAL WITH VERSION
U 1301, 0066,4001,0000,0000,0016,0110,0420 ; 5467 = AR0-8←#,#OPTIONS,STORE,J/STMEM ;SET OPTION FLAGS
; 5468
; 5469
; 5470 =00**00
; 5471 APRCO: BR/AR,ARL←ARR.M,ARR←ARR,CALL.M, ;SET APR FLAGS
U 1414, 1324,4001,0040,0000,3001,7310,0404 ; 5472 SKP IO LEGAL,J/GETEEB
U 1415, 1407,3703,0000,0000,0060,2010,0414 ; 5473 CONO APR,J/RELEEB
; 5474 APRCI: BR/AR,CALL,
U 1416, 1324,4001,0040,0000,0000,7321,0000 ; 5475 SKP IO LEGAL,J/GETEEB ;READ APR FLAGS
U 1417, 1306,0001,3000,0000,0060,2010,0510 ; 5476 CONI APR(R) ;GET RIGHT HALF OF APR CONDITIONS
U 1306, 1311,0001,3400,0000,3060,2010,0512 ; 5477 = ARX←AR SWAP,CONI APR(L) ;NOW LH COND TO AR LEFT
U 1311, 1407,0001,4000,0000,2000,0610,0000 ; 5478 AR←ARX,ARL←ARL,J/RELEEB ;COMBINE HALVES
; 5479
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 119
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 INTERNAL DEVICE FUNCTIONS -- PI
; 5480 .TOC "INTERNAL DEVICE FUNCTIONS -- PI"
; 5481
; 5482 =00*000
; 5483 .IFNOT/TRACKS
; 5484 PIDO:
U 1510, 1002,3242,2000,0000,0000,0010,0000 ; 5485 PIDI: AR←BR,J/UUO ;DATAI/O PI, UNASSIGNED
; 5486
; 5487 .IF/TRACKS
; 5488 ;DATAO PI, SETS UP BUFFER POINTERS FOR TRACKS
; 5489 ;DATAI PI, READS CURRENT BUFFER POINTER
; 5490 .IF/OLD.TRK
; 5491
; 5492 PIDO: BR/AR,ARL←0.M,SKP AR0,J/PIDO1
; 5493 PIDI: AR←TRX,J/PIDI3
; 5494
; 5495 .IFNOT/OLD.TRK
; 5496 PIDI:
; 5497 PIDO: BR/AR,ARL+ARX←0.M,CALL.M, ;CHECK IO LEGALITY
; 5498 SKP IO LEGAL,J/IOCHK
; 5499 SC←#,#/9.,B DISP,SKP BR0,J/PIDX ;NOW, WHAT TO DO?
; 5500 .ENDIF/OLD.TRK
; 5501 .ENDIF/TRACKS
; 5502
U 1511, 0166,0001,0000,0000,0007,0010,0504 ; 5503 PIBI: READ ERA,J/RDEBRG ;GET AND STORE
; 5504 =0
U 1512, 2002,4001,0000,0000,0000,7321,0000 ; 5505 PIBO: CALL,SKP IO LEGAL,J/IOCHK ;SBUS DIAGNOSTIC
U 1513, 1316,4001,0000,0000,0007,0010,0007 ; 5506 SBUS DIAG ;SEND THE DIAG FUNCTION FROM AR
; 5507 = AR/CACHE,VMA←VMA+1,
U 1316, 0066,4001,1000,0000,0016,3610,0000 ; 5508 STORE,J/STMEM ;GET AND STORE THE RESPONSE
; 5509
; 5510 =00*000
; 5511 PICO: BR/AR,ARL←ARR.M,ARR←ARR,
U 1600, 1332,0001,0040,0000,3001,7310,0404 ; 5512 CALL.M,SKP IO LEGAL,J/PICOM1
U 1603, 1330,3701,0000,0000,0060,2010,0415 ; 5513 =11 CONO PI,J/PICOM2 ;SEND THE DATA
; 5514 =00*100
U 1604, 1332,0001,0040,0000,0000,7321,0000 ; 5515 PICI: BR/AR,CALL,SKP IO LEGAL,J/PICOM1
U 1607, 1322,4001,3000,0000,0060,2010,0500 ; 5516 =11 CONI PI(R) ;READ RH TO AR LEFT
; 5517 = ARX←AR SWAP, ;RH COND TO ARX RH
U 1322, 1326,4001,3400,0000,3060,2010,0530 ; 5518 CONI PI(PAR) ; AND PARITY ENABLES TO RH
; 5519 BRX/ARX,ARX←AR, ;READY TO COMB RH PARTS
U 1326, 1327,4001,3420,0000,1060,2010,0501 ; 5520 CONI PI(L) ; AND LH TO AR LEFT
U 1327, 1330,3302,6000,0000,0000,0610,0000 ; 5521 AR←ARX*BRX,AD/OR,ARL←ARL ;COMBINE THEM
U 1330, 1262,3703,0000,0000,0005,2233,0100 ; 5522 PICOM2: REL EBUS,GEN AR,B WRITE,J/IOTEND
; 5523
; 5524 =0
U 1332, 1002,3242,2000,0000,0000,0010,0000 ; 5525 PICOM1: AR←BR,J/UUO ;LOSE
U 1333, 1302,0001,0000,0000,0000,2210,0200 ; 5526 REQ EBUS,J/WGRANT ;OK, WAIT TO GET FULL EBUS
; 5527
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 120
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 TRACKS SUPPORT
; 5528 .TOC "TRACKS SUPPORT"
; 5529
; 5530 .IF/TRACKS
; 5531 .IF/OLD.TRK
; 5532 =0
; 5533 PIDO1: ARL←BRL.S,ARR←0.S,J/PIDO2
; 5534 TRB←AR,J/PIDO1 ;SET BASE IF TURNING FEATURE ON
; 5535 PIDO2: TRX←AR,J/IOFET
; 5536
; 5537 PIDI3: AR←AR+TRB,STORE,J/STMEM
; 5538
; 5539 ;HERE AFTER ANY INSTRUCTION TO RECORD NEXT PC
; 5540
; 5541 TRC1: AR←TRX+1,GEN CRY18,SKP CRY0 ;END OF BUFFER?
; 5542 =0 SKP AR0,BR/AR,ARL←0.M,J/TRC3 ;NO. ENABLED?
; 5543 AR←AR SWAP,VMA←TRB ;YES, START AGAIN AT BASE
; 5544 BR/AR,AR←PC,STORE,PHYS REF ;GET & STORE PC
; 5545 MEM←AR,AR←-BR,VMA/PC ;RECOVER COUNTER
; 5546 TRC2: TRX←AR ;PUT AWAY UPDATED COUNTER
; 5547 =0
; 5548 TRC3: DISP/NICOND,J/NEXT ;GO ON TO NEXT INSTR
; 5549 VMA←AR+TRB ;INDEX INTO BUFFER LOC
; 5550 AR←PC,STORE,PHYS REF ;STORE PC THERE
; 5551 MEM←AR,AR←BR,VMA/PC,J/TRC2
; 5552
; 5553 .IFNOT/OLD.TRK
; 5554 =00
; 5555 PIDX: COND/EBOX STATE,#/121,J/IFNOP ;TURN TRACKS OFF
; 5556 ARX←SHIFT,ARL←BRL,ARR←0.S,J/PIDO2
; 5557
; 5558 =11 AR←TRX ;READ BACK POINTER
; 5559 ARL←0.M ;GET INDEX PART
; 5560 AR←AR+TRB,STORE,J/STMEM ;DONE WITH DATAI
; 5561
; 5562 PIDO2: TRX←AR,AR←ARX ;SET UP INDEX
; 5563 TRB←AR ;AND BASE
; 5564 COND/EBOX STATE,#/131,J/IFNOP ;TURN TRACKS ON
; 5565
; 5566 ;HERE WHEN NICOND FINDS TRACKS ENABLED
; 5567 =0
; 5568 TRK1: TRX←AR,J/TRK2 ;PUT BACK UPDATED INDEX
; 5569 AR←AR SWAP ;END OF BUFFER. RESET
; 5570 AR←-AR,J/TRK1 ; ORIGINAL INDEX
; 5571
; 5572 TRK2: ARL←0.M
; 5573 VMA←AR+TRB ;ADDRESS TRACKS BUFFER
; 5574 AR←PC,STORE,PHYS REF ; PUT PC THERE
; 5575 MEM←AR,VMA/PC, ;FINISH STORE
; 5576 COND/EBOX STATE,#/121 ;PREVENT NICOND SEEING TRACKS
; 5577 COND/EBOX STATE,#/131 ;...UNTIL NEXT TIME
; 5578 DISP/NICOND,J/NEXT ;GO DO NEXT INSTR
; 5579 .ENDIF/OLD.TRK
; 5580 .ENDIF/TRACKS
; 5581
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 121
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 INTERNAL DEVICE FUNCTIONS -- PAG
; 5582 .TOC "INTERNAL DEVICE FUNCTIONS -- PAG"
; 5583
; 5584 =00**00
U 1514, 2002,0001,0040,0000,0000,7321,0000 ; 5585 PAGBO: BR/AR,CALL,SKP IO LEGAL,J/IOCHK ;INVALIDATE PAGE TABLE LINE
U 1515, 1366,0001,0000,0401,0000,2310,0001 ; 5586 PT SEL←INVAL,CLR FE,J/PTLOOP ;DO IT FOR ONE ONLY
; 5587 PAGDO: ARX←AR (AD),ARR←ARL,ARL←ARL.M, ;SETUP USER CONTEXT
U 1516, 1324,3701,4200,0000,3001,7310,0400 ; 5588 CALL.M,SKP IO LEGAL,J/GETEEB
U 1517, 1331,3701,4000,0000,2060,2010,0620 ; 5589 DATAO PAG(L),AR←ARX ;SETUP AC BLOCKS, PREV CTXT
U 1331, 1334,3243,0000,0302,0020,5510,0011 ; 5590 = SKP AR2,SC←#,#/9.
; 5591 =*1***0
U 1334, 1407,0001,0000,0000,0000,0010,0000 ; 5592 J/RELEEB ;DO NOT CHANGE UBR
U 1335, 1336,3441,2010,0000,0000,4410,0000 ; 5593 MQ←SHIFT,SKP AR18,AR←0S ;STORE ACCT?
; 5594 =*1***0
U 1336, 1360,4001,0000,0000,0000,0121,0100 ; 5595 AR0-8←#,#/100,CALL,J/PAGD2 ;YES, START WITH EBOX CNT
U 1337, 1352,3723,0000,0000,0307,0010,0602 ; 5596 VMA←MQ,LOAD UBR,J/CLRPT ;NO, JUST CLEAR PAGE TABLE
; 5597 =*1***0
U 1360, 1432,4001,0400,0302,1000,0021,0015 ; 5598 PAGD2: ARX←AR,SC←#,#/13.,CALL,J/EMTR ;UPDATE THE EBOX ACCT
U 1361, 1340,4001,0000,0000,0002,0110,0140 ; 5599 MB WAIT,AR0-8←#,#/140 ;READY TO GET CACHE ACCT
U 1340, 1433,4001,0400,0302,1000,0010,0015 ; 5600 ARX←AR,SC←#,#/13.,J/CMTR ;RETURN ABOVE TO CLR PT
; 5601
; 5602
; 5603 =00**00
; 5604 PAGDI: SC←#,#/70,SKP IO LEGAL,
U 1610, 1324,0001,0000,0302,0000,7321,0070 ; 5605 CALL,J/GETEEB
U 1611, 1341,0001,3000,0000,0060,2021,0511 ; 5606 DATAI PAG(L),CALL,J/PCTXT ;FIRST GET AC BLOCKS & CWSX
U 1612, 1002,3242,2000,0000,0000,0010,0000 ; 5607 PAGBI: AR←BR,J/UUO ;BLKI PAG, IS UNASSIGNED
U 1613, 1407,3242,4000,0000,0000,0610,0002 ; 5608 AR←SHIFT,ARL←BRL,J/RELEEB ;COMBINE UBR WITH AC BLKS, CWSX
; 5609 =
U 1341, 1344,0001,0000,2400,3001,0010,0200 ; 5610 PCTXT: P←SC ;PLUG IN LOAD-ENABLE BITS
; 5611 =1***0*
; 5612 BR/AR,AR←0S,READ UBR, ;ASK MBOX FOR UBR LOC'N
U 1344, 0757,3441,2040,0000,0007,0021,0502 ; 5613 CALL,J/XFERW ;NOW READ IT
U 1346, 1342,0001,3000,0000,0060,2010,0567 ; 5614 AR←EBUS REG
; 5615 ARX←AR,AR←0S,SC←#,#/27., ;READY TO MOVE INTO POSITION
U 1342, 0003,3441,2400,0302,1000,0003,0033 ; 5616 RETURN3
; 5617 =00**00
; 5618 PAGCO: BR/AR,ARL←ARR.M,ARR←ARR,ARX←0S, ;SET EXEC CONTEXT
U 1614, 1324,3441,0240,0000,3001,7310,0404 ; 5619 SKP IO LEGAL,CALL.M,J/GETEEB
U 1615, 1354,3703,0000,0000,0060,2010,0416 ; 5620 CONO PAG,J/SETEBR ;SET CACHE, SEC, TRAP EN FLAGS
; 5621
; 5622 PAGCI: BR/AR,AR←0S,CALL,SKP IO LEGAL, ;READ EXEC CONTEXT
U 1616, 1324,3401,2040,0302,0000,7321,0011 ; 5623 SC←#,#/9.,J/GETEEB
U 1617, 1345,4001,3000,0000,0060,2010,0531 ; 5624 CONI PAG ;READ CACHE, SEC, TRAP EN
; 5625 =
; 5626 =1***0*
; 5627 ARX←AR SWAP,AR←0S,READ EBR, ;SETUP EPT LOC'N TO READ
U 1345, 0757,3401,2400,0000,3007,0021,0503 ; 5628 CALL,J/XFERW
; 5629 AR←EBUS REG, ;GET EBR IN AR
U 1347, 1343,3401,3220,0000,0060,2010,0567 ; 5630 BRX/ARX,ARX←0S ;SAVE FLAGS IN LH OF BRX
U 1343, 1350,4001,0400,0000,0000,2210,0000 ; 5631 ARX←SHIFT,REL ECL EBUS ;MOVE EBR LOC LEFT
U 1350, 1351,3322,0000,0000,0001,0010,0016 ; 5632 ARR←0.M,ADB/BR,ADA EN/EN,AD/OR,ARL/ADX ;COMBINE, THEN PUT IN RH
U 1351, 1262,0001,4000,0000,3005,0033,0000 ; 5633 AR←AR SWAP,B WRITE,J/IOTEND ;STORE THE RESULT
; 5634 ;HERE TO FINISH CONO PAG,
; 5635
; 5636 =1***0*
U 1354, 1174,4001,0000,0302,0000,0021,0011 ; 5637 SETEBR: SC←#,#/9.,CALL,J/SHIFT ;MOVE EBR LOC'N TO POSITION
U 1356, 1352,3703,0000,0000,0307,0010,0603 ; 5638 VMA←AR,LOAD EBR,J/CLRPT ;SETUP EBR
; 5639
; 5640 ;HERE TO CLEAR HWARE PAGE TABLE
; 5641 ; AFTER SETTING EBR OR UBR
; 5642
U 1352, 1355,0001,0000,0000,0000,2210,0000 ; 5643 CLRPT: REL ECL EBUS ;DON'T HANG UP BUS FOR THIS
; 5644 =1***0*
; 5645 CLRPT1: AR←1,CLR ARX,MB WAIT, ;WAIT FOR U/E BR LOAD
U 1355, 1174,4041,2000,0302,0022,0521,0014 ; 5646 SC←#,#/12.,CALL,J/SHIFT ;GET 1B23
U 1357, 1366,3441,2040,0301,0000,0010,0100 ; 5647 BR/AR,AR←0S,FE←#,#/64. ;SETUP LOOP COUNT
; 5648 =110
; 5649 PTLOOP: AR←AR+BR,VMA/AD,FE←FE-1, ;SELECT A LINE OF PT
; 5650 CLR PT LINE,TIME/3T, ;DO THE WORK
U 1366, 1366,0602,2000,3001,0320,2334,0021 ; 5651 BYTE DISP,J/PTLOOP ;LOOP TO CLEAR ALL
U 1367, 0066,0001,0000,0000,0000,2310,0000 ; 5652 PT SEL←NORMAL,J/IFNOP ;RESET PT WR SELECTION
; 5653
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 122
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 INTERNAL DEVICE FUNCTIONS -- TIM & MTR
; 5654 .TOC "INTERNAL DEVICE FUNCTIONS -- TIM & MTR"
; 5655
; 5656 =00***0
; 5657 RDMTR: AR←BR,CALL, ;GET E TO AR
U 1504, 1324,3202,2000,0000,0000,7321,0000 ; 5658 SKP IO LEGAL,J/GETEEB ;GRAB CONTROL OF EBUS
; 5659 MQ←AR,AR←0S, ;SAVE E IN MQ
U 1505, 1370,3401,2010,0302,1000,0033,0015 ; 5660 SC←#,#/13.,B DISP ;WHICH COUNTER?
; 5661 =
U 1370, 1362,4001,3000,0000,0060,2010,0510 ; 5662 =00 AR←TIME BASE,J/RDMTR1 ;DATAI TIM,
U 1371, 1362,0001,3000,0000,0060,2010,0511 ; 5663 AR←PERF CNT,J/RDMTR1 ;BLKI TIM,
U 1372, 1362,0001,3000,0000,0060,2010,0512 ; 5664 AR←EBOX CNT,J/RDMTR1 ;DATAI MTR,
U 1373, 1362,4001,3000,0000,0060,2010,0513 ; 5665 AR←CACHE CNT,J/RDMTR1 ;BLKI MTR,
; 5666
; 5667 =0
; 5668 RDMTR1: ARL+ARX←0.M,B DISP, ;SHIFT COUNT INTO POSITION
U 1362, 1440,4001,0000,0000,0001,0033,0460 ; 5669 CALL.M,J/MTRDBL ;ADD DOUBLE WORD FROM PT
U 1363, 1353,0602,2604,0000,0020,2227,0000 ; 5670 AR←AR+BR LONG,REL ECL EBUS
U 1353, 0022,3721,0000,0302,0316,0010,0043 ; 5671 VMA←MQ,STORE,SC←#,#/35.,J/DMVM1 ;STORE TOTAL AT E & E+1
; 5672
; 5673 =00**00
U 1700, 1324,4001,0040,0000,0000,7321,0000 ; 5674 TIMCO: BR/AR,CALL,SKP IO LEGAL,J/GETEEB
U 1701, 1407,3701,0000,0000,0060,2023,0407 ; 5675 CONO TIM,J/RELEEB
; 5676 TIMCI: BR/AR,AR←0S,CALL,
U 1702, 1324,3441,2040,0000,0000,7321,0000 ; 5677 SKP IO LEGAL,J/GETEEB
U 1703, 1364,0001,3000,0000,0060,2010,0514 ; 5678 AR←INTERVAL ;INTERVAL GOES TO LH
U 1364, 1365,3441,2400,0000,3000,0010,0000 ; 5679 = ARX←AR SWAP,AR←0S
U 1365, 1374,0001,3000,0000,0060,2010,0515 ; 5680 AR←PERIOD ;PERIOD TO RH
U 1374, 1407,4001,0000,0000,2000,0022,0004 ; 5681 ARL←ARXL,J/RELEEB ;COMBINE THEM
; 5682
; 5683 =00**00
; 5684 MTRCO: BR/AR,ARL←ARR.M,ARR←ARR,
U 1704, 1324,4001,0040,0000,3001,7310,0404 ; 5685 CALL.M,SKP IO LEGAL,J/GETEEB
U 1705, 1407,3703,0000,0000,0060,2023,0406 ; 5686 CONO MTR,J/RELEEB
; 5687 MTRCI: BR/AR,AR←0S,CALL,
U 1706, 1324,3441,2040,0000,0000,7321,0000 ; 5688 SKP IO LEGAL,J/GETEEB
U 1707, 1375,4001,3000,0000,0060,2010,0516 ; 5689 CONI MTR ;READ BACK CONDITIONS
U 1375, 1407,0001,0000,0000,0000,0022,0020 ; 5690 = ARL←0.S,J/RELEEB
; 5691
; 5692 =00**00
U 1710, 1002,3242,2000,0000,0000,0010,0000 ; 5693 TIMDO: AR←BR,J/UUO ;DATAO TIM, UNDEFINED
; 5694 =10
; 5695 TIMBO: ARX←AR,AR←0S,CALL, ;SAVE ENABLES, CLEAR AR
U 1712, 1324,3401,2400,0000,1000,7321,0000 ; 5696 SKP IO LEGAL,J/GETEEB ;CHECK LEGALITY, GET BUS
U 1713, 1376,3703,4000,0000,2060,2023,0404 ; 5697 BLKO TIM(L),AR←ARX ;TURN OFF BY CLEARING LH ENABLES
U 1376, 1377,3701,4000,0000,3060,2023,0405 ; 5698 = BLKO TIM(R),AR←AR SWAP ;SEND RH
U 1377, 1407,3701,0000,0000,0060,2023,0404 ; 5699 BLKO TIM(L),J/RELEEB ;SEND LH, TURNING ON AGAIN
; 5700 ;HERE WHEN METER INCREMENT REQUEST DETECTED
; 5701 ; WE HAVE GRABBED THE ECL EBUS
; 5702
U 1403, 1420,4001,3000,0000,0060,2010,0517 ; 5703 MTRREQ: AR←MTR REQ ;WHAT TYPE REQUEST?
; 5704 =0 MQ←AR,AR←AR*2,CALL, ;GET READY TO DISP
U 1420, 1422,3703,5010,0000,1100,3021,0507 ; 5705 VMA←#,#/507,J/MTRRQ0
U 1421, 1564,4001,0000,0000,0000,2210,0000 ; 5706 REL ECL EBUS,J/PIFET ;DONE, FETCH NEXT INSTR
; 5707
; 5708 MTRRQ0: ARX←AR SWAP,DISP/SH0-3,AR←0S, ;DISPATCH ON REQUEST TYPE
U 1422, 1430,3441,2400,0302,3040,0007,0015 ; 5709 SC←#,#/13.
; 5710 =000
U 1430, 1424,4001,3000,0000,0060,2023,0510 ; 5711 RD+CLR TB,J/MTRRQ1 ;TIME BASE
U 1431, 1424,0001,3000,0000,0060,2023,0511 ; 5712 RD+CLR PA,J/MTRRQ1 ;PERF ANALYSIS CNT
U 1432, 1424,0001,3000,0000,0060,2023,0512 ; 5713 EMTR: RD+CLR E CNT,J/MTRRQ1 ;EBOX CNT
U 1433, 1424,4001,3000,0000,0060,2023,0513 ; 5714 CMTR: RD+CLR C CNT,J/MTRRQ1 ;CACHE CNT
U 1434, 1423,0001,0000,0000,0000,2210,0000 ; 5715 REL ECL EBUS ;INTERVAL -- VECTOR INTERRUPT
U 1423, 1445,4001,0000,0000,0000,1510,0704 ; 5716 = SET PI CYCLE,J/PIINST
; 5717
; 5718 ;HERE WITH RELEVANT COUNT IN ARR, GARBAGE IN ARL
; 5719
; 5720 =0
; 5721 MTRRQ1: ARL+ARX←0.M,ARX0-3 DISP, ;CLEAR GARBAGE & RE-DISPATCH
U 1424, 1440,0001,0000,0000,2041,0007,0460 ; 5722 CALL.M,J/MTRDBL ; TO ADD DOUBLE COUNTER FROM PT
; 5723 AR←AR+BR LONG,SC←#,#/35.,
U 1425, 1426,0602,2600,0302,0036,3527,0043 ; 5724 VMA←VMA-1,STORE ;STORE BACK IN PROCESS TABLE
U 1426, 1427,3401,2003,0000,0002,1510,0004 ; 5725 MEM←AR,AR←0S,ABORT INSTR ;HI PART TO MEM
U 1427, 0001,4001,4000,0000,0016,3603,0000 ; 5726 AR←SHIFT,VMA←VMA+1,STORE,RETURN1
; 5727
; 5728 ;HERE TO PICK UP DOUBLEWORD FROM PROCESS TABLE
; 5729 ; AND ADD CURRENT CONTENTS OF APPROPRIATE METER
; 5730
; 5731 =00
; 5732 MTRDBL: AR←0S,ARX←SHIFT,
U 1440, 1435,3401,2400,0000,0100,3010,0510 ; 5733 VMA←#,#/510,J/RDEMTR ;TIME BASE IN EPT 510-511
; 5734 AR←0S,ARX←SHIFT,
U 1441, 1435,3441,2400,0000,0100,3010,0512 ; 5735 VMA←#,#/512,J/RDEMTR ;PERF CNT IN EPT 512-513
; 5736 AR←0S,ARX←SHIFT,
U 1442, 1436,3401,2400,0000,0100,3010,0504 ; 5737 VMA←#,#/504,J/RDUMTR ;EBOX ACCT IN UPT 504-505
; 5738 AR←0S,ARX←SHIFT,
U 1443, 1436,3441,2400,0000,0100,3010,0506 ; 5739 VMA←#,#/506,J/RDUMTR ;CACHE ACCT IN UPT 506-507
; 5740
; 5741 RDEMTR: BR←AR LONG, ;SAVE COUNT IN BR!BRX
U 1435, 1444,0001,0060,0000,0012,0026,0111 ; 5742 LOAD AR,EPT REF,J/RDMTR2;GET HIGH WORD FROM EPT
U 1436, 1444,0001,0060,0000,0012,0026,0221 ; 5743 RDUMTR: BR←AR LONG,LOAD AR,UPT REF ; OR UPT AS APPROP
; 5744 =0*
; 5745 RDMTR2: FIN XFER,VMA←VMA+1,LOAD ARX, ;NOW GET LOW WORD
U 1444, 0757,3200,0003,0000,0033,3621,0000 ; 5746 CALL,J/XFERW ;GO WAIT FOR IT
U 1446, 0001,3701,0500,0000,0000,0003,0000 ; 5747 ARX←ARX*2,RETURN1
; 5748
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 123
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 PRIORITY INTERRUPT PROCESSING
; 5749 .TOC "PRIORITY INTERRUPT PROCESSING"
; 5750 ;HERE WHEN PRIORITY INTERRUPT REQUEST DETECTED
; 5751 ;PI LOGIC HAS DONE HANDSHAKE TO BRING FUNCTION WORD IN ON EBUS
; 5752 ; FUNCTION WORD IS NOW IN AR, SC=2
; 5753
; 5754 ;THE FORMAT OF THE FUNCTION WORD IS --
; 5755 ; 0-2 ADDRESS SPACE FOR THE FUNCTION
; 5756 ; 0=EPT
; 5757 ; 1=EXEC VIRTUAL
; 5758 ; 4=PHYSICAL
; 5759 ; OTHERS UNDEFINED
; 5760 ; 3-5 FUNCTION TO PERFORM (SEE LIST BELOW AT PIDISP)
; 5761 ; 6 FUNCTION QUALIFIER
; 5762 ; 7-10 PHYSICAL DEVICE # ON EBUS
; 5763 ; 11-12 UNDEFINED
; 5764 ; 13-35 ADDRESS FOR FUNCTION
; 5765
; 5766 ;IN THE CASE OF A STANDARD OR A VECTOR INTERRUPT, THE 'FE'
; 5767 ;REGISTER, WHICH IS NOT CLOBBERED BY THE BASIC INSTRUCTION
; 5768 ;LOOP NOR BY BLKO/BLKI, IS USED TO REMEMBER WHETHER IT WAS
; 5769 ;A STANDARD OR A VECTOR INTERRUPT. (0 FOR STANDARD,
; 5770 ;-1 FOR VECTOR.) IN THE CASE OF A VECTOR
; 5771 ;INTERRUPT, AC 'T0' IS USED TO REMEMBER THE FUNCTION WORD.
; 5772 ;THIS ALLOWS THE CORRECT ADDRESS FOR THE SECOND WORD OF
; 5773 ;A TWO-WORD INTERRUPT TO BE DETERMINED. THIS MAKES THE
; 5774 ;MIT IMPTERFACE WORK. NOTE THAT THIS HACK DOES NOT WORK
; 5775 ;FOR DTE20 OR RH20 VECTOR INTERRUPTS, BUT NO ONE WOULD
; 5776 ;EVER USE BLKO/BLKI WITH THOSE DEVICES.
; 5777 ;[COST = 1 WORD]
; 5778
U 1437, 1450,4001,0000,0000,0040,1507,0704 ; 5779 PICYC1: SET PI CYCLE,SH DISP ;START PI CYCLE
; 5780 =1000 ;3-5 IS FUNCTION TO PERFORM
U 1450, 1445,4001,0000,0401,0100,3410,0040 ; 5781 PIDISP: VMA←40+PI*2,CLR FE,J/PIINST ;(0) STANDARD INTERRUPT
U 1451, 1445,4001,0000,0401,0100,3410,0040 ; 5782 VMA←40+PI*2,CLR FE,J/PIINST ;(1) DITTO
U 1452, 1447,3243,2010,0302,1000,0010,0005 ; 5783 MQ←AR,AR←AR*4,SC←#,#/5,J/PIVECT ;(2) VECTOR
U 1453, 1463,3701,0010,0000,1312,0010,0000 ; 5784 VMA←AR,MQ←AR,LOAD AR,J/PIINCR ;(3) INCREMENT
U 1454, 1560,3701,0010,7310,1320,5210,0040 ; 5785 VMA←AR,MQ←AR,SKP AR6,J/PIDATO ;(4) DATAO
U 1455, 1472,3701,0010,0000,1360,0010,0000 ; 5786 VMA←AR,MQ←AR,TIME/5T,J/PIDATI ;(5) DATAI
U 1456, 1660,3203,2010,7310,1020,5210,0040 ; 5787 MQ←AR,AR←AR*4,SKP AR6,J/PIBYTE ;(6) BYTE TRANSFER
U 1457, 1445,4001,0000,0401,0100,3410,0040 ; 5788 VMA←40+PI*2,CLR FE,J/PIINST ;(7) UNDEFINED
; 5789
; 5790 ;HERE FOR 2ND INTERRUPT INSTRUCTION (PI OV)
; 5791 =110
U 1466, 1445,0001,0000,0000,0100,3410,0041 ; 5792 PICYC2: VMA←41+PI*2,J/PIINST ;2ND PART OF STD INT
U 1467, 0011,4640,0007,0000,0333,0010,0166 ; 5793 VMA←T0+1,LOAD ARX,J/XCTW ;2ND PART OF VECTOR INT
; 5794
U 1445, 0011,0001,0000,0000,0013,0026,0511 ; 5795 PIINST: EPT FETCH,J/XCTW ;SAVE INSTRUCTION ADDRESS
; 5796
U 1447, 1523,3441,2000,7311,0040,0007,0030 ; 5797 PIVECT: FE←# AND S,#/30,AR←0S,SH DISP ;WHAT KIND OF DEVICE?
U 1523, 0011,3721,0000,0000,0313,0026,0511 ; 5798 =0011 VMA←MQ,EPT FETCH,J/XCTW ;CHAN 0-3
U 1527, 0011,3721,0000,0000,0313,0026,0511 ; 5799 VMA←MQ,EPT FETCH,J/XCTW ;CHAN 4-7
U 1533, 1460,4001,0000,2030,2000,0110,0142 ; 5800 AR0-8←FE+#,#/142,J/DTEVEC ;DTE 0-3
; 5801 VMA←MQ,LOAD ARX,FE←-1, ;EXTERNAL DEVICE
U 1537, 0011,3723,0007,3401,0313,1010,0166 ; 5802 T0←AR,J/XCTW
; 5803 =0*
U 1460, 1174,3441,2400,0302,1000,0021,0011 ; 5804 DTEVEC: ARX←AR,AR←0S,SC←#,#/9.,CALL,J/SHIFT
U 1462, 0011,3703,0000,0000,0313,0026,0511 ; 5805 VMA←AR,EPT FETCH,J/XCTW
; 5806
; 5807 =0101
U 1545, 0757,0001,0000,0000,0012,0026,0111 ; 5808 PILD: LOAD AR,EPT REF,J/XFERW ;GET DATUM FROM EPT
U 1547, 0757,4001,0000,0000,0012,0010,0000 ; 5809 LOAD AR,J/XFERW ; OR EXEC VIRTUAL ADDR SPACE
U 1555, 1461,3701,0000,0000,0307,0010,0503 ; 5810 VMA←AR,READ EBR,J/PIKLG1 ; OR PHYSICAL MEMORY, AS REQUESTED
U 1557, 1563,0001,0000,0000,0000,0010,0000 ; 5811 J/PIDONE ;IN CASE OF EBUS PROBLEMS
; 5812
; 5813 ;KLUDGE - NEED MEM/REG FUNC TO LOAD VMA EXT
U 1461, 0757,4001,0000,0000,0012,0026,0101 ; 5814 PIKLG1: LOAD AR,PHYS REF,J/XFERW ;NOW DO THE MEMORY CYCLE
; 5815
; 5816 ;HERE TO PERFORM INCREMENT FUNCTION
; 5817
U 1463, 1464,3200,0003,7310,0042,5210,0040 ; 5818 PIINCR: AR←MEM,SKP AR6 ;GET WORD, INCR OR DECR?
U 1464, 1563,4001,2000,0000,0036,0010,0000 ; 5819 =0 AR←AR+1,STORE,J/PIDONE
U 1465, 1563,1703,2000,0000,0036,0010,0000 ; 5820 AR←AR-1,STORE,J/PIDONE
; 5821 ;HERE FOR DATAO (EXAMINE) FUNCTION
; 5822
; 5823 =0000
U 1560, 1545,4001,0000,0000,1041,0007,0400 ; 5824 PIDATO: AR0-3 DISP,CALL.M,J/PILD ;GET DATA FROM REQUESTED ADR SPC
; 5825 AR←AR*4,SC←#,#/13.,
U 1561, 1476,3203,2000,0302,0000,0021,0015 ; 5826 CALL,J/RDEX ;RESTRICTED EXAMINE
U 1562, 1323,3240,0003,0000,0022,2221,0026 ; 5827 PIOUT: AR←MEM,SET DATAO,CALL,J/EBUSX ;SEND DATA
U 1563, 1564,0001,0003,0000,0002,0024,0502 ; 5828 PIDONE: MEM←AR,DISMISS ;DONE, DISMISS & RESUME NORMAL
U 1564, 0071,4001,0000,0000,0106,0010,0400 ; 5829 PIFET: VMA/PC,FETCH,J/NOP ;RESUME AS BEFORE
U 1565, 1520,1703,0000,0000,0320,0021,0000 ; 5830 =0101 VMA←AR-1,CALL,J/DEXCHK ;GO PROT/RELOC THIS EXAM
U 1567, 1562,0602,0000,0000,0332,0026,0101 ; 5831 =0111 VMA←AR+BR,LOAD AR,PHYS REF,J/PIOUT
U 1577, 1562,4001,0000,0000,0000,0010,0000 ; 5832 =1111 J/PIOUT ;PROT VIOLATION. SEND 0
; 5833
; 5834 ;HERE FOR DATAI (DEPOSIT) FUNCTION
; 5835
; 5836 =10
U 1472, 1323,3401,2000,0000,0060,2221,0027 ; 5837 PIDATI: SET DATAI,TIME/5T,CALL,J/EBUSX ;READ THE DATA
U 1473, 1470,3723,2400,0000,1000,0010,0000 ; 5838 ARX←AR,AR←MQ ;DATUM TO ARX, GET FCN WORD
U 1470, 1620,4001,0020,7310,0020,5210,0040 ; 5839 BRX/ARX,SKP AR6 ;RESTRICTED?
U 1620, 1645,0001,0400,0000,1040,0007,0000 ; 5840 =0000 AR0-3 DISP,ARX←AR,J/PIST ;NO, STORE AS REQUESTED
U 1621, 1476,3203,2000,0302,0000,0021,0015 ; 5841 AR←AR*4,SC←#,#/13.,CALL,J/RDEX ;YES, GET PROT/RELOC ADDR
U 1625, 1520,4001,0000,0000,0320,0021,0000 ; 5842 =0101 VMA←AR+1,CALL,J/DEXCHK ;VERIFY LEGALITY
U 1627, 1655,0602,0200,0000,0020,0010,0000 ; 5843 =0111 ARX←AR+BR,J/PSTOR ;GO STORE RELOCATED
U 1637, 1563,0001,0000,0000,0000,0010,0000 ; 5844 =1111 J/PIDONE ;PROT VIOLATION, STORE NOTHING
; 5845
; 5846 =0101
U 1645, 1563,3242,6000,0000,0016,0026,0111 ; 5847 PIST: AR←BRX,STORE,EPT REF,J/PIDONE
U 1647, 1563,3202,6000,0000,0016,0010,0000 ; 5848 AR←BRX,STORE,J/PIDONE
U 1655, 1471,3711,0000,0000,0307,0010,0503 ; 5849 PSTOR: VMA←ARX,READ EBR,J/PIKLG2 ;KLUDGE TO SET VMA EXT
U 1657, 1563,0001,0000,0000,0000,0010,0000 ; 5850 J/PIDONE
; 5851
U 1471, 1563,3202,6000,0000,0016,0026,0101 ; 5852 PIKLG2: AR←BRX,STORE,PHYS REF,J/PIDONE ;NOW DO THE MEM CYCLE
; 5853
; 5854 =10
; 5855 RDEX: FE←# AND S,#/30,AR←MQ,CLR ARX, ;DTE# *8 TO FE, ADDR TO AR
U 1476, 0264,3721,2000,7311,0000,0521,0030 ; 5856 CALL,J/ROTS
U 1477, 1474,0001,4000,0000,0000,0010,0000 ; 5857 AR←SHIFT ;ADDRESS NOW IN AR
U 1474, 1475,0001,0040,2030,2000,0110,0145 ; 5858 BR/AR,AR0-8←FE+#,#/145 ;SAVE ADDR TO BR, GET EPT LOC
U 1475, 1506,3441,2400,0302,1000,0010,0011 ; 5859 GTAR08: ARX←AR,AR←0S,SC←#,#/9.
U 1506, 0004,0001,4000,0000,0000,0003,0000 ; 5860 AR←SHIFT,RETURN4
; 5861
; 5862 =0*
U 1520, 1545,0001,0000,0000,0000,0021,0000 ; 5863 DEXCHK: CALL,J/PILD ;PROTECTION WORD FROM EPT
U 1522, 1524,3102,0004,0000,0020,5410,0000 ; 5864 SKP AR GT BR ;ALLOWED?
U 1524, 0012,3401,2000,0000,0000,0003,0000 ; 5865 =0 AR←0S,RETURN12 ;NO, SEND 0, STORE NOTHING
U 1525, 0757,0001,0000,0000,0012,3626,0111 ; 5866 VMA←VMA+1,LOAD AR,EPT REF,J/XFERW ;YES, GET RELOCATION WORD
; 5867 ;HERE FOR BYTE TRANSFERS
; 5868
; 5869 =000
U 1660, 1521,0001,0000,7311,0000,0021,0030 ; 5870 PIBYTE: FE←# AND S,#/30,CALL,J/PIBPA ;OUT... GET BP ADDR
U 1661, 1323,3401,2000,0000,0000,2221,0027 ; 5871 SET DATAI,CALL,J/EBUSX ;IN ... FIRST READ THE DATA
U 1663, 1670,3723,5400,0000,1000,0010,0000 ; 5872 =011 ARX←AR,AR←MQ*2,J/PIDPB ;GOT IT, GO DEPOSIT IT
; 5873
U 1664, 1530,3701,0000,0000,0300,0021,0000 ; 5874 =100 VMA←AR,CALL,J/PIIBP ;GO INCREMENT OUTPUT BP
U 1665, 1132,4001,0000,2002,0000,0021,0000 ; 5875 SC←FE+SC,CALL,J/LDB1 ;GO LOAD BYTE FROM IT
U 1667, 1562,4001,0000,0000,0000,0010,0000 ; 5876 =111 J/PIOUT ;THEN SEND BYTE
; 5877
; 5878 =000
; 5879 PIDPB: BRX/ARX,FE←# AND S,#/30, ;HERE WITH INPUT DATA
U 1670, 1521,4001,0020,7311,0000,0021,0030 ; 5880 CALL,J/PIBPA
U 1674, 1530,4003,0000,0000,0320,0021,0000 ; 5881 =100 VMA←AR+1,CALL,J/PIIBP ;GO INCREMENT INPUT BYTE PTR
; 5882 AR←BRX,SC←#-SC,#/36., ;STORE BYTE WITH IT
U 1675, 1212,3202,6000,5302,0020,5121,0044 ; 5883 SKP SCAD0,CALL,J/DPB1
U 1677, 1563,0001,0000,0000,0000,0010,0000 ; 5884 =111 J/PIDONE
; 5885
U 1521, 1475,4001,0000,2030,2000,0110,0140 ; 5886 PIBPA: AR0-8←FE+#,#/140,J/GTAR08
; 5887
; 5888 =00*
U 1530, 1545,0001,0000,0000,0000,0021,0000 ; 5889 PIIBP: CALL,J/PILD ;GET POINTER FROM EPT
U 1532, 1172,0001,0000,5110,3021,5110,0600 ; 5890 P←P-S,SKP SCAD0,CALL.M,J/IBPS ;INCREMENT IT
U 1536, 1111,4001,0400,0102,1000,0010,0000 ; 5891 =11* ARX←AR,SC←P,J/BYTEA ;NOW EVALUATE ITS ADDR
; 5892
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 124
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 KL-MODE PAGE REFILL LOGIC
; 5893 .TOC "KL-MODE PAGE REFILL LOGIC"
; 5894
; 5895 .IF/KLPAGE
; 5896 ;HERE ON ANY PAGE FAILURE
; 5897
U 2377, 1526,3203,7700,0000,0000,2210,0400 ; 5898 2377: GET ECL EBUS,FORCE AR-ARX,J/PF1
U 1777, 1526,3203,7700,0000,0000,2210,0400 ; 5899 1777: GET ECL EBUS,FORCE AR-ARX
U 1526, 1531,0001,4007,0000,2000,1010,0156 ; 5900 PF1: SV.AR←AR,AR←ARX ;SAVE CURRENT AR
U 1531, 1714,4001,0007,0000,0000,1004,0157 ; 5901 SV.ARX←AR,PF DISP,J/PF2 ; AND ARX IN CASE PARITY ERROR
; 5902 =1100
; 5903 PF2: ;ANY PARITY ERROR?
; 5904 =1101 AR←SV.AR,SC←#,#/156, ;YES. AR
U 1715, 1652,3240,2007,0302,0020,6410,0156 ; 5905 SKP RPW,J/PFPAR ;CHECK FOR MIDDLE OF RPW CYCLE
; 5906 ; AR←SV.ARX,SC←#,#/157,J/PFPAR ;YES. ARX
U 1716, 1717,3243,7700,0000,0000,0010,0000 ; 5907 BAG-BITING NO-OP ;IN REV 6 HARDWARE, ARX PARITY
; 5908 ;CAN BE RELIED ON TO BE FRAUDULENT
U 1717, 1534,0001,3000,0000,0062,2010,0567 ; 5909 AR←EBUS REG,MB WAIT ;NO. GET PAGE FAIL WORD
; 5910 ;PF3: REL ECL EBUS,PF DISP ;EBOX HANDLING?
; 5911 ;EBOX HANDLES BROKE OFF 4 OCT 75
U 1534, 1737,0001,0000,0000,0000,2210,0000 ; 5912 PF3: REL ECL EBUS,J/PF5
; 5913 =0111
U 1727, 2060,4001,0007,0000,0000,1005,0161 ; 5914 PF4: SV.PFW←AR,SR DISP,J/CLEAN ;NO, GO CLEAN UP
U 1737, 1535,3242,2047,0000,0000,1010,0161 ; 5915 PF5: SV.PFW←AR,AR←BR,BR/AR ;YES, GET BR TOO
U 1535, 1746,3241,0007,0000,0020,1032,0153 ; 5916 SV.BR←AR,GEN BR*2,SIGNS DISP ;SAVE BR, TEST PT DIR MATCH
; 5917 =110
; 5918 PGRF1:
; 5919 .IFNOT/ITSPAGE
; 5920 AR0-8←FE,J/PGRF2 ;YES... SAVE SC & FE
; 5921 .IF/ITSPAGE
U 1746, 1542,4001,0000,2400,2000,0022,0200 ; 5922 AR0-8←SC,J/PGRF2 ;YES... SAVE FE & SC
; 5923 .ENDIF/ITSPAGE
; 5924 ;NO, HERE TO WRITE PT DIR,
; 5925 ;& CLR 4 PAGE ENTRIES
U 1747, 1540,3441,2000,0000,0000,2310,0002 ; 5926 AR←0S,COND/MBOX CTL,MBOX CTL/2 ;READY TO CLEAR EVEN PAIR
; 5927 COND/MBOX CTL,MBOX CTL/33, ;CLR EVEN, WR DIR, SEL ODD
U 1540, 1541,0001,0000,0000,0020,2310,0033 ; 5928 TIME/3T
; 5929 COND/MBOX CTL,MBOX CTL/10, ;CLR ODD, RESET NORMAL SELECT
U 1541, 1746,4001,0000,0000,0020,2310,0010 ; 5930 TIME/3T,J/PGRF1
; 5931
; 5932 .IFNOT/ITSPAGE
; 5933
; 5934 ;HERE TO TRACE KL-10 PAGE POINTERS FOR THIS ADDRESS
; 5935
; 5936 PGRF2: ARX←AR (AD),AR0-8←SC ;FE TO ARX, SC TO AR
; 5937 ARR←ARL,ARL←ARX (ADX), ;FE IN ARL, SC IN ARR
; 5938 ARX←VMA HELD ;GET VMA WHICH FAILED
; 5939 SV.SC←AR,AR←ARX
; 5940 SV.VMA←AR,AR←AR SWAP, ;GET SEC # TO AR32-35
; 5941 EA MOD DISP ; SEC < 20?
; 5942 =01 VMA←#+AR32-35,#/440, ;YES.
; 5943 SIGNS DISP,J/PGRF3 ; USER REF?
; 5944 VMA←#+AR32-35,#/460, ;NO
; 5945 SIGNS DISP,J/PGRF3
; 5946 =101
; 5947 PGRF3: LOAD AR,EPT REF, ;GET SEC PTR FROM EPT
; 5948 ARX←AR,FE←-1,J/SECPTR ;PAGE NO TO ARX0-8
; 5949 LOAD AR,UPT REF,ARX←AR,FE←-1 ;SEC PTR FROM UPT
; 5950
; 5951 ;HERE TO FIND PAGE MAP WITH SECTION POINTER
; 5952
; 5953 SECPTR: AR←MEM,SC←#,#/9 ;GET SECTION POINTER
; 5954 FE←FE AND AR0-8,BR/AR, ;COMBINE ACCESS BITS
; 5955 ARL←0.M,AR0-3 DISP ;SPT INDEX IN ARR, DISP ON TYPE
; 5956 =1001 SC←PF.SNA,AR←0S,J/PFT ;NO ACCESS TO SECTION
; 5957 SECIMM: AR←SHIFT,VMA←AR+CBR,J/PGRF5 ;IMMEDIATE
; 5958 LDIND: VMA←AR+SBR,J/GTSPT ;SHARED SEC = INDRCT PAG
; 5959 VMA←AR+SBR,AR←ARX ;INDRCT SEC. LOOK IN SPT
; 5960 BR/AR,AR←BR,LOAD AR,PHYS REF ;CALL FOR SPT ENTRY
; 5961 ARX←SHIFT,AR←MEM ;WORD IN PT TO ARX0-8
; 5962 AR←SHIFT,ARX←BR ;NEW SEC PTR ADDR TO AR
; 5963 GEN # AND AR0-8,#/77,SKP SCAD NE,
; 5964 VMA←AR
; 5965 =0 LOAD AR,PHYS REF,J/SECPTR
; 5966 SC←PF.SNC,J/PFT ;TRAP, SEC MAP NOT IN CORE
; 5967
; 5968 GTSPT: LOAD AR,PHYS REF ;GET PAGE TABLE ADDR
; 5969 AR←MEM,J/SECIMM
; 5970 ;HERE WITH PAGE NO OF PAGE TABLE IN AR,
; 5971 ; VIRTUAL PAGE NO WITHIN SECTION IN ARX0-8
; 5972
; 5973 PGRF5: GEN # AND AR0-8,#/77, ;IS PAGE TABLE IN CORE?
; 5974 SKP SCAD NE
; 5975 =0 LOAD AR,PHYS REF, ;GET CST ENTRY FOR PAGE TABLE
; 5976 BR/AR,J/PGRF6 ;SAVE PAGE PTR ADDR IN BR
; 5977 SC←PF.SNC,J/PFT ;NOT IN CORE, PAGE FAIL TRAP
; 5978 PGRF6: AR←MEM,FE←FE AND #,#/174 ;HERE IS CST FOR PAGE TABLE
; 5979 AR←AR AND CSMSK,SKP P NE ;BEGIN CST UPDATE
; 5980 =0 SC←PF.SAG,J/PFT ;AGE TRAP, PT BEING SWAPPED
; 5981 AR←AR OR PUR,STORE ;PUT CST WORD BACK
; 5982 MEM←AR,VMA←BR
; 5983 LOAD AR,PHYS REF ;GET PAGE MAP ENTRY
; 5984 AR←MEM,FE←FE OR #,#/100 ;PAGE POINTER
; 5985
; 5986 ;HERE WITH PAGE MAP ENTRY IN AR
; 5987
; 5988 FE←FE AND AR0-8,AR0-3 DISP, ;COMBINE PWSC, DISP ON TYPE
; 5989 ARX←SV.VMA ;GET BACK SAVED VMA
; 5990 =1001 SC←PF.PNA,J/PFT ;0=NO ACCESS
; 5991 LDIMM: ARL←SHIFT,FE←FE SHRT,J/LDPT ;1=IMMEDIATE, LOAD PT
; 5992 VMA←AR+SBR,J/LDSHR ;2=SHARED, GET SPT ENTRY
; 5993 ARL←0.M,ARX←SHIFT,SC←FE,J/LDIND ;3=INDIRECT, LOOP
; 5994
; 5995 ;HERE TO GET SHARED PAGE POINTER OUT OF SPT
; 5996
; 5997 LDSHR: LOAD AR,PHYS REF
; 5998 AR←MEM,FE←FE OR #,#/100,J/LDIMM ;TREAT SPT ENTRY AS IMMED
; 5999
; 6000 ;HERE WITH IMMEDIATE PAGE NO IN AR TO LOAD INTO PT
; 6001
; 6002 LDPT: GEN # AND AR0-8,#/77,SKP SCAD NE, ;PAGE IN CORE?
; 6003 AR←ARX (AD),VMA←ARX, ;RESTORE VMA, GET IN AR
; 6004 ARX←AR SWAP ;GET PHYS PAGE # TO ARXL
; 6005 =0 GEN # AND AR0-8,#/20, ;GET WRITE BIT OUT OF VMA
; 6006 SKP SCAD NE,J/WRCLR ;WRITING?
; 6007 SC←PF.PNC,J/PFT ;PAGE NOT IN CORE
; 6008
; 6009 =0
; 6010 WRCLR: SC←FE AND #,#/66, ;CLR WRITABLE
; 6011 AR←ARX,J/WRPT ;PAGE # TO ARL
; 6012 GEN FE AND #,#/10,SKP SCAD NE, ;CHECK WRITABLE
; 6013 SC←FE,AR←ARX
; 6014 =0 SC←PF.ILW,J/PFT ;WRITE OF UNWRITABLE PAGE
; 6015 WRPT: P←P OR SC,ARR←0.M, ;STUFF IN APWSC
; 6016 ARX←AR SWAP ;PAGE # TO ARX AGAIN
; 6017 WR PT ENTRY,AR←AR*4 ;UPDATE PAGE TABLE, W TO AR00
; 6018 ;NOW GET CST ENTRY FOR THIS PAGE
; 6019
; 6020 VMA←ARX+CBR ;ADDR IN CST FOR THIS PAGE
; 6021 LOAD AR,PHYS REF ;GET CST ENTRY
; 6022 AR←PUR+AR0 ;GET PUR + WRITING BIT
; 6023 GTCST: BR/AR,AR←MEM
; 6024 AR←AR AND CSMSK,SKP P NE ;CLEAR AGER BITS IN OLD ENTRY
; 6025 =0 SC←PF.PAG,J/PFT ;AGE TRAP
; 6026 AR←AR*BR,AD/OR,STORE ;PUT CST BACK
; 6027 MB WAIT,AR←SV.SC
; 6028
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 125
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 KL-MODE PAGE REFILL LOGIC
; 6029
; 6030 .IF/ITSPAGE
; 6031
; 6032 ;HERE TO START HACKING PAGE MAP
; 6033
U 1542, 1543,0001,4000,0000,3000,0010,0000 ; 6034 PGRF2: ARR←ARL ;GRUMBLE - ARMM/SH CONFLICT
U 1543, 1544,3733,0200,0000,2000,1722,0200 ; 6035 AR0-8←FE,ARX←VMA HELD ;AR NOW HAS FE,,SC
U 1544, 1546,3242,4240,0000,2000,0610,0020 ; 6036 BR/AR,ARL←0S,ARR←ARX,ARX←BR ;BR HAS FE,,SC; AR HAS 0,,VMA; ARX HAS PFW
U 1546, 1550,3713,2400,0302,1000,0010,0031 ; 6037 ARX←AR,AR←ARX (AD),SC←#,#/25. ;<AR|ARX> WILL HAVE <VMA|0,,VMA> FOR SHIFT
U 1550, 1753,3731,2000,0000,0020,1732,0000 ; 6038 AR←VMA HELD,SIGNS DISP ;DISPATCH ON AR0 (USER MODE)
; 6039 =011
; 6040 SV.VMA←AR,FE←AR0-8, ;SAVE VMA; FE GETS WRITE BIT
U 1753, 2007,0001,0007,2421,3040,1007,0152 ; 6041 AR18-21 DISP,J/PGEXRF ; (AND OTHERS). DISPATCH ON
; 6042 SV.VMA←AR,FE←AR0-8, ; VMA 400000 BIT FOR DBR SELECT.
U 1757, 2027,4001,0007,2421,3040,1007,0152 ; 6043 AR18-21 DISP,J/PGUSRF
; 6044 =0111
U 2007, 1552,3200,4207,0000,0020,0010,0144 ; 6045 PGEXRF: AR←SHIFT,ARX←DBR4,J/RDDBR ;ARR GETS INDEX INTO ITS PAGE TABLE.
U 2017, 1551,3240,4207,0000,0020,0010,0143 ; 6046 AR←SHIFT,ARX←DBR3,J/RDDBR0 ; AR0 TELLS WHICH HALFWORD.
; 6047 =0111
U 2027, 1552,3200,4207,0000,0020,0010,0141 ; 6048 PGUSRF: AR←SHIFT,ARX←DBR1,J/RDDBR ; ARX GETS ONE OF FOUR DBR'S
U 2037, 1551,3200,4207,0000,0020,0010,0142 ; 6049 AR←SHIFT,ARX←DBR2,J/RDDBR0 ; DEPENDING ON EXEC/USER AND VMA 2.9.
; 6050
; 6051 ;HERE TO PICK UP ITS PAGE TABLE ENTRY
; 6052
U 1551, 1552,5110,0207,0000,0020,0010,0150 ; 6053 RDDBR0: ARX←ARX-CN100 ;COMPENSATORY CROCK
U 1552, 1553,3242,2040,2422,0000,0010,0000 ; 6054 RDDBR: SC←AR0-8,AR←BR,BR/AR ;SC ← 1/2 WD BIT, BR ← PTW INDEX
U 1553, 1554,0612,0000,7302,0320,0010,0400 ; 6055 VMA←ARX+BR,SC←SC AND #,#/400 ;SET UP VMA BEFORE LOAD AR
; 6056 ;(BUG IN MCL BOARD: MCL USER EN)
; 6057 LOAD AR VIA RPW,BR/AR,PHYS REF, ;BR NOW HAS FE,,SC AGAIN.
U 1554, 1570,0001,0040,2400,0037,5226,0101 ; 6058 GEN SC,SKP SCAD NE ;FETCH PTW, SKIP ON HALF.
; 6059 =0
U 1570, 1556,3240,0003,0302,0022,0510,0000 ; 6060 AR←MEM,CLR ARX,SC←#,#/0,J/RDBRLH ;SC GETS 0 FOR LEFT HALF,
U 1571, 1566,3240,0003,0302,0022,0510,0022 ; 6061 AR←MEM,CLR ARX,SC←#,#/18.,J/RDBRRH ; 18. FOR RIGHT HALF
; 6062 RDBRLH: AR←AR*LH.AGE,AD/ANDCB, ;AND OUT APPROPRIATE AGE BITS,
U 1556, 1572,3500,2007,4000,0036,0010,0145 ; 6063 STORE,J/PACCDS ; AND STORE BACK
; 6064 RDBRRH: AR←AR*RH.AGE,AD/ANDCB,
U 1566, 1572,3500,2007,4000,0036,0010,0146 ; 6065 STORE,J/PACCDS
; 6066
; 6067 ;HERE TO DETERMINE ACCESS ALLOWED BY ITS PAGE TABLE ENTRY
; 6068
; 6069 PACCDS: MEM←AR,ARL←SHIFT.C,ARR←0.C, ;GET PAGE TABLE HALFWORD IN ARL,
U 1572, 2043,0001,0003,4402,0042,0607,0014 ; 6070 SC←1,SH DISP ; CLEAR ARR, DISPATCH ON ACCESS
; 6071 =0011
U 2043, 1636,4001,0000,0302,0000,0010,0033 ; 6072 SC←PF.PNA,J/PFT ;00 NO ACCESS
U 2047, 1573,0001,4000,0302,0000,0010,0040 ; 6073 SC←#,#/PPRO,AR←SHIFT,J/PFWLOS ;01 READ ONLY ;AR GETS SHIFTED
U 2053, 1573,0001,4000,0302,0000,0010,0040 ; 6074 SC←#,#/PPRWF,AR←SHIFT,J/PFWLOS ;10 R/W FIRST ; FOR KL-10 SIZE
U 2057, 1574,0001,4000,0302,0000,0010,0050 ; 6075 SC←#,#/PPRW,AR←SHIFT,J/PGSTO ;11 READ/WRITE ; PAGES (.5K)
; 6076
U 1573, 1574,0001,0000,7030,0020,5210,0020 ; 6077 PFWLOS: GEN FE AND #,#/20,SKP SCAD NE ;LOSE IF WRITE ATTEMPT
; 6078 =0
; 6079 PGSTO: SCADA/#,SCADB/AR0-8,SCAD/AND, ;CLEAR OUT ACCESS AND AGE BITS
; 6080 AR0-8←SCAD#,#/37,
U 1574, 1576,0001,0000,7320,2000,0110,0037 ; 6081 J/PGSTO1
U 1575, 1636,4001,0000,0302,0000,0010,0024 ; 6082 SC←PF.ILW,J/PFT ;WRITE INTO READ ONLY OR R/W/F LOSES
; 6083
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 126
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 KL-MODE PAGE REFILL LOGIC
; 6084
; 6085 ;HERE TO WRITE TWO KI-10 PAGE MAP ENTRIES
; 6086
; 6087 PGSTO1: SCADA/AR0-5,SCADB/SC,SCAD/OR, ;OR IN APPROPRIATE KI-10
U 1576, 1601,3200,0207,6100,3020,0110,0152 ; 6088 P←SCAD#,ARX←SV.VMA ; STYLE ACCESS BITS
U 1601, 1602,3510,0007,0000,0320,0010,0147 ; 6089 GEN ARX*CN1000,AD/ANDCB,VMA/AD ;VMA ADDRESS FOR LOW HALF PAGE
U 1602, 1622,3200,0007,0000,0020,5510,0161 ; 6090 GEN SV.PFW,SKP AD0 ;SKIP IF USER REFERENCE
U 1622, 1605,4001,0000,0000,0000,0026,0100 ; 6091 =0 EXEC REF,J/PGSTO2 ;FIX IT UP (BUG IN MCL BOARD
U 1623, 1605,4001,0000,0000,0000,0026,0200 ; 6092 USER REF,J/PGSTO2 ; HAVING TO DO WITH PXCT)
; 6093 PGSTO2: WR PT ENTRY,ADA/AR,AD/A+XCRY, ;WRITE IT, THEN BUMP ARL
U 1605, 1606,0003,2000,0000,0040,2317,0010 ; 6094 GEN CRY18,AR/AD ; FOR HIGH .5K ENTRY
U 1606, 1624,3310,0007,4000,0320,0010,0147 ; 6095 GEN ARX*CN1000,AD/OR,VMA/AD ;VMA ADDRESS FOR HIGH HALF PAGE
U 1624, 1630,3200,0007,0000,0020,5510,0161 ; 6096 GEN SV.PFW,SKP AD0 ;SKIP IF USER REFERENCE
U 1630, 1626,0001,0000,0000,0000,0026,0100 ; 6097 =0 EXEC REF,J/PGSTO3 ;FIX IT UP (BUG IN MCL BOARD
U 1631, 1626,0001,0000,0000,0000,0026,0200 ; 6098 USER REF,J/PGSTO3 ; HAVING TO DO WITH PXCT)
U 1626, 1632,3202,2000,0000,0020,2310,0010 ; 6099 PGSTO3: WR PT ENTRY,AR←BR ;AR GETS FE,,SC BACK AT LAST!
; 6100
; 6101 .ENDIF/ITSPAGE
; 6102
; 6103 ;HERE TO RESTORE REGISTERS AND RESTART REFERENCE WHICH FAILED
; 6104
; 6105 SC←EXP,FE←EXP,SKP AR0, ;RESTORE FE
U 1632, 1634,3200,4207,0203,3020,4510,0153 ; 6106 AR←AR SWAP,ARX←SV.BR
; 6107 =0
; 6108 PGRST1: SC←EXP,SKP AR0, ;RESTORE SC
U 1634, 1640,3200,4207,0202,2020,4510,0156 ; 6109 AR←ARX,ARX←SV.AR,J/PGRST2
U 1635, 1634,0001,0000,1401,0000,0010,0000 ; 6110 FE←-SC-1,J/PGRST1 ;MAKE FE NEG
; 6111 =0
U 1640, 1633,3200,4247,0000,2020,0010,0157 ; 6112 PGRST2: BR/AR,AR←ARX,ARX←SV.ARX,J/PGRST3 ;RESTORE BR AND AR AND ARX
U 1641, 1640,0001,0000,1402,0000,0010,0000 ; 6113 SC←-SC-1,J/PGRST2 ;MAKE SC NEG
; 6114
U 1633, 0000,3240,0007,0000,0134,0003,0152 ; 6115 PGRST3: REQ SV.VMA,MEM/AD FUNC,RETURN0 ;RESTART REQUEST THAT FAILED
; 6116
; 6117 ;HERE ON A TRAP CONDITION DETECTED BY REFILL LOGIC
; 6118 ;SC CONTAINS PAGE FAIL CODE
; 6119
U 1636, 1642,3200,2007,0000,0020,0010,0153 ; 6120 PFT: AR←SV.BR ;RESTORE CRITICAL REG'S
U 1642, 1650,3200,2047,0000,0020,5510,0161 ; 6121 BR/AR,AR←SV.PFW,SKP AD0
; 6122 =0
U 1650, 1727,3200,0007,2400,3320,0110,0152 ; 6123 PFT1: P←SC#,VMA←SV.VMA,J/PF4 ;GO PAGE FAIL
U 1651, 1650,0001,0000,6302,0000,0010,0040 ; 6124 SC←# OR SC,#/40,J/PFT1
; 6125
; 6126 ;HERE ON ANY PARITY ERROR
; 6127 ;*** THIS CODE PROBABLY DOESN'T WORK WELL.
; 6128 ;*** NEEDS TO BE UPDATED FROM UCODE VERSION 112
; 6129 ;SKIP IF MIDDLE OF READ-PAUSE-WRITE CYCLE, IN WHICH CASE WE
; 6130 ; MUST WRITEBACK THE DATA TO PREVENT INCOMPLETE CYCLE
; 6131 =0
U 1652, 1643,3733,0000,0000,0307,1710,0140 ; 6132 PFPAR: VMA←VMA HELD,MAP,J/PFPAR1 ;GET MAP INFO ON REF
U 1653, 1652,0001,0000,0000,0016,0010,0000 ; 6133 STORE,J/PFPAR ;WRITEBACK WITH GOOD PARITY
; 6134 PFPAR1: SV.PAR←AR,MB WAIT, ;SAVE WORD WITH BAD PARITY
U 1643, 1644,0001,0007,2302,0002,1010,0160 ; 6135 SC←#+SC,#/160 ;GET PF CODE 36 OR 37
U 1644, 1646,4001,3000,0000,0060,2010,0567 ; 6136 AR←EBUS REG ;READ MAP INFO
; 6137 ; P←P OR SC,J/PF3 ;INSERT PF CODE
U 1646, 1727,0001,0000,6100,3001,0010,0200 ; 6138 P←P OR SC,J/PF4 ;INSERT PF CODE
; 6139
; 6140 .IFNOT/KLPAGE
; 6141
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 127
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 KL-MODE PAGE REFILL LOGIC
; 6142 .TOC "KI-MODE PAGE FAIL HANDLING"
; 6143
; 6144 2377: FORCE AR-ARX,J/PFSAVE ;PAGE FAIL IN HIGH CRAM ADDR
; 6145 1777: FORCE AR-ARX
; 6146 PFSAVE: SV.AR←AR,AR←ARX ;PRESERVE AR, ARX
; 6147 SV.ARX←AR,SR DISP,J/CLEAN ;NOW CHECK FOR CLEANUP REQUIRED
; 6148
; 6149 .ENDIF/KLPAGE
; 6150 ;HERE ON PAGE FAIL OR INTERRUPT WHICH REQUIRES CLEANUP IN ORDER
; 6151 ; TO BE CORRECTLY RESTARTABLE AFTER SERVICE...
; 6152 =1*0000
; 6153 .IF/KLPAGE
U 2060, 1672,4001,0000,0000,0000,7010,0000 ; 6154 CLEAN: SKP INTRPT,J/PGF1 ;INTERRUPT?
; 6155 .IFNOT/KLPAGE
; 6156 CLEAN: FE←#,#/36,SKP FETCH,J/PGF0 ;HERE FOR INTRPT OR PGF?
; 6157 .ENDIF/KLPAGE
; 6158
; 6159 .IF/EIS
; 6160
; 6161 .IF/EIS
; 6162 ;(1) HERE ON EDIT SOURCE FAIL
; 6163 =0001
; 6164 AR←SRCP,SR←0,J/BACKS ;BACK UP SRC POINTER
; 6165
; 6166 .IF/DECIMAL
; 6167 ;(2) HERE ON ANY FAILURE IN DECIMAL TO BINARY
; 6168 =0010
; 6169 AR←BR LONG,SR←1,J/D2BPF ;GET ACCUMULATED BINARY
; 6170
; 6171 ;(3) HERE ON DST FAIL IN BINARY TO DECIMAL FILL
; 6172 =0011
; 6173 AR←DLEN COMP,SR←#,#/4,J/B2DFPF
; 6174 .ENDIF/DECIMAL
; 6175
; 6176 ;(4) HERE ON EDIT DST FAIL WITH NO SRC POINTER UPDATE
; 6177 =0100
; 6178 AR←DSTP,SR←0,J/BACKD ;BACK UP DST POINTER ONLY
; 6179
; 6180 ;(5) HERE ON EDIT DST FAIL AFTER UPDATING SRC POINTER
; 6181 =0101
; 6182 AR←DSTP,SR←1,J/BACKD ;BACK UP DST, THEN SRC
; 6183
; 6184 .IF/DECIMAL
; 6185 ;(6) HERE ON DESTINATION FAILURE IN BINARY TO DECIMAL
; 6186 =0110
; 6187 AR←DSTP,SR←BDT,J/BACKD ;BACK UP DST, THEN SAVE FRACTION
; 6188 .ENDIF/DECIMAL
; 6189 .ENDIF/EIS
; 6190
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 128
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 KL-MODE PAGE REFILL LOGIC
; 6191 ;(7) HERE ON BLT FAILURE
; 6192 =0111
; 6193 .IF/KLPAGE
U 2067, 1724,3200,0207,0000,0020,0010,0157 ; 6194 ARX←SV.ARX,J/BLTPF ;GET DEST ADDR AGAIN
; 6195 .IFNOT/KLPAGE
; 6196 BLTPF: AR←ARX+BR,SR←0,J/BLTPF1 ;CURRENT SRC ADDR
; 6197 .ENDIF/KLPAGE
; 6198 .IF/EIS
; 6199 .IF/DECIMAL
; 6200 ;(10) HERE ON TRANSLATION FAILURE IN BINARY TO DECIMAL
; 6201 =1000
; 6202 AR←BR LONG,SR←0,J/B2DPF ;GET BINARY FRACTION
; 6203 .ENDIF/DECIMAL
; 6204
; 6205 ;(11) HERE ON SRC FAILURE IN COMPARE OR MOVE STRING
; 6206 =1001
; 6207 AR←DLEN,SR←1,J/STRPF ;PUT LENGTHS BACK, THEN BACK SRC
; 6208
; 6209 ;(12) HERE ON DST FAILURE IN COMPARE OR MOVE STRING
; 6210 =1010
; 6211 AR←DLEN,SR←#,#/4,J/STRPF
; 6212
; 6213 ;(13) HERE ON DST FAILURE AFTER UPDATING SRC IN COMPARE OR MOVE
; 6214 =1011
; 6215 AR←DSTP,SR←SRC,J/BACKD ;BACK DST, THEN HANDLE AS SRC FAIL
; 6216 .ENDIF/EIS
; 6217 .IF/KLPAGE
; 6218 .IF/MAP
; 6219 ;(14) HERE ON PAGE FAILURE IN MAP INSTRUCTION. RETURN PAGE FAIL WORD
; 6220 =1100
; 6221 AR←SV.PFW,J/IFSTAC ;RETURN PFW IN AC
; 6222 .ENDIF/MAP
; 6223 .ENDIF/KLPAGE
; 6224 =
; 6225
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 129
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 KL-MODE PAGE REFILL LOGIC
; 6226 ;HERE ON ANY PAGE FAILURE OR PI REQUEST IN LONG INSTRUCTIONS
; 6227 ; SKIP IF INSTR FETCH, WHICH IMPLIES FAILED OUT OF NICOND
; 6228 ; THEN TEST PI REQUEST, WHICH TAKES PRIORITY
; 6229 .IF/KLPAGE
; 6230 =0
U 1672, 1654,4001,0000,0000,0102,3010,0500 ; 6231 PGF1: MB WAIT,VMA←#,#/500,J/PGF2
U 1673, 0144,0001,0000,0000,0000,7710,0000 ; 6232 TAKE INTRPT ;CLEANUP DONE, SERVE INTRPT
U 1654, 1720,3240,2007,0000,0020,6510,0161 ; 6233 PGF2: AR←SV.PFW,SKP PI CYCLE,J/PGF4 ;GET BACK PAGE FAIL WORD
; 6234 .IFNOT/KLPAGE
; 6235 =0
; 6236 PGF0: SKP INTRPT,J/PGF1 ;NOT FETCH, CHECK FOR INTRPT
; 6237 PC←VMA,SKP INTRPT ;UPDATE PC BEFORE TRAP/INTRPT
; 6238 =0
; 6239 PGF1: GET ECL EBUS,CLR SC,
; 6240 PF DISP,J/PGF2
; 6241 TAKE INTRPT ;HERE TO SERVE INTRPT, DO IT
; 6242 =1100
; 6243 PGF2:
; 6244 =1101 VMA←VMA HELD,MAP, ;AR PARITY ERROR
; 6245 SC←FE,J/PGF3 ;PF CODE 36
; 6246 VMA←VMA HELD,MAP, ;ARX PARITY ERROR
; 6247 SC←FE+1,J/PGF3 ;PF CODE 37
; 6248 PGF3:
; 6249 MB WAIT,VMA←#,#/500
; 6250 AR←EBUS REG ;READ PAGE FAIL WORD
; 6251 P←P OR SC,SKP PI CYCLE ;STUFF ERROR CODE IF PARITY
; 6252 .ENDIF/KLPAGE
; 6253 =00
; 6254 PGF4: ARX←AR,AR←VMA HELD,SC←#,#/13., ;READY TO COMBINE PF WORD
U 1720, 0264,3731,2400,0302,1000,1721,0015 ; 6255 CALL,J/ROTS ; WITH ADDRESS
U 1721, 1722,4001,0007,0000,0000,1010,0162 ; 6256 SV.IOPF←AR,J/IOPGF ;SAVE IO PG FAIL WORD
; 6257 =11
; 6258 .IFNOT/PFAIL.PIHACK
; 6259 .IFNOT/LPM.SPM
; 6260 AR←SHIFT,STORE,UPT REF ;PUT PAGE FAIL WORD AT 500
; 6261 .IF/LPM.SPM
; 6262 AR←SHIFT,STORE,EPT REF ;STORE PFW AT 500
; 6263 UPFW←AR ;ALSO IN LPM/SPM VARIABLES
; 6264 .ENDIF/LPM.SPM
; 6265 .IF/PFAIL.PIHACK
; 6266 MQ←SHIFT,AR←1,GEN CRY18, ;SAVE PAGE FAIL WORD IN MQ
U 1723, 1730,4041,2210,0302,0020,0017,0010 ; 6267 ARX/AD,SC←#,#/8 ; AND GENERATE MAGIC BITS
U 1730, 1302,0001,4000,0000,0000,2221,0200 ; 6268 =00 AR←SHIFT,REQ EBUS,CALL,J/WGRANT ;GOBBLE DOWN EBUS
U 1733, 1656,3701,0000,0000,0060,2010,0415 ; 6269 =11 CONO PI ;TURN OFF PI SYSTEM
U 1656, 1662,0001,0000,0000,0000,2210,0100 ; 6270 REL EBUS ;RELEASE EBUS
; 6271 .IFNOT/LPM.SPM
; 6272 AR←MQ,STORE,UPT REF
; 6273 .IF/LPM.SPM
U 1662, 1666,3723,2000,0000,0016,0026,0111 ; 6274 AR←MQ,STORE,EPT REF ;STORE PFW AT 500
U 1666, 1671,0001,0007,0000,0000,1010,0140 ; 6275 UPFW←AR ;AND IN LPM/SPM VARIABLES
; 6276 .ENDIF/LPM.SPM
; 6277 .ENDIF/PFAIL.PIHACK
U 1671, 1676,4001,0000,0000,0000,1510,0004 ; 6278 ABORT INSTR ;RECOVER TRAP FLAGS, IF ANY
; 6279 FIN STORE,AR←PC,
U 1676, 1711,3731,2003,0000,0016,3610,0000 ; 6280 VMA←VMA+1,STORE ;STORE OLD PC AT 501
; 6281 .IFNOT/KLPAGE
; 6282 REL ECL EBUS
; 6283 .ENDIF/KLPAGE
; 6284 .IFNOT/LPM.SPM
; 6285 MEM←AR,VMA←VMA+1,J/NEWPC ;GET NEW PC FROM 502
; 6286 .IF/LPM.SPM
U 1711, 1714,0001,0003,0000,0002,3610,0000 ; 6287 MEM←AR,VMA←VMA+1
U 1714, 0225,0001,0000,0000,0012,0026,0111 ; 6288 LOAD AR,EPT REF,J/NEWPC1
; 6289 .ENDIF/LPM.SPM
; 6290
; 6291 ;HERE ON PAGE FAIL DURING PI CYCLE
; 6292
U 1722, 1563,0001,0000,0000,0000,2310,0100 ; 6293 IOPGF: SET IO PF,J/PIDONE ;TROUBLE...
; 6294
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 130
; DSK: UCODE; IO 8 18:30:45 1-FEB-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6295 .TOC "PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS"
; 6296
; 6297 ;HERE ON BLT PAGE FAIL
; 6298
; 6299 .IF/KLPAGE
U 1724, 1725,0612,2000,0000,0020,1610,0000 ; 6300 BLTPF: AR←ARX+BR,SR←0 ;CURRENT SRC ADDR
; 6301 .ENDIF/KLPAGE
U 1725, 1726,3711,2000,0000,3000,0610,0004 ; 6302 BLTPF1: AR←ARX (AD),ARL←ARR
U 1726, 2060,0001,0000,0000,0000,1005,0000 ; 6303 PGFAC0: AC0←AR,SR DISP,J/CLEAN ;BEGIN NORMAL PF WORK
; 6304
; 6305 .IF/EIS
; 6306 ;HERE ON VARIOUS CASES OF STRING/EDIT FAILURE
; 6307
; 6308 BACKS: P←P+S
; 6309 SRCP←AR,SR DISP,J/CLEAN ;RE-DISPATCH FOR MORE
; 6310
; 6311 BACKD: P←P+S
; 6312 DSTP←AR,SR DISP,J/CLEAN
; 6313
; 6314 .IF/DECIMAL
; 6315 D2BPF: AC3←AR,AR←0S,SC←#,#/35. ;PUT AWAY HIGH BINARY
; 6316 AR←SHIFT,ARX←-SLEN ;LOW TO AR, REMAINING LEN TO ARX
; 6317 AC4←AR,AR←ARX,J/STRPF2 ;PUT LOW AWAY
; 6318
; 6319 B2DFPF: AR←AR*T0,AD/OR,J/B2DPF2
; 6320
; 6321 B2DPF: AC0←AR,AR←ARX ;HIGH FRACTION TO AC
; 6322 AC1←AR ;LOW TO AC1
; 6323 AR←AC3 ;GET FLAGS
; 6324 B2DPF2: AR←AR*SLEN,AD/A-B,J/STRPF3 ;REBUILD FLAGS+LEN
; 6325 .ENDIF/DECIMAL
; 6326
; 6327 STRPF: BR/AR,AR←-SLEN,SKP AR0 ;WHICH IS LONGER?
; 6328 =0 AC3←AR,AR←AR+BR,J/STRPF2 ;SRC LONGER
; 6329 ARX←AR,AR←AR*SFLGS,AD/OR ;DST. BUILD SRC LEN+FLAGS
; 6330 AC0←AR,AR←ARX-BR ;THAT'S AWAY, MAKE DST LEN
; 6331 STRPF3: AC3←AR,SR DISP,J/CLEAN ;OK, NOW BACK UP SRC IF REQ'D
; 6332
; 6333 STRPF2: AR←AR*SFLGS,AD/OR
; 6334 AC0←AR,SR DISP,J/CLEAN
; 6335 .ENDIF/EIS
; 6336
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 131
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6337
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 132
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6338 .IF/EIS
; 6339
; 6340 .toc "extended instruction set decoding"
; 6341
; 6342 ;get here with e0 in br, (e0) in ar
; 6343 ; (e0) is the operation word, and has the normal -10 instruction
; 6344 ; format -- bits 0-8 are opcode, 9-12 ignored, 13 @, 14-17 xr,
; 6345 ; and 18-35 y. the ac used comes from the extend instruction.
; 6346 ; compute e1 from 13-35
; 6347
; 6348 ;extend:fe←#+ar0-8,#/-20,skp scad0, ;check legal operation
; 6349 ; arx←ar,ar←brx ;opr to arx, get ac from brx
; 6350 =0
; 6351 ext1: ar←br,j/uuo ;opcode > 17
; 6352 ar0-8←fe+#,#/20 ;plug opr into extend ac
; 6353 gen ar,load ir,ar←arx,arl←0.m,
; 6354 ea mod disp
; 6355 =00
; 6356 ext2: e1←ar,ar←br,j/ext5 ;save e1, ready to save e0
; 6357 arl←0.m,ar←arx+xr,j/ext2
; 6358 GEN arx,a indrct,skp intrpt,j/ext3
; 6359 GEN arx+xr,a indrct,
; 6360 skp intrpt,j/ext3
; 6361 =0
; 6362 ext3: ar←mem,arx←mem,j/ext4
; 6363 take intrpt
; 6364 ext4: arl←0.m,ea mod disp,j/ext2
; 6365
; 6366 ext5: e0←ar,ir disp,j/2000 ;enter extended instr handler
; 6367
; 6368 ;the extended instruction set is "hidden" under the luuo'S by this
; 6369 ; use of "ir disp,j/2000" to dispatch to them. the luuo's which
; 6370 ; have the same opcodes as extended operations are assigned unique
; 6371 ; cram locations in the range 1000 to 1017. when we specify j/2000,
; 6372 ; the cram address becomes 3000 to 3017, which accesses cram locations
; 6373 ; 2000 to 2017 because address bits 01 and 02 are ignored when bit 00
; 6374 ; is true (cra, crm).
; 6375
; 6376 2005: ar←ac3,j/cmps ;hidden behind l-cms
; 6377 2006: clr ar,arx←1s,sc←#,#/15.,j/edit ;hidden behind l-edit
; 6378 .IF/DECIMAL
; 6379 2010: ar←ac0 comp,j/dbin ;hidden behind l-dbin
; 6380 2011: ar←ac1,clr arx,sc←1,
; 6381 byte disp,j/bdec ;hidden behind l-bdec
; 6382 .ENDIF/DECIMAL
; 6383 2012: ar←ac3,j/mvst ;hidden behind l-mvs
; 6384
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 133
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6385 .toc "eis -- string move"
; 6386 ; here with ac3 (dest len) in ar
; 6387 ;slen is the complement of the shorter string length
; 6388 ;dlen is <src len>-<dst len>
; 6389
; 6390 mvst: br/ar,ar←ac0, ;hold it, get src len
; 6391 fe←ar0-8,skp scad ne
; 6392 =0 fe←ar0-8,ar0-8←#,#/0,j/mvst1 ;separate flags off
; 6393 ar←e0,j/uuo ;no flags allowed in dst len
; 6394 mvst1: arx←ar,ar←ar-br,skp ad0 ;compute src-dst len
; 6395 =0 dlen←ar,ar←br comp,j/mvst2 ;src longer
; 6396 dlen←ar,ar←arx comp ;dst longer
; 6397 mvst2: slen←ar,arx←ar,mq←ar,ar←0s ;-short len -1 to mq
; 6398 ar0-8←fe,brx/arx ; and brx
; 6399 sflgs←ar,b disp
; 6400 =100 clr ar,arx←1s,sc←#,#/15.,j/movs2;translate, build mask
; 6401 ar←e1,j/mvso1 ;offset, sign extend e1
; 6402 arx←brx+1,ar/adx,sr←src,j/movst1 ;left justify
; 6403 ar←dlen,skp ad0,j/movrj ;right justify
; 6404
; 6405 mvso1: arx←dstp,skp ar18,arl←0.m ;check sign for extending
; 6406 =0
; 6407 mvso2: e1←ar,ar←arx,j/mvso3 ;save again, get pointer
; 6408 arl←1s,j/mvso2 ;neg, make minus
; 6409 mvso3: sc←s,clr arx,ar←1s ;prepare to build mask
; 6410 movs2: ar←shift,sr←src
; 6411 msk←ar
; 6412 =000
; 6413 MOVELP: ar←slen+1,CALL,J/SRCmod ;PICK UP SOURCE BYTE
; 6414 ar←dlen,j/movstx ;(1) length exhausted
; 6415 =100
; 6416 MOVPUT: mq←AR,SR←src+DST,call,j/putdst ;(4) NORMAL, STORE DST BYTE
; 6417 i fetch,ar←dlen,j/mvabt ;(5) abort
; 6418 =110 SR←SRC,J/MOVELP ;(6) DPB DONE
; 6419 =
; 6420 ;here to abort a string move due to translate or offset failure
; 6421
; 6422 mvabt: br/ar,ar←-slen,skp ar0 ;which string longer?
; 6423 =0
; 6424 mvabt1: ac3←ar,j/mvabt2 ;put away dest len
; 6425 ar←ar-br,j/mvabt1 ;dest len was greater
; 6426
; 6427 mvabt2: ar←slen comp,skp br0 ;get undecremented slen
; 6428 =0 ar←ar+br ;src longer by (dlen)
; 6429 mvend: ar←ar*sflgs,ad/or,sr←0,j/stac ;put back remaining length
; 6430
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 134
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6431 ;here to begin right-justified move
; 6432
; 6433 =00
; 6434 movrj: arx←ar,ar←srcp,sr←src,j/mvskp ;src longer, skip over some
; 6435 vma←e0+1,load ar,call,j/movfil ;dst longer, fill it
; 6436 =11 arx←brx+1,ar/adx,sr←src,j/movst1 ;done filling
; 6437
; 6438 =0
; 6439 mvskp: arx←arx-1 (ad),fe←#,#/36.,
; 6440 signs disp,skp intrpt,j/mvsk1
; 6441 p←fe-s,ar←ar+1,j/mvskp
; 6442 =110
; 6443 mvsk1: p←p-s,skp scad0,j/mvskp ;bump pointer
; 6444 srcp←ar,gen arx,signs disp,ar←0.m
; 6445 =110 brx/arx,ar←slen comp,arx/ad,j/mvsk3 ;interrupted
; 6446 dlen←ar,j/mvsk4 ;done filling
; 6447
; 6448 mvsk3: ac3←ar,ar←arx*brx,ad/a+b+1 ;dest has short len
; 6449 sr←0,j/strpf2 ;fix up ac0, serve intrpt
; 6450
; 6451 ;here for no-modification string moves
; 6452
; 6453 =000
; 6454 movst1: slen←ar,brx/arx, ;put updated len away
; 6455 ar+arx+mq←0.m,call.m,
; 6456 signs disp,j/gsrc
; 6457 movstx: skp ar0,arx←ar,ar←0s,j/movst2 ;short len exhausted
; 6458 =010 mq←ar,sr←src+dst,call,j/putdst
; 6459 =110
; 6460 mvsk4: arx←brx+1,ar/adx,sr←src,j/movst1
; 6461 =
; 6462 =00
; 6463 movst2: test arx,test fetch, ;skip if both lengths =0
; 6464 ac3←ar,ar←arx,j/mvend ;clear dest len, rebuild src
; 6465 vma←e0+1,load ar,call,j/movfil
; 6466 =11 ar←sflgs,vma←pc+1,j/sfet1 ;done filling
; 6467
; 6468 movfil: ar←mem,sr←dst
; 6469 =01*
; 6470 movf1: mq←ar,call,j/putdst
; 6471 ar←dlen+1,skp intrpt,j/movf2
; 6472 =0
; 6473 movf2: dlen←ar,signs disp,j/movf3 ;done?
; 6474 DLEN←AR,sr disp,j/clean ;break out for interrupt
; 6475 =011
; 6476 movf3: return2 ;yes, done
; 6477 ar←mq,j/movf1 ;no, do another
; 6478
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 135
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6479 .toc "eis -- string compare"
; 6480 ; here with ac3 (dest len) in ar
; 6481 ;slen is the complement of the shorter length
; 6482 ;dlen is <source len>-<dest len>
; 6483
; 6484 cmps: br/ar,fe←ar0-8,ar←ac0 ;get source len
; 6485 arx←ar,ar←ar-br, ;compute difference
; 6486 fe←fe or ar0-8,skp scad ne
; 6487 =0 dlen←ar,brx/arx,signs disp,j/cmps1 ;that's diff of len
; 6488 ar←e0,j/uuo ;bomb, flags illegal in cmps
; 6489 =011
; 6490 cmps1: ar←-br,arx/ad,sr←src,j/cmplp ;dst is shorter
; 6491 ar←-brx,arx/adx,sr←src ;src shorter
; 6492
; 6493 =000
; 6494 cmplp: slen←ar,brx/arx,
; 6495 ar+arx+mq←0.m,call.m,
; 6496 signs disp,j/gsrc ;go get source byte
; 6497 ar←dlen,skp ad0,j/cmpf1 ;length exhausted, go for fill
; 6498 br/ar,sr←src+dst,call,j/cmpdst ;hold src byte in br
; 6499 =110
; 6500 cmps2: arx←brx+1,ar/adx,sr←src,j/cmplp ;yes. go for next pair
; 6501 gen ar*br,ad/xor,skp cry0 ;no, stop here
; 6502 =0 ar←1,cms fetch,j/cmps3 ;src .gt. dst
; 6503 ar←1s,cms fetch ;src .lt. dst
; 6504 cmps3: ar←dlen,sr←0 ;restore unused lengths
; 6505 br/ar,ar←slen comp,skp ar0 ;which was longer?
; 6506 =0 ac3←ar,ar←ar+br,j/stOrac ;src, add diff to shorter
; 6507 ac0←ar,ar←ar-br,j/strac3 ;dst, add abs of diff
; 6508
; 6509 =00
; 6510 cmpf1: ar←ar-1,skp cry0,j/cmpdf ;fill dst?
; 6511 vma←e0+1,load ar,arx←ar, ;must fill src
; 6512 call,j/xferw
; 6513 =11 br/ar,ar←arx,sr←dst ;filler to br
; 6514 =0*0
; 6515 cmpsf1: dlen←ar,mq←ar,call,j/cmpdst ;compare next dst byte to fill
; 6516 ar←0s,cms fetch,j/cmpeq ;entirely equal
; 6517 ar←mq+1,skp cry0,j/cmpsf1 ;still eq. more?
; 6518 cmpf2: gen ar*br,ad/xor,skp cry0, ;not eq. skip or not as approp
; 6519 arx←0.m
; 6520 =0 ar←1,cms fetch,sr disp,j/cmpf3 ;src .gt. dst
; 6521 ar←1s,cms fetch,sr disp ;src .lt. dst
; 6522 =1110
; 6523 cmpf3: ar←mq comp,sr←0,j/cmpf4 ;filling src, put back dst len
; 6524 ar←0s,arx/mq,sr←0 ;quit in dest fill
; 6525 cmpf4: ac3←ar,ar←arx,j/stac ;put away updated lengths
; 6526
; 6527 =0
; 6528 cmpdf: ar←0s,cms fetch,j/cmpeq ;lengths eq, strings eq
; 6529 mq←ar,ar←2 ;ready to fill dst string
; 6530 =0* vma←ar+e0,load ar,call,j/xferw ;get dst filler
; 6531 br/ar,ar←mq,sr←src,j/cmpdf2 ;save filler, get length
; 6532 =00
; 6533 cmpdf1: ar←0s,cms fetch,j/cmpeq ;entirely equal
; 6534 cmpdf2: dlen←ar,mq←ar,call,j/getsrc ;get src to compare
; 6535 =11 gen ar*br,ad/xor,skp ad ne ;compare src to dst fill
; 6536 =0 ar←mq-1,skp cry0,j/cmpdf1 ;still equal, more?
; 6537 br/ar,ar←br,j/cmpf2 ;not eq. ready to test skp cond
; 6538
; 6539 cmpeq: ac3←ar,j/stOrac ;done, clear lengths
; 6540
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 136
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6541 .toc "eis -- decimal to binary conversion"
; 6542 ; here with ac0 (src len) in ar complemented
; 6543 ; in the loop, ac3 contains 10 (decimal), br'brx has accumulated binary
; 6544
; 6545 .IF/DECIMAL
; 6546
; 6547 DBIN: br/ar,fe←ar0-8 comp,ar0-8←#,#/-1 ;force out flags
; 6548 slen←ar,ar←0s,signs disp
; 6549 =101 ar0-8←fe,mq←0.S,arx←ac4,j/dbs1 ;build sflgs
; 6550 b disp ;offset or translate?
; 6551 =110 ar0-8←fe,j/dbst ;translate, let s flag set later
; 6552 ar0-8←fe or #,#/400 ;offset, set s flag
; 6553 dbst: sflgs←ar,ar←0s,arx←0s,j/dbs2 ;clear binary
; 6554
; 6555 dbs1: sflgs←ar,arx←arx*2 ;HERE WHEN SIG ALREADY ON
; 6556 ar←ac3 ;accumulated binary in ar
; 6557 dbs2: br←ar long,ar←1,clr arx
; 6558 AR←AR*10,b disp,sc←#,#/4 ;GET CONSTANT 10 FOR COMPARE
; 6559 =110 ac3←AR,ar←arx,arx←1s,j/dbs3 ;prepare to build mask
; 6560 ac3←ar ;offset
; 6561 ar←e1 ;get offset
; 6562 arl←1s.m,skp ar18 ;sign extend it
; 6563 =0 arl←0s ;oops, twas pos
; 6564 e1←ar,ar←1s ;now ready to build mask
; 6565 dbs3: ar←shift,sr←db
; 6566 msk←ar,ar←br long ;save mask, get initial input
; 6567
; 6568 =0*0
; 6569 DBINLP: br←ar long,AR←slen+1, ;binary back to br, count length
; 6570 call,J/SRCmod ;PICK UP A DIGIT
; 6571 SKP AR2,vma←pc+1,J/DBXIT ;(1) DONE, TEST M FLAG
; 6572 ARX←AR,ar+mq←0.m,gen ar-ac3, ;(4) NORMAL, ADD IN DIGIT
; 6573 skp cry0,j/dbin2 ;TEST FOR DIGIT >9
; 6574 ar←slen comp,j/dbabt ;(5) abort
; 6575
; 6576 ;HERE TO ADD IN A DIGIT
; 6577
; 6578 =0
; 6579 dbin2: br←ar long,ar←br long,j/dbin3 ;digit to br long, binary to ar long
; 6580 ar←slen comp,j/dbabt ;DIGIT >9, ABORT
; 6581
; 6582 dbin3: AR←AR*5 LONG ;already have binary *2
; 6583 AR←2(AR+BR) LONG,j/dbinlp ;ADD IN DIGIT, SHIFT LEFT
; 6584
; 6585 ;here on abort
; 6586
; 6587 dbabt: ar←ar*sflgs,ad/or ;combine flags with +len remaining
; 6588 ac0←ar,ar←br long, ;put back unused length
; 6589 i fetch,j/stor34 ;end with no skip
; 6590
; 6591 ;HERE AT END
; 6592
; 6593 =0
; 6594 DBXIT: ar←br long,FETCH+1,J/stor34 ;GO FOR NEXT INSTR, M FLAG=0
; 6595 AR←-bR LONG,FETCH+1 ;NEGATE
; 6596 STOR34: AC3←AR,AR←SIGN,SC←#,#/35. ;STORE HIGH PART
; 6597 AR←SHIFT,sr←0 ;GET LOW READY
; 6598 STAC4: AC4←AR,NXT INSTR
; 6599
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 137
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6600 .toc "eis -- BINARY TO DECIMAL CONVERSION"
; 6601 ; ac0,ac1 = binary integer input
; 6602 ; ac3 = flags, max length of decimal string
; 6603 ; ac4 = destination string pointer
; 6604 ; TEMPS ARE USED AS FOLLOWS:
; 6605 ; slen= # OF SIGNIFICANT DIGITS
; 6606 ; T1,2= 10.**(slen) THE LOWEST POWER OF TEN LARGER THAN BINARY
; 6607
; 6608 ;FPD IS SET IF THE INSTRUCTION WAS INTERRUPTED AFTER
; 6609 ; CONVERSION OF THE BINARY INTEGER TO FRACTION FORM.
; 6610 ; (and thus by implication, after storing fillers)
; 6611
; 6612 =011
; 6613 bdec: ARX←SHIFT,AR←AC0,skp ad0, ;BINARY integer NOW IN AR LONG
; 6614 sc←#,#/20,J/BD1 ;IS IT NEGATIVE?
; 6615 ARX←AR,AR←AC0,sr←bdd,J/BDd1 ;RESUME WITH FRACTION IN AR LONG
; 6616
; 6617 =0
; 6618 BD1: skp ar ne,ad long,J/BD2 ;TEST FOR ZERO LONG
; 6619 AR←-AR LONG,SC←#,#/30,j/bd3 ;MAKE POSITIVE, SET n&M FLAGs
; 6620 =00
; 6621 BD2: BR←AR long,AR←1 LONG, ;BINARY RIGHT-ALIGNED IN BR,
; 6622 sc←#,FE←#,#/20.,J/BD4 ;LOOK FOR LARGER POWER OF TEN
; 6623 BD3: BR←AR long,AR←AC3, ;SAVE POS BINARY, GET AC FLAGS
; 6624 CALL,J/SETFLG ; set flags as needed
; 6625 =11 AC3←AR,AR←BR*.5 LONG,J/BD2 ;SAVE NEW FLAGS, SHIFT BINARY RIGHT
; 6626
; 6627 ;here to find the smallest power of ten larger than the binary integer.
; 6628 ;binary is in br long, and positive unless it was 1b0. in this case the
; 6629 ;comparison will never find a larger power of ten, but the count in fe
; 6630 ;will run out, and we will correctly compute 22 digits required.
; 6631
; 6632 =010 ;ignore br sign
; 6633 BD4: AR←AR*10 LONG,FE←FE-1,j/bd6 ;THIS POWER IS TOO SMALL
; 6634 SC←FE-sc-1,t1←ar,ar←arx,J/BD7 ;THIS POWER IS BIG ENOUGH
; 6635 fe←fe-1 ;10.**21 IS TOO SMALL, use 22
; 6636 SC←fe-sc-1,t1←ar,ar←arx,J/BD7 ;10.**21 IS BIG ENOUGH
; 6637
; 6638 bd6: GEN AR-BR-1,disp/DIV,J/BD4 ;COMPARE BINARY TO 10**N
; 6639 =0*
; 6640 BD7: T2←AR,AR←1S,CALL,J/GETSC ;SAVE (10**n), get -# of digits
; 6641 slen←AR,arx←ar*4 comp ;-# OF SIGNIFICANT DIGITS-1
; 6642 ar←ac3 ;get flags, length
; 6643 fe←ar0-8,ar0-8←#,#/0 ;len in ar, flags in fe
; 6644 ar←arx*.25-ar-1,skp cry0 ;-# of fill chars -1
; 6645 =0 ar←ar+1,skp cry0, ;exact length?
; 6646 gen fe-#,#/400, ; or s flag 0?
; 6647 byte disp,j/bd8
; 6648 i fetch,j/nop ;overflow
; 6649 =110
; 6650 bd8: dlen←ar,ar←0s,j/bdf1 ;must fill
; 6651 ar←0s ;no fill required
; 6652 ar0-8←fe,j/bddv1 ;clear len, get flags
; 6653
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 138
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6654 ;here to fill destination string prior to storing first digit
; 6655
; 6656 bdf1: vma←e0+1,load ar,ar0-8←fe# ;get fill char
; 6657 T0←AR ;SAVE FLAGS OFF TO SIDE
; 6658 =0* AR←MEM,SR←BDF,call,j/movf1 ;fill as required
; 6659 ar←t0 ;get flags back
; 6660
; 6661 ;SETUP FOR long DIVISION of binary by 10**n
; 6662 ;br still has binary right aligned (ie, low sign squeezed out by
; 6663 ; shifting high word right). br is positive unless input integer was
; 6664 ; 1b0, in which case br is -1b1. t1,t2 has larger power of ten, unless
; 6665 ; binary exceeds 10**21, in which case t1,T2 contains 10**21. since
; 6666 ; binary cannot be as large as 2 * 10**21, the first divide step
; 6667 ; is guaranteed to generate a 1 in this case only, and to reduce the
; 6668 ; binary to less than 10**21.
; 6669
; 6670 bddv1: ac3←ar ;flags, 0 to length
; 6671 arx←t2,clr ar ;fill done. get 10**n
; 6672 =110 AR←T1,mq←ar, ;D'SOR SET IN AR, mq clr
; 6673 skp br0,call,j/bddv2 ; chk d'end sign
; 6674 arx←ar,ar←ac0,set fpd,b disp ;done, get full quo in ar long
; 6675 =0 AR←AR+1 LONG,sr←bdt,j/bdd1 ;PREVENT 9'S DISEASE
; 6676 br←ar long,ar←e1 ;offset mode, must sign ext e1
; 6677 arl←0.m,skp ar18
; 6678 =0
; 6679 bde2: e1←ar,ar←br+1 long,j/bdd1 ;update e1
; 6680 arl←1s,j/bde2 ;make full e1 neg
; 6681
; 6682 =000
; 6683 bddv2: AR←BR LONG,br←ar long, ;begin long division
; 6684 sc←#,FE←#,#/34., ;step counts for both parts
; 6685 call,j/ddvsub
; 6686 AR←-BR,arx/adx,br←ar long, ;here if binary was 1b0
; 6687 sc←#,FE←#,#/34., ; it's now 1b1
; 6688 call,j/ddvsub
; 6689 =011 AC0←AR,AR←MQ,arl/ad,mq←0.m, ;HALF DONE WITH DIVISION
; 6690 FE←sc,J/ddvlp ;resume with add step
; 6691 =101 AC0←AR,AR←MQ,arl/ad,mq←0.m,
; 6692 FE←sc,J/ddvsub ;resume with subtract step
; 6693 =
; 6694 ;here with quotient of <input integer>/<10**n> in ar long, with the
; 6695 ; binary point between bits 0 and 1 of ar. thus, bit 0 will be set
; 6696 ; iff the input integer was greater than or equal to 10**21.
; 6697 ; since this is a truncated fraction, it is not greater than the true
; 6698 ; quotient, and the error is less than 2**-71. we add 2**-71, to
; 6699 ; guarantee that our fraction is greater than the true quotient,
; 6700 ; with an error no greater than 2**-71. we will then multiply this
; 6701 ; fraction by 10 n times, removing the integer part at each step
; 6702 ; to extract the n digits. since n is at most 21, this is a multipli-
; 6703 ; cation by at most 10**21, so the error is at most (2**-71)*(10**21).
; 6704 ; since this is less than one, the error does not intrude into the
; 6705 ; output digit string.
; 6706
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 139
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6707 ;here is loop to extract digits from fraction in ac0,ac1
; 6708
; 6709 BDD1: BR←AR long,vma←pc+1, ;HERE TO CONTINUE AFTER INTERRUPT
; 6710 AR←slen+1,SKP CRY0 ;ANY MORE DIGITS?
; 6711 =0 slen←AR,mq←ar,sc←1, ;yes, save length remaining
; 6712 AR←BR LONG, ; and get fraction
; 6713 signs disp,j/bdd2 ;check for 1st digit of 10**21
; 6714 AR←0S,ARX←0S,CLR FPD, ;NO, DONE. CLEAR AC0 & AC1
; 6715 FETCH+1,J/dstac
; 6716 =101 ;look at br0 only
; 6717 BDD2: AR←AR*1.25 LONG,SC←#,#/4 ;NEXT DIGIT TO AR0-3
; 6718 ARX←AR,ar←0s,skp intrpt ;ready to shift in digit
; 6719 =0 AR←SHIFT,b disp,J/BDd3 ;STORE IT
; 6720 take intrpt
; 6721
; 6722 ;here TO STORE DIGIT IN AR FOR BDEC
; 6723 =0
; 6724 BDd3: VMA←AR+e1,LOAD AR,j/bdd4 ;translate: GET TABLE ENTRY
; 6725 AR←AR+e1,J/BDd7 ;OFFSET AR AND STORE IT
; 6726
; 6727 bdd4: skp mq eq -1,arx←0.m ;last digit?
; 6728 =0
; 6729 bdd5: AR←MEM,J/BDd6 ;NO, STORE rh (pos digit)
; 6730 arx←ac3,j/bdd5 ;yes, look at m flag
; 6731 bdd6: skp arx2,arx←ar swap,arl←0.m
; 6732 =100
; 6733 bdd7: mq←ar,sr←bdd,call,j/putdst
; 6734 ar←arx,arl←0.m,j/bdd7 ;m set on last digit, use lh
; 6735
; 6736 AR←br long,sr←bdt, ;get fraction back
; 6737 signs disp ;check br0 for integer part
; 6738 =
; 6739 =101 AR←AR*10 LONG ;DISCARD PREVIOUS DIGIT
; 6740 P←P AND #,#/37,J/BDD1 ;CLEAR AR0, GO FOR NEXT
; 6741
; 6742 .ENDIF/DECIMAL
; 6743
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 140
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6744 .toc "eis -- srcmod subroutine to get modified source byte"
; 6745
; 6746 ;slen = COMPLEMENT OF LENGTH
; 6747 ;msk = MASK
; 6748 ;e1 = EFFECTIVE ADDRESS OF operation word (SIGN EXTENDED IF OFFSET)
; 6749
; 6750 ;CALL WITH: AR←slen+1,CALL,J/SRCmod
; 6751 ;RETURNS: 1 LENGTH EXHAUSTED: flags in ar
; 6752 ; 2 (edit only) NO SIGNIFICANCE: FLAGS IN fe
; 6753 ; 3 (edit only) SIGNIFICANCE START: BYTE IN AR, FLAGS IN fe
; 6754 ; 4 NORMAL: BYTE IN AR
; 6755 ; 5 ABORT: OUT OF RANGE OR TRANSLATE FAILURE
; 6756 ; br, brx, preserved.
; 6757 ; b=0 if translate, =1 if offset mode, =2 if edit, =4 if cvtdbt
; 6758
; 6759
; 6760 =00
; 6761 SRCmod: slen←AR,ar+arx+mq←0.m,CALL.m, ;put length away, GET BYTE
; 6762 signs disp,j/gsrc ;check for length exhaustion
; 6763 ar←sflgs,SR←0,RETURN1 ;LEN =0, DONE
; 6764 e1,time/2t,b disp ;BYTE IN AR
; 6765 =110 AR←aR*.5 LONG,e1, ;LOW BIT TO ARX0, BYTE/2 TO AR LOW
; 6766 skp intrpt,j/xlate ;translate that
; 6767 AR←AR+e1,time/3t,skp intrpt ;OFFSET, ADD OFFSET, TEST MASK
; 6768 =0 test ar.msk,skp cry0,return4 ;return 4 if ok, 5 out of range
; 6769 sr disp,j/clean ;clean up & serve interrupt
; 6770
; 6771 ;here on translate-mode operations, with the byte/2 in ar, and
; 6772 ; the least significant bit of the byte in arx0. perform the
; 6773 ; table lookup, and operate as controlled by the high three bits
; 6774 ; of the table entry.
; 6775
; 6776 =0
; 6777 XLATE: VMA←AR+e1,LOAD AR,j/trnar ;GET FUNCTION FROM TABLE
; 6778 sr disp,j/clean
; 6779
; 6780 trnar: AR←MEM,SKP ARX0,sc←#,#/18. ;WHICH HALF?
; 6781 =0 ARX←AR,ar0-3 disp, ;LH, MOVE TO ARX LEFT
; 6782 AR←sflgs,J/TRNfnc
; 6783 ARX←AR SWAP,ar18-21 disp, ;RH, MOVE THAT TO ARX LEFT
; 6784 ar←sflgs,j/trnfnc
; 6785
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 141
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6786 ;here on translate operation to perform functions required by
; 6787 ; the 3 high order bits of the translate function halfword.
; 6788 ; we have dispatched on those three bits, with the function
; 6789 ; halfword in lh(arx), and the flags from ac0 in ar.
; 6790
; 6791 =0001
; 6792 TRNfnc: sflgs←AR,fe←p,AR←SHIFT, ;SAVE flags, GET FCN IN AR RIGHT
; 6793 SIGNS DISP,j/trnret ;was s flag already set?
; 6794 TRNABT: sflgs←ar,fe←p and #,#/3,return5 ;abort
; 6795 p←p AND #,#/67,J/TRNfnc ;CLEAR M FLAG
; 6796 p←p OR #,#/10,J/TRNfnc ;SET M FLAG
; 6797 TRNSIG: p←p or #,#/20,J/TRNfnc ;SET N FLAG
; 6798 p←p or #,#/20,J/TRNABT ;SET N AND ABORT
; 6799 p←p AND #,#/67,J/TRNSIG ;CLEAR M, THEN SET N
; 6800 p←p or #,#/30,J/TRNfnc ;SET N AND M
; 6801
; 6802 =011
; 6803 trnret: ARx←AR*msk,AD/AND, ;S FLAG IS 0, GET BYTE IN AR
; 6804 SKP AR18,b disp,j/trnss ;is this edit?
; 6805 AR←AR*msk,AD/AND,RETURN4 ;RETURN NORMAL SINCE S FLAG SET
; 6806
; 6807 =100
; 6808 trnss: ar←dlen,b disp,j/trnns1 ;no sig on move or d2b
; 6809 ar←sflgs,sc←#,#/40,j/trnss1 ;sig start, set flag
; 6810 vma←e0+1,load ar,return2 ;edit no sig. get fill
; 6811 ar←dstp,return3 ;edit sig start
; 6812
; 6813 =0**
; 6814 trnns1: ar←ar-1,j/trnns2 ;compensate for ignoring src
; 6815 ar←slen+1,j/srcmod ;d2b has no dest length
; 6816 trnns2: dlen←ar,signs disp
; 6817 =011 ar←slen,j/srcmod ;slen = dst len, don't change it
; 6818 ar←slen+1,j/srcmod ;slen reflects src length
; 6819 ; count down for byte skipped
; 6820 trnss1: p←p or sc
; 6821 sflgs←ar,ar←arx,return4 ;return with sig set
; 6822
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 142
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6823 ;subroutine to get byte from source string
; 6824 ; call gsrc with signs disp to check for length exhaustion
; 6825
; 6826 =011
; 6827 gsrc: ar←dlen,return1 ;len ran out
; 6828 getsrc: ar←srcp,arx←srcp,fe←#,#/36.
; 6829 =0
; 6830 gsrc1: P←P-S,SC/SCAD,call.m, ;update pointer
; 6831 skp scad0,j/gsrc2 ;TEST FOR WORD OVERFLOW
; 6832 sc←fe+sc,j/ldb1 ;get byte & return to caller
; 6833 =0
; 6834 gsrc2: srcp←AR,ARX←AR,fe←s, ;STORE POINTER,
; 6835 ea mod disp,j/bfetch ; go evaluate the address
; 6836 AR←AR+1,P←FE-S,sc/scad,J/gsrc2
; 6837
; 6838 ;subr to store in dest string
; 6839
; 6840 =00
; 6841 putdst: ar←dstp,arx←dstp,
; 6842 fe←#,#/36.,call,j/idst
; 6843 ar←mq,sc←#-sc,#/36.,skp scad0,
; 6844 call,j/dpb1
; 6845 =11 mem←ar,return6
; 6846
; 6847
; 6848 =00
; 6849 cmpdst: ar←dstp,arx←dstp,call,
; 6850 fe←#,#/36.,j/idst
; 6851 sc←fe+sc,call,j/ldb1 ;get dest byte
; 6852 =11 gen ar*br,ad/xor,skp ad ne, ;equal?
; 6853 return4
; 6854
; 6855 ;SUBROUTINES TO UPDATE string POINTERS
; 6856
; 6857 idst: P←P-S,SC/SCAD,SKP SCAD0 ;TEST FOR WORD OVERFLOW
; 6858 =0
; 6859 idst1: dstp←AR,ARX←AR,fe←s, ;STORE POINTER,
; 6860 ea mod disp,j/bfetch ; go get the word addressed
; 6861 AR←AR+1,P←FE-S,sc/scad,J/Idst1
; 6862
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 143
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6863 .toc "eis -- edit function"
; 6864 ; HERE WITH e0, e1 setup, 0 in ar, -1 in arx, and 15 in sc
; 6865
; 6866 EDIT: ar←shift,arx←ac0 ;mask to ar, flags etc to arx
; 6867 =1*0 msk←ar,ar←arx (ad), ;save mask, get flags in ar
; 6868 vma←arx,load ar, ;get first pattern operator
; 6869 call,j/trnabt ;get pbn into fe
; 6870 EDITLP: SC←AR0-8 AND #,#/30, ;PBN*8 IN SC
; 6871 sflgs←AR,ARX←AR ;UPDATED AC NOW IN AC AND ARX
; 6872 AR←MEM,SC←FE+SC,SR←0 ;PATTERN IN AR, PBN*9 IN SC
; 6873 AR←SHIFT,SH DISP,SC←#,#/5 ;PATTERN BYTE TO AR0-8,
; 6874 =0001 ; DISP ON HIGH 3 BITS
; 6875 EDDISP: GEN #+AR0-8,#/-5,
; 6876 SKP SCAD0,J/EDOPR ;(0XX) OPERATE GROUP
; 6877 AR←AR*8,SKP ARX0,J/EDMSG ;(1XX) MESSAGE
; 6878 J/EDNop ;(2XX) UNDEFINED
; 6879 J/EDNop ;(3XX) UNDEFINED
; 6880 J/EDNop ;(4XX) UNDEFINED
; 6881 MQ←ARX,ARX←ARX*4,
; 6882 SC←FE+1,J/EDSKPT ;(5XX) SKIP IF MINUS
; 6883 MQ←ARX,ARX←ARX*2,
; 6884 SC←FE+1,J/EDSKPT ;(6XX) SKIP IF NON-ZERO
; 6885 AR←AR*8,SC←FE+1,J/EDSKP ;(7XX) SKIP ALWAYS
; 6886
; 6887 ;HERE TO DECODE OPERATE GROUP
; 6888 =0
; 6889 EDOPR: J/EDNop ;OPR .GE. 005 UNDEFINED
; 6890 SH DISP,J/OPDISP ;(00X), DISP ON LOW 3 BITS
; 6891 =000
; 6892 OPDISP: AR←ARX,sc←#,#/-4, ;(000) STOP
; 6893 vma←pc+1,j/edstop
; 6894 SR←ED(S),J/EDSEL ;(001) SELECT
; 6895 AR←dstp,SKP ARX0,J/EDSSIG ;(002) START SIGNIFICANCE
; 6896 AR←ARX,J/EDFLDS ;(003) FIELD SEPARATOR
; 6897 VMA←AC3,LOAD ARX, ;(004) EXCH MARK AND DEST
; 6898 MQ←ARX,J/EDEXMD
; 6899 =
; 6900 ;HERE TO TERMINATE EDIT INSTRUCTION
; 6901 ; sc has -4, fe has current pbn, vma has pc if abort, pc+1 if done
; 6902
; 6903 EDSTOP: FE←FE-#,#/3,SKP SCAD0
; 6904 =0 AR←AR+1,INH CRY18,
; 6905 p←p and sc,J/sfet1
; 6906 P←P+1
; 6907 sfet1: fetch+1,j/stOrac
; 6908
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 144
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6909 ;HERE FOR SKPM & SKPN, WITH APPROPRIATE BIT IN ARX0
; 6910
; 6911 EDSKPT: AR←AR*8,SKP ARX0,ARX/MQ ;SKIP DISTANCE TO AR0-5
; 6912
; 6913 ;HERE AT END OF OPERATION TO UPDATE PBN
; 6914 =0
; 6915 EDNop: fe←FE-#,#/3,SKP SCAD0, ;END OF PATTERN WORD?
; 6916 AR←ARX,J/EDNXT1
; 6917 EDSKP: FE←P+SC,J/EDNop ;ADD SKIP DISTANCE
; 6918 =0
; 6919 EDNXT1: AR←AR+1,INH CRY18, ;BUMP TO NEXT WORD
; 6920 FE←FE-#,#/4, ;REDUCE PBN
; 6921 skp scad0,j/ednxt1
; 6922 fe←fe+#,#/4 ;restore pbn pos, incr it
; 6923 SC←P AND #,#/74,VMA←AR,LOAD AR ;FLAGS & EDIT BIT TO SC, GET PATTERN
; 6924 P←FE OR SC,J/EDITLP ;SET NEW PBN, GO DO NEXT PATTERN
; 6925
; 6926 ;HERE TO EXCHANGE MARK AND DESTINATION POINTERS
; 6927
; 6928 EDEXMD: AR←DSTP ;READY TO STORE DEST PTR
; 6929 FIN XFER,STORE ;WAIT FOR MARK, STORE DSTP
; 6930 MEM←AR,AR←ARX ;READY TO UPDATE DSTP
; 6931 dstp←AR,ARx/MQ,J/EDNop ;DONE, GET NEXT OPR
; 6932
; 6933 ;HERE FOR FIELD SEPARATOR (CLEAR FLAGS IN AC 0-2)
; 6934
; 6935 EDFLDS: P←P AND #,#/7,J/EDsend ;EASY ENOUGH
; 6936
; 6937 ;HERE FOR SIG START
; 6938
; 6939 =0
; 6940 EDSSIG: VMA←AC3,STORE,j/edss1 ;SAVE MARK, GET FLOAT
; 6941 fe←FE-#,#/3,SKP SCAD0, ;S FLAG ALREADY SET, NOP
; 6942 ar←arx,j/ednxt1
; 6943 =10
; 6944 edss1: MEM←AR,AR←2,call,j/edflt ;go store float char
; 6945 EDSEND: FE←P AND #,#/3,arx←ar,j/ednop ;ready to do next op
; 6946
; 6947 ;HERE FOR MESSAGE CHAR
; 6948
; 6949 =00
; 6950 EDMSG: vma←e0+1,load ar,j/edsfil ;no sig, put filler
; 6951 sc←p,ar←0s,call,j/getsc ;get message select in ar
; 6952 =11 vma←ar+e0+1,load ar,j/edmput ;store message
; 6953
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 145
; DSK: UCODE; EIS 2 20:56:31 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6954 ;HERE FOR SELECT
; 6955
; 6956 =0*
; 6957 edsel: ar←srcp,arx←srcp,fe←#,#/36.,
; 6958 call,j/gsrc1 ;go get src byte
; 6959 ar←ar*.5 long,e1 ;got it, divide by 2
; 6960 =000 vma←ar+e1,load ar,call,j/trnar ;go translate by halfwords
; 6961 =010
; 6962 edsfil: ar←mem,J/EDSF1 ;(2) NO SIGNIFICANCE, STORE FILL
; 6963 VMA←AC3,STORE,brx/arx,J/EDSFLT ;(3) SIG START, DO FLOAT CHAR
; 6964 EDSPUT: MQ←AR,SR←ED(+D), ;(4) NORMAL, STORE AT DST
; 6965 CALL,J/putdst
; 6966 vma/pc,sc←#,#/-4,j/edstop ;(5) abort
; 6967 edfput: AR←sflgs,J/EDSEND ;(6) BUMP PBN AND GO TO NEXT
; 6968 edmput: ar←mem,j/edsput ;fill or msg in ar, store it
; 6969
; 6970
; 6971 ;HERE WHEN TIME TO STORE FILL CHAR
; 6972
; 6973 =00
; 6974 EDSF1: skp ar ne,j/edfput ;is there one?
; 6975
; 6976 ;HERE WHEN SELECT STARTS SIGNIFICANCE
; 6977
; 6978 =10
; 6979 EDSFLT: MEM←AR,AR←2,call,j/edflt ;get float from e0+2
; 6980 sflgs←AR,AR←BRX,J/EDSPUT ;SET S FLAG, GET BYTE, STORE IT
; 6981
; 6982 ;HERE IS SUBROUTINE TO STORE FLOAT CHAR
; 6983
; 6984 EDFLT: vma←ar+e0,load ar
; 6985 ar←mem
; 6986 skp ar ne
; 6987 =100 ar←sflgs,sc←#,#/40,j/setflg ;no float chr, set s flag
; 6988 MQ←AR,SR←ED(+D), ;STORE FLOAT CHR IN DST
; 6989 CALL,J/putdst
; 6990 =111 AR←sflgs,SC←#,#/40 ;SET S FLAG AND RETURN
; 6991 SETFLG: P←P OR SC,RETURN3 ;NO FLOAT CHR, SET S FLAG
; 6992 .ENDIF/EIS
; 6993
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 146
; DSK: UCODE; BLT 3 20:56:44 10-JAN-76 PAGE FAIL/INTERRUPT CLEANUP FOR SPECIAL INSTRUCTIONS
; 6994
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 147
; DSK: UCODE; BLT 3 20:56:44 10-JAN-76 BLT
; 6995 .TOC "BLT"
; 6996 ; ENTER WITH 0,E IN AR
; 6997
; 6998 ;IN THE LOOP, ARX CONTAINS THE CURRENT DESTINATION ADDRESS,
; 6999 ; BRX CONTAINS THE TERMINAL ADDRESS, AND BR CONTAINS THE DIFFERENCE
; 7000 ; BETWEEN THE SOURCE AND DESTINATION ADDRESSES.
; 7001
; 7002 ;UNLIKE EARLIER -10 PROCESSORS, THIS CODE CHECKS FOR THE CASE IN WHICH
; 7003 ; THE DESTINATION ADDRESS IN RH(AC) IS GREATER THAN E, AND RATHER THAN
; 7004 ; STOPPING AFTER ONE WORD, COPIES DOWNWARD (EFFECTIVELY DECREMENTING
; 7005 ; AC BY 1,,1 ON EACH STEP, RATHER THAN INCREMENTING).
; 7006
; 7007 ;THIS CODE ALSO PROVIDES A GUARANTEED RESULT IN AC ON COMPLETION OF
; 7008 ; THE TRANSFER (EXCEPT IN THE CASE AC IS PART OF BUT NOT THE LAST WORD
; 7009 ; OF THE DESTINATION BLOCK). WHEN AC IS NOT PART OF THE DESTINATION
; 7010 ; BLOCK, IT IS LEFT CONTAINING THE ADDRESSES OF THE FIRST WORD FOLLOWING
; 7011 ; THE SOURCE BLOCK (IN THE LH), AND THE FIRST WORD FOLLOWING THE DEST-
; 7012 ; INATION BLOCK (IN THE RH). IF AC IS THE LAST WORD OF THE DESTINATION
; 7013 ; BLOCK, IT WILL BE A COPY OF THE LAST WORD OF THE SOURCE BLOCK.
; 7014
; 7015 ;IN ADDITION, A SPECIAL-CASE CHECK IS MADE FOR THE CASE IN WHICH EACH
; 7016 ; WORD STORED IS USED AS THE SOURCE OF THE NEXT TRANSFER. IN THIS CASE,
; 7017 ; ONLY ONE READ NEED BE PERFORMED, AND THAT DATA MAY BE STORED FOR EACH
; 7018 ; TRANSFER. THUS THE COMMON USE OF BLT TO CLEAR CORE IS SPEEDED UP.
; 7019
; 7020 ;BLT: ARX←AR,MQ←AR,ARR←AC0,ARL←ARL ;END TO ARX & MQ, DEST TO AR
; 7021 BLT1: BR/AR,ARX←AR,BRX/ARX, ;DST TO BR & ARX, END TO BRX
U 1731, 1732,3200,2460,0000,1020,0010,0000 ; 7022 AR←AC0 ;SRC TO ARL
U 1732, 1734,4001,4000,0000,3001,0010,0020 ; 7023 ARR←ARL,ARL←0.M ;SRC TO ARR
U 1734, 1740,5102,2004,0000,0020,0010,0000 ; 7024 AR←AR-BR ;SRC-DST TO ARR
; 7025 .IF/BACK.BLT
; 7026 BR/AR,SKP ARX LE BRX ;SRC-DST TO BR. UP OR DOWN?
; 7027 =00 AR←MQ-1,CALL,J/BLTAC ;DOWN, READY WITH E-1
; 7028 AR←MQ+1,CALL,J/BLTAC ;UP, PUT E+1 IN AR FOR AC
; 7029 DOWN: VMA←ARX+BR,LOAD AR,J/DN1 ;DOWN, START THE LOOP
; 7030 .IFNOT/BACK.BLT
U 1740, 1735,4023,2040,0000,0020,0021,0000 ; 7031 =0* BR/AR,AR←MQ+1,CALL,J/BLTAC ;SRC-DST TO BR, E+1 IN AR
; 7032 .ENDIF/BACK.BLT
U 1742, 1744,4662,0000,0000,0040,5410,0000 ; 7033 SKP BR EQ -1,J/UP ;IS THIS CORE CLEARING CASE?
; 7034
; 7035
; 7036 ;HERE TO SETUP FINAL AC
; 7037
U 1735, 1736,0602,2000,0000,3020,0610,0004 ; 7038 BLTAC: ARL←ARR,AR←AR+BR ;FINAL DEST TO LH, SRC TO RH
U 1736, 1741,0001,4000,0000,3000,1610,0607 ; 7039 AR←AR SWAP,SR←BLT(SRC) ;REARRANGE
U 1741, 0002,0001,0000,0000,0000,1003,0000 ; 7040 AC0←AR,RETURN2
; 7041
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 148
; DSK: UCODE; BLT 3 20:56:44 10-JAN-76 BLT
; 7042 ;HERE FOR UPWARD BLT (AC RH .LE. E)
; 7043 =0
U 1744, 1761,0612,0000,0000,0332,0010,0000 ; 7044 UP: VMA←ARX+BR,LOAD AR,J/UP1 ;NOT CLEAR CORE
U 1745, 1760,0612,0004,0000,0332,7410,0000 ; 7045 SKP P!S XCT,VMA←ARX+BR,LOAD AR ;DO NOT OPTIMIZE UNDER EXT ADDR
; 7046
; 7047 ;USE EVEN LOC'NS OF THIS BLOCK OF 4 IN SPECIAL "CLEAR CORE" CASE
; 7048
U 1760, 1743,3200,0003,0000,0022,1621,0107 ; 7049 =00 AR←MEM,CALL,SR←BLT(DST),J/UP2 ;GET THE WORD TO STORE IN ALL
U 1761, 1743,3200,0003,0000,0022,1621,0107 ; 7050 UP1: AR←MEM,CALL,SR←BLT(DST),J/UP2 ;GET SOURCE WORD
U 1762, 1743,0001,0000,0000,0000,1621,0107 ; 7051 CALL,SR←BLT(DST),J/UP2 ;HERE TO STORE SAME SRC AGAIN
U 1763, 1761,0612,0000,0000,0332,0010,0000 ; 7052 VMA←ARX+BR,LOAD AR,J/UP1 ;HERE TO GET NEXT SRC
; 7053
U 1743, 1750,3713,0000,0000,0316,7010,0000 ; 7054 UP2: VMA←ARX,STORE,SKP INTRPT ;OK, GET DST ADDRESS
; 7055 =0
U 1750, 1754,5102,0000,0000,0040,5310,0000 ; 7056 UP3: SKP ARX LT BRX,J/UP4 ;CHECK FOR LAST TRANSFER
U 1751, 1724,0001,0003,0000,0002,0010,0000 ; 7057 MEM←AR,J/BLTPF ;FINISH THIS, GO SERVE INTRPT
; 7058 =0
U 1754, 0071,4001,0003,0000,0206,0010,0400 ; 7059 UP4: FIN STORE,I FETCH,J/NOP ;THAT'S ALL, FOLKS
; 7060 MEM←AR,ARX←ARX+1, ;STORE DST,
U 1755, 0002,4001,0603,0000,0022,1603,0607 ; 7061 SR←BLT(SRC),RETURN2 ; CONTINUE
; 7062
; 7063 ;BLT CONTINUED - HERE FOR DOWNWARD BLT (AC RH .GT. E)
; 7064 .IF/BACK.BLT
; 7065
; 7066 DN1: AR←MEM,SR←BLT(DST) ;WAIT FOR SOURCE DATA
; 7067 VMA←ARX,STORE,SKP INTRPT ;OK, START DST REF
; 7068 =0 SKP ARX LE BRX,J/DN3 ;CHECK FOR END CONDITION
; 7069 MEM←AR,J/BLTPF ;FINISH STORE, TAKE INTRPT
; 7070 =0
; 7071 DN3: MEM←AR,ARX←ARX-1, ;NOT END, LOOP
; 7072 SR←BLT(SRC),J/DOWN
; 7073 FIN STORE,I FETCH,J/NOP ;END
; 7074 .ENDIF/BACK.BLT
; 7075
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 149
; DSK: UCODE; BLT 3 20:56:44 10-JAN-76 STORING OF JPC
; 7076 .TOC "STORING OF JPC"
; 7077
; 7078 .IF/JPC
; 7079
; 7080 AOBJPC: ;HERE TO STORE JPC FOR AOBJN/AOBJP
; 7081 SOJJPC: ;HERE FOR SOJ SERIES
; 7082 AOJJPC: AC0←AR,B DISP ;HERE FOR AOJ SERIES
; 7083 =*1*000 ;HERE FOR JUMP SERIES
; 7084 JMPJPC: GEN AR-1,SKP AR0,SIGNS DISP,J/JPCP ;LE
; 7085 SKP AR NE,J/JPCP ;E
; 7086 SKP AR0,J/JPCP ;L
; 7087 J/FINI ;-
; 7088 GEN AR-1,SKP AR0,SIGNS DISP,J/NJPCP ;G
; 7089 SKP AR NE,J/JPCP ;N
; 7090 SKP AR0,J/NJPCP ;GE
; 7091 AR←PC,SC←#,#/32.,SKP USER,J/JPCEX ;A
; 7092
; 7093 =*1*110
; 7094 JPCP: NXT INSTR
; 7095 JPCIFY:
; 7096 .IFNOT/JPC.RING
; 7097 AR←PC,SKP USER
; 7098 =*1***0
; 7099 JPCEX: XJPC←AR,NXT INSTR AFTER JPC
; 7100 JPCUSR: JPC←AR,NXT INSTR AFTER JPC
; 7101 .IF/JPC.RING
; 7102 SKP USER,SC←#,#/32.
; 7103 ;COME HERE WITH: SKP USER,SC←#,#/32.
; 7104 =*1***0
; 7105 JPCEX: AR←XJPC+1,J/JPCEX1
; 7106 JPCUSR: AR←JPC+1
; 7107 JPC←AR,SH DISP,AR←PC
; 7108 =*10000
; 7109 JPC0←AR,NXT INSTR AFTER JPC
; 7110 JPC1←AR,NXT INSTR AFTER JPC
; 7111 JPC2←AR,NXT INSTR AFTER JPC
; 7112 JPC3←AR,NXT INSTR AFTER JPC
; 7113 JPC4←AR,NXT INSTR AFTER JPC
; 7114 JPC5←AR,NXT INSTR AFTER JPC
; 7115 JPC6←AR,NXT INSTR AFTER JPC
; 7116 JPC7←AR,NXT INSTR AFTER JPC
; 7117 JPC10←AR,NXT INSTR AFTER JPC
; 7118 JPC11←AR,NXT INSTR AFTER JPC
; 7119 JPC12←AR,NXT INSTR AFTER JPC
; 7120 JPC13←AR,NXT INSTR AFTER JPC
; 7121 JPC14←AR,NXT INSTR AFTER JPC
; 7122 JPC15←AR,NXT INSTR AFTER JPC
; 7123 JPC16←AR,NXT INSTR AFTER JPC
; 7124 JPC17←AR,NXT INSTR AFTER JPC
; 7125
; 7126 JPCEX1: XJPC←AR,SH DISP,AR←PC
; 7127 =*10000
; 7128 XJPC0←AR,NXT INSTR AFTER JPC
; 7129 XJPC1←AR,NXT INSTR AFTER JPC
; 7130 XJPC2←AR,NXT INSTR AFTER JPC
; 7131 XJPC3←AR,NXT INSTR AFTER JPC
; 7132 XJPC4←AR,NXT INSTR AFTER JPC
; 7133 XJPC5←AR,NXT INSTR AFTER JPC
; 7134 XJPC6←AR,NXT INSTR AFTER JPC
; 7135 XJPC7←AR,NXT INSTR AFTER JPC
; 7136 XJPC10←AR,NXT INSTR AFTER JPC
; 7137 XJPC11←AR,NXT INSTR AFTER JPC
; 7138 XJPC12←AR,NXT INSTR AFTER JPC
; 7139 XJPC13←AR,NXT INSTR AFTER JPC
; 7140 XJPC14←AR,NXT INSTR AFTER JPC
; 7141 XJPC15←AR,NXT INSTR AFTER JPC
; 7142 XJPC16←AR,NXT INSTR AFTER JPC
; 7143 XJPC17←AR,NXT INSTR AFTER JPC
; 7144 .ENDIF/JPC.RING
; 7145
; 7146 ;THIS IS LIKE STORAC, EXCEPT IT STORES THE JPC ALSO.
; 7147 ;COME HERE WITH SKP USER TO DETERMINE WHICH JPC TO CLOBBER.
; 7148
; 7149 =*1***0
; 7150 JPCSTO: AC0←AR,AR←PC,SC←#,#/32.,J/JPCEX
; 7151 AC0←AR,AR←PC,SC←#,#/32.,J/JPCUSR
; 7152 .ENDIF/JPC
; 7153
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 150
; DSK: UCODE; BLT 3 20:56:44 10-JAN-76 STORING OF JPC
; 7154
; Number of Micro Words used:
; D Words= 512
; U Words= 1024
END
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 151
; CROSS REFERENCE LISTING
(D) A 1079 #
IMMED 1080 # 2530 2925 2926 2927 2928 2929 2930 2941 2942 2943 2944
2945 2946 2947 2948 2959 2960 2961 2962 2963 2964 2965 2966
2977 2978 2979 2980 2981 2982 2983 2984 3033 3034 3035 3036
3037 3038 3039 3040 3109 3110 3111 3112 3113 3114 3115 3116
3128 3129 3130 3131 3132 3133 3134 3135 3147 3148 3149 3150
3151 3152 3153 3154 3168 3169 3183 3184 3391 3393 3394 3465
3466 3467 3468 3504 3531 3532 3533 3535 3536 3537 3538 3540
3541 3542 3543 3545 3546 3547 3548 3553 3554 3555 3556 3558
3559 3560 3561 3563 3564 3565 3566 3568 3569 3570 3571 3575
3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587
3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599
3600 3601 3602 3621 3622 3624 3625 3702 3776 3821 3822 3823
3824 3825 3826 3827 3831 4059 4091 4152 4157 4428 4438 4504
4533 4693 4713 5281 5283 5284 5285 5286 5294 5295 5296 5297
5303 5305 5306 5307 5308 5312 5313 5314 5315 5316 5317 5318
5319 5328 5329 5330 5331 5337 5338 5339 5340 5341 5342 5350
5352 5353 5361 5363 5364
IMMED-PF 1081 # 2545 2550 2555 2560 2585 2590 2595 2600 2605 2610 2615
2620 2627 2632 2637 2642 2647 2652 2657 2662 2766 2767 2777
2787 2797 2802 2812 2819 2829 2839 2849 2858 2859 2870 2880
2890 2900 2909 2910 2923 2924 2932 2933 4034 4046
RD-P-WR 1086 # 2529 2547 2552 2557 2562 2586 2587 2591 2592 2597 2602
2607 2612 2617 2622 2628 2629 2633 2634 2639 2644 2649 2654
2659 2664 2778 2779 2788 2789 2798 2799 2803 2804 2820 2821
2830 2831 2840 2841 2850 2851 2871 2872 2881 2882 2891 2892
2901 2902 3076 3077 3078 3079 3080 3081 3082 3083 3091 3092
3093 3094 3095 3096 3097 3098 4035 4036 4047 4048 4657
RD-WR 1085 # 4060 4061 4092 4093 4153 4154 4158 4159 4424 4425 4429
4430 4434 4435 4439 4440 4500 4501 4505 4506 4529 4530 4534
4535 5064 5066 5301 5346 5348 5357 5359
READ 1083 # 2727 2728 2934 2935 2936 2937 2938 2939 2950 2951 2952
2953 2954 2955 2956 2957 2968 2969 2970 2971 2972 2973 2974
2975 2986 2987 2988 2989 2990 2991 2992 2993 3042 3043 3044
3045 3046 3047 3048 3049 3060 3061 3062 3063 3064 3065 3066
3067 3305 3392 3607 3608 3614 3700 3775 4058 4090 4151 4156
4269 4270 4271 4272 4422 4423 4427 4432 4433 4437 4498 4499
4503 4527 4528 4532 4656 4694 4709 4716 4717 4901 4902 4903
4904 5065 5067 5282 5292 5293 5304 5326 5327 5349 5360
READ-PF 1084 # 2544 2549 2554 2559 2584 2589 2594 2599 2604 2609 2614
2619 2626 2631 2636 2641 2646 2651 2656 2661 2776 2786 2796
2801 2811 2818 2828 2838 2848 2869 2879 2889 2899 4033 4045
WR-TST 1082 # 2546 2551 2556 2561 2596 2601 2606 2611 2616 2621 2638
2643 2648 2653 2658 2663 2746 2747 2768 2769 2813 2814 2860
2861 2911 2912 3615 5279 5280 5290 5291 5302 5324 5325 5335
5336 5347 5351 5358 5362
(U) AD 541 #
A 581 # 2396 2419 2423 2760 3071 3258 3268 3371 3410 3443 3678
3766 3793 3795 3803 3805 3811 3876 3876 3891 3892 3893 3893
3896 3898 3899 3917 3919 3922 3924 3931 3931 3932 3932 3934
3935 3935 3947 4121 4123 4133 4141 4282 4306 4312 4327 4367
4382 4408 4409 4410 4411 4561 4561 4573 4634 4757 4763 4767
4795 4798 4811 4813 4831 4911 4940 4949 4987 4990 5002 5004
5023 5025 5030 5034 5043 5137 5139 5181 5206 5226 5237 5267
5393 5409 5410 5413 5415 5417 5428 5448 5454 5473 5513 5522
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 152
; CROSS REFERENCE LISTING
5587 5589 5596 5620 5638 5671 5675 5686 5697 5698 5699 5704
5747 5784 5785 5786 5798 5799 5801 5805 5810 5838 5849 5855
5872 5874 6035 6037 6038 6132 6254 6269 6274 6279 6302 7054
A*2 550 # 4868 5027 5050
A+1 546 # 3087 3230 3406 3473 3478 3494 3673 3854 3855 4741 5028
5038 5052 5118 5123 5392 5645 5819 5842 5881 6266 7031 7060
A+B 553 # 2421 2425 3162 3716 3730 3731 3743 3794 3796 3809 3810
3813 4040 4124 4135 4137 4212 4217 4242 4245 4246 4249 4259
4289 4305 4336 4404 4407 4492 4604 4607 4649 4669 4768 4856
4865 4952 4979 5138 5140 5202 5207 5225 5231 5261 5263 5266
5649 5670 5723 5831 5843 6055 6300 7038 7044 7045 7052
A+B+1 554 # 3140 3174 3403 3407 3950 5793 7033
A+XCRY 547 # 4006 4082 6093
A-1 564 # 3102 3437 3456 3850 3857 5229 5820 5830
A-B 558 # 2578 2738 2754 3852 4053 4126 4128 4139 4173 4209 4211
4214 4221 4226 4231 4243 4244 4247 4248 4262 4292 4335 4357
4388 4396 4405 4406 4469 4603 4609 4628 4645 4647 4685 4689
4794 4883 4885 4916 5041 5057 5222 5262 5264 6053 7024 7056
A-B-1 557 #
AND 580 # 2783 4100 4314
ANDC 570 # 2845
ANDCA 574 # 2808 3025 3718 4804 5056
ANDCB 579 # 2793 3271 3720 4870 6062 6064 6089
B 576 # 2367 2371 2413 2428 2429 2451 2457 2463 2469 2475 2534
2537 2673 2675 2678 2681 2684 2688 2736 2737 2752 2753 3121
3236 3248 3257 3265 3363 3365 3367 3370 3377 3378 3380 3381
3383 3384 3413 3433 3436 3440 3441 3458 3459 3460 3487 3489
3634 3650 3679 3684 3726 3742 3783 3786 3790 3799 3799 3840
3843 3867 3867 3887 3888 3889 3908 3911 3912 3915 3949 3984
3986 3994 4002 4004 4008 4014 4017 4026 4052 4075 4098 4164
4168 4175 4180 4264 4279 4283 4311 4324 4325 4328 4338 4363
4369 4372 4377 4378 4381 4390 4475 4477 4518 4521 4548 4582
4584 4590 4592 4618 4620 4664 4677 4703 4758 4800 4802 4809
4817 4819 4822 4855 4864 4914 4918 4926 4933 4942 4942 4951
4964 4964 4980 4999 5000 5007 5011 5035 5054 5084 5102 5120
5121 5142 5151 5174 5174 5197 5235 5238 5377 5401 5435 5439
5466 5485 5525 5590 5607 5608 5657 5693 5745 5783 5787 5818
5825 5827 5841 5847 5848 5852 5882 5898 5899 5904 5907 5915
5916 6036 6045 6046 6048 6049 6054 6060 6061 6088 6090 6096
6099 6106 6109 6112 6115 6120 6121 6123 6194 6233 7022 7049
7050
CRY A EQ -1 583 #
CRY A GE B 586 # 4560 5194
CRY A#0 585 # 3293 4792 5020 5223
CRY A.B#0 584 # 3022 3270 5383 5385
EQV 572 # 2855
OR 577 # 2835 3027 5521 5632 6095
ORC 567 # 2906
ORCA 568 # 2896
ORCB 573 # 2876 4350 4354
ORCB+1 556 # 4345 4349 4353 4627 4889 5382
SETCA 566 # 2886 3014 3017 5021
SETCB 571 # 2865 4261 4358 4687 5039 5039
XCRY-1 561 # 2486 2516 3642 3989 3990 4001 4086 4187 4190 4316 4387
4395 4483 4484 4666 4668 4724 4760 4935 4938
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 153
; CROSS REFERENCE LISTING
XOR 575 # 2825 3026 3053 4298 4921 5864
0S 578 # 2349 2705 2719 2740 2757 2773 3266 3287 3336 3712 3741
3866 3936 4012 4117 4117 4146 4295 4295 4304 4466 4468 4516
4574 4631 4635 4661 4662 4765 4845 4881 4895 4976 4976 5046
5046 5081 5154 5155 5198 5198 5234 5259 5593 5612 5615 5618
5622 5627 5630 5647 5659 5676 5679 5687 5695 5708 5725 5732
5734 5736 5738 5797 5804 5837 5859 5865 5871 5926
1S 569 # 2361 2435 2699 2706 2713 2720 2916 4340 4848 4851
(U) ADA 590 #
AR 591 # 2783 2793 2808 2825 2835 2845 2855 2865 2876 2886 2896
2906 3022 3025 3026 3027 3053 3071 3087 3102 3258 3270 3271
3293 3371 3410 3437 3456 3716 3718 3720 3730 3731 3743 3766
3793 3794 3795 3796 3809 3810 3811 3813 3854 3876 3891 3893
3898 3919 3931 3932 3935 4006 4040 4053 4082 4100 4121 4123
4124 4126 4128 4133 4135 4137 4139 4141 4209 4212 4217 4226
4242 4243 4244 4245 4246 4247 4248 4249 4259 4262 4289 4292
4298 4305 4314 4335 4336 4404 4405 4406 4407 4492 4573 4603
4604 4607 4609 4647 4649 4669 4768 4795 4798 4831 4856 4865
4868 4870 4921 4952 4979 4990 5023 5025 5027 5028 5030 5038
5043 5050 5056 5118 5123 5202 5207 5223 5225 5231 5261 5262
5263 5264 5266 5383 5385 5392 5393 5409 5410 5413 5415 5417
5428 5448 5454 5473 5513 5521 5522 5587 5589 5620 5638 5649
5670 5675 5686 5697 5698 5699 5704 5723 5784 5785 5786 5805
5810 5819 5820 5830 5831 5842 5843 5864 5874 5881 6062 6064
6093 6269 7024 7038
ARX 592 # 2419 2421 2423 2425 3443 3803 3805 4561 4792 5137 5138
5139 5140 5237 5849 6037 6053 6055 6089 6095 6300 6302 7044
7045 7052 7054
MQ 593 # 3162 3896 3922 3934 3947 4306 4312 4327 4345 4349 4350
4353 4354 4382 4408 4409 4410 4411 4634 4767 4813 4987 5002
5004 5020 5021 5181 5206 5267 5596 5671 5798 5799 5801 5838
5855 5872 6274 7031
PC 594 # 2396 3268 3406 3473 3478 3494 3673 3678 6035 6038 6132
6254 6279
(U) ADA EN 595 #
EN 596 # 2760 3850 3852 3855 3857 3876 3892 3893 3899 3917 3924
3931 3932 3935 4282 4367 4561 4757 4763 4811 4911 4940 4949
5034 5226 5229 5632 5747 7056 7060
0S 597 # 2578 2738 2754 3140 3174 3230 3403 3407 3950 4173 4211
4214 4221 4231 4357 4388 4391 4396 4469 4560 4627 4628 4645
4685 4689 4741 4794 4804 4883 4885 4889 4916 5041 5052 5057
5194 5222 5382 5645 5793 6266 7033
(U) ADB 599 #
AR*4 603 # 3378 3381 3384 3726 3730 3731 3852 4211 4214 4396 4469
4521 4627 4645 4685 4794 4800 4802 4804 4809 4822 4883 4885
4889 4916 5057 5590 5783 5787 5825 5841 5898 5899 5907
BR 602 # 2578 2738 2754 3248 3257 3265 3270 3271 3413 3460 3634
3650 3679 3742 3743 3786 3790 3809 3994 4004 4008 4014 4017
4026 4053 4100 4124 4128 4135 4139 4173 4175 4209 4212 4217
4221 4226 4231 4242 4243 4244 4245 4246 4247 4248 4249 4259
4262 4289 4292 4298 4305 4314 4324 4328 4335 4336 4369 4388
4404 4405 4406 4407 4560 4603 4604 4607 4609 4618 4620 4628
4669 4758 4768 4855 4856 4864 4865 4870 4942 4942 4952 4964
4964 4979 5035 5039 5039 5041 5054 5056 5084 5120 5121 5194
5222 5261 5262 5263 5264 5266 5382 5383 5385 5401 5435 5439
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 154
; CROSS REFERENCE LISTING
5466 5485 5521 5525 5607 5608 5632 5649 5657 5670 5693 5723
5831 5843 5847 5848 5852 5864 5882 5915 6036 6054 6055 6099
6300 7024 7033 7038 7044 7045 7052 7056
BR*2 601 # 3949 3950 4002 4126 4137 4477 4492 4647 4649 4677 4817
4819 5916
FM 600 # 2367 2371 2413 2421 2425 2428 2429 2451 2457 2463 2469
2475 2534 2537 2673 2675 2678 2681 2684 2688 2736 2737 2752
2753 2783 2793 2808 2825 2835 2845 2855 2865 2876 2896 2906
3022 3025 3026 3027 3053 3121 3140 3162 3174 3236 3363 3365
3367 3370 3377 3380 3383 3403 3407 3433 3436 3440 3441 3458
3459 3487 3489 3684 3716 3718 3720 3783 3794 3796 3799 3799
3810 3813 3840 3843 3867 3867 3887 3888 3889 3908 3911 3912
3915 3984 3986 4040 4052 4075 4098 4164 4168 4180 4261 4264
4279 4283 4311 4325 4338 4345 4349 4350 4353 4354 4357 4358
4363 4372 4377 4378 4381 4390 4475 4518 4548 4582 4584 4590
4592 4664 4687 4689 4703 4914 4918 4921 4926 4933 4951 4980
4999 5000 5007 5011 5102 5138 5140 5142 5151 5174 5174 5197
5202 5207 5225 5231 5235 5238 5377 5745 5793 5818 5827 5904
6045 6046 6048 6049 6053 6060 6061 6062 6064 6088 6089 6090
6095 6096 6106 6109 6112 6115 6120 6121 6123 6194 6233 7022
7049 7050
(U) AR 605 #
AD 609 # 2349 2361 2396 2419 2421 2435 2451 2486 2516 2534 2537
2578 2675 2678 2684 2705 2706 2719 2720 2738 2740 2754 2757
2773 2783 2793 2808 2825 2835 2845 2855 2865 2876 2886 2896
2906 2916 3025 3026 3027 3087 3102 3121 3140 3162 3174 3230
3236 3268 3271 3287 3336 3363 3365 3367 3406 3433 3436 3437
3473 3478 3487 3489 3494 3673 3716 3741 3742 3783 3786 3790
3794 3803 3805 3809 3810 3840 3843 3866 3867 3889 3896 3911
3912 3915 3922 3934 3947 3984 3986 3989 3990 4001 4002 4004
4017 4040 4052 4053 4075 4086 4098 4117 4168 4180 4187 4190
4221 4231 4246 4247 4248 4249 4259 4262 4283 4289 4292 4295
4305 4306 4311 4312 4316 4324 4327 4328 4340 4345 4349 4350
4353 4354 4357 4358 4363 4369 4372 4381 4382 4387 4388 4395
4408 4409 4410 4411 4475 4477 4483 4484 4518 4548 4582 4584
4590 4592 4618 4620 4628 4631 4634 4635 4664 4666 4668 4669
4703 4724 4758 4760 4765 4767 4768 4800 4817 4845 4855 4856
4864 4865 4881 4895 4918 4933 4935 4938 4942 4951 4952 4964
4976 4979 4980 4987 5002 5004 5007 5011 5021 5028 5035 5038
5039 5041 5046 5081 5084 5102 5120 5121 5123 5154 5155 5181
5197 5198 5202 5206 5207 5225 5231 5234 5235 5238 5259 5263
5264 5266 5267 5392 5401 5435 5439 5466 5485 5525 5593 5607
5612 5615 5622 5627 5645 5647 5649 5657 5659 5670 5676 5679
5687 5693 5695 5708 5723 5725 5732 5734 5736 5738 5783 5787
5797 5804 5819 5820 5825 5837 5838 5841 5855 5859 5865 5871
5904 5915 5926 6037 6038 6054 6062 6064 6094 6099 6120 6121
6233 6254 6266 6274 6279 6300 6302 7022 7024 7031 7038
AD*.25 614 # 3378 3381 3384 4123 4124 4126 4128 4135 4137 4139 4141
4211 4214 4396 4469 4492 4561 4573 4645 4677 4685 4794 4795
4813 4831 4868 4883 4885 4916 5023 5025 5027 5043 5050 5057
5898 5899 5907
AD*2 612 # 3854 3887 4121 4133 4164 4209 4212 4217 4226 4242 4243
4244 4245 4279 4338 4404 4405 4406 4407 4603 4604 4607 4609
4798 4802 4805 4809 4819 4822 4914 4999 5000 5030 5237 5261
5262 5704 5872
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 155
; CROSS REFERENCE LISTING
ADX 613 # 3857 3876 3892 3893 3899 3917 3924 3931 3932 3935 4014
4173 4175 4367 4763 4811 4940 4949 5034 5226 5229 5521 5847
5848 5852 5882
AR 606 # 2673 2685 2698 2699 3715 5375 5471 5511 5618 5684
ARMM 607 # 2523 3730 3734 3737 3740 4660 4681 4682 4869 5051 5464
5467 5595 5599 5800 5858 5886 6080 6088 6123
CACHE 608 # 5507
EBUS 610 # 2352 2354 2388 2395 3338 3677 5413 5461 5476 5477 5516
5518 5520 5606 5614 5624 5629 5662 5663 5664 5665 5678 5680
5689 5703 5711 5712 5713 5714 5909 6136
SH 611 # 2517 2568 2681 2688 2689 2712 2713 2758 3017 3020 3204
3257 3259 3266 3372 3414 3424 3426 3490 3635 3652 3679 3690
3728 3743 3847 3849 3874 3879 3900 3925 3936 3937 4008 4012
4025 4026 4085 4322 4323 4325 4375 4376 4390 4392 4464 4489
4515 4544 4559 4792 4887 4945 4947 4948 5031 5033 5047 5054
5162 5184 5186 5204 5447 5478 5587 5589 5608 5633 5697 5698
5726 5857 5860 5900 6034 6036 6045 6046 6048 6049 6073 6074
6075 6106 6109 6112 6268 7023 7039
(U) AR CTL 931 #
AR0-8 LOAD 932 # 4681 4682 4869 5051
AR9-17 LOAD 933 #
ARL LOAD 935 #
ARR LOAD 934 # 5464
(U) AR0-8 906 #
LOAD 907 # 3851 4465 4468 4476 4516 4519 4539 4545 4626 4630 4644
4662 4686 4688 4704 4888 4908 4963 4984 4988 5082 5089 5098
5123 5196 5201 5239 5244 5610 5890 5922 6035 6138
(U) ARL 921 #
AD 925 # 2673 2681 2688 2699 2713 3679 3840 3922 4168 4634 4666
4703 4942 5002 5004 5207 5608
AD*.25 930 #
AD*2 928 # 4164 4218 4227 4279
ADX 929 # 5632
ARL 922 # 2537 2675 2689 2719 2720 5478 5521 5587
ARMM 923 # 3851 4465 4468 4476 4516 4519 4539 4545 4626 4630 4644
4662 4686 4688 4704 4888 4908 4963 4984 4988 5082 5089 5098
5123 5196 5201 5239 5244 5610 5890 5922 6035 6138
CACHE 924 #
EBUS 926 #
SH 927 # 2678 2684 2685 2705 2706 3494 3715 3847 4489 4792 4945
5375 5466 5471 5511 5618 5681 5684 6069 6302 7038
(U) ARMM 682 #
EXP←SIGN 684 # 4465 4468 4476 4516 4519 4539 4545 4644 4662 4704 4908
4963 4984
SCAD EXP 685 # 4626 4630 4681 4682 4686 4688 4869 4888 4988 5051 5244
5800 5858 5886 5922 6035 6080
SCAD POS 686 # 3730 3734 3737 3740 3851 5082 5089 5098 5123 5196 5201
5239 5610 5890 6088 6123 6138
# 683 # 2523 4660 5467 5595 5599
(U) ARX 615 #
AD 618 # 2367 2371 2752 2753 3231 3266 3403 3407 3456 3642 3712
3717 3766 3867 3876 3888 3891 3893 3898 3908 3919 3931 3932
3935 3936 3994 4012 4117 4295 4325 4377 4378 4390 4466 4468
4516 4574 4661 4662 4668 4687 4689 4848 4851 4976 5046 5052
5198 5587 5618 5630 5843 6035 6036 6045 6046 6048 6049 6053
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 156
; CROSS REFERENCE LISTING
6088 6106 6109 6112 6194 6267
ADX 622 # 2738 2754 3257 3265 3634 3650 3730 3731 3743 3850 3855
3949 3950 4002 4008 4026 4246 4247 4248 4249 4259 4262 4289
4292 4305 4369 4388 4800 4817 4855 4856 4870 4942 4952 4964
4979 5028 5039 5041 5054 5056 5222 5670 5723 7060
ADX*.25 623 # 3378 3381 3384 4123 4124 4126 4128 4135 4137 4139 4141
4211 4214 4396 4492 4561 4573 4645 4741 4794 4795 4831 4885
4916 5023 5025 5027 5043 5050 5057 5898 5899 5907
ADX*2 621 # 2760 3726 3852 4121 4133 4210 4213 4217 4226 4242 4243
4244 4245 4282 4404 4405 4406 4407 4603 4604 4607 4609 4757
4798 4802 4805 4809 4819 4822 4911 5030 5261 5262 5747
CACHE 617 #
MQ 619 # 3918 3924 4017 4260 4263 4323 4366 4392 4483 4489 4941
4945 4948 4951 5007 5033 5035 5223
SH 620 # 2534 2536 3352 3487 3690 3741 3742 3763 3783 3896 3922
3934 3984 3986 3989 3990 4004 4020 4173 4175 4180 4187 4190
4283 4324 4328 4355 4363 4367 4372 4484 4486 4487 4584 4666
4723 4760 4767 4813 4853 4933 4935 4938 5011 5092 5101 5119
5154 5155 5181 5184 5245 5259 5267 5477 5517 5519 5598 5600
5615 5627 5631 5679 5695 5708 5732 5734 5736 5738 5804 5838
5840 5859 5872 5891 6037 6254 7021
(D) B 1088 # 2727 2728 3821 3822 3823 3825 4269 4270 4271 4272 4901
4902 4903 4904 5280 5282 5283 5284 5291 5293 5294 5295 5302
5304 5305 5306 5324 5325 5326 5327 5328 5329 5335 5336 5339
5340 5347 5349 5350 5351 5358 5360 5361 5362
AC 1092 # 2544 2545 2549 2550 2554 2555 2559 2560 2584 2585 2589
2590 2594 2595 2599 2600 2604 2605 2609 2610 2614 2615 2619
2620 2626 2627 2631 2632 2636 2637 2641 2642 2646 2647 2651
2652 2656 2657 2661 2662 2766 2767 2776 2777 2786 2787 2796
2797 2801 2802 2818 2819 2828 2829 2838 2839 2848 2849 2858
2859 2869 2870 2879 2880 2889 2890 2899 2900 2909 2910 4033
4034 4045 4046 4058 4059
BOTH 1094 # 2769 2779 2789 2799 2804 2821 2831 2841 2851 2861 2872
2882 2892 2902 2912 4036 4048 4061
DBL AC 1089 # 4090 4091 4151 4152 4156 4157
DBL BOTH 1090 # 4093 4154 4159
MEM 1093 # 2546 2551 2556 2561 2586 2591 2596 2601 2606 2611 2616
2621 2628 2633 2638 2643 2648 2653 2658 2663 2768 2778 2788
2798 2803 2813 2814 2820 2830 2840 2850 2860 2871 2881 2891
2901 2911 4035 4047 4060 4092 4153 4158 5290
SELF 1091 # 2547 2552 2557 2562 2587 2592 2597 2602 2607 2612 2617
2622 2629 2634 2639 2644 2649 2654 2659 2664
SJC- 1096 # 3033 3042 3060 3076 3091 3109 3128 3147
SJCA 1100 # 3037 3046 3064 3080 3095 3113 3132 3151
SJCE 1098 # 3035 3044 3062 3078 3093 3111 3130 3149
SJCG 1103 # 3040 3049 3067 3083 3098 3116 3135 3154
SJCGE 1101 # 3038 3047 3065 3081 3096 3114 3133 3152 3168
SJCL 1097 # 3034 3043 3061 3077 3092 3110 3129 3148 3169
SJCLE 1099 # 3036 3045 3063 3079 3094 3112 3131 3150
SJCN 1102 # 3039 3048 3066 3082 3097 3115 3134 3153
(D) B0 1104 # 4422 4423 4424 4425 4428 4432 4433 4434 4435 4438
CRY0(0) 1105 # 2925 2926 2927 2928 2934 2935 2936 2937 2943 2944 2945
2946 2952 2953 2954 2955 2961 2962 2963 2964 2970 2971 2972
2973 2979 2980 2981 2982 2988 2989 2990 2991 5285 5296 5301
5307 5330 5341 5346 5348 5352 5357 5359 5363
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 157
; CROSS REFERENCE LISTING
CRY0(1) 1106 # 2929 2930 2938 2939 2941 2942 2947 2948 2950 2951 2956
2957 2959 2960 2965 2966 2968 2969 2974 2975 2977 2978 2983
2984 2986 2987 2992 2993 3184 5286 5297 5308 5331 5342 5353
5364
(D) B1-2 1107 # 2925 2926 2927 2928 2929 2930 2934 2935 2936 2937 2938
2939 2941 2942 2943 2944 2945 2946 2947 2948 2950 2951 2952
2953 2954 2955 2956 2957 2959 2960 2961 2962 2963 2964 2965
2966 2968 2969 2970 2971 2972 2973 2974 2975 2977 2978 2979
2980 2981 2982 2983 2984 2986 2987 2988 2989 2990 2991 2992
2993 3184 5285 5286 5296 5297 5301 5307 5308 5330 5331 5341
5342 5346 5348 5352 5353 5357 5359 5363 5364
AC 1108 # 4422 4427 4428 4432 4437 4438 4498 4503 4504 4527 4528
4532 4533 4693 4717
BOTH 1110 # 4425 4430 4435 4440 4501 4506 4530 4535
MEM 1109 # 4424 4429 4434 4439 4500 4505 4529 4534
(U) BR 624 #
AR 625 # 2323 2451 2457 2463 2469 2475 2523 2571 2574 2761 3204
3216 3230 3268 3406 3433 3489 3741 3763 3783 3786 3989 4001
4002 4052 4117 4163 4167 4260 4263 4279 4322 4475 4477 4547
4582 4664 4674 4757 4758 4809 4822 4845 4848 4851 4855 4856
4914 4918 4922 4964 5021 5033 5080 5082 5084 5089 5098 5204
5226 5229 5375 5393 5445 5455 5471 5474 5511 5515 5585 5612
5618 5622 5647 5674 5676 5684 5687 5741 5743 5858 5915 6036
6054 6057 6112 6121 7021 7031
(U) BRX 626 #
ARX 627 # 2360 2761 3230 3741 3787 3791 3946 3994 4001 4004 4017
4117 4180 4187 4190 4221 4222 4230 4231 4260 4263 4283 4475
4547 4582 4664 4758 4809 4822 4845 4848 4851 4855 4856 4914
4918 4922 4964 5021 5052 5196 5232 5519 5630 5741 5743 5839
5879 7021
(U) CALL 904 #
CALL 905 # 2737 2753 4165 4168 4218 4227 4281 4304 4520 4667 4910
5003 5005 5082 5090 5099 5196 5201 5471 5512 5588 5619 5669
5685 5722 5824 5890
(U) CLR 908 #
AR 913 # 3919
AR+ARX 914 #
AR+ARX+MQ 917 # 4829 5193
AR+MQ 915 #
ARL 911 # 2698 2712 3490 3787 3790 3810 5690 6036 7023
ARL+ARX 918 # 4340 5227 5230 5668 5721
ARL+ARX+MQ 919 #
ARR 912 # 3851 5632 6069
ARR+MQ 920 #
ARX 910 # 3840 4793
ARX+MQ 916 # 3846 4163 4167 4539 4545 4633 4702 5208
MQ 909 # 2737 2753 3908 3922 4281 4486 4487 4490 4908 4943 4946
5003 5005 5201
(U) COND 760 #
AD FLAGS 774 # 2578 2738 2754 3087 3102 3140 3162 4040 4053 4289 4292
AR CLR 766 # 4757 4848 4851
ARL IND 768 # 2537 2673 2675 2678 2681 2684 2685 2688 2689 2698 2699
2705 2706 2712 2713 2719 2720 3715 3810 5123 5375 5478 5521
5608 6036 6069 6069 6302 7038
ARX CLR 767 # 3911 4014 4076 4097 4381 4758 4763 4812 4864 4865 4950
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 158
; CROSS REFERENCE LISTING
5034 5235 5645 5855 6060 6061
DIAG FUNC 779 # 2388 2395 3258 3338 3371 3677 3678 5454 5461 5473 5476
5477 5513 5516 5518 5520 5589 5606 5614 5620 5624 5629 5662
5663 5664 5665 5675 5678 5680 5686 5689 5697 5698 5699 5703
5711 5712 5713 5714 5909 6136 6269
EBOX STATE 780 #
EBUS CTL 781 # 2351 2365 2393 2394 2398 2401 3257 3259 3339 3372 3681
5379 5402 5411 5414 5417 5426 5428 5440 5522 5526 5631 5643
5670 5706 5715 5827 5837 5871 5898 5899 5912 6268 6270
FE SHRT 773 #
FM WRITE 771 # 2486 2491 2516 2518 2740 3379 3382 3385 3443 3845 3881
3900 3925 3936 4310 4316 4323 4327 4330 4347 4351 4355 4359
4375 4376 4380 4387 4392 4395 4633 4673 4881 4940 4948 5002
5004 5054 5080 5094 5198 5204 5206 5221 5234 5802 5900 5901
5914 5915 5916 6040 6042 6134 6256 6275 6303 7040
LD AR0-8 763 # 2523 3730 3734 3737 3740 4660 5467 5595 5599 5800 5858
5886 6080 6088 6123
LD AR18-35 765 #
LD AR9-17 764 #
LD VMA HELD 794 #
LOAD IR 775 # 2367 2371 2413 3766 3786 3790
MBOX CTL 782 # 5586 5650 5652 5926 5927 5929 6093 6099 6293
PCF←# 772 # 2402 3420 3425 3440 3458 4010 4086 4103 4171 4318 4552
4588 4678 4756 5015 5134 5394 5395
REG CTL 769 # 4121 4133 4681 4681 4682 4682 4869 4869 5030 5043 5051
5051 5051 5464
SEL VMA 778 # 6035 6038 6132 6254
SPEC INSTR 776 # 2347 2349 2409 3287 3296 3297 3763 3784 5716 5725 5779
6278
SR←# 777 # 2503 2504 2517 3027 3459 3460 3684 4336 4346 4388 4457
4459 4510 4511 4540 4573 4590 4592 4608 4610 4794 4879 4883
4893 4895 5000 5022 5046 5056 6300 7039 7049 7050 7051 7061
VMA DEC 792 # 5724
VMA INC 793 # 2734 2757 3352 3357 3363 3364 3366 3376 3377 3380 3481
3492 3673 3675 4280 4909 5507 5726 5745 5866 6280 6287
VMA←# 787 # 3635 3652 3653 5705 5733 5735 5737 5739 6231
VMA←#+AR32-35 790 #
VMA←#+MODE 789 # 3682
VMA←#+PI*2 791 # 5781 5782 5788 5792
VMA←#+TRAP 788 # 2389
(U) DIAG FUNC 1043 # 2388 2395
CONI APR(L) 1062 # 5477
CONI APR(R) 1058 # 5476
CONI MTR 1068 # 5689
CONI PAG 1071 # 5624
CONI PI(L) 1057 # 5520
CONI PI(PAR) 1070 # 5518
CONI PI(R) 1056 # 5516
CONO APR 1049 # 5473
CONO MTR 1047 # 5686
CONO PAG 1051 # 5620
CONO PI 1050 # 3258 5513 6269
CONO TIM 1048 # 5675
DATAI APR 1064 # 5461
DATAI PAG(L) 1060 # 3677 5606
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 159
; CROSS REFERENCE LISTING
DATAO APR 1052 # 3371 5454
DATAO PAG 1053 # 5589
LD AC BLKS 1054 #
LD PA LEFT 1045 # 5697 5699
LD PA RIGHT 1046 # 5698
LD PCS+CWSX 1055 # 3678
RD CACHE CNT 1065 # 5665 5714
RD EBOX CNT 1063 # 5664 5713
RD EBUS REG 1072 # 3338 5614 5629 5909 6136
RD INTRVL 1066 # 5678
RD MTR REQ 1069 # 5703
RD PERF CNT 1061 # 5663 5712
RD PERIOD 1067 # 5680
RD TIME 1059 # 5662 5711
.5 USEC 1044 #
(U) DISP 799 #
BYTE 812 # 2348 4626 4629 4888 5089 5098 5372 5651
DIAG 800 #
DIV 809 # 4209 4212 4217 4226 4242 4243 4244 4245 4246 4247 4248
4249 4335 4336 4404 4405 4406 4407 4603 4604 4606 4609 5261
5262 5263 5264
DRAM A RD 802 # 2419 2421 3793 3794 3803 3805 3809
DRAM B 811 # 2568 2577 2673 2675 2678 2681 2685 2689 2698 2699 2705
2706 2712 2713 2719 2720 2734 2773 2783 2793 2808 2825 2835
2845 2855 2865 2876 2886 2896 2906 2916 3015 3018 3022 3339
3878 3995 4015 4019 4040 4053 4085 4102 4174 4176 4284 4457
4459 4464 4879 4883 4911 5379 5393 5522 5633 5660 5668
DRAM J 801 # 2452 2458 2464 2470 2476
EA MOD 814 # 2360 2435 3204 3260 3788 3802 3806 5135 5143
EA TYPE 815 # 3799
MUL 808 # 4118 4123 4125 4127 4129 4136 4138 4140 4141 4146 4304
NICOND 806 # 2491 2510 4330
NORM 813 # 4493 4521 4561 4573 4794 4796 4810 4815 4823 4832 4857
4865 4953 4990 5008 5028 5036 5040 5041
PG FAIL 804 # 5901
RETURN 803 # 2761 3690 3947 4121 4133 4219 4221 4222 4228 4230 4231
4261 4264 4382 4408 4409 4410 4411 4648 4650 4926 4967 4969
5117 5120 5121 5124 5137 5138 5162 5163 5177 5186 5268 5418
5428 5436 5440 5616 5726 5747 5860 5865 6115 7040 7061
SH0-3 807 # 2389 3946 5708 5721 5779 5797 5824 5840 6041 6043 6070
SIGNS 810 # 4182 4347 4351 4355 5916 6038
SR 805 # 4369 4393 4591 4593 4797 4799 4801 4803 4818 4820 4821
4830 4849 4853 4869 5051 5144 5914 6303
(U) EBUS CTL 1027 # 3681 5426
DATAI 1041 # 5837 5871
DATAO 1040 # 5827
EBUS DEMAND 1031 # 5411
EBUS NODEMAND 1032 # 5414
GRAB EEBUS 1028 # 2351 2365 5440 5898 5899
IO INIT 1037 # 5428
REL EBUS 1030 # 3259 5417 5522 6270
REL EEBUS 1042 # 2393 2394 2398 3339 3372 5379 5631 5643 5670 5706 5715
5912
REQ EBUS 1029 # 3257 5402 5526 6268
(U) EXP TST 936 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 160
; CROSS REFERENCE LISTING
AR←EXP 937 # 4681 4682 4869 5051
(U) FE 673 #
SCAD 674 # 3641 3712 3744 3846 3849 3911 3915 3918 3936 3949 3950
4076 4098 4118 4121 4123 4125 4127 4129 4133 4136 4138 4140
4141 4146 4181 4188 4191 4209 4212 4217 4226 4242 4243 4244
4245 4246 4247 4248 4249 4260 4263 4296 4299 4304 4313 4373
4404 4405 4406 4407 4408 4409 4410 4411 4465 4468 4477 4486
4487 4490 4518 4521 4539 4548 4559 4562 4585 4603 4604 4660
4662 4678 4679 4704 4723 4740 4795 4798 4800 4802 4810 4814
4817 4819 4823 4829 4831 4868 4908 4919 4965 4980 5002 5004
5012 5024 5026 5027 5030 5031 5047 5050 5118 5134 5180 5182
5222 5223 5259 5261 5262 5263 5264 5268 5586 5647 5649 5781
5782 5788 5797 5801 5855 5870 5879 6040 6042 6105 6110
(U) FETCH 980 #
COMP 983 # 3053
JFCL 987 # 3270
JUMP 986 # 3121 3140 3162 3174
SKIP 984 # 3071
TEST 985 # 3014 3017 3022 5382 5383 5385
UNCOND 981 # 2463 2486 2487 2488 2494 2496 2740 3248 3299 3413 3423
3443 3473 3481 3492 3728 3845 3857 3881 3900 3925 3937 4000
4025 4219 4228 4290 4293 4327 4342 4364 4395 4396 4670 4764
4765 4887 5055 5085 5094 5105 5203 5237 5388 5829 7059
(U) FLAG CTL 960 #
DISMISS 964 # 3216 3221 5389 5828
HALT 966 # 3210
JFCL 962 # 3268
JFCL+LD 963 # 3272
PORTAL 968 #
RSTR FLAGS 961 # 3235
SET FLAGS 967 # 2323 2401
(U) FM# 850 # 3363 3365 3367 3379 3382 3385 5080 5197 5198 5202 5204
5206 5225 5231 5235 5793 5802 5900 5901 5904 5914 5915 5916
6040 6042 6045 6046 6048 6049 6053 6062 6064 6088 6089 6090
6095 6096 6106 6109 6112 6115 6120 6121 6123 6134 6194 6233
6256 6275
(U) FMADR 634 #
AC0 635 # 2451 2486 2491 2516 2534 2537 2673 2675 2678 2681 2684
2688 2740 2783 2793 2808 2825 2835 2845 2855 2865 2876 2896
2906 3022 3025 3026 3027 3053 3121 3140 3162 3174 3403 3407
3433 3436 3443 3487 3489 3716 3718 3720 3783 3840 3843 3867
3867 3881 3889 3900 3912 3915 3925 3936 3984 3986 4040 4052
4075 4098 4168 4180 4261 4264 4283 4311 4316 4357 4358 4359
4372 4375 4376 4390 4395 4475 4518 4548 4584 4590 4592 4664
4687 4689 4703 4881 4921 4933 4940 4948 4951 4980 5011 5054
5094 5102 5207 5221 5234 5238 6303 7022 7040
AC1 636 # 2518 2752 2753 3845 3887 3888 3908 3911 4164 4279 4323
4353 4354 4355 4377 4378 4380 4582 4633 4673 4914 4918 4999
5000 5002 5004 5007
AC2 639 # 4327 4349 4350 4351 4363 4387
AC3 640 # 4310 4325 4330 4338 4345 4347 4381 4392
AC4 641 #
VMA 638 # 2367 2371 2413 2428 2429 2457 2463 2469 2475 2487 2488
2494 2496 2736 2737 2757 3071 3364 3366 3370 3377 3380 3383
3413 3420 3423 3425 3440 3441 3458 3459 3481 3492 3653 3673
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 161
; CROSS REFERENCE LISTING
3675 3682 3684 3799 3799 4926 5085 5105 5134 5142 5151 5174
5174 5377 5384 5393 5725 5745 5818 5827 5828 6060 6061 6069
6279 6287 7049 7050 7057 7059 7060
XR 637 # 2421 2425 3236 3794 3796 3810 3813 5138 5140
#B# 642 # 3363 3365 3367 3379 3382 3385 5080 5197 5198 5202 5204
5206 5225 5231 5235 5793 5802 5900 5901 5904 5914 5915 5916
6040 6042 6045 6046 6048 6049 6053 6062 6064 6088 6089 6090
6095 6096 6106 6109 6112 6115 6120 6121 6123 6134 6194 6233
6256 6275
(U) J 537 # 2419 2421 2452 2458 2464 2470 2476 2761 3690 3793 3794
3803 3805 3809 3947 4121 4133 4219 4221 4222 4228 4230 4231
4261 4264 4382 4408 4409 4410 4411 4648 4650 4926 4967 4969
5117 5120 5121 5124 5137 5138 5162 5163 5177 5186 5268 5418
5428 5436 5440 5616 5726 5747 5860 5865 6115 7040 7061
ADD 4033 4034 4035 4036 4040 #
ADJBP 5084 5193 #
ADJD1 5222 5225 #
ADJD2 5225 5229 #
ADJD3 5227 5231 #
ADJSP 3702 3715 #
AND 2776 2777 2778 2779 2783 #
ANDCA 2786 2787 2788 2789 2793 #
ANDCB 2838 2839 2840 2841 2845 #
ANDCM 2801 2802 2803 2804 2808 #
AOBJ 3168 3169 3174 #
AOJ 3128 3129 3130 3131 3132 3133 3134 3135 3140 #
AOS 3076 3077 3078 3079 3080 3081 3082 3083 3087 #
APRBI 5279 5463 #
APRBO 5281 5455 #
APRCI 5284 5285 5286 5474 #
APRCO 5283 5471 #
APRDI 5280 5460 #
APRDO 5282 5453 #
ASH 3821 3865 #
ASHC 3825 3886 #
ASHL 3866 3887 3984 #
ASHL1 3985 4000 #
ASHL2 4004 # 4013
ASHL3 4008 # 4010
ASHL4 4009 4012 #
ASHL5 4017 # 4020
ASHR1 3989 # 3992
ASHR2 3989 3994 #
ASHX 3995 4019 4025 #
BFETCH 5137 # 5143
BFIN 5105 #
BLK1 5372 5392 #
BLKIO 5346 5348 5357 5359 5371 #
BLT 2530 2536 #
BLT1 2537 7021 #
BLTAC 7031 7038 #
BLTPF 6194 6300 # 7057
BLTPF1 6302 #
BRJMP 2323 3248 #
BRJRST 3216 3235 3246 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 162
; CROSS REFERENCE LISTING
BYTEA 5092 5101 5134 # 5891
BYTEI 5139 5140 5142 #
CAIM 3033 3034 3035 3036 3037 3038 3039 3040 3042 3043 3044 3045
3046 3047 3048 3049 3053 #
CIRC 3831 3911 #
CIRC3 3912 3931 # 3932
CIRC4 3931 3934 # 3935
CLEAN 5144 5914 6154 # 6303
CLRFPD 5107 # 5382
CLRPT 5596 5638 5643 #
CLRPT1 3385 5645 #
CMTR 5600 5714 #
COMPEA 2360 2419 # 2435
CONO 5350 5361 5375 #
CONS 5352 5353 5363 5364 5373 #
CONT 3296 3299 #
DASMD 4269 4270 4271 4272 4279 #
DBLST 2740 # 5046 5057
DDVC1 4299 4335 #
DDVC2 4335 4338 # 4359
DDVLP 4404 # 4404 4405 4406 4407
DDVN2 4349 4351 #
DDVN3 4353 4355 #
DDVN4 4357 4359 #
DDVP 4339 4363 #
DDVP1 4363 4366 #
DDVP2 4368 4372 #
DDVP3 4375 4376 4380 #
DDVSUB 4374 4406 # 5014
DDVX0 4369 4387 # 4388
DDVX1 4387 4390 #
DEXCHK 5830 5842 5863 #
DFAS 4914 # 4916
DFAS1 4914 4933 #
DFAS2 4935 #
DFAS3 4937 4945 #
DFAS4 4941 4951 #
DFAS5 4946 4952 #
DFDV 4923 4999 #
DFDV1 4999 5000 5011 #
DFLOAT 4901 4902 4903 4904 4908 #
DFMP 4919 4976 #
DFMP2 4987 # 4988
DFN 4657 4660 #
DFN1 4661 4685 #
DHALT 3287 #
DIV 4156 4157 4158 4159 4163 #
DIV+ 4245 # 4377 4610 5003
DIV- 4244 # 4378 4551 4608 5005
DIV1 4165 4180 #
DIV2 4169 4187 # 5221
DIVLP 4218 4227 4242 # 4242 4243 4244 4245 4607 4609
DIVS1 4182 4189 4209 # 4211
DIVS2 4192 4212 # 4214
DIVS3 4210 4217 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 163
; CROSS REFERENCE LISTING
DIVS4 4213 4226 #
DIVX 4246 4247 4248 4249 4259 #
DMOVEM 2746 2752 #
DMOVE 2727 2734 #
DMOVNM 2747 2753 #
DMOVN 2728 2733 #
DMUL1 4316 # 4318
DMUL2 4317 4322 #
DMULT 4296 4304 #
DMVM1 2752 2757 # 5671
DNHI 5024 5043 #
DNNEG 5022 5038 #
DNORM 4953 4990 5008 5020 # 5036 5040 5041
DNSHFT 5033 # 5047
DNTRY 4943 4990 # 5043
DNZERO 5020 5046 #
DPB 5067 5101 #
DPB1 5103 5174 # 5883
DPB2 5176 5180 #
DRND1 5029 5050 #
DROUND 5026 5028 # 5030
DSTAC 2487 2516 # 4290 4293 4396
DTEVEC 5800 5804 #
EBUSW 5413 # 5415
EBUSX 5409 # 5827 5837 5871
EMTR 5598 5713 #
EQV 2848 2849 2850 2851 2855 #
EXCH 2529 2534 #
EXPD 4664 4933 4963 #
EXPD1 4965 4968 #
FAD 4422 4424 4425 4456 #
FADL 4423 4458 #
FADR 4427 4429 4430 4457 4459 4465 #
FADRI 4428 4463 #
FAS 4466 4469 4475 #
FAS1 4477 4481 #
FAS2 4479 4483 #
FAS3 4483 4489 #
FAS5 4486 4487 4492 #
FDV 4527 4529 4530 4540 #
FDVCHK 4549 4586 4644 # 4645 5013
FDVCK1 4644 4647 #
FDVL 4528 4539 #
FDVL1 4539 4582 #
FDVL2 4587 4603 #
FDVL3 4603 4606 #
FDVL4 4591 4593 4617 #
FDVL6 4618 4626 #
FDVL7 4627 4630 4633 # 4635
FDVNEG 4560 4573 # 4574
FDVR 4532 4534 4535 4540 4545 #
FDVRI 4533 4544 #
FINI 2504 2510 # 2518 3024 3191 3272 4171 4673 5107
FIX 3641 # 4709
FIX1 3642 4741 4756 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 164
; CROSS REFERENCE LISTING
FIX2 4764 4767 #
FIXR 4716 4740 #
FLTR 4717 4723 #
FMP 4498 4500 4501 4510 #
FMPL 4499 4511 #
FMPR 4503 4505 4506 4510 4511 4516 #
FMPRI 4504 4515 #
FSB 4432 4434 4435 4457 #
FSBL 4433 4459 #
FSBR 4437 4439 4440 4468 #
FSBRI 4438 4464 #
FSC 4693 4702 #
GETEEB 3337 3370 5439 # 5453 5460 5472 5475 5588 5605 5619 5623 5658
5674 5677 5685 5688 5696
GETEXP 5245 #
GETSC 5081 5234 5244 #
GTAR08 2523 5859 # 5886
GTDBR 2737 2753 2760 #
GTEBUS 5378 5401 #
GTEEB1 3676 5440 #
HALT1 2349 3290 # 3294
HALT2 3290 3293 #
HLL 2584 2585 2628 2675 #
HLLE 2614 2615 2616 2617 2716 #
HLLO 2604 2605 2606 2607 2720 #
HLLZ 2594 2595 2596 2597 2719 #
HLR 2631 2632 2681 #
HLRE 2661 2662 2663 2664 2709 #
HLRM 2633 2688 #
HLRO 2651 2652 2653 2654 2713 #
HLRS 2634 2689 #
HLRZ 2641 2642 2643 2644 2712 #
HRL 2589 2590 2678 #
HRLE 2619 2620 2621 2622 2702 #
HRLM 2591 2684 #
HRLO 2609 2610 2611 2612 2706 #
HRLS 2592 2685 #
HRLZ 2599 2600 2601 2602 2705 #
HRR 2586 2626 2627 2673 #
HRRE 2656 2657 2658 2659 2695 #
HRRO 2646 2647 2648 2649 2699 #
HRRZ 2636 2637 2638 2639 2698 #
IBP 4694 4697 #
IBP1 4697 5080 #
IBPS 5083 5090 5099 5117 # 5890
IDIV 4151 4152 4153 4154 4167 #
IDPB 5066 5098 #
IFNOP 2493 # 4552 4588 4756 5015 5449 5652
IFSTAC 2495 # 3426 5197
IHALT 3210 3285 #
ILDB 5064 5089 #
IMUL 4058 4060 4061 4075 #
IMUL2 4085 # 4086
IMULI 4059 4066 #
INDLP 2428 2435 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 165
; CROSS REFERENCE LISTING
INDRCT 2424 2426 2428 #
INTRPT 2354 #
IO 5347 5349 5351 5358 5360 5362 5377 # 5394 5395
IOCHK 3355 3759 3782 5371 5435 # 5446 5455 5463 5505 5585
IOFET 5384 5388 #
IOPGF 6256 6293 #
IOR 2828 2829 2830 2831 2835 #
IOTEND 5382 # 5522 5633
JFCL 3184 3265 #
JFFO 3824 3843 #
JFFO1 3849 # 3850
JFFO2 3854 # 3855
JRA 3468 3489 #
JRA1 3410 # 3490
JRST 3183 3191 #
JRST17 3230 #
JRST2 3204 # 3221
JRSTF 3204 3235 # 3236 3260
JRSTON 3231 3257 #
JSA 3467 3487 #
JSA1 3487 3492 #
JSP 3466 3473 #
JSR 3465 3478 #
JSTAC 3408 3413 # 3420
JUMP 3109 3110 3111 3112 3113 3114 3115 3116 3121 #
LDB 5065 5092 #
LDB1 5093 5151 # 5875
LDB2 5154 #
LDBRL 2761 #
LPM 3352 # 3614
LPM1 3352 3370 #
LSH 3823 3840 #
LSH2 3917 # 3920
LSH3 3918 3922 # 3924
LSHC 3827 3908 #
LSHC1 3908 3915 #
LUUO 3531 3532 3533 3535 3536 3537 3538 3540 3541 3542 3543 3545
3546 3547 3548 3553 3554 3555 3556 3558 3559 3560 3561 3563
3564 3565 3566 3568 3569 3570 3571 3650 #
MBREL 5449 # 5456
MOVE 2544 2545 2546 2547 2571 2577 # 2578 2587 2629 2796 2797 2798
2799 2813 2814
MOVM 2559 2560 2561 2562 2571 #
MOVN 2554 2555 2556 2557 2574 #
MOVNEG 2574 2578 #
MOVS 2549 2550 2551 2552 2568 # 2684 2688
MTRCI 5340 5341 5342 5687 #
MTRCO 5339 5684 #
MTRDBL 5669 5722 5732 #
MTRINT 2351 # 2429 3291 3691 3764 3767 3800 6232
MTRREQ 2351 5703 #
MTRRQ0 5705 5708 #
MTRRQ1 5711 5712 5713 5714 5721 #
MUL 4090 4091 4092 4093 4097 #
MUL1 4102 # 4103
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 166
; CROSS REFERENCE LISTING
MULM 4127 4129 4132 # 4140 4141
MULP 4118 4120 # 4123 4125 4136 4138 4146 4304
MULREE 4146 # 4313 4978 4987 5236
MULSUB 4077 4099 4117 # 4520
MUUO 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586
3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598
3599 3600 3601 3602 3634 #
MUUO1 3635 3672 #
MVSQZ 3700 3712 #
MVSQZ0 3713 3726 # 3744
MVSQZ1 3727 3730 #
MVSQZ5 3730 3734 3737 3741 #
NEWPC 3683 #
NEWPC1 3684 # 6288
NEXT 2347 # 2491 2510 4330
NODIVD 4171 # 4342 4364 5203
NOP 2494 2504 # 3053 3121 3248 3443 3481 3845 3881 4000 5085 5094
5383 5385 5388 5829 7059
NXTWRD 5119 5123 #
ORCA 2869 2870 2871 2872 2876 #
ORCB 2899 2900 2901 2902 2906 #
ORCM 2889 2890 2891 2892 2896 #
PACCDS 6063 6065 6069 #
PAGBI 5301 5607 #
PAGBO 5303 5585 #
PAGCI 5306 5307 5308 5622 #
PAGCO 5305 5618 #
PAGD2 5595 5598 #
PAGDI 5302 5604 #
PAGDO 5304 5587 #
PCTXT 3677 5606 5610 #
PF1 5898 5900 #
PF2 5901 5903 #
PF3 5912 #
PF4 5914 # 6123 6138
PF5 5912 5915 #
PFPAR 5905 6132 # 6133
PFPAR1 6132 6134 #
PFT 6072 6082 6120 #
PFT1 6123 # 6124
PFWLOS 6073 6074 6077 #
PGEXRF 6041 6045 #
PGF1 6154 6231 #
PGF2 6231 6233 #
PGF4 6233 6254 #
PGFAC0 6303 #
PGRF1 5918 # 5930
PGRF2 5922 6034 #
PGRST1 6108 # 6110
PGRST2 6109 6112 # 6113
PGRST3 6112 6115 #
PGSTO 6075 6079 #
PGSTO1 6081 6087 #
PGSTO2 6091 6092 6093 #
PGSTO3 6097 6098 6099 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 167
; CROSS REFERENCE LISTING
PGUSRF 6043 6048 #
PIBI 5290 5503 #
PIBO 5292 5505 #
PIBPA 5870 5880 5886 #
PIBYTE 5787 5870 #
PICI 5295 5296 5297 5515 #
PICO 5294 5511 #
PICOM1 5512 5515 5525 #
PICOM2 5513 5522 #
PICYC1 2352 2354 5779 #
PICYC2 2348 5792 #
PIDATI 5786 5837 #
PIDATO 5785 5824 #
PIDI 5291 5485 #
PIDISP 5781 #
PIDO 5293 5484 #
PIDONE 5811 5819 5820 5828 # 5844 5847 5848 5850 5852 5884 6293
PIDPB 5872 5879 #
PIFET 5389 5706 5829 #
PIIBP 5874 5881 5889 #
PIINCR 5784 5818 #
PIINST 5716 5781 5782 5788 5792 5795 #
PIKLG1 5810 5814 #
PIKLG2 5849 5852 #
PILD 5808 # 5824 5863 5889
PIOUT 5827 # 5831 5832 5876
PIST 5840 5847 #
PIVECT 5783 5797 #
POP 3393 3433 #
POP1 3434 3456 #
POPJ 3394 3436 #
POPJ1 3440 3443 #
PSTOR 5843 5849 #
PTLOOP 5586 5649 # 5651
PUSH 3392 3403 #
PUSHJ 3391 3406 #
PXCT 3607 3608 3759 #
PXCTEA 3763 3790 #
PXLOOP 3793 # 3802
RDBRLH 6060 6062 #
RDBRRH 6061 6064 #
RDDBR 6045 6048 6054 #
RDDBR0 6046 6049 6053 #
RDEBRG 3336 # 5503
RDEMTR 5733 5735 5741 #
RDEX 5826 5841 5855 #
RDMTR 5324 5325 5335 5336 5657 #
RDMTR1 5662 5663 5664 5665 5668 #
RDMTR2 5742 5745 #
RDUMTR 5737 5739 5743 #
RELEB 5414 5417 #
RELEEB 5379 # 5454 5461 5473 5478 5592 5608 5675 5681 5686 5690 5699
ROT 3822 3867 #
ROT3 3891 # 3894
ROT4 3892 3896 # 3899
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 168
; CROSS REFERENCE LISTING
ROTC 3826 3888 #
ROTS 3634 3651 3690 # 5856 6255
SDIV 5261 # 5261 5262
SDIV- 5259 5262 #
SDIVR 5263 5266 #
SETCA 2858 2859 2860 2861 2865 #
SETCM 2879 2880 2881 2882 2886 #
SETEBR 5620 5637 #
SETO 2909 2910 2911 2912 2916 #
SETZ 2766 2767 2768 2769 2773 #
SHIFT 3267 4005 4329 4667 5154 5162 # 5245 5637 5646 5804
SHR1 3841 3874 # 3878
SHR2 3875 3879 # 3880
SIXDIV 5196 5201 5259 #
SKIP 3060 3061 3062 3063 3064 3065 3066 3067 3071 # 3087 3102
SLNG3 4881 # 4885
SLNG4 4881 4887 #
SN1 4810 4817 # 4823
SNORM 4493 4521 4562 4573 4724 4792 # 4794 4796 4815 4832
SNR2 4634 4704 4795 #
SNZERO 4793 4829 #
SOJ 3147 3148 3149 3150 3151 3152 3153 3154 3162 #
SOS 3091 3092 3093 3094 3095 3096 3097 3098 3102 #
SPM 3355 # 3615
SRND2 4845 4865 #
SRND3 4857 4868 #
SRND4 4855 4864 4869 #
SRND5 4830 4879 #
SROUND 4797 4799 4801 4803 4818 4820 4821 4845 #
ST0 2484 # 2568 2577 2673 2675 2678 2681 2685 2689 2698 2699 2705
2706 2712 2713 2719 2720 2773 2783 2793 2808 2825 2835 2845
2855 2865 2876 2886 2896 2906 2916 4040 4053 4102 4174 4176
ST2AC 2486 # 4027
ST6 2492 # 3339 4085 4879 4883
STAC 2491 # 2503 3025 3026 3027 3494 4768 5239
STAC1 2518 # 4681 4682 4893 4895
START 2323 # 3684
STBOTH 2496 #
STD1 2486 2517 # 2740 3937 4395 5055
STDAC 2736 3900 #
STMAC 2534 3404 3423 # 3460 3719 3721 4687 4689
STMEM 2494 # 2758 3367 5467 5508
STORAC 2496 2503 # 3140 3162 3174 3414 3424 3473 3728 4025 4765
STRAC1 3857 3900 3925 4893 #
STRAC3 4330 #
STRNC 4849 4864 #
STSELF 2489 2502 # 3072
SUB 4045 4046 4047 4048 4052 #
SWEEP 5312 5313 5314 5315 5316 5317 5318 5319 5445 #
SXCT 3775 3782 #
SXCTB 3788 3806 3809 # 3810
TAKINT 2429 # 5426
TDC 3026 #
TDN 2811 2812 2923 2924 2932 2933 3015 3018 3024 #
TDO 3027 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 169
; CROSS REFERENCE LISTING
TDX 2927 2936 2941 2945 2950 2954 2959 2963 2968 2972 2977 2981
2986 2990 3014 #
TDXX 2925 2929 2934 2938 2943 2947 2952 2956 2961 2965 2970 2974
2979 2983 2988 2992 3022 #
TDZ 3025 #
TIMBO 5326 5695 #
TIMCI 5329 5330 5331 5676 #
TIMCO 5328 5674 #
TIMDO 5327 5693 #
TR3CHK 2365 2388 #
TR3DSP 2389 2391 #
TRAP 2365 # 2372
TRAPX 2393 2394 2398 2408 #
TSX 2928 2937 2942 2946 2951 2955 2960 2964 2969 2973 2978 2982
2987 2991 3017 #
TSXX 2926 2930 2935 2939 2944 2948 2953 2957 2962 2966 2971 2975
2980 2984 2989 2993 3020 #
UFA 4656 4662 #
UFA1 4666 #
UFA3 4673 #
UFA4 4676 4681 #
UNHALT 3293 3296 #
UP 7033 7044 #
UP1 7044 7050 # 7052
UP2 7049 7050 7051 7054 #
UP3 7056 #
UP4 7056 7059 #
UUO 3200 3209 3211 3212 3213 3220 3222 3223 3224 3225 3285 3309
3504 3621 3622 3624 3625 3633 # 4713 5337 5338 5401 5435 5439
5485 5525 5607 5693
UUO107 3284 # 3776
UVERS 2523 # 5465
UXCT 3297 3321 3766 #
WDREV 3911 3936 3946 # 3949 3950
WDREV1 3946 3949 #
WGRANT 3257 5402 5425 # 5429 5526 6268
WGRNT1 5425 5428 #
WXFER 5411 5415 #
XCT 3305 3321 #
XCTGO 2360 # 2367 2402 2413 3766
XCTR 3760 3763 #
XCTW 2413 # 3299 3654 5793 5795 5798 5799 5802 5805
XFERW 3410 4281 4910 4926 # 5613 5628 5746 5808 5809 5814 5866
XIND1 3795 3799 # 3812 3814
XIND2 3791 3799 3802 #
XOR 2818 2819 2820 2821 2825 #
(D) J 1114 #
(U) MACRO%
A INDRCT 2052 # 2423 2425 3795 3796 3811 3813
A READ 2051 # 2419 2421 3793 3794 3803 3805 3809
ABORT INSTR 2114 # 5725 6278
AC0←AR 1127 # 2486 2491 2516 2740 3443 3881 3900 3925 3936 4316 4359
4375 4376 4395 4881 4940 4948 5054 5094 5221 5234 6303 7040
AC1←AR 1128 # 2518 3845 4323 4355 4380 4633 4673 5002 5004
AC2←AR 1129 # 4327 4351 4387
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 170
; CROSS REFERENCE LISTING
AC3←AR 1130 # 4310 4330 4347 4392
AC4←AR 1131 #
AD FLAGS 2102 # 2578 2738 2754 3087 3102 3140 3162 4040 4053 4289 4292
AD LONG 2101 # 4768
AR+ARX+MQ←0.M 1633 # 4829 5193
AR+MQ←0.M 1636 #
AR+MQ←0.S 1637 #
AR0-3 DISP 1966 # 5824 5840
AR0-8←# 1868 # 2523 4660 5467 5595 5599
AR0-8←FE 1862 # 4686 4688 6035
AR0-8←FE OR # 1867 #
AR0-8←FE# 1864 #
AR0-8←FE+# 1866 # 5800 5858 5886
AR0-8←FE-SC 1865 # 4888
AR0-8←FE.R 1863 #
AR0-8←SC 1861 # 5244 5922
AR0-8←SCAD 1857 # 4686 4688 5244 5922 6035
AR0-8←SCAD# 1858 # 5800 5858 5886 6080
AR0-8←SCAD.M 1859 # 4888
AR0-8←SCAD.R 1860 #
AR03-04←SCD TRAP CY 1999 # 2388
AR05←SCD ADDR BRK C 1998 # 2395
AR18-21 DISP 1967 # 6041 6043
ARL+ARX+MQ←0.M 1634 #
ARL+ARX←0.M 1635 # 4340 5227 5230 5668 5721
ARL←0S 1726 # 2698 2712 6036
ARL←0.C 1618 # 3810
ARL←0.M 1628 # 3490 3787 3790 7023
ARL←0.S 1623 # 5690
ARL←1S 1728 # 2699 2713
ARL←1S.M 1729 #
ARL←AC0 1713 # 2673 2681 2688
ARL←ARL 1721 # 2537 2675 2689 2719 2720 5478 5521
ARL←ARL.M 1722 # 5587
ARL←ARR 1716 # 2678 2684 2685 2705 2706 3715 5375 6302 7038
ARL←ARR.M 1718 # 5471 5511 5618 5684
ARL←ARR.S 1717 # 5466
ARL←ARX 1714 #
ARL←ARX (ADX) 1724 #
ARL←ARXL 1723 # 3494 5681
ARL←BRL 1730 # 5608
ARL←BRL.S 1731 # 3679
ARL←SHIFT 1732 #
ARL←SHIFT.C 1735 # 6069
ARR+MQ←0.S 1638 #
ARR←0S 1725 # 2705 2719
ARR←0.C 1619 # 6069
ARR←0.M 1629 # 5632
ARR←0.S 1624 # 3851
ARR←1S 1727 # 2706 2720
ARR←AC0 1715 # 2537 2675 2678 2684
ARR←ARL 1719 # 2681 2688 2689 2712 2713 3490 5587 6034 7023
ARR←ARR 1720 # 2673 2685 2698 2699 3715 5375 5471 5511 5618 5684
ARR←ARX 1734 # 6036
ARR←PC+1 1683 # 3494
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 171
; CROSS REFERENCE LISTING
ARX+MQ←0.M 1632 # 3846 4163 4167 4633 4702 5208
ARX+MQ←0.S 1639 # 4539 4545
ARX0-3 DISP 1968 # 5721
ARX←-AC0 1151 # 4689
ARX←-BRX 1216 # 5222
ARX←-SLEN 1353 #
ARX←0S 1614 # 3266 3712 3936 4012 4117 4295 4466 4468 4516 4574 4661
4662 4976 5046 5198 5618 5630
ARX←0.C 1620 #
ARX←0.M 1630 # 3840 4793
ARX←0.S 1625 #
ARX←1B1 1648 # 4741
ARX←1S 1611 # 4848 4851
ARX←1 1644 # 5052
ARX←AC0 1133 # 3867 4390
ARX←AC0 COMP 1152 # 4687
ARX←AC0+1 1150 # 3403 3407
ARX←AC1 1134 # 2752 2753 3888 3908 4377 4378
ARX←AC2 1135 #
ARX←AC3 1136 # 4325
ARX←AC4 1137 #
ARX←AR 1174 # 2534 2536 3352 3741 3763 3783 3984 3986 3990 4004 4173
4175 4180 4283 4363 4484 4487 4666 4723 4933 4935 4938 5011
5092 5101 5119 5155 5245 5259 5267 5519 5598 5600 5615 5695
5804 5838 5840 5859 5872 5891 6037 6254 7021
ARX←AR (AD) 1175 # 3766 3876 3891 3893 3898 3919 3931 3932 3935 5587
ARX←AR SIGN 1616 # 3642
ARX←AR SWAP 1711 # 3487 5477 5517 5627 5679 5708
ARX←AR*4 COMP 1204 #
ARX←AR*BR 1263 #
ARX←AR*MSK 1368 #
ARX←AR+1 1243 #
ARX←AR+BR 1237 # 5843
ARX←AR+CBR 1509 #
ARX←AR-1 1244 # 3456
ARX←ARX*-6 1281 # 3852
ARX←ARX*.25 1192 # 4561
ARX←ARX*.5 1197 #
ARX←ARX*2 1181 # 2760 4282 4757 4911 5747
ARX←ARX*4 1182 #
ARX←ARX*5 1278 # 3730 3731
ARX←ARX*8 1183 # 3726
ARX←ARX*BRX 1273 # 3743 4870 5056
ARX←ARX+1 1245 # 3855 7060
ARX←ARX+BRX 1274 # 3743
ARX←ARX+CBR 1511 #
ARX←ARX-1 1246 # 3850
ARX←ARX-1 (AD) 1247 #
ARX←ARX-CN100 1520 # 6053
ARX←BR 1213 # 3994 6036
ARX←BRX 1211 # 3257 3265 3634 3650 4008 4026 4942 4964 5054
ARX←BRX COMP 1202 # 5039
ARX←BRX*2 1218 # 3949
ARX←BRX*2+1 1219 # 3950
ARX←BRX+1 1249 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 172
; CROSS REFERENCE LISTING
ARX←DBR1 1490 # 6048
ARX←DBR2 1491 # 6049
ARX←DBR3 1492 # 6046
ARX←DBR4 1493 # 6045
ARX←DSTP 1374 #
ARX←FM 1308 # 6045 6046 6048 6049 6088 6106 6109 6112 6194
ARX←FM(VMA) 1155 # 2367 2371
ARX←MEM 2060 # 2413 2428 2429 2736 2737 3440 3441 3799 5142 5174
ARX←PC 1684 # 6035
ARX←SHIFT 1165 # 3690 3742 3896 3922 3934 3989 4020 4187 4190 4324 4328
4355 4367 4372 4486 4584 4760 4767 4813 4853 5154 5181 5184
5631 5732 5734 5736 5738
ARX←SRCP 1370 #
ARX←SV.AR 1481 # 6109
ARX←SV.ARX 1483 # 6112 6194
ARX←SV.BR 1485 # 6106
ARX←SV.VMA 1477 # 6088
ARX←T2 1348 #
ARX←VMA HELD 1689 # 6035
AR←(AR+2BR)*.25 1269 # 4137 4492
AR←(AR+BR)*.25 1267 # 4124 4135
AR←(AR-2BR)*.25 1270 # 4126
AR←(AR-BR)*.25 1268 # 4128 4139
AR←-AC0 1139 # 4357
AR←-AR 1208 # 4469 4685 4883
AR←-AR LONG 1697 # 4211 4214 4396 4645 4885 4916 5057
AR←-BR 1214 # 2578 4221 4231 4628 5041
AR←-BR LONG 1698 # 2738 2754 4388
AR←-BRX 1215 # 4173
AR←-DLEN 1358 #
AR←-SLEN 1352 #
AR←0.C 1617 #
AR←0.M 1627 # 3919
AR←0.S 1622 #
AR←0S 1613 # 2349 2705 2719 2740 2757 2773 3287 3336 3741 3866 4117
4295 4631 4635 4765 4845 4881 4895 4976 5046 5081 5154 5155
5198 5234 5259 5593 5612 5615 5622 5627 5647 5659 5676 5679
5687 5695 5708 5725 5732 5734 5736 5738 5797 5804 5859 5865
5926
AR←1 1643 # 3230 5645 6266
AR←1 LONG 1645 #
AR←1S 1610 # 2361 2435 2706 2720 2916 4340
AR←2 1647 #
AR←2(AR*BR) 1264 # 4209 4212 4217 4226 4242 4243 4244 4245 4404 4405 4406
4407 4603 4604 4607 4609 5261 5262
AR←2(AR+1) 1279 # 3854
AR←2(AR+BR) 1265 # 4212 4217 4242 4245 4404 4407 4604 4607 5261
AR←2(AR+BR) LONG 1702 #
AR←2(AR-BR) 1266 # 4209 4226 4243 4244 4405 4406 4603 4609 5262
AR←AC0 1121 # 2451 2534 2537 2675 2678 2684 3121 3433 3436 3487 3489
3783 3840 3843 3867 3889 3912 3915 3984 3986 4052 4075 4098
4168 4180 4283 4311 4372 4475 4518 4548 4584 4590 4592 4664
4703 4933 4951 4980 5011 5102 5238 7022
AR←AC0 COMP 1140 # 4358
AR←AC0+1 1149 # 3140 3174
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 173
; CROSS REFERENCE LISTING
AR←AC1 1122 # 3911 4582 4918 5007
AR←AC1 COMP 1141 #
AR←AC1*2 1142 # 3887 4164 4279 4914 4999 5000
AR←AC2 1123 # 4363
AR←AC3 1124 # 4381
AR←AC3*2 1143 # 4338
AR←AC4 1125 #
AR←AD*.25 LONG 1696 # 4211 4214 4396 4645 4885 4916 5057
AR←ARX 1171 # 3204 3259 3372 3414 3424 3426 3728 3900 3925 3936 3937
4008 4012 4323 4375 4376 4392 4559 4792 4945 4948 5033 5204
5478 5589 5697 5900 6036 6109 6112
AR←ARX (ADX) 1172 # 3876 3892 3893 3899 3917 3924 3931 3932 3935 4367 4763
4811 4940 4949 5034 5226
AR←ARX (AD) 1173 # 2419 3803 3805 6037 6302
AR←ARX COMP 1200 #
AR←ARX*.25 1190 # 4561
AR←ARX*.25-AR-1 1280 #
AR←ARX*2 1187 # 5237
AR←ARX*BRX 1275 # 5521
AR←ARX+BR 1250 # 6300
AR←ARX+XR 1657 # 2421
AR←ARX-1 1248 # 3857 5229
AR←ARX-BR 1251 #
AR←AR AND CSMSK 1513 #
AR←AR SWAP 1710 # 2568 3017 3020 4464 4515 4544 5633 5698 6106 7039
AR←AR*.25 1189 #
AR←AR*.25 LONG 1706 # 4123 4141 4573 4795 4831 5023 5025
AR←AR*.5 1196 # 4868
AR←AR*.5 LONG 1198 # 5027 5050
AR←AR*1.25 LONG 1705 #
AR←AR*10 1277 #
AR←AR*10 LONG 1704 #
AR←AR*2 1178 # 5704
AR←AR*2 LONG 1184 # 4798
AR←AR*4 1179 # 5783 5787 5825 5841
AR←AR*4 LONG 1185 # 4800
AR←AR*5 LONG 1703 #
AR←AR*8 1180 #
AR←AR*8 LONG 1186 # 4802 4809 4822
AR←AR*AC0 1146 # 2783 2793 2808 2825 2835 2845 2855 2865 2876 2896 2906
3025 3026 3027 3716 4040 5207
AR←AR*AC1 1147 #
AR←AR*BR 1262 # 3271
AR←AR*LH.AGE 1517 # 6062
AR←AR*MSK 1367 #
AR←AR*RH.AGE 1518 # 6064
AR←AR*SFLGS 1372 #
AR←AR*SLEN 1354 #
AR←AR*T0 1343 #
AR←AR+1 1234 # 3087 5028 5038 5123 5392 5819
AR←AR+1 LONG 1693 #
AR←AR+BR 1236 # 3809 4246 4249 4259 4289 4305 4669 4768 4856 4865 4952
4979 5263 5266 5649 5670 5723 7038
AR←AR+BR LONG 1700 # 4259 4289 4305 4979 5670 5723
AR←AR+E1 1365 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 174
; CROSS REFERENCE LISTING
AR←AR+SBR 1507 #
AR←AR+T0 1341 # 5231
AR←AR+T1 1347 # 5202 5225
AR←AR+XR 1656 # 3794 3810
AR←AR-1 1235 # 3102 3437 5820
AR←AR-BR 1242 # 4053 4247 4248 4262 4292 5264 7024
AR←AR-BR LONG 1701 # 4262 4292
AR←AR-T0 1342 #
AR←BRX 1210 # 4014 4175 5847 5848 5852 5882
AR←BR 1209 # 3742 3786 3790 4004 4017 4324 4328 4618 4620 4758 4864
4942 4964 5035 5084 5120 5121 5401 5435 5439 5466 5485 5525
5607 5657 5693 5915 6054 6099
AR←BR COMP 1201 # 5039
AR←BR LONG 1212 # 4369 4855
AR←BR*.5 1221 # 4677
AR←BR*.5 LONG 1222 #
AR←BR*2 1217 # 4477
AR←BR*2 LONG 1699 # 4002 4817
AR←BR*4 LONG 1220 # 4819
AR←BR+1 LONG 1694 #
AR←CACHE CNT 2022 # 5665 5714
AR←DBR1 1488 # 3365
AR←DBR2 1489 # 3367
AR←DLEN 1355 #
AR←DLEN COMP 1357 #
AR←DLEN+1 1356 #
AR←DSTP 1373 #
AR←E0 1359 #
AR←E1 1363 #
AR←EBOX CNT 2020 # 5664 5713
AR←EBUS 1979 # 2352 2354 5413
AR←EBUS REG 1997 # 3338 5614 5629 5909 6136
AR←FM 1305 # 3363 3365 3367 5197 5235 5904 6120 6121 6233
AR←FM+1 1306 #
AR←INTERVAL 2024 # 5678
AR←LH.AGE 1494 #
AR←MEM 2059 # 2457 2469 2475 3370 3377 3380 3383 3458 3459 3684 3799
5151 5174 5818 5827 6060 6061 7049 7050
AR←MQ 1161 # 3896 3922 3934 3947 4306 4312 4327 4382 4408 4409 4410
4411 4634 4767 4987 5002 5004 5181 5206 5267 5838 5855 6274
AR←MQ COMP 1203 # 5021
AR←MQ*.25 1191 # 4813
AR←MQ*2 1223 # 5872
AR←MQ*AC1 1258 # 4353 4354
AR←MQ*AC2 1259 # 4349 4350
AR←MQ*AC3 1260 # 4345
AR←MQ+1 1253 # 7031
AR←MQ+AC0 1257 # 3162
AR←MQ-1 1255 #
AR←MQ-BR 1256 #
AR←MTR REQ 2027 # 5703
AR←PC 1681 # 2396 3268 6038 6254 6279
AR←PC+1 1682 # 3406 3473 3478 3673
AR←PERF CNT 2018 # 5663 5712
AR←PERIOD 2025 # 5680
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 175
; CROSS REFERENCE LISTING
AR←SERIAL 2013 # 5464
AR←SFLGS 1371 #
AR←SHIFT 1164 # 2517 2758 3257 3266 3635 3652 3679 3690 3743 3847 3849
3874 3879 4025 4026 4085 4322 4325 4390 4489 4887 4947 5031
5047 5054 5162 5184 5186 5447 5608 5726 5857 5860 6045 6046
6048 6049 6073 6074 6075 6268
AR←SIGN 1615 # 2486 2516 3989 3990 4001 4086 4187 4190 4316 4387 4395
4483 4484 4666 4668 4724 4760 4935 4938
AR←SLEN 1349 #
AR←SLEN COMP 1351 #
AR←SLEN+1 1350 #
AR←SRCP 1369 #
AR←SV.AR 1480 # 5904
AR←SV.ARX 1482 #
AR←SV.BR 1484 # 6120
AR←SV.PFW 1476 # 6121 6233
AR←SV.SC 1486 #
AR←T0 1340 # 5197
AR←T1 1345 #
AR←T2 1346 # 5235
AR←TIME BASE 2016 # 5662 5711
AR←UPFW 1495 # 3363
AR←VMA HELD 1688 # 6038 6254
AR←XR 1154 # 3236
B DISP 1946 # 2734 3015 3018 3022 3878 3995 4015 4019 4284 4457 4459
4464 4911 5393 5660 5668
B WRITE 2041 # 3339 4085 4879 4883 5379 5522 5633
BAG-BITING NO-OP 2126 # 3378 3381 3384 5907
BLKO TIM(L) 2030 # 5697 5699
BLKO TIM(R) 2031 # 5698
BR←AR LONG 1176 # 2761 4001 4117 4260 4263 4582 4664 4758 4809 4822 4845
4848 4851 4855 4856 4914 4918 4922 5741 5743
BYTE DISP 1969 # 2348 4626 4629 4888 5089 5098 5372 5651
BYTE INDRCT 2054 # 5139 5140
BYTE READ 2053 # 5137 5138
CALL 1927 # 3257 3267 3337 3355 3370 3410 3634 3651 3676 3677 3759
3782 3911 3936 4005 4077 4099 4312 4329 4368 4373 4375 4376
4549 4551 4583 4587 4664 4933 4978 4987 4999 5000 5013 5081
5092 5093 5101 5103 5221 5234 5236 5371 5378 5402 5445 5453
5455 5460 5463 5465 5474 5505 5515 5585 5595 5598 5605 5606
5613 5622 5628 5637 5646 5657 5674 5676 5687 5695 5704 5746
5804 5826 5827 5830 5837 5841 5842 5856 5863 5870 5871 5874
5875 5880 5881 5883 5889 6255 6268 7031 7049 7050 7051
CALL.C 1930 #
CALL.M 1928 # 4165 4168 4218 4227 4304 4667 5003 5005 5082 5090 5099
5196 5201 5471 5512 5588 5619 5669 5685 5722 5824 5890
CALL.S 1929 # 2737 2753 4281 4520 4910
CLR AR 1640 # 4757 4848 4851
CLR ARX 1641 # 3911 4014 4076 4097 4381 4758 4763 4812 4864 4865 4950
5034 5235 5645 5855 6060 6061
CLR EBUS DEMAND 1989 # 5414
CLR EXP 1848 #
CLR FE 1805 # 4829 5586 5781 5782 5788
CLR FPD 2092 # 5094 5107
CLR MQ 1642 # 5051
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 176
; CROSS REFERENCE LISTING
CLR PT LINE 2081 # 5650
CLR P 1846 #
CLR SC 1739 # 3937
CLR SR2 2158 # 4388
CMS FETCH 2050 #
CN100 1443 # 6053
CN1000 1442 # 6089 6095
COMP FETCH 2045 # 3053
CONI APR(L) 2003 # 5477
CONI APR(R) 2004 # 5476
CONI MTR 2026 # 5689
CONI PAG 2012 # 5624
CONI PI(L) 2006 # 5520
CONI PI(PAR) 2008 # 5518
CONI PI(R) 2007 # 5516
CONO APR 2002 # 5473
CONO MTR 2029 # 5686
CONO PAG 2011 # 5620
CONO PI 2005 # 3258 5513 6269
CONO TIM 2028 # 5675
CONTINUE 2118 # 3296
DATAI APR(L) 2001 # 5461
DATAI PAG(L) 2010 # 3677 5606
DATAO APR 2000 # 3371 5454
DATAO PAG(L) 2009 # 5589
DBR1 1436 # 3365 3382 6048
DBR1←AR 1465 # 3382
DBR2 1437 # 3367 3385 6049
DBR2←AR 1466 # 3385
DBR3 1438 # 6046
DBR4 1439 # 6045
DIAG IN 1996 # 2388 2395 3338 3677 5461 5476 5477 5516 5518 5520 5606
5614 5624 5629 5662 5663 5664 5665 5678 5680 5689 5703 5711
5712 5713 5714 5909 6136
DIAG OUT 1995 # 3258 3371 5454 5473 5513 5589 5620 5675 5686 5697 5698
5699 6269
DISMISS 2107 # 3216 3221 5389 5828
DIVIDE 4206 # 4209 4212 4217 4226 4242 4243 4244 4245 4246 4247 4248
4249 4404 4405 4406 4407 4603 4604 5261 5262 5263 5264
DLEN 1302 #
DLEN←AR 1334 #
DROP EBUS REQ 1985 # 5426
DSTP 1303 #
DSTP←AR 1338 #
E0 1296 #
E0←AR 1331 #
E1 1297 #
E1←AR 1332 #
EA MOD DISP 1947 # 2360 2435 3204 3260 3788 3802 3806 5135 5143
EA TYPE DISP 1948 # 3799
EPT FETCH 2063 # 5795 5798 5799 5805
EPT REF 2062 # 5742 5808 5847 5866 6274 6288
EXEC REF 2069 # 6091 6097
EXIT 2039 # 2568 2577 2673 2675 2678 2681 2685 2689 2698 2699 2705
2706 2712 2713 2719 2720 2773 2783 2793 2808 2825 2835 2845
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 177
; CROSS REFERENCE LISTING
2855 2865 2876 2886 2896 2906 2916 4040 4053 4102 4174 4176
EXP TEST 2097 #
EXP TST 1845 # 4681 4682 4869 5051
EXP←-SC-1 1854 # 4630
EXP←-SC-1 TST 1856 # 4682
EXP←1 1849 # 4988
EXP←FE TST 1855 # 4681 4869 5051
EXP←SC 1853 # 4626
EXP←SCAD 1843 # 4626 4630 4988
EXP←SCAD.C 1844 # 4681 4682 4869 5051
EXP←SIGN 1850 # 4465 4468 4476 4516 4519 4539 4545 4644 4662 4704 4908
4963
EXP←SIGN.C 1851 #
EXP←SIGN.M 1852 # 4984
FETCH 2043 # 3248 3299 3413 3443 3473 3481 3492 3857 5829
FETCH+1 2044 #
FE←# 1780 # 3712 3911 3915 3918 3936 4076 4098 4181 4188 4191 4296
4299 4313 4373 4408 4409 4410 4411 4518 4548 4585 4723 4919
4980 5012 5118 5222 5223 5259 5268 5647
FE←# AND S 1776 # 5797 5855 5870 5879
FE←#+AR0-8 1796 #
FE←#+SC 1782 # 4521
FE←#-SC 1783 # 5182
FE←+# 1781 #
FE←-1 1806 # 4678 5801
FE←-SC-1 1779 # 6110
FE←AR0-8 1794 # 4660 6040 6042
FE←AR0-8 AND # 1797 #
FE←AR0-8 COMP 1795 #
FE←EXP 1790 # 4465 4468 4662 4908 6105
FE←EXP+SC 1792 # 4704
FE←EXP-# 1793 # 3641 4740
FE←EXP-1 1791 # 4539
FE←FE AND AR0-8 1799 #
FE←FE AND # 1789 #
FE←FE OR # 1788 #
FE←FE OR AR0-8 1798 #
FE←FE SHRT 1804 #
FE←FE+# 1786 # 4559 4562 4795 4817 5024 5026
FE←FE+1 1807 # 4118 4123 4125 4127 4129 4136 4138 4140 4141 4146 4304
4486 4487 4490 4679 4819 4868 5002 5004 5027 5050
FE←FE+SC 1784 # 4477 4965
FE←FE-# 1787 # 4800 4802 4810 4814 4823 4831
FE←FE-1 1808 # 3744 3949 3950 4209 4212 4217 4226 4242 4243 4244 4245
4246 4247 4248 4249 4404 4405 4406 4407 4603 4604 4798 5030
5261 5262 5263 5264 5649
FE←FE-SC 1785 # 5031 5047
FE←P 1777 # 3846 3849
FE←P AND # 1802 #
FE←P+SC 1803 #
FE←S 1775 # 5134
FE←SC 1778 # 4121 4133 4260 4263 5180
FIN STORE 2057 # 2487 2488 2494 2496 3071 3413 3423 3481 3492 3653 3673
5085 5105 6279 7059
FIN XFER 2058 # 2463 4926 5377 5745
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 178
; CROSS REFERENCE LISTING
FM←AR 1307 # 3379 3382 3385 5080 5198 5204 5206 5802 5900 5901 5914
5915 5916 6040 6042 6134 6275
FORCE AR-ARX 1228 # 3378 3381 3384 5898 5899 5907
GEN # AND AR0-8 1817 #
GEN #+AR0-8 1816 #
GEN #+SC 1815 # 4009 4936
GEN -AR LONG 1695 # 4211 4214 4396 4645 4885 4916 5057
GEN AC0 1120 #
GEN AR 1225 # 3793 3795 3811 4990 5409 5410 5413 5415 5417 5428 5522
GEN AR*AC0 1145 # 3053 3718 3720 4921
GEN AR*BR 1238 # 4100 4298 4314
GEN AR+1 1232 # 5118
GEN AR+2BR 1271 # 4649
GEN AR+BR 1239 # 4336
GEN AR+E1 1366 #
GEN AR+XR 1652 # 3794 3796 3810 3813
GEN AR-1 1233 #
GEN AR-2BR 1272 # 4647
GEN AR-AC3 1252 #
GEN AR-BR 1240 # 4335
GEN AR-BR-1 1241 #
GEN ARX 1226 # 2423 5139
GEN ARX*CN1000 1519 # 6089 6095
GEN ARX+XR 1653 # 2421 2425 5138 5140
GEN BR*2 1227 # 5916
GEN CRY18 2099 # 3174 3230 3403 3407 4807 5382 5392 6094 6266
GEN FE 1810 # 2347
GEN FE AND # 1813 # 6077
GEN FE AND SC 1812 #
GEN FE-# 1814 # 4677
GEN FE-SC 1811 # 5175
GEN P AND SC 1801 # 2396
GEN P AND # 1800 #
GEN P-# 1821 # 3726 3731 3735 3738
GEN SC 1809 # 4629 6058
GEN SV.PFW 1496 # 6090 6096
GET ECL EBUS 1992 # 2351 2365 5440 5898 5899
HALT 2109 # 3210
I FETCH 2042 # 2463 2486 2487 2488 2494 2496 2740 3423 3728 3845 3881
3900 3925 3937 4000 4025 4219 4228 4290 4293 4327 4342 4364
4395 4396 4670 4764 4765 4887 5055 5085 5094 5105 5203 5237
5388 7059
INH CRY18 2100 # 3437 3456 3716 5231
IO INIT 1980 # 5428
IR DISP 1945 # 2452 2458 2464 2470 2476
JFCL FETCH 2049 # 3270
JFCL S 2106 # 3272
JFCL T 2105 # 3268
JPC0 1557 #
JPC0←AR 1591 #
JPC1 1558 #
JPC10←AR 1599 #
JPC10 1565 #
JPC11←AR 1600 #
JPC11 1566 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 179
; CROSS REFERENCE LISTING
JPC12←AR 1601 #
JPC12 1567 #
JPC13←AR 1602 #
JPC13 1568 #
JPC14←AR 1603 #
JPC14 1569 #
JPC15←AR 1604 #
JPC15 1570 #
JPC16←AR 1605 #
JPC16 1571 #
JPC17←AR 1606 #
JPC17 1572 #
JPC1←AR 1592 #
JPC2 1559 #
JPC2←AR 1593 #
JPC3 1560 #
JPC3←AR 1594 #
JPC4 1561 #
JPC4←AR 1595 #
JPC5 1562 #
JPC5←AR 1596 #
JPC6 1563 #
JPC6←AR 1597 #
JPC7 1564 #
JPC7←AR 1598 #
JUMP FETCH 2047 # 3121 3140 3162 3174
LD PREV CTXT 2014 # 3678
LH.AGE 1440 # 6062
LH.AGE←AR 1467 #
LOAD AR 2035 # 3352 3376 3379 3382 3434 3683 5394 5742 5743 5784 5808
5809 5814 5831 5866 6288 7044 7045 7052
LOAD AR VIA RPW 2038 # 6057
LOAD ARX 2036 # 2408 2734 3410 3436 3654 4280 4909 5745 5793 5801
LOAD EBR 2072 # 5638
LOAD IR 2037 # 2367 2371 2413 3766 3786 3790
LOAD UBR 2073 # 5596
MAP 2071 # 6132
MB WAIT 2056 # 2451 3336 3800 4926 5177 5377 5449 5599 5645 5909 6134
6231
MEM←AR 2061 # 2757 3364 3366 3420 3425 3675 3682 5134 5384 5393 5725
5828 6069 6287 7057 7060
MQ←0.C 1621 #
MQ←0.M 1631 # 3908 3922 4486 4487 4490 4943 4946 5003 5005 5201
MQ←0.S 1626 # 2737 2753 4281 4908
MQ←1 1646 #
MQ←1S 1612 #
MQ←AD 1166 #
MQ←ARX 1160 # 3919 4966 4968
MQ←ARX COMP 1206 #
MQ←AR 1159 # 2420 2422 2536 3911 4075 4097 4306 4312 4408 4409 4410
4411 4478 4481 4518 4976 4980 4987 5039 5041 5174 5235 5659
5704 5783 5784 5785 5786 5787
MQ←AR (AD) 1167 #
MQ←AR SWAP 1712 #
MQ←BR COMP 1205 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 180
; CROSS REFERENCE LISTING
MQ←MQ*.25 1193 # 3712 4326 5023
MQ←MQ*2 1188 # 4324 4391
MQ←MQ+1 1254 #
MQ←SHIFT 1163 # 3891 3898 3917 3924 3931 3935 4014 4295 4338 4343 4366
4382 4483 4762 4811 4940 4949 4951 5034 5035 5593 6266
MSK 1299 #
MSK←AR 1335 #
MUL 4115 # 4118 4123 4125 4127 4129 4136 4138 4140 4141 4146 4304
NO CRY 1917 # 3014 3017
NORM 1973 # 4493 4561 4573 4796 4810 4815 4823 4832 4857 4865 4953
4990 5008 5028 5036 5040 5041
NORM AR 1974 # 4521
NORM -AR 1975 # 4794
NXT INSTR 1950 # 2491 2510 4330
NXT INSTR AFTER AC1 1955 # 2518
PC←VMA 1679 # 3288
PF DISP 1972 # 5901
PFA←AR 1456 #
PHYS REF 2068 # 5814 5831 5852 6057
PORTAL 2108 #
PT FETCH 2067 #
PT REF 2066 # 2408
PT SEL←INVAL 2083 # 5586
PT SEL←NORMAL 2084 # 5652
P←# 1839 # 3737
P←-SC 1831 # 5239
P←1S 1847 #
P←FE 1838 # 3851
P←FE OR SC 1842 #
P←FE+SC 1841 #
P←FE-S 1840 # 5123
P←P AND # 1835 #
P←P AND SC 1833 #
P←P OR # 1834 #
P←P OR SC 1832 # 6138
P←P+# 1836 # 3740
P←P+1 1828 #
P←P+S 1827 #
P←P-# 1837 # 3730 3734
P←P-S 1826 # 5082 5089 5098 5890
P←SC 1829 # 5196 5201 5610
P←SC# 1830 # 6123
P←SCAD 1822 # 3851
P←SCAD# 1825 # 3730 3734 3737 3740 6088 6123
P←SCAD.C 1824 # 5123
P←SCAD.M 1823 # 5082 5089 5098 5196 5201 5239 5610 5890 6138
RD+CLR C CNT 2023 # 5714
RD+CLR E CNT 2021 # 5713
RD+CLR PA 2019 # 5712
RD+CLR TB 2017 # 5711
READ EBR 2074 # 5627 5810 5849
READ ERA 2076 # 5503
READ UBR 2075 # 5612
REL EBUS 1984 # 3259 5417 5522 6270
REL ECL EBUS 1993 # 2393 2394 2398 3339 3372 5379 5631 5643 5670 5706 5715
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 181
; CROSS REFERENCE LISTING
5912
REQ EBUS 1983 # 3257 5402 5526 6268
REQ SV.VMA 1479 # 6115
REQ VMA HELD 1686 #
RETURN0 1932 # 6115
RETURN1 1933 # 5137 5138 5436 5440 5726 5747
RETURN10 1940 # 4382
RETURN12 1941 # 5865
RETURN2 1934 # 3947 4648 4650 4926 5162 5163 5268 7040 7061
RETURN3 1935 # 2761 3690 4219 4228 4408 4411 5177 5186 5418 5428 5616
RETURN4 1936 # 4133 4967 4969 5117 5120 5121 5124 5860
RETURN5 1937 # 4409 4410
RETURN6 1938 # 4121 4221 4230 4261 4264
RETURN7 1939 # 4222 4231
RH.AGE 1441 # 6064
RH.AGE←AR 1468 #
RSTR FLAGS←AR 2104 # 3235
SBUS DIAG 2078 # 5506
SC←# 1740 # 2352 2354 2739 2752 2755 3231 3265 3267 3634 3650 3675
3741 3843 3911 3936 4018 4027 4082 4102 4174 4176 4284 4317
4338 4359 4381 4387 4583 4759 4806 4812 4852 4881 4952 4990
5007 5020 5029 5035 5245 5445 5590 5598 5600 5604 5615 5623
5637 5646 5660 5671 5709 5723 5783 5804 5825 5841 5859 5904
6037 6060 6061 6072 6073 6074 6075 6082 6254 6267
SC←# AND S 1746 #
SC←# OR SC 1744 # 6124
SC←#+SC 1742 # 3874 3877 3879 3894 3897 3932 3934 3987 3991 4013 4015
4478 4485 4608 4610 4648 4650 4939 4966 4977 6135
SC←#-SC 1741 # 3690 4481 4968 5102 5151 5183 5882
SC←-SC 1750 #
SC←-SC-1 1751 # 6113
SC←1 1752 # 2365 4167 4351 4366 5221 6070
SC←1S 1753 #
SC←AR0-8 1771 # 6054
SC←AR0-8 AND # 1763 #
SC←EA 1762 # 3840 3865 3867 3886 3889 3912 3915 4702
SC←EXP 1764 # 4516 6105 6108
SC←EXP+1 1765 # 4545
SC←EXP+SC 1767 # 4519 4984
SC←EXP-# 1768 # 4617 4619
SC←EXP-1 1766 #
SC←EXP-SC 1769 # 4476 4644 4963
SC←FE 1754 # 4585 4670 5154 5181
SC←FE AND # 1761 #
SC←FE+# 1760 # 4761
SC←FE+1 1755 #
SC←FE+SC 1757 # 3920 3923 5093 5156 5875
SC←FE-1 1756 # 4923
SC←FE-SC 1758 # 5185 5199
SC←FE-SC-1 1759 #
SC←P 1749 # 5092 5101 5193 5891
SC←P AND # 1745 #
SC←P-# 1747 # 5238
SC←PF.ILW 1525 # 6082
SC←PF.PNA 1526 # 6072
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 182
; CROSS REFERENCE LISTING
SC←S 1748 # 5081 5234
SC←SC AND # 1743 # 6055
SET AROV 2093 # 4010 4086 4103 4318 4756
SET CONS XCT 2119 # 3297
SET DATAI 1982 # 5837 5871
SET DATAO 1981 # 5827
SET EBUS DEMAND 1988 # 5411
SET FL NO DIV 2096 # 4552 4588 5015
SET FLAGS←AR 2103 # 2323 2401
SET FLOV 2095 # 4678
SET FPD 2091 # 5134 5394 5395
SET HALTED 2117 # 2349 3287
SET IO PF 2121 # 6293
SET NO DIVIDE 2094 # 4171
SET PC+1 INH 2112 # 2409
SET PI CYCLE 2111 # 2347 5716 5779
SET PXCT 2116 # 3763
SET SR1 2155 # 4573 4794
SET SR2 2156 # 4346
SET SR3 2157 # 4336
SET SXCT 2115 # 3784
SFLGS←AR 1337 #
SFLGS 1300 #
SH DISP 1965 # 2389 3946 5779 5797 6070
SIGNS DISP 1970 # 4182 4347 4351 4355 5916 6038
SKIP FETCH 2046 # 3071
SKP -EBUS GRANT 1986 # 5425
SKP -EBUS XFER 1987 # 5415
SKP -START 1884 # 3290
SKP AC#0 1883 # 2489 3072 3785 4697
SKP AC0+ 1901 # 4261
SKP AC0- 1900 # 4264
SKP AD NE 1879 # 3843 4669 5202
SKP AD0 1875 # 3719 3721 4100 4298 4314 4549 4586 4921 5011 6090 6096
6121
SKP ADX0 1876 #
SKP AR EQ 1911 # 4627 4889
SKP AR GT BR 1895 # 5864
SKP AR NE 1905 # 3293 5223
SKP AR SIG 1899 # 4006 4082
SKP AR0 1872 # 2571 2709 2716 3717 3854 4169 4189 4192 4339 4340 4618
4620 4676 4679 4723 4985 6105 6108
SKP AR1 1902 #
SKP AR18 1877 # 2695 2702 3841 3865 3867 3886 3889 3912 3915 5593
SKP AR2 1903 # 5590
SKP AR6 1904 # 5785 5787 5818 5839
SKP ARX LE BRX 1897 #
SKP ARX LT BRX 1896 # 7056
SKP ARX NE 1907 # 4792
SKP ARX+MQ NE 1910 # 5020
SKP ARX0 1873 #
SKP ARX2 1906 #
SKP BR EQ 1908 # 4560 5194
SKP BR EQ -1 1909 # 7033
SKP BR0 1874 # 4374 4551 4587 4644 5014
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 183
; CROSS REFERENCE LISTING
SKP CRY0 1881 # 3403 3407 3437 3456 4628 4647 4649 4685 4807 5038
SKP EXP NE 1893 # 4674
SKP FETCH 1890 #
SKP INTRPT 1882 # 2424 2426 3294 3321 3651 3760 3795 3796 3812 3814 5142
5429 6154 7054
SKP IO LEGAL 1990 # 3210 3336 5371 5378 5446 5453 5455 5460 5463 5472 5475
5505 5512 5515 5585 5588 5604 5619 5622 5658 5674 5677 5685
5688 5696
SKP KERNEL 1886 # 3355 3370 3759 3782
SKP MQ EQ -1 1898 #
SKP PI CYCLE 1991 # 5384 6233
SKP P NE 1894 #
SKP P!S XCT 1888 # 7045
SKP RPW 1889 # 5905
SKP RUN 1885 #
SKP SC LE 36 1891 #
SKP SC NE 1892 # 3985
SKP SC0 1913 #
SKP SCAD NE 1880 # 2396 3735 3846 3849 4677 6058 6077
SKP SCAD0 1878 # 3641 3727 3732 3738 3744 3875 3878 3880 3894 3897 3920
3923 3932 3934 3949 3950 3987 3992 4009 4476 4479 4481 4485
4740 4761 4937 4939 4963 4967 4969 5083 5103 5151 5156 5176
5883 5890
SKP USER 1887 #
SLEN 1298 #
SLEN←AR 1333 #
SR DISP 1971 # 4369 4393 4591 4593 4797 4799 4801 4803 4818 4820 4821
4830 4849 4853 4869 5051 5144 5914 6303
SRCP 1301 #
SRCP←AR 1336 #
SR←# 2130 # 3459 4457 4459 4510 4511 4540 4590 4592
SR←0 2131 # 2503 2504 2517 3027 3460 3684 4879 4883 4893 4895 5046
5056 6300
SR←1 2132 # 4608 4610 5000 5022
SR←BLT(DST) 2134 # 7049 7050 7051
SR←BLT(SRC) 2133 # 7039 7061
STORE 2040 # 2534 2752 2755 2758 3087 3102 3363 3365 3367 3404 3408
3460 3478 3487 3652 3672 3673 3680 4686 4688 5117 5123 5186
5392 5467 5508 5671 5724 5726 5819 5820 5847 5848 5852 6063
6065 6133 6274 6280 7054
SV.ARX 1453 # 5901 6112 6194
SV.ARX←AR 1460 # 5901
SV.AR←AR 1459 # 5900
SV.AR 1452 # 5900 5904 6109
SV.BR←AR 1461 # 5916
SV.BR 1445 # 5916 6106 6120
SV.IOPF←AR 1291 # 6256
SV.PAR 1454 # 6134
SV.PAR←AR 1463 # 6134
SV.PFW 1450 # 5914 5915 6090 6096 6121 6233
SV.PFW←AR 1457 # 5914 5915
SV.SC←AR 1462 #
SV.VMA 1444 # 6040 6042 6088 6115 6123
SV.VMA←AR 1458 # 6040 6042
SWEEP CACHE 2077 # 5448
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 184
; CROSS REFERENCE LISTING
T0 1293 # 5080 5197 5231 5793 5802
T0←AR 1328 # 5080 5802
T1 1294 # 5198 5202 5204 5225
T1←AR 1329 # 5198 5204
T2 1295 # 5206 5235
T2←AR 1330 # 5206
TAKE INTRPT 2113 # 2429 3291 3691 3764 3767 3800 6232
TEST AR 1918 #
TEST AR.AC0 1920 # 3022
TEST AR.BR 1921 # 3270 5383 5385
TEST AR.MSK 1922 #
TEST ARX 1919 #
TEST BRL 1923 # 5382
TEST FETCH 2048 # 3014 3017 3022 5382 5383 5385
TRAP1 2088 #
TRAP2 2089 # 3420 3425 3440 3458
TRAP3 2090 # 2402
UPFW 1435 # 3363 3379 6275
UPFW←AR 1469 # 3379 6275
UPT FETCH 2065 #
UPT REF 2064 # 3672 3683 5743
USER REF 2070 # 6092 6098
VMA←# 1671 # 3635 5705 5733 5735 5737 5739 6231
VMA←#+AR32-35 1678 #
VMA←40 1672 # 3652
VMA←40+PI*2 1674 # 5781 5782 5788
VMA←41 1673 # 3653
VMA←41+PI*2 1675 # 5792
VMA←420+TRAP 1676 # 2389
VMA←430+MODE 1677 # 3682
VMA←AC3 1666 #
VMA←AR 1659 # 3410 5393 5448 5638 5784 5785 5786 5805 5810 5874
VMA←AR+1 1660 # 5842 5881
VMA←AR+BR 1664 # 5831
VMA←AR+CBR 1510 #
VMA←AR+E0 1361 #
VMA←AR+E0+1 1362 #
VMA←AR+E1 1364 #
VMA←AR+SBR 1508 #
VMA←AR+XR 1654 #
VMA←AR-1 1661 # 5830
VMA←ARX 1658 # 3443 5137 5849 7054
VMA←ARX+BR 1665 # 6055 7044 7045 7052
VMA←ARX+CBR 1512 #
VMA←ARX+XR 1655 # 5138
VMA←BR 1663 # 3248 3413 3460
VMA←E0+1 1360 #
VMA←MQ 1662 # 5596 5671 5798 5799 5801
VMA←PC+1 1668 #
VMA←SV.VMA 1478 # 6123
VMA←T0+1 1344 # 5793
VMA←VMA HELD 1687 # 6132
VMA←VMA+1 1670 # 2734 2757 3352 3357 3363 3364 3366 3376 3377 3380 3481
3492 3673 3675 4280 4909 5507 5726 5745 5866 6280 6287
VMA←VMA-1 1669 # 5724
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 185
; CROSS REFERENCE LISTING
WR PT ENTRY 2082 # 6093 6099
WR REFILL RAM 2079 # 5456
XAR←PUR+AR0 1515 #
XJPC0←AR 1574 #
XJPC0 1540 #
XJPC1←AR 1575 #
XJPC1 1541 #
XJPC10 1548 #
XJPC10←AR 1582 #
XJPC11 1549 #
XJPC11←AR 1583 #
XJPC12 1550 #
XJPC12←AR 1584 #
XJPC13 1551 #
XJPC13←AR 1585 #
XJPC14 1552 #
XJPC14←AR 1586 #
XJPC15 1553 #
XJPC15←AR 1587 #
XJPC16 1554 #
XJPC16←AR 1588 #
XJPC17 1555 #
XJPC17←AR 1589 #
XJPC2←AR 1576 #
XJPC2 1542 #
XJPC3←AR 1577 #
XJPC3 1543 #
XJPC4←AR 1578 #
XJPC4 1544 #
XJPC5←AR 1579 #
XJPC5 1545 #
XJPC6←AR 1580 #
XJPC6 1546 #
XJPC7←AR 1581 #
XJPC7 1547 #
#OPTIONS 2124 # 5467
(AR+ARX+MQ)*.25 1195 # 5043
(AR+ARX+MQ)*2 1194 # 4121 4133 5030
(MQ)*.25 1168 # 5043
(MQ)*2 1169 # 4121 4133 5030
2AR←AR OR PUR 1514 #
(D) MACRO%
AC 2184 # 2544 2545 2549 2550 2554 2555 2559 2560 2584 2585 2589
2590 2594 2595 2599 2600 2604 2605 2609 2610 2614 2615 2619
2620 2626 2627 2631 2632 2636 2637 2641 2642 2646 2647 2651
2652 2656 2657 2661 2662 2766 2767 2776 2777 2786 2787 2796
2797 2801 2802 2818 2819 2828 2829 2838 2839 2848 2849 2858
2859 2869 2870 2879 2880 2889 2890 2899 2900 2909 2910 4033
4034 4045 4046 4058 4059
B 2187 # 2769 2779 2789 2799 2804 2821 2831 2841 2851 2861 2872
2882 2892 2902 2912 4036 4048 4061
BLKI 2220 # 5301 5346 5357
BLKO 2221 # 5348 5359
CONI 2224 # 5284 5295 5306 5329 5340 5351 5362
CONO 2225 # 5283 5294 5305 5328 5339 5350 5361
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 186
; CROSS REFERENCE LISTING
CONSO 2226 # 5286 5297 5308 5331 5342 5353 5364
CONSZ 2227 # 5285 5296 5307 5330 5341 5352 5363
DATAI 2222 # 5280 5302 5347 5358
DATAO 2223 # 5282 5304 5326 5327 5349 5360
DBL AC 2188 # 4090 4091 4151 4152 4156 4157
DBL B 2189 # 4093 4154 4159
FL-AC 2190 # 4422 4427 4428 4432 4437 4438 4498 4503 4504 4527 4528
4532 4533 4693 4717
FL-BOTH 2192 # 4425 4430 4435 4440 4501 4506 4530 4535
FL-MEM 2191 # 4424 4429 4434 4439 4500 4505 4529 4534
I 2168 # 2530 2925 2926 2927 2928 2929 2930 2941 2942 2943 2944
2945 2946 2947 2948 2959 2960 2961 2962 2963 2964 2965 2966
2977 2978 2979 2980 2981 2982 2983 2984 3033 3034 3035 3036
3037 3038 3039 3040 3109 3110 3111 3112 3113 3114 3115 3116
3128 3129 3130 3131 3132 3133 3134 3135 3147 3148 3149 3150
3151 3152 3153 3154 3168 3169 3183 3184 3391 3393 3394 3465
3466 3467 3468 3504 3531 3532 3533 3535 3536 3537 3538 3540
3541 3542 3543 3545 3546 3547 3548 3553 3554 3555 3556 3558
3559 3560 3561 3563 3564 3565 3566 3568 3569 3570 3571 3575
3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587
3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599
3600 3601 3602 3621 3622 3624 3625 3702 3776 3821 3822 3823
3824 3825 3826 3827 3831 4059 4091 4152 4157 4428 4438 4504
4533 4693 4713 5281 5283 5284 5285 5286 5294 5295 5296 5297
5303 5305 5306 5307 5308 5312 5313 5314 5315 5316 5317 5318
5319 5328 5329 5330 5331 5337 5338 5339 5340 5341 5342 5350
5352 5353 5361 5363 5364
I-PF 2169 # 2545 2550 2555 2560 2585 2590 2595 2600 2605 2610 2615
2620 2627 2632 2637 2642 2647 2652 2657 2662 2766 2767 2777
2787 2797 2802 2812 2819 2829 2839 2849 2858 2859 2870 2880
2890 2900 2909 2910 2923 2924 2932 2933 4034 4046
M 2185 # 2546 2551 2556 2561 2586 2591 2596 2601 2606 2611 2616
2621 2628 2633 2638 2643 2648 2653 2658 2663 2768 2778 2788
2798 2803 2813 2814 2820 2830 2840 2850 2860 2871 2881 2891
2901 2911 4035 4047 4060 4092 4153 4158 5290
R 2171 # 2727 2728 2934 2935 2936 2937 2938 2939 2950 2951 2952
2953 2954 2955 2956 2957 2968 2969 2970 2971 2972 2973 2974
2975 2986 2987 2988 2989 2990 2991 2992 2993 3042 3043 3044
3045 3046 3047 3048 3049 3060 3061 3062 3063 3064 3065 3066
3067 3305 3392 3607 3608 3614 3700 3775 4058 4090 4151 4156
4269 4270 4271 4272 4422 4423 4427 4432 4433 4437 4498 4499
4503 4527 4528 4532 4656 4694 4709 4716 4717 4901 4902 4903
4904 5065 5067 5282 5292 5293 5304 5326 5327 5349 5360
R-PF 2172 # 2544 2549 2554 2559 2584 2589 2594 2599 2604 2609 2614
2619 2626 2631 2636 2641 2646 2651 2656 2661 2776 2786 2796
2801 2811 2818 2828 2838 2848 2869 2879 2889 2899 4033 4045
RPW 2175 # 2529 2547 2552 2557 2562 2586 2587 2591 2592 2597 2602
2607 2612 2617 2622 2628 2629 2633 2634 2639 2644 2649 2654
2659 2664 2778 2779 2788 2789 2798 2799 2803 2804 2820 2821
2830 2831 2840 2841 2850 2851 2871 2872 2881 2882 2891 2892
2901 2902 3076 3077 3078 3079 3080 3081 3082 3083 3091 3092
3093 3094 3095 3096 3097 3098 4035 4036 4047 4048 4657
RW 2173 # 4060 4061 4092 4093 4153 4154 4158 4159 4424 4425 4429
4430 4434 4435 4439 4440 4500 4501 4505 4506 4529 4530 4534
4535 5064 5066 5301 5346 5348 5357 5359
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 187
; CROSS REFERENCE LISTING
S 2186 # 2547 2552 2557 2562 2587 2592 2597 2602 2607 2612 2617
2622 2629 2634 2639 2644 2649 2654 2659 2664
SJC- 2211 # 3033 3042 3060 3076 3091 3109 3128 3147
SJCA 2215 # 3037 3046 3064 3080 3095 3113 3132 3151
SJCE 2213 # 3035 3044 3062 3078 3093 3111 3130 3149
SJCG 2218 # 3040 3049 3067 3083 3098 3116 3135 3154
SJCGE 2216 # 3038 3047 3065 3081 3096 3114 3133 3152 3168
SJCL 2212 # 3034 3043 3061 3077 3092 3110 3129 3148 3169
SJCLE 2214 # 3036 3045 3063 3079 3094 3112 3131 3150
SJCN 2217 # 3039 3048 3066 3082 3097 3115 3134 3153
TC- 2202 # 2959 2960 2968 2969
TCA 2204 # 2963 2964 2972 2973
TCE 2203 # 2961 2962 2970 2971
TCN 2205 # 2965 2966 2974 2975
TN- 2194 #
TNA 2196 # 2927 2928 2936 2937
TNE 2195 # 2925 2926 2934 2935
TNN 2197 # 2929 2930 2938 2939 3184
TO- 2206 # 2977 2978 2986 2987
TOA 2208 # 2981 2982 2990 2991
TOE 2207 # 2979 2980 2988 2989
TON 2209 # 2983 2984 2992 2993
TZ- 2198 # 2941 2942 2950 2951
TZA 2200 # 2945 2946 2954 2955
TZE 2199 # 2943 2944 2952 2953
TZN 2201 # 2947 2948 2956 2957
W 2170 # 2546 2551 2556 2561 2596 2601 2606 2611 2616 2621 2638
2643 2648 2653 2658 2663 2746 2747 2768 2769 2813 2814 2860
2861 2911 2912 3615 5279 5280 5290 5291 5302 5324 5325 5335
5336 5347 5351 5358 5362
(U) MARK 837 #
(U) MBOX CTL 1016 # 5926 5927 5929
CLR PT LINE 1023 # 5650
NORMAL 1021 # 5652
PT DIR CLR 1022 # 5586
PT DIR WR 1019 #
PT WR 1020 # 6093 6099
SET IO PF ERR 1018 # 6293
SET PAGE FAIL 1017 #
(U) MEM 703 #
A IND 712 # 2423 2425 3795 3796 3811 3813
A RD 708 # 2419 2421 3793 3794 3803 3805 3809
AD FUNC 716 # 6115 6115
ARL IND 705 # 3490 3787 3790 3840 3846 3908 3919 3922 4163 4165 4167
4168 4218 4227 4304 4340 4486 4487 4490 4626 4630 4633 4667
4702 4793 4829 4888 4943 4946 4984 4988 5003 5003 5005 5005
5082 5082 5089 5090 5098 5099 5193 5196 5196 5201 5201 5201
5208 5227 5230 5239 5471 5471 5511 5512 5587 5588 5610 5618
5619 5632 5668 5669 5684 5685 5721 5722 5824 5890 5890 6138
7023
B WRITE 709 # 2568 2577 2673 2675 2678 2681 2685 2689 2698 2699 2705
2706 2712 2713 2719 2720 2773 2783 2793 2808 2825 2835 2845
2855 2865 2876 2886 2896 2906 2916 3339 4040 4053 4085 4102
4174 4176 4879 4883 5379 5522 5633
BYTE IND 713 # 5139 5140
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 188
; CROSS REFERENCE LISTING
BYTE RD 717 # 5137 5138
FETCH 710 # 2463 2486 2487 2488 2494 2496 2740 3014 3017 3022 3053
3071 3121 3140 3162 3174 3248 3270 3299 3413 3423 3443 3473
3481 3492 3728 3845 3857 3881 3900 3925 3937 4000 4025 4219
4228 4290 4293 4327 4342 4364 4395 4396 4670 4764 4765 4887
5055 5085 5094 5105 5203 5237 5382 5383 5385 5388 5829 7059
LOAD AR 714 # 3352 3376 3379 3382 3434 3683 5394 5742 5743 5784 5808
5809 5814 5831 5866 6288 7044 7045 7052
LOAD ARX 715 # 2408 2734 3410 3436 3654 4280 4909 5745 5793 5795 5798
5799 5801 5805
MB WAIT 706 # 2413 2428 2429 2451 2457 2469 2475 2491 2510 2736 2737
2757 3336 3364 3366 3370 3377 3380 3383 3420 3425 3440 3441
3458 3459 3675 3682 3684 3799 3799 3800 4330 4926 5134 5142
5151 5174 5174 5177 5377 5384 5393 5449 5599 5645 5725 5818
5827 5828 5909 6060 6061 6069 6134 6231 6287 7049 7050 7057
7060
REG FUNC 711 # 5448 5456 5503 5506 5596 5612 5627 5638 5810 5849 6132
RPW 719 # 6057
SEC 0 707 #
WRITE 718 # 2534 2752 2755 2758 3087 3102 3363 3365 3367 3404 3408
3460 3478 3487 3652 3672 3673 3680 4686 4688 5117 5123 5186
5392 5467 5508 5671 5724 5726 5819 5820 5847 5848 5852 6063
6065 6133 6274 6280 7054
(U) MQ 628 #
MQ SEL 632 # 4121 4133 5030 5051
MQ*.25 631 # 3712 4118 4123 4125 4127 4129 4136 4138 4140 4141 4146
4304 4326 5023
MQ*2 630 # 4209 4212 4217 4226 4242 4243 4244 4245 4246 4247 4248
4249 4324 4391 4404 4405 4406 4407 4603 4604 4606 4609 5261
5262 5263 5264
MQM SEL 633 # 5043
SH 629 # 2420 2422 2536 3891 3898 3911 3917 3919 3924 3931 3935
4014 4075 4097 4295 4306 4312 4338 4343 4366 4382 4408 4409
4410 4411 4478 4481 4483 4518 4762 4811 4940 4949 4951 4966
4968 4976 4980 4987 5034 5035 5039 5041 5174 5235 5593 5659
5704 5783 5784 5785 5786 5787 6266
(U) MQ CTL 938 #
AD 946 #
MQ*.25 944 # 5043
MQ*2 940 # 4121 4133 5030
SH 943 #
0S 942 # 5051
1S 945 #
(U) MREG FNC 1006 #
LOAD CCA 1012 # 5448
LOAD EBR 1014 # 5638
LOAD UBR 1013 # 5596
MAP 1015 # 6132
READ EBR 1009 # 5627 5810 5849
READ ERA 1010 # 5503
READ UBR 1008 # 5612
SBUS DIAG 1007 # 5506
WR REFILL RAM 1011 # 5456
(U) PARITY 1073 #
(D) PARITY 1112 #
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 189
; CROSS REFERENCE LISTING
(U) PC FLAGS 950 #
AROV 951 # 4010 4086 4103 4318 4756
DIV CHK 958 # 4171
FDV CHK 959 # 4552 4588 5015
FLOV 952 # 4678
FPD 953 # 5134 5394 5395
FXU 957 #
TRAP1 955 #
TRAP2 954 # 3420 3425 3440 3458
TRAP3 956 # 2402
(U) Q1 892 #
Q 894 # 5467
(U) Q10 878 #
Q 879 # 5467
(U) Q100 868 #
Q 869 # 5467
(U) Q2 886 #
Q 888 # 5467
(U) Q20 872 #
Q 876 # 5467
(U) Q200 866 #
Q 867 # 5467
(U) Q4 880 #
Q 882 # 5467
(U) Q40 870 #
Q 871 # 5467
(U) Q400 860 #
Q 864 # 5467
(U) SC 669 #
AR SHIFT 672 # 3840 3865 3867 3886 3889 3912 3915 4702
FE 670 # 4585 4670 5154 5181
SCAD 671 # 2352 2354 2365 2739 2752 2755 3231 3265 3267 3634 3650
3675 3690 3741 3843 3874 3877 3879 3894 3897 3911 3920 3923
3932 3934 3936 3937 3949 3950 3987 3991 4013 4015 4018 4027
4082 4102 4167 4174 4176 4284 4317 4338 4351 4359 4366 4381
4387 4465 4468 4476 4478 4481 4485 4516 4519 4545 4583 4608
4610 4617 4619 4644 4648 4650 4662 4679 4759 4761 4806 4812
4852 4881 4908 4923 4939 4952 4963 4966 4968 4977 4984 4990
5007 5020 5029 5035 5081 5092 5093 5101 5102 5151 5156 5183
5185 5193 5199 5221 5234 5238 5245 5445 5590 5598 5600 5604
5615 5623 5637 5646 5660 5671 5709 5723 5783 5804 5825 5841
5859 5875 5882 5891 5904 6037 6054 6055 6060 6061 6070 6072
6073 6074 6075 6082 6105 6108 6113 6124 6135 6254 6267
(U) SCAD 646 #
A 647 # 2347 2352 2354 2739 2752 2755 3231 3265 3267 3634 3650
3675 3712 3737 3741 3843 3846 3849 3851 3911 3911 3915 3918
3936 3936 3937 4018 4027 4076 4082 4098 4102 4174 4176 4181
4188 4191 4284 4296 4299 4313 4317 4338 4359 4373 4381 4387
4408 4409 4410 4411 4465 4468 4516 4518 4548 4583 4585 4662
4674 4681 4686 4688 4723 4759 4806 4812 4829 4852 4869 4881
4908 4919 4952 4980 4990 5007 5012 5020 5029 5035 5051 5092
5101 5118 5193 5222 5223 5245 5259 5268 5445 5586 5590 5598
5600 5604 5615 5623 5637 5646 5647 5660 5671 5709 5723 5781
5782 5783 5788 5804 5825 5841 5859 5891 5904 6035 6037 6060
6061 6072 6073 6074 6075 6082 6105 6105 6108 6254 6267
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 190
; CROSS REFERENCE LISTING
A+1 651 # 2365 4118 4123 4125 4127 4129 4136 4138 4140 4141 4146
4167 4304 4351 4366 4486 4487 4490 4545 4679 4819 4868 4988
5002 5004 5027 5050 5221 6070
A+B 649 # 3740 3874 3877 3879 3894 3897 3920 3923 3932 3934 3985
3987 3991 4009 4013 4015 4121 4133 4260 4263 4477 4478 4485
4519 4521 4559 4562 4608 4610 4626 4629 4648 4650 4660 4704
4761 4795 4817 4936 4939 4965 4966 4977 4984 5024 5026 5081
5093 5134 5156 5180 5196 5201 5234 5244 5610 5800 5858 5875
5886 5922 6040 6042 6054 6058 6123 6135
A-1 650 # 3744 3949 3950 4209 4212 4217 4226 4242 4243 4244 4245
4246 4247 4248 4249 4404 4405 4406 4407 4539 4603 4604 4678
4798 4923 5030 5261 5262 5263 5264 5649 5801
A-B 652 # 3641 3690 3726 3730 3731 3734 3735 3738 4476 4481 4617
4619 4644 4677 4740 4800 4802 4810 4814 4823 4831 4888 4963
4968 5031 5047 5082 5089 5098 5102 5123 5151 5175 5182 5183
5185 5199 5238 5239 5882 5890
A-B-1 648 # 4630 4682 6110 6113
AND 654 # 2396 5785 5787 5797 5818 5839 5855 5870 5879 6055 6077
6079
OR 653 # 6087 6124 6138
(U) SCADA 655 #
AR EXP 658 # 3641 4465 4468 4476 4516 4519 4539 4545 4617 4619 4644
4662 4674 4704 4740 4908 4963 4984 6105 6105 6108
AR0-5 657 # 2396 3726 3730 3731 3734 3735 3738 3740 3846 3849 5082
5089 5092 5098 5101 5193 5238 5890 5891 6087 6138
FE 656 # 2347 3744 3851 3920 3923 3949 3950 4118 4123 4125 4127
4129 4136 4138 4140 4141 4146 4209 4212 4217 4226 4242 4243
4244 4245 4246 4247 4248 4249 4304 4404 4405 4406 4407 4477
4486 4487 4490 4559 4562 4603 4604 4677 4679 4681 4686 4688
4761 4795 4798 4800 4802 4810 4814 4817 4819 4823 4831 4868
4869 4888 4923 4965 5002 5004 5024 5026 5027 5030 5031 5047
5050 5051 5093 5123 5156 5175 5185 5199 5261 5262 5263 5264
5649 5800 5858 5875 5886 6035 6077
# 659 # 2352 2354 2739 2752 2755 3231 3265 3267 3634 3650 3675
3690 3712 3737 3741 3843 3874 3877 3879 3894 3897 3911 3911
3915 3918 3932 3934 3936 3936 3987 3991 4009 4013 4015 4018
4027 4076 4082 4098 4102 4174 4176 4181 4188 4191 4284 4296
4299 4313 4317 4338 4359 4373 4381 4387 4408 4409 4410 4411
4478 4481 4485 4518 4521 4548 4583 4585 4608 4610 4648 4650
4723 4759 4806 4812 4852 4881 4919 4936 4939 4952 4966 4968
4977 4980 4990 5007 5012 5020 5029 5035 5102 5118 5151 5182
5183 5222 5223 5245 5259 5268 5445 5590 5598 5600 5604 5615
5623 5637 5646 5647 5660 5671 5709 5723 5783 5785 5787 5797
5804 5818 5825 5839 5841 5855 5859 5870 5879 5882 5904 6037
6055 6060 6061 6072 6073 6074 6075 6079 6082 6124 6135 6254
6267
(U) SCADA EN 660 #
0S 661 # 2365 3937 3985 4121 4133 4167 4260 4263 4351 4366 4626
4629 4630 4660 4678 4682 4829 4988 5081 5134 5180 5196 5201
5221 5234 5239 5244 5586 5610 5781 5782 5788 5801 5922 6040
6042 6054 6058 6070 6110 6113 6123
(U) SCADB 663 #
AR0-8 666 # 4660 6040 6042 6054 6079
AR6-11 665 # 5081 5082 5089 5098 5123 5134 5234 5785 5787 5797 5818
5839 5855 5870 5879 5890
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 191
; CROSS REFERENCE LISTING
SC 664 # 2396 3690 3874 3877 3879 3894 3897 3920 3923 3932 3934
3985 3987 3991 4009 4013 4015 4121 4133 4260 4263 4476 4477
4478 4481 4485 4519 4521 4608 4610 4626 4629 4630 4644 4648
4650 4682 4704 4888 4936 4939 4963 4965 4966 4968 4977 4984
5031 5047 5093 5102 5151 5156 5175 5180 5182 5183 5185 5196
5199 5201 5239 5244 5610 5875 5882 5922 6055 6058 6087 6110
6113 6123 6124 6135 6138
# 667 # 3641 3726 3730 3731 3734 3735 3738 3740 4559 4562 4617
4619 4677 4740 4761 4795 4800 4802 4810 4814 4817 4823 4831
5024 5026 5238 5800 5858 5886 6077
(U) SH 677 #
AR 679 # 2420 2422 2534 2536 2536 3352 3741 3763 3783 3911 3984
3986 3990 4004 4075 4097 4173 4175 4180 4283 4306 4312 4363
4408 4409 4410 4411 4478 4481 4484 4487 4518 4666 4723 4933
4935 4938 4976 4980 4987 5011 5039 5041 5092 5101 5119 5155
5174 5235 5245 5259 5267 5519 5598 5600 5615 5659 5695 5704
5783 5784 5785 5786 5787 5804 5824 5838 5840 5840 5859 5872
5891 6037 6254 7021
AR SWAP 681 # 2568 2678 2681 2684 2685 2688 2689 2705 2706 2712 2713
3017 3020 3487 3490 3715 4464 4515 4544 5375 5466 5471 5477
5511 5517 5587 5618 5627 5633 5679 5684 5698 5708 6034 6041
6043 6106 6302 7023 7038 7039
ARX 680 # 3204 3259 3372 3414 3424 3426 3494 3728 3900 3919 3925
3936 3937 4008 4012 4323 4375 4376 4392 4559 4792 4945 4948
4966 4968 5033 5204 5478 5589 5681 5697 5721 5900 6036 6109
6112
SHIFT AR!ARX 678 # 2389 2517 2758 3257 3266 3635 3652 3679 3690 3690 3742
3743 3847 3849 3874 3879 3891 3896 3898 3917 3922 3924 3931
3934 3935 3946 3989 4014 4020 4025 4026 4085 4187 4190 4295
4322 4324 4325 4328 4338 4343 4355 4366 4367 4372 4382 4390
4483 4486 4489 4584 4760 4762 4767 4811 4813 4853 4887 4940
4947 4949 4951 5031 5034 5035 5047 5054 5154 5162 5181 5184
5184 5186 5447 5593 5608 5631 5726 5732 5734 5736 5738 5779
5797 5857 5860 6045 6046 6048 6049 6069 6070 6073 6074 6075
6266 6268
(U) SKIP 721 #
AC REF 754 #
AC#0 729 # 2489 3072 3785 4697
AD CRY0 735 # 3293 3403 3407 3437 3456 4560 4627 4628 4647 4649 4685
4792 4807 4889 5020 5038 5194 5223 5864 7033
AD#0 737 # 3843 4006 4082 4669 5202
AD0 736 # 3719 3721 4100 4261 4264 4298 4314 4549 4586 4921 5011
5590 6090 6096 6121
ADX0 734 # 7056
AR0 728 # 2571 2709 2716 3717 3854 4169 4189 4192 4339 4340 4618
4620 4676 4679 4723 4985 6105 6108
AR18 727 # 2695 2702 3841 3865 3867 3886 3889 3912 3915 5593
ARX0 726 #
BR0 725 # 4374 4551 4587 4644 5014
EVEN PAR 724 #
FETCH 740 #
INTRPT 748 # 2424 2426 3294 3321 3651 3760 3795 3796 3812 3814 5142
5429 6154 7054
IO LEGAL 751 # 3210 3336 5371 5378 5446 5453 5455 5460 5463 5472 5475
5505 5512 5515 5585 5588 5604 5619 5622 5658 5674 5677 5685
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 192
; CROSS REFERENCE LISTING
5688 5696
KERNEL 741 # 3355 3370 3759 3782
P!S XCT 752 # 7045
PI CYCLE 745 # 5384 6233
PUBLIC 743 #
RPW REF 744 # 5905
RUN 750 #
SC .LT. 36 731 #
SC0 730 #
SCAD#0 733 # 2396 3735 3846 3849 3985 4674 4677 5785 5787 5818 5839
6058 6077
SCAD0 732 # 3641 3727 3732 3738 3744 3875 3878 3880 3894 3897 3920
3923 3932 3934 3949 3950 3987 3992 4009 4476 4479 4481 4485
4740 4761 4937 4939 4963 4967 4969 5083 5103 5151 5156 5176
5883 5890
USER 742 #
-EBUS GRANT 746 # 5425
-EBUS XFER 747 # 5415
-MTR REQ 755 # 2429 3291 3691 3764 3767 3800 6232
-START 749 # 3290
(U) SP MEM 991 #
CACHE INH 998 #
EPT 1000 # 5742 5808 5847 5866 6274 6288
EPT EN 997 #
EPT FETCH 1001 # 5795 5798 5799 5805
EXEC 994 # 6091 6097
FETCH 992 #
PT 1004 # 2408
PT FETCH 1005 #
SEC 0 995 #
UNPAGED 999 # 5814 5831 5852 6057
UPT 1002 # 3672 3683 5743
UPT EN 996 #
UPT FETCH 1003 #
USER 993 # 6092 6098
(U) SPEC 817 #
AD LONG 833 # 2738 2754 4211 4211 4214 4214 4259 4262 4289 4292 4305
4388 4396 4396 4645 4645 4768 4885 4885 4916 4916 4979 5020
5027 5050 5057 5057 5670 5723
ARL IND 828 # 2737 2737 2753 2753 3494 3679 3851 3851 4281 4281 4465
4468 4476 4516 4519 4520 4539 4539 4545 4545 4644 4662 4686
4688 4704 4908 4908 4910 4963 5244 5466 5681 5690 5922 6035
CALL 827 # 3257 3267 3337 3355 3370 3410 3634 3651 3676 3677 3759
3782 3911 3936 4005 4077 4099 4312 4329 4368 4373 4375 4376
4549 4551 4583 4587 4664 4933 4978 4987 4999 5000 5013 5081
5092 5093 5101 5103 5221 5234 5236 5371 5378 5402 5445 5453
5455 5460 5463 5465 5474 5505 5515 5585 5595 5598 5605 5606
5613 5622 5628 5637 5646 5657 5674 5676 5687 5695 5704 5746
5804 5826 5827 5830 5837 5841 5842 5856 5863 5870 5871 5874
5875 5880 5881 5883 5889 6255 6268 7031 7049 7050 7051
CLR FPD 822 # 5094 5107
FLAG CTL 830 # 2323 2401 3210 3216 3221 3235 3268 3272 5389 5828
GEN CRY18 825 # 3174 3230 3403 3407 4807 5382 5392 6094 6266
INH CRY18 819 # 3437 3456 3716 5231
LOAD PC 823 # 3288
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 193
; CROSS REFERENCE LISTING
MQ SHIFT 820 # 3712 4324 4326 4391 5023
MTR CTL 829 # 5675 5686 5697 5698 5699 5711 5712 5713 5714
SAVE FLAGS 831 # 3406 3473 3478 3673
SCM ALT 821 # 3840 3865 3867 3886 3889 3912 3915 4585 4670 4702 5154
5181
SEC HOLD 826 #
SP MEM CYCLE 832 # 2408 3672 3683 5742 5743 5795 5798 5799 5805 5808 5814
5831 5847 5852 5866 6057 6091 6092 6097 6098 6274 6288
XCRY AR0 824 # 2486 2516 3642 3989 3990 4001 4006 4082 4086 4187 4190
4316 4387 4395 4483 4484 4666 4668 4724 4760 4935 4938
(U) SPEC INSTR 969 #
CONS XCT 978 # 3297
CONT 979 # 3296
HALTED 977 # 2349 3287
INH PC+1 972 # 2409
INSTR ABORT 976 # 5725 6278
INTRPT INH 975 #
KERNEL CYCLE 971 #
PXCT 974 # 3763
SET PI CYCLE 970 # 2347 5716 5779
SXCT 973 # 3784
(U) SWITCH%
BACK.BLT 210 7025 7030 7032 7064 7074
CIRC 11 239 3828 3830 3832 3903 3905 3907 3909 3913 3929 3977
CIRC.BIG.OPT 242 3944 3951 3976
DECIMAL 10 233 2138 2143 3514 3519 3524 3657 3662 6166 6174 6184
6188 6199 6203 6314 6325 6378 6382 6545 6742
EIS 9 231 2135 2147 3505 3530 3549 3640 3643 3645 3647 3649
3656 3665 4710 4712 4714 4743 4747 4754 6159 6161 6189 6198
6216 6305 6335 6338 6992
FPLONG 214 4443 4454 4460 4508 4513 4537 4542 4578 4636 4840 4842
4844 4850 4858 4874 4876 4878 4880 4882 4884 4892 4894 4896
IMULI.OPT 223 4064 4067 4074 4078 4081
ITSPAGE 3 237 844 848 873 875 877 1424 1434 1451 1464 1474
1487 1505 1516 1521 1527 1533 3197 3199 3201 5919 5921 5923
5932 6030 6101
JPC 251 284 286 881 883 885 1446 1449 1470 1473 1497 1504
1956 1958 1961 1963 2506 2509 3120 3122 3124 3139 3141 3143
3161 3163 3165 3173 3175 3177 3190 3192 3195 3238 3245 3247
3269 3273 3278 3356 3359 3362 3373 3375 3412 3415 3419 3442
3444 3446 3472 3474 3476 3480 3482 3484 3493 3495 3497 3856
3858 3862 7078 7152
JPC.RING 254 285 887 889 891 1500 1503 3203 3205 3208 3215 3217
3219 3239 3241 3244 3438 3447 3453 7096 7101 7144
JRSTON 6 266 3227 3229 3232 3251 3261
KLPAGE 13 221 861 863 865 1287 1290 1423 1536 3327 3329 5895
6140 6149 6153 6155 6157 6193 6195 6197 6217 6223 6229 6234
6252 6281 6283 6299 6301
LISP 248 2152 2154
LPM.SPM 7 269 3350 3386 3610 3613 3616 6259 6261 6264 6271 6273
6276 6284 6286 6289
MAP 4 260 2148 2150 3306 3308 3310 3313 3315 3317 3324 3330
3334 6218 6222
MVSQZ 12 245 3697 3699 3701 3708 3710 3714 3724 3745
NXT.INSTR.BITES 276 1954 1959 1964
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 194
; CROSS REFERENCE LISTING
OLD.TRK 207 1949 1951 1953 5490 5495 5500 5531 5553 5579
ONE PROCEED 280 2362 2364 2366 2368 2370 2373 2375 2404
PFAIL.PIHACK 5 263 6258 6265 6277
RPW 199 2174 2176 2178
SXCT 227 3771 3774 3777 3780 3789 3804 3815
TRACKS 203 893 895 897 1310 1326 2355 2358 5483 5487 5501 5530
5580
UFA.DFN 218 4417 4420 4654 4690
XCTR 8 272 3318 3320 3322 3331 3333 3603 3606 3609 3750 3757
3768
(U) TIME 693 #
2T 696 # 5118 5124
3T 697 # 2367 2371 2452 2457 2464 2469 2475 3290 4181 5102 5464
5650 5928 5930
4T 698 #
5T 699 # 2352 2354 5409 5410 5413 5417 5786 5837
(U) U0 536 #
(U) U21 598 #
(U) U23 604 #
(U) U42 662 #
(U) U45 668 #
(U) U48 675 #
(U) U51 687 #
(U) U66 795 #
(U) U73 835 #
(U) VMA 688 # 2389 2423 2425 3635 3652 3653 3682 3795 3796 3811 3813
5139 5140 5705 5733 5735 5737 5739 5781 5782 5788 5792 6115
6231
AD 692 # 3248 3404 3408 3410 3413 3433 3436 3443 3460 5137 5138
5393 5448 5596 5638 5649 5671 5784 5785 5786 5793 5798 5799
5801 5805 5810 5830 5831 5842 5849 5874 5881 6055 6089 6095
6123 6132 7044 7045 7052 7054
PC 690 # 3288 3296 5829
PC+1 691 # 2419 2421 2463 2486 2487 2488 2494 2496 2740 3014 3017
3022 3053 3071 3121 3140 3162 3174 3270 3423 3728 3793 3794
3803 3805 3809 3845 3881 3900 3925 3937 4000 4025 4219 4228
4290 4293 4327 4342 4364 4395 4396 4670 4764 4765 4887 5055
5085 5094 5105 5203 5237 5382 5383 5385 5388 7059
VMA 689 # 2734 2757 3352 3357 3363 3364 3366 3376 3377 3380 3481
3492 3673 3675 4280 4909 5507 5724 5726 5745 5866 6280 6287
(U) # 841 # 2352 2354 2389 2503 2504 2517 2739 2752 2755 3027 3231
3265 3267 3459 3460 3634 3635 3641 3650 3652 3653 3675 3682
3684 3690 3712 3726 3730 3731 3734 3735 3737 3738 3740 3741
3843 3874 3877 3879 3894 3897 3911 3915 3918 3932 3934 3936
3987 3991 4009 4013 4015 4018 4027 4076 4082 4098 4102 4174
4176 4181 4188 4191 4284 4296 4299 4313 4317 4336 4338 4346
4359 4373 4381 4387 4388 4408 4409 4410 4411 4457 4459 4478
4481 4485 4510 4511 4518 4521 4540 4548 4559 4562 4573 4583
4585 4590 4592 4608 4608 4610 4610 4617 4619 4648 4650 4660
4677 4723 4740 4759 4761 4794 4795 4800 4802 4806 4810 4812
4814 4817 4823 4831 4852 4879 4881 4883 4893 4895 4919 4936
4939 4952 4966 4968 4977 4980 4990 5000 5007 5012 5020 5022
5024 5026 5029 5035 5046 5056 5102 5118 5151 5182 5183 5222
5223 5238 5245 5259 5268 5445 5590 5595 5598 5599 5600 5604
5615 5623 5637 5646 5647 5660 5671 5705 5709 5723 5733 5735
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 195
; CROSS REFERENCE LISTING
5737 5739 5781 5782 5783 5785 5787 5788 5792 5797 5800 5804
5818 5825 5839 5841 5855 5858 5859 5870 5879 5882 5886 5904
6037 6055 6060 6061 6072 6077 6080 6082 6124 6135 6231 6254
6267 6300 7039 7049 7050 7051 7061
PPRO 845 # 6073
PPRW 847 # 6075
PPRWF 846 # 6074
VERS 842 # 2523
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 196
; LOCATION / LINE NUMBER INDEX
; DCODE LOC'N 0 1 2 3 4 5 6 7
D 0000 3504 3531 3532 3533 3535 3536 3537 3538
D 0010 3540 3541 3542 3543 3545 3546 3547 3548
D 0020 3553 3554 3555 3556 3558 3559 3560 3561
D 0030 3563 3564 3565 3566 3568 3569 3570 3571
D 0040 3575 3576 3577 3578 3579 3580 3581 3582
D 0050 3583 3584 3585 3586 3587 3588 3589 3590
D 0060 3591 3592 3593 3594 3595 3596 3597 3598
D 0070 3599 3600 3601 3602 3607 3608 3614 3615
D 0100 3621 3622 3624 3625 3700 3702 3775 3776
D 0110 4901 4902 4903 4904 4269 4270 4271 4272
D 0120 2727 2728 4709 4713 2746 2747 4716 4717
D 0130 4656 4657 4693 4694 5064 5065 5066 5067
D 0140 4422 4423 4424 4425 4427 4428 4429 4430
D 0150 4432 4433 4434 4435 4437 4438 4439 4440
D 0160 4498 4499 4500 4501 4503 4504 4505 4506
D 0170 4527 4528 4529 4530 4532 4533 4534 4535
D 0200 2544 2545 2546 2547 2549 2550 2551 2552
D 0210 2554 2555 2556 2557 2559 2560 2561 2562
D 0220 4058 4059 4060 4061 4090 4091 4092 4093
D 0230 4151 4152 4153 4154 4156 4157 4158 4159
D 0240 3821 3822 3823 3824 3825 3826 3827 3831
D 0250 2529 2530 3168 3169 3183 3184 3305 3309
D 0260 3391 3392 3393 3394 3465 3466 3467 3468
D 0270 4033 4034 4035 4036 4045 4046 4047 4048
D 0300 3033 3034 3035 3036 3037 3038 3039 3040
D 0310 3042 3043 3044 3045 3046 3047 3048 3049
D 0320 3109 3110 3111 3112 3113 3114 3115 3116
D 0330 3060 3061 3062 3063 3064 3065 3066 3067
D 0340 3128 3129 3130 3131 3132 3133 3134 3135
D 0350 3076 3077 3078 3079 3080 3081 3082 3083
D 0360 3147 3148 3149 3150 3151 3152 3153 3154
D 0370 3091 3092 3093 3094 3095 3096 3097 3098
D 0400 2766 2767 2768 2769 2776 2777 2778 2779
D 0410 2786 2787 2788 2789 2796 2797 2798 2799
D 0420 2801 2802 2803 2804 2811 2812 2813 2814
D 0430 2818 2819 2820 2821 2828 2829 2830 2831
D 0440 2838 2839 2840 2841 2848 2849 2850 2851
D 0450 2858 2859 2860 2861 2869 2870 2871 2872
D 0460 2879 2880 2881 2882 2889 2890 2891 2892
D 0470 2899 2900 2901 2902 2909 2910 2911 2912
D 0500 2584 2585 2586 2587 2589 2590 2591 2592
D 0510 2594 2595 2596 2597 2599 2600 2601 2602
D 0520 2604 2605 2606 2607 2609 2610 2611 2612
D 0530 2614 2615 2616 2617 2619 2620 2621 2622
D 0540 2626 2627 2628 2629 2631 2632 2633 2634
D 0550 2636 2637 2638 2639 2641 2642 2643 2644
D 0560 2646 2647 2648 2649 2651 2652 2653 2654
D 0570 2656 2657 2658 2659 2661 2662 2663 2664
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 197
; LOCATION / LINE NUMBER INDEX
; DCODE LOC'N 0 1 2 3 4 5 6 7
D 0600 2923 2924 2925 2926 2927 2928 2929 2930
D 0610 2932 2933 2934 2935 2936 2937 2938 2939
D 0620 2941 2942 2943 2944 2945 2946 2947 2948
D 0630 2950 2951 2952 2953 2954 2955 2956 2957
D 0640 2959 2960 2961 2962 2963 2964 2965 2966
D 0650 2968 2969 2970 2971 2972 2973 2974 2975
D 0660 2977 2978 2979 2980 2981 2982 2983 2984
D 0670 2986 2987 2988 2989 2990 2991 2992 2993
D 0700 5279 5280 5281 5282 5283 5284 5285 5286
D 0710 5290 5291 5292 5293 5294 5295 5296 5297
D 0720 5301 5302 5303 5304 5305 5306 5307 5308
D 0730 5312 5313 5314 5315 5316 5317 5318 5319
D 0740 5324 5325 5326 5327 5328 5329 5330 5331
D 0750 5335 5336 5337 5338 5339 5340 5341 5342
D 0760 5346 5347 5348 5349 5350 5351 5352 5353
D 0770 5357 5358 5359 5360 5361 5362 5363 5364
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 198
; LOCATION / LINE NUMBER INDEX
; UCODE LOC'N 0 1 2 3 4 5 6 7
U 0000 2323 2388 2389 2396 2398 2401 2402 2408
U 0010 2409 2413 2435 2510 2516 2517 2518 2740
U 0020 2736 2737 2757 2739 2758 2760 2761 3248
U 0030 3257 3260 3270 3258 3271 2393 2394 2395
U 0040 3267 3272 3268 2452 2458 2464 2470 2476
U 0050 3299 3339 3363 3364 3365 3366 3367 3372
U 0060 3376 2486 2487 2489 3377 2491 2494 2496
U 0070 2503 2504 3235 3236 3290 3291 3293 3294
U 0100 2534 2537 2568 2571 2574 2678 2681 2695
U 0110 2577 2578 2673 2675 2684 2685 2702 3378
U 0120 3379 3380 3381 3382 3383 3384 3385 3408
U 0130 3410 3437 3414 3420 3424 3426 3443 2523
U 0140 2348 3456 2349 3460 2351 2352 2354 3481
U 0150 2428 2429 2361 2365 3490 3492 2367 2372
U 0160 2420 2422 2424 2426 3296 3297 3337 3338
U 0170 3370 3371 3440 3441 3458 3459 3494 3654
U 0200 2688 2689 2698 2699 2705 2706 2709 2716
U 0210 2712 2713 2719 2720 2734 2773 2783 2793
U 0220 3672 3673 3681 3682 3683 3684 3717 3742
U 0230 3719 3721 3727 3728 3730 3732 3744 3785
U 0240 3734 3735 3737 3738 3740 3741 3788 3791
U 0250 3793 3794 3795 3796 3799 3800 3845 3847
U 0260 3676 3677 3889 3678 3690 3691 3766 3767
U 0270 3802 3803 3805 3806 3809 3810 3812 3814
U 0300 2752 2753 2808 2755 2825 2835 2845 2855
U 0310 2865 2876 2886 2896 2906 2916 3053 3072
U 0320 3850 3852 3855 3857 3875 3878 3880 3881
U 0330 3892 3894 3897 3915 3899 3900 3918 3920
U 0340 3923 3934 3924 3925 3931 3932 3946 3947
U 0350 3935 3936 3995 3937 3985 3987 3989 3992
U 0360 4000 4001 4002 4053 4005 4118 4006 3949
U 0370 4009 4010 4013 4015 4019 4020 4146 3950
U 0400 3015 3018 3020 3022 3024 3025 3026 3027
U 0410 3087 3102 3121 3140 3162 3174 3404 3406
U 0420 4025 4027 4085 4086 4182 4284 4189 4192
U 0430 4310 4311 4322 4121 4123 4125 4127 4129
U 0440 4323 4324 4326 4133 4136 4138 4140 4141
U 0450 4327 4329 4346 4330 4210 4211 4213 4214
U 0460 4335 4336 4218 4219 4342 4343 4221 4222
U 0470 4347 4351 4227 4228 4355 4359 4230 4231
U 0500 3352 4040 3355 3357 3434 3436 3473 3478
U 0510 3487 3489 3713 3715 3759 3760 3841 3843
U 0520 4242 4243 4244 4245 4246 4247 4248 4249
U 0530 4363 4364 4366 4380 3763 3764 4339 4340
U 0540 4381 4382 4391 4393 4259 4261 4262 4264
U 0550 4290 4304 4293 4469 4296 4305 4299 4306
U 0560 4313 4387 4475 4388 4314 4476 4317 4318
U 0570 4395 4396 4481 4349 4477 4479 4490 4350
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 199
; LOCATION / LINE NUMBER INDEX
; UCODE LOC'N 0 1 2 3 4 5 6 7
U 0600 3191 3200 3204 3209 3210 3211 3212 3213
U 0610 3216 3220 3221 3222 3223 3224 3225 3231
U 0620 4483 4485 4493 4353 4486 4487 4518 4354
U 0630 4573 4574 4520 4357 4603 4604 4521 4358
U 0640 4607 4608 4609 4610 4685 4368 4704 4369
U 0650 4404 4405 4406 4407 4408 4409 4410 4411
U 0660 4759 4374 4761 4375 4767 4376 4618 4620
U 0670 4627 4629 4768 4377 4815 4378 4630 4631
U 0700 3265 4052 3866 3867 3887 3888 4457 4459
U 0710 3908 3911 4077 3912 4853 4281 4082 4282
U 0720 4549 4887 4551 4552 4644 4645 4560 4562
U 0730 4583 4586 4587 4588 4648 4650 4591 4593
U 0740 4673 4674 4676 4677 4678 4679 4634 4635
U 0750 4664 4889 4681 4682 4667 4668 4670 4926
U 0760 4687 4689 4756 4757 4764 4765 4810 4812
U 0770 4793 4794 4796 4797 4799 4801 4803 4807
U 1000 4948 3321 3634 3635 4950 3642 3651 3652
U 1010 4510 4511 4515 4516 3782 3784 3285 3288
U 1020 4830 4832 4941 4943 4818 4820 4821 4823
U 1030 4946 4947 4951 4855 4845 4849 4852 4857
U 1040 4953 4864 4963 4969 4985 4865 4868 4870
U 1050 4914 4879 4916 4881 4919 4883 4923 4885
U 1060 4933 5033 4965 4967 4937 4939 4893 4895
U 1070 4978 5034 5036 5038 4979 5043 4980 5057
U 1100 4099 5107 4539 4540 4100 5124 4102 4103
U 1110 4165 5135 4169 4171 4544 4545 4174 4176
U 1120 5040 5041 4987 4988 5046 5047 4990 5142
U 1130 4999 5000 5151 5003 5183 5005 5185 5008
U 1140 5013 5186 5014 5015 5055 5056 5050 5052
U 1150 5020 5022 5024 5026 5027 5029 5030 5031
U 1160 5081 5083 5084 5194 5206 5085 5143 5144
U 1170 5154 5156 5117 5119 5162 5163 5120 5121
U 1200 4661 4662 4464 4466 4697 4703 5208 4468
U 1210 4724 4741 5176 5177 4910 5201 4911 5202
U 1220 5137 5138 5139 5140 5180 5182 5203 5204
U 1230 5196 5197 5199 5230 5221 5232 5222 5223
U 1240 5225 5227 5238 5239 5244 5245 5259 5411
U 1250 5234 5418 5236 5392 5266 5268 5237 5393
U 1260 5261 5262 5382 5383 5263 5264 5384 5385
U 1270 5388 5389 5414 5415 5448 5394 5449 5395
U 1300 5090 5467 5425 5426 5092 5093 5477 5094
U 1310 5099 5478 5428 5429 5101 5103 5508 5105
U 1320 5401 5402 5518 5409 5439 5440 5520 5521
U 1330 5522 5590 5525 5526 5592 5593 5595 5596
U 1340 5600 5610 5616 5631 5613 5628 5614 5630
U 1350 5632 5633 5643 5671 5637 5646 5638 5647
U 1360 5598 5599 5669 5670 5679 5680 5651 5652
U 1370 5662 5663 5664 5665 5681 5690 5698 5699
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 200
; LOCATION / LINE NUMBER INDEX
; UCODE LOC'N 0 1 2 3 4 5 6 7
U 1400 5371 5372 5375 5703 5446 5447 5378 5379
U 1410 5453 5454 5455 5456 5472 5473 5475 5476
U 1420 5705 5706 5709 5716 5722 5724 5725 5726
U 1430 5711 5712 5713 5714 5715 5742 5743 5779
U 1440 5733 5735 5737 5739 5746 5795 5747 5797
U 1450 5781 5782 5783 5784 5785 5786 5787 5788
U 1460 5804 5814 5805 5818 5819 5820 5792 5793
U 1470 5839 5852 5837 5838 5858 5859 5856 5857
U 1500 5460 5461 5463 5465 5658 5660 5860 5466
U 1510 5485 5503 5505 5506 5585 5586 5588 5589
U 1520 5863 5886 5864 5798 5865 5866 5900 5799
U 1530 5889 5901 5890 5800 5912 5916 5891 5802
U 1540 5928 5930 6034 6035 6036 5808 6037 5809
U 1550 6038 6053 6054 6055 6058 5810 6063 5811
U 1560 5824 5826 5827 5828 5829 5830 6065 5831
U 1570 6060 6061 6070 6077 6081 6082 6088 5832
U 1600 5512 6089 6090 5513 5515 6094 6095 5516
U 1610 5605 5606 5607 5608 5619 5620 5623 5624
U 1620 5840 5841 6091 6092 6096 5842 6099 5843
U 1630 6097 6098 6106 6115 6109 6110 6120 5844
U 1640 6112 6113 6121 6135 6136 5847 6138 5848
U 1650 6123 6124 6132 6133 6233 5849 6270 5850
U 1660 5870 5871 6274 5872 5874 5875 6275 5876
U 1670 5880 6278 6231 6232 5881 5883 6280 5884
U 1700 5674 5675 5677 5678 5685 5686 5688 5689
U 1710 5693 6287 5696 5697 6288 5905 5907 5909
U 1720 6255 6256 6293 6267 6300 6302 6303 5914
U 1730 6268 7022 7023 6269 7024 7038 7039 5915
U 1740 7031 7040 7033 7054 7044 7045 5922 5926
U 1750 7056 7057 6041 7059 7061 6043
U 1760 7049 7050 7051 7052
U 1770 5899
U 2000 5435 5436 6045
U 2010 6046
U 2020 6048
U 2030 6049
U 2040 6072 6073
U 2050 6074 6075
U 2060 6154 6194
U 2070
U 2100
U 2110
U 2120
U 2130
U 2140
U 2150
U 2160
U 2170
; DSK: UCODE; U1 MCR 18:30:55 1-FEB-76 MICRO 48 KL10 ITS MICROCODE PAGE 201
; LOCATION / LINE NUMBER INDEX
; UCODE LOC'N 0 1 2 3 4 5 6 7
U 2200
U 2210
U 2220
U 2230
U 2240
U 2250
U 2260
U 2270
U 2300
U 2310
U 2320
U 2330
U 2340
U 2350
U 2360
U 2370 5898
NO ERRORS DETECTED
END OF MICRO CODE ASSEMBLY
USED 37.09 SECONDS
βββ