| 1 | |||||
| 2 | 000000 | .ASECT | |||
| 3 | .TITLE 066101 | ||||
| 4 | .DSABL GBL | ||||
| 5 | .ENABL AMA | ||||
| 6 | .ENABL LC | ||||
| 7 | ;*********************************************************************** | ||||
| 8 | ; | ||||
| 9 | ; В Н У Т Р Е Н Н И Й А В Т О - Т Е С Т | ||||
| 10 | ; | ||||
| 11 | ;ВНУТРЕННИЙ АВТО-ТЕСТ АВТОМАТИЧЕСКИ ВЫПОЛНЯЕТСЯ КАЖДЫЙ РАЗ ПОСЛЕ | ||||
| 12 | ;ВКЛЮЧЕНИЯ ПИТАНИЯ С АДРЕСА 160000. ОН ПРОВЕРЯЕТ ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР | ||||
| 13 | ;(ЦП), ДИСПЕТЧЕР ПАМЯТИ (ДП), ОПЕРАТИВНОЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО (ОЗУ), | ||||
| 14 | ;КОНТРОЛЛЕР ПРЕРЫВАНИЙ, ИНТЕРФЕЙСЫ КЛАВИАТУРЫ И ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 15 | ;ТАЙМЕР, А ТАКЖЕ МОДУЛИ, УСТАНОВЛЕННЫЕ В ПОЗИЦИИ СИСТЕМНОЙ МАГИСТРАЛИ. | ||||
| 16 | ;ТЕСТ ФОРМИРУЕТ В ОПЕРАТИВНОЙ ПАМЯТИ ТАБЛИЦУ КОНФИГУРАЦИИ ПВК, ПРОИЗВОДИТ | ||||
| 17 | ;ЗАГРУЗКУ И ЗАПУСК НУЛЕВОГО БЛОКА ОПЕРАЦИОННОЙ СИСТЕМЫ (ЗАГРУЗЧИКА). | ||||
| 18 | ;ПРИ ВЫПОЛНЕНИИ ВНУТРЕННЕГО АВТО-ТЕСТА НА ЭКРАН МОНИТОРА ВЫВОДИТСЯ | ||||
| 19 | ;ПРЕДУСМОТРЕННОЕ СООБЩЕНИЕ "Э Л Е К Т Р О Н И К А" ИЛИ СООБЩЕНИЕ ОБ | ||||
| 20 | ;ОШИБКАХ И ВКЛЮЧАЕТСЯ СВЕТОВАЯ ИНДИКАЦИЯ ОБ ОШИБКЕ. | ||||
| 21 | ; | ||||
| 22 | ;*********************************************************************** | ||||
| 23 | 130000 | .=130000 | |||
| 24 | 000100 | .REPT 100 | |||
| 25 | .-130000+2 | ||||
| 26 | HALT | ||||
| 27 | .ENDR | ||||
| 28 | 130004 | .=130004 | |||
| 29 | 130004 | 163134 | 163134 | ||
| 30 | 130200 | .=130200 | |||
| 31 | ;*********************************************************************** | ||||
| 32 | ; | ||||
| 33 | ;ПОДПРОГРАММА ЗАПИСИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ИДЕНТИФИКАЦИОННОГО КОДА | ||||
| 34 | ;ТИПА ПРОЦЕССОРА | ||||
| 35 | ; | ||||
| 36 | ;*********************************************************************** | ||||
| 37 | |||||
| 38 | 130200 | 012764 000011 177716 | MOV #11,177716(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 39 | ;ИДЕНТИФИКАЦИОННЫЙ КОД ТИПА ПРОЦЕССОРА | ||||
| 40 | 130206 | 005064 177714 | CLR 177714(R4) | ||
| 41 | 130212 | 000207 | RTS PC | ||
| 42 | |||||
| 43 | ;*********************************************************************** | ||||
| 44 | ; | ||||
| 45 | ;ПОДПРОГРАММА ЗАПИСИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ИДЕНТИФИКАЦИОННОГО КОДА | ||||
| 46 | ;ОСНОВНОГО ОЗУ И ЕМКОСТИ ОСНОВНОГО ОЗУ | ||||
| 47 | ; | ||||
| 48 | ;*********************************************************************** | ||||
| 49 | |||||
| 50 | 130214 | 012764 000033 177712 | MOV #33,177712(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 51 | ;ИДЕНТИФИКАЦИОННЫЙ КОД ОСНОВНОЙ ПАМЯТИ | ||||
| 52 | 130222 | 013764 177640 177710 | MOV @#177640,177710(R4) | ;ЗАПИСАТЬ ЕМКОСТЬ ОСНОВНОЙ ПАМЯТИ | |
| 53 | 130230 | 000241 | CLC | ||
| 54 | 130232 | 006064 177710 | ROR 177710(R4) | ||
| 55 | 130236 | 042764 000377 177710 | BIC #377,177710(R4) | ||
| 56 | 130244 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 57 | |||||
| 58 | ;*********************************************************************** | ||||
| 59 | ; | ||||
| 60 | ;ПОДПРОГРАММА ЗАПИСИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК НОМЕРА ВЕРСИИ | ||||
| 61 | ;ДИАГНОСТИЧЕСКОГО ПЗУ | ||||
| 62 | ; | ||||
| 63 | ;*********************************************************************** | ||||
| 64 | |||||
| 65 | 130246 | 012764 000026 177706 | MOV #26,177706(R4) | ;ЗАПИСАТЬ НОМЕР ВЕРСИИ ДИАГНОСТИЧЕСКОГО ПЗУ | |
| 66 | 130254 | 005064 177704 | CLR 177704(R4) | ||
| 67 | 130260 | 000207 | RTS PC | ||
| 68 | 130262 | 005064 177676 | CLR 177676(R4) | ||
| 69 | 130266 | 000207 | RTS PC | ||
| 70 | |||||
| 71 | ;*********************************************************************** | ||||
| 72 | ; | ||||
| 73 | ;ПОДПРОГРАММА ОПРЕДЕЛЕНИЯ НАЛИЧИЯ МОНИТОРА И ЗАПИСИ ЕГО | ||||
| 74 | ;ИДЕНТИФИКАЦИОННОГО КОДА В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | ||||
| 75 | ; | ||||
| 76 | ;*********************************************************************** | ||||
| 77 | |||||
| 78 | 130270 | 005000 | CLR R0 | ||
| 79 | 130272 | 032737 000020 173700 | BIT #20,@#173700 | ;МОНИТОР ПОДСОЕДИНЕН? | |
| 80 | 130300 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 81 | 130302 | 012700 000032 | MOV #32,R0 | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ПРИЗНАК НАЛИЧИЯ | |
| 82 | 130306 | 010064 177702 | MOV R0,177702(R4) | ;МОНИТОРА | |
| 83 | 130312 | 000207 | RTS PC | ||
| 84 | |||||
| 85 | ;********************************************************************** | ||||
| 86 | ; | ||||
| 87 | ;ПОДПРОГРАММА ПРОВЕРКИ КОНТРОЛЛЕРА ПРЕРЫВАНИЙ | ||||
| 88 | ; | ||||
| 89 | ;*********************************************************************** | ||||
| 90 | |||||
| 91 | 130314 | 012764 000025 177636 | MOV #25,177636(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ИДЕНТИФИКАЦИОННЫЙ | |
| 92 | ;КОД КОНТРОЛЛЕРА ПРЕРЫВАНИЙ | ||||
| 93 | 130322 | 005064 177634 | CLR 177634(R4) | ;ОЧИСТИТЬ ЯЧЕЙКУ СОСТОЯНИЯ/ОШИБКИ КОНТРОЛЛЕРА | |
| 94 | 130326 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 7 | |
| 95 | 130334 | 012737 130652 000004 | MOV #130652,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 96 | 130342 | 012737 000340 000006 | MOV #340,@#6 | ||
| 97 | 130350 | 010446 | MOV R4,-(SP) | ||
| 98 | 130352 | 012700 131206 | MOV #131206,R0 | ||
| 99 | 130356 | 012704 173200 | MOV #173200,R4 | ;ВЫБРАТЬ АДРЕС КОНТРОЛЛЕРА ПРЕРЫВАНИЙ | |
| 100 | 130362 | 005710 | TST @R0 | ||
| 101 | 130364 | 001422 | BEQ 130432 | ||
| 102 | 130366 | 012001 | MOV (R0)+,R1 | ||
| 103 | 130370 | 112164 000002 | MOVB (R1)+,2(R4) | ;ЗАГРУЗИТЬ РЕГИСТР РЕЖИМА РАБОТЫ | |
| 104 | 130374 | 112164 000002 | MOVB (R1)+,2(R4) | ;ВЫБРАТЬ РЕГИСТР АВТООЧИСТКИ ДЛЯ ЗАГРУЗКИ ДАННЫМИ | |
| 105 | ;ИЗ КАНАЛА | ||||
| 106 | 130400 | 112114 | MOVB (R1)+,@R4 | ;РАЗРЕШИТЬ АВТООЧИСТКУ КАЖДОГО РАЗРЯДА В РЕГИСТРЕ | |
| 107 | ;ЗАПРОСА ПРЕРЫВАНИЙ ПОСЛЕ ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ | ||||
| 108 | ;ПО ДАННОМУ РАЗРЯДУ | ||||
| 109 | 130402 | 105711 | TSTB @R1 | ;ВСЕ ВЕКТОРЫ УСТАНОВЛЕНЫ? | |
| 110 | 130404 | 001404 | BEQ 130416 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 111 | 130406 | 112164 000002 | MOVB (R1)+,2(R4) | ;РАЗРЕШИТЬ ВЫДАЧУ ОДНОГО ВЕКТОРА ПРЕРЫВАНИЯ | |
| 112 | ;ПРИ ЗАПРОСЕ ПРЕРЫВАНИЯ НА УКАЗАННОМ УРОВНЕ | ||||
| 113 | ;ЗАПРОСА | ||||
| 114 | 130412 | 112114 | MOVB (R1)+,@R4 | ;УСТАНОВИТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ | |
| 115 | 130414 | 000772 | BR 130402 | ||
| 116 | 130416 | 005724 | TST (R4)+ | ;ПОЛУЧИТЬ АДРЕС РЕГИСТРА КОМАНД | |
| 117 | 130420 | 012714 000245 | MOV #245,@R4 | ;УСТАНОВИТЬ ОСНОВНОЙ РАЗРЯД МАСКИРОВАНИЯ ПРЕРЫВАНИЙ | |
| 118 | 130424 | 012724 000260 | MOV #260,(R4)+ | ;И ПРОИЗВЕСТИ ПРЕДВАРИТЕЛЬНЫЙ ВЫБОР РЕГИСТРА | |
| 119 | ;МАСКИРОВАНИЯ ПРЕРЫВАНИЙ | ||||
| 120 | 130430 | 000754 | BR 130362 | ||
| 121 | 130432 | 012604 | MOV (SP)+,R4 | ||
| 122 | 130434 | 005000 | CLR R0 | ||
| 123 | 130436 | 010046 | MOV R0,-(SP) | ||
| 124 | 130440 | 006200 | ASR R0 | ||
| 125 | 130442 | 042700 177760 | BIC #177760,R0 | ||
| 126 | 130446 | 016001 130666 | MOV 130666(R0),R1 | ;ВЫБРАТЬ АДРЕС ТАБЛИЦЫ ВЕКТОРОВ ПРЕРЫВАНИЙ | |
| 127 | 130452 | 012702 000010 | MOV #10,R2 | ;УСТАНОВИТЬ СЧЕТЧИК ВЕКТОРОВ ПРЕРЫВАНИЙ | |
| 128 | 130456 | 012703 130674 | MOV #130674,R3 | ;ВЫБРАТЬ АДРЕС ТАБЛИЦЫ АДРЕСОВ ПОДПРОГРАММ ОБСЛУЖИВАНИЯ | |
| 129 | ;ПРЕРЫВАНИЙ | ||||
| 130 | 130462 | 012137 002000 | MOV (R1)+,@#2000 | ;СФОРМИРОВАТЬ ВЕКТОРЫ ПРЕРЫВАНИЙ | |
| 131 | 130466 | 012377 051306 | MOV (R3)+,@2000 | ||
| 132 | 130472 | 062737 000002 002000 | ADD #2,@#2000 | ||
| 133 | 130500 | 012777 000340 051272 | MOV #340,@2000 | ||
| 134 | 130506 | 077213 | SOB R2,130462 | ||
| 135 | 130510 | 016002 130666 | MOV 130666(R0),R2 | ;ВЫБРАТЬ АДРЕС ТАБЛИЦЫ ВЕКТОРОВ ПРЕРЫВАНИЙ | |
| 136 | 130514 | 012600 | MOV (SP)+,R0 | ||
| 137 | 130516 | 005001 | CLR R1 | ||
| 138 | 130520 | 012760 000100 173202 | MOV #100,173202(R0) | ;ОЧИСТИТЬ ВСЕ РАЗРЯДЫ В РЕГИСТРЕ ЗАПРОСА ПРЕРЫВАНИЙ | |
| 139 | 130526 | 012760 000040 173202 | MOV #40,173202(R0) | ;РАЗРЕШИТЬ ОБСЛУЖИВАНИЕ ПРЕРЫВАНИЙ | |
| 140 | 130534 | 012760 000120 173202 | MOV #120,173202(R0) | ;УСТАНОВИТЬ ВСЕ РАЗРЯДЫ В РЕГИСТРЕ ЗАПРОСА ПРЕРЫВАНИЙ | |
| 141 | 130542 | 012737 000000 002012 | MOV #0,@#2012 | ||
| 142 | 130550 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 0 | |
| 143 | ;ДОЛЖНЫ ПРОИЗОЙТИ ПРЕРЫВАНИЯ | ||||
| 144 | 130554 | 022701 000010 | CMP #10,R1 | ;ПРОИЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ЗАВЕРШЕНИЯ ОБСЛУЖИВАНИЯ | |
| 145 | 130560 | 001403 | BEQ .+10 | ;ПРЕРЫВАНИЙ ОТ УСТРОЙСТВ | |
| 146 | 130562 | 005337 002012 | DEC @#2012 | ||
| 147 | 130566 | 001772 | BEQ 130554 | ||
| 148 | |||||
| 149 | 130570 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП =7 | |
| 150 | 130576 | 012760 000100 173202 | MOV #100,173202(R0) | ;ОЧИСТИТЬ ВСЕ РАЗРЯДЫ В РЕГИСТРЕ ЗАПРОСА ПРЕРЫВАНИЙ | |
| 151 | 130604 | 012760 000060 173202 | MOV #60,173202(R0) | ;ЗАПРЕТИТЬ ОБСЛУЖИВАНИЕ ПРЕРЫВАНИЙ | |
| 152 | 130612 | 022701 000010 | CMP #10,R1 | ;БЫЛО 8 ПРЕРЫВАНИЙ? | |
| 153 | 130616 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 154 | 130620 | 012764 000001 177634 | MOV #1,177634(R4) | ;ОШИБКА 1. НЕТ ПРЕРЫВАНИЯ ХОТЯ БЫ ОТ ОДНОГО УСТРОЙСТВА | |
| 155 | 130626 | 022700 000010 | CMP #10,R0 | ;КОНЕЦ ПРОВЕРКИ? | |
| 156 | 130632 | 001406 | BEQ 130650 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 157 | 130634 | 005764 177634 | TST 177634(R4) | ;БЫЛИ ОШИБКИ? | |
| 158 | 130640 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 159 | 130642 | 062700 000004 | ADD #4,R0 | ||
| 160 | 130646 | 000673 | BR 130436 | ||
| 161 | 130650 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 162 | |||||
| 163 | ;ПОДПРОГРАММЫ ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 164 | 130652 | 012716 130570 | MOV #130570,@SP | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПРЕРЫВАНИЯ | |
| 165 | 130656 | 012766 000340 000002 | MOV #340,2(SP) | ||
| 166 | 130664 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 167 | |||||
| 168 | 130666 | 130714 | 130714 | ||
| 169 | 130670 | 130734 | 130734 | ||
| 170 | 130672 | 130754 | 130754 | ||
| 171 | |||||
| 172 | ;ТАБЛИЦА АДРЕСОВ ПОДПРОГРАММ ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЙ | ||||
| 173 | 130674 | 130774 | 130774 | ||
| 174 | 130676 | 131012 | 131012 | ||
| 175 | 130700 | 131032 | 131032 | ||
| 176 | 130702 | 131052 | 131052 | ||
| 177 | 130704 | 131072 | 131072 | ||
| 178 | 130706 | 131112 | 131112 | ||
| 179 | 130710 | 131132 | 131132 | ||
| 180 | 130712 | 131152 | 131152 | ||
| 181 | |||||
| 182 | ;ТАБЛИЦА АДРЕСОВ ВЕКТОРОВ ПРЕРЫВАНИЙ УСТРОЙСТВ СИСТЕМНОГО МОДУЛЯ | ||||
| 183 | 130714 | 000234 | 234 | ||
| 184 | 130716 | 000200 | 200 | ||
| 185 | 130720 | 000204 | 204 | ||
| 186 | 130722 | 000210 | 210 | ||
| 187 | 130724 | 000214 | 214 | ||
| 188 | 130726 | 000220 | 220 | ||
| 189 | 130730 | 000224 | 224 | ||
| 190 | 130732 | 000230 | 230 | ||
| 191 | |||||
| 192 | ;ТАБЛИЦА АДРЕСОВ ВЕКТОРОВ ПРЕРЫВАНИЙ МОДУЛЕЙ СИСТЕМНОЙ МАГИСТРАЛИ | ||||
| 193 | |||||
| 194 | 130734 | 000300 | 300 | ||
| 195 | 130736 | 000310 | 310 | ||
| 196 | 130740 | 000320 | 320 | ||
| 197 | 130742 | 000330 | 330 | ||
| 198 | 130744 | 000340 | 340 | ||
| 199 | 130746 | 000350 | 350 | ||
| 200 | 130750 | 000360 | 360 | ||
| 201 | 130752 | 000370 | 370 | ||
| 202 | 130754 | 000304 | 304 | ||
| 203 | 130756 | 000314 | 314 | ||
| 204 | 130760 | 000324 | 324 | ||
| 205 | 130762 | 000334 | 334 | ||
| 206 | 130764 | 000344 | 344 | ||
| 207 | 130766 | 000354 | 354 | ||
| 208 | 130770 | 000364 | 364 | ||
| 209 | 130772 | 000374 | 374 | ||
| 210 | |||||
| 211 | ;ПОДПРОГРАММЫ ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЙ ОТ УСТРОЙСТВ | ||||
| 212 | 130774 | 011237 002000 | MOV @R2,@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 213 | ;УСТРОЙСТВА | ||||
| 214 | 131000 | 012777 131172 050772 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 215 | 131006 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПЕРЫВАНИЙ | |
| 216 | 131010 | 000002 | RTI | ||
| 217 | 131012 | 016237 000002 002000 | MOV 2(R2),@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 218 | ;УСТРОЙСТВА | ||||
| 219 | 131020 | 012777 131172 050752 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 220 | 131026 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 221 | 131030 | 000002 | RTI | ||
| 222 | 131032 | 016237 000004 002000 | MOV 4(R2),@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 223 | ;УСТРОЙСТВА | ||||
| 224 | 131040 | 012777 131172 050732 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 225 | 131046 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 226 | 131050 | 000002 | RTI | ||
| 227 | 131052 | 016237 000006 002000 | MOV 6(R2),@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 228 | ;УСТРОЙСТВА | ||||
| 229 | 131060 | 012777 131172 050712 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 230 | 131066 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 231 | 131070 | 000002 | RTI | ||
| 232 | 131072 | 016237 000010 002000 | MOV 10(R2),@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 233 | ;УСТРОЙСТВА | ||||
| 234 | 131100 | 012777 131172 050672 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 235 | 131106 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 236 | 131110 | 000002 | RTI | ||
| 237 | 131112 | 016237 000012 002000 | MOV 12(R2),@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 238 | ;УСТРОЙСТВА | ||||
| 239 | 131120 | 012777 131172 050652 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 240 | 131126 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 241 | 131130 | 000002 | RTI | ||
| 242 | 131132 | 016237 000014 002000 | MOV 14(R2),@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 243 | ;УСТРОЙСТВА | ||||
| 244 | 131140 | 012777 131172 050632 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 245 | 131146 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 246 | 131150 | 000002 | RTI | ||
| 247 | 131152 | 016237 000016 002000 | MOV 16(R2),@#2000 | ;ВЫБРАТЬ АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ ОТ ДАННОГО | |
| 248 | ;УСТРОЙСТВА | ||||
| 249 | 131160 | 012777 131172 050612 | MOV #131172,@2000 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ | |
| 250 | 131166 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 251 | 131170 | 000002 | RTI | ||
| 252 | |||||
| 253 | |||||
| 254 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПОВТОРНОГО ПРЕРЫВАНИЯ ОТ УСТРОЙСТВА | ||||
| 255 | |||||
| 256 | 131172 | 012764 000002 177634 | MOV #2,177634(R4) | ;ОШИБКА 2. ПРОИЗОШЛО ПРЕРЫВАНИЕ ПРИ ЗАПРЕЩЕНИИ | |
| 257 | ;ЗАПРОСА ПРЕРЫВАНИЯ ИЛИ НЕ СНИМАЕТСЯ ФЛАГ | ||||
| 258 | ;ЗАПРОСА ПРЕРЫВАНИЯ ПОСЛЕ ОБСЛУЖИВАНИЯ | ||||
| 259 | ;ПРЕРЫВАНИЯ | ||||
| 260 | 131200 | 012716 130570 | MOV #130570,@SP | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПРЕРЫВАНИЯ | |
| 261 | 131204 | 000002 | RTI | ||
| 262 | |||||
| 263 | ;ТАБЛИЦА АДРЕСОВ | ||||
| 264 | 131206 | 131216 | 131216 | ||
| 265 | 131210 | 131242 | 131242 | ||
| 266 | 131212 | 131266 | 131266 | ||
| 267 | 131214 | 000000 | 000000 | ||
| 268 | |||||
| 269 | ;ТАБЛИЦА КОНСТАНТ ДЛЯ ЗАДАНИЯ РЕЖИМА РАБОТЫ КОНТРОЛЛЕРА ПРЕРЫВАНИЙ | ||||
| 270 | 131216 | 140200 | 140200 | ||
| 271 | 131220 | 160377 | 160377 | ||
| 272 | 131222 | 160634 | 160634 | ||
| 273 | 131224 | 161200 | 161200 | ||
| 274 | 131226 | 161604 | 161604 | ||
| 275 | 131230 | 162210 | 162210 | ||
| 276 | 131232 | 162614 | 162614 | ||
| 277 | 131234 | 163220 | 163220 | ||
| 278 | 131236 | 163624 | 163624 | ||
| 279 | 131240 | 000230 | 000230 | ||
| 280 | |||||
| 281 | 131242 | 140201 | 140201 | ||
| 282 | 131244 | 160377 | 160377 | ||
| 283 | 131246 | 160700 | 160700 | ||
| 284 | 131250 | 161310 | 161310 | ||
| 285 | 131252 | 161720 | 161720 | ||
| 286 | 131254 | 162330 | 162330 | ||
| 287 | 131256 | 162740 | 162740 | ||
| 288 | 131260 | 163350 | 163350 | ||
| 289 | 131262 | 163760 | 163760 | ||
| 290 | 131264 | 000370 | 000370 | ||
| 291 | |||||
| 292 | 131266 | 140201 | 140201 | ||
| 293 | 131270 | 160377 | 160377 | ||
| 294 | 131272 | 160704 | 160704 | ||
| 295 | 131274 | 161314 | 161314 | ||
| 296 | 131276 | 161724 | 161724 | ||
| 297 | 131300 | 162334 | 162334 | ||
| 298 | 131302 | 162744 | 162744 | ||
| 299 | 131304 | 163354 | 163354 | ||
| 300 | 131306 | 163764 | 163764 | ||
| 301 | 131310 | 000374 | 000374 | ||
| 302 | |||||
| 303 | |||||
| 304 | |||||
| 305 | ;********************************************************************** | ||||
| 306 | ; | ||||
| 307 | ;ПОДПРОГРАММА ПРОВЕРКИ ИНТЕРФЕЙСА КЛАВИАТУРЫ В РЕЖИМЕ | ||||
| 308 | ;"КОРОТКАЯ ПЕТЛЯ" | ||||
| 309 | ; | ||||
| 310 | ;*********************************************************************** | ||||
| 311 | |||||
| 312 | 131312 | 012764 000014 177672 | MOV #14,177672(R4) | ;ЗАПИСАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД ИНТЕРФЕЙСА | |
| 313 | ;КЛАВИАТУРЫ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | ||||
| 314 | 131320 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 7 | |
| 315 | 131326 | 012700 173500 | MOV #173500,R0 | ;ВЫБРАТЬ АДРЕС ИНТЕРФЕЙСА КЛАВИАТУРЫ | |
| 316 | 131332 | 012701 000001 | MOV #1,R1 | ;УСТАНОВИТЬ В R1 ПРИЗНАК ПРОВЕРКИ ИНТЕРФЕЙСА КЛАВИАТУРЫ | |
| 317 | 131336 | 010546 | MOV R5,-(SP) | ||
| 318 | 131340 | 004737 132036 | JSR PC,@#132036 | ;ПРОВЕРИТЬ ИНТЕРФЕЙС КЛАВИАТУРЫ В РЕЖИМЕ "КОРОТКАЯ ПЕТЛЯ" | |
| 319 | 131344 | 010564 177670 | MOV R5,177670(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК КОД ОШИБКИ ИЛИ | |
| 320 | ;0, ЕСЛИ ОШИБКИ НЕТ | ||||
| 321 | 131350 | 012605 | MOV (SP)+,R5 | ||
| 322 | 131352 | 005764 177670 | TST 177670(R4) | ;БЫЛА ОШИБКА? | |
| 323 | 131356 | 001013 | BNE 131406 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 324 | 131360 | 005760 000006 | TST 6(R0) | ||
| 325 | 131364 | 012760 000116 000004 | MOV #116,4(R0) | ;ЗАДАТЬ АССИНХРОННЫЙ РЕЖИМ РАБОТЫ С 8-Ю ИНФОРМАЦИОННЫМИ | |
| 326 | ;БИТАМИ И 1 СТОПОВЫМ БИТОМ | ||||
| 327 | 131372 | 012760 000074 000004 | MOV #74,4(R0) | ;ЗАДАТЬ СКОРОСТЬ ОБМЕНА - 4800 БИТ/С | |
| 328 | 131400 | 012760 000047 000006 | MOV #47,6(R0) | ;РАЗРЕШИТЬ ПРИЕМ И ПЕРЕДАЧУ ИНТЕРФЕЙСА КЛАВИАТУРЫ В | |
| 329 | ;НОРМАЛЬНОМ РЕЖИМЕ | ||||
| 330 | 131406 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 331 | |||||
| 332 | ;*********************************************************************** | ||||
| 333 | ; | ||||
| 334 | ;ПОДПРОГРАММА ВЫБОРКИ ИЗ БУФЕРА КЛАВИАТУРЫ И ЗАПИСИ В ТАБЛИЦУ | ||||
| 335 | ;КОНФИГУРАЦИИ ПВК ИДЕНТИФИКАЦИОННЫХ КОДОВ, ГЕНЕРИРУЕМЫХ КЛАВИАТУРОЙ | ||||
| 336 | ; | ||||
| 337 | ;*********************************************************************** | ||||
| 338 | |||||
| 339 | 131410 | 005764 177702 | TST 177702(R4) | ;МОНИТОР ПОДСОЕДИНЕН? | |
| 340 | 131414 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 341 | 131416 | 105764 177670 | TSTB 177670(R4) | ;БЫЛИ ОШИБКИ ПРИ ПРОВЕРКЕ ИНТЕРФЕЙСА КЛАВИАТУРЫ В | |
| 342 | ;РЕЖИМЕ "КОРОТКАЯ ПЕТЛЯ"? | ||||
| 343 | 131422 | 001401 | BEQ .+4 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 344 | 131424 | 000207 | RTS PC | ||
| 345 | 131426 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 7 | |
| 346 | 131434 | 012737 131600 000200 | MOV #131600,@#200 | ;СФОРМИРОВАТЬ ВЕКТОРЫ ПРЕРЫВАНИЙ С АДРЕСАМИ 000200 И | |
| 347 | 131442 | 012737 000340 000202 | MOV #340,@#202 | ;000204 | |
| 348 | 131450 | 012737 131564 000204 | MOV #131564,@#204 | ||
| 349 | 131456 | 012737 000340 000206 | MOV #340,@#206 | ||
| 350 | 131464 | 012701 000001 | MOV #1,R1 | ||
| 351 | 131470 | 005737 173500 | TST @#173500 | ;СЧИТАТЬ БУФЕР | |
| 352 | 131474 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ВХОДА КЛАВИАТУРЫ | |
| 353 | 131476 | 005201 | INC R1 | ||
| 354 | 131500 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ВЫХОДА КЛАВИАТУРЫ | |
| 355 | 131502 | 012737 000375 173500 | MOV #375,@#173500 | ;ВЫПОЛНИТЬ ТЕСТ, ГЕНЕРИРУЮЩИЙ ИДЕНТИФИКАЦИОННЫЕ КОДЫ | |
| 356 | ;КЛАВИАТУРЫ | ||||
| 357 | 131510 | 005000 | CLR R0 | ||
| 358 | 131512 | 005001 | CLR R1 | ||
| 359 | 131514 | 005037 002000 | CLR @#2000 | ||
| 360 | 131520 | 012737 177777 002002 | MOV #-1,@#2002 | ||
| 361 | 131526 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 0 | |
| 362 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ | ||||
| 363 | 131532 | 077001 | SOB R0,.+0 | ;ПРОИЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ЗАВЕРШЕНИЯ ВЫБОРКИ КОДОВ | |
| 364 | 131534 | 012701 000001 | MOV #1,R1 | ||
| 365 | 131540 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВХОДА КЛАВИАТУРЫ | |
| 366 | 131542 | 005201 | INC R1 | ||
| 367 | 131544 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВЫХОДА КЛАВИАТУРЫ | |
| 368 | 131546 | 013764 002000 177722 | MOV @#2000,177722(R4) | ;ЗАПИСАТЬ ИДЕНТИФИКАЦИОННЫЕ КОДЫ В ТАБЛИЦУ | |
| 369 | 131554 | 013764 002002 177720 | MOV @#2002,177720(R4) | ;КОНФИГУРАЦИИ ПВК | |
| 370 | 131562 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 371 | |||||
| 372 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ ОТ ВЫХОДА КЛАВИАТУРЫ | ||||
| 373 | ;(АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ - 000204) | ||||
| 374 | |||||
| 375 | 131564 | 010146 | MOV R1,-(SP) | ||
| 376 | 131566 | 012701 000002 | MOV #2,R1 | ||
| 377 | 131572 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВЫХОДА КЛАВИАТУРЫ | |
| 378 | 131574 | 012601 | MOV (SP)+,R1 | ||
| 379 | 131576 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 380 | |||||
| 381 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ ОТ ВХОДА КЛАВИАТУРЫ | ||||
| 382 | ;(АДРЕС ВЕКТОРА ПРЕРЫВАНИЯ - 000200) | ||||
| 383 | |||||
| 384 | 131600 | 113761 173500 002000 | MOVB @#173500,2000(R1) | ;ВЫБРАТЬ КОД ИЗ БУФЕРА КЛАВИАТУРЫ | |
| 385 | 131606 | 005201 | INC R1 | ;УВЕЛИЧИТЬ СЧЕТЧИК КОДОВ | |
| 386 | 131610 | 022701 000004 | CMP #4,R1 | ;4 КОДА СЧИТАНЫ? | |
| 387 | 131614 | 001005 | BNE 131630 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 388 | 131616 | 010146 | MOV R1,-(SP) | ||
| 389 | 131620 | 012701 000001 | MOV #1,R1 | ||
| 390 | 131624 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВХОДА КЛАВИАТУРЫ | |
| 391 | 131626 | 012601 | MOV (SP)+,R1 | ||
| 392 | 131630 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 393 | |||||
| 394 | ;*********************************************************************** | ||||
| 395 | ; | ||||
| 396 | ;ПОДПРОГРАММА ПРОВЕРКИ ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 397 | ;В РЕЖИМЕ "КОРОТКАЯ ПЕТЛЯ" | ||||
| 398 | ; | ||||
| 399 | ;*********************************************************************** | ||||
| 400 | |||||
| 401 | 131632 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 7 | |
| 402 | 131640 | 012764 000017 177666 | MOV #17,177666(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ИДЕНТИФИКАЦИОНЫЙ | |
| 403 | ;КОД ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 404 | 131646 | 012700 173400 | MOV #173400,R0 | ;ВЫБРАТЬ АДРЕС ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО УСТРОЙСТВА | |
| 405 | 131652 | 012701 000005 | MOV #5,R1 | ;УСТАНОВИТЬ В R1 ПРИЗНАК ПРОВЕРКИ ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО | |
| 406 | ;УСТРОЙСТВА | ||||
| 407 | 131656 | 042737 000200 173700 | BIC #200,@#173700 | ;ЗАПРЕТИТЬ ОСТАНОВ ЭВМ | |
| 408 | 131664 | 010546 | MOV R5,-(SP) | ||
| 409 | 131666 | 004737 132036 | JSR PC,@#132036 | ;ПРОВЕРИТЬ ИНТЕРФЕЙС ПЕЧАТАЮЩЕГО УСТРОЙСТВА В РЕЖИМЕ | |
| 410 | ;"КОРОТКАЯ ПЕТЛЯ" | ||||
| 411 | 131672 | 010564 177664 | MOV R5,177664(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК КОД ОШИБКИ ИЛИ | |
| 412 | ;0, ЕСЛИ ОШИБОК НЕТ | ||||
| 413 | 131676 | 012605 | MOV (SP)+,R5 | ||
| 414 | 131700 | 005764 177664 | TST 177664(R4) | ;БЫЛИ ОШИБКИ? | |
| 415 | 131704 | 001016 | BNE 131742 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 416 | 131706 | 005760 000006 | TST 6(R0) | ||
| 417 | 131712 | 012760 000116 000004 | MOV #116,4(R0) | ;ЗАДАТЬ АССИНХРОННЫЙ РЕЖИМ РАБОТЫ С 8-Ю ИНФОРМАЦИОННЫМИ | |
| 418 | ;И 1 СТОПОВЫМ БИТАМИ | ||||
| 419 | 131720 | 012760 000274 000004 | MOV #274,4(R0) | ;ЗАДАТЬ СКОРОСТЬ ОБМЕНА - 4800 БИТ/С | |
| 420 | 131726 | 012760 000047 000006 | MOV #47,6(R0) | ;РАЗРЕШИТЬ ПРИЕМ И ПЕРЕДАЧУ В НОРМАЛЬНОМ РЕЖИМЕ | |
| 421 | 131734 | 052737 000200 173700 | BIS #200,@#173700 | ;РАЗРЕШИТЬ ОСТАНОВ ЭВМ | |
| 422 | 131742 | 000207 | RTS PC | ||
| 423 | |||||
| 424 | ;*********************************************************************** | ||||
| 425 | ; | ||||
| 426 | ;ПОДПРОГРАММА ПРОВЕРКИ НАЛИЧИЯ И ГОТОВНОСТИ ПУЛЬТОВОГО ТЕРМИНАЛА | ||||
| 427 | ;ПРИ НАЛИЧИИ И ГОТОВНОСТИ ПУЛЬТОВОГО ТЕРМИНАЛА ПЕРЕПРОГРАММИРУЕТСЯ | ||||
| 428 | ;СКОРОСТЬ ОБМЕНА ИНТЕРФЕЙСА НА 9600 БИТ/С | ||||
| 429 | ; | ||||
| 430 | ;*********************************************************************** | ||||
| 431 | |||||
| 432 | 131744 | 012737 132030 000004 | MOV #132030,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 433 | 131752 | 005737 177564 | TST @#177564 | ;ПУЛЬТОВОЙ ТЕРМИНАЛ ГОТОВ? | |
| 434 | ;(ПРЕРЫВАНИЕ, ЕСЛИ АДРЕС НЕ ОТВЕЧАЕТ) | ||||
| 435 | 131756 | 001423 | BEQ 132026 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 436 | 131760 | 012700 173400 | MOV #173400,R0 | ;ВЫБРАТЬ АДРЕС ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО УСТРОЙСТВА | |
| 437 | 131764 | 012764 000027 177662 | MOV #27,177662(R4) | ;ЗАПИСАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД ПУЛЬТОВОГО ТЕРМИНАЛА | |
| 438 | ;В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | ||||
| 439 | 131772 | 005760 000006 | TST 6(R0) | ;ПЕРЕПРОГРАММИРОВАТЬ ИНТЕРФЕЙС ДЛЯ РАБОТЫ С ПУЛЬТОВЫМ | |
| 440 | 131776 | 012760 000116 000004 | MOV #116,4(R0) | ;ТЕРМИНАЛОМ:ЗАДАТЬ АССИНХРОННЫЙ РЕЖИМ РАБОТЫ С 8-Ю | |
| 441 | ;ИНФОРМАЦИОННЫМИ И 1 СТОПОВЫМ БИТАМИ | ||||
| 442 | 132004 | 012760 000276 000004 | MOV #276,4(R0) | ;ЗАДАТЬ СКОРОСТЬ ОБМЕНА - 9600 БИТ/С | |
| 443 | 132012 | 012760 000047 000006 | MOV #47,6(R0) | ;РАЗРЕШИТЬ ПРИЕМ И ПЕРЕДАЧУ В НОРМАЛЬНОМ РЕЖИМЕ | |
| 444 | 132020 | 052737 000200 173700 | BIS #200,@#173700 | ;РАЗРЕШИТЬ ОСТАНОВ ЭВМ | |
| 445 | 132026 | 000207 | RTS PC | ||
| 446 | |||||
| 447 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 448 | 132030 | 012716 132026 | MOV #132026,@SP | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПРЕРЫВАНИЯ | |
| 449 | 132034 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 450 | |||||
| 451 | |||||
| 452 | ;*********************************************************************** | ||||
| 453 | ; | ||||
| 454 | ;ПОДПРОГРАММА ПЕРЕДАЧИ ДАННЫХ 000-377 В РЕЖИМЕ ПРЕРЫВАНИЙ | ||||
| 455 | ;С ИСПОЛЬЗОВАНИЕМ РЕЖИМА "КОРОТКАЯ ПЕТЛЯ" | ||||
| 456 | ; | ||||
| 457 | ;*********************************************************************** | ||||
| 458 | |||||
| 459 | 132036 | 012737 132444 000004 | MOV #132444,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 460 | 132044 | 012737 000340 000006 | MOV #340,@#6 | ||
| 461 | 132052 | 010102 | MOV R1,R2 | ;ВЫБРАТЬ УКАЗАТЕЛЬ ПРОВЕРЯЕМОГО УСТРОЙСТВА | |
| 462 | ;1 - ИНТЕРФЕЙС КЛАВИАТУРЫ | ||||
| 463 | ;5 - ИНТЕРФЕЙС ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 464 | 132054 | 005710 | TST @R0 | ;СЧИТАТЬ БУФЕР | |
| 465 | 132056 | 072227 000002 | ASH #2,R2 | ||
| 466 | 132062 | 012737 000000 002004 | MOV #0,@#2004 | ||
| 467 | 132070 | 012762 132332 000174 | MOV #132332,174(R2) | ;СФОРМИРОВАТЬ ВЕКТОРЫ ПРЕРЫВАНИЙ С АДРЕСАМИ | |
| 468 | 132076 | 012762 000340 000176 | MOV #340,176(R2) | ;000200 И 000204 ДЛЯ ИНТЕРФЕЙСА КЛАВИАТУРЫ, | |
| 469 | 132104 | 012762 132300 000200 | MOV #132300,200(R2) | ;000220 И 000224 ДЛЯ ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО | |
| 470 | 132112 | 012762 000340 000202 | MOV #340,202(R2) | ;УСТРОЙСТВА | |
| 471 | 132120 | 005060 000006 | CLR 6(R0) | ||
| 472 | 132124 | 005760 000006 | TST 6(R0) | ;ПЕРЕПРОГРАММИРОВАТЬ РЕЖИМ РАБОТЫ ИНТЕРФЕЙСА: | |
| 473 | 132130 | 012760 000116 000004 | MOV #116,4(R0) | ;ЗАДАТЬ АСИНХРОННЫЙ РЕЖИМ С 8-Ю ИНФОРМАЦИОННЫМИ И | |
| 474 | ;1 СТОПОВЫМ БИТАМИ | ||||
| 475 | 132136 | 012760 000057 000004 | MOV #57,4(R0) | ;ЗАДАТЬ СКОРОСТЬ ОБМЕНА - 19200 БИТ/С | |
| 476 | 132144 | 012760 000243 000006 | MOV #243,6(R0) | ;ЗАДАТЬ РЕЖИМ "КОРОТКАЯ ПЕТЛЯ" | |
| 477 | 132152 | 005037 002002 | CLR @#2002 | ||
| 478 | 132156 | 005037 002000 | CLR @#2000 | ||
| 479 | 132162 | 011005 | MOV @R0,R5 | ;СЧИТАТЬ БУФЕР | |
| 480 | 132164 | 005005 | CLR R5 | ||
| 481 | 132166 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ВХОДА ИНТЕРФЕЙСА КЛАВИАТУРЫ/ | |
| 482 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 483 | 132170 | 005201 | INC R1 | ||
| 484 | 132172 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ВЫХОДА ИНТЕРФЕЙСА КЛАВИАТУРЫ/ | |
| 485 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 486 | 132174 | 104004 | EMT+4 | ;ЗАДАТЬ ТРЕБОВАНИЕ ПРЕРЫВАНИЯ ОТ ВЫХОДА ИНТЕРФЕЙСА | |
| 487 | ;КЛАВИАТУРЫ/ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 488 | 132176 | 005301 | DEC R1 | ||
| 489 | 132200 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 0 | |
| 490 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ | ||||
| 491 | 132204 | 022737 000400 002002 | CMP #400,@#2002 | ;ПРОИЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ЗАВЕРШЕНИЯ ПЕРЕДАЧИ ДАННЫХ | |
| 492 | 132212 | 001405 | BEQ 132226 | ;В РЕЖИМЕ ПРЕРЫВАНИЙ | |
| 493 | 132214 | 005705 | TST R5 | ;БЫЛИ ОШИБКИ? | |
| 494 | 132216 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 495 | 132220 | 005337 002004 | DEC @#2004 | ||
| 496 | 132224 | 001367 | BNE 132204 | ||
| 497 | 132226 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 7 | |
| 498 | 132234 | 005060 000006 | CLR 6(R0) | ||
| 499 | 132240 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВХОДА ИНТЕРФЕЙСА КЛАВИАТУРЫ/ | |
| 500 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 501 | 132242 | 005201 | INC R1 | ||
| 502 | 132244 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВЫХОДА ИНТЕРФЕЙСА КЛАВИАТУРЫ/ | |
| 503 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 504 | 132246 | 005301 | DEC R1 | ||
| 505 | 132250 | 005737 002004 | TST @#2004 | ;СЧЕТЧИК =0? | |
| 506 | 132254 | 001010 | BNE 132276 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 507 | 132256 | 022701 000001 | CMP #1,R1 | ;ПРОВЕРЯЕТСЯ ИНТЕРФЕЙС КЛАВИАТУРЫ? | |
| 508 | 132262 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ПРОВЕРЯЕТСЯ | |
| 509 | ;ИНТЕРФЕЙС ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 510 | 132264 | 012705 000004 | MOV #4,R5 | ;ОШИБКА 4. НЕТ ПРЕРЫВАНИЯ ОТ ИНТЕРФЕЙСА КЛАВИАТУРЫ ИЛИ | |
| 511 | ;ОШИБКА СКОРОСТИ ОБМЕНА ИНТЕРФЕЙСА КЛАВИАТУРЫ | ||||
| 512 | 132270 | 000402 | BR .+6 | ||
| 513 | 132272 | 012705 000005 | MOV #5,R5 | ;ОШИБКА 5. НЕТ ПРЕРЫВАНИЯ ОТ ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО | |
| 514 | ;УСТРОЙСТВА ИЛИ ОШИБКА СКОРОСТИ ОБМЕНА ИНТЕРФЕЙСА | ||||
| 515 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 516 | 132276 | 000207 | RTS PC | ||
| 517 | |||||
| 518 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ ОТ ВЫХОДА ИНТЕРФЕЙСА КЛАВИАТУРЫ/ | ||||
| 519 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 520 | ;(ВЕКТОР С АДРЕСОМ 000204 - ДЛЯ ИНТЕРФЕЙСА КЛАВИАТУРЫ, 000224 - ДЛЯ | ||||
| 521 | ;ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО УСТРОЙСТВА) | ||||
| 522 | |||||
| 523 | 132300 | 022737 000400 002000 | CMP #400,@#2000 | ;ВСЕ ДАННЫЕ ПЕРЕДАНЫ? | |
| 524 | 132306 | 001004 | BNE 132320 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 525 | 132310 | 005201 | INC R1 | ||
| 526 | 132312 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВЫХОДА ИНТЕРФЕЙСА | |
| 527 | 132314 | 005301 | DEC R1 | ||
| 528 | 132316 | 000404 | BR 132330 | ||
| 529 | 132320 | 013710 002000 | MOV @#2000,@R0 | ;ЗАГРУЗИТЬ КОД В ВЫХОДНОЙ БУФЕР ИНТЕРФЕЙСА | |
| 530 | 132324 | 005237 002000 | INC @#2000 | ;ПОЛУЧИТЬ СЛЕДУЮЩИЙ КОД | |
| 531 | 132330 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 532 | |||||
| 533 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ ОТ ВХОДА ИНТЕРФЕЙСА КЛАВИАТУРЫ/ | ||||
| 534 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 535 | ;(ВЕКТОР С АДРЕСОМ 000200 - ДЛЯ ИНТЕРФЕЙСА КЛАВИАТУРЫ, 000220 - ДЛЯ | ||||
| 536 | ;ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 537 | |||||
| 538 | 132332 | 016003 000002 | MOV 2(R0),R3 | ;СЧИТАТЬ РС | |
| 539 | 132336 | 032703 000060 | BIT #60,R3 | ;ЕСТЬ ОШИБКА ПЕРЕПОЛНЕНИЯ ИЛИ ОШИБКА СТОПОВОГО БИТА? | |
| 540 | 132342 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 541 | 132344 | 032703 000002 | BIT #2,R3 | ;ВХОДНОЙ БУФЕР ПУСТ? | |
| 542 | 132350 | 001011 | BNE 132374 | ;ПЕРЕЙТИ, ЕСЛИ ЗАГРУЖЕН | |
| 543 | 132352 | 022701 000001 | CMP #1,R1 | ;ПРОВЕРЯЕТСЯ ИНТЕРФЕЙС КЛАВИАТУРЫ? | |
| 544 | 132356 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ИНТЕРФЕЙС ПЕЧАТАЮЩЕГО УСТРОЙСТВА | |
| 545 | 132360 | 012705 000006 | MOV #6,R5 | ;ОШИБКА 6. ОШИБКА ПЕРЕПОЛНЕНИЯ, ОШИБКА СТОПОВОГО БИТА | |
| 546 | ;ИЛИ НЕТ ГОТОВНОСТИ ВХОДА ИНТЕРФЕЙСА КЛАВИАТУРЫ | ||||
| 547 | 132364 | 000417 | BR 132424 | ||
| 548 | 132366 | 012705 000007 | MOV #7,R5 | ;ОШИБКА 7. ОШИБКА ПЕРЕПОЛНЕНИЯ, ОШИБКА СТОПОВОГО БИТА | |
| 549 | ;ИЛИ НЕТ ГОТОВНОСТИ ВХОДА ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО | ||||
| 550 | ;УСТРОЙСТВА | ||||
| 551 | 132372 | 000414 | BR 132424 | ||
| 552 | 132374 | 011003 | MOV @R0,R3 | ;СЧИТАТЬ ВХОДНОЙ БУФЕР | |
| 553 | 132376 | 120337 002002 | CMPB R3,@#2002 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 554 | 132402 | 001415 | BEQ 132436 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 555 | 132404 | 022701 000001 | CMP #1,R1 | ;ПРОВЕРЯЕТСЯ ИНТЕРФЕЙС КЛАВИАТУРЫ? | |
| 556 | 132410 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ИНТЕРФЕЙС ПЕЧАТАЮЩЕГО УСТРОЙСТВА | |
| 557 | 132412 | 012705 000010 | MOV #10,R5 | ;ОШИБКА 10. НЕСОВПАДЕНИЕ ПЕРЕДАВАЕМЫХ И ПРИНИМАЕМЫХ | |
| 558 | ;ДАННЫХ ПРИ ПРОВЕРКЕ ИНТЕРФЕЙСА КЛАВИАТУРЫ | ||||
| 559 | 132416 | 000402 | BR .+6 | ||
| 560 | 132420 | 012705 000011 | MOV #11,R5 | ;ОШИБКА 11. НЕСОВПАДЕНИЕ ПЕРЕДАВАЕМЫХ И ПРИНИМАЕМЫХ | |
| 561 | ;ДАННЫХ ПРИ ПРОВЕРКЕ ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 562 | 132424 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВХОДА ИНТЕРФЕЙСА | |
| 563 | 132426 | 005201 | INC R1 | ||
| 564 | 132430 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВЫХОДА ИНТЕРФЕЙСА | |
| 565 | 132432 | 005301 | DEC R1 | ||
| 566 | 132434 | 000402 | BR .+6 | ||
| 567 | 132436 | 005237 002002 | INC @#2002 | ;ПОЛУЧИТЬ СЛЕДУЮЩИЙ ОЖИДАЕМЫЙ КОД | |
| 568 | 132442 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 569 | |||||
| 570 | ;ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 571 | |||||
| 572 | 132444 | 012716 132204 | MOV #132204,@SP | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПРЕРЫВАНИЯ | |
| 573 | 132450 | 022701 000001 | CMP #1,R1 | ;ПРОВЕРЯЕТСЯ ИНТЕРФЕЙС КЛАВИАТУРЫ? | |
| 574 | 132454 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ИНТЕРФЕЙС ПЕЧАТАЮЩЕГО УСТРОЙСТВА | |
| 575 | 132456 | 012705 000026 | MOV #26,R5 | ;ОШИБКА 26. | |
| 576 | ;НЕТ ОТВЕТА ОТ ОДНОГО ИЗ РЕГИСТРОВ ИНТЕРФЕЙСА КЛАВИАТУРЫ | ||||
| 577 | 132462 | 000402 | BR .+6 | ||
| 578 | 132464 | 012705 000003 | MOV #3,R5 | ;ОШИБКА 3.НЕТ ОТВЕТА ОТ ОДНОГО ИЗ РЕГИСТРОВ ИНТЕРФЕЙСА | |
| 579 | ;ПЕЧАТАЮЩЕГО УСТРОЙСТВА | ||||
| 580 | 132470 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 581 | |||||
| 582 | ;*********************************************************************** | ||||
| 583 | ; | ||||
| 584 | ;ПОДПРОГРАММА ПРОВЕРКИ КОММУНИКАЦИОННОГО ИНТЕРФЕЙСА | ||||
| 585 | ;РЗN - РЕГИСТР ЗАПИСИ, N - НОМЕР РЕГИСТРА ЗАПИСИ | ||||
| 586 | ;РЧN - РЕГИСТР ЧТЕНИЯ, N - НОМЕР РЕГИСТРА ЧТЕНИЯ | ||||
| 587 | ; | ||||
| 588 | ;*********************************************************************** | ||||
| 589 | |||||
| 590 | 132472 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП =7 | |
| 591 | 132500 | 012764 000021 177656 | MOV #21,177656(R4) | ;ЗАПИСАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД КОММУНИКАЦИОННОГО | |
| 592 | ;ИНТЕРФЕЙСА В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | ||||
| 593 | 132506 | 012737 133066 000004 | MOV #133066,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 594 | 132514 | 012737 000340 000006 | MOV #340,@#6 | ||
| 595 | 132522 | 012737 000377 173314 | MOV #377,@#173314 | ;ЗАДАТЬ СКОРОСТЬ ОБМЕНА - 19200 БИТ/С | |
| 596 | 132530 | 012737 000340 173310 | MOV #340,@#173310 | ;УСТАНОВИТЬ РЕЖИМ АВТОНОМНОЙ ПРОВЕРКИ КОММУНИКАЦИОННОГО | |
| 597 | ;ИНТЕРФЕЙСА | ||||
| 598 | 132536 | 012737 133106 000210 | MOV #133106,@#210 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ ОТ КОММУНИКАЦИОННОГО | |
| 599 | 132544 | 012737 000340 000212 | MOV #340,@#212 | ;ИНТЕРФЕЙСА | |
| 600 | 132552 | 005037 002000 | CLR @#2000 | ||
| 601 | 132556 | 005037 002002 | CLR @#2002 | ||
| 602 | 132562 | 010546 | MOV R5,-(SP) | ||
| 603 | 132564 | 012737 000000 002004 | MOV #0,@#2004 | ||
| 604 | 132572 | 012737 000030 173302 | MOV #30,@#173302 | ;ОЧИСТИТЬ ФЛАГИ СОСТОЯНИЯ В РЧ0, ЛОГИКУ | |
| 605 | 132600 | 012737 000030 173306 | MOV #30,@#173306 | ;ПРЕРЫВАНИЙ И ВСЕ РЕГИСТРЫ КОНТРОЛЯ ВНУТРЕННЕЙ | |
| 606 | ;МАГИСТРАЛИ В КАНАЛЕ А И Б | ||||
| 607 | 132606 | 012737 000300 173302 | MOV #300,@#173302 | ||
| 608 | 132614 | 012737 000004 173302 | MOV #4,@#173302 | ;ВЫБРАТЬ НОМЕР РЗ=4 В КАНАЛЕ А | |
| 609 | 132622 | 012737 000104 173302 | MOV #104,@#173302 | ;ЗАПРЕТИТЬ ПАРИТЕТ, РАЗРЕШИТЬ АССИНХРОННЫЙ | |
| 610 | ;РЕЖИМ С 1 СТОПОВЫМ БИТОМ | ||||
| 611 | 132630 | 012737 000003 173302 | MOV #3,@#173302 | ;ВЫБРАТЬ НОМЕР РЗ=3 В КАНАЛЕ А | |
| 612 | 132636 | 012737 000341 173302 | MOV #341,@#173302 | ;РАЗРЕШИТЬ ПРИЕМ 8-БИТНЫХ ДАННЫХ | |
| 613 | 132644 | 012737 000005 173302 | MOV #5,@#173302 | ;ВЫБРАТЬ НОМЕР РЗ=5 В КАНАЛЕ А | |
| 614 | 132652 | 012737 000352 173302 | MOV #352,@#173302 | ;РАЗРЕШИТЬ ПЕРЕДАЧУ 8-БИТНЫХ ДАННЫХ | |
| 615 | 132660 | 012737 000002 173302 | MOV #2,@#173302 | ;ВЫБРАТЬ НОМЕР РЗ=2 В КАНАЛЕ А | |
| 616 | 132666 | 012737 000000 173302 | MOV #0,@#173302 | ;РАЗРЕШИТЬ РЕЖИМ ПРЕРЫВАНИЙ В КАНАЛЕ А И Б, | |
| 617 | ;УСТАНОВИТЬ ПРИОРИТЕТ ПРЕРЫВАНИЙ | ||||
| 618 | 132674 | 012737 000020 173302 | MOV #20,@#173302 | ;ИНИЦИАЛИЗИРОВАТЬ РАЗРЯДЫ СОСТОЯНИЯ В РЧ0, | |
| 619 | ;РАЗРЕШИТЬ ИХ ЗАПОЛНЕНИЕ | ||||
| 620 | 132702 | 012737 000002 173306 | MOV #2,@#173306 | ;ВЫБРАТЬ НОМЕР РЗ=2 В КАНАЛЕ Б | |
| 621 | 132710 | 012737 000000 173306 | MOV #0,@#173306 | ||
| 622 | 132716 | 012737 000001 173306 | MOV #1,@#173306 | ;ВЫБРАТЬ НОМЕР РЗ=1 В КАНАЛЕ Б | |
| 623 | 132724 | 012737 000004 173306 | MOV #4,@#173306 | ;УСТАНОВИТЬ РАЗРЯД 02 В РЗ1 | |
| 624 | 132732 | 012737 000001 173302 | MOV #1,@#173302 | ;ВЫБРАТЬ НОМЕР РЗ=1 В КАНАЛЕ А | |
| 625 | 132740 | 012737 000022 173302 | MOV #22,@#173302 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ПЕРЕДАТЧИКА И ОТ | |
| 626 | ;ПРИЕМНИКА (ПО ЗАВЕРШЕНИИ ПРИЕМА КАЖДОГО СИМВОЛА | ||||
| 627 | 132746 | 012701 000003 | MOV #3,R1 | ;ИЛИ ПРИ ВОЗНИКНОВЕНИИ ОШИБКИ) | |
| 628 | 132752 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ КОММУНИКАЦИОННОГО ИНТЕРФЕЙСА | |
| 629 | 132754 | 005037 173300 | CLR @#173300 | ;ЗАГРУЗИТЬ КОД В БУФЕР КАНАЛА А | |
| 630 | 132760 | 005237 002000 | INC @#2000 | ||
| 631 | 132764 | 005005 | CLR R5 | ||
| 632 | 132766 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП= 0 | |
| 633 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ С АДРЕСОМ ВЕКТОРА | ||||
| 634 | ;000210 | ||||
| 635 | 132772 | 022737 000400 002002 | CMP #400,@#2002 | ;ВСЕ ДАННЫЕ ПЕРЕДАНЫ? | |
| 636 | 133000 | 001405 | BEQ 133014 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 637 | 133002 | 005705 | TST R5 | ;БЫЛА ОШИБКА? | |
| 638 | 133004 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 639 | 133006 | 005337 002004 | DEC @#2004 | ;ПРОЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ЗАВЕРШЕНИЯ ПЕРЕДАЧИ ДАННЫХ | |
| 640 | 133012 | 001367 | BNE 132772 | ;В РЕЖИМЕ ПРЕРЫВАНИЙ | |
| 641 | 133014 | 005037 173310 | CLR @#173310 | ;РАЗРЕШИТЬ НОРМАЛЬНЫЙ РЕЖИМ РАБОТЫ КОММУНИКАЦИОННОГО | |
| 642 | ;ИНТЕРФЕЙСА | ||||
| 643 | 133020 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 644 | 133026 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИИЕ ОТ КОММУНИКАЦИОННОГО ИНТЕРФЕЙСА | |
| 645 | 133030 | 005737 002004 | TST @#2004 | ;СЧЕТЧИК =0? | |
| 646 | 133034 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 647 | 133036 | 012705 000012 | MOV #12,R5 | ;ОШИБКА 12.НЕТ ПРЕРЫВАНИЯ ОТ КОММУНИКАЦИОННОГО ИНТЕРФЕЙСА | |
| 648 | ;ИЛИ ОШИБКА СКОРОСТИ ОБМЕНА | ||||
| 649 | 133042 | 012737 000030 173302 | MOV #30,@#173302 | ;ПРОИЗВЕСТИ ИНИЦИАЛИЗАЦИЮ РЕГИСТРОВ В КАНАЛЕ А | |
| 650 | 133050 | 012737 000030 173306 | MOV #30,@#173306 | ;И В КАНАЛЕ Б | |
| 651 | 133056 | 010564 177654 | MOV R5,177654(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК КОД ОШИБКИ ИЛИ 0, | |
| 652 | ;ЕСЛИ ОШИБОК НЕТ | ||||
| 653 | 133062 | 012605 | MOV (SP)+,R5 | ||
| 654 | 133064 | 000207 | RTS PC | ||
| 655 | |||||
| 656 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 657 | |||||
| 658 | 133066 | 012705 000013 | MOV #13,R5 | ;ОШИБКА 13. НЕТ ОТВЕТА ОТ ОДНОГО ИЗ РЕГИСТРОВ | |
| 659 | ;КОММУНИКАЦИОННОГО ИНТЕРФЕЙСА | ||||
| 660 | 133072 | 012716 132772 | MOV #132772,@SP | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПРЕРЫВАНИЯ | |
| 661 | 133076 | 012766 000340 000002 | MOV #340,2(SP) | ||
| 662 | 133104 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 663 | |||||
| 664 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000210 | ||||
| 665 | |||||
| 666 | 133106 | 000240 | NOP | ||
| 667 | 133110 | 000240 | NOP | ||
| 668 | 133112 | 012737 000002 173306 | MOV #2,@#173306 | ;ВЫБРАТЬ НОМЕР РЧ=2 В КАНАЛЕ Б | |
| 669 | 133120 | 013700 173306 | MOV @#173306,R0 | ;ВЫБРАТЬ СОДЕРЖИМОЕ РЧ2 | |
| 670 | 133124 | 006200 | ASR R0 | ||
| 671 | 133126 | 042700 177761 | BIC #177761,R0 | ||
| 672 | 133132 | 000170 133136 | JMP @133136(R0) | ;ПЕРЕЙТИ НА ПОДПРОГРАММУ | |
| 673 | |||||
| 674 | ;АДРЕСА ПОДПРОГРАММ | ||||
| 675 | ;ПОДПРОГРАММЫ С УКАЗАННЫМИ АДРЕСАМИ ВЫПОЛНЯЮТСЯ ПРИ СЛЕДУЮЩЕМ | ||||
| 676 | ;СОДЕРЖИМОМ РЧ2 КАНАЛА Б: | ||||
| 677 | 133136 | 133272 | 133272 | ;ПРИ РЧ2=0 | |
| 678 | 133140 | 133272 | 133272 | ;ПРИ РЧ2=4 | |
| 679 | 133142 | 133272 | 133272 | ;ПРИ РЧ2=10 | |
| 680 | 133144 | 133272 | 133272 | ;ПРИ РЧ2=14 | |
| 681 | 133146 | 133156 | 133156 | ;ПРИ РЧ2=20 | |
| 682 | 133150 | 133212 | 133212 | ;ПРИ РЧ2=24 | |
| 683 | 133152 | 133220 | 133220 | ;ПРИ РЧ2=30 | |
| 684 | 133154 | 133244 | 133244 | ;ПРИ РЧ2=34 | |
| 685 | |||||
| 686 | ;ПОДПРОГРАММА ЗАГРУЗКИ ДАННЫХ В БУФЕР КАНАЛА А | ||||
| 687 | 133156 | 032737 000400 002000 | BIT #400,@#2000 | ;ВСЕ ДАННЫЕ ПЕРЕДАНЫ? | |
| 688 | 133164 | 001404 | BEQ 133176 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 689 | 133166 | 012737 000050 173302 | MOV #50,@#173302 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЯ | |
| 690 | 133174 | 000440 | BR 133276 | ||
| 691 | 133176 | 113737 002000 173300 | MOVB @#2000,@#173300 | ;ЗАГРУЗИТЬ КОД В БУФЕР | |
| 692 | 133204 | 005237 002000 | INC @#2000 | ;ПОЛУЧИТЬ СЛЕДУЮЩИЙ КОД | |
| 693 | 133210 | 000432 | BR 133276 | ||
| 694 | |||||
| 695 | |||||
| 696 | 133212 | 012705 000014 | MOV #14,R5 | ;ОШИБКА 14. СОДЕРЖИМОЕ РЧ2=24 | |
| 697 | 133216 | 000427 | BR 133276 | ||
| 698 | |||||
| 699 | ;ПОДПРОГРАММА СЧИТЫВАНИЯ ДАННЫХ ИЗ БУФЕРА КАНАЛА А | ||||
| 700 | 133220 | 013700 173300 | MOV @#173300,R0 | ;СЧИТАТЬ ВХОДНОЙ БУФЕР КАНАЛА А | |
| 701 | 133224 | 123700 002002 | CMPB @#2002,R0 | ;ПЕРЕДАВАЕМЫЕ ДАННЫЕ =ПРИНИМАЕМЫМ? | |
| 702 | 133230 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 703 | 133232 | 012705 000015 | MOV #15,R5 | ;ОШИБКА 15. НЕСОВПАДЕНИЕ ДАННЫХ | |
| 704 | 133236 | 005237 002002 | INC @#2002 | ;ПОЛУЧИТЬ СЛЕДУЮЩИЙ ОЖИДАЕМЫЙ КОД | |
| 705 | 133242 | 000415 | BR 133276 | ||
| 706 | |||||
| 707 | |||||
| 708 | 133244 | 012705 000016 | MOV #16,R5 | ;ОШИБКА 16. ОШИБКА ПЕРЕПОЛНЕНИЯ ИЛИ ОШИБКА | |
| 709 | ;СТОПОВОГО БИТА | ||||
| 710 | 133250 | 012737 000001 173302 | MOV #1,@#173302 | ;ВЫБРАТЬ НОМЕР РЧ=1 | |
| 711 | 133256 | 013701 173302 | MOV @#173302,R1 | ;СЧИТАТЬ РАЗРЯДЫ ОШИБОК | |
| 712 | 133262 | 012737 000060 173302 | MOV #60,@#173302 | ;ОЧИСТИТЬ РАЗРЯДЫ ОШИБОК | |
| 713 | 133270 | 000402 | BR .+6 | ||
| 714 | |||||
| 715 | |||||
| 716 | 133272 | 012705 000017 | MOV #17,R5 | ;ОШИБКА 17.СОДЕРЖИМОЕ РЧ2=0, 4, 10 ИЛИ 14 | |
| 717 | 133276 | 012737 000070 173302 | MOV #70,@#173302 | ;ПРОИЗВЕСТИ СБРОС ПРЕРЫВАНИЯ С НАИВЫСШИМ | |
| 718 | ;ПРИОРИТЕТОМ | ||||
| 719 | 133304 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 720 | |||||
| 721 | ;*********************************************************************** | ||||
| 722 | ; | ||||
| 723 | ;ПОДПРОГРАММА ПРОВЕРКИ ТАЙМЕРА 724 ; | ||||
| 725 | ;*********************************************************************** | ||||
| 726 | |||||
| 727 | 133306 | 012764 000023 177652 | MOV #23,177652(R4) | ;ЗАПИСАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД ТАЙМЕРА В ТАБЛИЦУ | |
| 728 | ;КОНФИГУРАЦИИ ПВК | ||||
| 729 | 133314 | 012737 133606 000004 | MOV #133606,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 730 | 133322 | 012737 000340 000006 | MOV #340,@#6 | ||
| 731 | 133330 | 105737 173032 | TSTB @#173032 | ;ОЗУ ТАЙМЕРА СОХРАНЯЕТ ИНФОРМАЦИЮ ПОСЛЕ | |
| 732 | ;ВЫКЛЮЧЕНИЯ ОСНОВНОГО ПИТАНИЯ? | ||||
| 733 | 133334 | 100412 | BMI 133362 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 734 | 133336 | 012764 000400 177650 | MOV #400,177650(R4) | ||
| 735 | 133344 | 012764 000400 177644 | MOV #400,177644(R4) | ||
| 736 | 133352 | 052737 000200 173026 | BIS #200,@#173026 | ;ЗАПРЕТИТЬ ХОД ЧАСОВ | |
| 737 | 133360 | 000404 | BR 133372 | ||
| 738 | 133362 | 005064 177644 | CLR 177644(R4) | ||
| 739 | 133366 | 005064 177650 | CLR 177650(R4) | ||
| 740 | 133372 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 741 | 133400 | 012737 133510 000230 | MOV #133510,@#230 | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ ОТ ТАЙМЕРА | |
| 742 | 133406 | 012737 000340 000232 | MOV #340,@#232 | ||
| 743 | 133414 | 012737 000047 173024 | MOV #47,@#173024 | ;ЗАДАТЬ ЧАСТОТУ ПРЕРЫВАНИЙ - 512 ГЦ | |
| 744 | 133422 | 012701 000007 | MOV #7,R1 | ||
| 745 | 133426 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ТАЙМЕРА | |
| 746 | 133430 | 005737 173030 | TST @#173030 | ;ОЧИСТИТЬ ФЛАГИ ТРЕБОВАНИЯ ПРЕРЫВАНИЙ | |
| 747 | 133434 | 052737 000100 173026 | BIS #100,@#173026 | ;РАЗРЕШИТЬ ПЕРИОДИЧЕСКИЕ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА | |
| 748 | 133442 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП =0 | |
| 749 | ;ДОЛЖНО ПРОИЗОЙТИ ПЕРВОЕ ПРЕРЫВАНИЕ ОТ ТАЙМЕРА | ||||
| 750 | 133446 | 005000 | CLR R0 | ||
| 751 | 133450 | 005002 | CLR R2 | ||
| 752 | 133452 | 077001 | SOB R0,.+0 | ||
| 753 | 133454 | 012764 000020 177650 | MOV #20,177650(R4) | ;ОШИБКА 20. НЕТ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА | |
| 754 | 133462 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП =7 | |
| 755 | 133470 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ТАЙМЕРА | |
| 756 | 133472 | 042737 000017 173024 | BIC #17,@#173024 | ||
| 757 | 133500 | 042737 000100 173026 | BIC #100,@#173026 | ;ЗАПРЕТИТЬ ПЕРИОДИЧЕСКИЕ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА | |
| 758 | 133506 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ ТАЙМЕРА | |
| 759 | |||||
| 760 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПЕРВОГО И ВТОРОГО ПЕРИОДИЧЕСКИХ | ||||
| 761 | ;ПРЕРЫВАНИЙ ОТ ТАЙМЕРА | ||||
| 762 | 133510 | 005737 173030 | TST @#173030 | ;ОЧИСТИТЬ ФЛАГИ ТРЕБОВАНИЯ ПРЕРЫВАНИЙ | |
| 763 | 133514 | 005702 | TST R2 | ;ПЕРВОЕ ПРЕРЫВАНИЕ? | |
| 764 | 133516 | 001406 | BEQ 133534 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 765 | 133520 | 012716 133540 | MOV #133540,@SP | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПРЕРЫВАНИЯ | |
| 766 | 133524 | 005000 | CLR R0 | ;ОЧИСТИТЬ СЧЕТЧИК ВЫПОЛНЕНИЙ КОМАНДЫ SOB | |
| 767 | 133526 | 012737 133544 000230 | MOV #133544,@#230 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000230 | |
| 768 | 133534 | 005202 | INC R2 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 769 | 133536 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 770 | |||||
| 771 | 133540 | 077001 | SOB R0,.+0 | ;СОСЧИТАТЬ КОЛИЧЕСТВО ВЫПОЛНЕНИЙ КОМАНДЫ SOB | |
| 772 | ;МЕЖДУ 2-М И 3-М ПЕРИОДИЧЕСКИМИ ПРЕРЫВАНИЯМИ | ||||
| 773 | ;(ДОЛЖНО ПРОИЗОЙТИ ТРЕТЬЕ ПРЕРЫВАНИЕ ОТ ТАЙМЕРА) | ||||
| 774 | 133542 | 000744 | BR 133454 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ПРЕРЫВАНИЕ НЕ ПРОИЗОШЛО | |
| 775 | |||||
| 776 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ТРЕТЬЕГО ПРЕРЫВАНИЯ ОТ ТАЙМЕРА | ||||
| 777 | 133544 | 005737 173030 | TST @#173030 | ;ОЧИСТИТЬ ФЛАГИ ТРЕБОВАНИЯ ПРЕРЫВАНИЙ | |
| 778 | 133550 | 062706 000004 | ADD #4,SP | ||
| 779 | 133554 | 022700 176500 | CMP #176500,R0 | ;КОМАНДА SOB ВЫПОЛНИЛАСЬ МЕНЬШЕ 300 РАЗ? | |
| 780 | 133560 | 002006 | BGE 133576 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 781 | 133562 | 022700 176700 | CMP #176700,R0 | ;КОМАНДА SOB ВЫПОЛНИЛАСЬ БОЛЬШЕ 100 РАЗ? | |
| 782 | 133566 | 003403 | BLE .+10 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 783 | 133570 | 105064 177650 | CLRB 177650(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ПРИЗНАК ОТСУТСТВИЯ | |
| 784 | ;ОШИБОК | ||||
| 785 | 133574 | 000732 | BR 133462 | ||
| 786 | 133576 | 012764 000021 177650 | MOV #21,177650(R4) | ;ОИШБКА 21. ОШИБКА ЧАСТОТЫ ПЕРИОДИЧЕСКИХ ПРЕРЫВАНИЙ | |
| 787 | ;ОТ ТАЙМЕРА | ||||
| 788 | 133604 | 000726 | BR 133462 | ||
| 789 | |||||
| 790 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 791 | 133606 | 012764 000025 177650 | MOV #25,177650(R4) | ;ОШИБКА 25. НЕТ ОТВЕТА ОТ ОДНОГО ИЗ РЕГИСТРОВ | |
| 792 | ;ТАЙМЕРА | ||||
| 793 | 133614 | 012626 | MOV (SP)+,(SP)+ | ||
| 794 | 133616 | 000207 | RTS PC | ||
| 795 | |||||
| 796 | ;*********************************************************************** | ||||
| 797 | ; | ||||
| 798 | ;ПОДПРОГРАММА ПРОВЕРКИ ОЗУ ТАЙМЕРА | ||||
| 799 | ; | ||||
| 800 | ;*********************************************************************** | ||||
| 801 | |||||
| 802 | 133620 | 012764 000024 177646 | MOV #24,177646(R4) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ИДЕНТИФИКАЦИОННЫЙ | |
| 803 | ;КОД ОЗЙ ТАЙМЕРА | ||||
| 804 | 133626 | 012737 133704 000004 | MOV #133704,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 805 | 133634 | 012737 000340 000006 | MOV #340,@#6 | ||
| 806 | 133642 | 105064 177644 | CLRB 177644(R4) | ||
| 807 | 133646 | 112737 000125 173050 | MOVB #125,@#173050 | ;ЗАПИСАТЬ КОД В ОЗУ ТАЙМЕРА | |
| 808 | 133654 | 105137 173050 | COMB @#173050 | ;ИНВЕРТИРОВАТЬ СОДЕРЖИМОЕ БАЙТА | |
| 809 | 133660 | 105137 173050 | COMB @#173050 | ;ИНВЕРТИРОВАТЬ СОДЕРЖИМОЕ БАЙТА | |
| 810 | 133664 | 122737 000125 173050 | CMPB #125,@#173050 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 811 | 133672 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 812 | 133674 | 012764 000023 177644 | MOV #23,177644(R4) | ;ОШИБКА 23. НЕСОВПАДЕНИЕ ЗАПИСАННЫХ И СЧИТАННЫХ ДАННЫХ | |
| 813 | 133702 | 000207 | RTS PC | ||
| 814 | |||||
| 815 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 816 | 133704 | 012764 000022 177644 | MOV #22,177644(R4) | ;ОШИБКА 22. НЕТ ОТВЕТА ОТ АДРЕСА 173050 | |
| 817 | 133712 | 012626 | MOV (SP)+,(SP)+ | ||
| 818 | 133714 | 000207 | RTS PC | ||
| 819 | |||||
| 820 | |||||
| 821 | ;*********************************************************************** | ||||
| 822 | ; | ||||
| 823 | ; ПРОВЕРКА АДАПТЕРА ПЛАВАЮЩЕЙ ЗАПЯТОЙ (АДАПТЕР ПЗ) | ||||
| 824 | ; | ||||
| 825 | ; РСП - РЕГИСТР СОСТОЯНИЯ ПРОЦЕССОРА | ||||
| 826 | ; РСПЗ - РЕГИСТР СОСТОЯНИЯ АДАПТЕРА ПЗ | ||||
| 827 | ;*********************************************************************** | ||||
| 828 | |||||
| 829 | 000000 | AC0=R0 | |||
| 830 | 000001 | AC1=R1 | |||
| 831 | 000002 | AC2=R2 | |||
| 832 | 000003 | AC3=R3 | |||
| 833 | 000004 | AC4=R4 | |||
| 834 | 000005 | AC5=R5 | |||
| 835 | 133716 | .=133716 | |||
| 836 | 133716 | 012737 134752 000010 | MОV #134752,@#10 | ;ПРИ ОТСУТСТВИИ АДАПТЕРА ПЗ - ОБРАБОТКА | |
| 837 | 133724 | 012737 000340 000012 | MOV #340,@#12 | ;ПРЕРЫВАНИЯ ПО РЕЗЕРВНОЙ КОМАНДЕ | |
| 838 | 133732 | 170537 134762 | TSTF @#134762 | ||
| 839 | 133736 | 012764 000012 177642 | MOV #12,177642(R4) | ;ПРИ НАЛИЧИИ АДАПТЕРА ПЗ ЗАПИСАТЬ В ТАБЛИЦУ | |
| 840 | ;КОНФИГУРАЦИИ ПВК ЕГО ИДЕНТИФИКАЦТОННЫЙ КОД | ||||
| 841 | 133744 | 010446 | MOV R4,-(SP) | ||
| 842 | 133746 | 005037 002036 | CLR @#2036 | ||
| 843 | 133752 | 012737 134744 000244 | MOV #134744,@#244 | ||
| 844 | 133760 | 012737 000005 000246 | MOV #5,@#246 | ||
| 845 | 133766 | 170127 007400 | LDFPS #7400 | ;ЗАПИСАТЬ #7400 В РСПЗ | |
| 846 | ;РАЗРЕШЕНЫ ПРЕРЫВАНИЯ: | ||||
| 847 | ;-ПО НЕОПРЕДЕЛЕННОМУ ОПЕРАНДУ | ||||
| 848 | ;-ПО АНТИПЕРЕПОЛНЕНИЮ | ||||
| 849 | ;-ПО ПЕРЕПОЛНЕНИЮ | ||||
| 850 | ;-ПО ОШИБКЕ ПРЕОБРАЗОВАНИЯ В ЦЕЛОЕ ЧИСЛО | ||||
| 851 | 133772 | 170011 | SETD | ;УСТАНОВИТЬ РЕЖИМ ПЗ С ДВОЙНОЙ ТОЧНОСТЬЮ | |
| 852 | 133774 | 177027 077777 | LDCID #77777,AC0 | ;ПРЕОБРАЗОВАТЬ ЦЕЛОЕ ЧИСЛО В ПЛАВАЮЩЕЕ С ДВ. ТОЧНОСТЬЮ | |
| 853 | ;И ЗАГРУЗИТЬ В АС0 | ||||
| 854 | 134000 | 177127 002525 | LDCID #2525,AC1 | ||
| 855 | 134004 | 174401 | DIVD AC1,AC0 | ||
| 856 | 134006 | 171001 | MULD AC1,AC0 | ||
| 857 | 134010 | 172001 | ADDD AC1,AC0 | ||
| 858 | 134012 | 173001 | SUBD AC1,AC0 | ||
| 859 | 134014 | 175437 002014 | STCDI AC0,@#2014 | ;ЗАПИСАТЬ В ПАМЯТЬ И ПРЕОБРАЗОВАТЬ В ЦЕЛОЕ ЧИСЛО | |
| 860 | 134020 | 170200 | STFPS R0 | ;СЧИТАТЬ В R0 СОДЕРЖИМОЕ РСПЗ | |
| 861 | 134022 | 022737 077777 002014 | CMP #77777,@#2014 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 862 | 134030 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 863 | 134032 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 27. ОШИБКА ВЫПОЛНЕНИЯ АРИФМЕТИЧЕСКИХ КОМАНД | |
| 864 | 134036 | 000027 | 27 | ||
| 865 | |||||
| 866 | 134040 | 172437 | LDD @(PC)+,AC0 | ;ЗАГРУЗИТЬ ЧИСЛО С ДВОЙНОЙ ТОЧНОСТЬЮ В АС0 | |
| 867 | 134042 | 134772 | 134772 | ||
| 868 | 134044 | 012702 002014 | MOV #2014,R2 | ||
| 869 | 134050 | 174022 | STD AC0,(R2)+ | ;ЗАПИСАТЬ В ПАМЯТЬ ЧИСЛО С ДВОЙНОЙ ТОЧНОСТЬЮ ИЗ АС0 | |
| 870 | 134052 | 172537 | LDD @(PC)+,AC1 | ||
| 871 | 134054 | 134772 | 134772 | ||
| 872 | 134056 | 174122 | STD AC1,(R2)+ | ||
| 873 | 134060 | 172737 | LDD @(PC)+,AC3 | ||
| 874 | 134062 | 002024 | 2024 | ||
| 875 | 134064 | 170200 | STFPS R0 | ;СЧИТАТЬ В R0 СОДЕРЖИМОЕ РСПЗ | |
| 876 | 134066 | 173737 | CMPD @(PC)+,AC3 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 877 | 134070 | 002014 | 2014 | ||
| 878 | 134072 | 170000 | CFCC | ;СКОПИРОВАТЬ ПРИЗНАКИ АДАПТЕРА ПЗ В РСП | |
| 879 | 134074 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 880 | 134076 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 30. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ STD | |
| 881 | 134102 | 000030 | 30 | ||
| 882 | |||||
| 883 | 134104 | 172537 | LDD @(PC)+,AC1 | ;ЗАГРУЗИТЬ 0 В АС1 | |
| 884 | 134106 | 134774 | 134774 | ||
| 885 | 134110 | 174142 | STD AC1,-(R2) | ;ЗАПИСАТЬ В ПАМЯТЬ ЧИСЛО С ПЗ ИЗ АС1 | |
| 886 | 134112 | 172012 | ADDD @R2,AC0 | ||
| 887 | 134114 | 173042 | SUBD -(R2),AC0 | ||
| 888 | 134116 | 173001 | SUBD AC1,AC0 | ||
| 889 | 134120 | 175437 002014 | STCDI AC0,@#2014 | ;ПРЕОБРАЗОВАТЬ ЧИСЛО С ДВ.ТОЧНОСТЬЮ В КОРОТКОЕ ЦЕЛОЕ И ЗАПИСАТЬ В ПАМЯТЬ | |
| 890 | 134124 | 022737 000000 002014 | CMP #0,@#2014 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 891 | 134132 | 170200 | STFPS R0 | ;СЧИТАТЬ В R0 СОДЕРЖИМОЕ РСПЗ | |
| 892 | 134134 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 893 | 134136 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 31. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ STCDI | |
| 894 | 134142 | 000031 | 31 | ||
| 895 | |||||
| 896 | 134144 | 170001 | SETF | ;УСТАНОВИТЬ РЕЖИМ ПЗ С ОБЫЧНОЙ ТОЧНОСТЬЮ | |
| 897 | 134146 | 177027 000525 | LDCIF #525,AC0 | ;ПРЕОБРАЗОВАТЬ ЦЕЛОЕ ЧИСЛО В ПЛАВАЮЩЕЕ С ОБ. ТОЧНОСТЬЮ | |
| 898 | ;И ЗАГРУЗИТЬ В АС0 | ||||
| 899 | 134152 | 177127 000252 | LDCIF #252,AC1 | ||
| 900 | 134156 | 174104 | STD AC1,AC4 | ;СОХРАНИТЬ ЧИСЛО С ПЗ В АС4 | |
| 901 | 134160 | 172104 | ADDF AC4,AC1 | ||
| 902 | 134162 | 172701 | LDF AC1,AC3 | ||
| 903 | 134164 | 173003 | SUBF AC3,AC0 | ||
| 904 | 134166 | 175037 002014 | STEXP AC0,@#2014 | ;СОХРАНИТЬ EXP В ЯЧЕЙКЕ 2014 | |
| 905 | 134172 | 170200 | STFPS R0 | ;СЧИТАТЬ В R0 СОДЕРЖИМОЕ РСПЗ | |
| 906 | 134174 | 022737 000001 002014 | CMP #1,@#2014 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 907 | 134202 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 908 | 134204 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 32. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ STEXP ПОСЛЕ | |
| 909 | 134210 | 000032 | 32 | ;ВЫПОЛНЕНИЯ КОМАНД ADDF, LDF И SUBF | |
| 910 | |||||
| 911 | 134212 | 177027 000021 | LDCIF #21,AC0 | ;ПРЕОБРАЗОВАТЬ ЦЕЛОЕ ЧИСЛО В ПЛАВАЮЩЕЕ С ОБ. ТОЧНОСТЬЮ | |
| 912 | ;И ЗАГРУЗИТЬ В АС0 | ||||
| 913 | 134216 | 171000 | MULF AC0,AC0 | ||
| 914 | 134220 | 174427 | DIVF (PC)+,AC0 | ||
| 915 | 134222 | 040400 | 40400 | ||
| 916 | 134224 | 171427 | MODF (PC)+,AC0 | ;УМНОЖИТЬ И ВЫДЕЛИТЬ ЦЕЛУЮ ЧАСТЬ | |
| 917 | 134226 | 040200 | 40200 | ||
| 918 | 134230 | 170200 | STFPS R0 | ;СЧИТАТЬ В R0 СОДЕРЖИМОЕ РСПЗ | |
| 919 | 134232 | 175537 002014 | STCFI AC1,@#2014 | ;ПРЕОБРАЗОВАТЬ ЧИСЛО С ПЗ В ЦЕЛОЕ КОРОТКОЕ | |
| 920 | ;И ЗАПИСАТЬ В ЯЧЕЙКУ 2014 | ||||
| 921 | 134236 | 022737 000220 002014 | CMP #220,@#2014 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 922 | 134244 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 923 | 134246 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 33. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ MODF, | |
| 924 | 134252 | 000033 | 33 | ;КОГДА ОБА ОПЕРАНДА > 1 | |
| 925 | |||||
| 926 | 134254 | 171427 | MODF (PC)+,AC0 | ;УМНОЖИТЬ И ВЫДЕЛИТЬ ЦЕЛУЮ ЧАСТЬ | |
| 927 | 134256 | 041040 | 41040 | ||
| 928 | 134260 | 175537 002014 | STCFI AC1,@#2014 | ;ПРЕОБРАЗОВАТЬ ЧИСЛО С ПЗ В ЦЕЛОЕ КОРОТКОЕ | |
| 929 | ;И ЗАПИСАТЬ В ЯЧЕЙКУ 2014 | ||||
| 930 | 134264 | 022737 000005 002014 | CMP #5,@#2014 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 931 | 134272 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 932 | 134274 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 34. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ MODF, | |
| 933 | 134300 | 000034 | 34 | ;КОГДА ОПЕРАНД ИСТ. > 1, 0 < ОПЕРАНД ПР. < 1 | |
| 934 | |||||
| 935 | 134302 | 012704 007400 | MOV #7400,R4 | ;УСТАНОВИТЬ РЕЖИМ ОБ. ТОЧНОСТИ | |
| 936 | 134306 | 170104 | LDFPS R4 | ;КОРОТКОГО СЛОВА | |
| 937 | 134310 | 172537 | LDF @(PC)+,AC1 | ;ЗАГРУЗИТЬ ЧИСЛО В АС1 | |
| 938 | 134312 | 134756 | 134756 | ||
| 939 | 134314 | 170601 | ABSF AC1 | ;ПОЛУЧИТЬ АБСОЛЮТНУЮ ВЕЛИЧИНУ ЧИСЛА | |
| 940 | 134316 | 174137 002000 | STF AC1,@#2000 | ;В ЯЧЕЙКЕ 002000 | |
| 941 | 134322 | 005737 002000 | TST @#2000 | ||
| 942 | 134326 | 003003 | BGT .+10 | ||
| 943 | 134330 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 35. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ ABSF | |
| 944 | 134334 | 000035 | 35 | ||
| 945 | |||||
| 946 | 134336 | 172537 | LDF @(PC)+,AC1 | ;ЗАГРУЗИТЬ ЧИСЛО В АС1 | |
| 947 | 134340 | 002000 | 2000 | ||
| 948 | 134342 | 170701 | NEGF AC1 | ;ИЗМЕНИТЬ ЗНАК ЧИСЛА | |
| 949 | 134344 | 174137 002000 | STF AC1,@#2000 | ||
| 950 | 134350 | 005737 002000 | TST @#2000 | ||
| 951 | 134354 | 002403 | BLT .+10 | ||
| 952 | 134356 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 36. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ NEGF | |
| 953 | 134362 | 000036 | 36 | ||
| 954 | |||||
| 955 | 134364 | 012704 007600 | MOV #7600,R4 | ;УСТАНОВИТЬ РЕЖИМ ДВ. ТОЧНОСТИ | |
| 956 | 134370 | 170104 | LDFPS R4 | ; | |
| 957 | 134372 | 172737 | LDF @(PC)+,AC3 | ;ЗАГРУЗИТЬ ЧИСЛО В АС3 | |
| 958 | 134374 | 134762 | 134762 | ||
| 959 | 134376 | 170603 | ABSD AC3 | ;ПОЛУЧИТЬ АБСОЛЮТНУЮ ВЕЛИЧИНУ ЧИСЛА | |
| 960 | 134400 | 174337 002004 | STD AC3,@#2004 | ;В ЯЧЕЙКЕ 002004 | |
| 961 | 134404 | 005737 002004 | TST @#2004 | ||
| 962 | 134410 | 003003 | BGT .+10 | ||
| 963 | 134412 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 37. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ ABSD | |
| 964 | 134416 | 000037 | 37 | ||
| 965 | |||||
| 966 | 134420 | 172737 | LDD @(PC)+,AC3 | ;ЗАГРУЗИТЬ ЧИСЛО В АС3 | |
| 967 | 134422 | 002004 | 2004 | ||
| 968 | 134424 | 170703 | NEGD AC3 | ;ИЗМЕНИТЬ ЗНАК ЧИСЛА | |
| 969 | 134426 | 174337 002004 | STD AC3,@#2004 | ;В ЯЧЕЙКЕ 002004 | |
| 970 | 134432 | 005737 002004 | TST @#2004 | ||
| 971 | 134436 | 002403 | BLT .+10 | ||
| 972 | 134440 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 40. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ NEGD | |
| 973 | 134444 | 000040 | 40 | ||
| 974 | |||||
| 975 | 134446 | 170001 | SETF | ;УСТАНОВИТЬ РЕЖИМ ОБ. ТОЧНОСТИ | |
| 976 | 134450 | 170204 | STFPS R4 | ;СЧИТАТЬ В R4 СОДЕРЖИМОЕ РСПЗ | |
| 977 | 134452 | 032704 000200 | BIT #200,R4 | ;ДВОЙНАЯ ТОЧНОСТЬ? | |
| 978 | 134456 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 979 | 134460 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 41. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ SETF | |
| 980 | 134464 | 000041 | 41 | ||
| 981 | |||||
| 982 | 134466 | 170011 | SETD | ;УСТАНОВИТЬ РЕЖИМ ДВ. ТОЧНОСТИ | |
| 983 | 134470 | 170012 | SETL | ;УСТАНОВИТЬ ФОРМАТ ДЛИНОГО ЦЕЛОГО ЧИСЛА | |
| 984 | 134472 | 170204 | STFPS R4 | ;СЧИТАТЬ В R4 СОДЕРЖИМОЕ РСПЗ | |
| 985 | 134474 | 032704 000100 | BIT #100,R4 | ;ДЛИННЫЙ ФОРМАТ ЦЕЛЫХ ЧИСЕЛ? | |
| 986 | 134500 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 987 | 134502 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 42. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ SETL | |
| 988 | 134506 | 000042 | 42 | ||
| 989 | |||||
| 990 | 134510 | 170002 | SETI | ;УСТАНОВИТЬ ФОРМАТ КОРОТКОГО ЦЕЛОГО ЧИСЛА | |
| 991 | 134512 | 170204 | STFPS R4 | ;СЧИТАТЬ В R4 СОДЕРЖИМОЕ РСПЗ | |
| 992 | 134514 | 032704 000100 | BIT #100,R4 | ;КОРОТКИЙ ФОРМАТ ЦЕЛЫХ ЧИСЕЛ? | |
| 993 | 134520 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 994 | 134522 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 43. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ SETI | |
| 995 | 134526 | 000043 | 43 | ||
| 996 | |||||
| 997 | 134530 | 170000 | CFCC | ;СКОПИРОВАТЬ ПРИЗНАКИ АДАПТЕРА ПЗ В РСП | |
| 998 | 134532 | 170537 | TSTD @(PC)+ | ||
| 999 | 134534 | 134762 | 134762 | ||
| 1000 | 134536 | 002403 | BLT .+10 | ||
| 1001 | 134540 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 44. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ CFCC | |
| 1002 | 134544 | 000044 | 44 | ||
| 1003 | |||||
| 1004 | 134546 | 177737 | LDCDF @(PC)+,AC3 | ||
| 1005 | 134550 | 134762 | 134762 | ||
| 1006 | 134552 | 005037 002004 | CLR @#2004 | ||
| 1007 | 134556 | 005037 002006 | CLR @#2006 | ||
| 1008 | 134562 | 005037 002010 | CLR @#2010 | ||
| 1009 | 134566 | 005037 002012 | CLR @#2012 | ||
| 1010 | 134572 | 176337 002004 | STCDF AC3,@#2004 | ||
| 1011 | 134576 | 023737 002004 134762 | CMP @#2004,@#134762 | ||
| 1012 | 134604 | 001012 | BNE 1$ | ||
| 1013 | 134606 | 023737 002006 134764 | CMP @#2006,@#134764 | ||
| 1014 | 134614 | 001006 | BNE 1$ | ||
| 1015 | 134616 | 005737 002010 | TST @#2010 | ||
| 1016 | 134622 | 001003 | BNE 1$ | ||
| 1017 | 134624 | 005737 002012 | TST @#2012 | ||
| 1018 | 134630 | 001403 | BEQ .+10 | ||
| 1019 | 134632 | 004737 134730 | 1$: JSR PC,@#134730 | ;ОШИБКА 45. ОШИБКА ВЫПОЛНЕНИЯ КОМАНД LDCDF И STCDF | |
| 1020 | 134636 | 000045 | 45 | ||
| 1021 | |||||
| 1022 | 134640 | 170437 002004 | CLRD @#2004 | ||
| 1023 | 134644 | 005737 002004 | TST @#2004 | ||
| 1024 | 134650 | 001003 | BNE .+10 | ||
| 1025 | 134652 | 005737 002006 | TST @#2006 | ||
| 1026 | 134656 | 001403 | BEQ .+10 | ||
| 1027 | 134660 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 46. ОШИБКА ВЫПОЛНЕНИЯ КОМАНДЫ CLRD | |
| 1028 | 134664 | 000046 | 46 | ||
| 1029 | |||||
| 1030 | 134666 | 005737 002036 | TST @#2036 | ;БЫЛИ НЕПРЕДУСМОТРЕННЫЕ ПРЕРЫВАНИЯ? | |
| 1031 | 134672 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 1032 | 134674 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 47. ПРОИЗОШЛО ОДНО ИЗ НЕПРЕДУСМОТРЕННЫХ | |
| 1033 | 134700 | 000047 | 47 | ;ПРЕРЫВАНИЙ С АДРЕСОМ ВЕКТОРА 000244 | |
| 1034 | |||||
| 1035 | 134702 | 170010 | 170010 | ;РЕЗЕРВНАЯ КОМАНДА 170010 | |
| 1036 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ С АДРЕСОМ ВЕКТОРА | ||||
| 1037 | ;000244 | ||||
| 1038 | 134704 | 000240 | NOP | ||
| 1039 | 134706 | 005737 002036 | TST @#2036 | ;ПРОИЗОШЛО ПРЕРЫВАНИЕ ПО РЕЗЕРВНОЙ КОМАНДЕ? | |
| 1040 | 134712 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1041 | 134714 | 004737 134730 | JSR PC,@#134730 | ;ОШИБКА 50. НЕТ ПРЕРЫВАНИЯ ПРИ ПОПЫТКЕ ВЫПОЛНИТЬ | |
| 1042 | 134720 | 000050 | 50 | ;РЕЗЕРВНУЮ КОМАНДУ С КОДОМ 170010 | |
| 1043 | |||||
| 1044 | 134722 | 004737 134730 | JSR PC,@#134730 | ;ПЕРЕЙТИ НА ПОДПРОГРАММУ ЗАВЕРШЕНИЯ ПРОВЕРКИ АДАПТЕРА ПЗ | |
| 1045 | 134726 | 000000 | HALT | ;ВЫХОД ИЗ ПРОГРАММЫ ПРОВЕРКИ АДАПТЕРА ПЗ | |
| 1046 | |||||
| 1047 | |||||
| 1048 | ;ПОДПРОГРАММА ЗАВЕРШЕНИЯ ПРОВЕРКИ АДАПТЕРА ПЗ | ||||
| 1049 | |||||
| 1050 | 134730 | 016604 000002 | MOV 2(SP),R4 | ;ВЫБРАТЬ ВИРТ. АДР. ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК | |
| 1051 | 134734 | 013664 177640 | MOV @(SP)+,177640(R4) | ;ЗАПИСАТЬ НОМЕР ОШИБКИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 1052 | 134740 | 005716 | TST (SP) | ;ОЧИСТИТЬ СТЕК | |
| 1053 | 134742 | 000207 | RTS PC | ;ВЫЙТИ ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ АДАПТЕРА ПЗ | |
| 1054 | |||||
| 1055 | |||||
| 1056 | |||||
| 1057 | ;ПРОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000244 | ||||
| 1058 | |||||
| 1059 | 134744 | 005237 002036 | INC @#2036 | ;УВЕЛИЧИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 1060 | 134750 | 000002 | RTI | ||
| 1061 | |||||
| 1062 | |||||
| 1063 | ;ПОДПРОГРАММА ОБРАБТКИ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 1064 | ;ПО РЕЗЕРВНОЙ КОМАНДЕ ПРИ ОТСУТСТВИИ ППЗ | ||||
| 1065 | |||||
| 1066 | 134752 | 022626 | CMP (6)+,(6)+ | ;ОЧИСТИТЬ СТЕК | |
| 1067 | 134754 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 1068 | |||||
| 1069 | |||||
| 1070 | ;ДАННЫЕ ДЛЯ ПРОВЕРКИ АДПЗ | ||||
| 1071 | 134756 | 141510 | 141510 | ||
| 1072 | 134760 | 000000 | 000000 | ||
| 1073 | 134762 | 140507 | 140507 | ||
| 1074 | 134764 | 157473 | 157473 | ||
| 1075 | 134766 | 062132 | 062132 | ||
| 1076 | 134770 | 016254 | 016254 | ||
| 1077 | 134772 | 177777 | 177777 | ||
| 1078 | 134774 | 000000 | 000000 | ||
| 1079 | 134776 | 177777 | 177777 | ||
| 1080 | 135000 | 000000 | 000000 | ||
| 1081 | 135002 | 177777 | 177777 | ||
| 1082 | 135004 | 000000 | 000000 | ||
| 1083 | 135006 | 000000 | 000000 | ||
| 1084 | 135010 | 177777 | 177777 | ||
| 1085 | 135012 | 000001 | 000001 | ||
| 1086 | 135014 | 000000 | 000000 | ||
| 1087 | 135016 | 177777 | 177777 | ||
| 1088 | 135020 | 134774 | 134774 | ||
| 1089 | 135022 | 135002 | 135002 | ||
| 1090 | 135024 | 135142 | 135142 | ||
| 1091 | 135026 | 077777 | 077777 | ||
| 1092 | 135030 | 000000 | 000000 | ||
| 1093 | 135032 | 177777 | 177777 | ||
| 1094 | 135034 | 000000 | 000000 | ||
| 1095 | 135036 | 100000 | 100000 | ||
| 1096 | 135040 | 000000 | 000000 | ||
| 1097 | 135042 | 000000 | 000000 | ||
| 1098 | 135044 | 000000 | 000000 | ||
| 1099 | 135046 | 002014 | 002014 | ||
| 1100 | 135050 | 040252 | 040252 | ||
| 1101 | 135052 | 125252 | 125252 | ||
| 1102 | 135054 | 125252 | 125252 | ||
| 1103 | 135056 | 125252 | 125252 | ||
| 1104 | 135060 | 040325 | 040325 | ||
| 1105 | 135062 | 052525 | 052525 | ||
| 1106 | 135064 | 052525 | 052525 | ||
| 1107 | 135066 | 052525 | 052525 | ||
| 1108 | 135070 | 040325 | 040325 | ||
| 1109 | 135072 | 052525 | 052525 | ||
| 1110 | 135074 | 052525 | 052525 | ||
| 1111 | 135076 | 052526 | 052526 | ||
| 1112 | 135100 | 040000 | 040000 | ||
| 1113 | 135102 | 000000 | 000000 | ||
| 1114 | 135104 | 000000 | 000000 | ||
| 1115 | 135106 | 000000 | 000000 | ||
| 1116 | 135110 | 037400 | 037400 | ||
| 1117 | 135112 | 000000 | 000000 | ||
| 1118 | 135114 | 000000 | 000000 | ||
| 1119 | 135116 | 000000 | 000000 | ||
| 1120 | 135120 | 040600 | 040600 | ||
| 1121 | 135122 | 000000 | 000000 | ||
| 1122 | 135124 | 000000 | 000000 | ||
| 1123 | 135126 | 000000 | 000000 | ||
| 1124 | 135130 | 020000 | 020000 | ||
| 1125 | 135132 | 000000 | 000000 | ||
| 1126 | 135134 | 000000 | 000000 | ||
| 1127 | 135136 | 000000 | 000000 | ||
| 1128 | 135140 | 000000 | 000000 | ||
| 1129 | 135142 | 177777 | 177777 | ||
| 1130 | 135144 | 000000 | 000000 | ||
| 1131 | 135146 | 000000 | 000000 | ||
| 1132 | 135150 | 000000 | 000000 | ||
| 1133 | 135152 | 000100 | 000100 | ||
| 1134 | 135154 | 000000 | 000000 | ||
| 1135 | 135156 | 000000 | 000000 | ||
| 1136 | 135160 | 000000 | 000000 | ||
| 1137 | 135162 | 177777 | 177777 | ||
| 1138 | 135164 | 177777 | 177777 | ||
| 1139 | 135166 | 177777 | 177777 | ||
| 1140 | 135170 | 000000 | 000000 | ||
| 1141 | 135172 | 054321 | 054321 | ||
| 1142 | 135174 | 135170 | 135170 | ||
| 1143 | 135176 | 043661 | 043661 | ||
| 1144 | 135200 | 121000 | 121000 | ||
| 1145 | 135202 | 000000 | 000000 | ||
| 1146 | 135204 | 000000 | 000000 | ||
| 1147 | 135206 | 177252 | 177252 | ||
| 1148 | 135210 | 177125 | 177125 | ||
| 1149 | 135212 | 177063 | 177063 | ||
| 1150 | 135214 | 177017 | 177017 | ||
| 1151 | |||||
| 1152 | |||||
| 1153 | ;********************************************************************** | ||||
| 1154 | ; | ||||
| 1155 | ;ПОДПРОГРАММА ПРОВЕРКИ КОНТРОЛЛЕРА НГМД | ||||
| 1156 | ; | ||||
| 1157 | ;********************************************************************** | ||||
| 1158 | |||||
| 1159 | 135216 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП =7 | |
| 1160 | 135224 | 010002 | MOV R0,R2 | ||
| 1161 | 135226 | 072227 000007 | ASH #7,R2 | ||
| 1162 | 135232 | 062702 174000 | ADD #174000,R2 | ;ПОЛУЧИТЬ АДРЕС КОНТРОЛЛЕРА НГМД | |
| 1163 | 135236 | 010003 | MOV R0,R3 | ||
| 1164 | 135240 | 072327 000002 | ASH #2,R3 | ||
| 1165 | 135244 | 005403 | NEG R3 | ||
| 1166 | 135246 | 062703 117756 | ADD #117756,R3 | ;ПОЛУЧИТЬ АДРЕС ЯЧЕЙКИ В ТАБЛИЦЕ КОНФИГУРАЦИИ ПВК, | |
| 1167 | ;СООТВЕТСТВУЮЩЕЙ КОНТРОЛЛЕРУ НГМД | ||||
| 1168 | 135252 | 010337 002002 | MOV R3,@#2002 | ||
| 1169 | 135256 | 010446 | MOV R4,-(SP) | ||
| 1170 | 135260 | 010237 002000 | MOV R2,@#2000 | ;ВЫБРАТЬ АДРЕС КОНТРОЛЛЕРА НГМД | |
| 1171 | 135264 | 013702 002000 | MOV @#2000,R2 | ||
| 1172 | 135270 | 005037 177650 | CLR @#177650 | ||
| 1173 | 135274 | 000137 167612 | JMP @#167612 | ;ВЫПОЛНИТЬ ДОПОЛНИТЕЛЬНЫЙ МИКРО-ТЕСТ ДЛЯ | |
| 1174 | ;КОНТРОЛЛЕРА И ПРИВОДА НГМД | ||||
| 1175 | 135300 | 072127 000003 | ASH #3,R1 | ||
| 1176 | 135304 | 012761 135566 000300 | MOV #135566,300(R1) | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ | |
| 1177 | 135312 | 012761 000340 000302 | MOV #340,302(R1) | ;ОПЕРАЦИИ | |
| 1178 | 135320 | 010001 | MOV R0,R1 | ||
| 1179 | 135322 | 052701 000400 | BIS #400,R1 | ||
| 1180 | 135326 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ ОПЕРАЦИИ | |
| 1181 | 135330 | 005762 000024 | TST 24(R2) | ;ПРОИЗВЕСТИ ЗАПУСК КОМАНДЫ | |
| 1182 | 135334 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=0 | |
| 1183 | ;ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ДОПОЛНИТЕЛЬНОГО МИКРО- | ||||
| 1184 | ;ТЕСТА ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ | ||||
| 1185 | 135340 | 012704 000020 | MOV #20,R4 | ;ПРОИЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ВЫПОЛНЕНИЯ МИКРО- | |
| 1186 | 135344 | 005001 | CLR R1 | ;ТЕСТА И ПРЕРЫВАНИЯ | |
| 1187 | 135346 | 005301 | DEC R1 | ||
| 1188 | 135350 | 001376 | BNE .-2 | ||
| 1189 | 135352 | 077404 | SOB R4,.-6 | ||
| 1190 | 135354 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 1191 | 135362 | 010001 | MOV R0,R1 | ||
| 1192 | 135364 | 052701 000400 | BIS #400,R1 | ||
| 1193 | 135370 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ ОПЕРАЦИИ | |
| 1194 | 135372 | 012777 000001 044402 | MOV #1,@2002 | ;ОШИБКА 1. НЕТ ПРЕРЫВАНИЯ ОТ КОНТРОЛЛЕРА НГМД | |
| 1195 | 135400 | 012604 | MOV (SP)+,R4 | ;ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | |
| 1196 | 135402 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НГМД | |
| 1197 | 135404 | 012737 000340 177776 | MOV #340,@#177776 | ;УТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 1198 | 135412 | 010001 | MOV R0,R1 | ||
| 1199 | 135414 | 052701 000400 | BIS #400,R1 | ||
| 1200 | 135420 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ ОПЕРАЦИИ | |
| 1201 | 135422 | 013702 002000 | MOV @#2000,R2 | ;ВЫБРАТЬ АДРЕС КОНТРОЛЛЕРА НГМД | |
| 1202 | 135426 | 032762 000200 000004 | BIT #200,4(R2) | ;ЕСТЬ ОШИБКИ? | |
| 1203 | 135434 | 001717 | BEQ 135274 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 1204 | 135436 | 022762 000120 000006 | CMP #120,6(R2) | ;ОШИБКА ГОТОВНОСТИ ПРИВОДА? | |
| 1205 | 135444 | 001713 | BEQ 135274 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1206 | 135446 | 016277 000006 044326 | MOV 6(R2),@2002 | ;ЗАПИСАТЬ КОД ОШИБКИ, ГЕНЕРИРУЕМЫЙ МИКРО-ТЕСТОМ, | |
| 1207 | 135454 | 012604 | MOV (SP)+,R4 | ;В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 1208 | 135456 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НГМД | |
| 1209 | 135460 | 012704 000005 | MOV #5,R4 | ;ВЫБРАТЬ СЧЕТЧИК ОБРАЗЦОВ ДАННЫХ | |
| 1210 | 135464 | 012701 135206 | MOV #135206,R1 | ;ВЫБРАТЬ АДРЕС ПЕРВОГО ОБРАЗЦА | |
| 1211 | 135470 | 012703 001000 | MOV #1000,R3 | ;ЗАДАТЬ СЧЕТЧИК БАЙТОВ БУФЕРА КОНТРОЛЛЕРА НГМД | |
| 1212 | 135474 | 005062 000022 | CLR 22(R2) | ;УСТАНОВИТЬ УКАЗАТЕЛЬ НА НАЧАЛО БУФЕРА | |
| 1213 | 135500 | 111162 000020 | MOVB @R1,20(R2) | ;ЗАПИСАТЬ ОБРАЗЕЦ ВО ВСЕ БАЙТЫ БУФЕРА | |
| 1214 | 135504 | 077303 | SOB R3,.-4 | ||
| 1215 | 135506 | 012703 001000 | MOV #1000,R3 | ;ЗАДАТЬ СЧЕТЧИК БАЙТОВ БУФЕРА | |
| 1216 | 135512 | 005062 000022 | CLR 22(R2) | ;УСТАНОВИТЬ УКАЗАТЕЛЬ НА НАЧАЛО БУФЕРА | |
| 1217 | 135516 | 121162 000020 | CMPB @R1,20(R2) | ;ДАННЫЕ СОВПАДАЮТ? | |
| 1218 | 135522 | 001014 | BNE 135554 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 1219 | 135524 | 077304 | SOB R3,.-6 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕГО БАЙТА БУФЕРА | |
| 1220 | 135526 | 005721 | TST (R1)+ | ;ПОЛУЧИТЬ АДРЕС СЛЕДУЮЩЕГО ОБРАЗЦА ДАННЫХ | |
| 1221 | 135530 | 077421 | SOB R4,135470 | ;ПЕРЕЙТИ К ПРОВЕРКЕ, ЕСЛИ БУФЕР ПРОВЕРЕН НЕ НА | |
| 1222 | ;ВСЕХ ОБРАЗЦАХ | ||||
| 1223 | 135532 | 005077 044244 | CLR @2002 | ;ЗАПИСАТЬ ПРИЗНАК ОТСУТСТВИЯ ОШИБОК В МЛАДШИЙ | |
| 1224 | ;БАЙТ ЯЧЕЙКИ | ||||
| 1225 | 135536 | 005237 002002 | INC @#2002 | ;ПОЛУЧИТЬ АДРЕС СТАРШЕГО БАЙТА | |
| 1226 | 135542 | 116277 000014 044232 | MOVB 14(R2),@2002 | ;ЗАПИСАТЬ ХАРАКТЕРИСТИКИ КОНТРОЛЛЕРА НГМД В | |
| 1227 | ;СТАРШИЙ БАЙТ ЯЧЕЙКИ В ТАБЛИЦЕ КОНФИГУРАЦИИ ПВК | ||||
| 1228 | 135550 | 012604 | MOV (SP)+,R4 | ||
| 1229 | 135552 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НГМД | |
| 1230 | |||||
| 1231 | 135554 | 012777 000003 044220 | MOV #3,@2002 | ;ОШИБКА 3. НЕСОВПАДЕНИЕ ЗАПИСАННЫХ И СЧИТАННЫХ | |
| 1232 | 135562 | 012604 | MOV (SP)+,R4 | ;ДАННЫХ ИЗ БУФЕРА КОНТРОЛЛЕРА НГМД | |
| 1233 | 135564 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НГМД | |
| 1234 | |||||
| 1235 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1236 | 135566 | 012716 135404 | MOV #135404,@SP | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПРЕРЫВАНИЯ | |
| 1237 | 135572 | 012766 000340 000002 | MOV #340,2(SP) | ||
| 1238 | 135600 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 1239 | |||||
| 1240 | |||||
| 1241 | ;*********************************************************************** | ||||
| 1242 | ; | ||||
| 1243 | ;ПОДПРОГРАММА ПРОВЕРКИ КОНТРОЛЛЕРА НМД | ||||
| 1244 | ; | ||||
| 1245 | ;*********************************************************************** | ||||
| 1246 | |||||
| 1247 | 135602 | 010002 | MOV R0,R2 | ||
| 1248 | 135604 | 072227 000007 | ASH #7,R2 | ||
| 1249 | 135610 | 062702 174000 | ADD #174000,R2 | ;ПОЛУЧИТЬ АДРЕС КОНТРОЛЛЕРА НМД | |
| 1250 | 135614 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 1251 | 135622 | 010003 | MOV R0,R3 | ||
| 1252 | 135624 | 072327 000002 | ASH #2,R3 | ||
| 1253 | 135630 | 005403 | NEG R3 | ||
| 1254 | 135632 | 062703 117756 | ADD #117756,R3 | ;ВЫБРАТЬ АДРЕС ЯЧЕЙКИ В ТАБЛИЦЕ КОНФИГУРАЦИИ ПВК, | |
| 1255 | ;СООТВЕТСТВУЮЩЕЙ КОНТРОЛЛЕРУ НМД | ||||
| 1256 | 135636 | 010337 002002 | MOV R3,@#2002 | ||
| 1257 | 135642 | 005077 044134 | CLR @2002 | ;ОЧИСТИТЬ ЯЧЕЙКУ | |
| 1258 | 135646 | 010446 | MOV R4,-(SP) | ||
| 1259 | 135650 | 010003 | MOV R0,R3 | ||
| 1260 | 135652 | 072327 000003 | ASH #3,R3 | ||
| 1261 | 135656 | 005001 | CLR R1 | ||
| 1262 | 135660 | 032762 000001 000020 | BIT #1,20(R2) | ;РАЗРЯД "ОПЕРАЦИЯ ЗАВЕРШЕНА" В РСНУ УСТАНОВЛЕН? | |
| 1263 | 135666 | 001006 | BNE 135704 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1264 | 135670 | 077105 | SOB R1,135660 | ;ОЖИДАНИЕ УСТАНОВКИ РАЗРЯДА "ОПЕРАЦИЯ ЗАВЕРШЕНА" | |
| 1265 | 135672 | 112777 000001 044102 | MOVB #1,@2002 | ;ОШИБКА 1. НЕ УСТАНОВИЛСЯ РАЗРЯД "ОПЕРАЦИЯ | |
| 1266 | ;ЗАВЕРШЕНА" В РСНУ ПОСЛЕ НАЧАЛЬНОЙ УСТАНОВКИ | ||||
| 1267 | 135700 | 012604 | MOV (SP)+,R4 | ||
| 1268 | 135702 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1269 | 135704 | 032762 000400 000016 | BIT #400,16(R2) | ;УСТАНОВЛЕН РАЗРЯД ОШИБКИ? | |
| 1270 | 135712 | 001405 | BEQ 135726 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 1271 | 135714 | 112777 000002 044060 | MOVB #2,@2002 | ;ОШИБКА 2. НЕ ОЧИСТИЛСЯ РКС2<08> ПО НАЧАЛЬНОЙ | |
| 1272 | ;УСТАНОВКЕ | ||||
| 1273 | 135722 | 012604 | MOV (SP)+,R4 | ||
| 1274 | 135724 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1275 | 135726 | 012704 000005 | MOV #5,R4 | ;ВЫБРАТЬ СЧЕТЧИК ОБРАЗЦОВ ДАННЫХ | |
| 1276 | 135732 | 012701 137116 | MOV #137116,R1 | ;ВЫБРАТЬ АДРЕС ОБРАЗЦОВ ДАННЫХ | |
| 1277 | 135736 | 011162 000006 | MOV @R1,6(R2) | ;ЗАПИСАТЬ ДАННЫЕ В РАССЗ | |
| 1278 | 135742 | 011137 002010 | MOV @R1,@#2010 | ||
| 1279 | 135746 | 042737 000340 002010 | BIC #340,@#2010 | ;СФОРМИРОВАТЬ ОЖИДАЕМЫЕ ДАННЫЕ | |
| 1280 | 135754 | 023762 002010 000006 | CMP @#2010,6(R2) | ;ДАННЫЕ СОВПАДАЮТ? | |
| 1281 | 135762 | 001045 | BNE 136076 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 1282 | 135764 | 005721 | TST (R1)+ | ;ПОЛУЧИТЬ АДРЕС СЛЕДУЮЩЕГО ОБРАЗЦА ДАННЫХ | |
| 1283 | 135766 | 077415 | SOB R4,135736 | ||
| 1284 | 135770 | 012704 000005 | MOV #5,R4 | ;ВЫБРАТЬ СЧЕТЧИК ОБРАЗЦОВ ДАННЫХ | |
| 1285 | 135774 | 012701 137116 | MOV #137116,R1 | ;ВЫБРАТЬ АДРЕС ОБРАЗЦОВ ДАННЫХ | |
| 1286 | 136000 | 011162 000012 | MOV @R1,12(R2) | ;ЗАПИСАТЬ ДАННЫЕ В РАЦ | |
| 1287 | 136004 | 011137 002010 | MOV @R1,@#2010 | ||
| 1288 | 136010 | 042737 176000 002010 | BIC #176000,@#2010 | ;СФОРМИРОВАТЬ ОЖИДАЕМЫЕ ДАННЫЕ | |
| 1289 | 136016 | 023762 002010 000012 | CMP @#2010,12(R2) | ;ДАННЫЕ СОВПАДАЮТ? | |
| 1290 | 136024 | 001024 | BNE 136076 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 1291 | 136026 | 005721 | TST (R1)+ | ;ПОЛУЧИТЬ АДРЕС СЛЕДУЮЩЕГО ОБРАЗЦА ДАННЫХ | |
| 1292 | 136030 | 077415 | SOB R4,136000 | ||
| 1293 | 136032 | 012704 000005 | MOV #5,R4 | ;ВЫБРАТЬ СЧЕТЧИК ОБРАЗЦОВ ДАННЫХ | |
| 1294 | 136036 | 012701 137116 | MOV #137116,R1 | ;ВЫБРАТЬ АДРЕС ОБРАЗЦОВ ДАННЫХ | |
| 1295 | 136042 | 011162 000014 | MOV @R1,14(R2) | ;ЗАПИСАТЬ ДАННЫЕ В РАП | |
| 1296 | 136046 | 011137 002010 | MOV @R1,@#2010 | ||
| 1297 | 136052 | 042737 177770 002010 | BIC #177770,@#2010 | ;СФОРМИРОВАТЬ ОЖИДАЕМЫЕ ДАННЫЕ | |
| 1298 | 136060 | 023762 002010 000014 | CMP @#2010,14(R2) | ;ДАННЫЕ СОВПАДАЮТ? | |
| 1299 | 136066 | 001003 | BNE .+10 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 1300 | 136070 | 005721 | TST (R1)+ | ;ПОЛУЧИТЬ АДРЕС СЛЕДУЮЩЕГО ОБРАЗЦА | |
| 1301 | 136072 | 077415 | SOB R4,136042 | ||
| 1302 | 136074 | 000405 | BR 136110 | ||
| 1303 | 136076 | 112777 000003 043676 | MOVB #3,@2002 | ;ОШИБКА 3. НЕСОВПАДЕНИЕ ЗАПИСАННЫХ И СЧИТАННЫХ | |
| 1304 | ;ДАННЫХ В РАССЗ, РАЦ ИЛИ РАП КОНТРОЛЛЕРА НМД | ||||
| 1305 | 136104 | 012604 | MOV (SP)+,R4 | ||
| 1306 | 136106 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1307 | 136110 | 032762 100000 000020 | BIT #100000,20(R2) | ;РАЗРЯД "ЗАНЯТ" В РСНУ"=0? | |
| 1308 | 136116 | 001405 | BEQ 136132 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1309 | 136120 | 112777 000004 043654 | MOVB #4,@2002 | ;ОШИБКА 4. НЕ ОЧИСТИЛСЯ РАЗРЯД "ЗАНЯТ" В РСНУ | |
| 1310 | 136126 | 012604 | MOV (SP)+,R4 | ;ПОСЛЕ НАЧАЛЬНОЙ УСТАНОВКИ | |
| 1311 | 136130 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1312 | 136132 | 005001 | CLR R1 | ||
| 1313 | 136134 | 022762 050000 000016 | CMP #50000,16(R2) | ||
| 1314 | 136142 | 001406 | BEQ 136160 | ||
| 1315 | 136144 | 077105 | SOB R1,136134 | ||
| 1316 | 136146 | 112777 000005 043626 | MOVB #5,@2002 | ;ОШИБКА 5. СОДЕРЖИМОЕ РКС2 НЕ РАВНО 50000 ПОСЛЕ | |
| 1317 | ;НАЧАЛЬНОЙ УСТАНОВКИ | ||||
| 1318 | 136154 | 012604 | MOV (SP)+,R4 | ||
| 1319 | 136156 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1320 | 136160 | 012763 136256 000300 | MOV #136256,300(R3) | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ | |
| 1321 | ;ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1322 | 136166 | 012763 000340 000302 | MOV #340,302(R3) | ||
| 1323 | 136174 | 012737 000100 173206 | MOV #100,@#173206 | ;ОЧИСТИТЬ РАЗРЯДЫ В РЕГИСТРАХ ТРЕБОВАНИЯ | |
| 1324 | 136202 | 012737 000100 173212 | MOV #100,@#173212 | ;ПРЕРЫВАНИЙ | |
| 1325 | 136210 | 010001 | MOV R0,R1 | ||
| 1326 | 136212 | 052701 000400 | BIS #400,R1 | ||
| 1327 | 136216 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ | |
| 1328 | ;ОПЕРАЦИИ | ||||
| 1329 | 136220 | 012704 000006 | MOV #6,R4 | ||
| 1330 | 136224 | 005001 | CLR R1 | ||
| 1331 | 136226 | 012762 000020 000016 | MOV #20,16(R2) | ;ВЫПОЛНИТЬ ПОЗИЦИОНИРОВАНИЕ НА НУЛЕВУЮ ДОРОЖКУ | |
| 1332 | 136234 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 0 | |
| 1333 | ;ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1334 | ;"ПОЗИЦИОНИРОВАНИЕ НА НУЛЕВУЮ ДОРОЖКУ" ДОЛЖНО | ||||
| 1335 | ;ПРОИЗОЙТИ ПРЕРЫВАНИЕ | ||||
| 1336 | 136240 | 077101 | SOB R1,.+0 | ;ОЖИДАНИЕ ПРЕРЫВАНИЯ | |
| 1337 | 136242 | 077402 | SOB R4,.-2 | ||
| 1338 | 136244 | 112777 000006 043530 | MOVB #6,@2002 | ;ОШИБКА 6. НЕТ ПРЕРЫВАНИЯ ОТ КОНТРОЛЛЕРА НМД | |
| 1339 | 136252 | 012604 | MOV (SP)+,R4 | ;ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | |
| 1340 | ;"ПОЗИЦИОНИРОВАНИЕ НА НУЛЕВУЮ ДОРОЖКУ" | ||||
| 1341 | 136254 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1342 | 136256 | 022626 | CMP (SP)+,(SP)+ | ||
| 1343 | 136260 | 010001 | MOV R0,R1 | ||
| 1344 | 136262 | 052701 000400 | BIS #400,R1 | ||
| 1345 | 136266 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД | |
| 1346 | 136270 | 032762 000001 000020 | BIT #1,20(R2) | ;РАЗРЯД "ОПЕРАЦИЯ ЗАВЕРШЕНА В РСНУ =1? | |
| 1347 | 136276 | 001005 | BNE 136312 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1348 | 136300 | 112777 000007 043474 | MOVB #7,@2002 | ;ОШИБКА 7. НЕ УСТАНОВИЛСЯ РАЗРЯД "ОПЕРАЦИЯ ЗАВЕРШЕНА" | |
| 1349 | 136306 | 012604 | MOV (SP)+,R4 | ;В РСНУ ПОСЛЕ ВЫПОЛНЕНИЯ ОПЕРАЦИИ "ПОЗИЦИОНИРОВАНИЕ | |
| 1350 | ;НА НУЛЕВУЮ ДОРОЖКУ" | ||||
| 1351 | 136310 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1352 | 136312 | 032762 000400 000016 | BIT #400,16(R2) | ;БЫЛИ ОШИБКИ? | |
| 1353 | 136320 | 001405 | BEQ 136334 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 1354 | 136322 | 112777 000010 043452 | MOVB #10,@2002 | ;ОШИБКА 10. УСТАНОВИЛСЯ РКС2<08> ПРИ ВЫПОЛНЕНИИ | |
| 1355 | 136330 | 012604 | MOV (SP)+,R4 | ;ОПЕРАЦИИ "ПОЗИЦИОНИРОВАНИЕ НА НУЛЕВУЮ ДОРОЖКУ" | |
| 1356 | 136332 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1357 | 136334 | 032762 000400 000020 | BIT #400,20(R2) | ;ПОЗИЦИОНИРОВАНИЕ ОСУЩЕСТВЛЯЕТСЯ В РЕЖИМЕ | |
| 1358 | ;"БЫСТРЫЙ ПОИСК"? | ||||
| 1359 | 136342 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ПОЗИЦИОНИРОВАНИЕ ОСУЩЕСТВЛЯЕТСЯ | |
| 1360 | ;В РЕЖИМЕ "МЕДЛЕННЫЙ ПОИСК" | ||||
| 1361 | 136344 | 052777 000400 043430 | BIS #400,@2002 | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ПРИЗНАК | |
| 1362 | ;НАКОПИТЕЛЯ С ПОЗИЦИОНИРОВАНИЕМ В РЕЖИМЕ | ||||
| 1363 | ;"БЫСТРЫЙ ПОИСK" | ||||
| 1364 | 136352 | 012737 000230 002004 | MOV #230,@#2004 | ;ВЫБРАТЬ АДРЕС ЦИЛИНДРА = 230 | |
| 1365 | 136360 | 012737 000002 002006 | MOV #2,@#2006 | ||
| 1366 | 136366 | 012763 136732 000300 | MOV #136732,300(R3) | ;СФОРМИРОВАТЬ ВЕКТОРЫ ПРЕРЫВАНИЯ ОТ КОНТРОЛЛЕРА | |
| 1367 | 136374 | 012763 000340 000302 | MOV #340,302(R3) | ;НМД | |
| 1368 | 136402 | 012763 137000 000304 | MOV #137000,304(R3) | ||
| 1369 | 136410 | 012763 000340 000306 | MOV #340,306(R3) | ||
| 1370 | 136416 | 013704 002006 | MOV @#2006,R4 | ||
| 1371 | 136422 | 005037 002000 | CLR @#2000 | ||
| 1372 | 136426 | 005737 002000 | TST @#2000 | ||
| 1373 | 136432 | 001004 | BNE 136444 | ||
| 1374 | 136434 | 013762 002004 000012 | MOV @#2004,12(R2) | ;ЗАДАТЬ АДРЕС ЦИЛИНДРА ( O ИЛИ 230 ) | |
| 1375 | 136442 | 000412 | BR 136470 | ||
| 1376 | 136444 | 032737 000001 002000 | BIT #1,@#2000 | ||
| 1377 | 136452 | 001403 | BEQ .+10 | ||
| 1378 | 136454 | 005062 000012 | CLR 12(R2) | ;ЗАДАТЬ АДРЕС ЦИЛИНДРА = 000000 | |
| 1379 | 136460 | 000403 | BR .+10 | ||
| 1380 | 136462 | 013762 002004 000012 | MOV @#2004,12(R2) | ;ЗАДАТЬ АДРЕС ЦИЛИНДРА ( 0 ИЛИ 230 ) | |
| 1381 | 136470 | 005062 000006 | CLR 6(R2) | ;ЗАДАТЬ АДРЕС СЕКТОРА = 000000 | |
| 1382 | 136474 | 032737 000001 002000 | BIT #1,@#2000 | ||
| 1383 | 136502 | 001403 | BEQ .+10 | ||
| 1384 | 136504 | 013701 002006 | MOV @#2006,R1 | ;ЗАДАТЬ АДРЕС ПОВЕРХНОСТИ ( O ИЛИ 1 ) | |
| 1385 | 136510 | 000401 | BR .+4 | ||
| 1386 | 136512 | 010401 | MOV R4,R1 | ||
| 1387 | 136514 | 005401 | NEG R1 | ||
| 1388 | 136516 | 063701 002006 | ADD @#2006,R1 | ;СФОРМИРОВАТЬ АДРЕС ПОВЕРХНОСТИ | |
| 1389 | 136522 | 010162 000014 | MOV R1,14(R2) | ;ЗАДАТЬ АДРЕС ПОВЕРХНОСТИ | |
| 1390 | 136526 | 010001 | MOV R0,R1 | ||
| 1391 | 136530 | 052701 000400 | BIS #400,R1 | ||
| 1392 | 136534 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД | |
| 1393 | ;ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1394 | 136536 | 042701 000400 | BIC #400,R1 | ||
| 1395 | 136542 | 052701 001000 | BIS #1000,R1 | ||
| 1396 | 136546 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД | |
| 1397 | ;ПО ЗАВЕРШЕНИИ СЧИТЫВАНИЯ СЕКТОРА В БУФЕР | ||||
| 1398 | ;КОНТРОЛЛЕРА | ||||
| 1399 | 136550 | 012762 000040 000016 | MOV #40,16(R2) | ;ВЫПОЛНИТЬ ОПЕРАЦИЮ "ЧТЕНИЕ СЕКТОРА" | |
| 1400 | 136556 | 005037 002012 | CLR @#2012 | ||
| 1401 | 136562 | 012737 000003 002014 | MOV #3,@#2014 | ||
| 1402 | 136570 | 052705 177777 | BIS #-1,R5 | ||
| 1403 | 136574 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 0 | |
| 1404 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА | ||||
| 1405 | ;ПО ЗАВЕРШЕНИИ СЧИТЫВАНИЯ СЕКТОРА В | ||||
| 1406 | ;БУФЕР КОНТРОЛЛЕРА | ||||
| 1407 | 136600 | 105777 043176 | TSTB @2002 | ;БЫЛИ ОШИБКИ? | |
| 1408 | 136604 | 001013 | BNE 136634 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1409 | 136606 | 005705 | TST R5 | ;БЫЛО ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ? | |
| 1410 | 136610 | 001412 | BEQ 136636 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1411 | 136612 | 005337 002012 | DEC @#2012 | ;ПРОИЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | |
| 1412 | 136616 | 001370 | BNE 136600 | ;"ЧТЕНИЕ СЕКТОРА" И ДЛЯ ОБСЛУЖИВАНИЯ | |
| 1413 | 136620 | 005337 002014 | DEC @#2014 | ;ПРЕРЫВАНИЙ | |
| 1414 | 136624 | 001365 | BNE 136600 | ||
| 1415 | 136626 | 112777 000011 043146 | MOVB #11,@2002 | ;ОШИБКА 11. НЕТ ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ | |
| 1416 | ;СЧИТЫВАНИЯ СЕКТОРА В БУФЕР КОНТРОЛЛЕРА ИЛИ | ||||
| 1417 | ;ПО ЗАВЕРШЕНИИ СЧИТЫВАНИЯ ДАННЫХ ИЗ БУФЕРА | ||||
| 1418 | ;КОНТРОЛЛЕРА | ||||
| 1419 | 136634 | 000411 | BR 136660 | ;ПРИ НАЛИЧИИ ОШИБКИ ПЕРЕЙТИ НА | |
| 1420 | ;ПОДПРОГРАММУ ПРОВЕРКИ РАЗРЯДОВ "ЗАНЯТ" И | ||||
| 1421 | ;"ОПЕРАЦИЯ ЗАВЕРШЕНА" В РСНУ | ||||
| 1422 | 136636 | 032737 000002 002000 | BIT #2,@#2000 | ||
| 1423 | 136644 | 001003 | BNE .+10 | ||
| 1424 | 136646 | 005237 002000 | INC @#2000 | ||
| 1425 | 136652 | 000665 | BR 136426 | ||
| 1426 | 136654 | 005304 | DEC R4 | ||
| 1427 | 136656 | 001261 | BNE 136422 | ||
| 1428 | 136660 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 1429 | 136666 | 010001 | MOV R0,R1 | ||
| 1430 | 136670 | 052701 000400 | BIS #400,R1 | ||
| 1431 | 136674 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД ПО | |
| 1432 | ;ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1433 | 136676 | 042701 000400 | BIC #400,R1 | ||
| 1434 | 136702 | 052701 001000 | BIS #1000,R1 | ||
| 1435 | 136706 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД ПО | |
| 1436 | ;ЗАВЕРШЕНИИ СЧИТЫВАНИЯ СЕКТОРА В БУФЕР | ||||
| 1437 | ;КОНТРОЛЛЕРА | ||||
| 1438 | 136710 | 004737 137036 | JSR PC,@#137036 | ;ПРОВЕРИТЬ РАЗРЯДЫ "ЗАНЯТ" И "ОПЕРАЦИЯ ЗАВЕРШЕНА" | |
| 1439 | ;В РСНУ | ||||
| 1440 | 136714 | 000401 | BR .+4 | ;ПЕРЕЙТИ НА ОШИБКУ | |
| 1441 | 136716 | 000403 | BR .+10 | ;ОБОЙТИ ОШИБКУ 12 | |
| 1442 | 136720 | 112777 000012 043054 | MOVB #12,@2002 | ;ОШИБКА 12. НЕ ОЧИСТИЛСЯ РАЗРЯД "ЗАНЯТ" ИЛИ | |
| 1443 | ;НЕ УСТАНОВИЛСЯ РАЗРЯД "ОПЕРАЦИЯ ЗАВЕРШЕНА" | ||||
| 1444 | ;В РСНУ ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1445 | 136726 | 012604 | MOV (SP)+,R4 | ||
| 1446 | 136730 | 104000 | EMT | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 1447 | |||||
| 1448 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1449 | |||||
| 1450 | 136732 | 010001 | MOV R0,R1 | ||
| 1451 | |||||
| 1452 | 136734 | 052701 000400 | BIS #400,R1 | ||
| 1453 | 136740 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД | |
| 1454 | ;ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1455 | 136742 | 042701 000400 | BIC #400,R1 | ||
| 1456 | 136746 | 052701 001000 | BIS #1000,R1 | ||
| 1457 | 136752 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД | |
| 1458 | ;ПО ЗАВЕРШЕНИИ СЧИТЫВАНИЯ СЕКТОРА В БУФЕР | ||||
| 1459 | ;КОНТРОЛЛЕРА | ||||
| 1460 | 136754 | 032762 000400 000016 | BIT #400,16(R2) | ;ПРОИЗОШЛА ОШИБКА? | |
| 1461 | 136762 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1462 | 136764 | 005005 | CLR R5 | ;УСТАНОВИТЬ ПРИЗНАК УСПЕШНОГО ЗАВЕРШЕНИЯ ОПЕРАЦИИ | |
| 1463 | ;И НАЛИЧИЯ ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ ВЫПОЛНЕНИЯ | ||||
| 1464 | ;ОПЕРАЦИИ | ||||
| 1465 | 136766 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 1466 | |||||
| 1467 | 136770 | 112777 000013 043004 | MOVB #13,@2002 | ;ОШИБКА 13. УСТАНОВИЛСЯ РКС2<08> | |
| 1468 | ;ПРИ ВЫПОЛНЕНИИ ОПЕРАЦИИ "ЧТЕНИЕ СЕКТОРА" | ||||
| 1469 | 136776 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 1470 | |||||
| 1471 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ СЧИТЫВАНИЯ | ||||
| 1472 | ;СЕКТОРА В БУФЕР КОНТРОЛЛЕРА | ||||
| 1473 | 137000 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=0 | |
| 1474 | 137004 | 010001 | MOV R0,R1 | ||
| 1475 | 137006 | 052701 001000 | BIS #1000,R1 | ||
| 1476 | 137012 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ КОНТРОЛЛЕРА НМД | |
| 1477 | ;ПО ЗАВЕРШЕНИИ СЧИТЫВАНИЯ СЕКТОРА В | ||||
| 1478 | ;БУФЕР КОНТРОЛЛЕРА | ||||
| 1479 | 137014 | 012701 000400 | MOV #400,R1 | ||
| 1480 | 137020 | 005762 000010 | TST 10(R2) | ;СЧИТАТЬ БУФЕР | |
| 1481 | 137024 | 077103 | SOB R1,.-4 | ||
| 1482 | ;ПО ЗАВЕРШЕНИИ СЧИТЫВАНИЯ БУФЕРА ДОЛЖЕН | ||||
| 1483 | ;УСТАНОВИТЬСЯ РАЗРЯД "ОПЕРАЦИЯ ЗАВЕРШЕНА" | ||||
| 1484 | ;И ПРОИЗОЙТИ ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ | ||||
| 1485 | ;ВЫПОЛНЕНИЯ ОПЕРАЦИИ | ||||
| 1486 | 137026 | 012737 000100 173212 | MOV #100,@#173212 | ;ОЧИСТИТЬ ВСЕ РАЗРЯДЫ В РЕГИСТРЕ ТРЕБОВАНИЯ | |
| 1487 | ;ПРЕРЫВАНИЙ | ||||
| 1488 | 137034 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 1489 | |||||
| 1490 | ;ПОДПРОГРАММА ПРОВЕРКИ РАЗРЯДОВ "ЗАНЯТ" И "ОПЕРАЦИЯ ЗАВЕРШЕНА" | ||||
| 1491 | |||||
| 1492 | 137036 | 005001 | CLR R1 | ||
| 1493 | 137040 | 032762 100000 000020 | BIT #100000,20(R2) | ;РАЗРЯД "ЗАНЯТ" ОЧИЩЕН? | |
| 1494 | 137046 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1495 | 137050 | 077105 | SOB R1,137040 | ||
| 1496 | 137052 | 000207 | RTS PC | ;ВЫХОД НА ОШИБКУ 12 | |
| 1497 | 137054 | 012762 000020 000016 | MOV #20,16(R2) | ;ВЫПОЛНИТЬ ПОЗИЦИОНИРОВАНИЕ НА НУЛЕВУЮ ДОРОЖКУ | |
| 1498 | 137062 | 005001 | CLR R1 | ||
| 1499 | 137064 | 032762 000001 000020 | BIT #1,20(R2) | ;РАЗРЯД "ОПЕРАЦИЯ ЗАВЕРШЕНА" В РСНУ =1? | |
| 1500 | 137072 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1501 | 137074 | 077105 | SOB R1,137064 | ;ЗАДЕРЖКА ДЛЯ УСТАНОВКИ РАЗРЯДА "ОПЕРАЦИЯ | |
| 1502 | 137076 | 077406 | SOB R4,137064 | ;ЗАВЕРШЕНА" В РСНУ | |
| 1503 | 137100 | 000402 | BR .+6 | ;ПЕРЕЙТИ НА ОШИБКУ 12, ЕСЛИ РАЗРЯД "ОПЕРАЦИЯ | |
| 1504 | ;ЗАВЕРШЕНА" НЕ УСТАНОВИЛСЯ | ||||
| 1505 | 137102 | 062716 000002 | ADD #2,@SP | ;ПЕРЕЙТИ ЧЕРЕЗ ОШИБКУ, ЕСЛИ РАЗРЯД "ОПЕРАЦИЯ | |
| 1506 | ;ЗАВЕРШЕНА" УСТАНОВИЛСЯ | ||||
| 1507 | 137106 | 012737 000100 173206 | MOV #100,@#173206 | ;ОЧИСТИТЬ ВСЕ РАЗРЯДЫ В РЕГИСТРЕ ТРЕБОВАНИЯ | |
| 1508 | ;ПРЕРЫВАНИЙ | ||||
| 1509 | 137114 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 1510 | |||||
| 1511 | ;ОБРАЗЦЫ ДАННЫХ | ||||
| 1512 | 137116 | 125252 | 125252 | ||
| 1513 | 137120 | 052525 | 052525 | ||
| 1514 | 137122 | 031463 | 031463 | ||
| 1515 | 137124 | 004717 | 004717 | ||
| 1516 | 137126 | 000377 | 000377 | ||
| 1517 | |||||
| 1518 | ;*********************************************************************** | ||||
| 1519 | ; | ||||
| 1520 | ;ПОДПРОГРАММА ПРОВЕРКИ ВИДЕОКОНТРОЛЛЕРА | ||||
| 1521 | ; | ||||
| 1522 | ;*********************************************************************** | ||||
| 1523 | 137130 | 010001 | MOV R0,R1 | ||
| 1524 | 137132 | 072127 000007 | ASH #7,R1 | ||
| 1525 | 137136 | 062701 174000 | ADD #174000,R1 | ;ПОЛУЧИТЬ АДРЕС ВИДЕОКОНТОЛЛЕРА | |
| 1526 | 137142 | 012761 000030 000006 | MOV #30,6(R1) | ;ЗАПРЕТИТЬ ФОРМИРОВАНИЕ ИЗОБРАЖЕНИЯ НА ЭКРАНЕ | |
| 1527 | ;МОНИТОРА | ||||
| 1528 | 137150 | 012761 014030 000010 | MOV #14030,10(R1) | ||
| 1529 | 137156 | 010002 | MOV R0,R2 | ||
| 1530 | 137160 | 072227 000002 | ASH #2,R2 | ||
| 1531 | 137164 | 005402 | NEG R2 | ||
| 1532 | 137166 | 062702 117756 | ADD #117756,R2 | ;ПОЛУЧИТЬ АДРЕС ЯЧЕЙКИ ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК, | |
| 1533 | ;СООТВЕТСТВУЮЩЕЙ ВИДЕОКОНТРОЛЛЕРУ | ||||
| 1534 | 137172 | 010237 002000 | MOV R2,@#2000 | ||
| 1535 | 137176 | 005077 042576 | CLR @2000 | ||
| 1536 | 137202 | 012746 000004 | MOV #4,-(SP) | ||
| 1537 | 137206 | 012746 000140 | MOV #140,-(SP) | ||
| 1538 | 137212 | 011661 000026 | MOV @SP,26(R1) | ;РАЗМЕСТИТЬ ПАМЯТЬ ВИДЕОКОНТОЛЛЕРА В АДРЕСНОМ | |
| 1539 | ;ПРОСТРАНСТВЕ ОТ 14000000 ДО 14077777 | ||||
| 1540 | 137216 | 006316 | ASL @SP | ||
| 1541 | 137220 | 006316 | ASL @SP | ||
| 1542 | 137222 | 104005 | EMT+5 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ДЛЯ | |
| 1543 | ;ДОСТУПА К ПАМЯТИ ВИДЕОКОНТРОЛЛЕРА | ||||
| 1544 | 137224 | 022626 | CMP (SP)+,(SP)+ | ||
| 1545 | 137226 | 004737 140052 | JSR PC,@#140052 | ;ПРОВЕРИТЬ СОДЕРЖИМОЕ РЕГИСТРОВ ВИДЕОКОНТРОЛЛЕРА | |
| 1546 | ;ПОСЛЕ НАЧАЛЬНОЙ УСТАНОВКИ | ||||
| 1547 | 137232 | 103003 | BCC .+10 | ;ПЕРЕЙТИ , ЕСЛИ ОШИБОК НЕТ | |
| 1548 | 137234 | 004737 137714 | JSR PC,@#137714 | ;ОШИБКА 2. НЕВЕРНОЕ СОДЕРЖИМОЕ В ОДНОМ ИЗ | |
| 1549 | 137240 | 000002 | 000002 | ;РЕГИСТРОВ ПОСЛЕ НАЧАЛЬНОЙ УСТАНОВКИ | |
| 1550 | 137242 | 052761 000040 000006 | BIS #40,6(R1) | ;РАЗРЕШИТЬ ДОСТУП ЦП К ПАМЯТИ ВИДЕОКОНТРОЛЛЕРА | |
| 1551 | 137250 | 004737 140156 | JSR PC,@#140156 | ;ПРОВЕРИТЬ ПАМЯТЬ ВИДЕОКОНТРОЛЛЕРА ЗАПИСЬЮ, | |
| 1552 | ;ИНВЕРТИРОВАНИЕМ И СЧИТЫВАНИЕМ ШАХМАТНОГО | ||||
| 1553 | ;КОДА | ||||
| 1554 | 137254 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1555 | 137256 | 004737 137714 | JSR PC,@#137714 | ;ОШИБКА 3. ОШИБКА ЗАПИСИ/СЧИТЫВАНИЯ В ПАМЯТИ | |
| 1556 | 137262 | 000003 | 000003 | ;ВИДЕОКОНТРОЛЛЕРА | |
| 1557 | 137264 | 004737 140214 | JSR PC,@#140214 | ;ПРОВЕРИТЬ ВРЕМЯ ФОРМИРОВАНИЯ ОДНОГО КАДРА И | |
| 1558 | ;НАЛИЧИЕ ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ ФОРМИРОВАНИЯ | ||||
| 1559 | ;КАДРА | ||||
| 1560 | 137270 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1561 | 137272 | 004737 137714 | JSR PC,@#137714 | ;ОШИБКА 4. ОШИБКА СКОРОСТИ ФОРМИРОВАНИЯ КАДРА ИЛИ | |
| 1562 | 137276 | 000004 | 000004 | ;НЕ ПРОИЗОШЛО ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ | |
| 1563 | ;ФОРМИРОВАНИЯ КАДРА | ||||
| 1564 | 137300 | 042761 000007 000006 | BIC #7,6(R1) | ||
| 1565 | 137306 | 052761 000002 000006 | BIS #2,6(R1) | ||
| 1566 | 137314 | 004737 140434 | JSR PC,@#140434 | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ ПОСТРОЕНИЯ ВЕКТОРА И | |
| 1567 | ;И НАЛИЧИЕ ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ ПОСТРОЕНИЯ | ||||
| 1568 | ;ВЕКТОРА | ||||
| 1569 | 137320 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1570 | 137322 | 004737 137714 | JSR PC,@#137714 | ;ОШИБКА 5. | |
| 1571 | 137326 | 000005 | 000005 | ;ОШИБКА ПРИ ПОСТРОЕНИИ ВЕКТОРА ИЛИ НЕ ПРОИЗОШЛО | |
| 1572 | ;ПРЕРЫВАНИЕ ПО ЗАВЕРШЕНИИ ПОСТРОЕНИЯ ВЕКТОРА | ||||
| 1573 | 137330 | 010103 | MOV R1,R3 | ||
| 1574 | 137332 | 062703 000006 | ADD #6,R3 | ||
| 1575 | 137336 | 012746 000007 | MOV #7,-(SP) | ||
| 1576 | 137342 | 012746 000001 | MOV #1,-(SP) | ||
| 1577 | 137346 | 004737 140772 | JSR PC,@#140772 | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ РЕЖИМОВ МОДИФИКАЦИИ | |
| 1578 | ;ВИДЕОДАННЫХ | ||||
| 1579 | 137352 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1580 | 137354 | 004737 137714 | JSR PC,@#137714 | ;ОШИБКА 6. | |
| 1581 | 137360 | 000006 | 000006 | ;ОШИБКА РЕЖИМА МОДИФИКАЦИИ ВИДЕОДАННЫХ | |
| 1582 | 137362 | 004737 142250 | JSR PC,@#142250 | ;ПРОВЕРИТЬ СМЕЩЕНИЕ АДРЕСОВ ПАМЯТИ ОТНОСИТЕЛЬНО | |
| 1583 | ;КАДРОВЫХ СИНХРОИМПУЛЬСОВ | ||||
| 1584 | 137366 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1585 | 137370 | 004737 137714 | JSR PC,@#137714 | ;ОШИБКА 7. ОШИБКА СМЕЩЕНИЯ АДРЕСОВ ПАМЯТИ | |
| 1586 | 137374 | 000007 | 7 | ;ВИДЕОКОНТРОЛЛЕРА ОТНОСИТЕЛЬНО КАДРОВЫХ | |
| 1587 | ;СИНХРОИМПУЛЬСОВ | ||||
| 1588 | 137376 | 104006 | EMT+6 | ;ВОССТАНОВИТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ОЗУ | |
| 1589 | ;ПОСЛЕ ПРОВЕРКИ ВИДЕОКОНТРОЛЛЕРА | ||||
| 1590 | 137400 | 012700 001403 | MOV #1403,R0 | ;ВЫБРАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД РАСШИРИТЕЛЯ | |
| 1591 | ;ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 1592 | 137404 | 104001 | EMT+1 | ;ОПРЕДЕЛИТЬ НОМЕР ПОЗИЦИИ РАСШИРИТЕЛЯ | |
| 1593 | ;ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 1594 | ;В R0 - НОМЕР ПОЗИЦИИ | ||||
| 1595 | ;ПРИ ОТСУТСТВИИ РАСШИРИТЕЛЯ ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 1596 | ;R0=177777 | ||||
| 1597 | 137406 | 020027 177777 | CMP R0,#-1 | ;РАСШИРИТЕЛЬ ПАМЯТИ ВИДЕОДАННЫХ УСТАНОВЛЕН? | |
| 1598 | 137412 | 001011 | BNE 137436 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1599 | 137414 | 032761 020000 000004 | BIT #20000,4(R1) | ;РС<13>=1? | |
| 1600 | 137422 | 001003 | BNE .+10 | ;ПЕРЕЙТИ,ЕСЛИ ДА | |
| 1601 | 137424 | 004737 137714 | JSR PC,@#137714 | ;ОШИБКА 10. РС<13>=0 ПРИ ОТСУТСТВИИ РАСШИРИТЕЛЯ | |
| 1602 | 137430 | 000010 | 10 | ;ПАМЯТИ ВИДЕОДАННЫХ | |
| 1603 | 137432 | 000137 137732 | JMP @#137732 | ||
| 1604 | |||||
| 1605 | ;*********************************************************************** | ||||
| 1606 | ; | ||||
| 1607 | ;ПОДПРОГРАММА ПРОВЕРКИ РАСШИРИТЕЛЯ ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 1608 | ; | ||||
| 1609 | ;*********************************************************************** | ||||
| 1610 | |||||
| 1611 | 137436 | 010002 | MOV R0,R2 | ||
| 1612 | 137440 | 072227 000002 | ASH #2,R2 | ||
| 1613 | 137444 | 005402 | NEG R2 | ||
| 1614 | 137446 | 062702 117756 | ADD #117756,R2 | ;ПОЛУЧИТЬ АДРЕС ЯЧЕЙКИ ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК, | |
| 1615 | ;СООТВЕТСТВУЮЩЕЙ РАСШИРИТЕЛЮ ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 1616 | 137452 | 010237 002000 | MOV R2,@#2000 | ||
| 1617 | 137456 | 027727 042316 177777 | CMP @2000,#-1 | ||
| 1618 | 137464 | 001402 | BEQ .+6 | ||
| 1619 | 137466 | 000137 137732 | JMP @#137732 | ||
| 1620 | 137472 | 005077 042302 | CLR @2000 | ||
| 1621 | 137476 | 012746 000004 | MOV #4,-(SP) | ||
| 1622 | 137502 | 012746 000140 | MOV #140,-(SP) | ||
| 1623 | 137506 | 011661 000026 | MOV @SP,26(R1) | ;РАЗМЕСТИТЬ ПАМЯТЬ РАСШИРИТЕЛЯ ВИДЕОДАННЫХ | |
| 1624 | ;С АДРЕСА 14000000 | ||||
| 1625 | 137512 | 006316 | ASL @SP | ||
| 1626 | 137514 | 006316 | ASL @SP | ||
| 1627 | 137516 | 104005 | EMT+5 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ДЛЯ ДОСТУПА К ПАМЯТИ | |
| 1628 | ;РАСШИРИТЕЛЯ ВИДЕОДАННЫХ | ||||
| 1629 | 137520 | 022626 | CMP (SP)+,(SP)+ | ||
| 1630 | 137522 | 004737 140120 | JSR PC,@#140120 | ;РС<13> =0? | |
| 1631 | 137526 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1632 | 137530 | 004737 137724 | JSR PC,@#137724 | ;ОШИБКА 1. РС<13>=1 ПРИ НАЛИЧИИ РАСШИРИТЕЛЯ | |
| 1633 | 137534 | 000001 | 000001 | ;ПАМЯТИ ВИДЕОДАННЫХ | |
| 1634 | 137536 | 004737 140136 | JSR PC,@#140136 | ||
| 1635 | 137542 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1636 | 137544 | 004737 137724 | JSR PC,@#137724 | ;ОШИБКА 2. | |
| 1637 | 137550 | 000002 | 000002 | ||
| 1638 | 137552 | 012761 000030 000006 | MOV #30,6(R1) | ;ЗАПРЕТИТЬ ФОРМИРОВАНИЕ ИЗОБРАЖЕНИЯ НА ЭKРАНЕ | |
| 1639 | ;МОНИТОРА | ||||
| 1640 | 137560 | 012761 014070 000010 | MOV #14070,10(R1) | ||
| 1641 | 137566 | 004737 140156 | JSR PC,@#140156 | ;ПРОВЕРИТЬ ПАМЯТЬ РАСШИРИТЕЛЯ ВИДЕОДАННЫХ | |
| 1642 | ;ПОСЛЕДОВАТЕЛЬНОЙ ЗАПИСЬЮ/СЧИТЫВАНИЕМ ДАННЫХ | ||||
| 1643 | 137572 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1644 | 137574 | 004737 137724 | JSR PC,@#137724 | ;ОШИБКА 3. ОШИБКА ЗАПИСИ/СЧИТЫВАНИЯ В ПАМЯТИ | |
| 1645 | 137600 | 000003 | 000003 | ;РАСШИРИТЕЛЯ ВИДЕОДАННЫХ | |
| 1646 | 137602 | 010103 | MOV R1,R3 | ||
| 1647 | 137604 | 062703 000010 | ADD #10,R3 | ||
| 1648 | 137610 | 012746 000007 | MOV #7,-(SP) | ||
| 1649 | 137614 | 012746 000001 | MOV #1,-(SP) | ||
| 1650 | 137620 | 004737 140772 | JSR PC,@#140772 | ;ПРОВЕРИТЬ РЕЖИМЫ МОДИФИКАЦИИ ВИДЕОДАННЫХ | |
| 1651 | 137624 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ ОШИБОК НЕТ | |
| 1652 | 137626 | 004737 137724 | JSR PC,@#137724 | ;ОШИБКА 4. ОШИБКА РЕЖИМА МОДИФИКАЦИИ ВИДЕОДАННЫХ | |
| 1653 | 137632 | 000004 | 000004 | ||
| 1654 | 137634 | 012761 034030 000010 | MOV #34030,10(R1) | ||
| 1655 | 137642 | 004737 140156 | JSR PC,@#140156 | ||
| 1656 | 137646 | 103003 | BCC .+10 | ||
| 1657 | 137650 | 004737 137724 | JSR PC,@#137724 | ||
| 1658 | 137654 | 000005 | 000005 | ||
| 1659 | 137656 | 010103 | MOV R1,R3 | ||
| 1660 | 137660 | 062703 000010 | ADD #10,R3 | ||
| 1661 | 137664 | 012746 003400 | MOV #3400,-(SP) | ||
| 1662 | 137670 | 012746 000400 | MOV #400,-(SP) | ||
| 1663 | 137674 | 004737 140772 | JSR PC,@#140772 | ||
| 1664 | 137700 | 103003 | BCC .+10 | ||
| 1665 | 137702 | 004737 137724 | JSR PC,@#137724 | ||
| 1666 | 137706 | 000006 | 000006 | ||
| 1667 | 137710 | 000137 137732 | JMP @#137732 | ||
| 1668 | 137714 | 104006 | EMT+6 | ;ВОССТАНОВИТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ОЗУ | |
| 1669 | 137716 | 013677 042056 | MOV @(SP)+,@2000 | ;ЗАПИСАТЬ КОД ОШИБКИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 1670 | 137722 | 000441 | BR 140026 | ||
| 1671 | 137724 | 104006 | EMT+6 | ;ВОССТАНОВИТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ОЗУ | |
| 1672 | 137726 | 013677 042046 | MOV @(SP)+,@2000 | ;ЗАПИСАТЬ КОД ОШИБКИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 1673 | 137732 | 012761 001000 000004 | MOV #1000,4(R1) | ||
| 1674 | 137740 | 012761 000032 000006 | MOV #32,6(R1) | ||
| 1675 | 137746 | 012761 015032 000010 | MOV #15032,10(R1) | ||
| 1676 | |||||
| 1677 | ;ЗАПИСАТЬ ВО ВСЕ ЯЧЕЙКИ ПАМЯТИ ВИДЕОДАННЫХ 0 | ||||
| 1678 | 137754 | 005061 000024 | CLR 24(R1) | ;ЗАДАТЬ ФУНКЦИЮ ЯРКОСТИ | |
| 1679 | 137760 | 005061 000016 | CLR 16(R1) | ;ЗАДАТЬ КООРДИНАТУ X=0 | |
| 1680 | 137764 | 005061 000020 | CLR 20(R1) | ;ЗАДАТЬ КООРДИНАТУ Y=0 | |
| 1681 | 137770 | 012761 177777 000022 | MOV #-1,22(R1) | ;ЗАДАТЬ ДЛИНУ ВЕКТОРА | |
| 1682 | 137776 | 012746 012455 | MOV #12455,-(SP) | ||
| 1683 | 140002 | 005761 000004 | TST 4(1) | ;ОПЕРАЦИЯ ЗАВЕРШЕНА? | |
| 1684 | 140006 | 100406 | BMI 140024 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1685 | 140010 | 005316 | DEC @%6 | ;ОЖИДАНИЕ ЗАВЕРШЕНИЯ ОПЕРАЦИИ | |
| 1686 | 140012 | 001373 | BNE 140002 | ||
| 1687 | 140014 | 005726 | TST (6)+ | ;ВОССТАНОВИТЬ УС | |
| 1688 | 140016 | 004737 137714 | JSR %7,@#137714 | ;ОШИБКА 1. НЕТ ГОТОВНОСТИ ВИДЕОКОНТРОЛЛЕРА ПО | |
| 1689 | 140022 | 000001 | 1 | ;ЗАВЕРШЕНИИ ПОСТРОЕНИЯ ВЕКТОРА ДЛИНОЙ 177777 | |
| 1690 | 140024 | 005726 | TST (6)+ | ||
| 1691 | 140026 | 005061 000004 | CLR 4(1) | ;ОЧИСТИТЬ РЕГИСТР КОМАНД | |
| 1692 | 140032 | 005061 000006 | CLR 6(1) | ;ОЧИСТИТЬ РЕГИСТР УПРАВЛЕНИЯ ДАННЫМИ | |
| 1693 | 140036 | 005061 000010 | CLR 10(1) | ||
| 1694 | 140042 | 005061 000014 | CLR 14(1) | ;ОЧИСТИТЬ РЕГИСТР СДВИГА ИЗОБРАЖЕНИЯ | |
| 1695 | 140046 | 104006 | EMT+6 | ;ВОССТАНОВИТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ОЗУ | |
| 1696 | ;ПОСЛЕ ПРОВЕРКИ ВИДЕОКОНТРОЛЛЕРА | ||||
| 1697 | 140050 | 104000 | EMT | ;ВЫЙТИ ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ ВИДЕОКОНТРОЛЛЕРА | |
| 1698 | |||||
| 1699 | ;*********************************************************************** | ||||
| 1700 | ;ПОДПРОГРАММА ПРОВЕРКИ РАЗРЯДОВ РЕГИСТРОВ ПОСЛЕ НАЧАЛЬНОЙ | ||||
| 1701 | ;УСТАНОВКИ (КОМАНДА RESET) | ||||
| 1702 | ;РАЗРЯДЫ <15-14>, <10-08>, <06>, <01-00> В РЕГИСТРЕ СОСТОЯНИЯ | ||||
| 1703 | ;РАЗРЯДЫ <05>, <02-00> В РЕГИСТРЕ УПРАВЛЕНИЯ ДАННЫМИ | ||||
| 1704 | ;РАЗРЯДЫ <07-00> В РЕГИСТРЕ СДВИГА ИЗОБРАЖЕНИЯ | ||||
| 1705 | ;*********************************************************************** | ||||
| 1706 | |||||
| 1707 | 140052 | 005761 000004 | TST 4(1) | ||
| 1708 | 140056 | 100016 | BPL 140114 | ||
| 1709 | 140060 | 036127 000004 043503 | BIT 4(1),#43503 | ||
| 1710 | 140066 | 001012 | BNE 140114 | ||
| 1711 | 140070 | 032761 000047 000006 | BIT #47,6(1) | ||
| 1712 | 140076 | 001006 | BNE 140114 | ||
| 1713 | 140100 | 032761 000377 000014 | BIT #377,14(1) | ||
| 1714 | 140106 | 001002 | BNE .+6 | ||
| 1715 | 140110 | 000241 | CLC | ;ОЧИСТИТЬ С-РАЗРЯД ПРИ ОТСУТСТВИИ ОШИБОК | |
| 1716 | 140112 | 000401 | BR .+4 | ||
| 1717 | 140114 | 000261 | SEC | ;УСТАНОВИТЬ С-РАЗРЯД ПРИ НАЛИЧИИ ОШИБОК | |
| 1718 | 140116 | 000207 | RTS %7 | ||
| 1719 | |||||
| 1720 | |||||
| 1721 | ;*********************************************************************** | ||||
| 1722 | ; | ||||
| 1723 | ;ПОДПРОГРАММА ПРОВЕРКИ РС<13> ПОСЛЕ НАЧАЛЬНОЙ УСТАНОВКИ ( КОМАНДА RESET) | ||||
| 1724 | ;ПРИ РС<13>=1 УСТАНАВЛИВАЕТСЯ С-РАЗРЯД | ||||
| 1725 | ; | ||||
| 1726 | ;*********************************************************************** | ||||
| 1727 | |||||
| 1728 | |||||
| 1729 | 140120 | 032761 020000 000004 | BIT #20000,4(1) | ;РАСШИРИТЕЛЬ ПАМЯТИ ВИДЕОДАННЫХ УСТАНОВЛЕН? | |
| 1730 | 140126 | 001001 | BNE .+4 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 1731 | 140130 | 005727 000261 | TST #261 | ||
| 1732 | 140134 | 000207 | RTS %7 | ||
| 1733 | |||||
| 1734 | 140136 | 032761 023447 000010 | BIT #23447,10(1) | ||
| 1735 | 140144 | 001002 | BNE .+6 | ||
| 1736 | 140146 | 000241 | CLC | ||
| 1737 | 140150 | 000401 | BR .+4 | ||
| 1738 | 140152 | 000261 | SEC | ||
| 1739 | 140154 | 000207 | RTS %7 | ||
| 1740 | |||||
| 1741 | |||||
| 1742 | ;*********************************************************************** | ||||
| 1743 | ; | ||||
| 1744 | ;ПОДПРОГРАММА ПРОВЕРКИ ПАМЯТИ ВИДЕОДАННЫХ ЗАПИСЬЮ/ СЧИТЫВАНИЕМ | ||||
| 1745 | ;ШАХМАТНОГО КОДА. ПРИ ОБНАРУЖЕНИИ ОШИБКИ УСТАНАВЛИВАЕТСЯ С-РАЗРЯД | ||||
| 1746 | ; | ||||
| 1747 | ;*********************************************************************** | ||||
| 1748 | |||||
| 1749 | 140156 | 010046 | MOV %0,-(6) | ;СОХРАНИТЬ В СТЕКЕ R0-R4 | |
| 1750 | 140160 | 010146 | MOV %1,-(6) | ||
| 1751 | 140162 | 010246 | MOV %2,-(6) | ||
| 1752 | 140164 | 010446 | MOV %4,-(6) | ||
| 1753 | 140166 | 013703 172342 | MOV @#172342,%3 | ||
| 1754 | 140172 | 012705 000001 | MOV #1,%5 | ;УСТАНОВИТЬ ПРИЗНАК ПРОВЕРКИ ПАМЯТИ ВИДЕОДАННЫХ | |
| 1755 | 140176 | 004737 162256 | JSR %7,@#162256 | ;ПРОВЕРИТЬ ПАМЯТЬ ВИДЕОДАННЫХ | |
| 1756 | 140202 | 012604 | MOV (6)+,%4 | ;ВОССТАНОВИТЬ R4-R0 | |
| 1757 | 140204 | 012602 | MOV (6)+,%2 | ||
| 1758 | 140206 | 012601 | MOV (6)+,%1 | ||
| 1759 | 140210 | 012600 | MOV (6)+,%0 | ||
| 1760 | 140212 | 000207 | RTS %7 | ||
| 1761 | |||||
| 1762 | ;*********************************************************************** | ||||
| 1763 | ; | ||||
| 1764 | ;ПОДПРОГРАММА ПРОВЕРКИ ВРЕМЕНИ ФОРМИРОВАНИЯ КАДРА И ПРАВИЛЬНОСТИ | ||||
| 1765 | ;ПРЕРЫВАНИЯ ОТ ВИДЕОКОНТРОЛЛЕРА ПО ЗАВЕРШЕНИИ ФОРМИРОВАНИЯ КАДРА | ||||
| 1766 | ; | ||||
| 1767 | ;*********************************************************************** | ||||
| 1768 | |||||
| 1769 | 140214 | 010146 | MOV %1,-(6) | ;СОХРАНИТЬ R1 | |
| 1770 | 140216 | 010001 | MOV %0,%1 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ | |
| 1771 | 140220 | 072127 000003 | ASH #3,%1 | ||
| 1772 | 140224 | 012761 140412 000300 | MOV #140412,300(1) | ;СФОРМИРОВАТЬ ВЕКТОР ПРЕРЫВАНИЯ ОТ | |
| 1773 | ;ВИДЕОКОНТРОЛЛЕРА С АДРЕСОМ 000320 | ||||
| 1774 | 140232 | 012761 000340 000302 | MOV #340,302(1) | ||
| 1775 | 140240 | 010001 | MOV %0,%1 | ||
| 1776 | 140242 | 052701 000400 | BIS #400,%1 | ||
| 1777 | 140246 | 011604 | MOV @%6,%4 | ||
| 1778 | 140250 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ВИДЕОКОНТРОЛЛЕРА | |
| 1779 | ;ПО ЗАВЕРШЕНИИ ФОРМИРОВАНИЯ КАДРА | ||||
| 1780 | 140252 | 012746 140304 | MOV #140304,-(6) | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ТРЕТЬЕГО | |
| 1781 | ;ПРЕРЫВАНИЯ | ||||
| 1782 | 140256 | 012702 000003 | MOV #3,%2 | ||
| 1783 | 140262 | 005003 | CLR %3 | ||
| 1784 | 140264 | 012764 000101 000004 | MOV #101,4(4) | ;УСТАНОВИТЬ РК<06> И РК<00> | |
| 1785 | 140272 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=0 | |
| 1786 | ;ДОЛЖНЫ ПРОИЗОЙТИ 3 ПРЕРЫВАНИЯ | ||||
| 1787 | 140276 | 005203 | INC %3 | ;СОСЧИТАТЬ КОЛИЧЕСТВО ВЫПОЛНЕНИЙ КОМАНД | |
| 1788 | 140300 | 001376 | BNE .-2 | ;INC И BNE МЕЖДУ ВТОРЫМ И ТРЕТЬИМ ПРЕРЫВАНИЕМ, | |
| 1789 | ;СЧЕТЧИК В R3 | ||||
| 1790 | ;ПРОВЕРИТЬ ВРЕМЯ ФОРМИРОВАНИЯ КАДРА ( 625 СТРОК ) | ||||
| 1791 | 140302 | 005726 | TST (6)+ | ||
| 1792 | 140304 | 020327 010060 | CMP %3,#10060 | ;R3 МЕНЬШЕ 10060? | |
| 1793 | 140310 | 002432 | BLT 140376 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ДА | |
| 1794 | 140312 | 020327 011711 | CMP %3,#11711 | ;R3 БОЛЬШЕ 11711? | |
| 1795 | 140316 | 003027 | BGT 140376 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ДА | |
| 1796 | 140320 | 012746 140352 | MOV #140352,-(6) | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ТРЕТЬЕГО | |
| 1797 | ;ПРЕРЫВАНИЯ | ||||
| 1798 | 140324 | 012702 000003 | MOV #3,%2 | ;ВЫБРАТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 1799 | 140330 | 005003 | CLR %3 | ||
| 1800 | 140332 | 012764 000100 000004 | MOV #100,4(4) | ;УСТАНОВИТЬ РК<06>, РК<00> ОЧИСТИТЬ | |
| 1801 | 140340 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=0 | |
| 1802 | ;ДОЛЖНЫ ПРОИЗОЙТИ 3 ПРЕРЫВАНИЯ | ||||
| 1803 | 140344 | 005203 | INC %3 | ;СОСЧИТАТЬ КОЛИЧЕСТВО ВЫПОЛНЕНИЙ КОМАНД | |
| 1804 | 140346 | 001376 | BNE .-2 | ;INC И BNE МЕЖДУ ВТОРЫМ И ТРЕТЬИМ ПРЕРЫВАНИЕМ | |
| 1805 | ;СЧЕТЧИК В R3 | ||||
| 1806 | ;ПРОВЕРИТЬ ВРЕМЯ ФОРМИРОВАНИЯ КАДРА ( 525 СТРОК ) | ||||
| 1807 | 140350 | 005726 | TST (6)+ | ||
| 1808 | 140352 | 020327 006632 | CMP %3,#6632 | ;R3 МЕНЬШЕ 6632? | |
| 1809 | 140356 | 002407 | BLT 140376 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ДА | |
| 1810 | 140360 | 020327 010237 | CMP %3,#10237 | ;R3 БОЛЬШЕ 10237? | |
| 1811 | 140364 | 003004 | BGT 140376 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ДА | |
| 1812 | 140366 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВИДЕОКОНТРОЛЛЕРА | |
| 1813 | 140370 | 000241 | CLC | ;ОЧИСТИТЬ С-РАЗРЯД ПРИ ОТСУТСТВИИ ОШИБОК | |
| 1814 | 140372 | 012601 | MOV (6)+,%1 | ||
| 1815 | 140374 | 000405 | BR 140410 | ||
| 1816 | 140376 | 005064 000004 | CLR 4(4) | ;ОЧИСТИТЬ РК | |
| 1817 | 140402 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВИДЕОКОНРОЛЛЕРА | |
| 1818 | 140404 | 000261 | SEC | ;УСТАНОВИТЬ С-РАЗРЯД ПРИ НАЛИЧИИ ОШИБОК | |
| 1819 | 140406 | 012601 | MOV (6)+,%1 | ||
| 1820 | 140410 | 000207 | RTS %7 | ||
| 1821 | |||||
| 1822 | |||||
| 1823 | ;ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЯ ОТ ВИДЕОКОНТОЛЛЕРА | ||||
| 1824 | |||||
| 1825 | 140412 | 005302 | DEC %2 | ;ТРЕТЬЕ ПРЕРЫВАНИЕ? | |
| 1826 | 140414 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1827 | 140416 | 012703 000001 | MOV #1,%3 | ||
| 1828 | 140422 | 000002 | RTI | ||
| 1829 | 140424 | 005064 000004 | CLR 4(4) | ;ОЧИСТИТЬ РК | |
| 1830 | 140430 | 022626 | CMP (6)+,(6)+ | ||
| 1831 | 140432 | 000207 | RTS %7 | ||
| 1832 | |||||
| 1833 | |||||
| 1834 | ;*********************************************************************** | ||||
| 1835 | ; | ||||
| 1836 | ;ПОДПРОГРАММА ПРОВЕРКИ ПРАВИЛЬНОСТИ ПОСТРОЕНИЯ ВЕКТОРА И НАЛИЧИЯ | ||||
| 1837 | ;ПРЕРЫВАНИЯ ПО ЗАВЕРШЕНИИ ПОСТРОЕНИЯ ВЕКТОРА | ||||
| 1838 | ; | ||||
| 1839 | ;*********************************************************************** | ||||
| 1840 | 140434 | 010146 | MOV %1,-(6) | ||
| 1841 | 140436 | 012703 000003 | MOV #3,%3 | ;ВЫБРАТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 1842 | 140442 | 010102 | MOV %1,%2 | ||
| 1843 | 140444 | 010001 | MOV %0,%1 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ ВИДЕОКОНТРОЛЛЕРА | |
| 1844 | 140446 | 072127 000003 | ASH #3,%1 | ||
| 1845 | 140452 | 012761 140766 000304 | MOV #140766,304(1) | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000324 | |
| 1846 | 140460 | 012761 000340 000306 | MOV #340,306(1) | ||
| 1847 | 140466 | 010001 | MOV %0,%1 | ||
| 1848 | 140470 | 052701 001000 | BIS #1000,%1 | ||
| 1849 | 140474 | 104002 | EMT+2 | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ ВИДЕОКОНТРОЛЛЕРА ПО | |
| 1850 | ;ЗАВЕРШЕНИИ ПОСТРОЕНИЯ ВЕКТОРА | ||||
| 1851 | 140476 | 052762 040000 000004 | BIS #40000,4(2) | ;УСТАНОВИТЬ ТРЕБОВАНИЕ ПРЕРЫВАНИЯ ОТ | |
| 1852 | ;ВИДЕОКОНТРОЛЛЕРА ПО ЗАВЕРШЕНИИ ПОСТРОЕНИЯ | ||||
| 1853 | ;ВЕКТОРА | ||||
| 1854 | 140504 | 005037 177776 | CLR @#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=0 | |
| 1855 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ С АДРЕСОМ | ||||
| 1856 | ;ВЕКТОРА 000324 | ||||
| 1857 | 140510 | 005062 000016 | CLR 16(2) | ;ЗАДАТЬ НАЧ. КООРДИН. ПО Х=0 | |
| 1858 | 140514 | 005062 000020 | CLR 20(2) | ;ЗАДАТЬ НАЧ. КООРДИН. ПО Y=0 | |
| 1859 | 140520 | 005037 020000 | CLR @#20000 | ;ЗАПИСАТЬ 0 В ПЕРВУЮ ЯЧЕЙКУ ПАМЯТИ ВИДЕОДАННЫХ | |
| 1860 | 140524 | 005037 025252 | CLR @#25252 | ||
| 1861 | 140530 | 012737 000001 025254 | MOV #1,@#25254 | ||
| 1862 | 140536 | 012762 000037 000024 | MOV #37,24(2) | ;ЗАДАТЬ ФУНКЦИЮ ЯРКОСТИ | |
| 1863 | 140544 | 012762 052525 000022 | MOV #52525,22(2) | ;И ДЛИНУ ВЕКТОРА | |
| 1864 | 140552 | 012746 012455 | MOV #12455,-(6) | ;УСТАНОВИТЬ ЗАДЕРЖКУ ДЛЯ ПОСТРОЕНИЯ ВЕКТОРА | |
| 1865 | 140556 | 005762 000004 | TST 4(2) | ;ПОСТРОЕНИЕ ВЕКТОРА ЗАКОНЧЕНО? | |
| 1866 | 140562 | 100405 | BMI 140576 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1867 | 140564 | 005316 | DEC @%6 | ;ПО ЗАВЕРШЕНИИ ПОСТРОЕНИЯ ВЕКТОРА | |
| 1868 | 140566 | 001373 | BNE 140556 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ | |
| 1869 | 140570 | 005726 | TST (6)+ | ||
| 1870 | 140572 | 000137 140760 | JMP @#140760 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ПОСТРОЕНИЕ ВЕКТОРА НЕ | |
| 1871 | 140576 | 005726 | TST (6)+ | ;ЗАКОНЧЕНО | |
| 1872 | 140600 | 023727 020000 000037 | CMP @#20000,#37 | ;ПЕРВАЯ ЯЧЕЙКА = 37? | |
| 1873 | 140606 | 001064 | BNE 140760 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 1874 | 140610 | 023727 025252 000037 | CMP @#25252,#37 | ;ПОСЛЕДНЯЯ ЯЧЕЙКА = 37? | |
| 1875 | 140616 | 001060 | BNE 140760 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 1876 | 140620 | 023727 025254 000001 | CMP @#25254,#1 | ;ДЛИНА ВЕКТОРА ФОРМИРУЕТСЯ ПРАВИЛЬНО? | |
| 1877 | 140626 | 001054 | BNE 140760 | ;ПЕРЕЙТИ, ЕСЛИ ДЛИНА ВЕКТОРА ПРЕВЫШАЕТ | |
| 1878 | ;УКАЗАННУЮ ДЛИНУ | ||||
| 1879 | 140630 | 005037 032524 | CLR @#32524 | ||
| 1880 | 140634 | 012737 000002 032526 | MOV #2,@#32526 | ;ЗАПИСАТЬ 2 В ЯЧЕЙКУ ПАМЯТИ ВИДЕОДАННЫХ | |
| 1881 | 140642 | 012762 001777 000024 | MOV #1777,24(2) | ;ЗАДАТЬ ФУНКЦИЮ ЯРКОСТИ | |
| 1882 | 140650 | 012762 125252 000022 | MOV #125252,22(2) | ;ЗАДАТЬ ДЛИНУ ВЕКТОРА | |
| 1883 | 140656 | 012746 012455 | MOV #12455,-(6) | ;ЗАДЕРЖКА ДЛЯ ПОСТРОЕНИЯ ВЕКТОРА | |
| 1884 | 140662 | 005762 000004 | TST 4(2) | ;ПОСТРОЕНИЕ ВЕКТОРА ЗАКОНЧЕНО? | |
| 1885 | 140666 | 100405 | BMI 140702 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1886 | 140670 | 005316 | DEC @%6 | ;ПО ЗАВЕРШЕНИИ ПОСТРОЕНИЯ ВЕКТОРА | |
| 1887 | 140672 | 001373 | BNE 140662 | ;ДОЛЖНО ПРОИЗОЙТИ ПРЕРЫВАНИЕ | |
| 1888 | 140674 | 005726 | TST (6)+ | ||
| 1889 | 140676 | 000137 140760 | JMP @#140760 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ПОСТРОЕНИЕ ВЕКТОРА НЕ | |
| 1890 | 140702 | 005726 | TST (6)+ | ;ЗАКОНЧЕНО | |
| 1891 | 140704 | 023727 020000 001777 | CMP @#20000,#1777 | ;ПЕРВАЯ ЯЧЕЙКА = 377? | |
| 1892 | 140712 | 001022 | BNE 140760 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 1893 | 140714 | 023727 032524 001777 | CMP @#32524,#1777 | ;ПОСЛЕДНЯЯ ЯЧЕЙКА = 377? | |
| 1894 | 140722 | 001016 | BNE 140760 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 1895 | 140724 | 023727 032526 000002 | CMP @#32526,#2 | ;ДЛИНА ВЕКТОРА ФОРМИРУЕТСЯ ПРАВИЛЬНО? | |
| 1896 | 140732 | 001012 | BNE 140760 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ДЛИНА ВЕКТОРА | |
| 1897 | ;ПРЕВЫШАЕТ УКАЗАННУЮ ДЛИНУ | ||||
| 1898 | 140734 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 1899 | 140742 | 005062 000004 | CLR 4(2) | ||
| 1900 | 140746 | 104003 | EMT+3 | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ ВИДЕОКОНТРОЛЛЕРА | |
| 1901 | ;ПО ЗАВЕРШЕНИИ ПОСТРОЕНИЯ ВЕКТОРА | ||||
| 1902 | 140750 | 005703 | TST %3 | ;ПРОИЗОШЛО 3 ПРЕРЫВАНИЯ? | |
| 1903 | 140752 | 001002 | BNE .+6 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 1904 | 140754 | 000241 | CLC | ;ПРИ ОТСУТСТВИИ ОШИБОК ОЧИСТИТЬ С-РАЗРЯД | |
| 1905 | 140756 | 000401 | BR .+4 | ||
| 1906 | 140760 | 000261 | SEC | ;ПРИ НАЛИЧИИ ОШИБОК УСТАНОВИТЬ С-РАЗРЯД | |
| 1907 | 140762 | 012601 | MOV (6)+,%1 | ||
| 1908 | 140764 | 000207 | RTS %7 | ||
| 1909 | |||||
| 1910 | ;ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000324 | ||||
| 1911 | |||||
| 1912 | 140766 | 005303 | DEC %3 | ;УМЕНЬШИТЬ СЧЕТЧИК ПРЕРЫВАНИЙ | |
| 1913 | 140770 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 1914 | |||||
| 1915 | |||||
| 1916 | ;*********************************************************** | ||||
| 1917 | ;ПОДПРОГРАММА ПРОВЕРКИ РЕЖИМОВ МОДИФИКАЦИИ ВИДЕОДАННЫХ | ||||
| 1918 | ;************************************************************ | ||||
| 1919 | |||||
| 1920 | ;ПРОВЕРИТЬ МОДИФИКАЦИЮ ВИДЕОДАННЫХ ПРИ | ||||
| 1921 | ;РС<09-08>=0 | ||||
| 1922 | ;РУД<02-00>=0,1,2,...,7 | ||||
| 1923 | |||||
| 1924 | 140772 | 042761 001400 000004 | BIC #1400,4(1) | ||
| 1925 | 141000 | 012737 063140 072452 | MOV #63140,@#72452 | ||
| 1926 | 141006 | 012761 000525 000016 | MOV #525,16(1) | ;ЗАДАТЬ КООРДИНАТУ ПО X | |
| 1927 | 141014 | 012761 000252 000020 | MOV #252,20(1) | ;ЗАДАТЬ КООРДИНАТУ ПО Y | |
| 1928 | 141022 | 012761 125252 000024 | MOV #125252,24(1) | ;ЗАДАТЬ ДЛИНУ ВЕКТОРА | |
| 1929 | 141030 | 046613 000004 | BIC 4(6),@%3 | ||
| 1930 | 141034 | 012702 142040 | MOV #142040,%2 | ;ВЫБРАТЬ АДРЕС ДАННЫХ | |
| 1931 | 141040 | 012761 000014 000022 | MOV #14,22(1) | ;И ФУНКЦИЮ ЯРКОСТИ | |
| 1932 | 141046 | 012746 012455 | MOV #12455,-(6) | ;ЗАДЕРЖКА ДЛЯ ПОСТРОЕНИЯ ВЕКТОРА | |
| 1933 | 141052 | 005761 000004 | TST 4(1) | ;ПОСТРОЕНИЕ ВЕКТОРА ЗАКОНЧЕНО? | |
| 1934 | 141056 | 100405 | BMI 141072 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1935 | 141060 | 005316 | DEC @%6 | ||
| 1936 | 141062 | 001373 | BNE 141052 | ||
| 1937 | 141064 | 005726 | TST (6)+ | ||
| 1938 | 141066 | 000137 142026 | JMP @#142026 | ||
| 1939 | 141072 | 005726 | TST (6)+ | ||
| 1940 | 141074 | 022237 072452 | CMP (2)+,@#72452 | ;ПЕРВ. ЯЧЕЙКА ЗАПОЛНЕНА ПРАВИЛЬНО? | |
| 1941 | 141100 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1942 | 141102 | 000137 142026 | JMP @#142026 | ||
| 1943 | 141106 | 020227 142060 | CMP %2,#142060 | ;КОНЕЦ ТАБЛИЦЫ ДАННЫХ? | |
| 1944 | 141112 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1945 | 141114 | 066613 000002 | ADD 2(6),@%3 | ;УВЕЛИЧИТЬ СОДЕРЖИМОЕ 174406 НА 1 | |
| 1946 | 141120 | 000747 | BR 141040 | ;ПЕРЕЙТИ НА НАЧАЛО ПРОВЕРКИ | |
| 1947 | |||||
| 1948 | ;ПРОВЕРИТЬ МОДИФИКАЦИЮ ВИДЕОДАННЫХ | ||||
| 1949 | ;ПРИ РС<09-08>=01 | ||||
| 1950 | ;РУД<02-00>=0,1,2,...,7 | ||||
| 1951 | |||||
| 1952 | 141122 | 062761 000400 000004 | ADD #400,4(1) | ||
| 1953 | 141130 | 012737 000001 020100 | MOV #1,@#20100 | ||
| 1954 | 141136 | 012737 000001 020300 | MOV #1,@#20300 | ||
| 1955 | 141144 | 005037 020500 | CLR @#20500 | ||
| 1956 | 141150 | 005037 020700 | CLR @#20700 | ||
| 1957 | 141154 | 012761 001000 000016 | MOV #1000,16(1) | ;ЗАДАТЬ КООДИНАТУ ПO X | |
| 1958 | 141162 | 005061 000020 | CLR 20(1) | ;И ПО Y | |
| 1959 | 141166 | 012761 052525 000024 | MOV #52525,24(1) | ;ЗАДАТЬ ДЛИНУ ВЕКТОРА | |
| 1960 | 141174 | 046613 000004 | BIC 4(6),@%3 | ||
| 1961 | 141200 | 012761 000004 000022 | MOV #4,22(1) | ;ЗАДАТЬ ФУНКЦИЮ ЯРКОСТИ | |
| 1962 | 141206 | 012746 012455 | MOV #12455,-(6) | ;ЗАДЕРЖКА ДЛЯ ПОСТРОЕНИЯ ВЕКТОРА | |
| 1963 | 141212 | 005761 000004 | TST 4(1) | ;ПОСТРОЕНИЕ ВЕКТОРА ЗАКОНЧЕНО? | |
| 1964 | 141216 | 100405 | BMI 141232 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1965 | 141220 | 005316 | DEC @%6 | ||
| 1966 | 141222 | 001373 | BNE 141212 | ||
| 1967 | 141224 | 005726 | TST (6)+ | ||
| 1968 | 141226 | 000137 142026 | JMP @#142026 | ;ПЕРЕЙТИ НА ОШИБКУ | |
| 1969 | 141232 | 005726 | TST (6)+ | ||
| 1970 | 141234 | 022237 020100 | CMP (2)+,@#20100 | ||
| 1971 | 141240 | 001402 | BEQ .+6 | ||
| 1972 | 141242 | 000137 142026 | JMP @#142026 | ||
| 1973 | 141246 | 022237 020300 | CMP (2)+,@#20300 | ||
| 1974 | 141252 | 001402 | BEQ .+6 | ||
| 1975 | 141254 | 000137 142026 | JMP @#142026 | ||
| 1976 | 141260 | 022237 020500 | CMP (2)+,@#20500 | ||
| 1977 | 141264 | 001402 | BEQ .+6 | ||
| 1978 | 141266 | 000137 142026 | JMP @#142026 | ||
| 1979 | 141272 | 022237 020700 | CMP (2)+,@#20700 | ||
| 1980 | 141276 | 001402 | BEQ .+6 | ||
| 1981 | 141300 | 000137 142026 | JMP @#142026 | ||
| 1982 | 141304 | 020227 142160 | CMP %2,#142160 | ;КОНЕЦ ТАБЛИЦЫ? | |
| 1983 | 141310 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 1984 | 141312 | 066613 000002 | ADD 2(6),@%3 | ;УВЕЛИЧИТЬ СОДЕРЖИМОЕ РУД НА 1 | |
| 1985 | 141316 | 000730 | BR 141200 | ;ПЕРЕЙТИ НА НАЧАЛО ПРОВЕРКИ | |
| 1986 | |||||
| 1987 | ;ПРОВЕРИТЬ МОДИФИКАЦИЮ ВИДЕОДАННЫХ ПРИ | ||||
| 1988 | ;РС<09-08>=10 | ||||
| 1989 | ;РУД<02-00>=0,1,2,3 | ||||
| 1990 | |||||
| 1991 | 141320 | 062761 000400 000004 | ADD #400,4(1) | ||
| 1992 | 141326 | 005037 020000 | CLR @#20000 | ||
| 1993 | 141332 | 005037 020176 | CLR @#20176 | ||
| 1994 | 141336 | 005061 000016 | CLR 16(1) | ||
| 1995 | 141342 | 005061 000024 | CLR 24(1) | ||
| 1996 | 141346 | 046613 000004 | BIC 4(6),@%3 | ||
| 1997 | 141352 | 012761 000100 000022 | MOV #100,22(1) | ||
| 1998 | 141360 | 012746 012455 | MOV #12455,-(6) | ||
| 1999 | 141364 | 005761 000004 | TST 4(1) | ||
| 2000 | 141370 | 100405 | BMI 141404 | ||
| 2001 | 141372 | 005316 | DEC @%6 | ||
| 2002 | 141374 | 001373 | BNE 141364 | ||
| 2003 | 141376 | 005726 | TST (6)+ | ||
| 2004 | 141400 | 000137 142026 | JMP @#142026 | ||
| 2005 | 141404 | 005726 | TST (6)+ | ||
| 2006 | 141406 | 022237 020000 | CMP (2)+,@#20000 | ||
| 2007 | 141412 | 001402 | BEQ .+6 | ||
| 2008 | 141414 | 000137 142026 | JMP @#142026 | ||
| 2009 | 141420 | 022237 020176 | CMP (2)+,@#20176 | ||
| 2010 | 141424 | 001402 | BEQ .+6 | ||
| 2011 | 141426 | 000137 142026 | JMP @#142026 | ||
| 2012 | 141432 | 066613 000002 | ADD 2(6),@%3 | ||
| 2013 | 141436 | 020227 142200 | CMP %2,#142200 | ||
| 2014 | 141442 | 001343 | BNE 141352 | ||
| 2015 | |||||
| 2016 | ;ПРОВЕРИТЬ МОДИФИКАЦИЮ ВИДЕОДАННЫХ ПРИ | ||||
| 2017 | ;РС<09-08>=10 | ||||
| 2018 | ;РУД<02-00>=5,6,7 | ||||
| 2019 | |||||
| 2020 | 141444 | 066613 000002 | ADD 2(6),@%3 | ||
| 2021 | 141450 | 005037 020000 | CLR @#20000 | ||
| 2022 | 141454 | 005037 020174 | CLR @#20174 | ||
| 2023 | 141460 | 012737 100001 020176 | MOV #100001,@#20176 | ||
| 2024 | 141466 | 012761 000001 000024 | MOV #1,24(1) | ||
| 2025 | 141474 | 012761 000100 000022 | MOV #100,22(1) | ||
| 2026 | 141502 | 012746 012455 | MOV #12455,-(6) | ||
| 2027 | 141506 | 005761 000004 | TST 4(1) | ||
| 2028 | 141512 | 100405 | BMI 141526 | ||
| 2029 | 141514 | 005316 | DEC @%6 | ||
| 2030 | 141516 | 001373 | BNE 141506 | ||
| 2031 | 141520 | 005726 | TST (6)+ | ||
| 2032 | 141522 | 000137 142026 | JMP @#142026 | ||
| 2033 | 141526 | 005726 | TST (6)+ | ||
| 2034 | 141530 | 022237 020000 | CMP (2)+,@#20000 | ||
| 2035 | 141534 | 001134 | BNE 142026 | ||
| 2036 | 141536 | 022237 020176 | CMP (2)+,@#20176 | ||
| 2037 | 141542 | 001131 | BNE 142026 | ||
| 2038 | 141544 | 020227 142214 | CMP %2,#142214 | ||
| 2039 | 141550 | 001403 | BEQ .+10 | ||
| 2040 | 141552 | 066613 000002 | ADD 2(6),@%3 | ||
| 2041 | 141556 | 000746 | BR 141474 | ||
| 2042 | |||||
| 2043 | ;ПРОВЕРИТЬ МОДИФИКАЦИЮ ВИДЕОДАННЫХ ПРИ | ||||
| 2044 | ;РС<09-08>=11 | ||||
| 2045 | ;РУД<02-00>=0,1,2,3 | ||||
| 2046 | |||||
| 2047 | 141560 | 062761 000400 000004 | ADD #400,4(1) | ||
| 2048 | 141566 | 012737 177777 020000 | MOV #-1,@#20000 | ||
| 2049 | 141574 | 012737 177777 020176 | MOV #-1,@#20176 | ||
| 2050 | 141602 | 012761 001777 000016 | MOV #1777,16(1) | ||
| 2051 | 141610 | 012761 000001 000024 | MOV #1,24(1) | ||
| 2052 | 141616 | 046613 000004 | BIC 4(6),@%3 | ||
| 2053 | 141622 | 012761 000100 000022 | MOV #100,22(1) | ||
| 2054 | 141630 | 012746 012455 | MOV #12455,-(6) | ||
| 2055 | 141634 | 005761 000004 | TST 4(1) | ||
| 2056 | 141640 | 100405 | BMI 141654 | ||
| 2057 | 141642 | 005316 | DEC @%6 | ||
| 2058 | 141644 | 001373 | BNE 141634 | ||
| 2059 | 141646 | 005726 | TST (6)+ | ||
| 2060 | 141650 | 000137 142026 | JMP @#142026 | ||
| 2061 | 141654 | 005726 | TST (6)+ | ||
| 2062 | 141656 | 022237 020000 | CMP (2)+,@#20000 | ||
| 2063 | 141662 | 001061 | BNE 142026 | ||
| 2064 | 141664 | 022237 020176 | CMP (2)+,@#20176 | ||
| 2065 | 141670 | 001056 | BNE 142026 | ||
| 2066 | 141672 | 066613 000002 | ADD 2(6),@%3 | ||
| 2067 | 141676 | 020227 142234 | CMP %2,#142234 | ||
| 2068 | 141702 | 001347 | BNE 141622 | ||
| 2069 | |||||
| 2070 | ;ПРОВЕРИТЬ МОДИФИКАЦИЮ ВИДЕОДАННЫХ ПРИ | ||||
| 2071 | ;РС<09-08>=11 | ||||
| 2072 | ;РУД<02-00>=5,6,7 | ||||
| 2073 | |||||
| 2074 | 141704 | 066613 000002 | ADD 2(6),@%3 | ||
| 2075 | 141710 | 012737 077776 020000 | MOV #77776,@#20000 | ||
| 2076 | 141716 | 012737 177777 020002 | MOV #-1,@#20002 | ||
| 2077 | 141724 | 012737 177777 020176 | MOV #-1,@#20176 | ||
| 2078 | 141732 | 005061 000024 | CLR 24(1) | ||
| 2079 | 141736 | 012761 000100 000022 | MOV #100,22(1) | ||
| 2080 | 141744 | 012746 012455 | MOV #12455,-(6) | ||
| 2081 | 141750 | 005761 000004 | TST 4(1) | ||
| 2082 | 141754 | 100405 | BMI 141770 | ||
| 2083 | 141756 | 005316 | DEC @%6 | ||
| 2084 | 141760 | 001373 | BNE 141750 | ||
| 2085 | 141762 | 005726 | TST (6)+ | ||
| 2086 | 141764 | 000137 142026 | JMP @#142026 | ||
| 2087 | 141770 | 005726 | TST (6)+ | ||
| 2088 | 141772 | 022237 020000 | CMP (2)+,@#20000 | ||
| 2089 | 141776 | 001013 | BNE 142026 | ||
| 2090 | 142000 | 022237 020176 | CMP (2)+,@#20176 | ||
| 2091 | 142004 | 001010 | BNE 142026 | ||
| 2092 | 142006 | 020227 142250 | CMP %2,#142250 | ||
| 2093 | 142012 | 001403 | BEQ .+10 | ||
| 2094 | 142014 | 066613 000002 | ADD 2(6),@%3 | ||
| 2095 | 142020 | 000746 | BR 141736 | ||
| 2096 | 142022 | 000241 | CLC | ;ОЧИСТИТЬ С-РАЗРЯД ПРИ ОТСУТСТВИИ ОШИБОК | |
| 2097 | 142024 | 000401 | BR .+4 | ||
| 2098 | 142026 | 000261 | SEC | ;УСТАНОВИТЬ С-РАЗРЯД ПРИ НАЛИЧИИ ОШИБОК | |
| 2099 | 142030 | 011666 000004 | MOV @%6,4(6) | ||
| 2100 | 142034 | 012626 | MOV (6)+,(6)+ | ||
| 2101 | 142036 | 000207 | RTS %7 | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 2102 | |||||
| 2103 | ;ТАБЛИЦА ДАННЫХ | ||||
| 2104 | 142040 | 063140 | 063140 | ||
| 2105 | 142042 | 031440 | 031440 | ||
| 2106 | 142044 | 052500 | 052500 | ||
| 2107 | 142046 | 125240 | 125240 | ||
| 2108 | 142050 | 177740 | 177740 | ||
| 2109 | 142052 | 125240 | 125240 | ||
| 2110 | 142054 | 000000 | 000000 | ||
| 2111 | 142056 | 177740 | 177740 | ||
| 2112 | |||||
| 2113 | 142060 | 000001 | 000001 | ||
| 2114 | 142062 | 000001 | 000001 | ||
| 2115 | 142064 | 000000 | 000000 | ||
| 2116 | 142066 | 000000 | 000000 | ||
| 2117 | |||||
| 2118 | 142070 | 000000 | 000000 | ||
| 2119 | 142072 | 000001 | 000001 | ||
| 2120 | 142074 | 000001 | 000001 | ||
| 2121 | 142076 | 000000 | 000000 | ||
| 2122 | |||||
| 2123 | 142100 | 000001 | 000001 | ||
| 2124 | 142102 | 000000 | 000000 | ||
| 2125 | 142104 | 000001 | 000001 | ||
| 2126 | 142106 | 000000 | 000000 | ||
| 2127 | |||||
| 2128 | 142110 | 000000 | 000000 | ||
| 2129 | 142112 | 000001 | 000001 | ||
| 2130 | 142114 | 000000 | 000000 | ||
| 2131 | 142116 | 000001 | 000001 | ||
| 2132 | |||||
| 2133 | 142120 | 000001 | 000001 | ||
| 2134 | 142122 | 000001 | 000001 | ||
| 2135 | 142124 | 000001 | 000001 | ||
| 2136 | 142126 | 000001 | 000001 | ||
| 2137 | |||||
| 2138 | 142130 | 000000 | 000000 | ||
| 2139 | 142132 | 000001 | 000001 | ||
| 2140 | 142134 | 000000 | 000000 | ||
| 2141 | 142136 | 000001 | 000001 | ||
| 2142 | |||||
| 2143 | 142140 | 000000 | 000000 | ||
| 2144 | 142142 | 000000 | 000000 | ||
| 2145 | 142144 | 000000 | 000000 | ||
| 2146 | 142146 | 000000 | 000000 | ||
| 2147 | |||||
| 2148 | 142150 | 000001 | 000001 | ||
| 2149 | 142152 | 000001 | 000001 | ||
| 2150 | 142154 | 000001 | 000001 | ||
| 2151 | 142156 | 000001 | 000001 | ||
| 2152 | |||||
| 2153 | 142160 | 000000 | 000000 | ||
| 2154 | 142162 | 000000 | 000000 | ||
| 2155 | 142164 | 177777 | 177777 | ||
| 2156 | 142166 | 177777 | 177777 | ||
| 2157 | 142170 | 000000 | 000000 | ||
| 2158 | 142172 | 000000 | 000000 | ||
| 2159 | 142174 | 177777 | 177777 | ||
| 2160 | 142176 | 177777 | 177777 | ||
| 2161 | |||||
| 2162 | 142200 | 000001 | 000001 | ||
| 2163 | 142202 | 000002 | 000002 | ||
| 2164 | 142204 | 000007 | 000007 | ||
| 2165 | 142206 | 000010 | 000010 | ||
| 2166 | 142210 | 000177 | 000177 | ||
| 2167 | 142212 | 000200 | 000200 | ||
| 2168 | |||||
| 2169 | 142214 | 177777 | 177777 | ||
| 2170 | 142216 | 177777 | 177777 | ||
| 2171 | 142220 | 000000 | 000000 | ||
| 2172 | 142222 | 000000 | 000000 | ||
| 2173 | 142224 | 177777 | 177777 | ||
| 2174 | 142226 | 177777 | 177777 | ||
| 2175 | 142230 | 000000 | 000000 | ||
| 2176 | 142232 | 000000 | 000000 | ||
| 2177 | |||||
| 2178 | 142234 | 137777 | 137777 | ||
| 2179 | 142236 | 077777 | 077777 | ||
| 2180 | 142240 | 167777 | 167777 | ||
| 2181 | 142242 | 017777 | 017777 | ||
| 2182 | 142244 | 177377 | 177377 | ||
| 2183 | 142246 | 000377 | 000377 | ||
| 2184 | |||||
| 2185 | 142250 | .=142250 | |||
| 2186 | |||||
| 2187 | ;*********************************************************************** | ||||
| 2188 | ; | ||||
| 2189 | ;ПОДПРОГРАММА ПРОВЕРКИ СМЕЩЕНИЯ АДРЕСОВ ПАМЯТИ ОТНОСИТЕЛЬНО КАДРОВЫХ | ||||
| 2190 | ;СИНХРОИМПУЛЬСОВ | ||||
| 2191 | ; | ||||
| 2192 | ;*********************************************************************** | ||||
| 2193 | |||||
| 2194 | 142250 | 012702 020000 | MOV #20000,%2 | ;ВЫБРАТЬ ВИРТУАЛЬНЫЙ АДРЕС ПАМЯТИ | |
| 2195 | ;ВИДЕОКОНТРОЛЛЕРА | ||||
| 2196 | 142254 | 005012 | CLR @%2 | ;ЗАПОЛНИТЬ ЯЧЕЙКИ ПАМЯТИ ВИДЕОКОНТРОЛЛЕРА | |
| 2197 | 142256 | 005062 000176 | CLR 176(2) | ||
| 2198 | 142262 | 012762 000001 012600 | MOV #1,12600(2) | ||
| 2199 | 142270 | 012762 000002 012776 | MOV #2,12776(2) | ||
| 2200 | 142276 | 012762 000003 025200 | MOV #3,25200(2) | ||
| 2201 | 142304 | 012762 000004 025376 | MOV #4,25376(2) | ||
| 2202 | 142312 | 062761 000125 000014 | ADD #125,14(1) | ;ЗАДАТЬ ВЕЛИЧИНУ СДВИГА | |
| 2203 | 142320 | 012746 012455 | MOV #12455,-(6) | ;ПРОИЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ЗАВЕРШЕНИЯ СМЕЩЕНИЯ | |
| 2204 | 142324 | 005761 000004 | TST 4(1) | ;АДРЕСОВ ПАМЯТИ ОТНОСИТЕЛЬНО КАДРОВЫХ | |
| 2205 | 142330 | 100405 | BMI 142344 | ;СИНХРОИМПУЛЬСОВ | |
| 2206 | 142332 | 005316 | DEC @%6 | ||
| 2207 | 142334 | 001373 | BNE 142324 | ||
| 2208 | 142336 | 005726 | TST (6)+ | ||
| 2209 | 142340 | 000137 142442 | JMP @#142442 | ||
| 2210 | 142344 | 005726 | TST (6)+ | ||
| 2211 | ;ПРОВЕРИТЬ ЯЧЕЙКИ ПАМЯТИ ПОСЛЕ СМЕЩЕНИЯ | ||||
| 2212 | 142346 | 022712 000003 | CMP #3,@%2 | ||
| 2213 | 142352 | 001033 | BNE 142442 | ||
| 2214 | 142354 | 022762 000004 000176 | CMP #4,176(2) | ||
| 2215 | 142362 | 001027 | BNE 142442 | ||
| 2216 | 142364 | 162761 000052 000014 | SUB #52,14(1) | ;ЗАДАТЬ ВЕЛИЧИНУ СДВИГА | |
| 2217 | 142372 | 012746 012455 | MOV #12455,-(6) | ;ПРОИЗВЕСТИ ЗАДЕРЖКУ ДЛЯ ЗАВЕРШЕНИЯ СМЕЩЕНИЯ | |
| 2218 | 142376 | 005761 000004 | TST 4(1) | ;АДРЕСОВ ПАМЯТИ ОТНОСИТЕЛЬНО КАДРОВЫХ | |
| 2219 | 142402 | 100405 | BMI 142416 | ;СИНХРОИМПУЛЬСОВ | |
| 2220 | 142404 | 005316 | DEC @%6 | ||
| 2221 | 142406 | 001373 | BNE 142376 | ||
| 2222 | 142410 | 005726 | TST (6)+ | ||
| 2223 | 142412 | 000137 142442 | JMP @#142442 | ||
| 2224 | 142416 | 005726 | TST (6)+ | ||
| 2225 | ;ПРОВЕРИТЬ ЯЧЕЙКИ ПАМЯТИ ПОСЛЕ СМЕЩЕНИЯ | ||||
| 2226 | 142420 | 022712 000001 | CMP #1,@%2 | ||
| 2227 | 142424 | 001006 | BNE 142442 | ||
| 2228 | 142426 | 022762 000002 000176 | CMP #2,176(2) | ||
| 2229 | 142434 | 001002 | BNE .+6 | ||
| 2230 | 142436 | 000241 | CLC | ;ОЧИСТИТЬ С-РАЗРЯД, ПРИ ОТСУТСТВИИ ОШИБОК | |
| 2231 | 142440 | 000401 | BR .+4 | ||
| 2232 | 142442 | 000261 | SEC | ;УСТАНОВИТЬ С-РАЗРЯД, ПРИ НАЛИЧИИ ОШИБОК | |
| 2233 | 142444 | 000207 | RTS %7 | ||
| 2234 | 142446 | .=142446 | |||
| 2235 | |||||
| 2236 | ;*********************************************************************** | ||||
| 2237 | ; | ||||
| 2238 | ;ПОДПРОГРАММА АНАЛИЗА РЕЗУЛЬТАТОВ ПРОВЕРКИ МОДУЛЕЙ ВК | ||||
| 2239 | ;ПРИ ОТСУТСТВИИ ОШИБОК ВЫВОДИТСЯ " Э Л Е К Т Р О Н И К А " | ||||
| 2240 | ;ПРИ НАЛИЧИИ ОШИБОК ВЫВОДИТСЯ ИЗОБРАЖЕНИЕ СИСТЕМНОГО БЛОКА С | ||||
| 2241 | ;ЗАШТРИХОВКОЙ НЕИСПРАВНОГО ЭЛЕМЕНТА, КОД ОШИБКИ И ВКЛЮЧАЕТСЯ СВЕТОВАЯ | ||||
| 2242 | ;ИНДИКАЦИЯ ОБ ОШИБКЕ | ||||
| 2243 | ; | ||||
| 2244 | ;*********************************************************************** | ||||
| 2245 | |||||
| 2246 | 142446 | 004737 155014 | JSR PC,@#155014 | ;СФОРМИРОВАТЬ В ЯЧЕЙКАХ 002000-002004, 002010 | |
| 2247 | ;АДРЕСА ПОДПРОГРАММ ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ | ||||
| 2248 | ;НА ЭКРАНЕ МОНИТОРА | ||||
| 2249 | |||||
| 2250 | ;АНАЛИЗ РЕЗУЛЬТАТОВ ПРОВЕРКИ УСТРОЙСТВ СИСТЕМНОГО МОДУЛЯ | ||||
| 2251 | |||||
| 2252 | 142452 | 012702 117712 | MOV #117712,R2 | ;ВЫБРАТЬ ВИРТУАЛЬНЫЙ АДРЕС ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК | |
| 2253 | 142456 | 012703 000015 | MOV #15,R3 | ;УСТАНОВИТЬ СЧЕТЧИК УСТРОЙСТВ | |
| 2254 | 142462 | 005037 137556 | CLR @#137556 | ;ОЧИСТИТЬ ПРИЗНАК ОШИБКИ | |
| 2255 | 142466 | 105712 | TSTB @R2 | ;УСТРОЙСТВО ИСПРАВНО? | |
| 2256 | 142470 | 001410 | BEQ 142512 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 2257 | 142472 | 022712 177777 | CMP #-1,@R2 | ;ЕСТЬ УСТРОЙСТВО? | |
| 2258 | 142476 | 001405 | BEQ 142512 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2259 | 142500 | 005046 | CLR -(SP) | ;ВЫБРАТЬ КОД СИСТЕМНОГО МОДУЛЯ, РАВНЫЙ 0 | |
| 2260 | 142502 | 004737 142766 | JSR PC,@#142766 | ;ВЫВЕСТИ ИЗОБРАЖЕНИЕ СИСТЕМНОГО БЛОКА И | |
| 2261 | ;КЛАВИАТУРЫ С ЗАШТРИХОВКОЙ СИСТЕМНОГО МОДУЛЯ, | ||||
| 2262 | ;ВЫВЕСТИ ИДЕНТИФИКАЦИОННЫЙ КОД НЕИСПРАВНОГО | ||||
| 2263 | ;УСТРОЙСТВА И НОМЕР ОШИБКИ, ВКЛЮЧИТЬ ВСЕ | ||||
| 2264 | ;4 СВЕТОВЫХ ИНДИКАТОРА | ||||
| 2265 | 142506 | 005726 | TST (SP)+ | ;ВОССТАНОВИТЬ УС | |
| 2266 | 142510 | 000403 | BR .+10 | ;ПЕРЕЙТИ К АНАЛИЗУ ПРОВЕРКИ МОДУЛЕЙ СИСТЕМНОЙ | |
| 2267 | ;МАГИСТРАЛИ | ||||
| 2268 | 142512 | 162702 000004 | SUB #4,R2 | ;ПЕРЕЙТИ К СЛЕДУЮЩЕМУ УСТРОЙСТВУ СИСТЕМНОГО | |
| 2269 | ;МОДУЛЯ | ||||
| 2270 | 142516 | 077315 | SOB R3,142466 | ||
| 2271 | |||||
| 2272 | ;АНАЛИЗ ПРОВЕРКИ МОДУЛЕЙ СИСТЕМНОЙ МАГИСТРАЛИ | ||||
| 2273 | |||||
| 2274 | 142520 | 012702 117756 | MOV #117756,R2 | ;ВЫБРАТЬ ВИРТУАЛЬНЫЙ АДРЕС ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК | |
| 2275 | 142524 | 012703 000011 | MOV #11,R3 | ||
| 2276 | 142530 | 026227 000002 177776 | CMP 2(R2),#177776 | ;ПОЗИЦИЯ ИСПРАВНА? | |
| 2277 | 142536 | 001405 | BEQ 142552 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2278 | 142540 | 105712 | TSTB @R2 | ;МОДУЛЬ ИСПРАВЕН? | |
| 2279 | 142542 | 001412 | BEQ 142570 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 2280 | 142544 | 022712 177777 | CMP #-1,@R2 | ;МОДУЛЬ УСТАНОВЛЕН? | |
| 2281 | 142550 | 001407 | BEQ 142570 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2282 | 142552 | 012704 000012 | MOV #12,R4 | ||
| 2283 | 142556 | 160304 | SUB R3,R4 | ||
| 2284 | 142560 | 010446 | MOV R4,-(SP) | ||
| 2285 | 142562 | 004737 142766 | JSR PC,@#142766 | ;ВЫВЕСТИ ИЗОБРАЖЕНИЕ СИСТЕМНОГО БЛОКА И | |
| 2286 | ;КЛАВИАТУРЫ С ЗАШТРИХОВКОЙ НЕИСПРАВНОГО | ||||
| 2287 | ;ЭЛЕМЕНТА, НОМЕР ПОЗИЦИИ , НОМЕР ОШИБКИ И | ||||
| 2288 | ;ИДЕНТИФИКАЦИОННЫЙ КОД НЕИСПРАВНОГО МОДУЛЯ. | ||||
| 2289 | ;ВКЛЮЧИТЬ СВЕТОВУЮ ИНДИКАЦИЮ ОБ ОШИБКЕ | ||||
| 2290 | 142566 | 005726 | TST (SP)+ | ||
| 2291 | 142570 | 162702 000004 | SUB #4,R2 | ;ПЕРЕЙТИ К СЛЕДУЮЩЕМУ МОДУЛЮ | |
| 2292 | 142574 | 077323 | SOB R3,142530 | ||
| 2293 | 142576 | 005737 137556 | TST @#137556 | ;БЫЛИ ОШИБКИ? | |
| 2294 | 142602 | 001070 | BNE 142764 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2295 | |||||
| 2296 | ;ПРОИЗВЕСТИ РАСПАКОВКУ СООБЩЕНИЯ " Э Л Е К Т Р О Н И К А " | ||||
| 2297 | 142604 | 012702 145020 | MOV #145020,R2 | ;ВЫБРАТЬ АДРЕС ТАБЛИЦЫ КОДИРОВКИ ИЗОБРАЖЕНИЯ | |
| 2298 | ;" Э Л Е К Т Р О Н И К А " | ||||
| 2299 | 142610 | 012746 177777 | MOV #-1,-(SP) | ||
| 2300 | 142614 | 012703 060000 | MOV #60000,R3 | ||
| 2301 | 142620 | 105712 | TSTB @R2 | ||
| 2302 | 142622 | 001443 | BEQ 142732 | ||
| 2303 | 142624 | 100022 | BPL 142672 | ||
| 2304 | 142626 | 005202 | INC R2 | ||
| 2305 | 142630 | 012723 100312 | MOV #100312,(R3)+ | ||
| 2306 | 142634 | 016363 177776 000002 | MOV 177776(R3),2(R3) | ||
| 2307 | 142642 | 042763 100000 000002 | BIC #100000,2(R3) | ||
| 2308 | 142650 | 016363 177776 000006 | MOV 177776(R3),6(R3) | ||
| 2309 | 142656 | 005216 | INC @SP | ||
| 2310 | 142660 | 011623 | MOV @SP,(R3)+ | ||
| 2311 | 142662 | 112204 | MOVB (R2)+,R4 | ||
| 2312 | 142664 | 060423 | ADD R4,(R3)+ | ||
| 2313 | 142666 | 011623 | MOV @SP,(R3)+ | ||
| 2314 | 142670 | 000753 | BR 142620 | ||
| 2315 | 142672 | 112204 | MOVB (R2)+,R4 | ||
| 2316 | 142674 | 060423 | ADD R4,(R3)+ | ||
| 2317 | 142676 | 016363 177776 000002 | MOV 177776(R3),2(R3) | ||
| 2318 | 142704 | 042763 100000 000002 | BIC #100000,2(R3) | ||
| 2319 | 142712 | 016363 177776 000006 | MOV 177776(R3),6(R3) | ||
| 2320 | 142720 | 011623 | MOV @SP,(R3)+ | ||
| 2321 | 142722 | 112204 | MOVB (R2)+,R4 | ||
| 2322 | 142724 | 060423 | ADD R4,(R3)+ | ||
| 2323 | 142726 | 011623 | MOV @SP,(R3)+ | ||
| 2324 | 142730 | 000733 | BR 142620 | ||
| 2325 | 142732 | 005013 | CLR @R3 | ||
| 2326 | 142734 | 005726 | TST (SP)+ | ||
| 2327 | 142736 | 012746 060000 | MOV #60000,-(SP) | ||
| 2328 | 142742 | 010337 001022 | MOV R3,@#1022 | ||
| 2329 | 142746 | 012703 177777 | MOV #-1,R3 | ;ВЫБРАТЬ ФУНКЦИЮ ЯРКОСТИ | |
| 2330 | 142752 | 004777 037022 | JSR PC,@2000 | ;ВЫВЕСТИ СООБЩЕНИЕ " Э Л Е К Т Р О Н И К А " | |
| 2331 | 142756 | 013703 001022 | MOV @#1022,R3 | ||
| 2332 | 142762 | 005726 | TST (SP)+ | ||
| 2333 | 142764 | 000207 | RTS PC | ||
| 2334 | |||||
| 2335 | |||||
| 2336 | ;*********************************************************************** | ||||
| 2337 | ; | ||||
| 2338 | ;ПОДПРОГРАММА ВЫВОДА ИЗОБРАЖЕНИЯ СИСТЕМНОГО БЛОКА И КЛАВИАТУРЫ | ||||
| 2339 | ;С ЗАШТРИХОВКОЙ НЕИСПРАВНОГО ЭЛЕМЕНТА И КОДОМ ОШИБКИ | ||||
| 2340 | ;В 4(SP) - НОМЕР ПОЗИЦИИ, В @R2 - НОМЕР ОШИБКИ, В 2(R2) - ИДЕНТИФИКАЦ. | ||||
| 2341 | ;КОД УСТРОЙСТВА | ||||
| 2342 | ; | ||||
| 2343 | ;*********************************************************************** | ||||
| 2344 | |||||
| 2345 | 142766 | 005737 137556 | TST @#137556 | ;ПЕРВАЯ ОШИБКА? | |
| 2346 | 142772 | 001105 | BNE 143206 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2347 | 142774 | 012746 144232 | MOV #144232,-(SP) | ;ВЫБРАТЬ АДРЕС ТАБЛИЦЫ КООРДИНАТ ДЛЯ ПРОРИСОВКИ | |
| 2348 | ;ИЗОБРАЖЕНИЯ СИСТЕМНОГО БЛОКА И КЛАВИАТУРЫ | ||||
| 2349 | 143000 | 010337 001022 | MOV R3,@#1022 | ||
| 2350 | 143004 | 012703 177777 | MOV #-1,R3 | ||
| 2351 | 143010 | 004777 036764 | JSR PC,@2000 | ;ВЫВЕСТИ НА ЭКРАН МОНИТОРА ИЗОБРАЖЕНИЕ | |
| 2352 | ;СИТЕМНОГО БЛОКА И КЛАВИАТУРЫ | ||||
| 2353 | 143014 | 013703 001022 | MOV @#1022,R3 | ||
| 2354 | 143020 | 016605 000004 | MOV 4(SP),R5 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ | |
| 2355 | 143024 | 005705 | TST R5 | ;НЕИСПРАВНО УСТРОЙСТВО СИСТЕМНОГО МОДУЛЯ? | |
| 2356 | 143026 | 001401 | BEQ .+4 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 2357 | 143030 | 005105 | COM R5 | ||
| 2358 | 143032 | 010537 173704 | MOV R5,@#173704 | ;ВКЛЮЧИТЬ СВЕТОВУЮ ИНДИКАЦИЮ ОБ ОШИБКЕ | |
| 2359 | 143036 | 012705 002172 | MOV #2172,R5 | ||
| 2360 | 143042 | 016616 000004 | MOV 4(SP),@SP | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ | |
| 2361 | 143046 | 012746 000002 | MOV #2,-(SP) | ;УСТАНОВИТЬ СЧЕТЧИК ЦИФР | |
| 2362 | 143052 | 012746 177777 | MOV #-1,-(SP) | ||
| 2363 | 143056 | 004737 143244 | JSR PC,@#143244 | ;ПРОИЗВЕСТИ РАСПАКОВКУ ЧИСЛА (НОМЕРА ПОЗИЦИИ) | |
| 2364 | |||||
| 2365 | 143062 | 111266 000004 | MOVB @R2,4(SP) | ;ВЫБРАТЬ НОМЕР ОШИБКИ | |
| 2366 | 143066 | 012766 000004 000002 | MOV #4,2(SP) | ;УСТАНОВИТЬ СЧЕТЧИК ЦИФР | |
| 2367 | 143074 | 005016 | CLR @SP | ||
| 2368 | 143076 | 004737 143244 | JSR PC,@#143244 | ;ПРОИЗВЕСТИ РАСПАКОВКУ ЧИСЛА (НОМЕРА ОШИБКИ) | |
| 2369 | 143102 | 012766 002172 000004 | MOV #2172,4(SP) | ||
| 2370 | 143110 | 012766 001551 000002 | MOV #1551,2(SP) | ;УСТАНОВИТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО X | |
| 2371 | 143116 | 012716 000151 | MOV #151,@SP | ;УСТАНОВИТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО Y | |
| 2372 | 143122 | 004777 036656 | JSR PC,@2004 | ;ВЫВЕСТИ ПЕРВУЮ СТРОКУ ЦИФР | |
| 2373 | 143126 | 012705 002172 | MOV #2172,R5 | ||
| 2374 | 143132 | 016266 000002 000004 | MOV 2(R2),4(SP) | ;ВЫБРАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД УСТРОЙСТВА | |
| 2375 | 143140 | 012766 000006 000002 | MOV #6,2(SP) | ;УСТАНОВИТЬ СЧЕТЧИК ЦИФР | |
| 2376 | 143146 | 012716 177777 | MOV #-1,@SP | ||
| 2377 | 143152 | 004737 143244 | JSR PC,@#143244 | ;ПРОИЗВЕСТИ РАСПАКОВКУ ЧИСЛА | |
| 2378 | 143156 | 012766 002172 000004 | MOV #2172,4(SP) | ||
| 2379 | 143164 | 012766 001551 000002 | MOV #1551,2(SP) | ;УСТАНОВИТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО X | |
| 2380 | 143172 | 012716 000202 | MOV #202,@SP | ;УСТАНОВИТЬ НАЧАЛЬНУЮ КООРДТНАТУ ПО Y | |
| 2381 | 143176 | 004777 036602 | JSR PC,@2004 | ;ВЫВЕСТИ ВТОРУЮ СТРОКУ ЦИФР | |
| 2382 | 143202 | 062706 000006 | ADD #6,SP | ||
| 2383 | 143206 | 016605 000002 | MOV 2(SP),R5 | ||
| 2384 | 143212 | 072527 000002 | ASH #2,R5 | ||
| 2385 | 143216 | 016546 143350 | MOV 143350(R5),-(SP) | ;ВЫБРАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО X ДЛЯ | |
| 2386 | ;ЗАШТРИХОВКИ НЕИСПРАВНОГО ЭЛЕМЕНТА | ||||
| 2387 | 143222 | 016546 143352 | MOV 143352(R5),-(SP) | ;ВЫБРАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО Y | |
| 2388 | ;ДЛЯ ЗАШТРИХОВКИ НЕИСПРАВНОГО ЭЛЕМЕНТА | ||||
| 2389 | 143226 | 004777 036550 | JSR PC,@2002 | ;ПРОИЗВЕСТИ ЗАШТРИХОВКУ НЕИСПРАВНОГО ЭЛЕМЕНТА | |
| 2390 | 143232 | 022626 | CMP (SP)+,(SP)+ | ||
| 2391 | 143234 | 052737 177777 137556 | BIS #-1,@#137556 | ;УСТАНОВИТЬ ПРИЗНАК ОШИБКИ | |
| 2392 | 143242 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 2393 | |||||
| 2394 | ;*********************************************************************** | ||||
| 2395 | ; | ||||
| 2396 | ;ПОДПРОГРАММА РАСПАКОВКИ ЧИСЛА В СТРОКУ ЦИФР. | ||||
| 2397 | ;ЧИСЛО - В 12(SP), СЧЕТЧИК ЦИФР ЧИСЛА - В 10(SP). | ||||
| 2398 | ;ПРИ 6(SP), ОТЛИЧНОМ ОТ 0, УСТАНАВЛИВАЕТСЯ ПРИЗНАК ФОРМИРОВАНИЯ | ||||
| 2399 | ;НЕГАТИВНОГО ИЗОБРАЖЕНИЯ | ||||
| 2400 | ; | ||||
| 2401 | ;*********************************************************************** | ||||
| 2402 | |||||
| 2403 | 143244 | 010446 | MOV R4,-(SP) | ||
| 2404 | 143246 | 010346 | MOV R3,-(SP) | ||
| 2405 | 143250 | 016604 000010 | MOV 10(SP),R4 | ;ВЫБРАТЬ СЧЕТЧИК ЦИФР ЧИСЛА | |
| 2406 | 143254 | 005304 | DEC R4 | ||
| 2407 | 143256 | 006304 | ASL R4 | ||
| 2408 | 143260 | 005003 | CLR R3 | ||
| 2409 | 143262 | 166466 143334 000012 | SUB 143334(R4),12(SP) | ||
| 2410 | 143270 | 100402 | BMI .+6 | ||
| 2411 | 143272 | 005203 | INC R3 | ;ПОЛУЧИТЬ ЦИФРУ | |
| 2412 | 143274 | 000772 | BR 143262 | ||
| 2413 | 143276 | 066466 143334 000012 | ADD 143334(R4),12(SP) | ||
| 2414 | 143304 | 005766 000006 | TST 6(SP) | ;СФОРМИРОВАТЬ ПРИЗНАК НЕГАТИВНОГО ИЗОБРАЖЕНИЯ? | |
| 2415 | 143310 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2416 | 143312 | 052703 000200 | BIS #200,R3 | ;УСТАНОВИТЬ ПРИЗНАК НЕГАТИВНОГО ИЗОБРАЖЕНИЯ | |
| 2417 | 143316 | 110325 | MOVB R3,(R5)+ | ;ЗАПИСАТЬ ЦИФРУ В ТАБЛИЦУ | |
| 2418 | 143320 | 162704 000002 | SUB #2,R4 | ||
| 2419 | 143324 | 100355 | BPL 143260 | ;ПЕРЕЙТИ К РАСПАКОВКЕ СЛЕДУЮЩЕЙ ЦИФРЫ ЧИСЛА | |
| 2420 | 143326 | 012603 | MOV (SP)+,R3 | ||
| 2421 | 143330 | 012604 | MOV (SP)+,R4 | ||
| 2422 | 143332 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 2423 | |||||
| 2424 | 143334 | 000001 | 000001 | ||
| 2425 | 143336 | 000010 | 000010 | ||
| 2426 | 143340 | 000100 | 000100 | ||
| 2427 | 143342 | 001000 | 001000 | ||
| 2428 | 143344 | 010000 | 010000 | ||
| 2429 | 143346 | 100000 | 100000 | ||
| 2430 | |||||
| 2431 | |||||
| 2432 | ;ТАБЛИЦА НАЧАЛЬНЫХ КООРДИНАТ, ИСПОЛЬЗУЕМЫХ ПРИ ЗАШТРИХОВКЕ | ||||
| 2433 | ;НЕИСПРАВНЫХ МОДУЛЕЙ | ||||
| 2434 | 143350 | 000610 | 000610 | ;НАЧ. КООРДИНАТА ПО X ДЛЯ ЗАШТРИХОВКИ СИСТЕМНОГО | |
| 2435 | ;МОДУЛЯ | ||||
| 2436 | 143352 | 000234 | 000234 | ;НАЧ. КООРДИНАТА ПО Y ДЛЯ ЗАШТРИХОВКИ СИСТЕМНОГО | |
| 2437 | ;МОДУЛЯ | ||||
| 2438 | 143354 | 001362 | 001362 | ;НАЧАЛЬНЫЕ КООРДИНАТЫ ПО X | |
| 2439 | 143356 | 000261 | 000261 | ;И ПО Y ДЛЯ ЗАШТРИХОВКИ 1-ОЙ ПОЗИЦИИ | |
| 2440 | |||||
| 2441 | 143360 | 001374 | 001374 | ;НАЧАЛЬНАЯ КООРДИНАТА ПО X | |
| 2442 | 143362 | 000257 | 000257 | ;И ПО Y ДЛЯ ЗАШТРИХОВКИ 2-ОЙ ПОЗИЦИИ | |
| 2443 | |||||
| 2444 | 143364 | 001406 | 001406 | ;НАЧАЛЬНЫЕ КООРДИНАТЫ ПО X | |
| 2445 | 143366 | 000255 | 000255 | ;И ПО Y ДЛЯ ЗАШТРИХОВКИ 3-ЕЙ ПОЗИЦИИ | |
| 2446 | |||||
| 2447 | 143370 | 001420 | 001420 | ;НАЧАЛЬЧЫЕ КООРДИНАТЫ ПО X | |
| 2448 | 143372 | 000253 | 000253 | ;И ПО Y ДЛЯ ЗАШТРИХОВКИ 4-ОЙ ПОЗИЦИИ | |
| 2449 | |||||
| 2450 | 143374 | 001422 001432 | ;НАЧАЛЬЧЫЕ КООРДИНАТЫ ПО X | ||
| 2451 | 143376 | 000251 | 000251 | ;И ПО Y ДЛЯ ЗАШТРИХОВКИ 5-ОЙ ПОЗИЦИИ | |
| 2452 | |||||
| 2453 | 143400 | 001444 | 001444 | ;НАЧАЛЬНЫЕ КООРДИНАТЫ ПО X | |
| 2454 | 143402 | 000247 | 000247 | ;И ПО Y ДЛЯ ЗАШТРИХОВКИ 6-ОЙ ПОЗИЦИИ | |
| 2455 | 143404 | 000000 | 000000 | ||
| 2456 | 143406 | 000000 | 000000 | ||
| 2457 | 143410 | 000000 | 000000 | ||
| 2458 | 143412 | 000000 | 000000 | ||
| 2459 | 143414 | 000761 | 000761 | ;НAЧАЛЬНЫЕ КООРДИНАТЫ ПО X | |
| 2460 | 143416 | 000340 | 000340 | ;И ПО Y ДЛЯ ЗАШТРИХОВКИ КЛАВИАТУРЫ | |
| 2461 | |||||
| 2462 | |||||
| 2463 | ;*********************************************************************** | ||||
| 2464 | ; | ||||
| 2465 | ;ПОДПРОГРАММА ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ ПУТЕМ ПОСЛЕДОВАТЕЛЬНОГО ПОСТРОЕНИЯ | ||||
| 2466 | ;ВЕКТОРОВ | ||||
| 2467 | ; | ||||
| 2468 | ;*********************************************************************** | ||||
| 2469 | 143420 | 004037 144174 | JSR R0,@#144174 | ||
| 2470 | 143424 | 013701 002006 | MOV @#2006,R1 | ;ВЫБРАТЬ АДРЕС ВИДЕОКОНТРОЛЛЕРА | |
| 2471 | 143430 | 005061 000004 | CLR 4(R1) | ||
| 2472 | 143434 | 032761 020000 000004 | BIT #20000,4(R1) | ;УСТАНОВЛЕН РАСШИРИТЕЛЬ ПАМЯТИ ВИДЕОДАНЫХ? | |
| 2473 | 143442 | 001004 | BNE 143454 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2474 | 143444 | 012761 000002 000010 | MOV #2,10(R1) | ||
| 2475 | 143452 | 000403 | BR .+10 | ||
| 2476 | 143454 | 012761 000002 000006 | MOV #2,6(R1) | ||
| 2477 | 143462 | 010361 000024 | MOV R3,24(R1) | ;ЗАДАТЬ ФУНКЦИЮ ЯРКОСТИ | |
| 2478 | 143466 | 024646 | CMP -(SP),-(SP) | ||
| 2479 | 143470 | 016600 000024 | MOV 24(SP),R0 | ;ВЫБРАТЬ АДРЕС ТАБЛИЦЫ КООРДИНАТ ДЛЯ ПОСТРОЕНИЯ | |
| 2480 | ;ИЗОБРАЖЕНИЯ | ||||
| 2481 | 143474 | 005710 | TST @R0 | ;КОНЕЦ ТАБЛИЦЫ? | |
| 2482 | 143476 | 001412 | BEQ 143524 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 2483 | 143500 | 100003 | BPL .+10 | ;ПЕРЕЙТИ НА ВЫБОРКУ КООРДИНАТ ВТОРОЙ ТОЧКИ | |
| 2484 | |||||
| 2485 | 143502 | 004737 143530 | JSR PC,@#143530 | ;ВЫБРАТЬ НАЧАЛЬНЫЕ КООРДИНАТЫ ДЛЯ ПОСТРОЕНИЯ | |
| 2486 | ;СЛЕДУЮЩЕГО ЭЛЕМЕНТА В ИЗОБРАЖЕНИИ | ||||
| 2487 | 143506 | 000772 | BR 143474 | ||
| 2488 | 143510 | 012066 000002 | MOV (R0)+,2(SP) | ;ВЫБРАТЬ KООРДИНАТУ ПО X ВТОРОЙ ТОЧКИ | |
| 2489 | 143514 | 012016 | MOV (R0)+,@SP | ;ВЫБРАТЬ КООРДИНАТУ ПО Y ВТОРОЙ ТОЧКИ | |
| 2490 | 143516 | 004737 143550 | JSR PC,@#143550 | ;ПОСТРОИТЬ ПРЯМУЮ, СОЕДИНЯЮЩУЮ 2 ТОЧКИ ЭКРАНА | |
| 2491 | 143522 | 000764 | BR 143474 | ||
| 2492 | 143524 | 022626 | CMP (SP)+,(SP)+ | ||
| 2493 | 143526 | 000207 | RTS PC | ||
| 2494 | |||||
| 2495 | ;ПОДПРОГРАММА ВЫБОРКИ НАЧАЛЬНЫХ КООРДИНАТ ДЛЯ ПОСТРОЕНИЯ | ||||
| 2496 | ;ЭЛЕМЕНТА ИЗОБРАЖЕНИЯ | ||||
| 2497 | |||||
| 2498 | 143530 | 012037 002010 | MOV (R0)+,@#2010 | ;ВЫБРАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО X | |
| 2499 | 143534 | 012037 002012 | MOV (R0)+,@#2012 | ;ВЫБРАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО Y | |
| 2500 | 143540 | 042737 100000 002010 | BIC #100000,@#2010 | ||
| 2501 | 143546 | 000207 | RTS PC | ||
| 2502 | |||||
| 2503 | ;******************************************************************* | ||||
| 2504 | ; | ||||
| 2505 | ;ПОДПРОГРАММА ПОСТРОЕНИЯ ПРЯМОЙ ЛИНИИ, СОЕДИНЯЮЩЕЙ 2 ТОЧКИ ЭКРАНА, | ||||
| 2506 | ;ПУТЕМ ПОСЛЕДОВАТЕЛЬНОГО ПОСТРОЕНИЯ ВЕКТОРОВ ДЛИНОЙ, РАВНОЙ 1 | ||||
| 2507 | ;В 002010 - КООРДИНАТА ПО X ПЕРВОЙ ТОЧКИ | ||||
| 2508 | ;В 002012 - КООРДИНАТА ПО Y ПЕРВОЙ ТОЧКИ | ||||
| 2509 | ;В 26(SP) - КООРДИНАТА ПО X ВТОРОЙ ТОЧКИ | ||||
| 2510 | ;В 24(SP) - КООРДИНАТА ПО Y ВТОРОЙ ТОЧКИ | ||||
| 2511 | ; | ||||
| 2512 | ;*********************************************************************** | ||||
| 2513 | |||||
| 2514 | 143550 | 004037 144174 | JSR R0,@#144174 | ;СОХРАНИТЬ R1-R5 В СТЕКЕ | |
| 2515 | |||||
| 2516 | 143554 | 024646 | CMP -(SP),-(SP) | ||
| 2517 | 143556 | 005061 000004 | CLR 4(R1) | ||
| 2518 | 143562 | 013705 002010 | MOV @#2010,R5 | ;ВЫБРАТЬ КООРДИНАТУ ПО X ПЕРВОЙ ТОЧКИ | |
| 2519 | 143566 | 010561 000016 | MOV R5,16(R1) | ;ЗАДАТЬ КООРДИНАТУ ПО Х ПЕРВОЙ ТОЧКИ (Х1) | |
| 2520 | 143572 | 013700 002012 | MOV @#2012,R0 | ;ВЫБРАТЬ КООРДИНАТУ ПО Y ПЕРВОЙ ТОЧКИ | |
| 2521 | 143576 | 010061 000020 | MOV R0,20(R1) | ;ЗАДАТЬ КООРДИНАТУ ПО Y ПЕРВОЙ ТОЧКИ (Y1) | |
| 2522 | 143602 | 016637 000026 002014 | MOV 26(SP),@#2014 | ;ВЫБРАТЬ КООРДИНАТУ ПО Х ВТОРОЙ ТОЧКИ (Х2) | |
| 2523 | 143610 | 160537 002014 | SUB R5,@#2014 | ;ПОЛУЧИТЬ РАЗНОСТЬ КООРДИНАТ ПО Х (X2-X1) | |
| 2524 | 143614 | 100002 | BPL .+6 | ;ПЕРЕЙТИ, ЕСЛИ Х2-Х1>0 | |
| 2525 | 143616 | 005437 002014 | NEG @#2014 | ;ПОЛУЧИТЬ АБСОЛЮТНУЮ ВЕЛИЧИНУ РАЗНОСТИ ( /Х2-Х1/ ) | |
| 2526 | 143622 | 016637 000024 002016 | MOV 24(SP),@#2016 | ;ВЫБРАТЬ КООРДИНАТУ ПО Y ВТОРОЙ ТОЧКИ (Y2) | |
| 2527 | 143630 | 160037 002016 | SUB R0,@#2016 | ;ПОЛУЧИТЬ РАЗНОСТЬ КООРДИНАТ ПО Y (Y2-Y1) | |
| 2528 | 143634 | 100002 | BPL .+6 | ;ПЕРЕЙТИ, ЕСЛИ Y2-Y1>0 | |
| 2529 | 143636 | 005437 002016 | NEG @#2016 | ;ПОЛУЧИТЬ АБСОЛЮТНУЮ ВЕЛИЧИНУ РАЗНОСТИ ( /Y2-Y1/ ) | |
| 2530 | 143642 | 026605 000026 | CMP 26(SP),R5 | ;Х2>Х1? | |
| 2531 | 143646 | 003404 | BLE 143660 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2532 | 143650 | 012737 000001 002020 | MOV #1,@#2020 | ;1--> 2020, ЕСЛИ Х2>Х1 | |
| 2533 | 143656 | 000403 | BR .+10 | ||
| 2534 | 143660 | 012737 177777 002020 | MOV #-1,@#2020 | ;-1-->2020, ЕСЛИ X2 МЕНЬШЕ ИЛИ РАВНО X1 | |
| 2535 | 143666 | 026600 000024 | CMP 24(SP),R0 | ;Y2>Y1? | |
| 2536 | 143672 | 003404 | BLE 143704 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2537 | 143674 | 012737 000001 002022 | MOV #1,@#2022 | ;1--> 2022, ЕСЛИ Y2>Y1 | |
| 2538 | 143702 | 000403 | BR .+10 | ||
| 2539 | 143704 | 012737 177777 002022 | MOV #-1,@#2022 | ;-1-->2022, ЕСЛИ Y2 МЕНЬШЕ ИЛИ РАВНО Y1 | |
| 2540 | 143712 | 010137 002034 | MOV R1,@#2034 | ;ВЫБРАТЬ АДРЕС ВИДЕОКОНТРОЛЕРА | |
| 2541 | 143716 | 010137 002036 | MOV R1,@#2036 | ;ВЫБРАТЬ АДРЕС ВИДЕОКОНТРОЛЕРА | |
| 2542 | 143722 | 013705 002014 | MOV @#2014,R5 | ;ВЫБРАТЬ /X2-X1/ | |
| 2543 | 143726 | 013700 002016 | MOV @#2016,R0 | ;ВЫБРАТЬ /Y2-Y1/ | |
| 2544 | 143732 | 020500 | CMP R5,R0 | ;/Х2-Х1/ > /Y2-Y1/ ? | |
| 2545 | 143734 | 003426 | BLE 144012 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2546 | 143736 | 010537 002024 | MOV R5,@#2024 | ;ВЫБРАТЬ /X2-X1/ | |
| 2547 | 143742 | 010037 002026 | MOV R0,@#2026 | ;ВЫБРАТЬ /Y2-Y1/ | |
| 2548 | 143746 | 012766 002010 000002 | MOV #2010,2(SP) | ;ВЫБРАТЬ АДРЕС Х1 | |
| 2549 | 143754 | 012716 002012 | MOV #2012,@SP | ;ВЫБРАТЬ АДРЕС Y1 | |
| 2550 | 143760 | 062737 000016 002034 | ADD #16,@#2034 | ;ПОЛУЧИТЬ АДРЕС РЕГИСТРА КООРДИНАТ ПО Х | |
| 2551 | 143766 | 062737 000020 002036 | ADD #20,@#2036 | ;ПОЛУЧИТЬ АДРЕС РЕГИСТРА КООРДИНАТ ПО Y | |
| 2552 | 143774 | 013737 002020 002030 | MOV @#2020,@#2030 | ||
| 2553 | 144002 | 013737 002022 002032 | MOV @#2022,@#2032 | ||
| 2554 | 144010 | 000425 | BR 144064 | ||
| 2555 | 144012 | 010037 002024 | MOV R0,@#2024 | ;ВЫБРАТЬ /Y2-Y1/ | |
| 2556 | 144016 | 010537 002026 | MOV R5,@#2026 | ;ВЫБРАТЬ /Х2-Х1/ | |
| 2557 | 144022 | 012766 002012 000002 | MOV #2012,2(SP) | ;АДРЕС Y1 | |
| 2558 | 144030 | 012716 002010 | MOV #2010,@SP | ;АДРЕС Х1 | |
| 2559 | 144034 | 062737 000020 002034 | ADD #20,@#2034 | ;АДРЕС РЕГИСТРА КООРДИНАТ ПО Y | |
| 2560 | 144042 | 062737 000016 002036 | ADD #16,@#2036 | ;АДРЕС РЕГИСТРА КООРДИНАТ ПО Х | |
| 2561 | 144050 | 013737 002022 002030 | MOV @#2022,@#2030 | ||
| 2562 | 144056 | 013737 002020 002032 | MOV @#2020,@#2032 | ||
| 2563 | 144064 | 013702 002026 | MOV @#2026,R2 | ||
| 2564 | 144070 | 163702 002024 | SUB @#2024,R2 | ||
| 2565 | 144074 | 010205 | MOV R2,R5 | ||
| 2566 | 144076 | 005003 | CLR R3 | ||
| 2567 | 144100 | 000427 | BR 144160 | ||
| 2568 | |||||
| 2569 | ;ПОСТРОИТЬ ЕДИНИЧНЫЙ ВЕКТОР | ||||
| 2570 | 144102 | 012761 000001 000022 | MOV #1,22(R1) | ;ЗАДАТЬ ДЛИНУ ВЕКТОРА = 1 | |
| 2571 | 144110 | 005705 | TST R5 | ||
| 2572 | 144112 | 003410 | BLE 144134 | ||
| 2573 | 144114 | 063776 002032 000000 | ADD @#2032,@0(SP) | ||
| 2574 | 144122 | 017677 000000 035706 | MOV @0(SP),@2036 | ||
| 2575 | 144130 | 060205 | ADD R2,R5 | ||
| 2576 | 144132 | 000404 | BR 144144 | ||
| 2577 | 144134 | 013700 002026 | MOV @#2026,R0 | ||
| 2578 | 144140 | 060500 | ADD R5,R0 | ||
| 2579 | 144142 | 010005 | MOV R0,R5 | ||
| 2580 | 144144 | 063776 002030 000002 | ADD @#2030,@2(SP) | ||
| 2581 | 144152 | 017677 000002 035654 | MOV @2(SP),@2034 | ||
| 2582 | 144160 | 005203 | INC R3 | ||
| 2583 | 144162 | 020337 002024 | CMP R3,@#2024 | ||
| 2584 | 144166 | 003745 | BLE 144102 | ||
| 2585 | 144170 | 022626 | CMP (SP)+,(SP)+ | ||
| 2586 | 144172 | 000207 | RTS PC | ||
| 2587 | |||||
| 2588 | ;ПОДПРОГРАММА ЗАПИСИ В СТЕК R1-R5 | ||||
| 2589 | |||||
| 2590 | 144174 | 010146 | MOV R1,-(SP) | ||
| 2591 | 144176 | 010246 | MOV R2,-(SP) | ||
| 2592 | 144200 | 010346 | MOV R3,-(SP) | ||
| 2593 | 144202 | 010446 | MOV R4,-(SP) | ||
| 2594 | 144204 | 010546 | MOV R5,-(SP) | ||
| 2595 | 144206 | 012746 144214 | MOV #144214,-(SP) | ||
| 2596 | 144212 | 000110 | JMP @R0 | ||
| 2597 | |||||
| 2598 | ;ПОДПРОГРАММА ВЫБОРКИ ИЗ СТЕКА R1-R5 | ||||
| 2599 | |||||
| 2600 | 144214 | 012605 | MOV (SP)+,R5 | ||
| 2601 | 144216 | 012604 | MOV (SP)+,R4 | ||
| 2602 | 144220 | 012603 | MOV (SP)+,R3 | ||
| 2603 | 144222 | 012602 | MOV (SP)+,R2 | ||
| 2604 | 144224 | 012601 | MOV (SP)+,R1 | ||
| 2605 | 144226 | 012600 | MOV (SP)+,R0 | ||
| 2606 | 144230 | 000207 | RTS PC | ||
| 2607 | |||||
| 2608 | 144232 | .=144232 | |||
| 2609 | ;ТАБЛИЦА КООРДИНАТ ДЛЯ ПОСТРОЕНИЯ ИЗОБРАЖЕНИЯ СИСТЕМНОГО БЛОКА | ||||
| 2610 | ;И КЛАВИАТУРЫ | ||||
| 2611 | |||||
| 2612 | 144232 | 100761 | 100761 | ||
| 2613 | 144234 | 000357 | 357 | ||
| 2614 | 144236 | 000305 | 305 | ||
| 2615 | 144240 | 000250 | 250 | ||
| 2616 | 144242 | 000305 | 305 | ||
| 2617 | 144244 | 000246 | 246 | ||
| 2618 | 144246 | 000761 | 761 | ||
| 2619 | 144250 | 000354 | 354 | ||
| 2620 | 144252 | 001111 | 1111 | ||
| 2621 | 144254 | 000320 | 320 | ||
| 2622 | 144256 | 000435 | 435 | ||
| 2623 | 144260 | 000220 | 220 | ||
| 2624 | 144262 | 000311 | 311 | ||
| 2625 | 144264 | 000246 | 246 | ||
| 2626 | 144266 | 100761 | 100761 | ||
| 2627 | 144270 | 000357 | 357 | ||
| 2628 | 144272 | 001120 | 1120 | ||
| 2629 | 144274 | 000334 | 334 | ||
| 2630 | 144276 | 001111 | 1111 | ||
| 2631 | 144300 | 000322 | 322 | ||
| 2632 | 144302 | 101164 | 101164 | ||
| 2633 | 144304 | 000324 | 324 | ||
| 2634 | 144306 | 000465 | 465 | ||
| 2635 | 144310 | 000220 | 220 | ||
| 2636 | 144312 | 000456 | 456 | ||
| 2637 | 144314 | 000207 | 207 | ||
| 2638 | 144316 | 000465 | 465 | ||
| 2639 | 144320 | 000160 | 160 | ||
| 2640 | 144322 | 000772 | 772 | ||
| 2641 | 144324 | 000122 | 122 | ||
| 2642 | 144326 | 001471 | 1471 | ||
| 2643 | 144330 | 000211 | 211 | ||
| 2644 | 144332 | 001500 | 1500 | ||
| 2645 | 144334 | 000241 | 241 | ||
| 2646 | 144336 | 001471 | 1471 | ||
| 2647 | 144340 | 000253 | 253 | ||
| 2648 | 144342 | 001164 | 1164 | ||
| 2649 | 144344 | 000324 | 324 | ||
| 2650 | 144346 | 101164 | 101164 | ||
| 2651 | 144350 | 000306 | 306 | ||
| 2652 | 144352 | 001164 | 1164 | ||
| 2653 | 144354 | 000255 | 255 | ||
| 2654 | 144356 | 001035 | 1035 | ||
| 2655 | 144360 | 000233 | 233 | ||
| 2656 | 144362 | 101164 | 101164 | ||
| 2657 | 144364 | 000317 | 317 | ||
| 2658 | 144366 | 000601 | 601 | ||
| 2659 | 144370 | 000234 | 234 | ||
| 2660 | 144372 | 000601 | 601 | ||
| 2661 | 144374 | 000231 | 231 | ||
| 2662 | 144376 | 000616 | 616 | ||
| 2663 | 144400 | 000226 | 226 | ||
| 2664 | 144402 | 100601 | 100601 | ||
| 2665 | 144404 | 000231 | 231 | ||
| 2666 | 144406 | 001164 | 1164 | ||
| 2667 | 144410 | 000314 | 314 | ||
| 2668 | 144412 | 001445 | 1445 | ||
| 2669 | 144414 | 000247 | 247 | ||
| 2670 | 144416 | 001445 | 1445 | ||
| 2671 | 144420 | 000253 | 253 | ||
| 2672 | 144422 | 001164 | 1164 | ||
| 2673 | 144424 | 000320 | 320 | ||
| 2674 | 144426 | 101025 | 101025 | ||
| 2675 | 144430 | 000231 | 231 | ||
| 2676 | 144432 | 000705 | 705 | ||
| 2677 | 144434 | 000212 | 212 | ||
| 2678 | 144436 | 100672 | 100672 | ||
| 2679 | 144440 | 000211 | 211 | ||
| 2680 | 144442 | 000505 | 505 | ||
| 2681 | 144444 | 000162 | 162 | ||
| 2682 | 144446 | 000764 | 764 | ||
| 2683 | 144450 | 000130 | 130 | ||
| 2684 | 144452 | 001151 | 1151 | ||
| 2685 | 144454 | 000154 | 154 | ||
| 2686 | 144456 | 001151 | 1151 | ||
| 2687 | 144460 | 000156 | 156 | ||
| 2688 | 144462 | 101151 | 101151 | ||
| 2689 | 144464 | 000154 | 154 | ||
| 2690 | 144466 | 000672 | 672 | ||
| 2691 | 144470 | 000212 | 212 | ||
| 2692 | 144472 | 000672 | 672 | ||
| 2693 | 144474 | 000240 | 240 | ||
| 2694 | 144476 | 000510 | 510 | ||
| 2695 | 144500 | 000210 | 210 | ||
| 2696 | 144502 | 000510 | 510 | ||
| 2697 | 144504 | 000164 | 164 | ||
| 2698 | 144506 | 100705 | 100705 | ||
| 2699 | 144510 | 000240 | 240 | ||
| 2700 | 144512 | 000705 | 705 | ||
| 2701 | 144514 | 000213 | 213 | ||
| 2702 | 144516 | 001033 | 1033 | ||
| 2703 | 144520 | 000174 | 174 | ||
| 2704 | 144522 | 001047 | 1047 | ||
| 2705 | 144524 | 000173 | 173 | ||
| 2706 | 144526 | 001067 | 1067 | ||
| 2707 | 144530 | 000174 | 174 | ||
| 2708 | 144532 | 001067 | 1067 | ||
| 2709 | 144534 | 000167 | 167 | ||
| 2710 | 144536 | 101067 | 101067 | ||
| 2711 | 144540 | 000175 | 175 | ||
| 2712 | 144542 | 001144 | 1144 | ||
| 2713 | 144544 | 000204 | 204 | ||
| 2714 | 144546 | 001151 | 1151 | ||
| 2715 | 144550 | 000210 | 210 | ||
| 2716 | 144552 | 001151 | 1151 | ||
| 2717 | 144554 | 000214 | 214 | ||
| 2718 | 144556 | 101144 | 101144 | ||
| 2719 | 144560 | 000204 | 204 | ||
| 2720 | 144562 | 001137 | 1137 | ||
| 2721 | 144564 | 000212 | 212 | ||
| 2722 | 144566 | 001025 | 1025 | ||
| 2723 | 144570 | 000231 | 231 | ||
| 2724 | 144572 | 001025 | 1025 | ||
| 2725 | 144574 | 000261 | 261 | ||
| 2726 | 144576 | 000705 | 705 | ||
| 2727 | 144600 | 000240 | 240 | ||
| 2728 | 144602 | 101035 | 101035 | ||
| 2729 | 144604 | 000264 | 264 | ||
| 2730 | 144606 | 001035 | 1035 | ||
| 2731 | 144610 | 000234 | 234 | ||
| 2732 | 144612 | 001206 | 1206 | ||
| 2733 | 144614 | 000210 | 210 | ||
| 2734 | 144616 | 001336 | 1336 | ||
| 2735 | 144620 | 000230 | 230 | ||
| 2736 | 144622 | 001336 | 1336 | ||
| 2737 | 144624 | 000261 | 261 | ||
| 2738 | 144626 | 001353 | 1353 | ||
| 2739 | 144630 | 000263 | 263 | ||
| 2740 | 144632 | 101336 | 101336 | ||
| 2741 | 144634 | 000261 | 261 | ||
| 2742 | 144636 | 001164 | 1164 | ||
| 2743 | 144640 | 000306 | 306 | ||
| 2744 | 144642 | 101165 | 101165 | ||
| 2745 | 144644 | 000255 | 255 | ||
| 2746 | 144646 | 001336 | 1336 | ||
| 2747 | 144650 | 000227 | 227 | ||
| 2748 | 144652 | 101164 | 101164 | ||
| 2749 | 144654 | 000306 | 306 | ||
| 2750 | 144656 | 001035 | 1035 | ||
| 2751 | 144660 | 000263 | 263 | ||
| 2752 | 144662 | 001352 | 1352 | ||
| 2753 | 144664 | 000263 | 263 | ||
| 2754 | 144666 | 001352 | 1352 | ||
| 2755 | 144670 | 000226 | 226 | ||
| 2756 | 144672 | 001066 | 1066 | ||
| 2757 | 144674 | 000167 | 167 | ||
| 2758 | 144676 | 101364 | 101364 | ||
| 2759 | 144700 | 000261 | 261 | ||
| 2760 | 144702 | 001364 | 1364 | ||
| 2761 | 144704 | 000224 | 224 | ||
| 2762 | 144706 | 001100 | 1100 | ||
| 2763 | 144710 | 000165 | 165 | ||
| 2764 | 144712 | 101376 | 101376 | ||
| 2765 | 144714 | 000257 | 257 | ||
| 2766 | 144716 | 001376 | 1376 | ||
| 2767 | 144720 | 000222 | 222 | ||
| 2768 | 144722 | 001112 | 1112 | ||
| 2769 | 144724 | 000163 | 163 | ||
| 2770 | 144726 | 101410 | 101410 | ||
| 2771 | 144730 | 000255 | 255 | ||
| 2772 | 144732 | 001410 | 1410 | ||
| 2773 | 144734 | 000220 | 220 | ||
| 2774 | 144736 | 001124 | 1124 | ||
| 2775 | 144740 | 000161 | 161 | ||
| 2776 | 144742 | 101422 | 101422 | ||
| 2777 | 144744 | 000253 | 253 | ||
| 2778 | 144746 | 001422 | 1422 | ||
| 2779 | 144750 | 000216 | 216 | ||
| 2780 | 144752 | 001136 | 1136 | ||
| 2781 | 144754 | 000157 | 157 | ||
| 2782 | 144756 | 101434 | 101434 | ||
| 2783 | 144760 | 000251 | 251 | ||
| 2784 | 144762 | 001434 | 1434 | ||
| 2785 | 144764 | 000214 | 214 | ||
| 2786 | 144766 | 001150 | 1150 | ||
| 2787 | 144770 | 000155 | 155 | ||
| 2788 | 144772 | 101446 | 101446 | ||
| 2789 | 144774 | 000247 | 247 | ||
| 2790 | 144776 | 001446 | 1446 | ||
| 2791 | 145000 | 000212 | 212 | ||
| 2792 | 145002 | 001160 | 1160 | ||
| 2793 | 145004 | 000154 | 154 | ||
| 2794 | 145006 | 101066 | 101066 | ||
| 2795 | 145010 | 000167 | 167 | ||
| 2796 | 145012 | 001164 | 1164 | ||
| 2797 | 145014 | 000154 | 154 | ||
| 2798 | 145016 | 000000 | 000000 | ||
| 2799 | |||||
| 2800 | 145020 | .=145020 | |||
| 2801 | ;КОДИРОВКА ИЗОБРАЖЕНИЯ " Э Л Е К Т Р О Н И К А " | ||||
| 2802 | |||||
| 2803 | 147510 | .=147510 | |||
| 2804 | ;ТАБЛИЦА КООРДИНАТ ДЛЯ ПОСТРОЕНИЯ ИЗОБРАЖЕНИЯ ДИСКЕТЫ И ЗНАКА "?" | ||||
| 2805 | |||||
| 2806 | 151362 | .=151362 | |||
| 2807 | ;*********************************************************************** | ||||
| 2808 | ; | ||||
| 2809 | ;ПОДПРОГРАММА ЗАШТРИХОВКИ НЕИСПРАВНОГО МОДУЛЯ В ИЗОБРАЖЕНИИ | ||||
| 2810 | ;СИСТЕМНОГО БЛОКА И КЛАВИАТУРЫ | ||||
| 2811 | ;В 4(SP) - НАЧАЛЬНАЯ КООРДИНАТА ПО X | ||||
| 2812 | ;В 2(SP) - НАЧАЛЬНАЯ КООРДИНАТА ПО Y | ||||
| 2813 | ; | ||||
| 2814 | ;*********************************************************************** | ||||
| 2815 | |||||
| 2816 | 151362 | 013701 002006 | MOV @#2006,R1 | ;ВЫБРАТЬ АДРЕС ВИДЕОКОНТРОЛЛЕРА | |
| 2817 | 151366 | 016637 000004 002040 | MOV 4(SP),@#2040 | ;ВЫБРАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО X | |
| 2818 | 151374 | 016637 000002 002042 | MOV 2(SP),@#2042 | ;ВЫБРАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО Y | |
| 2819 | 151402 | 004037 144174 | JSR R0,@#144174 | ||
| 2820 | 151406 | 012746 000004 | MOV #4,-(SP) | ||
| 2821 | 151412 | 012746 000140 | MOV #140,-(SP) | ||
| 2822 | 151416 | 011661 000026 | MOV @SP,26(R1) | ;РАЗМЕСТИТЬ ПАМЯТЬ ВИДЕОДАННЫХ В АДРЕСНОМ | |
| 2823 | ;ПРОСТРАНСТВЕ 14000000-14077776 | ||||
| 2824 | 151422 | 032761 020000 000004 | BIT #20000,4(R1) | ;РАСШИРИТЕЛЬ ПАМЯТИ ВИДЕОДАННЫХ УСТАНОВЛЕН? | |
| 2825 | 151430 | 001004 | BNE 151442 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2826 | 151432 | 012761 000042 000010 | MOV #42,10(R1) | ;РАЗРЕШИТЬ ДОСТУП К РАСШИРЕННОЙ ПАМЯТИ | |
| 2827 | ;ВИДЕОДАННЫХ | ||||
| 2828 | 151440 | 000403 | BR .+10 | ||
| 2829 | 151442 | 012761 000042 000006 | MOV #42,6(R1) | ;РАЗРЕШИТЬ ДОСТУП К ПАМЯТИ ВИДЕОДАННЫХ | |
| 2830 | 151450 | 006316 | ASL @SP | ||
| 2831 | 151452 | 006316 | ASL @SP | ||
| 2832 | 151454 | 104005 | EMT+5 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 2833 | ;ДЛЯ ДОСТУПА К ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 2834 | 151456 | 022626 | CMP (SP)+,(SP)+ | ||
| 2835 | 151460 | 012704 002144 | MOV #2144,R4 | ||
| 2836 | 151464 | 012705 002170 | MOV #2170,R5 | ||
| 2837 | 151470 | 105045 | CLRB -(R5) | ||
| 2838 | 151472 | 013746 002040 | MOV @#2040,-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 2839 | 151476 | 013746 002042 | MOV @#2042,-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 2840 | 151502 | 005316 | DEC @SP | ;УМЕНЬШИТЬ КООРДИНАТУ ПО Y НА 1 | |
| 2841 | 151504 | 004737 153554 | JSR PC,@#153554 | ;ТОЧКА С ЗАДАННЫМИ КООРДИНАТАМИ НАРИСОВАНА? | |
| 2842 | 151510 | 103407 | BCS 151530 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 2843 | 151512 | 004737 153332 | JSR PC,@#153332 | ||
| 2844 | 151516 | 016644 000002 | MOV 2(SP),-(R4) | ||
| 2845 | 151522 | 011644 | MOV @SP,-(R4) | ||
| 2846 | 151524 | 112745 000002 | MOVB #2,-(R5) | ||
| 2847 | 151530 | 022626 | CMP (SP)+,(SP)+ | ||
| 2848 | 151532 | 013746 002040 | MOV @#2040,-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 2849 | 151536 | 013746 002042 | MOV @#2042,-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 2850 | 151542 | 004737 153332 | JSR PC,@#153332 | ||
| 2851 | 151546 | 012637 002042 | MOV (SP)+,@#2042 | ||
| 2852 | 151552 | 012637 002040 | MOV (SP)+,@#2040 | ||
| 2853 | 151556 | 013744 002040 | MOV @#2040,-(R4) | ||
| 2854 | 151562 | 013744 002042 | MOV @#2042,-(R4) | ||
| 2855 | 151566 | 112745 000001 | MOVB #1,-(R5) | ||
| 2856 | 151572 | 105715 | TSTB @R5 | ;КОНЕЦ ПРОРИСОВКИ? | |
| 2857 | 151574 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2858 | 151576 | 000137 152442 | JMP @#152442 | ;ПЕРЕЙТИ НА ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 2859 | 151602 | 012437 002046 | MOV (R4)+,@#2046 | ||
| 2860 | 151606 | 012437 002044 | MOV (R4)+,@#2044 | ||
| 2861 | 151612 | 112537 002060 | MOVB (R5)+,@#2060 | ||
| 2862 | 151616 | 012737 000377 002052 | MOV #377,@#2052 | ;МАКСИМАЛЬНАЯ КООРДИНАТА ПО Y | |
| 2863 | 151624 | 012737 001777 002050 | MOV #1777,@#2050 | ;МАКСИМАЛЬНАЯ КООРДИНАТА ПО X | |
| 2864 | 151632 | 013700 002044 | MOV @#2044,R0 | ||
| 2865 | 151636 | 053700 002046 | BIS @#2046,R0 | ||
| 2866 | 151642 | 001002 | BNE .+6 | ||
| 2867 | 151644 | 000137 152436 | JMP @#152436 | ||
| 2868 | 151650 | 013746 002044 | MOV @#2044,-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 2869 | 151654 | 013746 002046 | MOV @#2046,-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 2870 | 151660 | 004737 153554 | JSR PC,@#153554 | ;ТОЧКА С ЗАДАННЫМИ КООРДИНАТАМИ НАРИСОВАНА? | |
| 2871 | 151664 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 2872 | 151666 | 022626 | CMP (SP)+,(SP)+ | ||
| 2873 | 151670 | 000137 152436 | JMP @#152436 | ||
| 2874 | 151674 | 022626 | CMP (SP)+,(SP)+ | ||
| 2875 | 151676 | 013737 002044 002040 | MOV @#2044,@#2040 | ||
| 2876 | 151704 | 013737 002046 002042 | MOV @#2046,@#2042 | ||
| 2877 | 151712 | 013746 002040 | MOV @#2040,-(SP) | ||
| 2878 | 151716 | 005316 | DEC @SP | ||
| 2879 | 151720 | 013746 002042 | MOV @#2042,-(SP) | ||
| 2880 | 151724 | 004737 152466 | JSR PC,@#152466 | ||
| 2881 | 151730 | 022626 | CMP (SP)+,(SP)+ | ||
| 2882 | 151732 | 023737 002040 002050 | CMP @#2040,@#2050 | ||
| 2883 | 151740 | 003402 | BLE .+6 | ||
| 2884 | 151742 | 000137 152436 | JMP @#152436 | ||
| 2885 | 151746 | 005737 002062 | TST @#2062 | ||
| 2886 | 151752 | 001425 | BEQ 152026 | ||
| 2887 | 151754 | 005737 002064 | TST @#2064 | ||
| 2888 | 151760 | 001422 | BEQ 152026 | ||
| 2889 | 151762 | 032737 000001 002060 | BIT #1,@#2060 | ||
| 2890 | 151770 | 001007 | BNE 152010 | ||
| 2891 | 151772 | 013737 002066 002044 | MOV @#2066,@#2044 | ||
| 2892 | 152000 | 013737 002070 002046 | MOV @#2070,@#2046 | ||
| 2893 | 152006 | 000535 | BR 152302 | ||
| 2894 | 152010 | 013737 002072 002044 | MOV @#2072,@#2044 | ||
| 2895 | 152016 | 013737 002074 002046 | MOV @#2074,@#2046 | ||
| 2896 | 152024 | 000526 | BR 152302 | ||
| 2897 | 152026 | 013746 002040 | MOV @#2040,-(SP) | ||
| 2898 | 152032 | 013746 002042 | MOV @#2042,-(SP) | ||
| 2899 | 152036 | 004737 153506 | JSR PC,@#153506 | ||
| 2900 | 152042 | 004737 153332 | JSR PC,@#153332 | ||
| 2901 | 152046 | 016644 000002 | MOV 2(SP),-(R4) | ||
| 2902 | 152052 | 011644 | MOV @SP,-(R4) | ||
| 2903 | 152054 | 022626 | CMP (SP)+,(SP)+ | ||
| 2904 | 152056 | 032737 000001 002060 | BIT #1,@#2060 | ||
| 2905 | 152064 | 001403 | BEQ .+10 | ||
| 2906 | 152066 | 112745 000002 | MOVB #2,-(R5) | ||
| 2907 | 152072 | 000402 | BR .+6 | ||
| 2908 | 152074 | 112745 000001 | MOVB #1,-(R5) | ||
| 2909 | 152100 | 005737 002062 | TST @#2062 | ||
| 2910 | 152104 | 001010 | BNE 152126 | ||
| 2911 | 152106 | 005737 002064 | TST @#2064 | ||
| 2912 | 152112 | 001405 | BEQ 152126 | ||
| 2913 | 152114 | 032737 000001 002060 | BIT #1,@#2060 | ||
| 2914 | 152122 | 001401 | BEQ .+4 | ||
| 2915 | 152124 | 000412 | BR 152152 | ||
| 2916 | 152126 | 005737 002064 | TST @#2064 | ||
| 2917 | 152132 | 001031 | BNE 152216 | ||
| 2918 | 152134 | 005737 002062 | TST @#2062 | ||
| 2919 | 152140 | 001426 | BEQ 152216 | ||
| 2920 | 152142 | 032737 000002 002060 | BIT #2,@#2060 | ||
| 2921 | 152150 | 001422 | BEQ 152216 | ||
| 2922 | 152152 | 032737 000001 002060 | BIT #1,@#2060 | ||
| 2923 | 152160 | 001007 | BNE 152200 | ||
| 2924 | 152162 | 013737 002066 002044 | MOV @#2066,@#2044 | ||
| 2925 | 152170 | 013737 002070 002046 | MOV @#2070,@#2046 | ||
| 2926 | 152176 | 000441 | BR 152302 | ||
| 2927 | 152200 | 013737 002072 002044 | MOV @#2072,@#2044 | ||
| 2928 | 152206 | 013737 002074 002046 | MOV @#2074,@#2046 | ||
| 2929 | 152214 | 000432 | BR 152302 | ||
| 2930 | 152216 | 013746 002040 | MOV @#2040,-(SP) | ||
| 2931 | 152222 | 013746 002042 | MOV @#2042,-(SP) | ||
| 2932 | 152226 | 032737 000001 002060 | BIT #1,@#2060 | ||
| 2933 | 152234 | 001402 | BEQ .+6 | ||
| 2934 | 152236 | 005316 | DEC @SP | ||
| 2935 | 152240 | 000401 | BR .+4 | ||
| 2936 | 152242 | 005216 | INC @SP | ||
| 2937 | 152244 | 004737 153554 | JSR PC,@#153554 | ||
| 2938 | 152250 | 103407 | BCS 152270 | ||
| 2939 | 152252 | 004737 153332 | JSR PC,@#153332 | ||
| 2940 | 152256 | 012637 002046 | MOV (SP)+,@#2046 | ||
| 2941 | 152262 | 012637 002044 | MOV (SP)+,@#2044 | ||
| 2942 | 152266 | 000405 | BR 152302 | ||
| 2943 | 152270 | 022626 | CMP (SP)+,(SP)+ | ||
| 2944 | 152272 | 005037 002044 | CLR @#2044 | ||
| 2945 | 152276 | 005037 002046 | CLR @#2046 | ||
| 2946 | 152302 | 013746 002040 | MOV @#2040,-(SP) | ||
| 2947 | 152306 | 013746 002042 | MOV @#2042,-(SP) | ||
| 2948 | 152312 | 004737 153420 | JSR PC,@#153420 | ||
| 2949 | 152316 | 005266 000002 | INC 2(SP) | ||
| 2950 | 152322 | 004737 152466 | JSR PC,@#152466 | ||
| 2951 | 152326 | 004737 153634 | JSR PC,@#153634 | ;НАРИСОВАТЬ ГОРИЗОНТАЛЬНЫЙ ОТРЕЗОК | |
| 2952 | 152332 | 013737 002040 002050 | MOV @#2040,@#2050 | ||
| 2953 | 152340 | 013737 002042 002052 | MOV @#2042,@#2052 | ||
| 2954 | 152346 | 005737 002062 | TST @#2062 | ||
| 2955 | 152352 | 001403 | BEQ .+10 | ||
| 2956 | 152354 | 005737 002064 | TST @#2064 | ||
| 2957 | 152360 | 001023 | BNE 152430 | ||
| 2958 | 152362 | 013766 002054 000002 | MOV @#2054,2(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 2959 | 152370 | 013716 002056 | MOV @#2056,@SP | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 2960 | 152374 | 004737 153554 | JSR PC,@#153554 | ;ТОЧКА С ЗАДАННЫМИ КООРДИНАТАМИ НАРИСОВАНА? | |
| 2961 | 152400 | 103413 | BCS 152430 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 2962 | 152402 | 016644 000002 | MOV 2(SP),-(R4) | ||
| 2963 | 152406 | 011644 | MOV @SP,-(R4) | ||
| 2964 | 152410 | 005737 002062 | TST @#2062 | ||
| 2965 | 152414 | 001003 | BNE .+10 | ||
| 2966 | 152416 | 112745 000001 | MOVB #1,-(R5) | ||
| 2967 | 152422 | 000402 | BR .+6 | ||
| 2968 | 152424 | 112745 000002 | MOVB #2,-(R5) | ||
| 2969 | 152430 | 022626 | CMP (SP)+,(SP)+ | ||
| 2970 | 152432 | 000137 151632 | JMP @#151632 | ||
| 2971 | 152436 | 000137 151572 | JMP @#151572 | ||
| 2972 | 152442 | 005061 000006 | CLR 6(R1) | ;ОЧИСТИТЬ РЕГИСТР УПРАВЛЕНИЯ ДАННЫМИ | |
| 2973 | 152446 | 005061 000010 | CLR 10(R1) | ||
| 2974 | 152452 | 005061 000014 | CLR 14(R1) | ;ОЧИСТИТЬ РЕГИСТР СДВИГА ИЗОБРАЖЕНИЯ | |
| 2975 | 152456 | 005061 000004 | CLR 4(R1) | ;ОЧИСТИТЬ РЕГИСТР КОМАНД | |
| 2976 | 152462 | 104006 | EMT+6 | ;ВОССТАНОВИТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ОЗУ | |
| 2977 | 152464 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 2978 | 152466 | 005037 002062 | CLR @#2062 | ||
| 2979 | 152472 | 005037 002064 | CLR @#2064 | ||
| 2980 | 152476 | 005037 002066 | CLR @#2066 | ||
| 2981 | 152502 | 005037 002070 | CLR @#2070 | ||
| 2982 | 152506 | 005037 002072 | CLR @#2072 | ||
| 2983 | 152512 | 005037 002074 | CLR @#2074 | ||
| 2984 | 152516 | 016646 000004 | MOV 4(SP),-(SP) | ||
| 2985 | 152522 | 016646 000004 | MOV 4(SP),-(SP) | ||
| 2986 | 152526 | 004737 153332 | JSR PC,@#153332 | ||
| 2987 | 152532 | 005316 | DEC @SP | ||
| 2988 | 152534 | 005366 000002 | DEC 2(SP) | ||
| 2989 | 152540 | 004737 153554 | JSR PC,@#153554 | ||
| 2990 | 152544 | 103002 | BCC .+6 | ||
| 2991 | 152546 | 005237 002062 | INC @#2062 | ||
| 2992 | 152552 | 062716 000002 | ADD #2,@SP | ||
| 2993 | 152556 | 004737 153554 | JSR PC,@#153554 | ||
| 2994 | 152562 | 103002 | BCC .+6 | ||
| 2995 | 152564 | 005237 002064 | INC @#2064 | ||
| 2996 | 152570 | 005316 | DEC @SP | ||
| 2997 | 152572 | 005266 000002 | INC 2(SP) | ||
| 2998 | 152576 | 004737 153554 | JSR PC,@#153554 | ||
| 2999 | 152602 | 103107 | BCC 153022 | ||
| 3000 | 152604 | 005316 | DEC @SP | ||
| 3001 | 152606 | 004737 153554 | JSR PC,@#153554 | ||
| 3002 | 152612 | 103010 | BCC 152634 | ||
| 3003 | 152614 | 005366 000002 | DEC 2(SP) | ||
| 3004 | 152620 | 004737 153554 | JSR PC,@#153554 | ||
| 3005 | 152624 | 103405 | BCS 152640 | ||
| 3006 | 152626 | 005237 002062 | INC @#2062 | ||
| 3007 | 152632 | 000402 | BR .+6 | ||
| 3008 | 152634 | 005366 000002 | DEC 2(SP) | ||
| 3009 | 152640 | 062716 000002 | ADD #2,@SP | ||
| 3010 | 152644 | 004737 153554 | JSR PC,@#153554 | ||
| 3011 | 152650 | 103410 | BCS 152672 | ||
| 3012 | 152652 | 005266 000002 | INC 2(SP) | ||
| 3013 | 152656 | 004737 153554 | JSR PC,@#153554 | ||
| 3014 | 152662 | 103005 | BCC 152676 | ||
| 3015 | 152664 | 005237 002064 | INC @#2064 | ||
| 3016 | 152670 | 000402 | BR .+6 | ||
| 3017 | 152672 | 005266 000002 | INC 2(SP) | ||
| 3018 | 152676 | 162716 000002 | SUB #2,@SP | ||
| 3019 | 152702 | 004737 153554 | JSR PC,@#153554 | ||
| 3020 | 152706 | 103415 | BCS 152742 | ||
| 3021 | 152710 | 005366 000002 | DEC 2(SP) | ||
| 3022 | 152714 | 004737 153554 | JSR PC,@#153554 | ||
| 3023 | 152720 | 103012 | BCC 152746 | ||
| 3024 | 152722 | 016637 000002 002066 | MOV 2(SP),@#2066 | ||
| 3025 | 152730 | 011637 002070 | MOV @SP,@#2070 | ||
| 3026 | 152734 | 005237 002066 | INC @#2066 | ||
| 3027 | 152740 | 000402 | BR .+6 | ||
| 3028 | 152742 | 005366 000002 | DEC 2(SP) | ||
| 3029 | 152746 | 062716 000002 | ADD #2,@SP | ||
| 3030 | 152752 | 004737 153554 | JSR PC,@#153554 | ||
| 3031 | 152756 | 103013 | BCC 153006 | ||
| 3032 | 152760 | 005266 000002 | INC 2(SP) | ||
| 3033 | 152764 | 004737 153554 | JSR PC,@#153554 | ||
| 3034 | 152770 | 103410 | BCS 153012 | ||
| 3035 | 152772 | 016637 000002 002072 | MOV 2(SP),@#2072 | ||
| 3036 | 153000 | 011637 002074 | MOV @SP,@#2074 | ||
| 3037 | 153004 | 000402 | BR .+6 | ||
| 3038 | 153006 | 005266 000002 | INC 2(SP) | ||
| 3039 | 153012 | 005316 | DEC @SP | ||
| 3040 | 153014 | 005266 000002 | INC 2(SP) | ||
| 3041 | 153020 | 000666 | BR 152576 | ||
| 3042 | 153022 | 005316 | DEC @SP | ||
| 3043 | 153024 | 004737 153554 | JSR PC,@#153554 | ||
| 3044 | 153030 | 103010 | BCC 153052 | ||
| 3045 | 153032 | 005366 000002 | DEC 2(SP) | ||
| 3046 | 153036 | 004737 153554 | JSR PC,@#153554 | ||
| 3047 | 153042 | 103405 | BCS 153056 | ||
| 3048 | 153044 | 005237 002062 | INC @#2062 | ||
| 3049 | 153050 | 000402 | BR .+6 | ||
| 3050 | 153052 | 005366 000002 | DEC 2(SP) | ||
| 3051 | 153056 | 062716 000002 | ADD #2,@SP | ||
| 3052 | 153062 | 004737 153554 | JSR PC,@#153554 | ||
| 3053 | 153066 | 103410 | BCS 153110 | ||
| 3054 | 153070 | 005266 000002 | INC 2(SP) | ||
| 3055 | 153074 | 004737 153554 | JSR PC,@#153554 | ||
| 3056 | 153100 | 103005 | BCC 153114 | ||
| 3057 | 153102 | 005237 002064 | INC @#2064 | ||
| 3058 | 153106 | 000402 | BR .+6 | ||
| 3059 | 153110 | 005266 000002 | INC 2(SP) | ||
| 3060 | 153114 | 004737 153554 | JSR PC,@#153554 | ||
| 3061 | 153120 | 103015 | BCC 153154 | ||
| 3062 | 153122 | 016646 000002 | MOV 2(SP),-(SP) | ||
| 3063 | 153126 | 016646 000002 | MOV 2(SP),-(SP) | ||
| 3064 | 153132 | 004737 153420 | JSR PC,@#153420 | ||
| 3065 | 153136 | 012637 002074 | MOV (SP)+,@#2074 | ||
| 3066 | 153142 | 012637 002072 | MOV (SP)+,@#2072 | ||
| 3067 | 153146 | 005237 002072 | INC @#2072 | ||
| 3068 | 153152 | 000417 | BR 153212 | ||
| 3069 | 153154 | 005366 000002 | DEC 2(SP) | ||
| 3070 | 153160 | 004737 153554 | JSR PC,@#153554 | ||
| 3071 | 153164 | 103010 | BCC 153206 | ||
| 3072 | 153166 | 005266 000002 | INC 2(SP) | ||
| 3073 | 153172 | 016637 000002 002072 | MOV 2(SP),@#2072 | ||
| 3074 | 153200 | 011637 002074 | MOV @SP,@#2074 | ||
| 3075 | 153204 | 000402 | BR .+6 | ||
| 3076 | 153206 | 005266 000002 | INC 2(SP) | ||
| 3077 | 153212 | 162716 000002 | SUB #2,@SP | ||
| 3078 | 153216 | 004737 153554 | JSR PC,@#153554 | ||
| 3079 | 153222 | 103016 | BCC 153260 | ||
| 3080 | 153224 | 016646 000002 | MOV 2(SP),-(SP) | ||
| 3081 | 153230 | 016646 000002 | MOV 2(SP),-(SP) | ||
| 3082 | 153234 | 004737 153420 | JSR PC,@#153420 | ||
| 3083 | 153240 | 012637 002070 | MOV (SP)+,@#2070 | ||
| 3084 | 153244 | 012637 002066 | MOV (SP)+,@#2066 | ||
| 3085 | 153250 | 005216 | INC @SP | ||
| 3086 | 153252 | 005237 002066 | INC @#2066 | ||
| 3087 | 153256 | 000420 | BR 153320 | ||
| 3088 | 153260 | 005366 000002 | DEC 2(SP) | ||
| 3089 | 153264 | 004737 153554 | JSR PC,@#153554 | ||
| 3090 | 153270 | 103010 | BCC 153312 | ||
| 3091 | 153272 | 005266 000002 | INC 2(SP) | ||
| 3092 | 153276 | 016637 000002 002066 | MOV 2(SP),@#2066 | ||
| 3093 | 153304 | 011637 002070 | MOV @SP,@#2070 | ||
| 3094 | 153310 | 000402 | BR .+6 | ||
| 3095 | 153312 | 005266 000002 | INC 2(SP) | ||
| 3096 | 153316 | 005216 | INC @SP | ||
| 3097 | 153320 | 012637 002056 | MOV (SP)+,@#2056 | ||
| 3098 | 153324 | 012637 002054 | MOV (SP)+,@#2054 | ||
| 3099 | 153330 | 000207 | RTS PC | ||
| 3100 | 153332 | 016646 000004 | MOV 4(SP),-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3101 | 153336 | 016646 000004 | MOV 4(SP),-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 3102 | 153342 | 012702 177777 | MOV #-1,R2 | ||
| 3103 | 153346 | 004737 153554 | JSR PC,@#153554 | ;ТОЧКА С ЗАДАННЫМИ КООРДИНАТАМИ НАРИСОВАНА? | |
| 3104 | 153352 | 103401 | BCS .+4 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3105 | 153354 | 005002 | CLR R2 | ;ОЧИСТИТЬ R2, ЕСЛИ ТОЧКА С КООРДИНАТАМИ X, Y | |
| 3106 | ;НЕ НАРИСОВАНА | ||||
| 3107 | 153356 | 005366 000002 | DEC 2(SP) | ;УМЕНЬШИТЬ КООРДИНАТУ ПО X | |
| 3108 | 153362 | 004737 153554 | JSR PC,@#153554 | ;ТОЧКА С ЗАДАННЫМИ КООРДИНАТАМИ НАРИСОВАНА? | |
| 3109 | 153366 | 103403 | BCS .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3110 | 153370 | 005702 | TST R2 | ||
| 3111 | 153372 | 001771 | BEQ 153356 | ||
| 3112 | 153374 | 000402 | BR .+6 | ||
| 3113 | 153376 | 005702 | TST R2 | ||
| 3114 | 153400 | 001366 | BNE 153356 | ||
| 3115 | 153402 | 005266 000002 | INC 2(SP) | ||
| 3116 | 153406 | 012666 000004 | MOV (SP)+,4(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 3117 | 153412 | 012666 000004 | MOV (SP)+,4(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3118 | 153416 | 000207 | RTS PC | ||
| 3119 | 153420 | 016646 000004 | MOV 4(SP),-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3120 | 153424 | 016646 000004 | MOV 4(SP),-(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 3121 | 153430 | 012702 177777 | MOV #-1,R2 | ||
| 3122 | 153434 | 004737 153554 | JSR PC,@#153554 | ;ТОЧКА С ЗАДАННЫМИ КООРДИНАТАМИ НАРИСОВАНА? | |
| 3123 | 153440 | 103401 | BCS .+4 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3124 | 153442 | 005002 | CLR R2 | ;ОЧИСТИТЬ R2, ЕСЛИ ТОЧКА С КООРДИНАТАМИ X,Y | |
| 3125 | ;НЕ НАРИСОВАНА | ||||
| 3126 | 153444 | 005266 000002 | INC 2(SP) | ;УВЕЛИЧИТЬ КООРДИНАТУ ПО X | |
| 3127 | 153450 | 004737 153554 | JSR PC,@#153554 | ;ТОЧКА С ЗАДАННЫМИ КООРДИНАТАМИ НАРИСОВАНА? | |
| 3128 | 153454 | 103403 | BCS .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3129 | 153456 | 005702 | TST R2 | ||
| 3130 | 153460 | 001771 | BEQ 153444 | ||
| 3131 | 153462 | 000402 | BR .+6 | ||
| 3132 | 153464 | 005702 | TST R2 | ||
| 3133 | 153466 | 001366 | BNE 153444 | ||
| 3134 | 153470 | 005366 000002 | DEC 2(SP) | ||
| 3135 | 153474 | 012666 000004 | MOV (SP)+,4(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 3136 | 153500 | 012666 000004 | MOV (SP)+,4(SP) | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3137 | 153504 | 000207 | RTS PC | ||
| 3138 | 153506 | 016646 000004 | MOV 4(SP),-(SP) | ||
| 3139 | 153512 | 016646 000004 | MOV 4(SP),-(SP) | ||
| 3140 | 153516 | 005366 000002 | DEC 2(SP) | ||
| 3141 | 153522 | 004737 153332 | JSR PC,@#153332 | ||
| 3142 | 153526 | 005366 000002 | DEC 2(SP) | ||
| 3143 | 153532 | 004737 153332 | JSR PC,@#153332 | ||
| 3144 | 153536 | 005266 000002 | INC 2(SP) | ||
| 3145 | 153542 | 012666 000004 | MOV (SP)+,4(SP) | ||
| 3146 | 153546 | 012666 000004 | MOV (SP)+,4(SP) | ||
| 3147 | 153552 | 000207 | RTS PC | ||
| 3148 | |||||
| 3149 | ;ПОДПРОГРАММА ПРОВЕРКИ СОДЕРЖИМОГО РАЗРЯДА ЯЧЕЙКИ ПАМЯТИ | ||||
| 3150 | ;ВИДЕОКОНТРОЛЛЕРА | ||||
| 3151 | ;АДРЕС ЯЧЕЙКИ И НОМЕР РАЗРЯДА ОПРЕДЕЛЯЮТСЯ ЧЕРЕЗ КООРДИНАТЫ X И Y. | ||||
| 3152 | ;ЕСЛИ ТОЧКА (РАЗРЯД) С ЗАДАННЫМИ КООРДИНАТАМИ X И Y НАРИСОВАНА | ||||
| 3153 | ;(СОДЕРЖИТ 1), УСТАНАВЛИВАЕТСЯ С-РАЗРЯД. ЕСЛИ ТОЧКА (РАЗРЯД) НЕ | ||||
| 3154 | ;НАРИСОВАНА (СОДЕРЖИТ 0), С-РАЗРЯД ОЧИЩАЕТСЯ. | ||||
| 3155 | |||||
| 3156 | 153554 | 016600 000002 | MOV 2(SP),R0 | ;ВЫБРАТЬ КООРДИНЯТУ ПО Y | |
| 3157 | 153560 | 072027 000007 | ASH #7,R0 | ;СДВИНУТЬ НА 7 ПОЗИЦИЙ ВЛЕВО | |
| 3158 | 153564 | 016601 000004 | MOV 4(SP),R1 | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3159 | 153570 | 072127 177775 | ASH #177775,R1 | ;СДВИНУТЬ НА 3 ПОЗИЦИИ ВПРАВО | |
| 3160 | 153574 | 060100 | ADD R1,R0 | ||
| 3161 | 153576 | 062700 020000 | ADD #20000,R0 | ;ПОЛУЧИТЬ ВИРТУАЛЬНЫЙ АДРЕС ЯЧЕЙКИ ПАМЯТИ | |
| 3162 | ;ВИДЕОКОНТРОЛЛЕРА | ||||
| 3163 | 153602 | 016601 000004 | MOV 4(SP),R1 | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3164 | 153606 | 042701 177760 | BIC #177760,R1 | ;ПОЛУЧИТЬ НОМЕР РАЗРЯДА В ЯЧЕЙКЕ | |
| 3165 | 153612 | 010146 | MOV R1,-(SP) | ||
| 3166 | 153614 | 012701 000001 | MOV #1,R1 | ||
| 3167 | 153620 | 072126 | ASH (SP)+,R1 | ||
| 3168 | 153622 | 030110 | BIT R1,@R0 | ;ТОЧКА НАРИСОВАНА? | |
| 3169 | 153624 | 000261 | SEC | ;УСТАНОВИТЬ С-РАЗРЯД ЕСЛИ ДА | |
| 3170 | 153626 | 001001 | BNE .+4 | ;ПЕРЕЙТИ, ЕСЛИ ТОЧКА НАРИСОВАНА | |
| 3171 | 153630 | 000241 | CLC | ;ОЧИСТИТЬ С-РАЗРЯД, ЕСЛИ ТОЧКА НЕ НАРИСОВАНА | |
| 3172 | 153632 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 3173 | |||||
| 3174 | ;ПОДПРОГРАММА ПРОРИСОВКИ ГОРИЗОНТАЛЬНОГО ОТРЕЗКА | ||||
| 3175 | |||||
| 3176 | 153634 | 062737 000002 002040 | ADD #2,@#2040 | ||
| 3177 | 153642 | 013700 002042 | MOV @#2042,R0 | ;ВЫБРАТЬ КООРДИНАТУ ПО Y | |
| 3178 | 153646 | 072027 000007 | ASH #7,R0 | ;СДВИНУТЬ НА 7 ПОЗИЦИЙ ВЛЕВО | |
| 3179 | 153652 | 013701 002040 | MOV @#2040,R1 | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3180 | 153656 | 072127 177775 | ASH #177775,R1 | ;СДВИНУТЬ НА 3 ПОЗИЦИИ ВПРАВО | |
| 3181 | 153662 | 060100 | ADD R1,R0 | ||
| 3182 | 153664 | 062700 020000 | ADD #20000,R0 | ;ПОЛУЧИТЬ ВИРТУАЛЬНЫЙ АДРЕС ЯЧЕЙКИ ПАМЯТИ | |
| 3183 | ;ВИДЕОКОНТРОЛЛЕРА | ||||
| 3184 | 153670 | 013701 002040 | MOV @#2040,R1 | ;ВЫБРАТЬ КООРДИНАТУ ПО X | |
| 3185 | 153674 | 042701 177760 | BIC #177760,R1 | ;ПОЛУЧИТЬ НОМЕР РАЗРЯДА В ЯЧЕЙКЕ | |
| 3186 | 153700 | 010146 | MOV R1,-(SP) | ||
| 3187 | 153702 | 012701 000001 | MOV #1,R1 | ||
| 3188 | 153706 | 072126 | ASH (SP)+,R1 | ||
| 3189 | 153710 | 030110 | BIT R1,@R0 | ;ТОЧКА НАРИСОВАНА? | |
| 3190 | 153712 | 001004 | BNE 153724 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3191 | 153714 | 050110 | BIS R1,@R0 | ;НАРИСОВАТЬ ТОЧКУ С ЗАДАННЫМИ КООРДИНАТАМИ | |
| 3192 | ;X И Y | ||||
| 3193 | 153716 | 005237 002040 | INC @#2040 | ;УВЕЛИЧИТЬ КООРДИНАТУ ПО X | |
| 3194 | 153722 | 000747 | BR 153642 | ||
| 3195 | 153724 | 005337 002040 | DEC @#2040 | ||
| 3196 | 153730 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 3197 | |||||
| 3198 | ;*********************************************************************** | ||||
| 3199 | ; | ||||
| 3200 | ;ПОДПРОГРАММА ВЫВОДА ИЗОБРАЖЕНИЯ ЦИФР НА ЭКРАН МОНИТОРА | ||||
| 3201 | ; | ||||
| 3202 | ;*********************************************************************** | ||||
| 3203 | |||||
| 3204 | 153732 | 004037 144174 | JSR R0,@#144174 | ;СОХРАНИТЬ R1-R5 В СТЕКЕ | |
| 3205 | 153736 | 013701 002006 | MOV @#2006,R1 | ;ВЫБРАТЬ АДРЕС ВИДЕОКОНРОЛЛЕРА | |
| 3206 | 153742 | 016604 000024 | MOV 24(SP),R4 | ||
| 3207 | 153746 | 016661 000022 000016 | MOV 22(SP),16(R1) | ;ЗАДАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО X | |
| 3208 | 153754 | 012705 000006 | MOV #6,R5 | ||
| 3209 | 153760 | 016661 000020 000020 | MOV 20(SP),20(R1) | ;ЗАДАТЬ НАЧАЛЬНУЮ КООРДИНАТУ ПО Y | |
| 3210 | 153766 | 112400 | MOVB (R4)+,R0 | ;ВЫБРАТЬ ЦИФРУ | |
| 3211 | 153770 | 010446 | MOV R4,-(SP) | ||
| 3212 | 153772 | 010546 | MOV R5,-(SP) | ||
| 3213 | 153774 | 032700 000200 | BIT #200,R0 | ;ФОРМИРОВАТЬ НЕГАТИВНОЕ ИЗОБРАЖЕНИЕ? | |
| 3214 | 154000 | 001414 | BEQ 154032 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3215 | 154002 | 032761 020000 000004 | BIT #20000,4(R1) | ;РАСШИРИТЕЛЬ ПАМЯТИ ВИДЕОДАННЫХ УСТАНОВЛЕН? | |
| 3216 | 154010 | 001004 | BNE 154022 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3217 | 154012 | 052761 000001 000010 | BIS #1,10(R1) | ;РАЗРЕШИТЬ ФОРМИРОВАНИЕ НЕГАТИВНОГО ИЗОБРАЖЕНИЯ | |
| 3218 | ;В РАСШИРЕННОЙ ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 3219 | 154020 | 000412 | BR 154046 | ||
| 3220 | 154022 | 052761 000001 000006 | BIS #1,6(R1) | ;РАЗРЕШИТЬ ФОРМИРОВАНИЕ НЕГАТИВНОГО ИЗОБРАЖЕНИЯ | |
| 3221 | ;В ПАМЯТИ ДАННЫХ | ||||
| 3222 | |||||
| 3223 | 154030 | 000406 | BR 154046 | ||
| 3224 | 154032 | 042761 000001 000006 | BIC #1,6(R1) | ;ЗАПРЕТИТЬ ФОРМИРОВАНИЕ НЕГАТИВНОГО ИЗОБРАЖЕНИЯ | |
| 3225 | 154040 | 042761 000001 000010 | BIC #1,10(R1) | ||
| 3226 | 154046 | 042700 177600 | BIC #177600,R0 | ||
| 3227 | 154052 | 010002 | MOV R0,R2 | ||
| 3228 | 154054 | 072027 000002 | ASH #2,R0 | ||
| 3229 | 154060 | 060200 | ADD R2,R0 | ||
| 3230 | 154062 | 006300 | ASL R0 | ||
| 3231 | 154064 | 062700 154242 | ADD #154242,R0 | ;ПОЛУЧИТЬ АДРЕС ТАБЛИЦЫ ИЗОБРАЖЕНИЯ ЦИФРЫ | |
| 3232 | 154070 | 012704 000012 | MOV #12,R4 | ;УСТАНОВИТЬ ВЫСОТУ МАТРИЦЫ ИЗОБРАЖЕНИЯ ЦИФРЫ | |
| 3233 | 154074 | 112005 | MOVB (R0)+,R5 | ||
| 3234 | 154076 | 010146 | MOV R1,-(SP) | ||
| 3235 | 154100 | 012701 000010 | MOV #10,R1 | ;УСТАНОВИТЬ ШИРИНУ МАТРИЦЫ ИЗОБРАЖЕНИЯ ЦИФРЫ | |
| 3236 | 154104 | 005002 | CLR R2 | ||
| 3237 | 154106 | 005003 | CLR R3 | ||
| 3238 | 154110 | 072327 000002 | ASH #2,R3 | ||
| 3239 | 154114 | 106105 | ROLB R5 | ||
| 3240 | 154116 | 103403 | BCS .+10 | ||
| 3241 | 154120 | 042703 000003 | BIC #3,R3 | ||
| 3242 | 154124 | 000402 | BR .+6 | ||
| 3243 | 154126 | 052703 000003 | BIS #3,R3 | ||
| 3244 | 154132 | 077112 | SOB R1,154110 | ||
| 3245 | 154134 | 073227 000010 | ASHC #10,R2 | ||
| 3246 | 154140 | 072327 177774 | ASH #177774,R3 | ||
| 3247 | 154144 | 012705 000002 | MOV #2,R5 | ||
| 3248 | 154150 | 012601 | MOV (SP)+,R1 | ||
| 3249 | 154152 | 010361 000024 | MOV R3,24(R1) | ||
| 3250 | 154156 | 012761 000014 000022 | MOV #14,22(R1) | ||
| 3251 | 154164 | 062761 000014 000016 | ADD #14,16(R1) | ||
| 3252 | 154172 | 010261 000024 | MOV R2,24(R1) | ||
| 3253 | 154176 | 012761 000014 000022 | MOV #14,22(R1) | ||
| 3254 | 154204 | 162761 000014 000016 | SUB #14,16(R1) | ||
| 3255 | 154212 | 005261 000020 | INC 20(R1) | ||
| 3256 | 154216 | 077523 | SOB R5,154152 | ||
| 3257 | 154220 | 077453 | SOB R4,154074 | ||
| 3258 | 154222 | 012605 | MOV (SP)+,R5 | ||
| 3259 | 154224 | 012604 | MOV (SP)+,R4 | ||
| 3260 | 154226 | 062761 000030 000016 | ADD #30,16(R1) | ||
| 3261 | 154234 | 005305 | DEC R5 | ;ВСЕ ЦИФРЫ ВЫВЕДЕНЫ? | |
| 3262 | 154236 | 001250 | BNE 153760 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3263 | 154240 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 3264 | |||||
| 3265 | ;ТАБЛИЦА ИЗОБРАЖЕНИЯ ЦИФР | ||||
| 3266 | |||||
| 3267 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 0 | ||||
| 3268 | 154242 | 056000 | 056000 | ||
| 3269 | 154244 | 050443 | 050443 | ||
| 3270 | 154246 | 042511 | 042511 | ||
| 3271 | 154250 | 016442 | 016442 | ||
| 3272 | 154252 | 000000 | 000000 | ||
| 3273 | |||||
| 3274 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 1 | ||||
| 3275 | 154254 | 004000 | 004000 | ||
| 3276 | 154256 | 005014 | 005014 | ||
| 3277 | 154260 | 004010 | 004010 | ||
| 3278 | 154262 | 037010 | 037010 | ||
| 3279 | 154264 | 000000 | 000000 | ||
| 3280 | |||||
| 3281 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 2 | ||||
| 3282 | 154266 | 017000 | 017000 | ||
| 3283 | 154270 | 040041 | 040041 | ||
| 3284 | 154272 | 003070 | 003070 | ||
| 3285 | 154274 | 077401 | 077401 | ||
| 3286 | 154276 | 000000 | 000000 | ||
| 3287 | |||||
| 3288 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 3 | ||||
| 3289 | 154300 | 077400 | 077400 | ||
| 3290 | 154302 | 010040 | 010040 | ||
| 3291 | 154304 | 040070 | 040070 | ||
| 3292 | 154306 | 037101 | 037101 | ||
| 3293 | 154310 | 000000 | 000000 | ||
| 3294 | |||||
| 3295 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 4 | ||||
| 3296 | 154312 | 010000 | 010000 | ||
| 3297 | 154314 | 012030 | 012030 | ||
| 3298 | 154316 | 077422 | 077422 | ||
| 3299 | 154320 | 010020 | 010020 | ||
| 3300 | 154322 | 000000 | 000000 | ||
| 3301 | |||||
| 3302 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 5 | ||||
| 3303 | 154324 | 077400 | 077400 | ||
| 3304 | 154326 | 036401 | 036401 | ||
| 3305 | 154330 | 040103 | 040103 | ||
| 3306 | 154332 | 037101 | 037101 | ||
| 3307 | 154334 | 000000 | 000000 | ||
| 3308 | |||||
| 3309 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 6 | ||||
| 3310 | 154336 | 036000 | 036000 | ||
| 3311 | 154340 | 000502 | 000502 | ||
| 3312 | 154342 | 041475 | 041475 | ||
| 3313 | 154344 | 036102 | 036102 | ||
| 3314 | 154346 | 000000 | 000000 | ||
| 3315 | |||||
| 3316 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 7 | ||||
| 3317 | 154350 | 077400 | 077400 | ||
| 3318 | 154352 | 020100 | 020100 | ||
| 3319 | 154354 | 004020 | 004020 | ||
| 3320 | 154356 | 001004 | 001004 | ||
| 3321 | 154360 | 000000 | 000000 | ||
| 3322 | |||||
| 3323 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 8 | ||||
| 3324 | 154362 | 037000 | 037000 | ||
| 3325 | 154364 | 040501 | 040501 | ||
| 3326 | 154366 | 040476 | 040476 | ||
| 3327 | 154370 | 037101 | 037101 | ||
| 3328 | 154372 | 000000 | 000000 | ||
| 3329 | |||||
| 3330 | ;ИЗОБРАЖЕНИЕ ЦИФРЫ 9 | ||||
| 3331 | 154374 | 017000 | 017000 | ||
| 3332 | 154376 | 060441 | 060441 | ||
| 3333 | 154400 | 040136 | 040136 | ||
| 3334 | 154402 | 017041 | 017041 | ||
| 3335 | 154404 | 000000 | 000000 | ||
| 3336 | |||||
| 3337 | ;ИЗОБРАЖЕНИЕ ЗНАКА " ? " | ||||
| 3338 | 154406 | 037000 | 037000 | ||
| 3339 | 154410 | 030101 | 030101 | ||
| 3340 | 154412 | 004010 | 004010 | ||
| 3341 | 154414 | 004000 | 004000 | ||
| 3342 | 154416 | 000000 | 000000 | ||
| 3343 | |||||
| 3344 | |||||
| 3345 | ;********************************************************************* | ||||
| 3346 | ; | ||||
| 3347 | ;ПОДПРОГРАММА ОЧИСТКИ ЭКРАНА МОНИТОРА | ||||
| 3348 | ; | ||||
| 3349 | ;********************************************************************** | ||||
| 3350 | 154420 | .=154420 | |||
| 3351 | 154420 | 004037 144174 | JSR R0,@#144174 | ||
| 3352 | 154424 | 013701 002006 | MOV @#2006,R1 | ||
| 3353 | 154430 | 012761 001000 000004 | MOV #1000,4(R1) | ||
| 3354 | 154436 | 012761 000002 000006 | MOV #2,6(R1) | ||
| 3355 | 154444 | 012761 001002 000010 | MOV #1002,10(R1) | ||
| 3356 | 154452 | 005061 000016 | CLR 16(R1) | ||
| 3357 | 154456 | 005061 000020 | CLR 20(R1) | ||
| 3358 | 154462 | 005061 000024 | CLR 24(R1) | ||
| 3359 | 154466 | 012761 177777 000022 | MOV #-1,22(R1) | ||
| 3360 | 154474 | 005761 000004 | TST 4(R1) | ||
| 3361 | 154500 | 100375 | BPL .-4 | ||
| 3362 | 154502 | 005061 000006 | CLR 6(R1) | ||
| 3363 | 154506 | 005061 000010 | CLR 10(R1) | ||
| 3364 | 154512 | 000207 | RTS PC | ||
| 3365 | |||||
| 3366 | ;*********************************************************************** | ||||
| 3367 | ; | ||||
| 3368 | ;ПОДПРОГРАММА ВЫБОРКИ И КОНТРОЛЬНОГО СУММИРОВАНИЯ КОДОВ | ||||
| 3369 | ;МИКРО-ПРОГРАММЫ ИЗ ПЗУ МОДУЛЯ. КОДЫ ЗАПИСЫВАЮТСЯ В ЯЧЕЙКИ ОЗУ, | ||||
| 3370 | ;НАЧИНАЯ С АДРЕСА 002000 | ||||
| 3371 | ; | ||||
| 3372 | ;*********************************************************************** | ||||
| 3373 | |||||
| 3374 | 154514 | 113701 001005 | MOVB @#1005,R1 | ||
| 3375 | 154520 | 042701 177600 | BIC #177600,R1 | ||
| 3376 | 154524 | 005065 000002 | CLR 2(R5) | ;УСТАНОВИТЬ УКАЗАТЕЛЬ НА НАЧАЛО ПЗУ МОДУЛЯ | |
| 3377 | 154530 | 012700 000012 | MOV #12,R0 | ||
| 3378 | 154534 | 005715 | TST @R5 | ;ПЕРЕМЕСТИТЬ УКАЗАТЕЛЬ НА БАЙТ 13 ПЗУ МОДУЛЯ | |
| 3379 | 154536 | 077002 | SOB R0,.-2 | ||
| 3380 | 154540 | 010246 | MOV R2,-(SP) | ||
| 3381 | 154542 | 012700 001000 | MOV #1000,R0 | ||
| 3382 | 154546 | 012704 000020 | MOV #20,R4 | ||
| 3383 | 154552 | 111520 | MOVB @R5,(R0)+ | ;ПЕРЕПИСАТЬ СОДЕРЖИМОЕ БАЙТОВ 13-32 ИЗ ПЗУ | |
| 3384 | 154554 | 077402 | SOB R4,.-2 | ;МОДУЛЯ В ОЗУ, НАЧИНАЯ С АДРЕСА 001000 | |
| 3385 | 154556 | 012704 001000 | MOV #1000,R4 | ||
| 3386 | 154562 | 011602 | MOV @SP,R2 | ;ВЫБРАТЬ АДРЕС ОЖИДАЕМЫХ ДАННЫХ | |
| 3387 | |||||
| 3388 | ;ПРОВЕРИТЬ СОДЕРЖИМОЕ БАЙТОВ 13-24 ИЗ ПЗУ МОДУЛЯ НА СОВПАДЕНИЕ С | ||||
| 3389 | ;КОНТРОЛЬНОЙ ИНФОРМАЦИЕЙ, ВЫБИРАЕМОЙ ИЗ ЯЧЕЕК 164732-164742 | ||||
| 3390 | ;ДИАГНОСТИЧЕСКОГО ПЗУ | ||||
| 3391 | 154564 | 012700 000012 | MOV #12,R0 | ||
| 3392 | 154570 | 122224 | CMPB (R2)+,(R4)+ | ;ДАННЫЕ СОВПАДАЮТ? | |
| 3393 | 154572 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3394 | 154574 | 011602 | MOV @SP,R2 | ;ВЫБРАТЬ АДРЕС ОЖИДАЕМЫХ ДАННЫХ | |
| 3395 | 154576 | 000137 154774 | JMP @#154774 | ||
| 3396 | 154602 | 077006 | SOB R0,154570 | ||
| 3397 | 154604 | 105737 001017 | TSTB @#1017 | ;БАЙТ 32 ИЗ ПЗУ МОДУЛЯ = 0? | |
| 3398 | 154610 | 001012 | BNE 154636 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3399 | 154612 | 113737 001015 001022 | MOVB @#1015,@#1022 | ;ПОЛУЧИТЬ В 001022 СЧЕТЧИК БАЙТОВ МИКРО-ПРОГРАММЫ | |
| 3400 | 154620 | 113737 001016 001023 | MOVB @#1016,@#1023 | ||
| 3401 | 154626 | 023727 001022 060000 | CMP @#1022,#60000 | ;СЧЕТЧИК МЕНЬШЕ 60000? | |
| 3402 | 154634 | 101403 | BLOS .+10 | ;ПЕРЕЙТИ , ЕСЛИ ДА | |
| 3403 | 154636 | 012702 177777 | MOV #-1,R2 | ;УСТАНОВИТЬ ПРИЗНАК ОШИБКИ | |
| 3404 | 154642 | 000454 | BR 154774 | ||
| 3405 | 154644 | 005065 000002 | CLR 2(R5) | ;УСТАНОВИТЬ УКАЗАТЕЛЬ НА НАЧАЛО ПЗУ МОДУЛЯ | |
| 3406 | 154650 | 005715 | TST @R5 | ;ПЕРЕМЕСТИТЬ УКАЗАТЕЛЬ НА НАЧАЛО МИКРО-ПРОГРАММЫ | |
| 3407 | 154652 | 005337 001012 | DEC @#1012 | ||
| 3408 | 154656 | 001374 | BNE .-6 | ||
| 3409 | 154660 | 105737 001014 | TSTB @#1014 | ||
| 3410 | 154664 | 001403 | BEQ .+10 | ||
| 3411 | 154666 | 105337 001014 | DECB @#1014 | ||
| 3412 | 154672 | 000766 | BR 154650 | ||
| 3413 | 154674 | 012700 002000 | MOV #2000,R0 | ;ВЫБРАТЬ АДРЕС ОЗУ | |
| 3414 | 154700 | 013704 001022 | MOV @#1022,R4 | ;ВЫБРАТЬ СЧЕТЧИК БАЙТОВ МИКРО-ПРОГРАММЫ | |
| 3415 | 154704 | 006204 | ASR R4 | ;ПОЛУЧИТЬ СЧЕТЧИК ЯЧЕЕК МИКРО-ПРОГРАММЫ | |
| 3416 | |||||
| 3417 | ;ПРОИЗВЕСТИ СЧИТЫВАНИЕ МИКРО-ПРОГРАММЫ ИЗ ПЗУ МОДУЛЯ В ОЗУ | ||||
| 3418 | ;С ОДНОВРЕМЕННЫМ КОНТРОЛЬНЫМ СУММИРОВАНИЕМ | ||||
| 3419 | |||||
| 3420 | 154706 | 012737 177777 001020 | MOV #-1,@#1020 | ||
| 3421 | 154714 | 010146 | MOV R1,-(SP) | ||
| 3422 | 154716 | 111537 001022 | MOVB @R5,@#1022 | ;СЧИТАТЬ БАЙТ МИКРО-ПРОГРАММЫ | |
| 3423 | 154722 | 111537 001023 | MOVB @R5,@#1023 | ;СЧИТАТЬ СЛЕДУЮЩИЙ БАЙТ МИКРО-ПРОГРАММЫ | |
| 3424 | 154726 | 013701 001022 | MOV @#1022,R1 | ;ПРОИЗВЕСТИ КОНТРОЛЬНОЕ СУММИРОВАНИЕ | |
| 3425 | 154732 | 074137 001020 | XOR R1,@#1020 | ||
| 3426 | 154736 | 000241 | CLC | ||
| 3427 | 154740 | 006137 001020 | ROL @#1020 | ||
| 3428 | 154744 | 005537 001020 | ADC @#1020 | ||
| 3429 | 154750 | 010120 | MOV R1,(R0)+ | ;ЗАПИСАТЬ 2 БАЙТА МИКРО-ПРОГРАММЫ В ОЗУ | |
| 3430 | 154752 | 077417 | SOB R4,154716 | ;ПЕРЕЙТИ К СЧИТЫВАНИЮ СЛЕДУЮЩИХ КОДОВ | |
| 3431 | ;МИКРО-ПРОГРАММЫ | ||||
| 3432 | 154754 | 012601 | MOV (SP)+,R1 | ||
| 3433 | 154756 | 005737 001020 | TST @#1020 | ;КС=0? | |
| 3434 | 154762 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3435 | 154764 | 012702 177776 | MOV #177776,R2 | ;ОШИБКА КС КОДОВ МИКРО-ПРОГРАММЫ | |
| 3436 | ;ВЫБРАТЬ КОД 177776 ДЛЯ ЗАПИСИ В ТАБЛИЦУ | ||||
| 3437 | ;КОНФИГУРАЦИИ ПВК | ||||
| 3438 | 154770 | 000401 | BR .+4 | ||
| 3439 | 154772 | 005002 | CLR R2 | ;УСТАНОВИТЬ ПРИЗНАК ОТСУТСТВИЯ ОШИБОК | |
| 3440 | 154774 | 020216 | CMP R2,@SP | ||
| 3441 | 154776 | 001004 | BNE 155010 | ||
| 3442 | 155000 | 005301 | DEC R1 | ||
| 3443 | 155002 | 001257 | BNE 154542 | ||
| 3444 | 155004 | 012702 177777 | MOV #-1,R2 | ||
| 3445 | 155010 | 005726 | TST (SP)+ | ||
| 3446 | 155012 | 000207 | RTS PC | ||
| 3447 | |||||
| 3448 | ;********************************************************************** | ||||
| 3449 | ; | ||||
| 3450 | ;ПОДПРОГРАММА ЗАПИСИ АДРЕСОВ ПОДПРОГРАММ ФOРМИРОВАНИЯ ИЗОБРАЖЕНИЯ | ||||
| 3451 | ;НА ЭКРАНЕ МОНИТОРА В ЯЧЕЙКИ 002000-0002004,002010 | ||||
| 3452 | ; | ||||
| 3453 | ;*********************************************************************** | ||||
| 3454 | 155014 | 005037 137556 | CLR @#137556 | ;ОЧИСТИТЬ ПРИЗНАК ОШИБОК | |
| 3455 | 155020 | 032737 000020 173700 | BIT #20,@#173700 | ;МОНИТОР ПОДСОЕДИНЕН? | |
| 3456 | 155026 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3457 | 155030 | 012737 000004 173704 | MOV #4,@#173704 | ;МОНИТОР НЕ ПРИСОЕДИНЕН | |
| 3458 | ;ВКЛЮЧИТЬ СВЕТОВЫЕ ИНДИКАТОРЫ 1,2,4 | ||||
| 3459 | |||||
| 3460 | ;ОПРЕДЕЛИТЬ НОМЕР ПОЗИЦИИ ВИДЕОКОНТРОЛЛЕРА, ИСПОЛЬЗУЯ ИДЕНТИФИКАЦИОННЫЙ | ||||
| 3461 | ;КОД ВИДЕОКОНТРОЛЛЕРА И СОДЕРЖИМОЕ ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК | ||||
| 3462 | 155036 | 005002 | CLR R2 | ||
| 3463 | 155040 | 010246 | MOV R2,-(SP) | ||
| 3464 | 155042 | 011602 | MOV @SP,R2 | ||
| 3465 | 155044 | 010201 | MOV R2,R1 | ||
| 3466 | 155046 | 072127 000002 | ASH #2,R1 | ||
| 3467 | 155052 | 005401 | NEG R1 | ||
| 3468 | 155054 | 105761 137756 | TSTB 137756(R1) | ;ИСПРАВНЫЙ МОДУЛЬ? | |
| 3469 | 155060 | 001047 | BNE 155200 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3470 | 155062 | 022761 001002 137760 | CMP #1002,137760(R1) | ;В ДАННУЮ ПОЗИЦИЮ УСТАНОВЛЕН ВИДЕОКОНТРОЛЛЕР? | |
| 3471 | 155070 | 001024 | BNE 155142 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3472 | 155072 | 012737 143420 002000 | MOV #143420,@#2000 | ;ВЫБРАТЬ В ЯЧЕЙКИ 002000-002004, 002010 | |
| 3473 | 155100 | 012737 151362 002002 | MOV #151362,@#2002 | ;АДРЕСА ПОДПРОГРАММ ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ | |
| 3474 | 155106 | 012737 153732 002004 | MOV #153732,@#2004 | ||
| 3475 | 155114 | 012737 154420 002010 | MOV #154420,@#2010 | ||
| 3476 | 155122 | 012602 | MOV (SP)+,R2 | ||
| 3477 | 155124 | 072227 000007 | ASH #7,R2 | ||
| 3478 | 155130 | 062702 174000 | ADD #174000,R2 | ;ПОЛУЧИТЬ АДРЕС ВИДЕОКОНТРОЛЛЕРА | |
| 3479 | 155134 | 010237 002006 | MOV R2,@#2006 | ;ЗАПИСАТЬ АДРЕС ВИДЕОКОНТРОЛЛЕРА | |
| 3480 | 155140 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 3481 | 155142 | 010205 | MOV R2,R5 | ||
| 3482 | 155144 | 012746 000010 | MOV #10,-(SP) | ||
| 3483 | 155150 | 004737 167340 | JSR PC,@#167340 | ||
| 3484 | 155154 | 103410 | BCS 155176 | ||
| 3485 | 155156 | 013702 164756 | MOV @#164756,R2 | ||
| 3486 | 155162 | 004737 154514 | JSR PC,@#154514 | ||
| 3487 | 155166 | 005702 | TST R2 | ||
| 3488 | 155170 | 001402 | BEQ .+6 | ||
| 3489 | 155172 | 005726 | TST (SP)+ | ||
| 3490 | 155174 | 000752 | BR 155122 | ||
| 3491 | 155176 | 005726 | TST (SP)+ | ||
| 3492 | 155200 | 005216 | INC @SP | ||
| 3493 | 155202 | 021627 000010 | CMP @SP,#10 | ||
| 3494 | 155206 | 001315 | BNE 155042 | ||
| 3495 | 155210 | 012737 155242 002000 | MOV #155242,@#2000 | ||
| 3496 | 155216 | 012737 155242 002002 | MOV #155242,@#2002 | ||
| 3497 | 155224 | 012737 155242 002004 | MOV #155242,@#2004 | ||
| 3498 | 155232 | 012737 155242 002010 | MOV #155242,@#2010 | ||
| 3499 | 155240 | 000730 | BR 155122 | ||
| 3500 | 155242 | 000207 | RTS PC | ||
| 3501 | |||||
| 3502 | |||||
| 3503 | ;*********************************************************************** | ||||
| 3504 | ; | ||||
| 3505 | ;ПОДПРОГРАММА "НАЧАЛЬНЫЙ ЗАГРУЗЧИК" С НГМД | ||||
| 3506 | ;ПОДПРОГРАММА ЗАГРУЖАЕТ НУЛЕВОЙ БЛОК ОПЕРАЦИОННОЙ СИСТЕМЫ ( ЗАГРУЗЧИК ) | ||||
| 3507 | ; | ||||
| 3508 | ;********************************************************************* | ||||
| 3509 | |||||
| 3510 | 155244 | 005002 | CLR R2 | ||
| 3511 | 155246 | 020027 000003 | CMP R0,#3 | ||
| 3512 | 155252 | 003043 | BGT 155362 | ||
| 3513 | 155254 | 010002 | MOV R0,R2 | ||
| 3514 | 155256 | 006302 | ASL R2 | ||
| 3515 | 155260 | 152702 000100 | BISB #100,R2 | ||
| 3516 | 155264 | 110261 000004 | MOVB R2,4(R1) | ;ЗАДАТЬ КОМАНДУ " ЧТЕНИЕ СЕКТОРА" | |
| 3517 | 155270 | 112761 000001 000006 | MOVB #1,6(R1) | ;ЗАДАТЬ АДРЕС ДОРОЖКИ | |
| 3518 | 155276 | 112761 000001 000010 | MOVB #1,10(R1) | ;ЗАДАТЬ АДРЕС СЕКТОРА | |
| 3519 | 155304 | 112761 000000 000024 | MOVB #0,24(R1) | ;ЗАПУСТИТЬ КОМАНДУ | |
| 3520 | 155312 | 132761 000010 000004 | BITB #10,4(R1) | ;ОЖИДАНИЕ ЗАВЕРШЕНИЯ ОПЕРАЦИИ | |
| 3521 | 155320 | 001774 | BEQ .-6 | ||
| 3522 | 155322 | 105761 000004 | TSTB 4(R1) | ;ПРОИЗОШЛА ОШИБКА? | |
| 3523 | 155326 | 100415 | BMI 155362 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3524 | 155330 | 005002 | CLR R2 | ;ВЫБРАТЬ АДРЕС ОЗУ | |
| 3525 | 155332 | 105761 000022 | TSTB 22(R1) | ;УСТАНОВИТЬ УКАЗАТЕЛЬ НА НАЧАЛО БУФЕРА | |
| 3526 | 155336 | 012703 001000 | MOV #1000,R3 | ;УСТАНОВИТЬ СЧЕТЧИК БАЙТОВ БУФЕРА | |
| 3527 | 155342 | 005303 | DEC R3 | ||
| 3528 | 155344 | 002403 | BLT .+10 | ||
| 3529 | 155346 | 116122 000020 | MOVB 20(R1),(R2)+ | ;СЧИТАТЬ БУФЕР В ОЗУ | |
| 3530 | 155352 | 000773 | BR 155342 | ||
| 3531 | 155354 | 012702 055104 | MOV #55104,R2 | ;ВЫБРАТЬ ЛОГИЧЕСКОЕ ИМЯ НГМД (DZ) | |
| 3532 | 155360 | 005727 000261 | TST #261 | ||
| 3533 | 155364 | 000207 | RTS PC | ||
| 3534 | |||||
| 3535 | ;*********************************************************************** | ||||
| 3536 | ; | ||||
| 3537 | ;ПОДПРОГРАММА "НАЧАЛЬНЫЙ ЗАГРУЗЧИК" С НМД | ||||
| 3538 | ;ПОДПРОГРАММА ЗАГРУЖАЕТ НУЛЕВОЙ БЛОК ОПЕРАЦИОННОЙ СИСТЕМЫ (ЗАГРУЗЧИК) | ||||
| 3539 | ;С НМД | ||||
| 3540 | ; | ||||
| 3541 | ;********************************************************************** | ||||
| 3542 | 155366 | 005002 | CLR R2 | ||
| 3543 | 155370 | 005700 | TST R0 | ||
| 3544 | 155372 | 001051 | BNE 155516 | ||
| 3545 | 155374 | 132761 100000 000020 | BITB #100000,20(R1) | ;ОЖИДАНИЕ ГОТОВНОСТИ КОНТРОЛЛЕРА | |
| 3546 | 155402 | 001374 | BNE .-6 | ||
| 3547 | 155404 | 012761 000000 000014 | MOV #0,14(R1) | ;ЗАДАТЬ НОМЕР ПОВЕРХНОСТИ | |
| 3548 | 155412 | 012761 000001 000006 | MOV #1,6(R1) | ;ЗАДАТЬ АДРЕС СЕКТОРА | |
| 3549 | 155420 | 012761 000000 000012 | MOV #0,12(R1) | ;ЗАДАТЬ АДРЕС ЦИЛИНДРА | |
| 3550 | 155426 | 012761 000040 000016 | MOV #40,16(R1) | ;ВЫПОЛНИТЬ КОМАНДУ "ЧТЕНИЕ СЕКТОРА" | |
| 3551 | 155434 | 132761 100000 000020 | BITB #100000,20(R1) | ;ОЖИДАНИЕ ГОТОВНОСТИ КОНТРОЛЛЕРА | |
| 3552 | 155442 | 001374 | BNE .-6 | ||
| 3553 | 155444 | 132761 000200 000020 | BITB #200,20(R1) | ||
| 3554 | 155452 | 001774 | BEQ .-6 | ||
| 3555 | 155454 | 132761 000001 000017 | BITB #1,17(R1) | ;ПРОИЗОШЛА ОШИБКА? | |
| 3556 | 155462 | 001015 | BNE 155516 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 3557 | 155464 | 005002 | CLR R2 | ;ВЫБРАТЬ АДРЕС ОЗУ, РАВНЫЙ 000000 | |
| 3558 | 155466 | 012703 000400 | MOV #400,R3 | ;УСТАНОВИТЬ СЧЕТЧИК СЛОВ БУФЕРА | |
| 3559 | 155472 | 032761 000200 000020 | BIT #200,20(R1) | ||
| 3560 | 155500 | 001774 | BEQ .-6 | ||
| 3561 | 155502 | 016122 000010 | MOV 10(R1),(R2)+ | ;СЧИТАТЬ БУФЕР В ОЗУ, НАЧИНАЯ С АДРЕСА 000000 | |
| 3562 | 155506 | 077307 | SOB R3,155472 | ||
| 3563 | 155510 | 012702 053504 | MOV #53504,R2 | ;ВЫБРАТЬ ЛОГИЧЕСКОЕ ИМЯ НМД (DW) | |
| 3564 | 155514 | 005727 000261 | TST #261 | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 3565 | 155520 | 000207 | RTS PC | ||
| 3566 | |||||
| 3567 | 160000 | .=160000 | |||
| 3568 | 160000 | 000005 | RESET | ;ВЫПОЛНИТЬ КОМАНДУ RESET | |
| 3569 | 160002 | 005737 173406 | TST @#173406 | ;ЗАДАТЬ РЕЖИМ РАБОТЫ ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО | |
| 3570 | ;УСТРОЙСТВА: | ||||
| 3571 | 160006 | 012737 000116 173404 | MOV #116,@#173404 | ;ЗАДАТЬ АСИНХРОННЫЙ РЕЖИМ РАБОТЫ С 8-Ю | |
| 3572 | ;ИНФОРМАЦИОННЫМИ И 1-СТОПОВЫМ БИТОМ | ||||
| 3573 | 160014 | 012737 000276 173404 | MOV #276,@#173404 | ;ЗАДАТЬ СКОРОСТЬ ОБМЕНА - 9600 БИТ/С | |
| 3574 | 160022 | 012737 000047 173406 | MOV #47,@#173406 | ;РАЗРЕШИТЬ ПРИЕМ И ПЕРЕДАЧУ В НОРМАЛЬНОМ РЕЖИМЕ | |
| 3575 | 160030 | 052737 000200 173700 | BIS #200,@#173700 | ;РАЗРЕШИТЬ ОСТАНОВ ЭВМ | |
| 3576 | |||||
| 3577 | ;*********************************************************************** | ||||
| 3578 | ; | ||||
| 3579 | ; ПОДПРОГРАММА ПРОВЕРКИ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА | ||||
| 3580 | ; | ||||
| 3581 | ;ПРИ ОБНАРУЖЕНИИ ОШИБКИ ПРИ ПРОВЕРКЕ ЦП СВЕТЯТСЯ ВСЕ 4 СВЕТОВЫХ | ||||
| 3582 | ;ИНДИКАТОРА, НА ДИСПЛЕЙ ИНФОРМАЦИЯ НЕ ВЫВОДИТСЯ, УПРАВЛЕНИЕ ПО КОМАНДЕ | ||||
| 3583 | ;JSR R0,XXXXXX ПЕРЕДАЕТСЯ ЯЧЕЙКЕ XXXXXX, В КОТОРОЙ ЗАПИСАНА КОМАНДА | ||||
| 3584 | ;BR .+0 (000777). | ||||
| 3585 | ;ПРИ НАЛИЧИИ ПУЛЬТОВОГО ТЕРМИНАЛА ДЛЯ ОПРЕДЕЛЕНИЯ ПРИЧИНЫ ОШИБКИ | ||||
| 3586 | ;НЕОБХОДИМО ПРОИЗВЕСТИ ОСТАНОВ И, ИСПОЛЬЗУЯ АДРЕС ОСТАНОВА И СОДЕРЖИМОЕ | ||||
| 3587 | ;ВСПОМОГАТЕЛЬНЫХ РЕГИСТРОВ/ЯЧЕЕК, ОПРЕДЕЛИТЬ ПРИЧИНУ ОШИБКИ. | ||||
| 3588 | ;*********************************************************************** | ||||
| 3589 | |||||
| 3590 | 160036 | 012700 000340 | MOV #340,R0 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП = 7 | |
| 3591 | 160042 | 106400 | MTPS R0 | ||
| 3592 | 160044 | 012706 001002 | MOV #1002,SP | ;УСТАНОВИТЬ СТЕК | |
| 3593 | 160050 | 005001 | CLR R1 | ;ОЧИСТИТЬ РЕГИСТРЫ R1-R5 | |
| 3594 | 160052 | 005002 | CLR R2 | ||
| 3595 | 160054 | 005003 | CLR R3 | ||
| 3596 | 160056 | 005004 | CLR R4 | ||
| 3597 | 160060 | 005005 | CLR R5 | ||
| 3598 | 160062 | 004037 160070 | JSR R0,@#160070 | ;ВЫПОЛНИТЬ КОМАНДУ JSR | |
| 3599 | 160066 | 000777 | BR .+0 | ;ОШИБКА. ПРЕКРАТИТЬ ВЫПОЛНЕНИЕ ВНУТРЕННЕГО | |
| 3600 | ;АВТО-ТЕСТА | ||||
| 3601 | |||||
| 3602 | ;********************************************************************** | ||||
| 3603 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНД ВЕТВЛЕНИЯ | ||||
| 3604 | ;ПРИ ОЧИСТКЕ ВСЕХ ПРИЗНАКОВ, | ||||
| 3605 | ;ПРИ УСТАНОВКЕ ВСЕХ ПРИЗНАКОВ, | ||||
| 3606 | ;ПО ПРИЗНАКУ N | ||||
| 3607 | ;ОСТАНОВ 160066, R0=160066 | ||||
| 3608 | |||||
| 3609 | 160070 | 000257 | CCC | ;ОЧИСТИТЬ ПРИЗНАКИ N,Z,V,C | |
| 3610 | |||||
| 3611 | ;ПРОВЕРИТЬ КОМАНДЫ ВЕТВЛЕНИЯ | ||||
| 3612 | 160072 | 001775 | BEQ .-4 | ;ПЕРЕЙТИ, ЕСЛИ Z=1 | |
| 3613 | 160074 | 100774 | BMI .-6 | ;ПЕРЕЙТИ, ЕСЛИ N=1 | |
| 3614 | 160076 | 102773 | BVS 160066 | ;ПЕРЕЙТИ, ЕСЛИ V=1 | |
| 3615 | 160100 | 103772 | BCS 160066 | ;ПЕРЕЙТИ, ЕСЛИ C=1 | |
| 3616 | 160102 | 002771 | BLT 160066 | ;ПЕРЕЙТИ, ЕСЛИ NVV=1 | |
| 3617 | 160104 | 003770 | BLE 160066 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=1 | |
| 3618 | 160106 | 101767 | BLOS 160066 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=1 | |
| 3619 | 160110 | 101015 | BHI 160144 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=0 | |
| 3620 | 160112 | 100365 | BPL 160066 | ;ПЕРЕЙТИ, ЕСЛИ N=0 | |
| 3621 | 160114 | 002364 | BGE 160066 | ;ПЕРЕЙТИ, ЕСЛИ NVV=0 | |
| 3622 | 160116 | 003363 | BGT 160066 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=0 | |
| 3623 | 160120 | 002400 | BLT .+2 | ;ПЕРЕЙТИ, ЕСЛИ NVV=1 | |
| 3624 | 160122 | 000277 | SCC | ;УСТАНОВИТЬ ПРИЗНАКИ N,Z,V,C | |
| 3625 | |||||
| 3626 | ;ПРОВЕРИТЬ КОМАНДЫ ВЕТВЛЕНИЯ | ||||
| 3627 | 160124 | 001360 | BNE 160066 | ;ПЕРЕЙТИ, ЕСЛИ Z=0 | |
| 3628 | 160126 | 100357 | BPL 160066 | ;ПЕРЕЙТИ, ЕСЛИ N=0 | |
| 3629 | 160130 | 102356 | BVC 160066 | ;ПЕРЕЙТИ, ЕСЛИ V=0 | |
| 3630 | 160132 | 103355 | BCC 160066 | ;ПЕРЕЙТИ, ЕСЛИ C=0 | |
| 3631 | 160134 | 003354 | BGT 160066 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=0 | |
| 3632 | 160136 | 101353 | BHI 160066 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=0 | |
| 3633 | 160140 | 002752 | BLT 160066 | ;ПЕРЕЙТИ, ЕСЛИ NVV=1 | |
| 3634 | 160142 | 002002 | BGE .+6 | ;ПЕРЕЙТИ, ЕСЛИ NVV=0 | |
| 3635 | 160144 | 000270 | SEN | ;УСТАНОВИТЬ N-РАЗРЯД | |
| 3636 | 160146 | 000761 | BR 160112 | ;ПЕРЕЙТИ НА ПРОВЕРКУ КОМАНД ВЕТВЛЕНИЯ | |
| 3637 | |||||
| 3638 | ;*********************************************************************** | ||||
| 3639 | ;ПРОВЕРКА ПРАВИЛЬНОСТИ ВЫПОЛНЕНИЯ КОМАНДЫ JSR | ||||
| 3640 | |||||
| 3641 | 160150 | 022700 160066 | CMP #160066,R0 | ;R0 СОДЕРЖИТ АДРЕС КОМАНДЫ, СЛЕДУЮЩЕЙ ЗА JSR? | |
| 3642 | 160154 | 001344 | BNE 160066 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 3643 | 160156 | 022706 001000 | CMP #1000,SP | ;УС УМЕНЬШИЛСЯ НА 2 ПОСЛЕ ВЫПОЛНЕНИЯ КОМАНДЫ JSR? | |
| 3644 | 160162 | 001341 | BNE 160066 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 3645 | 160164 | 022737 000340 001000 | CMP #340,@#1000 | ;СОДЕРЖИМОЕ R0 ПРАВИЛЬНО ЗАПИСАНО В СТЕК? | |
| 3646 | 160172 | 001335 | BNE 160066 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 3647 | 160174 | 005726 | TST (SP)+ | ;УВЕЛИЧИТЬ УС | |
| 3648 | 160176 | 022706 001002 | CMP #1002,SP | ;УС = 1002? | |
| 3649 | 160202 | 001331 | BNE 160066 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 3650 | ;*************************************************************** | ||||
| 3651 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ ОДНОАДРЕСНЫХ КОМАНД С РЕГИСТРОВЫМ | ||||
| 3652 | ;МЕТОДОМ АДРЕСАЦИИ (ОПЕРАНД В R1) | ||||
| 3653 | ;АДРЕС ОСТАНОВА 160066, R0=160320 | ||||
| 3654 | |||||
| 3655 | 160204 | 000277 | SCC | ;УСТАНОВИТЬ ВСЕ ПРИЗНАКИ | |
| 3656 | 160206 | 005001 | CLR R1 | ||
| 3657 | 160210 | 001041 | BNE 160314 | ||
| 3658 | 160212 | 101040 | BHI 160314 | ||
| 3659 | 160214 | 003037 | BGT 160314 | ||
| 3660 | 160216 | 005101 | COM R1 | ||
| 3661 | 160220 | 103035 | BCC 160314 | ||
| 3662 | 160222 | 003034 | BGT 160314 | ||
| 3663 | 160224 | 005401 | NEG R1 | ||
| 3664 | 160226 | 101032 | BHI 160314 | ||
| 3665 | 160230 | 002431 | BLT 160314 | ||
| 3666 | 160232 | 006001 | ROR R1 | ||
| 3667 | 160234 | 103027 | BCC 160314 | ||
| 3668 | 160236 | 100026 | BPL 160314 | ||
| 3669 | 160240 | 005501 | ADC R1 | ||
| 3670 | 160242 | 103424 | BCS 160314 | ||
| 3671 | 160244 | 000261 | SEC | ||
| 3672 | 160246 | 100022 | BPL 160314 | ||
| 3673 | 160250 | 002021 | BGE 160314 | ||
| 3674 | 160252 | 006101 | ROL R1 | ||
| 3675 | 160254 | 103017 | BCC 160314 | ||
| 3676 | 160256 | 102016 | BVC 160314 | ||
| 3677 | 160260 | 006201 | ASR R1 | ||
| 3678 | 160262 | 103014 | BCC 160314 | ||
| 3679 | 160264 | 102013 | BVC 160314 | ||
| 3680 | 160266 | 005601 | SBC R1 | ||
| 3681 | 160270 | 003011 | BGT 160314 | ||
| 3682 | 160272 | 006301 | ASL R1 | ||
| 3683 | 160274 | 002407 | BLT 160314 | ||
| 3684 | 160276 | 005201 | INC R1 | ||
| 3685 | 160300 | 001405 | BEQ 160314 | ||
| 3686 | 160302 | 005301 | DEC R1 | ||
| 3687 | 160304 | 001003 | BNE .+10 | ||
| 3688 | 160306 | 005701 | TST R1 | ||
| 3689 | 160310 | 003001 | BGT .+4 | ||
| 3690 | 160312 | 001402 | BEQ .+6 | ||
| 3691 | 160314 | 004037 160066 | JSR R0,@#160066 | ||
| 3692 | |||||
| 3693 | ;*********************************************************************** | ||||
| 3694 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ ОДНОАДРЕСНЫХ БАЙТОВЫХ | ||||
| 3695 | ;КОМАНД И КОМАНДЫ MOVB С РЕГИСТРОВЫМ МЕТОДОМ АДРЕСАЦИИ ОПЕРАНДА | ||||
| 3696 | ;(ОПЕРАНД В МЛ. БАЙТЕ R2) | ||||
| 3697 | ;АДРЕС ОСТАНОВА 160066, R0=160434 | ||||
| 3698 | |||||
| 3699 | 160320 | 112702 000377 | MOVB #377,R2 | ||
| 3700 | 160324 | 001405 | BEQ 160340 | ||
| 3701 | 160326 | 105002 | CLRB R2 | ||
| 3702 | 160330 | 101037 | BHI 160430 | ||
| 3703 | 160332 | 105102 | COMB R2 | ||
| 3704 | 160334 | 103035 | BCC 160430 | ||
| 3705 | 160336 | 100034 | BPL 160430 | ||
| 3706 | 160340 | 105602 | SBCB R2 | ||
| 3707 | 160342 | 103432 | BCS 160430 | ||
| 3708 | 160344 | 105202 | INCB R2 | ||
| 3709 | 160346 | 100030 | BPL 160430 | ||
| 3710 | 160350 | 105402 | NEGB R2 | ||
| 3711 | 160352 | 101026 | BHI 160430 | ||
| 3712 | 160354 | 105302 | DECB R2 | ||
| 3713 | 160356 | 103024 | BCC 160430 | ||
| 3714 | 160360 | 003023 | BGT 160430 | ||
| 3715 | 160362 | 000302 | SWAB R2 | ||
| 3716 | 160364 | 001421 | BEQ 160430 | ||
| 3717 | 160366 | 106302 | ASLB R2 | ||
| 3718 | 160370 | 002017 | BGE 160430 | ||
| 3719 | 160372 | 106002 | RORB R2 | ||
| 3720 | 160374 | 103415 | BCS 160430 | ||
| 3721 | 160376 | 003414 | BLE 160430 | ||
| 3722 | 160400 | 106202 | ASRB R2 | ||
| 3723 | 160402 | 103012 | BCC 160430 | ||
| 3724 | 160404 | 102411 | BVS 160430 | ||
| 3725 | 160406 | 106102 | ROLB R2 | ||
| 3726 | 160410 | 100007 | BPL 160430 | ||
| 3727 | 160412 | 001406 | BEQ 160430 | ||
| 3728 | 160414 | 105502 | ADCB R2 | ||
| 3729 | 160416 | 100404 | BMI 160430 | ||
| 3730 | 160420 | 001003 | BNE .+10 | ||
| 3731 | 160422 | 105702 | TSTB R2 | ||
| 3732 | 160424 | 103401 | BCS .+4 | ||
| 3733 | 160426 | 001402 | BEQ .+6 | ||
| 3734 | 160430 | 004037 160066 | JSR R0,@#160066 | ||
| 3735 | |||||
| 3736 | ;*********************************************************************** | ||||
| 3737 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНДЫ MOV С МЕТОДАМИ АДРЕСАЦИИ 27, 37, И 77 | ||||
| 3738 | ;ОПЕРАНДА ИСТОЧНИКА | ||||
| 3739 | ;АДРЕС ОСТАНОВА 160650, R0=160502 | ||||
| 3740 | |||||
| 3741 | 160434 | 012701 160636 | MOV #160636,R1 | ;ПРОВЕРИТЬ МЕТОД АДРЕСАЦИИ 27 | |
| 3742 | 160440 | 022701 160636 | CMP #160636,R1 | ||
| 3743 | 160444 | 001014 | BNE 160476 | ||
| 3744 | 160446 | 013702 160636 | MOV @#160636,R2 | ;ПРОВЕРИТЬ МЕТОД АДРЕСАЦИИ 37 | |
| 3745 | 160452 | 013703 160636 | MOV @#160636,R3 | ;ПРОВЕРИТЬ МЕТОД АДРЕСАЦИИ 37 | |
| 3746 | 160456 | 021102 | CMP @R1,R2 | ||
| 3747 | 160460 | 001006 | BNE 160476 | ||
| 3748 | 160462 | 021103 | CMP @R1,R3 | ||
| 3749 | 160464 | 001004 | BNE 160476 | ||
| 3750 | 160466 | 017704 000144 | MOV @160636,R4 | ;ПРОВЕРИТЬ МЕТОД АДРЕСАЦИИ 77 | |
| 3751 | 160472 | 021204 | CMP @R2,R4 | ||
| 3752 | 160474 | 001402 | BEQ .+6 | ||
| 3753 | 160476 | 004037 160650 | JSR R0,@#160650 | ||
| 3754 | |||||
| 3755 | |||||
| 3756 | ;*********************************************************************** | ||||
| 3757 | ;ПРОВЕРКА ПРЯМОЙ И КОСВЕННОЙ АДРЕСАЦИИ ОПЕРАНДА ИСТОЧНИКА | ||||
| 3758 | ;ПО КОМАНДЕ MOV | ||||
| 3759 | ;АДРЕС ОСТАНОВА 160650, R0=160636 | ||||
| 3760 | |||||
| 3761 | 160502 | 012700 160636 | MOV #160636,R0 | ||
| 3762 | 160506 | 012001 | MOV (R0)+,R1 | ||
| 3763 | 160510 | 012002 | MOV (R0)+,R2 | ;АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3764 | 160512 | 022700 160642 | CMP #160642,R0 | ||
| 3765 | 160516 | 001045 | BNE 160632 | ||
| 3766 | 160520 | 011203 | MOV @R2,R3 | ;КОСВЕННО-РЕГИСТРОВЫЙ МЕТОД | |
| 3767 | 160522 | 022703 052525 | CMP #52525,R3 | ||
| 3768 | 160526 | 001041 | BNE 160632 | ||
| 3769 | 160530 | 012204 | MOV (R2)+,R4 | ;АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3770 | 160532 | 020403 | CMP R4,R3 | ||
| 3771 | 160534 | 001036 | BNE 160632 | ||
| 3772 | 160536 | 012204 | MOV (R2)+,R4 | ;АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3773 | 160540 | 022704 125252 | CMP #125252,R4 | ||
| 3774 | 160544 | 001032 | BNE 160632 | ||
| 3775 | 160546 | 014205 | MOV -(R2),R5 | ;АВТОДЕКРЕМЕНТНЫЙ МЕТОД | |
| 3776 | 160550 | 020405 | CMP R4,R5 | ||
| 3777 | 160552 | 001027 | BNE 160632 | ||
| 3778 | 160554 | 014205 | MOV -(R2),R5 | ;АВТОДЕКРЕМЕНТНЫЙ МЕТОД | |
| 3779 | 160556 | 020503 | CMP R5,R3 | ||
| 3780 | 160560 | 001024 | BNE 160632 | ||
| 3781 | 160562 | 015001 | MOV @-(R0),R1 | ;КОСВЕННО-АВТОДЕКРЕМЕНТНЫЙ МЕТОД | |
| 3782 | 160564 | 020103 | CMP R1,R3 | ||
| 3783 | 160566 | 001021 | BNE 160632 | ||
| 3784 | 160570 | 015001 | MOV @-(R0),R1 | ;КОСВЕННО-АВТОДЕКРЕМЕНТНЫЙ МЕТОД | |
| 3785 | 160572 | 020401 | CMP R4,R1 | ||
| 3786 | 160574 | 001016 | BNE 160632 | ||
| 3787 | 160576 | 013002 | MOV @(R0)+,R2 | ;КОСВЕННО-АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3788 | 160600 | 020204 | CMP R2,R4 | ||
| 3789 | 160602 | 001013 | BNE 160632 | ||
| 3790 | 160604 | 013002 | MOV @(R0)+,R2 | ||
| 3791 | 160606 | 020302 | CMP R3,R2 | ||
| 3792 | 160610 | 001010 | BNE 160632 | ||
| 3793 | 160612 | 016002 000004 | MOV 4(R0),R2 | ;ИНДЕКСНЫЙ МЕТОД | |
| 3794 | 160616 | 020102 | CMP R1,R2 | ||
| 3795 | 160620 | 001004 | BNE 160632 | ||
| 3796 | 160622 | 017002 177776 | MOV @177776(R0),R2 | ;КОСВЕННО-ИНДЕКСНЫЙ МЕТОД | |
| 3797 | 160626 | 020302 | CMP R3,R2 | ||
| 3798 | 160630 | 001410 | BEQ 160652 | ||
| 3799 | 160632 | 004037 160650 | JSR R0,@#160650 | ||
| 3800 | |||||
| 3801 | ;ДАННЫЕ | ||||
| 3802 | |||||
| 3803 | 160636 | 160642 | 160642 | ||
| 3804 | 160640 | 160644 | 160644 | ||
| 3805 | 160642 | 125252 | 125252 | ||
| 3806 | 160644 | 052525 | 052525 | ||
| 3807 | 160646 | 125252 | 125252 | ||
| 3808 | |||||
| 3809 | 160650 | 000777 | BR .+0 | ;ОШИБКА. ПРЕКРАТИТЬ ВЫПОЛНЕНИЕ ВНУТРЕННЕГО | |
| 3810 | ;АВТО-ТЕСТА | ||||
| 3811 | |||||
| 3812 | ;*********************************************************************** | ||||
| 3813 | ;ПРОВЕРКА ПРЯМОЙ И КОСВЕННОЙ АДРЕСАЦИИ ОПЕРАНДА ПРИЕМНИКА | ||||
| 3814 | ;ПО КОМАНДЕ MOV | ||||
| 3815 | ;АДРЕС ОСТАНОВА 161470, R0=161006 | ||||
| 3816 | |||||
| 3817 | 160652 | 012700 161436 | MOV #161436,R0 | ||
| 3818 | 160656 | 012001 | MOV (R0)+,R1 | ||
| 3819 | 160660 | 012002 | MOV (R0)+,R2 | ||
| 3820 | 160662 | 012003 | MOV (R0)+,R3 | ||
| 3821 | 160664 | 011304 | MOV @R3,R4 | ||
| 3822 | 160666 | 010305 | MOV R3,R5 | ||
| 3823 | 160670 | 011172 000010 | MOV @R1,@10(R2) | ;КОСВЕННО-ИНДЕКСНЫЙ МЕТОД | |
| 3824 | 160674 | 022170 000020 | CMP (R1)+,@20(R0) | ||
| 3825 | 160700 | 001040 | BNE 161002 | ||
| 3826 | 160702 | 011166 177776 | MOV @R1,177776(SP) | ;ИНДЕКСНЫЙ МЕТОД | |
| 3827 | 160706 | 022166 177776 | CMP (R1)+,177776(SP) | ||
| 3828 | 160712 | 001033 | BNE 161002 | ||
| 3829 | 160714 | 011133 | MOV @R1,@(R3)+ | ;КОСВЕННО-АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3830 | 160716 | 022135 | CMP (R1)+,@(R5)+ | ||
| 3831 | 160720 | 001030 | BNE 161002 | ||
| 3832 | 160722 | 020305 | CMP R3,R5 | ||
| 3833 | 160724 | 001026 | BNE 161002 | ||
| 3834 | 160726 | 022705 161466 | CMP #161466,R5 | ||
| 3835 | 160732 | 001023 | BNE 161002 | ||
| 3836 | 160734 | 011153 | MOV @R1,@-(R3) | ;КОСВЕННО-АВТОДЕКРЕМЕНТНЫЙ МЕТОД | |
| 3837 | 160736 | 022155 | CMP (R1)+,@-(R5) | ||
| 3838 | 160740 | 001020 | BNE 161002 | ||
| 3839 | 160742 | 020102 | CMP R1,R2 | ||
| 3840 | 160744 | 001016 | BNE 161002 | ||
| 3841 | 160746 | 010405 | MOV R4,R5 | ;РЕГИСТРОВЫЙ МЕТОД | |
| 3842 | 160750 | 011114 | MOV @R1,@R4 | ;КОСВЕННО-РЕГИСТРОВЫЙ МЕТОД | |
| 3843 | 160752 | 022115 | CMP (R1)+,@R5 | ||
| 3844 | 160754 | 001012 | BNE 161002 | ||
| 3845 | 160756 | 011124 | MOV @R1,(R4)+ | ;АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3846 | 160760 | 022125 | CMP (R1)+,(R5)+ | ||
| 3847 | 160762 | 001007 | BNE 161002 | ||
| 3848 | 160764 | 020405 | CMP R4,R5 | ||
| 3849 | 160766 | 001005 | BNE 161002 | ||
| 3850 | 160770 | 020604 | CMP SP,R4 | ||
| 3851 | 160772 | 001003 | BNE .+10 | ||
| 3852 | 160774 | 011145 | MOV @R1,-(R5) | ;АВТОДЕКРЕМЕНТНЫЙ МЕТОД | |
| 3853 | 160776 | 022144 | CMP (R1)+,-(R4) | ||
| 3854 | 161000 | 001402 | BEQ .+6 | ||
| 3855 | 161002 | 004037 161470 | JSR R0,@#161470 | ||
| 3856 | |||||
| 3857 | ;*********************************************************************** | ||||
| 3858 | ;ПРОВЕРКА ПРАВИЛЬНОСТИ ВЫПОЛНЕНИЯ КОМАНДЫ MOV С МЕТОДАМИ АДРЕСАЦИИ | ||||
| 3859 | ;37 И 77 ОПЕРАНДА ПРИЕМНИКА | ||||
| 3860 | ;АДРЕС ОСТАНОВА 161470 R0=161056 | ||||
| 3861 | |||||
| 3862 | 161006 | 012702 161440 | MOV #161440,R2 | ||
| 3863 | 161012 | 012203 | MOV (R2)+,R3 | ||
| 3864 | 161014 | 012204 | MOV (R2)+,R4 | ||
| 3865 | 161016 | 011405 | MOV @R4,R5 | ||
| 3866 | 161020 | 010637 001000 | MOV SP,@#1000 | ;МЕТОД АДРЕСАЦИИ 37 | |
| 3867 | 161024 | 020615 | CMP SP,@R5 | ||
| 3868 | 161026 | 001011 | BNE 161052 | ||
| 3869 | 161030 | 011237 001000 | MOV @R2,@#1000 | ;МЕТОД АДРЕСАЦИИ 37 | |
| 3870 | 161034 | 021215 | CMP @R2,@R5 | ||
| 3871 | 161036 | 001005 | BNE 161052 | ||
| 3872 | 161040 | 012777 052525 000416 | MOV #52525,@161464 | ;МЕТОД АДРЕСАЦИИ 77 | |
| 3873 | 161046 | 021315 | CMP @R3,@R5 | ||
| 3874 | 161050 | 001402 | BEQ .+6 | ||
| 3875 | 161052 | 004037 161470 | JSR R0,@#161470 | ||
| 3876 | |||||
| 3877 | ;********************************************************************** | ||||
| 3878 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ ОДНОАДРЕСНЫХ КОМАНД СО | ||||
| 3879 | ;ВСЕМИ МЕТОДАМИ ПРЯМОЙ И КОСВЕННОЙ АДРЕСАЦИИ | ||||
| 3880 | ;АДРЕС ОСТАНОВА 161470, R0=161132 | ||||
| 3881 | |||||
| 3882 | 161056 | 012702 161442 | MOV #161442,R2 | ||
| 3883 | 161062 | 011203 | MOV @R2,R3 | ||
| 3884 | 161064 | 011304 | MOV @R3,R4 | ||
| 3885 | 161066 | 005014 | CLR @R4 | ||
| 3886 | 161070 | 005124 | COM (R4)+ | ||
| 3887 | 161072 | 005444 | NEG -(R4) | ||
| 3888 | 161074 | 006033 | ROR @(R3)+ | ||
| 3889 | 161076 | 005553 | ADC @-(R3) | ||
| 3890 | 161100 | 000261 | SEC | ||
| 3891 | 161102 | 006172 000022 | ROL @22(R2) | ||
| 3892 | 161106 | 006266 177776 | ASR 177776(SP) | ||
| 3893 | 161112 | 005614 | SBC @R4 | ||
| 3894 | 161114 | 006324 | ASL (R4)+ | ||
| 3895 | 161116 | 005244 | INC -(R4) | ||
| 3896 | 161120 | 005333 | DEC @(R3)+ | ||
| 3897 | 161122 | 005753 | TST @-(R3) | ||
| 3898 | 161124 | 001402 | BEQ .+6 | ||
| 3899 | 161126 | 004037 161470 | JSR R0,@#161470 | ||
| 3900 | |||||
| 3901 | ;*********************************************************************** | ||||
| 3902 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ ОДНОАДРЕСНЫХ БАЙТОВЫХ | ||||
| 3903 | ;КОМАНД СО ВСЕМИ МЕТОДАМИ ПРЯМОЙ И КОСВЕННОЙ АДРЕСАЦИИ | ||||
| 3904 | ;АДРЕС ОСТАНОВА 161470, R0=161206 | ||||
| 3905 | |||||
| 3906 | 161132 | 012714 177777 | MOV #-1,@R4 | ||
| 3907 | 161136 | 105014 | CLRB @R4 | ||
| 3908 | 161140 | 105124 | COMB (R4)+ | ||
| 3909 | 161142 | 105644 | SBCB -(R4) | ||
| 3910 | 161144 | 105233 | INCB @(R3)+ | ||
| 3911 | 161146 | 105453 | NEGB @-(R3) | ||
| 3912 | 161150 | 105372 000022 | DECB @22(R2) | ||
| 3913 | 161154 | 000366 177776 | SWAB 177776(SP) | ||
| 3914 | 161160 | 106314 | ASLB @R4 | ||
| 3915 | 161162 | 006024 | ROR (R4)+ | ||
| 3916 | 161164 | 106244 | ASRB -(R4) | ||
| 3917 | 161166 | 106133 | ROLB @(R3)+ | ||
| 3918 | 161170 | 105553 | ADCB @-(R3) | ||
| 3919 | 161172 | 105724 | TSTB (R4)+ | ||
| 3920 | 161174 | 001002 | BNE .+6 | ||
| 3921 | 161176 | 105724 | TSTB (R4)+ | ||
| 3922 | 161200 | 001402 | BEQ .+6 | ||
| 3923 | 161202 | 004037 161470 | JSR R0,@#161470 | ||
| 3924 | |||||
| 3925 | ;*********************************************************************** | ||||
| 3926 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНДЫ MOVB С ИСПОЛЬЗОВАНИЕМ МЕТОДОВ АДРЕСАЦИИ | ||||
| 3927 | ;1,2,3 ОПЕРАНДА ИСТОЧНИКА | ||||
| 3928 | ;АДРЕС ОСТАНОВА 161470, R0=161300 | ||||
| 3929 | |||||
| 3930 | 161206 | 012701 161442 | MOV #161442,R1 | ||
| 3931 | 161212 | 011104 | MOV @R1,R4 | ||
| 3932 | 161214 | 011403 | MOV @R4,R3 | ||
| 3933 | 161216 | 014102 | MOV -(R1),R2 | ||
| 3934 | 161220 | 014105 | MOV -(R1),R5 | ||
| 3935 | 161222 | 005013 | CLR @R3 | ;ОЧИСТИТЬ R3 | |
| 3936 | 161224 | 113134 | MOVB @(R1)+,@(R4)+ | ;КОСВЕННО-АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3937 | 161226 | 121513 | CMPB @R5,@R3 | ||
| 3938 | 161230 | 001021 | BNE 161274 | ||
| 3939 | 161232 | 111305 | MOVB @R3,R5 | ;КОСВЕННО-РЕГИСТРОВЫЙ МЕТОД | |
| 3940 | 161234 | 113113 | MOVB @(R1)+,@R3 | ;КОСВЕННО-АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3941 | 161236 | 121254 | CMPB @R2,@-(R4) | ||
| 3942 | 161240 | 001015 | BNE 161274 | ||
| 3943 | 161242 | 011302 | MOV @R3,R2 | ||
| 3944 | 161244 | 022705 177652 | CMP #177652,R5 | ||
| 3945 | 161250 | 001011 | BNE 161274 | ||
| 3946 | 161252 | 022702 000125 | CMP #125,R2 | ||
| 3947 | 161256 | 001006 | BNE 161274 | ||
| 3948 | 161260 | 113104 | MOVB @(R1)+,R4 | ;КОСВЕННО-АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3949 | 161262 | 120304 | CMPB R3,R4 | ||
| 3950 | 161264 | 001003 | BNE .+10 | ||
| 3951 | 161266 | 112103 | MOVB (R1)+,R3 | ;АВТОИНКРЕМЕНТНЫЙ МЕТОД | |
| 3952 | 161270 | 120503 | CMPB R5,R3 | ||
| 3953 | 161272 | 001402 | BEQ .+6 | ||
| 3954 | 161274 | 004037 161470 | JSR R0,@#161470 | ||
| 3955 | |||||
| 3956 | ;*********************************************************************** | ||||
| 3957 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНД BIS, BIT, BIC, BISB, BITB, BICB | ||||
| 3958 | ;АДРЕС ОСТАНОВА 161470, R0=161436 | ||||
| 3959 | |||||
| 3960 | |||||
| 3961 | 161300 | 012700 161436 | MOV #161436,R0 | ;ЗАГРУЗИТЬ РЕГИСТРЫ | |
| 3962 | 161304 | 012001 | MOV (R0)+,R1 | ;161444 --> R1 | |
| 3963 | 161306 | 012002 | MOV (R0)+,R2 | ;161454 --> R2 | |
| 3964 | 161310 | 012003 | MOV (R0)+,R3 | ;161464 --> R3 | |
| 3965 | 161312 | 011304 | MOV @R3,R4 | ;001000 --> R4 | |
| 3966 | 161314 | 012700 177777 | MOV #-1,R0 | ;177777 --> R0 | |
| 3967 | 161320 | 000277 | SCC | ;УСТАНОВИТЬ ПРИЗНАКИ N,Z,V,C | |
| 3968 | 161322 | 050005 | BIS R0,R5 | ;ПРОВЕРИТЬ КОМАНДУ BIS | |
| 3969 | 161324 | 100042 | BPL 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК N | |
| 3970 | 161326 | 041205 | BIC @R2,R5 | ;ПРОВЕРИТЬ КОМАНДУ BIC | |
| 3971 | 161330 | 032205 | BIT (R2)+,R5 | ;ПРОВЕРИТЬ КОМАНДУ BIT | |
| 3972 | 161332 | 001037 | BNE 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК Z | |
| 3973 | 161334 | 050033 | BIS R0,@(R3)+ | ;ПРОВЕРИТЬ КОМАНДУ BIS | |
| 3974 | 161336 | 100035 | BPL 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК N | |
| 3975 | 161340 | 042153 | BIC (R1)+,@-(R3) | ;ПРОВЕРИТЬ КОМАНДУ BIC | |
| 3976 | 161342 | 100433 | BMI 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ ОЧИЩЕН ПРИЗНАК N | |
| 3977 | 161344 | 031214 | BIT @R2,@R4 | ;ПРОВЕРИТЬ КОМАНДУ BIT | |
| 3978 | 161346 | 001031 | BNE 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК Z | |
| 3979 | 161350 | 022137 001000 | CMP (R1)+,@#1000 | ;ПРОВЕРИТЬ КОМАНДУ BIC | |
| 3980 | ;(1000)=052525? | ||||
| 3981 | 161354 | 001026 | BNE 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3982 | 161356 | 022205 | CMP (R2)+,R5 | ;ПРОВЕРИТЬ КОМАНДУ BIC | |
| 3983 | ;(R5)=125252? | ||||
| 3984 | 161360 | 001024 | BNE 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 3985 | 161362 | 150005 | BISB R0,R5 | ;ПРОВЕРИТЬ КОМАНДУ BISB | |
| 3986 | 161364 | 100022 | BPL 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК N | |
| 3987 | 161366 | 144205 | BICB -(R2),R5 | ;ПРОВЕРИТЬ КОМАНДУ BICB | |
| 3988 | 161370 | 100420 | BMI 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ ОЧИЩЕН ПРИЗНАК N | |
| 3989 | 161372 | 131205 | BITB @R2,R5 | ;ПРОВЕРИТЬ КОМАНДУ BITB | |
| 3990 | 161374 | 001016 | BNE 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК Z | |
| 3991 | 161376 | 000305 | SWAB R5 | ;ПЕРЕСТАВИТЬ БАЙТЫ В R5 (R5=52652) | |
| 3992 | 161400 | 100014 | BPL 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК N | |
| 3993 | 161402 | 130514 | BITB R5,@R4 | ;ПРОВЕРИТЬ КОМАНДУ BITB | |
| 3994 | 161404 | 001012 | BNE 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК Z | |
| 3995 | 161406 | 150514 | BISB R5,@R4 | ;ПРОВЕРИТЬ КОМАНДУ BISB | |
| 3996 | 161410 | 100010 | BPL 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК N | |
| 3997 | 161412 | 000314 | SWAB @R4 | ||
| 3998 | 161414 | 100406 | BMI 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ УСТАНОВЛЕН ПРИЗНАК N | |
| 3999 | 161416 | 131233 | BITB @R2,@(R3)+ | ;ПРОВЕРИТЬ КОМАНДУ BITB | |
| 4000 | 161420 | 001004 | BNE 161432 | ;ПЕРЕЙТИ, ЕСЛИ НЕ ОЧИЩЕН ПРИЗНАК Z | |
| 4001 | 161422 | 144153 | BICB -(R1),@-(R3) | ;ПРОВЕРИТЬ КОМАНДУ BICB | |
| 4002 | 161424 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕ ОЧИЩЕН ПРИЗНАК Z | |
| 4003 | 161426 | 021214 | CMP @R2,@R4 | ;ПРОВЕРИТЬ КОМАНДУ BISB | |
| 4004 | 161430 | 001020 | BNE 161472 | ||
| 4005 | 161432 | 004037 161470 | JSR R0,@#161470 | ||
| 4006 | |||||
| 4007 | ;ДАННЫЕ | ||||
| 4008 | |||||
| 4009 | 161436 | 161444 | 161444 | ||
| 4010 | 161440 | 161454 | 161454 | ||
| 4011 | 161442 | 161464 | 161464 | ||
| 4012 | 161444 | 125252 | 125252 | ||
| 4013 | 161446 | 052525 | 052525 | ||
| 4014 | 161450 | 177400 | 177400 | ||
| 4015 | 161452 | 000377 | 000377 | ||
| 4016 | 161454 | 052525 | 052525 | ||
| 4017 | 161456 | 125252 | 125252 | ||
| 4018 | 161460 | 000377 | 000377 | ||
| 4019 | 161462 | 177400 | 177400 | ||
| 4020 | 161464 | 001000 | 001000 | ||
| 4021 | 161466 | 161464 | 161464 | ||
| 4022 | |||||
| 4023 | 161470 | 000777 | BR .+0 | ;ОШИБКА. ПРЕКРАТИТЬ ВЫПОЛНЕНИЕ ВНУТРЕННЕГО | |
| 4024 | ;АВТО-ТЕСТА 4025 | ||||
| 4026 | ;*********************************************************************** | ||||
| 4027 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНДЫ ADD | ||||
| 4028 | ;АДРЕС ОСТАНОВА 161730, R0=161564 | ||||
| 4029 | |||||
| 4030 | 161472 | 012701 161726 | MOV #161726,R1 | ||
| 4031 | 161476 | 011104 | MOV @R1,R4 | ;025252-->R4 | |
| 4032 | 161500 | 014103 | MOV -(R1),R3 | ;052525-->R3 | |
| 4033 | 161502 | 061104 | ADD @R1,R4 | ;СЛОЖИТЬ КОДЫ 052525 И 025252 | |
| 4034 | 161504 | 101425 | BLOS 161560 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=1 | |
| 4035 | 161506 | 003424 | BLE 161560 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=1 | |
| 4036 | 161510 | 061104 | ADD @R1,R4 | ;СЛОЖИТЬ КОДЫ 052525 И 077777 | |
| 4037 | 161512 | 101422 | BLOS 161560 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=1 | |
| 4038 | 161514 | 002421 | BLT 161560 | ;ПЕРЕЙТИ, ЕСЛИ NVV=1 | |
| 4039 | 161516 | 061104 | ADD @R1,R4 | ;СЛОЖИТЬ КОДЫ 052525 И 152524 | |
| 4040 | 161520 | 003417 | BLE 161560 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=1 | |
| 4041 | 161522 | 010451 | MOV R4,@-(R1) | ||
| 4042 | 161524 | 011104 | MOV @R1,R4 | ||
| 4043 | 161526 | 064114 | ADD -(R1),@R4 | ;СЛОЖИТЬ КОДЫ 125252 И 025251 | |
| 4044 | 161530 | 101413 | BLOS 161560 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=1 | |
| 4045 | 161532 | 002012 | BGE 161560 | ;ПЕРЕЙТИ, ЕСЛИ NVV=0 | |
| 4046 | 161534 | 064114 | ADD -(R1),@R4 | ;СЛОЖИТЬ КОДЫ 152525 И 152523 | |
| 4047 | 161536 | 101010 | BHI 161560 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=0 | |
| 4048 | 161540 | 002007 | BGE 161560 | ;ПЕРЕЙТИ, ЕСЛИ NVV=0 | |
| 4049 | 161542 | 061114 | ADD @R1,@R4 | ;СЛОЖИТЬ КОДЫ 152525 И 125250 | |
| 4050 | 161544 | 101005 | BHI 161560 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=0 | |
| 4051 | 161546 | 002004 | BGE 161560 | ;ПЕРЕЙТИ, ЕСЛИ NVV=00 | |
| 4052 | 161550 | 064114 | ADD -(R1),@R4 | ;СЛОЖИТЬ КОДЫ 100003 И 077775 | |
| 4053 | 161552 | 002402 | BLT .+6 | ;ПЕРЕЙТИ, ЕСЛИ NVV=1 | |
| 4054 | 161554 | 003001 | BGT .+4 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=0 | |
| 4055 | 161556 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ Z=1 | |
| 4056 | 161560 | 004037 161730 | JSR R0,@#161730 | ||
| 4057 | |||||
| 4058 | ;*********************************************************************** | ||||
| 4059 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНДЫ SUB | ||||
| 4060 | ;АДРЕС ОСТАНОВА 161730, R0=161660 | ||||
| 4061 | |||||
| 4062 | 161564 | 012701 161726 | MOV #161726,R1 | ||
| 4063 | 161570 | 014104 | MOV -(R1),R4 | ;052525-->R4 | |
| 4064 | 161572 | 161104 | SUB @R1,R4 | ;ВЫЧЕСТЬ КОД 052525 ИЗ КОДА 052525 | |
| 4065 | 161574 | 002427 | BLT 161654 | ;ПЕРЕЙТИ, ЕСЛИ NVV=1 | |
| 4066 | 161576 | 003026 | BGT 161654 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=0 | |
| 4067 | 161600 | 103425 | BCS 161654 | ;ПЕРЕЙТИ, ЕСЛИ C=1 | |
| 4068 | 161602 | 161104 | SUB @R1,R4 | ;ВЫЧЕСТЬ КОД 052525 ИЗ КОДА 000000 | |
| 4069 | 161604 | 003023 | BGT 161654 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=0 | |
| 4070 | 161606 | 101022 | BHI 161654 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=0 | |
| 4071 | 161610 | 161104 | SUB @R1,R4 | ;ВЫЧЕСТЬ КОД 052525 ИЗ КОДА 125253 | |
| 4072 | 161612 | 101420 | BLOS 161654 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=1 | |
| 4073 | 161614 | 002017 | BGE 161654 | ;ПЕРЕЙТИ, ЕСЛИ NVV=0 | |
| 4074 | 161616 | 010451 | MOV R4,@-(R1) | ||
| 4075 | 161620 | 011104 | MOV @R1,R4 | ||
| 4076 | 161622 | 164114 | SUB -(R1),@R4 | ;ВЫЧЕСТЬ КОД 125252 ИЗ КОДА 052526 | |
| 4077 | 161624 | 003413 | BLE 161654 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=1 | |
| 4078 | 161626 | 101012 | BHI 161654 | ;ПЕРЕЙТИ, ЕСЛИ CVZ=0 | |
| 4079 | 161630 | 161114 | SUB @R1,@R4 | ;ВЫЧЕСТЬ КОД 125252 ИЗ КОДА 125254 | |
| 4080 | 161632 | 103410 | BCS 161654 | ;ПЕРЕЙТИ, ЕСЛИ C=1 | |
| 4081 | 161634 | 102407 | BVS 161654 | ;ПЕРЕЙТИ, ЕСЛИ V=1 | |
| 4082 | 161636 | 005741 | TST -(R1) | ;УМЕНЬШИТЬ R1 НА 2 | |
| 4083 | 161640 | 164114 | SUB -(R1),@R4 | ;ВЫЧЕСТЬ КОД 100003 ИЗ КОДА 2 | |
| 4084 | 161642 | 103004 | BCC 161654 | ;ПЕРЕЙТИ, ЕСЛИ C=0 | |
| 4085 | 161644 | 003403 | BLE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ZV(NVV)=1 | |
| 4086 | 161646 | 022714 077777 | CMP #77777,@R4 | ;ДАННЫЕ СОБПАДАЮТ? | |
| 4087 | 161652 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4088 | 161654 | 004037 161730 | JSR R0,@#161730 | ||
| 4089 | |||||
| 4090 | ;*********************************************************************** | ||||
| 4091 | ;ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНД DEC, SOB | ||||
| 4092 | ;АДРЕС ОСТАНОВА 161730, R0=161714 | ||||
| 4093 | |||||
| 4094 | 161660 | 012701 000002 | MOV #2,R1 | ;ЗАДАТЬ СЧЕТЧИК ВЫПОЛНЕНИЯ КОМАНДЫ SOB | |
| 4095 | 161664 | 010102 | MOV R1,R2 | ;2-->R2 | |
| 4096 | 161666 | 005302 | DEC R2 | ;УМЕНЬШИТЬ R2 НА 1 | |
| 4097 | 161670 | 002407 | BLT 161710 | ;ПЕРЕЙТИ, ЕСЛИ R2<0 | |
| 4098 | 161672 | 005701 | TST R1 | ||
| 4100 | 161676 | 077105 | SOB R1,161666 | ;ВЫЧЕСТЬ 1 ИЗ R1 И ПЕРЕЙТИ, ЕСЛИ R1 НЕ РАВНО 0 | |
| 4101 | 161700 | 005701 | TST R1 | ;ПРОВЕРИТЬ R1 ПОСЛЕ ВЫПОЛНЕНИЯ КОМАНДЫ SOB | |
| 4102 | 161702 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ R1 НЕ РАВНО 0 | |
| 4103 | 161704 | 000137 161732 | JMP @#161732 | ;ПЕРЕЙТИ НА ПОДПРОГРАММУ ПРОВЕРКИ ОЗУ | |
| 4104 | 161710 | 004037 161730 | JSR R0,@#161730 | ;ПЕРЕЙТИ НА ОШИБКУ | |
| 4105 | |||||
| 4106 | ;ДАННЫЕ ДЛЯ ПРОВЕРКИ ЦП | ||||
| 4107 | |||||
| 4108 | 161714 | 100003 | 100003 | ||
| 4109 | 161716 | 152525 | 152525 | ||
| 4110 | 161720 | 125252 | 125252 | ||
| 4111 | 161722 | 001000 | 001000 | ||
| 4112 | 161724 | 052525 | 052525 | ||
| 4113 | 161726 | 025252 | 025252 | ||
| 4114 | |||||
| 4115 | 161730 | 000777 | BR .+0 | ;ОШИБКА. ПРЕКРАТИТЬ ВЫПОЛНЕНИЕ ВНУТРЕННЕГО | |
| 4116 | ;АВТО-ТЕСТА | ||||
| 4117 | |||||
| 4118 | |||||
| 4119 | ;*********************************************************************** | ||||
| 4120 | ; | ||||
| 4121 | ; ПОДПРОГРАММА ПРОВЕРКИ ОЗУ | ||||
| 4122 | ; | ||||
| 4123 | ;*********************************************************************** | ||||
| 4124 | |||||
| 4125 | 161732 | 012700 000006 | MOV #6,R0 | ||
| 4126 | 161736 | 012710 000340 | MOV #340,@R0 | ||
| 4127 | 161742 | 012740 162126 | MOV #162126,-(R0) | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 4128 | 161746 | 012737 000020 172516 | MOV #20,@#172516 | ;РАЗРЕШИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 4129 | 161754 | 004737 162136 | JSR PC,@#162136 | ;ПОДГОТОВИТЬ РЕГИСТРЫ ДП | |
| 4130 | 161760 | 005003 | CLR R3 | ;ОЧИСТИТЬ СЧЕТЧИК СТРАНИЦ ПАМЯТИ ЕМКОСТЬЮ 2 КБАЙТ | |
| 4131 | 161762 | 012701 020000 | MOV #20000,R1 | ||
| 4132 | 161766 | 012737 000001 177572 | MOV #1,@#177572 | ;РАЗРЕШИТЬ ДП | |
| 4133 | 161774 | 012710 162012 | MOV #162012,@R0 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 4134 | |||||
| 4135 | ;*********************************************************************** | ||||
| 4136 | ;ОПРЕДЕЛЕНИЕ ЕМКОСТИ ОСНОВНОГО ОЗУ | ||||
| 4137 | ; | ||||
| 4138 | ;ЕМКОСТЬ ОСНОВНОГО ОЗУ ОПРЕДЕЛЯЕТСЯ ЗАПИСЬЮ В ПЕРВУЮ ЯЧЕЙКУ | ||||
| 4139 | ;КАЖДОЙ СТРАНИЦЫ ЕМКОСТЬЮ 2 КБАЙТ ЕЕ СОДЕРЖИМОГО. | ||||
| 4140 | ;R3 СОДЕРЖИТ СЧЕТЧИК СУЩ. СТРАНИЦ ОСНОВНОГО ОЗУ ЕМКОСТЬЮ 2 КБАЙТ | ||||
| 4141 | |||||
| 4142 | 162000 | 011111 | MOV @R1,@R1 | ;ПРОИЗВЕСТИ ЧТЕНИЕ И ЗАПИСЬ ЯЧЕЙКИ | |
| 4143 | ;ПРОИЗОЙДЕТ ПРЕРЫВАНИЕ, ЕСЛИ АДРЕС НЕ ОТВЕЧАЕТ | ||||
| 4144 | 162002 | 005203 | INC R3 | ;УВЕЛИЧИТЬ СЧЕТЧИК СУЩЕСТВУЮЩИХ СТРАНИЦ ОЗУ | |
| 4145 | ;ЕМКОСТЬЮ 2 КБАЙТ | ||||
| 4146 | 162004 | 062712 000040 | ADD #40,@R2 | ;УВЕЛИЧИТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4147 | 162010 | 000773 | BR 162000 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕЙ СТРАНИЦЫ | |
| 4148 | |||||
| 4149 | 162012 | 005037 172516 | CLR @#172516 | ;ЗАПРЕТИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 4150 | 162016 | 005037 177572 | CLR @#177572 | ;ЗАПРЕТИТЬ ДП | |
| 4151 | 162022 | 005001 | CLR R1 | ||
| 4152 | 162024 | 013700 173700 | MOV @#173700,R0 | ||
| 4153 | 162030 | 032700 000001 | BIT #1,R0 | ;ПЕРВОЕ ОЗУ УСТАНОВЛЕНО? | |
| 4154 | 162034 | 001001 | BNE .+4 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4155 | 162036 | 000407 | BR 162056 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4156 | 162040 | 032700 000002 | BIT #2,R0 | ;ПЕРВОЕ ОЗУ ЕМКОСТЬЮ 128 КБАЙТ? | |
| 4157 | 162044 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4158 | 162046 | 012701 000300 | MOV #300,R1 | ;СФОРМИРОВАТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4159 | 162052 | 062701 000100 | ADD #100,R1 | ;ДЛЯ 512 КБАЙТ | |
| 4160 | 162056 | 032700 000004 | BIT #4,R0 | ;ВТОРОЕ ОЗУ УСТАНОВЛЕНО? | |
| 4161 | 162062 | 001407 | BEQ 162102 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4162 | 162064 | 032700 000010 | BIT #10,R0 | ;ВТОРОЕ ОЗУ ЕМКОСТЬЮ 128 КБАЙТ? | |
| 4163 | 162070 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4164 | 162072 | 062701 000300 | ADD #300,R1 | ;СФОРМИРОВАТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4165 | 162076 | 062701 000100 | ADD #100,R1 | ;ДЛЯ 512 КБАЙТ | |
| 4166 | 162102 | 005701 | TST R1 | ;ОБА ОЗУ НЕ УСТАНОВЛЕНЫ? | |
| 4167 | 162104 | 001407 | BEQ 162124 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ДА | |
| 4168 | 162106 | 020103 | CMP R1,R3 | ;ОБНАРУЖЕНЫ НЕСУЩЕСТВУЮЩИЕ СТРАНИЦЫ В | |
| 4169 | ;В УСТАНОВЛЕННЫХ ОЗУ? | ||||
| 4170 | 162110 | 101005 | BHI 162124 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ ДА | |
| 4171 | 162112 | 070127 000040 | MUL #40,R1 | ;ПОЛУЧИТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ ПЕРВОЙ | |
| 4172 | 162116 | 010137 177640 | MOV R1,@#177640 | ;НЕСУЩЕСТВУЮЩЕЙ СТРАНИЦЫ | |
| 4173 | 162122 | 000426 | BR 162200 | ||
| 4174 | 162124 | 000240 | NOP | ||
| 4175 | 162126 | 012737 000003 173704 | MOV #3,@#173704 | ;ВКЛЮЧИТЬ СВЕТОВЫЕ ИНДИКАТОРЫ 3 И 4 | |
| 4176 | ;ОШИБКА. НЕИСПРАВНО ОЗУ ИЛИ ДП | ||||
| 4177 | 162134 | 000777 | BR .+0 | ;ПРЕКРАТИТЬ ВЫПОЛНЕНИЕ ВНУТРЕННЕГО АВТО-ТЕСТА | |
| 4178 | |||||
| 4179 | ;*********************************************************************** | ||||
| 4180 | ;ПОДПРОГРАММА ПОДГОТОВКИ РЕГИСТРОВ ДП | ||||
| 4181 | |||||
| 4182 | 162136 | 005037 172340 | CLR @#172340 | ||
| 4183 | 162142 | 012702 172342 | MOV #172342,R2 | ||
| 4184 | 162146 | 005012 | CLR @R2 | ||
| 4185 | 162150 | 012737 177600 172356 | MOV #177600,@#172356 | ;РАЗРЕШИТЬ ДОСТУП К ПОСЛЕДНЕЙ СТРАНИЦЕ ПАМЯТИ | |
| 4186 | 162156 | 012701 077406 | MOV #77406,R1 | ;РАЗРЕШИТЬ ЧТ/ЗАП СТРАНИЦЫ ПАМЯТИ | |
| 4187 | 162162 | 010137 172300 | MOV R1,@#172300 | ||
| 4188 | 162166 | 010137 172302 | MOV R1,@#172302 | ||
| 4189 | 162172 | 010137 172316 | MOV R1,@#172316 | ||
| 4190 | 162176 | 000207 | RTS PC | ||
| 4191 | |||||
| 4192 | 162200 | 005003 | CLR R3 | ||
| 4193 | 162202 | 005037 177642 | CLR @#177642 | ;ОЧИСТИТЬ РЕГИСТР ОШИБКИ | |
| 4194 | 162206 | 005005 | CLR R5 | ;ОЧИСТИТЬ СЧЕТЧИК ОБЛАСТЕЙ ПО 32 КБАЙТ | |
| 4195 | 162210 | 032737 000001 173700 | BIT #1,@#173700 | ;1-Е ОЗУ УСТАНОВЛЕНО? | |
| 4196 | 162216 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4197 | 162220 | 005703 | TST R3 | ;ПРОВЕРЕНО 1-Е ОЗУ? | |
| 4198 | 162222 | 001405 | BEQ 162236 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4199 | 162224 | 032737 000010 173700 | BIT #10,@#173700 | ;ЕМКОСТЬ 2-ГО ОЗУ 512 КБАЙТ? | |
| 4200 | 162232 | 001005 | BNE 162246 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4201 | 162234 | 000406 | BR 162252 | ;ПЕРЕЙТИ, ЕСЛИ ЕМКОСТЬ 2-ГО ОЗУ 128 КБАЙТ | |
| 4202 | 162236 | 032737 000002 173700 | BIT #2,@#173700 | ;ЕМКОСТЬ 1-ГО ОЗУ 512 КБАЙТ? | |
| 4203 | 162244 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ЕМКОСТЬ 1-ГО ОЗУ 128 КБАЙТ | |
| 4204 | 162246 | 012705 000012 | MOV #12,R5 | ;СФОРМИРОВАТЬ В R4 | |
| 4205 | 162252 | 062705 000004 | ADD #4,R5 | ;СЧЕТЧИК ОБЛАСТЕЙ | |
| 4206 | 162256 | 010504 | MOV R5,R4 | ;ДЛЯ ПРОВЕРКИ ПО 32 КБАЙТ | |
| 4207 | 162260 | 012737 000020 172516 | MOV #20,@#172516 | ;РАЗРЕШИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 4208 | 162266 | 010301 | MOV R3,R1 | ;ЗАГРУЗИТЬ В R1 КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4209 | |||||
| 4210 | ;*********************************************************************** | ||||
| 4211 | ;ПОДГОТОВКА РЕГИСТРОВ ДП | ||||
| 4212 | |||||
| 4213 | 162270 | 012737 177300 172340 | MOV #177300,@#172340 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4214 | 162276 | 010137 172342 | MOV R1,@#172342 | ||
| 4215 | 162302 | 062701 000200 | ADD #200,R1 | ||
| 4216 | 162306 | 010137 172344 | MOV R1,@#172344 | ||
| 4217 | 162312 | 062701 000200 | ADD #200,R1 | ||
| 4218 | 162316 | 010137 172346 | MOV R1,@#172346 | ||
| 4219 | 162322 | 062701 000200 | ADD #200,R1 | ||
| 4220 | 162326 | 010137 172350 | MOV R1,@#172350 | ||
| 4221 | 162332 | 012737 177200 172352 | MOV #177200,@#172352 | ||
| 4222 | 162340 | 012737 177400 172354 | MOV #177400,@#172354 | ||
| 4223 | 162346 | 012737 177600 172356 | MOV #177600,@#172356 | ||
| 4224 | 162354 | 012701 077406 | MOV #77406,R1 | ;РАЗРЕШИТЬ ДОСТУП К ПАМЯТИ | |
| 4225 | 162360 | 012737 004006 172300 | MOV #4006,@#172300 | ||
| 4226 | 162366 | 010137 172302 | MOV R1,@#172302 | ||
| 4227 | 162372 | 010137 172304 | MOV R1,@#172304 | ||
| 4228 | 162376 | 010137 172306 | MOV R1,@#172306 | ||
| 4229 | 162402 | 010137 172310 | MOV R1,@#172310 | ||
| 4230 | 162406 | 010137 172312 | MOV R1,@#172312 | ||
| 4231 | 162412 | 010137 172314 | MOV R1,@#172314 | ||
| 4232 | 162416 | 010137 172316 | MOV R1,@#172316 | ||
| 4233 | 162422 | 012737 000001 177572 | MOV #1,@#177572 | ;ВКЛЮЧИТЬ ДП | |
| 4234 | |||||
| 4235 | ;*********************************************************************** | ||||
| 4236 | ;ЗАПИСАТЬ КОД 052525 ВО ВСЕ ЯЧЕЙКИ ПАМЯТИ, НАЧИНАЯ С МЛАДШЕГО АДРЕСА | ||||
| 4237 | |||||
| 4238 | 162430 | 012700 020000 | MOV #20000,R0 | ;ЗАНЕСТИ В R0 ПЕРВЫЙ АДРЕС | |
| 4239 | 162434 | 012710 052525 | MOV #52525,@R0 | ;ЗАПИСАТЬ КОД 052525 КОСВЕННО ПО R0 | |
| 4240 | 162440 | 000421 | BR 162504 | ;ПЕРЕЙТИ НА ЗАПИСЬ АДРЕСА | |
| 4241 | |||||
| 4242 | 162442 | 062737 001000 172342 | ADD #1000,@#172342 | ;ПЕРЕУСТАНОВИТЬ КОНСТАНТЫ | |
| 4243 | 162450 | 012701 020000 | MOV #20000,R1 | ;ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4244 | 162454 | 011011 | MOV @R0,@R1 | ;ДЛЯ ЗАПИСИ | |
| 4245 | 162456 | 062737 001000 172344 | ADD #1000,@#172344 | ;СЛЕДУЮЩИХ 32 КБАЙТ | |
| 4246 | 162464 | 062737 001000 172346 | ADD #1000,@#172346 | ||
| 4247 | 162472 | 062737 001000 172350 | ADD #1000,@#172350 | ||
| 4248 | 162500 | 012700 020000 | MOV #20000,R0 | ||
| 4249 | 162504 | 010001 | MOV R0,R1 | ;ЗАПИСАТЬ АДРЕС | |
| 4250 | 162506 | 005721 | TST (R1)+ | ;УВЕЛИЧИТЬ АДРЕС НА 2 | |
| 4251 | 162510 | 012702 037777 | MOV #37777,R2 | ;УСТАНОВИТЬ СЧЕТЧИК ЯЧЕЕК ДЛЯ ЗАПИСИ ПО 32 КБАЙТ | |
| 4252 | 162514 | 012021 | MOV (R0)+,(R1)+ | ;ЗАПИСАТЬ КОД ПО СЛЕДУЮЩЕМУ АДРЕСУ | |
| 4253 | 162516 | 077202 | SOB R2,.-2 | ;КОНЕЦ ЗАПИСИ В 32 КБАЙТ? | |
| 4254 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | ||||
| 4255 | 162520 | 077430 | SOB R4,162442 | ;КОНЕЦ ЗАПИСИ В 512/128 КБАЙТ? | |
| 4256 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | ||||
| 4257 | |||||
| 4258 | ;*********************************************************************** | ||||
| 4259 | ;ИНВЕРТИРОВАТЬ ДАННЫЕ ПАМЯТИ, НАЧИНАЯ С МЛАДШЕГО АДРЕСА | ||||
| 4260 | |||||
| 4261 | 162522 | 010504 | MOV R5,R4 | ;ЗАНЕСТИ В R4 СЧЕТЧИК ОБЛАСТЕЙ ЕМКОСТЬЮ ПО 32 КБАЙТ | |
| 4262 | 162524 | 010301 | MOV R3,R1 | ;СФОРМИРОВАТЬ | |
| 4263 | 162526 | 010137 172342 | MOV R1,@#172342 | ;КОНСТАНТЫ | |
| 4264 | 162532 | 062701 000200 | ADD #200,R1 | ;ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4265 | 162536 | 010137 172344 | MOV R1,@#172344 | ;ДЛЯ ПЕРВЫХ 32 КБАЙТ | |
| 4266 | 162542 | 062701 000200 | ADD #200,R1 | ||
| 4267 | 162546 | 010137 172346 | MOV R1,@#172346 | ||
| 4268 | 162552 | 062701 000200 | ADD #200,R1 | ||
| 4269 | 162556 | 010137 172350 | MOV R1,@#172350 | ||
| 4270 | 162562 | 000414 | BR 162614 | ||
| 4271 | |||||
| 4272 | 162564 | 062737 001000 172342 | ADD #1000,@#172342 | ;ПЕРЕУСТАНОВИТЬ КОНСТАНТЫ | |
| 4273 | 162572 | 062737 001000 172344 | ADD #1000,@#172344 | ;ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4274 | 162600 | 062737 001000 172346 | ADD #1000,@#172346 | ;ДЛЯ СЛЕДУЮЩИХ 32 КБАЙТ | |
| 4275 | 162606 | 062737 001000 172350 | ADD #1000,@#172350 | ||
| 4276 | 162614 | 012702 040000 | MOV #40000,R2 | ;УСТАНОВИТЬ СЧЕТЧИК ЯЧЕЕК ДЛЯ ЗАПИСИ ПО 32 КБАЙТ | |
| 4277 | 162620 | 012700 020000 | MOV #20000,R0 | ;ВЫБРАТЬ ВИРТУАЛЬНЫЙ АДРЕС | |
| 4278 | 162624 | 005120 | COM (R0)+ | ;ИНВЕРТИРОВАТЬ ДАННЫЕ | |
| 4279 | 162626 | 077202 | SOB R2,.-2 | ;КОНЕЦ ОБЛАСТИ В 32 КБАЙТ? | |
| 4280 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | ||||
| 4281 | 162630 | 077423 | SOB R4,162564 | ;КОНЕЦ ПАМЯТИ? | |
| 4282 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | ||||
| 4283 | |||||
| 4284 | ;*********************************************************************** | ||||
| 4285 | ;ПРОВЕРИТЬ ДАННЫЕ ПАМЯТИ, НАЧИНАЯ СО СТАРШЕГО АДРЕСА | ||||
| 4286 | ;И ИНВЕРТИРОВАТЬ, ЕСЛИ ДАННЫЕ СОВПАДАЮТ | ||||
| 4287 | |||||
| 4288 | 162632 | 010504 | MOV R5,R4 | ;ЗАНЕСТИ В R4 СЧЕТЧИК ОБЛАСТЕЙ ЕМКОСТЬЮ 32 КБАЙТ | |
| 4289 | 162634 | 005001 | CLR R1 | ||
| 4290 | 162636 | 000414 | BR 162670 | ||
| 4291 | 162640 | 162737 001000 172342 | SUB #1000,@#172342 | ;ПЕРЕУСТАНОВИТЬ | |
| 4292 | 162646 | 162737 001000 172344 | SUB #1000,@#172344 | ;КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4293 | 162654 | 162737 001000 172346 | SUB #1000,@#172346 | ;ДЛЯ ПРОВЕРКИ | |
| 4294 | 162662 | 162737 001000 172350 | SUB #1000,@#172350 | ;ПРЕДЫДУЩИХ 32 КБАЙТ | |
| 4295 | 162670 | 012702 040000 | MOV #40000,R2 | ;УСТАНОВИТЬ СЧЕТЧИК ЯЧЕЕК ДЛЯ ПРОВЕРКИ ПО 32 КБАЙТ | |
| 4296 | 162674 | 012700 120000 | MOV #120000,R0 | ;ВЫБРАТЬ ВИРТУАЛЬНЫЙ АДРЕС В R0 | |
| 4297 | 162700 | 024027 125252 | CMP -(R0),#125252 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 4298 | 162704 | 001034 | BNE 162776 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4299 | 162706 | 005110 | COM @R0 | ;ИНВЕРТИРОВАТЬ ДАННЫЕ | |
| 4300 | 162710 | 077205 | SOB R2,162700 | ;КОНЕЦ ПРОВЕРКИ В 32 КБАЙТ? | |
| 4301 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | ||||
| 4302 | 162712 | 077426 | SOB R4,162640 | ;КОНЕЦ ПАМЯТИ? | |
| 4303 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | ||||
| 4304 | |||||
| 4305 | ;*********************************************************************** | ||||
| 4306 | ;ПРОВЕРКА ПАМЯТИ, НАЧИНАЯ С МЛАДШЕГО АДРЕСА | ||||
| 4307 | |||||
| 4308 | 162714 | 010504 | MOV R5,R4 | ;ВОССТАНОВИТЬ СЧЕТЧИК ОБЛАСТЕЙ ЕМКОСТЬЮ 32 КБАЙТ | |
| 4309 | 162716 | 005001 | CLR R1 | ||
| 4310 | 162720 | 000414 | BR 162752 | ||
| 4311 | 162722 | 062737 001000 172342 | ADD #1000,@#172342 | ||
| 4312 | 162730 | 062737 001000 172344 | ADD #1000,@#172344 | ||
| 4313 | 162736 | 062737 001000 172346 | ADD #1000,@#172346 | ||
| 4314 | 162744 | 062737 001000 172350 | ADD #1000,@#172350 | ||
| 4315 | 162752 | 012702 040000 | MOV #40000,R2 | ;УСТАНОВИТЬ СЧЕТЧИК ЯЧЕЕК | |
| 4316 | 162756 | 012700 020000 | MOV #20000,R0 | ;ВИРТУАЛЬНЫЙ АДРЕС-->R0 | |
| 4317 | 162762 | 022027 052525 | CMP (R0)+,#52525 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 4318 | 162766 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4319 | 162770 | 077204 | SOB R2,.-6 | ;КОНЕЦ ОБЛАСТИ? ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4320 | 162772 | 077425 | SOB R4,162722 | ;КОНЕЦ ПАМЯТИ? ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4321 | 162774 | 000402 | BR .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕ БЫЛО ОШИБОК | |
| 4322 | 162776 | 000261 | SEC | ;УСТАНОВИТЬ С-РАЗРЯД, | |
| 4323 | 163000 | 000401 | BR .+4 | ;ЕСЛИ ДАННЫЕ НЕ СОВПАДАЮТ | |
| 4324 | 163002 | 000241 | CLC | ;ОЧИСТИТЬ С-РАЗРЯД | |
| 4325 | 163004 | 012737 000000 172340 | MOV #0,@#172340 | ;РАЗРЕШИТЬ ДОСТУП | |
| 4326 | 163012 | 012737 077406 172300 | MOV #77406,@#172300 | ;К 0-Й СТРАНИЦЕ ПАМЯТИ | |
| 4327 | 163020 | 032705 000001 | BIT #1,R5 | ;ПРОВЕРЯЕТСЯ ПАМЯТЬ ВИДЕОКОНТРОЛЛЕРА? | |
| 4328 | 163024 | 001401 | BEQ .+4 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4329 | 163026 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ ПРОВЕРКИ ПАМЯТИ | |
| 4330 | ;ВИДЕОКОНТРОЛЛЕРА | ||||
| 4331 | 163030 | 103015 | BCC 163064 | ;ПЕРЕЙТИ, ЕСЛИ НЕ БЫЛО ОШИБОК | |
| 4332 | 163032 | 032737 000001 173700 | BIT #1,@#173700 | ;1-Е ОЗУ УСТАНОВЛЕНО? | |
| 4333 | 163040 | 001406 | BEQ 163056 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4334 | 163042 | 005703 | TST R3 | ;ОШИБКА ВО 2-М ОЗУ? | |
| 4335 | 163044 | 001004 | BNE 163056 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4336 | 163046 | 052737 000001 177642 | BIS #1,@#177642 | ;УСТАНОВИТЬ ПРИЗНАК ОШИБКИ В 1-М ОЗУ | |
| 4337 | 163054 | 000403 | BR .+10 | ; | |
| 4338 | 163056 | 052737 000002 177642 | BIS #2,@#177642 | ;УСТАНОВИТЬ ПРИЗНАК ОШИБКИ ВО 2-М ОЗУ | |
| 4339 | 163064 | 032737 000001 173700 | BIT #1,@#173700 | ;1-Е ОЗУ УСТАНОВЛЕНО? | |
| 4340 | 163072 | 001421 | BEQ 163136 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4341 | 163074 | 005703 | TST R3 | ;2-Е ОЗУ ПРОВЕРЕНО? | |
| 4342 | 163076 | 001017 | BNE 163136 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4343 | 163100 | 032737 000004 173700 | BIT #4,@#173700 | ;2-Е ОЗУ УСТАНОВЛЕНО? | |
| 4344 | 163106 | 001413 | BEQ 163136 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4345 | 163110 | 012703 004000 | MOV #4000,R3 | ;ВЫБРАТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ ДЛЯ | |
| 4346 | ;2-ГО ОЗУ | ||||
| 4347 | 163114 | 032737 000002 173700 | BIT #2,@#173700 | ;1-Е ОЗУ ЕМКОСТЬЮ 512 КБАЙТ? | |
| 4348 | 163122 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ЕМКОСТЬ 1-ГО ОЗУ 128 КБАЙТ | |
| 4349 | 163124 | 006303 | ASL R3 | ;СФОРМИРОВАТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4350 | 163126 | 006303 | ASL R3 | ;ДЛЯ 2-ГО ОЗУ | |
| 4351 | 163130 | 000137 162206 | JMP @#162206 | ;ПЕРЕЙТИ НА ПРОВЕРКУ 2-ГО ОЗУ | |
| 4352 | 163134 | 000777 | BR .+0 | ;ОШИБКА. ПРИ ПРОВЕРКЕ ОЗУ ЗАПИСЬЮ/СЧИТЫВАНИЕМ | |
| 4353 | ;ПРОИЗОШЛО ПРЕРЫВАНИЕ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 4354 | 163136 | 005737 177642 | TST @#177642 | ;БЫЛИ ОШИБКИ? | |
| 4355 | 163142 | 001404 | BEQ 163154 | ;ПЕРЕЙТИ НА ПРОВЕРКУ ОБРАБОТКИ ПРЕРЫВАНИЙ, | |
| 4356 | ;ЕСЛИ НЕ БЫЛО ОШИБОК | ||||
| 4357 | |||||
| 4358 | 163144 | 013737 177642 173704 | MOV @#177642,@#173704 | ;ОШИБКА ЧТЕНИЯ/ЗАПИСИ ОЗУ | |
| 4359 | ;ВКЛЮЧИТЬ СВЕТОВЫЕ ИНДИКАТОРЫ 2,3 И 4, ЕСЛИ | ||||
| 4360 | ;ОШИБКА В 1-ОМ ОЗУ. | ||||
| 4361 | ;ВКЛЮЧИТЬ СВЕТОВЫЕ ИНДИКАТОРЫ 1,3 И 4, ЕСЛИ | ||||
| 4362 | ;ОШИБКА ВО 2-ОМ ОЗУ | ||||
| 4363 | ;ВКЛЮЧИТЬ СВЕТОВЫЕ ИНДИКАТОРЫ 3 И 4, ЕСЛИ | ||||
| 4364 | ;ОШИБКА В 1-ОМ И ВО 2-ОМ ОЗУ | ||||
| 4365 | 163152 | 000777 | BR .+0 | ;ПРЕКРАТИТЬ ВЫПОЛНЕНИЕ ВНУТРЕННЕГО | |
| 4366 | ;АВТО-ТЕСТА | ||||
| 4367 | |||||
| 4368 | ;*********************************************************************** | ||||
| 4369 | ; | ||||
| 4370 | ; ПОДПРОГРАММА ПРОВЕРКИ ПРАВИЛЬНОСТИ ВЫПОЛНЕНИЯ ПРЕРЫВАНИЙ | ||||
| 4371 | ; ПО КОМАНДАМ TRAP (34,36), EMT (30,32), IOT (20,22), BPT (14,16), ПО | ||||
| 4372 | ; РЕЗЕРВНОЙ КОМАНДЕ 107777 (10,12), ПО ЗАПРЕЩЕННОЙ КОМАНДЕ JMP R1 (4,6) | ||||
| 4373 | ; | ||||
| 4374 | ;*********************************************************************** | ||||
| 4375 | |||||
| 4376 | 163154 | 012701 163432 | MOV #163432,R1 | ||
| 4377 | 163160 | 010046 | MOV R0,-(SP) | ;СОХРАНИТЬ R0 | |
| 4378 | 163162 | 012100 | MOV (R1)+,R0 | ||
| 4379 | 163164 | 005040 | CLR -(R0) | ;СФОРМИРОВАТЬ | |
| 4380 | 163166 | 010002 | MOV R0,R2 | ;ЛОВУШКУ | |
| 4381 | 163170 | 005740 | TST -(R0) | ;ПРЕРЫВАНИЙ | |
| 4382 | 163172 | 010210 | MOV R2,@R0 | ;ПО АДРЕСАМ 000000-000366 | |
| 4383 | 163174 | 005700 | TST R0 | ||
| 4384 | 163176 | 003372 | BGT 163164 | ||
| 4385 | 163200 | 012600 | MOV (SP)+,R0 | ;ВОССТАНОВИТЬ R0 | |
| 4386 | 163202 | 012106 | MOV (R1)+,SP | ;УСТАНОВИТЬ УКАЗАТЕЛЬ СТЕКА | |
| 4387 | 163204 | 012104 | MOV (R1)+,R4 | ||
| 4388 | 163206 | 012102 | MOV (R1)+,R2 | ;163452-->R2 | |
| 4389 | 163210 | 012103 | MOV (R1)+,R3 | ;163454-->R3 | |
| 4390 | 163212 | 004737 163416 | JSR PC,@#163416 | ;163312-->34 | |
| 4391 | 163216 | 104777 | TRAP+377 | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРЕРЫВАНИЯ ПО | |
| 4392 | ;TRAP С АДРЕСОМ ВЕКТОРА ПРЕРЫВАНИЯ 34 | ||||
| 4393 | 163220 | 004737 163356 | JSR PC,@#163356 | ;ВОССТАНОВИТЬ ЛОВУШКУ ПРЕРЫВАНИЯ ПО АДРЕСУ 000034 | |
| 4394 | 163224 | 004737 163416 | JSR PC,@#163416 | ;163312-->30 | |
| 4395 | 163230 | 104377 | EMT+377 | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРЕРЫВАНИЯ | |
| 4396 | ;ПО ЕМТ С АДРЕСОМ ВЕКТОРА ПРЕРЫВАНИЯ 30 | ||||
| 4397 | 163232 | 004737 163356 | JSR PC,@#163356 | ;ВОССТАНОВИТЬ ЛОВУШКУ ПРЕРЫВАНИЯ ПО АДРЕСУ | |
| 4398 | ;000030 | ||||
| 4399 | 163236 | 024444 | CMP -(R4),-(R4) | ||
| 4400 | 163240 | 004737 163416 | JSR PC,@#163416 | ;163312-->20 | |
| 4401 | 163244 | 000004 | IOT | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРЕРЫВАНИЯ | |
| 4402 | ;ПО IOT С АДРЕСОМ ВЕКТОРА ПРЕРЫВАНИЯ 20 | ||||
| 4403 | 163246 | 004737 163356 | JSR PC,@#163356 | ;ВОССТАНОВИТЬ ЛОВУШКУ ПРЕРЫВАНИЯ ПО | |
| 4404 | ;АДРЕСУ 000020 | ||||
| 4405 | 163252 | 004737 163416 | JSR PC,@#163416 | ;163312-->14 | |
| 4406 | 163256 | 000003 | BPT | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРЕРЫВАНИЯ | |
| 4407 | ;ПО BPT С АДРЕСОМ ВЕКТОРА ПРЕРЫВАНИЯ 14 | ||||
| 4408 | 163260 | 004737 163356 | JSR PC,@#163356 | ;ВОССТАНОВИТЬ ЛОВУШКУ ПРЕРЫВАНИЯ ПО | |
| 4409 | ;АДРЕСУ 000014 | ||||
| 4410 | 163264 | 004737 163416 | JSR PC,@#163416 | ;163312-->10 | |
| 4411 | 163270 | 107777 | 107777 | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРЕРЫВАНИЯ | |
| 4412 | ;ПО РЕЗЕРВНОЙ КОМАНДЕ | ||||
| 4413 | 163272 | 004737 163356 | JSR PC,@#163356 | ;ВОССТАНОВИТЬ ЛОВУШКУ ПРЕРЫВАНИЯ ПО | |
| 4414 | ;АДРЕСУ 000010 | ||||
| 4415 | 163276 | 004737 163416 | JSR PC,@#163416 | ;163312-->4 | |
| 4416 | 163302 | 000101 | JMP R1 | ;ПРОВЕРИТЬ ПРАВИЛЬНОСТЬ ВЫПОЛНЕНИЯ ПРЕРЫВАНИЯ | |
| 4417 | ;ПО КОМАНДЕ С ЗАПРЕЩЕННЫМ МЕТОДОМ АДРЕСАЦИИ | ||||
| 4418 | 163304 | 004737 163356 | JSR PC,@#163356 | ;ВОССТАНОВИТЬ ЛОВУШКУ ПРЕРЫВАНИЯ ПО | |
| 4419 | ;АДРЕСУ 000004 | ||||
| 4420 | 163310 | 000467 | BR 163470 | ;ПЕРЕЙТИ К ПРОВЕРКЕ ПРАВИЛЬПОСТИ ИДЕНТИФИКАЦИИ | |
| 4421 | ;ЭВМ 4422 | ||||
| 4423 | ;*********************************************************************** | ||||
| 4424 | ;ПОДПРОГРАММА ОБРАБОТКИ ПРЕРЫВАНИЯ | ||||
| 4425 | |||||
| 4426 | 163312 | 106705 | MFPS R5 | ;СЧИТАТЬ НОВОЕ ССП | |
| 4427 | 163314 | 020627 001074 | CMP SP,#1074 | ;СТЕК УМЕНЬШИЛСЯ ПРАВИЛЬНО? | |
| 4428 | 163320 | 001014 | BNE 163352 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 4429 | 163322 | 022316 | CMP (R3)+,@SP | ;ТЕКУЩИЙ СК ЗАПОМНИЛСЯ ПРАВИЛЬНО? | |
| 4430 | 163324 | 001012 | BNE 163352 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 4431 | 163326 | 022766 000340 000002 | CMP #340,2(SP) | ;ТЕКУЩЕЕ ССП ЗАПОМНИЛОСЬ ПРАВИЛЬНО? | |
| 4432 | 163334 | 001006 | BNE 163352 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 4433 | 163336 | 120521 | CMPB R5,(R1)+ | ;НОВОЕ ССП ВЫБРАНО ПРАВИЛЬНО? | |
| 4434 | 163340 | 001004 | BNE 163352 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 4435 | 163342 | 005705 | TST R5 | ||
| 4436 | 163344 | 103401 | BCS .+4 | ;ПЕРЕЙТИ, ЕСЛИ С-РАЗРЯД=1 | |
| 4437 | 163346 | 000006 | RTT | ||
| 4438 | 163350 | 000002 | RTI | ||
| 4439 | |||||
| 4440 | 163352 | 004037 160650 | JSR R0,@#160650 | ;ПЕРЕЙТИ НА ОШИБКУ | |
| 4441 | |||||
| 4442 | ;*********************************************************************** | ||||
| 4443 | ;ПОДПРОГРАММА ПРОВЕРКИ ССП И СТЕКА ПОСЛЕ ПРЕРЫВАНИЯ И | ||||
| 4444 | ;ВОССТАНОВЛЕНИЯ ЛОВУШКИ ПРЕРЫВАНИЙ | ||||
| 4445 | |||||
| 4446 | 163356 | 106705 | MFPS R5 | ;СЧИТАТЬ ССП | |
| 4447 | 163360 | 120527 000340 | CMPB R5,#340 | ;ССП=340? | |
| 4448 | 163364 | 001012 | BNE 163412 | ;ПЕРЕЙТИ НА ОШИБКУ, НЕСЛИ НЕТ | |
| 4449 | 163366 | 020627 001076 | CMP SP,#1076 | ;УС=1076? | |
| 4450 | 163372 | 001007 | BNE 163412 | ;ПЕРЕЙТИ НА ОШИБКУ, ЕСЛИ НЕТ | |
| 4451 | 163374 | 005044 | CLR -(R4) | ;ВОССТАНОВИТЬ ЛОВУШКУ ПРЕРЫВАНИЙ | |
| 4452 | 163376 | 010046 | MOV R0,-(SP) | ;ПОСЛЕ ПРОВЕРКИ ПРЕРЫВАНИЯ | |
| 4453 | 163400 | 010400 | MOV R4,R0 | ;С АДРЕСОМ ВЕКТОРА ПРЕРЫВАНИЯ, | |
| 4454 | 163402 | 005744 | TST -(R4) | ;ХРАНЯЩИМСЯ В R0 | |
| 4455 | 163404 | 010014 | MOV R0,@R4 | ||
| 4456 | 163406 | 012600 | MOV (SP)+,R0 | ||
| 4457 | 163410 | 000207 | RTS PC | ||
| 4458 | |||||
| 4459 | 163412 | 004037 160650 | JSR R0,@#160650 | ;ПЕРЕЙТИ НА ОШИБКУ | |
| 4460 | |||||
| 4461 | ;*********************************************************************** | ||||
| 4462 | ;ПОДПРОГРАММА ФОРМИРОВАНИЯ ВЕКТОРОВ ПРЕРЫВАНИЙ | ||||
| 4463 | |||||
| 4464 | 163416 | 111164 177776 | MOVB @R1,177776(R4) | ||
| 4465 | 163422 | 011264 177774 | MOV @R2,177774(R4) | ||
| 4466 | 163426 | 000257 | CCC | ||
| 4467 | 163430 | 000207 | RTS PC | ||
| 4468 | |||||
| 4469 | ;ДАННЫЕ | ||||
| 4470 | |||||
| 4471 | 163432 | 000400 | 000400 | ||
| 4472 | 163434 | 001100 | 001100 | ||
| 4473 | 163436 | 000040 | 000040 | ||
| 4474 | 163440 | 163452 | 163452 | ||
| 4475 | 163442 | 163454 | 163454 | ||
| 4476 | 163444 | 100601 | 100601 | ||
| 4477 | 163446 | 102210 | 102210 | ||
| 4478 | 163450 | 100602 | 100602 | ||
| 4479 | 163452 | 163312 | 163312 | ||
| 4480 | 163454 | 163220 | 163220 | ;СК ПРИ ПРЕРЫВАНИИ ПО TRAP | |
| 4481 | 163456 | 163232 | 163232 | ;СК ПРИ ПРЕРЫВАНИИ ПО EMT | |
| 4482 | 163460 | 163246 | 163246 | ;СК ПРИ ПРЕРЫВАНИИ ПО IOT | |
| 4483 | 163462 | 163260 | 163260 | ;СК ПРИ ПРЕРЫВАНИИ ПО BPT | |
| 4484 | 163464 | 163272 | 163272 | ;СК ПРИ ПРЕРЫВАНИИ ПО РЕЗЕРВНОЙ КОМАНДЕ | |
| 4485 | 163466 | 163304 | 163304 | ;СК ПРИ ПРЕРЫВАНИИ ПО ЗАПРЕЩЕННОЙ КОМАНДЕ | |
| 4486 | |||||
| 4487 | |||||
| 4488 | 163470 | 012737 000017 173704 | MOV #17,@#173704 | ;ПОГАСИТЬ СВЕТОВУЮ ИНДИКАЦИЮ | |
| 4489 | 163476 | 005000 | CLR R0 | ||
| 4490 | 163500 | 012701 172340 | MOV #172340,R1 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4491 | 163504 | 012702 000004 | MOV #4,R2 | ||
| 4492 | 163510 | 010021 | MOV R0,(R1)+ | ||
| 4493 | 163512 | 062700 000200 | ADD #200,R0 | ||
| 4494 | 163516 | 077204 | SOB R2,.-6 | ||
| 4495 | 163520 | 012737 001400 172350 | MOV #1400,@#172350 | ||
| 4496 | 163526 | 012706 001000 | MOV #1000,SP | ;УСТАНОВИТЬ УКАЗАТЕЛЬ СТЕКА | |
| 4497 | 163532 | 012737 000020 172516 | MOV #20,@#172516 | ;РАЗРЕШИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 4498 | 163540 | 012737 000001 177572 | MOV #1,@#177572 | ;ВКЛЮЧИТЬ ДИСПЕТЧЕР ПАМЯТИ | |
| 4499 | |||||
| 4500 | |||||
| 4501 | ;ПРОВЕРКА ПРАВИЛЬНОСТИ ИДЕНТИФИКАЦИИ ЭВМ | ||||
| 4502 | ;ПРИ НЕПРАВИЛЬНОЙ ИДЕНТИФИКАЦИИ ЭВМ ЯЧЕЙКИ 157766-157772 ЗАПОЛНЯЮТСЯ "0" | ||||
| 4503 | |||||
| 4504 | 163546 | 012703 117776 | MOV #117776,R3 | ||
| 4505 | 163552 | 012763 000014 000000 | MOV #14,0(R3) | ||
| 4506 | 163560 | 012700 173600 | MOV #173600,R0 | ;ВЫБРАТЬ СОДЕРЖИМОЕ РЕГИСТРОВ 173600-173616 | |
| 4507 | 163564 | 012701 177770 | MOV #177770,R1 | ;В ЯЧЕЙКИ 157766-157774 | |
| 4508 | 163570 | 012702 000010 | MOV #10,R2 | ||
| 4509 | 163574 | 111061 117776 | MOVB @R0,117776(R1) | ||
| 4510 | 163600 | 005201 | INC R1 | ||
| 4511 | 163602 | 005720 | TST (R0)+ | ||
| 4512 | 163604 | 077205 | SOB R2,163574 | ||
| 4513 | |||||
| 4514 | ;ПРОВЕРИТЬ МЕТОДОМ КОНТРОЛЬНОГО СУММИРОВАНИЯ ПРАВИЛЬНОСТЬ ИДЕНТИФИКАЦИИ | ||||
| 4515 | 163606 | 012737 177777 001020 | MOV #-1,@#1020 | ||
| 4516 | 163614 | 012702 000004 | MOV #4,R2 | ||
| 4517 | 163620 | 010300 | MOV R3,R0 | ||
| 4518 | 163622 | 016001 177770 | MOV 177770(R0),R1 | ;ПРОВЕРИТЬ МЕТОДОМ КОНТРОЛЬНОГО СУММИРОВАНИЯ | |
| 4519 | 163626 | 074137 001020 | XOR R1,@#1020 | ;ПРАВИЛЬНОСТЬ ИДЕНТИФИКАЦИИ ЭВМ | |
| 4520 | 163632 | 000241 | CLC | ||
| 4521 | 163634 | 006137 001020 | ROL @#1020 | ||
| 4522 | 163640 | 005537 001020 | ADC @#1020 | ||
| 4523 | 163644 | 062700 000002 | ADD #2,R0 | ||
| 4524 | 163650 | 077214 | SOB R2,163622 | ||
| 4525 | 163652 | 005737 001020 | TST @#1020 | ;ПРАВИЛЬНАЯ ИДЕНТИФИКАЦИЯ ЭВМ? | |
| 4526 | 163656 | 001406 | BEQ 163674 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4527 | 163660 | 005063 177770 | CLR 177770(R3) | ;ОЧИСТИТЬ ЯЧЕЙКИ 157766-157772 | |
| 4528 | 163664 | 005063 177772 | CLR 177772(R3) | ||
| 4529 | 163670 | 005063 177774 | CLR 177774(R3) | ||
| 4530 | |||||
| 4531 | |||||
| 4532 | |||||
| 4533 | 163674 | 012763 000006 177766 | MOV #6,177766(R3) | ;ЗАПИСАТЬ ЧИСЛО ПОЗИЦИЙ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4534 | 163702 | 012763 000031 177776 | MOV #31,177776(R3) | ;ЗАПИСАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД ПЗУ В ТАБЛИЦУ | |
| 4535 | ;КОНФИГУРАЦИИ ПВК | ||||
| 4536 | ;ЗАПОЛНИТЬ ТАБЛИЦУ КОНФИГУРАЦИИ ПВК 0 И 177777, НАЧИНАЯ СО СТАРШЕГО | ||||
| 4537 | ;АДРЕСА 157760 | ||||
| 4538 | 163710 | 005063 177764 | CLR 177764(R3) | ||
| 4539 | 163714 | 012700 117760 | MOV #117760,R0 | ||
| 4540 | 163720 | 012701 000036 | MOV #36,R1 | ||
| 4541 | 163724 | 005010 | CLR @R0 | ;ЗАПИСАТЬ 0 | |
| 4542 | 163726 | 052760 177777 177776 | BIS #-1,177776(R0) | ;ЗАПИСАТЬ 177777 | |
| 4543 | 163734 | 162700 000004 | SUB #4,R0 | ||
| 4544 | 163740 | 062763 000004 000000 | ADD #4,0(R3) | ||
| 4545 | 163746 | 062763 000004 177764 | ADD #4,177764(R3) | ||
| 4546 | 163754 | 077115 | SOB R1,163724 | ||
| 4547 | 163756 | 012763 165746 177572 | MOV #165746,177572(R3) | ;ЗАПИСАТЬ АДРЕС ПОВТОРНОГО ЗАПУСКА | |
| 4548 | ;ПОДПРОГРАММЫ ЗАГРУЗКИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | ||||
| 4549 | 163764 | 005063 177570 | CLR 177570(R3) | ||
| 4550 | 163770 | 005063 177566 | CLR 177566(R3) | ||
| 4551 | 163774 | 005063 177564 | CLR 177564(R3) | ||
| 4552 | 164000 | 005063 177562 | CLR 177562(R3) | ||
| 4553 | 164004 | 005063 177560 | CLR 177560(R3) | ||
| 4554 | 164010 | 005063 177556 | CLR 177556(R3) | ||
| 4555 | 164014 | 062763 000016 000000 | ADD #16,0(R3) | ;ПОЛУЧИТЬ ДЛИНУ ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК В БАЙТАХ | |
| 4556 | |||||
| 4557 | ;ВЫПОЛНИТЬ ПОДПРОГРАММЫ ПРОВЕРКИ УСТРОЙСТВ СИСТЕМНОГО МОДУЛЯ | ||||
| 4558 | |||||
| 4559 | 164022 | 012737 165036 000030 | MOV #165036,@#30 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000030 | |
| 4560 | 164030 | 012737 000340 000032 | MOV #340,@#32 | ||
| 4561 | 164036 | 005005 | CLR R5 | ;ОЧИСТИТЬ R5 | |
| 4562 | 164040 | 012704 117776 | MOV #117776,R4 | ||
| 4563 | 164044 | 005765 164064 | TST 164064(R5) | ;ВСЕ УСТРОЙСТВА ПРОВЕРЕНЫ? | |
| 4564 | 164050 | 001404 | BEQ 164062 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4565 | 164052 | 004775 164064 | JSR PC,@164064(R5) | ;ВЫПОЛНИТЬ ПОДПРОГРАММУ ПРОВЕРКИ УСТРОЙСТВА | |
| 4566 | 164056 | 005725 | TST (R5)+ | ;ПОЛУЧИТЬ АДРЕС СЛЕДУЮЩЕЙ ПОДПРОГРАММЫ | |
| 4567 | 164060 | 000771 | BR 164044 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕГО УСТРОЙСТВА | |
| 4568 | ;СИСТЕМНОГО МОДУЛЯ | ||||
| 4569 | 164062 | 000417 | BR 164122 | ;ПЕРЕЙТИ К ПРОВЕРКЕ ПОЗИЦИЙ СИСТЕМНОЙ МАГИСТРАЛИ | |
| 4570 | |||||
| 4571 | ;ТАБЛИЦА АДРЕСОВ ПОДПРОГРАММ ПРОВЕРКИ УСТРОЙСТВ | ||||
| 4572 | |||||
| 4573 | 164064 | 130200 | 130200 | ;АДРЕС ПОДПРОГРАММЫ ЗАПИСИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4574 | ;ИДЕНТИФИКАЦИОННОГО КОДА ТИПА ПРОЦЕССОРА | ||||
| 4575 | 164066 | 130214 | 130214 | ;АДРЕС ПОДПРОГРАММЫ ЗАПИСИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4576 | ;ИДЕНТИФИКАЦИОННОГО КОДА И ЕМКОСТИ ОСНОВНОГО ОЗУ | ||||
| 4577 | 164070 | 130246 | 130246 | ;АДРЕС ПОДПРОГРАММЫ ЗАПИСИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4578 | ;НОМЕРА ВЕРСИИ ДИАГНОСТИЧЕСКОГО ПЗУ | ||||
| 4579 | 164072 | 130314 | 130314 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ КОНТРОЛЛЕРА ПРЕРЫВАНИЙ | |
| 4580 | 164074 | 130270 | 130270 | ;АДРЕС ПОДПРОГРАММЫ ОПРЕДЕЛЕНИЯ НАЛИЧИЯ МОНИТОРА | |
| 4581 | 164076 | 130262 | 130262 | ||
| 4582 | 164100 | 131312 | 131312 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ ИНТЕРФЕЙСА КЛАВИАТУРЫ | |
| 4583 | ;В РЕЖИМЕ "КОРОТКАЯ ПЕТЛЯ" | ||||
| 4584 | 164102 | 131410 | 131410 | ;АДРЕС ПОДПРОГРАММЫ ВЫБОРКИ ИЗ БУФЕРА КЛАВИАТУРЫ | |
| 4585 | ;ИДЕНТИФИКАЦИОННЫХ КОДОВ, ГЕНЕРИРУЕМЫХ КЛАВИАТУРОЙ | ||||
| 4586 | 164104 | 131632 | 131632 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ ИНТЕРФЕЙСА ПЕЧАТАЮЩЕГО | |
| 4587 | ;УСТРОЙСТВА В РЕЖИМЕ "КОРОТКАЯ ПЕТЛЯ" | ||||
| 4588 | 164106 | 131744 | 131744 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ НАЛИЧИЯ И ГОТОВНОСТИ | |
| 4589 | ;ПУЛЬТОВОГО ТЕРМИНАЛА | ||||
| 4590 | 164110 | 132472 | 132472 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ КОММУНИКАЦИОННОГО | |
| 4591 | ;ИНТЕРФЕЙСА | ||||
| 4592 | 164112 | 133306 | 133306 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ ТАЙМЕРА | |
| 4593 | 164114 | 133620 | 133620 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ ОЗУ ТАЙМЕРА | |
| 4594 | 164116 | 133716 | 133716 | ;АДРЕС ПОДПРОГРАММЫ ПРОВЕРКИ АДАПТЕРА ПЛАВАЮЩЕЙ ЗАПЯТОЙ | |
| 4595 | 164120 | 000000 | 000000 | ||
| 4596 | |||||
| 4597 | |||||
| 4598 | ;*********************************************************************** | ||||
| 4599 | ; | ||||
| 4600 | ;ПРОВЕРКА ИСПРАВНОСТИ ПОЗИЦИИ СИСТЕМНОЙ МАГИСТРАЛИ | ||||
| 4601 | ;ПРИ НАЛИЧИИ МОДУЛЯ В ПОЗИЦИИ СИСТЕМНОЙ МАГИСТРАЛИ ЕГО ИДЕНТИФИКАЦИОННЫЙ | ||||
| 4602 | ;КОД ЗАПИСЫВАЕТСЯ В СООТВЕТСТВУЮЩУЮ ЯЧЕЙКУ ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК. | ||||
| 4603 | ;ЕСЛИ ПОЗИЦИЯ СВОБОДНА И РЕГИСТР ИДЕНТИФИКАЦИИ ЛИБО НЕ ОТВЕЧАЕТ, ЛИБО | ||||
| 4604 | ;ЕГО СОДЕРЖИМОЕ РАВНО 0, СОДЕРЖИМОЕ ЯЧЕЕК НЕ ИЗМЕНЯЕТСЯ (177777 И 0). | ||||
| 4605 | ; | ||||
| 4606 | ;*********************************************************************** | ||||
| 4607 | |||||
| 4608 | |||||
| 4609 | 164122 | 012700 177762 | MOV #177762,R0 | ||
| 4610 | 164126 | 012701 000010 | MOV #10,R1 | ||
| 4611 | 164132 | 012737 164402 000004 | MOV #164402,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 4612 | 164140 | 012737 000340 000006 | MOV #340,@#6 | ||
| 4613 | 164146 | 012702 174000 | MOV #174000,R2 | ;ВЫБРАТЬ АДРЕС 1-Й ПОЗИЦИИ | |
| 4614 | 164152 | 012746 000005 | MOV #5,-(SP) | ;ВЫБРАТЬ СЧЕТЧИК ОБРАЩЕНИЙ К РЕГИСТРУ | |
| 4615 | ;ИДЕНТИФИКАЦИИ МОДУЛЯ ПРИ ОШИБОЧНОЙ | ||||
| 4616 | ;СИТУАЦИИ | ||||
| 4617 | 164156 | 005004 | CLR R4 | ||
| 4618 | 164160 | 005746 | TST -(SP) | ;ОЧИСТИТЬ ЯЧЕЙКУ СТЕКА ДЛЯ ЗАПИСИ | |
| 4619 | ;ИДЕНТИФИКАЦИОННОГО КОДА МОДУЛЯ ИЛИ ОШИБКИ | ||||
| 4620 | 164162 | 005062 000002 | CLR 2(R2) | ;ОЧИСТИТЬ РС02 | |
| 4621 | ;ПРОИЗОЙДЕТ ПРЕРЫВАНИЕ С АДРЕСОМ ВЕКТОРА 000004, | ||||
| 4622 | ;ЕСЛИ РЕГИСТР НЕ ОТВЕЧАЕТ | ||||
| 4623 | 164166 | 111237 001022 | MOVB @R2,@#1022 | ;ПОЛУЧИТЬ В 001022 ИДЕНТИФИКАЦИОННЫЙ КОД МОДУЛЯ | |
| 4624 | 164172 | 111237 001023 | MOVB @R2,@#1023 | ||
| 4625 | 164176 | 013716 001022 | MOV @#1022,@SP | ;ВЫБРАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД МОДУЛЯ | |
| 4626 | 164202 | 005716 | TST @SP | ;ИДЕНТИФИКАЦИОННЫЙ КОД РАВЕН 0? | |
| 4627 | 164204 | 001030 | BNE 164266 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕЙ ПОЗИЦИИ, ЕСЛИ НЕТ | |
| 4628 | 164206 | 012705 000010 | MOV #10,R5 | ||
| 4629 | 164212 | 160105 | SUB R1,R5 | ||
| 4630 | 164214 | 012703 000001 | MOV #1,R3 | ;СФОРМИРОВАТЬ 1 В РАЗРЯДЕ, СООТВЕТСТВУЮЩЕМУ | |
| 4631 | 164220 | 072305 | ASH R5,R3 | ;ДАННОМУ МОДУЛЮ | |
| 4632 | 164222 | 030337 173702 | BIT R3,@#173702 | ;ПОЗИЦИЯ ЗАНЯТА? | |
| 4633 | 164226 | 001421 | BEQ 164272 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕЙ ПОЗИЦИИ, ЕСЛИ | |
| 4634 | ;СВОБОДНА | ||||
| 4635 | 164230 | 005766 000002 | TST 2(SP) | ;КОНЕЦ ОБРАЩЕНИЙ К РЕГИСТРУ ИДЕНТИФИКАЦИИ? | |
| 4636 | 164234 | 001405 | BEQ 164250 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4637 | 164236 | 005304 | DEC R4 | ||
| 4638 | 164240 | 001350 | BNE 164162 | ;ПЕРЕЙТИ НА ПОВТОРНУЮ ПРОВЕРКУ СОДЕРЖИМОГО | |
| 4639 | 164242 | 005366 000002 | DEC 2(SP) | ;РЕГИСТРА ИДЕНТИФИКАЦИИ МОДУЛЯ | |
| 4640 | 164246 | 001345 | BNE 164162 | ||
| 4641 | 164250 | 005716 | TST @SP | ;ПРОИЗШЛО ПРЕРЫВАНИЕ С АДРЕСОМ ВЕКТОРА 000004? | |
| 4642 | 164252 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4643 | 164254 | 012760 177775 117774 | MOV #177775,117774(R0) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4644 | ;КОД ОШИБКИ 177775: | ||||
| 4645 | ;ПОЗИЦИЯ ЗАНЯТА, А | ||||
| 4646 | ;ИДЕНТИФИКАЦИОННЫЙ КОД МОДУЛЯ = 0 | ||||
| 4647 | 164262 | 012716 177776 | MOV #177776,@SP | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4648 | ;КОД ОШИБКИ 177776: | ||||
| 4649 | ;ПОЗИЦИЯ ЗАНЯТА, НО ПРИ ОБРАЩЕНИИ К РЕГИСТРАМ | ||||
| 4650 | ;МОДУЛЯ ПРОИЗОШЛО ПРЕРЫВАНИЕ С АДРЕСОМ | ||||
| 4651 | ;ВЕКТОРА 000004 ИЛИ ИДЕНТИФИКАЦИОННЫЙ КОД | ||||
| 4652 | ;МОДУЛЯ = 0 | ||||
| 4653 | |||||
| 4654 | 164266 | 011660 117776 | MOV @SP,117776(R0) | ;ЗАПИСАТЬ КОД ОШИБКИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4655 | 164272 | 062702 000200 | ADD #200,R2 | ;ПОЛУЧИТЬ АДРЕС СЛЕДУЮЩЕЙ ПОЗИЦИИ | |
| 4656 | 164276 | 162700 000004 | SUB #4,R0 | ;ПОЛУЧИТЬ АДРЕС В ТАБЛИЦЕ КОНФИГУРАЦИИ ПВК | |
| 4657 | ;ДЛЯ СЛЕДУЮЩЕЙ ПОЗИЦИИ | ||||
| 4658 | 164302 | 077151 | SOB R1,164162 | ||
| 4659 | 164304 | 013700 173702 | MOV @#173702,R0 | ;СЧИТАТЬ СОДЕРЖИМОЕ РЕГИСТРА ЗАНЯТОСТИ ПОЗИЦИИ | |
| 4660 | 164310 | 012701 177762 | MOV #177762,R1 | ||
| 4661 | 164314 | 012702 000010 | MOV #10,R2 | ||
| 4662 | 164320 | 032700 000001 | BIT #1,R0 | ;ПОЗИЦИЯ ЗАНЯТА? | |
| 4663 | 164324 | 001407 | BEQ 164344 | ;ПЕРЕЙТИ, ЕСЛИ СВОБОДНА | |
| 4664 | 164326 | 005761 117776 | TST 117776(R1) | ;СОДЕРЖИМОЕ ЯЧЕЙКИ =0? | |
| 4665 | 164332 | 001015 | BNE 164366 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4666 | 164334 | 012761 177776 117776 | MOV #177776,117776(R1) | ;ЗАПИСАТЬ КОД ОШИБКИ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4667 | 164342 | 000411 | BR 164366 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕЙ ПОЗИЦИИ | |
| 4668 | 164344 | 032700 000001 | BIT #1,R0 | ;ПОЗИЦИЯ СВОБОДНА? | |
| 4669 | 164350 | 001006 | BNE 164366 | ;ПЕРЕЙТИ, ЕСЛИ ЗАНЯТА | |
| 4670 | 164352 | 005761 117776 | TST 117776(R1) | ;СОДЕРЖИМОЕ РЕГИСТРА ИДЕНТИФИКАЦИИ РАВНО 0? | |
| 4671 | 164356 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4672 | 164360 | 012761 177774 117774 | MOV #177774,117774(R1) | ;ЗАПИСАТЬ В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | |
| 4673 | ;КОД ОШИБКИ 177774: | ||||
| 4674 | ;ПОЗИЦИЯ СВОБОДНА, А СОДЕРЖИМОЕ РЕГИСТРА | ||||
| 4675 | ;ИДЕНТИФИКАЦИИ НЕ РАВНО 0 | ||||
| 4676 | 164366 | 162701 000004 | SUB #4,R1 | ||
| 4677 | 164372 | 006000 | ROR R0 | ||
| 4678 | 164374 | 077227 | SOB R2,164320 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕЙ ПОЗИЦИИ | |
| 4679 | 164376 | 022626 | CMP (SP)+,(SP)+ | ;ВОССТАНОВИТЬ УС | |
| 4680 | 164400 | 000406 | BR 164416 | ;ПЕРЕЙТИ К ПРОВЕРКЕ МОДУЛЕЙ СИСТЕМНОЙ | |
| 4681 | ;МАГИСТРАЛИ | ||||
| 4682 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА 000004 | ||||
| 4683 | |||||
| 4684 | 164402 | 012766 177777 000004 | MOV #-1,4(SP) | ;ЗАПИСЬ 177777 В СТЕК | |
| 4685 | 164410 | 012716 164206 | MOV #164206,@SP | ;СФОРМИРОВАТЬ АДРЕС ВОЗВРАТА ИЗ ПОДПРОГРАММЫ | |
| 4686 | 164414 | 000002 | RTI | ||
| 4687 | |||||
| 4688 | ;********************************************************************* | ||||
| 4689 | ; | ||||
| 4690 | ;ПРОВЕРИТЬ МОДУЛИ, УСТАНОВЛЕННЫЕ В ПОЗИЦИИ СИСТЕМНОЙ МАГИСТРАЛИ | ||||
| 4691 | ; | ||||
| 4692 | ;********************************************************************* | ||||
| 4693 | |||||
| 4694 | 164416 | 005005 | CLR R5 | ;УСТАНОВИТЬ ИДЕНТИФИКАТОР ПОЗИЦИИ | |
| 4695 | 164420 | 010546 | MOV R5,-(SP) | ||
| 4696 | 164422 | 005765 117760 | TST 117760(R5) | ;ПОЗИЦИЯ ЗАНЯТА? | |
| 4697 | 164426 | 001527 | BEQ 164706 | ;ПЕРЕЙТИ, ЕСЛИ СВОБОДНА | |
| 4698 | 164430 | 022765 177776 117760 | CMP #177776,117760(R5) | ;ПОЗИЦИЯ ИСПРАВНА? | |
| 4699 | 164436 | 001523 | BEQ 164706 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4700 | 164440 | 010500 | MOV R5,R0 | ||
| 4701 | 164442 | 005400 | NEG R0 | ||
| 4702 | 164444 | 072027 177776 | ASH #177776,R0 | ||
| 4703 | 164450 | 022765 002004 117760 | CMP #2004,117760(R5) | ;В ПОЗИЦИИ УСТАНОВЛЕН КОНТРОЛЛЕР НГМД? | |
| 4704 | 164456 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4705 | 164460 | 000137 135216 | JMP @#135216 | ;ВЫПОЛНИТЬ ПОДПРОГРАММУ ПРОВЕРКИ КОНТРОЛЛЕРА | |
| 4706 | ;НГМД | ||||
| 4707 | 164464 | 022765 000401 117760 | CMP #401,117760(R5) | ;В ПОЗИЦИИ УСТАНОВЛЕН КОНТРОЛЛЕР НМД? | |
| 4708 | 164472 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4709 | 164474 | 000137 135602 | JMP @#135602 | ;ВЫПОЛНИТЬ ПОДПРОГРАММУ ПРОВЕРКИ КОНТРОЛЛЕРА НМД | |
| 4710 | 164500 | 022765 001002 117760 | CMP #1002,117760(R5) | ;В ПОЗИЦИИ УСТАНОВЛЕН ВИДЕОКОНТРОЛЛЕР? | |
| 4711 | 164506 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4712 | 164510 | 000137 137130 | JMP @#137130 | ;ВЫПОНИТЬ ПОДПРОГРАММУ ПРОВЕРКИ ВИДЕОКОНТРОЛЛЕРА | |
| 4713 | 164514 | 026527 117756 177777 | CMP 117756(R5),#-1 | ;ПОЗИЦИЯ ЗАНЯТА И СОДЕРЖИМОЕ РЕГИСТРА | |
| 4714 | ;ИДЕНТИФИКАЦИИ ОТЛИЧНО ОТ 0? | ||||
| 4715 | 164522 | 001071 | BNE 164706 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4716 | 164524 | 012737 164730 000004 | MOV #164730,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 4717 | 164532 | 005405 | NEG R5 | ||
| 4718 | 164534 | 072527 177776 | ASH #177776,R5 | ||
| 4719 | 164540 | 004737 164770 | JSR PC,@#164770 | ;СЧИТАТЬ БАЙТЫ 1-12 ПЗУ МОДУЛЯ В ЯЧЕЙКИ С | |
| 4720 | ;АДРЕСАМИ 001000-001010 | ||||
| 4721 | 164544 | 103003 | BCC .+10 | ;ПЕРЕЙТИ, ЕСЛИ БАЙТ 3 ПЗУ МОДУЛЯ РАВЕН 377 | |
| 4722 | 164546 | 052702 177777 | BIS #-1,R2 | ||
| 4723 | 164552 | 000442 | BR 164660 | ;ПЕРЕЙТИ К ПРОВЕРКЕ СЛЕДУЮЩЕГО МОДУЛЯ | |
| 4724 | 164554 | 013700 001006 | MOV @#1006,R0 | ;ВЫБРАТЬ БАЙТ 7 ПЗУ МОДУЛЯ | |
| 4725 | 164560 | 005065 000002 | CLR 2(R5) | ;УСТАНОВИТЬ УКАЗАТЕЛЬ НА НАЧАЛО ПЗУ МОДУЛЯ | |
| 4726 | |||||
| 4727 | ;ПРОИЗВЕСТИ КОНТРОЛЬНОЕ СУММИРОВАНИЕ СОДЕРЖИМОГО ПЗУ МОДУЛЯ | ||||
| 4728 | ;КОЛИЧЕСТВО СУММИРУЕМЫХ ЯЧЕЕК РАВНО СОДЕРЖИМОМУ БАЙТА 7, | ||||
| 4729 | ;УМНОЖЕННОМУ НА 200 | ||||
| 4730 | 164564 | 052737 177777 001020 | BIS #-1,@#1020 | ||
| 4731 | 164572 | 012701 000200 | MOV #200,R1 | ||
| 4732 | 164576 | 111537 001022 | MOVB @R5,@#1022 | ||
| 4733 | 164602 | 111537 001023 | MOVB @R5,@#1023 | ||
| 4734 | 164606 | 013702 001022 | MOV @#1022,R2 | ||
| 4735 | 164612 | 074237 001020 | XOR R2,@#1020 | ||
| 4736 | 164616 | 000241 | CLC | ||
| 4737 | 164620 | 006137 001020 | ROL @#1020 | ||
| 4738 | 164624 | 005537 001020 | ADC @#1020 | ||
| 4739 | 164630 | 077116 | SOB R1,164576 | ||
| 4740 | 164632 | 077021 | SOB R0,164572 | ||
| 4741 | 164634 | 005737 001020 | TST @#1020 | ;КС=0? | |
| 4742 | 164640 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4743 | 164642 | 012702 177776 | MOV #177776,R2 | ;ОШИБКА КС СОДЕРЖИМОГО ПЗУ МОДУЛЯ | |
| 4744 | 164646 | 000404 | BR 164660 | ;ПЕРЕЙТИ К ЗАПИСИ КОДА ОШИБКИ В ТАБЛИЦУ | |
| 4745 | ;КОНФИГУРАЦИИ ПВК | ||||
| 4746 | 164650 | 012702 164732 | MOV #164732,R2 | ||
| 4747 | 164654 | 004737 154514 | JSR PC,@#154514 | ;ПРОИЗВЕСТИ КОНТРОЛЬНОЕ СУММИРОВАНИЕ КОДОВ | |
| 4748 | ;МИКРО-ПРОГРАММЫ И ЗАГРУЗИТЬ МИКРО-ПРОГРАММУ | ||||
| 4749 | ;ИЗ ПЗУ МОДУЛЯ В ОЗУ, НАЧИНАЯ С АДРЕСА 002000 | ||||
| 4750 | 164660 | 005702 | TST R2 | ;БЫЛИ ОШИБКИ? | |
| 4751 | 164662 | 001006 | BNE 164700 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4752 | 164664 | 011600 | MOV @SP,R0 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ | |
| 4753 | 164666 | 005400 | NEG R0 | ||
| 4754 | 164670 | 072027 177776 | ASH #177776,R0 | ||
| 4755 | 164674 | 012707 002000 | MOV #2000,PC | ;ВЫПОЛНИТЬ ЗАГРУЖЕННУЮ ПРОГРАММУ ПРОВЕРКИ МОДУЛЯ | |
| 4756 | 164700 | 011605 | MOV @SP,R5 | ||
| 4757 | 164702 | 010265 117756 | MOV R2,117756(R5) | ;ЗАПИСАТЬ КОД ОШИБКИ/СОСТОЯНИЯ В ТАБЛИЦУ | |
| 4758 | ;КОНФИГУРАЦИИ ПВК | ||||
| 4759 | 164706 | 012605 | MOV (SP)+,R5 | ||
| 4760 | 164710 | 022705 177744 | CMP #177744,R5 | ;ВСЕ ПОЗИЦИИ ПРОВЕРЕНЫ? | |
| 4761 | 164714 | 001002 | BNE .+6 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4762 | 164716 | 000137 165470 | JMP @#165470 | ;ПЕРЕЙТИ К АНАЛИЗУ СОДЕРЖИМОГО ТАБЛИЦЫ | |
| 4763 | ;КОНФИГУРАЦИИ ПВК | ||||
| 4764 | 164722 | 162705 000004 | SUB #4,R5 | ||
| 4765 | 164726 | 000634 | BR 164420 | ||
| 4766 | 164730 | 000777 | BR .+0 | ||
| 4767 | 164732 | 042046 | 042046 | ||
| 4768 | 164734 | 000000 | 0 | ||
| 4769 | 164736 | 000000 | 0 | ||
| 4770 | 164740 | 000000 | 0 | ||
| 4771 | 164742 | 000000 | 0 | ||
| 4772 | 164744 | 041046 | 041046 | ||
| 4773 | 164746 | 000000 | 0 | ||
| 4774 | 164750 | 000000 | 0 | ||
| 4775 | 164752 | 000000 | 0 | ||
| 4776 | 164754 | 000000 | 0 | ||
| 4777 | 164756 | 053046 | 053046 | ||
| 4778 | 164760 | 000000 | 0 | ||
| 4779 | 164762 | 000000 | 0 | ||
| 4780 | 164764 | 000000 | 0 | ||
| 4781 | 164766 | 000000 | 0 | ||
| 4782 | |||||
| 4783 | |||||
| 4784 | ;*********************************************************************** | ||||
| 4785 | ; | ||||
| 4786 | ;ПОДПРОГРАММА СЧИТЫВАНИЯ БАЙТОВ 1-12 ПЗУ МОДУЛЯ В ЯЧЕЙКИ ОЗУ С | ||||
| 4787 | ;АДРЕСАМИ 001000-001010 | ||||
| 4788 | ;ПРИ СОДЕРЖИМОМ БАЙТА 3 ПЗУ МОДУЛЯ , РАВНОМ 377, ОЧИЩАЕТСЯ "С"-РАЗРЯД | ||||
| 4789 | ;В ПРОТИВНОМ СЛУЧАЕ - УСТАНАВЛИВАЕТСЯ | ||||
| 4790 | ; | ||||
| 4791 | ;*********************************************************************** | ||||
| 4792 | |||||
| 4793 | 164770 | 072527 000007 | ASH #7,R5 | ||
| 4794 | 164774 | 062705 174000 | ADD #174000,R5 | ;ПОЛУЧИТЬ АДРЕС МОДУЛЯ | |
| 4795 | 165000 | 005065 000002 | CLR 2(R5) | ;УСТАНОВИТЬ УКАЗАТЕЛЬ НА НАЧАЛО ПЗУ МОДУЛЯ | |
| 4796 | 165004 | 012700 001000 | MOV #1000,R0 | ;ВЫБРАТЬ АДРЕС ОЗУ | |
| 4797 | 165010 | 012701 000012 | MOV #12,R1 | ;ВЫБРАТЬ СЧЕТЧИК БАЙТОВ | |
| 4798 | 165014 | 111520 | MOVB @R5,(R0)+ | ;СЧИТАТЬ БАЙТЫ 1-12 В ОЗУ | |
| 4799 | 165016 | 077102 | SOB R1,.-2 | ||
| 4800 | 165020 | 122737 000377 001002 | CMPB #377,@#1002 | ;БАЙТ 3 =377? | |
| 4801 | 165026 | 001001 | BNE .+4 | ;ПЕРЕЙТИ НА УСТАНОВКУ "С"-РАЗРЯДА, ЕСЛИ НЕТ | |
| 4802 | 165030 | 005727 000261 | TST #261 | ||
| 4803 | 165034 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 4804 | |||||
| 4805 | ;*********************************************************************** | ||||
| 4806 | ; | ||||
| 4807 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ПРЕРЫВАНИЯ С АДРЕСОМ ВЕКТОРА | ||||
| 4808 | ;ПРЕРЫВАНИЯ 000030 | ||||
| 4809 | ; | ||||
| 4810 | ;*********************************************************************** | ||||
| 4811 | |||||
| 4812 | 165036 | 010346 | MOV R3,-(SP) | ;СОХРАНИТЬ R3 | |
| 4813 | 165040 | 012746 165070 | MOV #165070,-(SP) | ||
| 4814 | 165044 | 016603 000004 | MOV 4(SP),R3 | ;ВЫБРАТЬ АДРЕС СЛЕДУЮЩЕЙ НЕВЫПОЛНЕННОЙ КОМАНДЫ | |
| 4815 | 165050 | 005743 | TST -(R3) | ;ПОЛУЧИТЬ АДРЕС ЕМТ | |
| 4816 | 165052 | 011303 | MOV @R3,R3 | ;ВЫБРАТЬ КОД ЕМТ | |
| 4817 | 165054 | 042703 177000 | BIC #177000,R3 | ;ПОЛУЧИТЬ НОМЕР EMT | |
| 4818 | 165060 | 020327 000006 | CMP R3,#6 | ;НОМЕР БОЛЬШЕ 6 ? | |
| 4819 | 165064 | 003403 | BLE .+10 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4820 | 165066 | 000207 | RTS PC | ||
| 4821 | 165070 | 012603 | MOV (SP)+,R3 | ;ВОССТАНОВИТЬ R3 | |
| 4822 | 165072 | 000002 | RTI | ;ВЫХОД ИЗ ПРЕРЫВАНИЯ | |
| 4823 | 165074 | 006303 | ASL R3 | ||
| 4824 | 165076 | 016307 165104 | MOV 165104(R3),PC | ;ПЕРЕЙТИ НА ОБРАБОТКУ ЕМТ С ЗАДАННЫМ НОМЕРОМ | |
| 4825 | 165102 | 000777 | BR .+0 | ||
| 4826 | |||||
| 4827 | |||||
| 4828 | ;ТАБЛИЦА АДРЕСОВ ПОДПРОГРАММ ОБСЛУЖИВАНИЯ КОМАНД ЕМТ | ||||
| 4829 | ;С ЗАДАННЫМ НОМЕРОМ | ||||
| 4830 | |||||
| 4831 | 165104 | 165326 | 165326 | ;ЕМТ+0 | |
| 4832 | 165106 | 165254 | 165254 | ;ЕМТ+1 | |
| 4833 | 165110 | 165160 | 165160 | ;ЕМТ+2 | |
| 4834 | 165112 | 165122 | 165122 | ;ЕМТ+3 | |
| 4835 | 165114 | 165216 | 165216 | ;ЕМТ+4 | |
| 4836 | 165116 | 165336 | 165336 | ;ЕМТ+5 | |
| 4837 | 165120 | 165412 | 165412 | ;ЕМТ+6 4838 | |
| 4839 | ;********************************************************************** | ||||
| 4840 | ; | ||||
| 4841 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ЕМТ+3. | ||||
| 4842 | ;ПОДПРОГРАММА ЗАПРЕЩЕНИЯ ПРЕРЫВАНИЯ ОТ УКАЗАННОГО УСТРОЙСТВА | ||||
| 4843 | ; | ||||
| 4844 | ;*********************************************************************** | ||||
| 4845 | |||||
| 4846 | 165122 | 010146 | MOV R1,-(SP) | ||
| 4847 | 165124 | 011603 | MOV @SP,R3 | ;ВЫБРАТЬ ПРИЗНАК УСТРОЙСТВА | |
| 4848 | 165126 | 000303 | SWAB R3 | ||
| 4849 | 165130 | 006303 | ASL R3 | ||
| 4850 | 165132 | 006303 | ASL R3 | ||
| 4851 | 165134 | 042703 177400 | BIC #177400,R3 | ||
| 4852 | 165140 | 042716 177400 | BIC #177400,@SP | ||
| 4853 | 165144 | 062716 000070 | ADD #70,@SP | ||
| 4854 | 165150 | 011663 173202 | MOV @SP,173202(R3) | ;ЗАПРЕТИТЬ ПРЕРЫВАНИЕ ОТ УКАЗАННОГО УСТРОЙСТВА | |
| 4855 | 165154 | 005726 | TST (SP)+ | ||
| 4856 | 165156 | 000207 | RTS PC | ||
| 4857 | |||||
| 4858 | ;*********************************************************************** | ||||
| 4859 | ; | ||||
| 4860 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ЕМТ+2 | ||||
| 4861 | ;ПОДПРОГРАММА РАЗРЕШЕНИЯ ПРЕРЫВАНИЯ ОТ УКАЗАННОГО УСТРОЙСТВА | ||||
| 4862 | ; | ||||
| 4863 | ;*********************************************************************** | ||||
| 4864 | |||||
| 4865 | 165160 | 010146 | MOV R1,-(SP) | ||
| 4866 | 165162 | 011603 | MOV @SP,R3 | ;ВЫБРАТЬ ПРИЗНАК УСТРОЙСТВА | |
| 4867 | 165164 | 000303 | SWAB R3 | ||
| 4868 | 165166 | 006303 | ASL R3 | ||
| 4869 | 165170 | 006303 | ASL R3 | ||
| 4870 | 165172 | 042703 177400 | BIC #177400,R3 | ||
| 4871 | 165176 | 042716 177400 | BIC #177400,@SP | ||
| 4872 | 165202 | 062716 000030 | ADD #30,@SP | ||
| 4873 | 165206 | 011663 173202 | MOV @SP,173202(R3) | ;РАЗРЕШИТЬ ПРЕРЫВАНИЕ ОТ УКАЗАННОГО УСТРОЙСТВА | |
| 4874 | 165212 | 005726 | TST (SP)+ | ||
| 4875 | 165214 | 000207 | RTS PC | ||
| 4876 | |||||
| 4877 | ;*********************************************************************** | ||||
| 4878 | ; | ||||
| 4879 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ЕМТ+4 | ||||
| 4880 | ;ПОДПРОГРАММА УСТАНОВКИ ТРЕБОВАНИЯ ПРЕРЫВАНИЯ ОТ УКАЗАННОГО УСТРОЙСТВА | ||||
| 4881 | ; | ||||
| 4882 | ;*********************************************************************** | ||||
| 4883 | |||||
| 4884 | 165216 | 010146 | MOV R1,-(SP) | ||
| 4885 | 165220 | 011603 | MOV @SP,R3 | ;ВЫБРАТЬ ПРИЗНАК УСТРОЙСТВА | |
| 4886 | 165222 | 000303 | SWAB R3 | ||
| 4887 | 165224 | 006303 | ASL R3 | ||
| 4888 | 165226 | 006303 | ASL R3 | ||
| 4889 | 165230 | 042703 177400 | BIC #177400,R3 | ||
| 4890 | 165234 | 042716 177400 | BIC #177400,@SP | ||
| 4891 | 165240 | 062716 000130 | ADD #130,@SP | ||
| 4892 | 165244 | 011663 173202 | MOV @SP,173202(R3) | ;УСТАНОВИТЬ ТРЕБОВАНИЕ ПРЕРЫВАНИЯ ОТ УСТРОЙСТВА | |
| 4893 | 165250 | 005726 | TST (SP)+ | ||
| 4894 | 165252 | 000207 | RTS PC | ||
| 4895 | |||||
| 4896 | ;*********************************************************************** | ||||
| 4897 | ; | ||||
| 4898 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ЕМТ+1 | ||||
| 4899 | ;ОПРЕДЕЛЕНИЕ ПОЗИЦИИ МОДУЛЯ ПО ЗАДАННОМУ В R0 ИДЕНТИФИКАЦИОННОМУ КОДУ | ||||
| 4900 | ; | ||||
| 4901 | ;*********************************************************************** | ||||
| 4902 | |||||
| 4903 | 165254 | 010146 | MOV R1,-(SP) | ;СОХРАНИТЬ R1 | |
| 4904 | 165256 | 010246 | MOV R2,-(SP) | ;СОХРАНИТЬ R2 | |
| 4905 | 165260 | 012701 177762 | MOV #177762,R1 | ;ВЫБРАТЬ ВИРТУАЛЬНЫЙ АДРЕС ТАБЛИЦЫ КОНФ. ПВК | |
| 4906 | 165264 | 005002 | CLR R2 | ;ОЧИСТИТЬ R2 | |
| 4907 | 165266 | 020061 117776 | CMP R0,117776(R1) | ;СОДЕРЖИМОЕ ЯЧЕЙКИ РАВНО ИДЕНТИФИКАЦИОННОМУ КОДУ? | |
| 4908 | 165272 | 001411 | BEQ 165316 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4909 | 165274 | 022702 000007 | CMP #7,R2 | ;ПОСЛЕДНЯЯ ПОЗИЦИЯ? | |
| 4910 | 165300 | 001404 | BEQ 165312 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4911 | 165302 | 162701 000004 | SUB #4,R1 | ;ПОЛУЧИТЬ АДРЕС СЛЕДУЮЩЕЙ ЯЧЕЙКИ ТАБЛИЦЫ КОНФ. | |
| 4912 | 165306 | 005202 | INC R2 | ;ПОЛУЧИТЬ НОМЕР СЛЕДУЮЩЕЙ ПОЗИЦИИ | |
| 4913 | 165310 | 000766 | BR 165266 | ||
| 4914 | 165312 | 052702 177777 | BIS #-1,R2 | ;УСТАНОВИТЬ ПРИЗНАК ОТСУТСТВИЯ ЗАДАННОГО МОДУЛЯ | |
| 4915 | 165316 | 010200 | MOV R2,R0 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ | |
| 4916 | 165320 | 012602 | MOV (SP)+,R2 | ;ВОССТАНОВИТЬ R2 | |
| 4917 | 165322 | 012601 | MOV (SP)+,R1 | ;ВОССТАНОВИТЬ R1 | |
| 4918 | 165324 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 4919 | |||||
| 4920 | |||||
| 4921 | ;*********************************************************************** | ||||
| 4922 | ; | ||||
| 4923 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ЕМТ+0 | ||||
| 4924 | ;ПОДПРОГРАММА ЗАВЕРШЕНИЯ ПРОВЕРКИ МОДУЛЕЙ, УСТАНОВЛЕННЫХ В ПОЗИЦИИ | ||||
| 4925 | ;СИСТЕМНОЙ МАГИСТРАЛИ | ||||
| 4926 | ; | ||||
| 4927 | ;********************************************************************* | ||||
| 4928 | |||||
| 4929 | 165326 | 012766 164706 000004 | MOV #164706,4(SP) | ;СФОРМИРОВАТЬ АДРЕС ВЫХОДА ИЗ ПОДПРОГРАММЫ | |
| 4930 | ;ПРОВЕРКИ МОДУЛЯ | ||||
| 4931 | 165334 | 000207 | RTS PC | ||
| 4932 | |||||
| 4933 | |||||
| 4934 | ;*********************************************************************** | ||||
| 4935 | ; | ||||
| 4936 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ЕМТ+5 | ||||
| 4937 | ;ПОДПРОГРАММА ФОРМИРОВАНИЯ В РАС 172342-172350 КОНСТАНТ | ||||
| 4938 | ;ПЕРЕРАСПРЕДЕЛЕНИЯ ОЗУ ВИДЕОКОНТРОЛЛЕРА. | ||||
| 4939 | ;СОДЕРЖИМОЕ РЕГ. 172342-172350 СОХРАНЯЕТСЯ В ЯЧ. ОЗУ 1766-1774 | ||||
| 4940 | ; | ||||
| 4941 | ;*********************************************************************** | ||||
| 4942 | |||||
| 4943 | 165336 | 010146 | MOV R1,-(SP) | ||
| 4944 | 165340 | 012701 002000 | MOV #2000,R1 | ;ВЫБРАТЬ АДРЕС ДЛЯ СОХРАНЕНИЯ КОНСТАНТ | |
| 4945 | 165344 | 010046 | MOV R0,-(SP) | ;СОХРАНИТЬ R0 | |
| 4946 | 165346 | 012700 172342 | MOV #172342,R0 | ;ВЫБРАТЬ АДРЕС РАС | |
| 4947 | 165352 | 016641 000016 | MOV 16(SP),-(R1) | ;ВЫБРАТЬ СЧЕТЧИК РАС | |
| 4948 | 165356 | 016603 000014 | MOV 14(SP),R3 | ||
| 4949 | 165362 | 072327 000007 | ASH #7,R3 | ;ПОЛУЧИТЬ КОНСТ. ПЕРЕРАСПРЕДЕЛЕНИЯ ДЛЯ ДОСТУПА | |
| 4950 | ;К ПАМЯТИ ВИДЕОДАННЫХ | ||||
| 4951 | 165366 | 011041 | MOV @R0,-(R1) | ;СОХРАНИТЬ РАС | |
| 4952 | 165370 | 010320 | MOV R3,(R0)+ | ;СФОРМИРОВАТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 4953 | 165372 | 062703 000200 | ADD #200,R3 | ;ПОЛУЧИТЬ СЛЕДУЮЩУЮ КОНСТАНТУ | |
| 4954 | 165376 | 005366 000016 | DEC 16(SP) | ||
| 4955 | 165402 | 001371 | BNE 165366 | ||
| 4956 | 165404 | 012600 | MOV (SP)+,R0 | ;ВОССТАНОВИТЬ R0 | |
| 4957 | 165406 | 012601 | MOV (SP)+,R1 | ;ВОССТАНОВИТЬ R1 | |
| 4958 | 165410 | 000207 | RTS PC | ||
| 4959 | |||||
| 4960 | |||||
| 4961 | ;*********************************************************************** | ||||
| 4962 | ; | ||||
| 4963 | ;ПОДПРОГРАММА ОБСЛУЖИВАНИЯ ЕМТ+6 | ||||
| 4964 | ;ПОДПРОГРАММА ВОССТАНОВЛЕНИЯ СОДЕРЖИМОГО РЕГИСТРОВ 172342-172350 | ||||
| 4965 | ;ИЗ ЯЧЕЕК 1766-1774 ПОСЛЕ ПРОВЕРКИ ВИДЕОКОНТРОЛЛЕРА | ||||
| 4966 | ; | ||||
| 4967 | ;*********************************************************************** | ||||
| 4968 | |||||
| 4969 | 165412 | 010046 | MOV R0,-(SP) | ;СОХРАНИТЬ R0 | |
| 4970 | 165414 | 010146 | MOV R1,-(SP) | ;СОХРАНИТЬ R1 | |
| 4971 | 165416 | 012701 002000 | MOV #2000,R1 | ;ВЫБРАТЬ АДРЕС В R1 | |
| 4972 | 165422 | 014146 | MOV -(R1),-(SP) | ;ВЫБРАТЬ СЧЕТЧИК РАС | |
| 4973 | 165424 | 005716 | TST @SP | ;СОДЕРЖИМОЕ ВСЕХ РАС ВОССТАНОВЛЕНО? | |
| 4974 | 165426 | 001405 | BEQ 165442 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 4975 | 165430 | 012700 172342 | MOV #172342,R0 | ;ВЫБРАТЬ АДРЕС РАС | |
| 4976 | 165434 | 014120 | MOV -(R1),(R0)+ | ;ВОССТАНОВИТЬ СОДЕРЖИМОЕ РАС | |
| 4977 | 165436 | 005316 | DEC @SP | ;ВСЕ РАС ВОССТАНОВЛЕНЫ? | |
| 4978 | 165440 | 001375 | BNE .-4 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 4979 | 165442 | 005037 001776 | CLR @#1776 | ||
| 4980 | 165446 | 005726 | TST (SP)+ | ;ОЧИСТИТЬ СТЕК | |
| 4981 | 165450 | 012601 | MOV (SP)+,R1 | ;ВОССТАНОВИТЬ R1 | |
| 4982 | 165452 | 012600 | MOV (SP)+,R0 | ;ВОССТАНОВИТЬ R0 | |
| 4983 | 165454 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 4984 | |||||
| 4985 | ;*********************************************************************** | ||||
| 4986 | ; | ||||
| 4987 | ;ПОДПРОГРАММА ПЕРЕМЕЩЕНИЯ СОДЕРЖИМОГО 111 ЯЧЕЕК АВТОДЕКРЕМЕНТНО | ||||
| 4988 | ;ИЗ R0 В R1 (ТАБЛИЦА КОНФИГУРАЦИИ ПВК) | ||||
| 4989 | ; | ||||
| 4990 | ;*********************************************************************** | ||||
| 4991 | |||||
| 4992 | 165456 | 012703 000111 | MOV #111,R3 | ;УСТАНОВИТЬ СЧЕТЧИК ЯЧЕЕК ТАБЛИЦЫ КОНФИГУРАЦИИ ПВК | |
| 4993 | 165462 | 014041 | MOV -(R0),-(R1) | ;ПЕРЕМЕСТИТЬ АВТОДЕКРЕМЕНТНО ИЗ R0 В R1 | |
| 4994 | ;ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | ||||
| 4995 | 165464 | 077302 | SOB R3,.-2 | ;ПЕРЕЙТИ, ЕСЛИ СЧЕТЧИК НЕ ИСЧЕРПАН | |
| 4996 | 165466 | 000207 | RTS PC | ||
| 4997 | |||||
| 4998 | ;*********************************************************************** | ||||
| 4999 | ; | ||||
| 5000 | ;ПОДПРОГРАММА ФОРМИРОВАНИЯ КОНСТАНТ ПЕРЕРАСПРЕДЕЛЕНИЯ ПАМЯТИ | ||||
| 5001 | ; | ||||
| 5002 | ;********************************************************************* | ||||
| 5003 | |||||
| 5004 | 165470 | 012737 165744 000004 | MOV #165744,@#4 | ;СФОРМИРОВАТЬ ВЕКТОР С АДРЕСОМ 000004 | |
| 5005 | 165476 | 012737 000245 173202 | MOV #245,@#173202 | ||
| 5006 | 165504 | 012737 000260 173202 | MOV #260,@#173202 | ||
| 5007 | 165512 | 012737 000245 173206 | MOV #245,@#173206 | ||
| 5008 | 165520 | 012737 000260 173206 | MOV #260,@#173206 | ||
| 5009 | 165526 | 012737 000245 173212 | MOV #245,@#173212 | ||
| 5010 | 165534 | 012737 000260 173212 | MOV #260,@#173212 | ||
| 5011 | 165542 | 005037 177572 | CLR @#177572 | ;ЗАПРЕТИТЬ ДП | |
| 5012 | 165546 | 005037 172516 | CLR @#172516 | ;ЗАПРЕТИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 5013 | 165552 | 005037 172340 | CLR @#172340 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ДЛЯ | |
| 5014 | 165556 | 012737 000200 172342 | MOV #200,@#172342 | ;ДОСТУПА К ОЗУ | |
| 5015 | 165564 | 012737 000400 172344 | MOV #400,@#172344 | ||
| 5016 | 165572 | 012737 000600 172346 | MOV #600,@#172346 | ||
| 5017 | 165600 | 012737 001400 172350 | MOV #1400,@#172350 | ||
| 5018 | 165606 | 012737 177400 172354 | MOV #177400,@#172354 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ ДЛЯ | |
| 5019 | ;ДОСТУПА К ПЗУ И | ||||
| 5020 | 165614 | 012737 177600 172356 | MOV #177600,@#172356 | ;К СТРАНИЦЕ ВВОДА/ВЫВОДА | |
| 5021 | 165622 | 012700 000010 | MOV #10,R0 | ||
| 5022 | 165626 | 012701 077406 | MOV #77406,R1 | ;РАЗРЕШИТЬ ДОСТУП КО ВСЕМ СТРАНИЦАМ | |
| 5023 | 165632 | 012702 172300 | MOV #172300,R2 | ||
| 5024 | 165636 | 010122 | MOV R1,(R2)+ | ||
| 5025 | 165640 | 077002 | SOB R0,.-2 | ||
| 5026 | 165642 | 012737 000020 172516 | MOV #20,@#172516 | ;РАЗРЕШИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 5027 | 165650 | 012737 000001 177572 | MOV #1,@#177572 | ;РАЗРЕШИТЬ ДП | |
| 5028 | 165656 | 013737 117706 172352 | MOV @#117706,@#172352 | ||
| 5029 | 165664 | 006337 172352 | ASL @#172352 | ||
| 5030 | 165670 | 162737 000200 172352 | SUB #200,@#172352 | ;ПОЛУЧИТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5031 | ;ФИЗИЧЕСКОЙ СТРАНИЦЫ ОЗУ | ||||
| 5032 | |||||
| 5033 | |||||
| 5034 | 165676 | 012700 120000 | MOV #120000,R0 | ||
| 5035 | 165702 | 012701 140000 | MOV #140000,R1 | ||
| 5036 | 165706 | 004737 165456 | JSR PC,@#165456 | ;ПЕРЕМЕСТИТЬ ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ИЗ ЯЧЕЕК | |
| 5037 | ;С АДРЕСАМИ 00157554-00157776 В КОНЕЦ ОЗУ | ||||
| 5038 | 165712 | 004737 142446 | JSR PC,@#142446 | ;ВЫВЕСТИ СООБЩЕНИЕ ОБ ОШИБКЕ ИЛИ СООБЩЕНИЕ | |
| 5039 | ;"Э Л Е К Т Р О Н И К А" | ||||
| 5040 | |||||
| 5041 | 165716 | 113737 117707 173050 | MOVB @#117707,@#173050 | ;ЗАПИСАТЬ ЕМКОСТЬ ПАМЯТИ | |
| 5042 | 165724 | 123737 117707 173050 | CMPB @#117707,@#173050 | ;ДАННЫЕ СОВПАДАЮТ? | |
| 5043 | 165732 | 001004 | BNE 165744 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 5044 | 165734 | 005000 | CLR R0 | ||
| 5045 | 165736 | 005001 | CLR R1 | ||
| 5046 | 165740 | 000137 167730 | JMP @#167730 | ||
| 5047 | 165744 | 000777 | BR .+0 | ||
| 5048 | |||||
| 5049 | ;*********************************************************************** | ||||
| 5050 | ; | ||||
| 5051 | ;ПОДПРОГРАММА ЗАПУСКА ПРОГРАММ ЗАГРУЗКИ | ||||
| 5052 | ;ПОДПРОГРАММА ЗАПУСКАЕТ ПРОГРАММЫ ЗАГРУЗКИ, НАЧИНАЯ С ПЕРВОГО ЭТАПА, | ||||
| 5053 | ;ЕСЛИ (177640)=0 И (177642)=0. | ||||
| 5054 | ;ПРИ (177640)=0 ИЛИ (177642)=0 ВЫВОДИТСЯ СООБЩЕНИЕ О ПРОГРАММНОЙ ОШИБКЕ | ||||
| 5055 | |||||
| 5056 | 165746 | 005737 177640 | TST @#177640 | ;ПРОГРАММНАЯ ОШИБКА? | |
| 5057 | 165752 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5058 | 165754 | 005737 177642 | TST @#177642 | ||
| 5059 | 165760 | 001471 | BEQ 166144 | ||
| 5060 | 165762 | 004737 155036 | JSR PC,@#155036 | ;СФОРМИРОВАТЬ В ЯЧЕЙКАХ 002000-002004 И 002010 | |
| 5061 | ;АДРЕСА ПОДПРОГРАММ ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ | ||||
| 5062 | 165766 | 004777 014016 | JSR PC,@2010 | ;ОЧИСТИТЬ ЭКРАН МОНИТОРА | |
| 5063 | 165772 | 012746 144232 | MOV #144232,-(SP) | ||
| 5064 | 165776 | 010337 001022 | MOV R3,@#1022 | ||
| 5065 | 166002 | 012703 177777 | MOV #-1,R3 | ||
| 5066 | 166006 | 004777 013766 | JSR PC,@2000 | ;ВЫВЕСТИ НА ЭКРАН МОНИТОРА ИЗОБРАЖЕНИЕ СИСТЕМНОГО | |
| 5067 | ;БЛОКА И КЛАВИАТУРЫ | ||||
| 5068 | 166012 | 013703 001022 | MOV @#1022,R3 | ||
| 5069 | 166016 | 013716 177640 | MOV @#177640,@SP | ;ВЫБРАТЬ ПЕРВОЕ ЧИСЛО | |
| 5070 | 166022 | 012746 000006 | MOV #6,-(SP) | ;ВЫБРАТЬ СЧЕТЧИК ЦИФР ЧИСЛА | |
| 5071 | 166026 | 005046 | CLR -(SP) | ||
| 5072 | 166030 | 012705 001100 | MOV #1100,R5 | ||
| 5073 | 166034 | 004737 143244 | JSR PC,@#143244 | ;РАСПАКОВАТЬ ЧИСЛО | |
| 5074 | 166040 | 012766 001100 000004 | MOV #1100,4(SP) | ||
| 5075 | 166046 | 012766 001551 000002 | MOV #1551,2(SP) | ;НАЧАЛЬНАЯ КООРДИНАТА ПО X | |
| 5076 | 166054 | 012716 000151 | MOV #151,@SP | ;НАЧАЛЬНАЯ КООРДИНАТА ПО Y | |
| 5077 | 166060 | 004777 013720 | JSR PC,@2004 | ;ВЫВЕСТИ НА ЭКРАН ПЕРВУЮ СТРОКУ ЦИФР | |
| 5078 | 166064 | 013766 177642 000004 | MOV @#177642,4(SP) | ;ВЫБРАТЬ ВТОРОЕ ЧИСЛО | |
| 5079 | 166072 | 012766 000006 000002 | MOV #6,2(SP) | ;ВЫБРАТЬ СЧИТЧИК ЦИФР ЧИСЛА | |
| 5080 | 166100 | 005016 | CLR @SP | ||
| 5081 | 166102 | 012705 001100 | MOV #1100,R5 | ||
| 5082 | 166106 | 004737 143244 | JSR PC,@#143244 | ;РАСПАКОВАТЬ ЧИСЛО | |
| 5083 | 166112 | 012766 001100 000004 | MOV #1100,4(SP) | ||
| 5084 | 166120 | 012766 001551 000002 | MOV #1551,2(SP) | ;НАЧАЛЬНАЯ КООРДИНАТА ПО X | |
| 5085 | 166126 | 012716 000202 | MOV #202,@SP | ;НАЧАЛЬНАЯ КООРДИНАТА ПО Y | |
| 5086 | 166132 | 004777 013646 | JSR PC,@2004 | ;ВЫВЕСТИ НА ЭКРАН ВТОРУЮ СТРОКУ ЦИФР | |
| 5087 | 166136 | 062706 000006 | ADD #6,SP | ||
| 5088 | 166142 | 000777 | BR .+0 | ||
| 5089 | |||||
| 5090 | ;********************************************************************* | ||||
| 5091 | ;ПРОИЗВЕСТИ ЗАГРУЗКУ НУЛЕВОГО БЛОКА ОПЕРАЦИОННОЙ СИСТЕМЫ ( ЗАГРУЗЧИКА ) | ||||
| 5092 | ;ЗАГРУЗКА ПРОИЗВОДИТСЯ В 3 ЭТАПА. | ||||
| 5093 | ;********************************************************************** | ||||
| 5094 | |||||
| 5095 | ;********************************************************************** | ||||
| 5096 | ; 1-Й Э Т А П З А Г Р У З К И | ||||
| 5097 | ; | ||||
| 5098 | ;НА ПЕРВОМ ЭТАПЕ ЗАГРУЗКИ ОПРЕДЕЛЯЕТСЯ НАЛИЧИЕ В ПОЗИЦИЯХ СИСТЕМНОЙ | ||||
| 5099 | ;МАГИСТРАЛИ УСТРОЙСТВ СО СМЕННЫМИ НОСИТЕЛЯМИ И ПРОИЗВОДИТСЯ ПОПЫТКА | ||||
| 5100 | ;ЗАГРУКИ С КАЖДОГО УСТРОЙСТВА. ПРИ ОТСУТСТВИИ УСТРОЙСТВ СО СМЕННЫМИ | ||||
| 5101 | ;НОСИТЕЛЯМИ ИЛИ ПРИ ОТСУТСТВИИ ЗАГРУЗЧИКОВ НА НОСИТЕЛЕ ВЫПОЛНЯЕТСЯ | ||||
| 5102 | ;ВТОРОЙ ЭТАП ЗАГРУЗКИ. | ||||
| 5103 | ;********************************************************************** | ||||
| 5104 | |||||
| 5105 | 166144 | 005037 137564 | CLR @#137564 | ;ОЧИСТИТЬ ЯЧЕЙКУ ДЛЯ ЗАПИСИ ИДЕНТИФИКАЦИОННОГО | |
| 5106 | ;КОДА УСТРОЙСТВА ЗАГРУЗКИ | ||||
| 5107 | 166150 | 112737 000377 137562 | MOVB #377,@#137562 | ||
| 5108 | 166156 | 105037 137563 | CLRB @#137563 | ;ОЧИСТИТЬ СЧЕТЧИК ПОЗИЦИЙ (РАЗРЯДЫ 03-00) | |
| 5109 | ;РАЗРЯД <07> БАЙТА 137563 - ПРИЗНАК ЭТАПА ЗАГРУЗКИ | ||||
| 5110 | ;РАЗРЯД<07>=0 - ПРИЗНАК ПЕРВОГО ЭТАПА ЗАГРУЗКИ | ||||
| 5111 | 166162 | 012737 166170 137560 | MOV #166170,@#137560 | ;СФОРМИРОВАТЬ АДРЕС ВОЗВРАТА К 1-МУ ЭТАПУ | |
| 5112 | ;ЗАГРУЗКИ | ||||
| 5113 | 166170 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 5114 | 166176 | 012706 001100 | MOV #1100,SP | ;УСТАНОВИТЬ УКАЗАТЕЛЬ СТЕКА | |
| 5115 | 166202 | 004737 167450 | JSR PC,@#167450 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5116 | 166206 | 123727 137563 000010 | CMPB @#137563,#10 | ;УСТРОЙСТВА ВСЕХ ПОЗИЦИЙ ПРОВЕРЕНЫ? | |
| 5117 | 166214 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ НА 2-Й ЭТАП ЗАГРУЗКИ, ЕСЛИ ДА | |
| 5118 | 166216 | 004737 166712 | JSR PC,@#166712 | ;ОПРЕДЕЛИТЬ, ИМЕЕТСЯ ЛИ В ДАННОЙ ПОЗИЦИИ | |
| 5119 | ;УСТРОЙСТВО СО СМЕННЫМ НОСИТЕЛЕМ, ЗАГРУЗИТЬ | ||||
| 5120 | ;И ЗАПУСТИТЬ ЗАГРУЗЧИК | ||||
| 5121 | 166222 | 000762 | BR 166170 | ;ПЕРЕЙТИ, ЕСЛИ ЗАГРУЗЧИК НЕ ЗАГРУЖЕН | |
| 5122 | |||||
| 5123 | |||||
| 5124 | ;********************************************************************** | ||||
| 5125 | ; | ||||
| 5126 | ; 2-ОЙ Э Т А П З А Г Р У З К И | ||||
| 5127 | ; | ||||
| 5128 | ;НА ВТОРОМ ЭТАПЕ ПРОИЗВОДИТСЯ ЗАГРУЗКА С УСТРОЙСТВ, ЗАДАННЫХ В ОЗУ | ||||
| 5129 | ;ТАЙМЕРА. ИДЕНТИФИКАЦИОННЫЙ КОД ПЕРВОГО УСТРОЙСТВА - В 173034 И 173036 | ||||
| 5130 | ;ИДЕНТИФИКАЦИОННЫЙ КОД ВТОРОГО - В 173040 И 173042 | ||||
| 5131 | ;*********************************************************************** | ||||
| 5132 | |||||
| 5133 | 166224 | 112737 000377 137562 | MOVB #377,@#137562 | ||
| 5134 | 166232 | 005037 137564 | CLR @#137564 | ;ОЧИСТИТЬ ЯЧЕЙКУ ДЛЯ ЗАПИСИ ИДЕНТИФИКАЦИОННОГО | |
| 5135 | ;КОДА УСТРОЙСТВА | ||||
| 5136 | 166236 | 112737 000200 137563 | MOVB #200,@#137563 | ;ОЧИСТИТЬ СЧЕТЧИК ПОЗИЦИЙ (РАЗРЯДЫ 03-00) | |
| 5137 | ;УСТАНОВИТЬ ПРИЗНАК 2-ГО ЭТАПА ПРОВЕРКИ (РАЗРЯД 07) | ||||
| 5138 | 166244 | 005737 137642 | TST @#137642 | ;ОЗУ ТАЙМЕРА СОХРАНЯЕТ ИНФОРМАЦИЮ ПОСЛЕ | |
| 5139 | ;ВЫКЛЮЧЕНИЯ ПИТАНИЯ? | ||||
| 5140 | 166250 | 001131 | BNE 166534 | ;ПЕРЕЙТИ К 3-МУ ЭТАПУ ЗАГРУЗКИ, ЕСЛИ НЕТ | |
| 5141 | |||||
| 5142 | ;ПРОИЗВЕСТИ КОНТРОЛЬНОЕ СУММИРОВАНИЕ СОДЕРЖИМОГО 173034-173046 | ||||
| 5143 | 166252 | 012737 177777 001020 | MOV #-1,@#1020 | ||
| 5144 | 166260 | 012702 000003 | MOV #3,R2 | ||
| 5145 | 166264 | 012701 173034 | MOV #173034,R1 | ||
| 5146 | 166270 | 012137 001022 | MOV (R1)+,@#1022 | ||
| 5147 | 166274 | 111137 001023 | MOVB @R1,@#1023 | ||
| 5148 | 166300 | 005721 | TST (R1)+ | ||
| 5149 | 166302 | 013703 001022 | MOV @#1022,R3 | ||
| 5150 | 166306 | 074337 001020 | XOR R3,@#1020 | ||
| 5151 | 166312 | 000241 | CLC | ||
| 5152 | 166314 | 006137 001020 | ROL @#1020 | ||
| 5153 | 166320 | 005537 001020 | ADC @#1020 | ||
| 5154 | 166324 | 077217 | SOB R2,166270 | ||
| 5155 | 166326 | 005737 001020 | TST @#1020 | ;КС=0? | |
| 5156 | 166332 | 001100 | BNE 166534 | ;ПЕРЕЙТИ К 3-МУ ЭТАПУ ЗАГРУЗКИ, ЕСЛИ НЕТ | |
| 5157 | 166334 | 012737 166422 137560 | MOV #166422,@#137560 | ;СФОРМИРОВАТЬ АДРЕС ВОЗВРАТА К ТЕКУЩЕМЫ ЭТАПУ | |
| 5158 | ;ЗАГРУЗКИ | ||||
| 5159 | 166342 | 113737 173036 001022 | MOVB @#173036,@#1022 | ||
| 5160 | 166350 | 000337 001022 | SWAB @#1022 | ||
| 5161 | 166354 | 113737 173034 001022 | MOVB @#173034,@#1022 | ||
| 5162 | 166362 | 013700 001022 | MOV @#1022,R0 | ;ВЫБРАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД ЗАДАННОГО | |
| 5163 | ;МОДУЛЯ ЗАГРУЗКИ | ||||
| 5164 | 166366 | 012737 165036 000030 | MOV #165036,@#30 | ||
| 5165 | 166374 | 012737 000340 000032 | MOV #340,@#32 | ||
| 5166 | 166402 | 104001 | EMT+1 | ;ОПРЕДЕЛИТЬ НОМЕР ПОЗИЦИИ ЗАДАННОГО МОДУЛЯ | |
| 5167 | ;НОМЕР ПОЗИЦИИ ЗАПИСАТЬ В R0 | ||||
| 5168 | ;ПРИ ОТСУТСТВИИ ДАННОГО МОДУЛЯ В R0 ЗАПИСЫВАЕТСЯ | ||||
| 5169 | ;КОД 177777 | ||||
| 5170 | 166404 | 022700 177777 | CMP #-1,R0 | ;ЗАДАННЫЙ МОДУЛЬ УСТАНОВЛЕН? | |
| 5171 | 166410 | 001404 | BEQ 166422 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 5172 | 166412 | 150037 137563 | BISB R0,@#137563 | ;ЗАПИСАТЬ НОМЕР ДАННОГО МОДУЛЯ | |
| 5173 | 166416 | 004737 166712 | JSR PC,@#166712 | ;ПРОИЗВЕСТИ ЗАГРУЗКУ И ЗАПУСК ЗАГРУЗЧИКА | |
| 5174 | ;С ЗАДАННОГО МОДУЛЯ | ||||
| 5175 | ;ЕСЛИ ЗАГРУЗЧИК НЕ ЗАГРУЖЕН, ВЫБРАТЬ ВТОРОЙ | ||||
| 5176 | ;МОДУЛЬ, ЗАДАННЫЙ В 173040 И 173042 | ||||
| 5177 | |||||
| 5178 | 166422 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 5179 | 166430 | 012706 001100 | MOV #1100,SP | ||
| 5180 | 166434 | 004737 167450 | JSR PC,@#167450 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5181 | 166440 | 113737 173042 001022 | MOVB @#173042,@#1022 | ||
| 5182 | 166446 | 000337 001022 | SWAB @#1022 | ||
| 5183 | 166452 | 113737 173040 001022 | MOVB @#173040,@#1022 | ||
| 5184 | 166460 | 013700 001022 | MOV @#1022,R0 | ;ВЫБРАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД МОДУЛЯ | |
| 5185 | 166464 | 012737 165036 000030 | MOV #165036,@#30 | ||
| 5186 | 166472 | 012737 000340 000032 | MOV #340,@#32 | ||
| 5187 | 166500 | 104001 | EMT+1 | ;ОПРЕДЕЛИТЬ НОМЕР ПОЗИЦИИ МОДУЛЯ | |
| 5188 | 166502 | 022700 177777 | CMP #-1,R0 | ;МОДУЛЬ УСТАНОВЛЕН? | |
| 5189 | 166506 | 001412 | BEQ 166534 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 5190 | 166510 | 112737 000200 137563 | MOVB #200,@#137563 | ;УСТАНОВИТЬ В РАЗРЯДЕ 07 ПРИЗНАК 2-ГО ЭТАПА | |
| 5191 | ;ЗАГРУЗКИ | ||||
| 5192 | 166516 | 150037 137563 | BISB R0,@#137563 | ;ЗАПИСАТЬ НОМЕР ПОЗИЦИИ МОДУЛЯ | |
| 5193 | 166522 | 012737 166534 137560 | MOV #166534,@#137560 | ;СФОРМИРОВАТЬ АДРЕС ВОЗВРАТА К ДАННОМУ ЭТАПУ | |
| 5194 | ;ЗАГРУЗКИ | ||||
| 5195 | 166530 | 004737 166712 | JSR PC,@#166712 | ;ЗАГРУЗИТЬ И ЗАПУСТИТЬ ЗАГРУЗЧИК | |
| 5196 | ;ПЕРЕЙТИ К 3-МУ ЭТАПУ ЗАГРУЗКИ, ЕСЛИ ЗАГРУЗЧИК | ||||
| 5197 | ;НЕ ЗАГРУЖЕН | ||||
| 5198 | |||||
| 5199 | ;*********************************************************************** | ||||
| 5200 | ; | ||||
| 5201 | ; 3-Й Э Т А П З А Г Р У З К И | ||||
| 5202 | ; | ||||
| 5203 | ;НА 3-ЕМ ЭТАПЕ ЗАГРУЗКА ПРОИЗВОДИТСЯ СОГЛАСНО ПРИОРИТЕТУ МОДУЛЕЙ | ||||
| 5204 | ;МОДУЛЬ, УСТАНОВЛЕННЫЙ 1-Ю ПОЗИЦИЮ ИМЕЕТ НАИВЫСШИЙ ПРИОРИТЕТ, | ||||
| 5205 | ;МОДУЛЬ, УСТАНОВЛЕННЫЙ В ПОСЛЕДНЮЮ ПОЗИЦИЮ - НИЗШИЙ ПРИОРИТЕТ | ||||
| 5206 | ;********************************************************************** | ||||
| 5207 | |||||
| 5208 | 166534 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 5209 | 166542 | 012706 001100 | MOV #1100,SP | ;УСТАНОВИТЬ УКАЗАТЕЛЬ СТЕКА | |
| 5210 | 166546 | 004737 167450 | JSR PC,@#167450 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5211 | 166552 | 005037 137564 | CLR @#137564 | ;ОЧИСТИТЬ ЯЧЕЙКУ ДЛЯ ЗАПИСИ ИДЕНТИФИКАЦИОННОГО | |
| 5212 | ;КОДА МОДУЛЯ | ||||
| 5213 | 166556 | 112737 000377 137562 | MOVB #377,@#137562 | ||
| 5214 | 166564 | 112737 000200 137563 | MOVB #200,@#137563 | ;УСТАНОВИТЬ В РАЗРЯДЕ 07 ПРИЗНАК 3-ГО ЭТАПА | |
| 5215 | ;ЗАГРУЗКИ | ||||
| 5216 | 166572 | 012737 166600 137560 | MOV #166600,@#137560 | ;СФОРМИРОВАТЬ АДРЕС ВОЗВРАТА К ДАННОМУ ЭТАПУ | |
| 5217 | ;ЗАГРУЗКИ | ||||
| 5218 | 166600 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 5219 | 166606 | 012706 001100 | MOV #1100,SP | ||
| 5220 | 166612 | 004737 167450 | JSR PC,@#167450 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5221 | 166616 | 123727 137563 000210 | CMPB @#137563,#210 | ;МОДУЛИ ВСЕХ ПОЗИЦИЙ ПРОВЕРЕНЫ? | |
| 5222 | 166624 | 001403 | BEQ .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5223 | 166626 | 004737 166712 | JSR PC,@#166712 | ;ЗАГРУЗИТЬ И ЗАПУСТИТЬ ЗАГРУЗЧИК | |
| 5224 | 166632 | 000762 | BR 166600 | ;ПЕРЕЙТИ, ЕСЛИ ЗАГРУЗЧИК НЕ ЗАГРУЖЕН | |
| 5225 | |||||
| 5226 | |||||
| 5227 | |||||
| 5228 | 166634 | 004737 155036 | JSR PC,@#155036 | ;СФОРМИРОВАТЬ В ЯЧЕЙКАХ 002000-002004,002010 | |
| 5229 | ;АДРЕСА ПОДПРОГРАММ ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ | ||||
| 5230 | ;НА ЭКРАНЕ МОНИТОРА | ||||
| 5231 | 166640 | 010337 001022 | MOV R3,@#1022 | ||
| 5232 | 166644 | 012703 177777 | MOV #-1,R3 | ||
| 5233 | 166650 | 012746 147510 | MOV #147510,-(SP) | ||
| 5234 | 166654 | 004777 013120 | JSR PC,@2000 | ;ВЫВЕСТИ ИЗОБРАЖЕНИЕ ДИСКЕТЫ СО ЗНАКОМ ВОПРОСА | |
| 5235 | ;( ОПЕРАЦИОННАЯ СИСТЕМА НЕ ЗАГРУЖАЕТСЯ ) | ||||
| 5236 | 166660 | 013703 001022 | MOV @#1022,R3 | ||
| 5237 | 166664 | 005726 | TST (SP)+ | ||
| 5238 | 166666 | 005737 137556 | TST @#137556 | ;БЫЛИ ОШИБКИ ПРИ ПРОВЕРКЕ УСТРОЙСТВ? | |
| 5239 | 166672 | 001003 | BNE .+10 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5240 | 166674 | 012737 000005 173704 | MOV #5,@#173704 | ;ВКЛЮЧИТЬ СВЕТОВЫЕ ИНДИКАТОРЫ 2, 4 | |
| 5241 | ;( ОПЕРАЦИОННАЯ СИСТЕМА НЕ ЗАГРУЖАЕТСЯ ) | ||||
| 5242 | 166702 | 005000 | CLR R0 | ||
| 5243 | 166704 | 005001 | CLR R1 | ||
| 5244 | 166706 | 000137 167730 | JMP @#167730 | ;ПЕРЕЙТИ К ПЕРВОМУ ЭТАПУ ЗАГРУЗКИ | |
| 5245 | |||||
| 5246 | 166712 | 113705 137563 | MOVB @#137563,R5 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ И ПРИЗНАК ЭТАПА ЗАГРУЗКИ | |
| 5247 | 166716 | 005003 | CLR R3 | ||
| 5248 | 166720 | 005705 | TST R5 | ;1-Й ЭТАП ЗАГРУЗКИ? | |
| 5249 | 166722 | 100002 | BPL .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5250 | 166724 | 052703 000007 | BIS #7,R3 | ;УСТАНОВИТЬ ПРИЗНАК 2-ГО И 3-ГО ЭТАПОВ ЗАГРУЗКИ | |
| 5251 | 166730 | 052703 000001 | BIS #1,R3 | ;УСТАНОВИТЬ ПРИЗНАК 1-ГО ЭТАПА ЗАГРУЗКИ | |
| 5252 | 166734 | 042705 177760 | BIC #177760,R5 | ;ПОЛУЧИТЬ НОМЕР ПОЗИЦИИ ПРОВЕРЯЕМОГО МОДУЛЯ | |
| 5253 | 166740 | 010546 | MOV R5,-(SP) | ;СОХРАНИТЬ НОМЕР ПОЗИЦИИ | |
| 5254 | 166742 | 072527 000002 | ASH #2,R5 | ||
| 5255 | 166746 | 005405 | NEG R5 | ||
| 5256 | 166750 | 132765 000177 137756 | BITB #177,137756(R5) | ;МОДУЛЬ, УСТАНОВЛЕННЫЙ В ДАННУЮ ПОЗИЦИЮ, ИСПРАВЕН? | |
| 5257 | 166756 | 001164 | BNE 167330 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 5258 | 166760 | 022765 002004 137760 | CMP #2004,137760(R5) | ;В ПОЗИЦИИ КОНТРОЛЛЕР НГМД? | |
| 5259 | 166766 | 001412 | BEQ 167014 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5260 | 166770 | 022765 000401 137760 | CMP #401,137760(R5) | ;В ПОЗИЦИИ КОНТРОЛЛЕР НМД? | |
| 5261 | 166776 | 001406 | BEQ 167014 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5262 | 167000 | 011605 | MOV @SP,R5 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ | |
| 5263 | 167002 | 010346 | MOV R3,-(SP) | ||
| 5264 | 167004 | 004737 167340 | JSR PC,@#167340 | ;ПРОВЕРИТЬ БАЙТЫ 3 И 5 ПЗУ МОДУЛЯ | |
| 5265 | 167010 | 012603 | MOV (SP)+,R3 | ||
| 5266 | 167012 | 103546 | BCS 167330 | ;ПЕРЕЙТИ К СЛЕДУЮЩЕЙ ПОЗИЦИИ, ЕСЛИ СОДЕРЖИМОЕ | |
| 5267 | ;НЕВЕРНОЕ | ||||
| 5268 | 167014 | 016537 137760 137564 | MOV 137760(R5),@#137564 | ;ЗАПИСАТЬ ИДЕНТИФИКАЦИОННЫЙ КОД МОДУЛЯ | |
| 5269 | ;В ТАБЛИЦУ КОНФИГУРАЦИИ ПВК | ||||
| 5270 | 167022 | 011605 | MOV @SP,R5 | ;ВЫБРАТЬ НОМЕР ПОЗИЦИИ | |
| 5271 | 167024 | 072527 000007 | ASH #7,R5 | ||
| 5272 | 167030 | 062705 174000 | ADD #174000,R5 | ;ПОЛУЧИТЬ АДРЕС РЕГИСТРА ИДЕНТИФИКАЦИИ МОДУЛЯ | |
| 5273 | 167034 | 022737 002004 137564 | CMP #2004,@#137564 | ;ЗАГРУЗКА С НГМД? | |
| 5274 | 167042 | 001011 | BNE 167066 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 5275 | |||||
| 5276 | ;ЗАПИСАТЬ НАЧАЛЬНЫЙ ЗАГРУЗЧИК НГМД В ОЗУ | ||||
| 5277 | ;ИЗ ДИАГНОСТИЧЕСКОГО ПЗУ | ||||
| 5278 | 167044 | 012700 155244 | MOV #155244,R0 | ;ВЫБРАТЬ АДРЕС ПОДПРОГРАММЫ "НАЧАЛЬНЫЙ ЗАГРУЗЧИК" | |
| 5279 | 167050 | 012701 000122 | MOV #122,R1 | ;УСТАНОВИТЬ СЧЕТЧИК БАЙТОВ ПОДПРОГРАММЫ | |
| 5280 | 167054 | 012702 002000 | MOV #2000,R2 | ;ВЫБРАТЬ ПЕРВЫЙ АДРЕС ОЗУ | |
| 5281 | 167060 | 112022 | MOVB (R0)+,(R2)+ | ;ПЕРЕПИСАТЬ ПРОГРАММУ ИЗ ПЗУ В ОЗУ | |
| 5282 | 167062 | 077102 | SOB R1,.-2 | ||
| 5283 | 167064 | 000422 | BR 167132 | ;ПЕРЕЙТИ НА ЗАПУСК НАЧАЛЬНОГО ЗАГРУЗЧИКА | |
| 5284 | 167066 | 022737 000401 137564 | CMP #401,@#137564 | ;ЗАГРУЗКА С НМД? | |
| 5285 | 167074 | 001010 | BNE 167116 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 5286 | |||||
| 5287 | ;ЗАПИСАТЬ НАЧАЛЬНЫЙ ЗАГРУЗЧИК НМД В ОЗУ | ||||
| 5288 | ;ИЗ ДИАГНОСТИЧЕСКОГО ПЗУ | ||||
| 5289 | 167076 | 032703 000002 | BIT #2,R3 | ;ПЕРВЫЙ ЭТАП ЗАГРУЗКИ? | |
| 5290 | 167102 | 001512 | BEQ 167330 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5291 | 167104 | 012700 155366 | MOV #155366,R0 | ;ВЫБРАТЬ АДРЕС ПОДПРОГРАММЫ "НАЧАЛЬНЫЙ ЗАГРУЗЧИК" | |
| 5292 | 167110 | 012701 000134 | MOV #134,R1 | ;УСТАНОВИТЬ СЧЕТЧИК БАЙТОВ | |
| 5293 | 167114 | 000757 | BR 167054 | ||
| 5294 | 167116 | 012702 164744 | MOV #164744,R2 | ||
| 5295 | 167122 | 004737 154514 | JSR PC,@#154514 | ;ПРОВЕРИТЬ ПЗУ МОДУЛЯ КОНТРОЛЬНЫМ СУММИРОВАНИЕМ, | |
| 5296 | ;ПЕРЕПИСАТЬ НАЧАЛЬНЫЙ ЗАГРУЗЧИК ИЗ ПЗУ МОДУЛЯ | ||||
| 5297 | ;В ОЗУ, НАЧИНАЯ С АДРЕСА 002000 | ||||
| 5298 | 167126 | 005702 | TST R2 | ;БЫЛА ОШИБКА ИДЕНТИФИКАЦИИ ПЗУ МОДУЛЯ ИЛИ | |
| 5299 | ;ОШИБКА КС? | ||||
| 5300 | 167130 | 001077 | BNE 167330 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5301 | 167132 | 105237 137562 | INCB @#137562 | ||
| 5302 | 167136 | 113700 137562 | MOVB @#137562,R0 | ||
| 5303 | 167142 | 010501 | MOV R5,R1 | ||
| 5304 | 167144 | 004737 002000 | JSR PC,@#2000 | ;ЗАПУСТИТЬ НАЧАЛЬНЫЙ ЗАГРУЗЧИК | |
| 5305 | ;НАЧАЛЬНЫЙ ЗАГРУЗЧИК ЗАГРУЖАЕТ НУЛЕВОЙ БЛОК | ||||
| 5306 | ;ОПЕРАЦИОННОЙ СИСТЕМЫ ( ЗАГРУЗЧИК ) С НОСИТЕЛЯ | ||||
| 5307 | ;В ОЗУ, НАЧИНАЯ С АДРЕСА 000000 | ||||
| 5308 | |||||
| 5309 | 167150 | 103006 | BCC 167166 | ;ПЕРЕЙТИ, ЕСЛИ ПРИ ЗАГРУЗКЕ ОШИБКА НЕ ПРОИЗОШЛА | |
| 5310 | 167152 | 005702 | TST R2 | ;МАКСИМУМ ПОПЫТОК ДЛЯ ДАННОГО МОДУЛЯ? | |
| 5311 | 167154 | 001067 | BNE 167334 | ;ПЕРЕЙТИ, ЕСЛИ НЕТ | |
| 5312 | 167156 | 112737 000377 137562 | MOVB #377,@#137562 | ||
| 5313 | 167164 | 000461 | BR 167330 | ;ПЕРЕЙТИ К СЛЕДУЮЩЕЙ ПОЗИЦИИ | |
| 5314 | 167166 | 010046 | MOV R0,-(SP) | ||
| 5315 | 167170 | 004737 167364 | JSR PC,@#167364 | ;ПРОВЕРИТЬ ЗАГРУЖЕННУЮ ПРОГРАММУ НА ЗАГРУЗЧИК | |
| 5316 | ;ПО ИДЕНТИФИКАЦИОННЫМ ПРИЗНАКАМ | ||||
| 5317 | 167174 | 012600 | MOV (SP)+,R0 | ||
| 5318 | 167176 | 103456 | BCS 167334 | ;ПЕРЕЙТИ, ЕСЛИ ЗАГРУЖЕН НЕ ЗАГРУЗЧИК | |
| 5319 | 167200 | 010046 | MOV R0,-(SP) | ;СОХРАНИТЬ R0 | |
| 5320 | 167202 | 010146 | MOV R1,-(SP) | ;СОХРАНИТЬ R1 | |
| 5321 | 167204 | 012701 120000 | MOV #120000,R1 | ||
| 5322 | 167210 | 012700 140000 | MOV #140000,R0 | ||
| 5323 | 167214 | 004737 165456 | JSR PC,@#165456 | ;ПЕРЕМЕСТИТЬ ТАБЛИЦУ КОНФИГУРАЦИИ ПВК ИЗ ПОСЛЕДНЕГО | |
| 5324 | ;БАНКА ОЗУ В ЯЧЕЙКИ 157554- 157776 | ||||
| 5325 | 167220 | 005737 137556 | TST @#137556 | ;БЫЛИ ОШИБКИ ПРИ ПРОВЕРКЕ МОДУЛЕЙ? | |
| 5326 | 167224 | 001013 | BNE 167254 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5327 | 167226 | 032737 000020 173700 | BIT #20,@#173700 | ;МОНИТОР ПРИСОЕДИНЕН? | |
| 5328 | 167234 | 001004 | BNE 167246 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5329 | 167236 | 012737 000004 173704 | MOV #4,@#173704 | ;ВКЛЮЧИТЬ СВЕТОВЫЕ ИНДИКАТОРЫ 1,2,4 | |
| 5330 | ;МОНИТОР НЕ ПРИСОЕДИНЕН | ||||
| 5331 | 167244 | 000403 | BR .+10 | ||
| 5332 | 167246 | 012737 000017 173704 | MOV #17,@#173704 | ;ПОГАСИТЬ ВСЕ ИНДИКАТОРЫ | |
| 5333 | 167254 | 004737 155036 | JSR PC,@#155036 | ;СФОРМИРОВАТЬ В ЯЧЕЙКАХ 002000-002004,002010 | |
| 5334 | ;АДРЕСА ПОДПРОГРАММ ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ | ||||
| 5335 | ;НА ЭКРАНЕ МОНИТОРА | ||||
| 5336 | 167260 | 010337 001022 | MOV R3,@#1022 | ||
| 5337 | 167264 | 005003 | CLR R3 | ||
| 5338 | 167266 | 012746 147510 | MOV #147510,-(SP) | ||
| 5339 | 167272 | 004777 012502 | JSR PC,@2000 | ;СТЕРЕТЬ ИЗОБРАЖЕНИЕ ДИСКЕТЫ И ЗНАКА "?" | |
| 5340 | 167276 | 013703 001022 | MOV @#1022,R3 | ||
| 5341 | 167302 | 005726 | TST (SP)+ | ;ОЧИСТИТЬ СТЕК | |
| 5342 | 167304 | 012601 | MOV (SP)+,R1 | ;ВОССТАНОВИТЬ R1 | |
| 5343 | 167306 | 012600 | MOV (SP)+,R0 | ;ВОССТАНОВИТЬ R0 | |
| 5344 | 167310 | 013705 117566 | MOV @#117566,R5 | ||
| 5345 | 167314 | 005037 177572 | CLR @#177572 | ;ЗАПРЕТИТЬ ДП | |
| 5346 | 167320 | 005037 172516 | CLR @#172516 | ;ЗАПРЕТИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 5347 | 167324 | 000165 000002 | JMP 2(R5) | ;ЗАПУСТИТЬ ЗАГРУЗЧИК | |
| 5348 | |||||
| 5349 | |||||
| 5350 | 167330 | 105237 137563 | INCB @#137563 | ;УВЕЛИЧИТЬ НОМЕР ПОЗИЦИИ | |
| 5351 | 167334 | 005726 | TST (SP)+ | ||
| 5352 | 167336 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 5353 | |||||
| 5354 | ;ПОДПРОГРАММА ПРОВЕРКИ БАЙТОВ 3 И 5 ПЗУ МОДУЛЯ | ||||
| 5355 | 167340 | 004737 164770 | JSR PC,@#164770 | ||
| 5356 | 167344 | 103405 | BCS 167360 | ;ПЕРЕЙТИ, ЕСЛИ БАЙТ 3 ПЗУ МОДУЛЯ ОТЛИЧЕН ОТ 377 | |
| 5357 | 167346 | 136637 000002 001004 | BITB 2(SP),@#1004 | ||
| 5358 | 167354 | 001401 | BEQ .+4 | ||
| 5359 | 167356 | 005727 000261 | TST #261 | ||
| 5360 | 167362 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 5361 | |||||
| 5362 | ;*********************************************************************** | ||||
| 5363 | ; | ||||
| 5364 | ;ПОДПРОГРАММA ПРОВЕРКИ ЗАГРУЖЕННОЙ ПРОГРАММЫ ПО ИДЕНТИФИКАЦИОННЫМ | ||||
| 5365 | ;ПРИЗНАКАМ. ЕСЛИ ПРОГРАММОЙ "НАЧАЛЬНЫЙ ЗАГРУЗЧИК" ЗАГРУЖЕН НЕ ЗАГРУЗЧИК, | ||||
| 5366 | ;УСТАНАВЛИВАЕТСЯ "С"-РАЗРЯД 5367 ; | ||||
| 5368 | ;*********************************************************************** | ||||
| 5369 | |||||
| 5370 | 167364 | 005000 | CLR R0 | ;ВЫБРАТЬ ПЕРВЫЙ АДРЕС ЗАГРУЖЕННОЙ ПРОГРАММЫ | |
| 5371 | 167366 | 022710 000260 | CMP #260,@R0 | ;СОДЕРЖИМОЕ ПЕРВОЙ ЯЧЕЙКИ = 260? | |
| 5372 | 167372 | 001405 | BEQ 167406 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5373 | 167374 | 022710 000240 | CMP #240,@R0 | ;СОДЕРЖИМОЕ ПЕРВОЙ ЯЧЕЙКИ = 240? | |
| 5374 | 167400 | 001402 | BEQ .+6 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5375 | 167402 | 005710 | TST @R0 | ;СОДЕРЖИМОЕ ПЕРВОЙ ЯЧЕЙКИ =0? | |
| 5376 | 167404 | 001017 | BNE 167444 | ;ПЕРЕЙТИ НА УСТАНОВКУ С-РАЗРЯДА, ЕСЛИ НЕТ | |
| 5377 | 167406 | 005720 | TST (R0)+ | ||
| 5378 | 167410 | 005200 | INC R0 | ;ПОЛУЧИТЬ АДРЕС СТАРШЕГО БАЙТА ВТОРОЙ ЯЧЕЙКИ | |
| 5379 | 167412 | 122710 000001 | CMPB #1,@R0 | ;БАЙТ=1? (Т.Е. В ЯЧЕЙКЕ 000002 КОД BR? ) | |
| 5380 | 167416 | 001012 | BNE 167444 | ;ПЕРЕЙТИ НА УСТАНОВКУ С-РАЗРЯДА, ЕСЛИ НЕТ | |
| 5381 | 167420 | 005300 | DEC R0 | ;ПОЛУЧИТЬ АДРЕС ВТОРОЙ ЯЧЕЙКИ | |
| 5382 | 167422 | 111003 | MOVB @R0,R3 | ;ВЫБРАТЬ СОДЕРЖИМОЕ МЛАДШЕГО БАЙТА (СМЕЩЕНИЕ) | |
| 5383 | 167424 | 006303 | ASL R3 | ;ПОЛУЧИТЬ АДРЕС ЯЧЕЙКИ | |
| 5384 | 167426 | 122713 000020 | CMPB #20,@R3 | ;СОДЕРЖИМОЕ МЛАДШЕГО БАЙТА =20? | |
| 5385 | 167432 | 001004 | BNE 167444 | ;ПЕРЕЙТИ НА УСТАНОВКУ С-РАЗРЯДА, ЕСЛИ НЕТ | |
| 5386 | 167434 | 032713 002000 | BIT #2000,@R3 | ;РАЗРЯД 10 = 1? | |
| 5387 | 167440 | 001401 | BEQ .+4 | ;ПЕРЕЙТИ НА УСТАНОВКУ С-РАЗРЯДА, ЕСЛИ НЕТ | |
| 5388 | |||||
| 5389 | ;#261 - КОД КОМАНДЫ "УСТАНОВИТЬ С-РАЗРЯД" | ||||
| 5390 | ;С-РАЗРЯД УСТАНАВЛИВАЕТСЯ, ЕСЛИ НЕТ | ||||
| 5391 | ;ИДЕНТИФИКАЦИОННЫХ ПРИЗНАКОВ ЗАГРУЗЧИКА | ||||
| 5392 | 167442 | 005727 000261 | TST #261 | ||
| 5393 | 167446 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 5394 | |||||
| 5395 | |||||
| 5396 | ;ПОДПРОГРАММА ПОДГОТОВКИ РЕГИСТРОВ ДП | ||||
| 5397 | 167450 | 005037 177572 | CLR @#177572 | ||
| 5398 | 167454 | 005037 172516 | CLR @#172516 | ||
| 5399 | 167460 | 005037 172340 | CLR @#172340 | ||
| 5400 | 167464 | 012737 000200 172342 | MOV #200,@#172342 | ||
| 5401 | 167472 | 012737 000400 172344 | MOV #400,@#172344 | ||
| 5402 | 167500 | 012737 000600 172346 | MOV #600,@#172346 | ||
| 5403 | 167506 | 012737 001400 172350 | MOV #1400,@#172350 | ;СФОРМИРОВАТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5404 | ;ДЛЯ ДОСТУПА К ТАБЛИЦЕ КОНФИГУРАЦИИ ПВК, РАЗМЕЩЕННОЙ | ||||
| 5405 | ;В КОНЦЕ 28 КБАЙТ | ||||
| 5406 | 167514 | 013737 173050 172352 | MOV @#173050,@#172352 | ;СФОРМИРОВАТЬ КОНСТАНТУ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5407 | 167522 | 000337 172352 | SWAB @#172352 | ;ДЛЯ ДОСТУПА К ПОСЛЕДНЕЙ ФИЗИЧЕСКОЙ СТРАНИЦЕ | |
| 5408 | 167526 | 006337 172352 | ASL @#172352 | ;ПАМЯТИ | |
| 5409 | 167532 | 162737 000200 172352 | SUB #200,@#172352 | ||
| 5410 | 167540 | 012737 177400 172354 | MOV #177400,@#172354 | ||
| 5411 | 167546 | 012737 177600 172356 | MOV #177600,@#172356 | ||
| 5412 | 167554 | 012700 000010 | MOV #10,R0 | ||
| 5413 | 167560 | 012701 077406 | MOV #77406,R1 | ||
| 5414 | 167564 | 012702 172300 | MOV #172300,R2 | ||
| 5415 | 167570 | 010122 | MOV R1,(R2)+ | ||
| 5416 | 167572 | 077002 | SOB R0,.-2 | ||
| 5417 | 167574 | 012737 000020 172516 | MOV #20,@#172516 | ;РАЗРЕШИТЬ 22-РАЗРЯДНОЕ ПРЕОБРАЗОВАНИЕ | |
| 5418 | 167602 | 012737 000001 177572 | MOV #1,@#177572 | ;РАЗРЕШИТЬ ДП | |
| 5419 | 167610 | 000207 | RTS PC | ;ВЫХОД ИЗ ПОДПРОГРАММЫ | |
| 5420 | |||||
| 5421 | ;******************************************************************* | ||||
| 5422 | ; | ||||
| 5423 | ;ПОДПРОГРАММА ВКЛЮЧЕНИЯ ДОПОЛНИТЕЛЬНОГО МИКРО-ТЕСТА ДЛЯ | ||||
| 5424 | ;ПРИВОДОВ 1 И 2 НГМД | ||||
| 5425 | ; | ||||
| 5426 | ;******************************************************************** | ||||
| 5427 | |||||
| 5428 | 167612 | 005737 177650 | TST @#177650 | ;МИКРО-ТЕСТ ДЛЯ ПРИВОДА 1 ВЫПОЛНЕН? | |
| 5429 | 167616 | 001010 | BNE 167640 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5430 | 167620 | 012762 000020 000004 | MOV #20,4(R2) | ;ВЫПОЛНИТЬ ДОПОЛНИТЕЬНЫЙ МИКРО-ТЕСТ ДЛЯ | |
| 5431 | ;КОНТРОЛЛЕРА И ПРИВОДА 1 НГМД | ||||
| 5432 | 167626 | 010001 | MOV R0,R1 | ||
| 5433 | 167630 | 005237 177650 | INC @#177650 | ;УСТАНОВИТЬ ПРИЗНАК ПРОВЕРКИ 1-ГО ПРИВОДА | |
| 5434 | 167634 | 000137 135300 | JMP @#135300 | ||
| 5435 | 167640 | 022737 000001 177650 | CMP #1,@#177650 | ;МИКРО-ТЕСТ ДЛЯ ПРИВОДА 2 ВЫПОЛНЕН? | |
| 5436 | 167646 | 001007 | BNE 167666 | ;ПЕРЕЙТИ, ЕСЛИ ДА | |
| 5437 | 167650 | 005237 177650 | INC @#177650 | ;УСТАНОВИТЬ ПРИЗНАК ПРОВЕРКИ 2-ГО ПРИВОДА | |
| 5438 | 167654 | 012762 000022 000004 | MOV #22,4(R2) | ;ВЫПОЛНИТЬ ДОПОЛНИТЕЛЬНЫЙ МИКРО-ТЕСТ ДЛЯ | |
| 5439 | ;КОНТРОЛЛЕРА И ПРИВОДА 2 НГМД | ||||
| 5440 | 167662 | 000137 135320 | JMP @#135320 | ||
| 5441 | 167666 | 005037 177650 | CLR @#177650 | ||
| 5442 | 167672 | 000137 135460 | JMP @#135460 | ||
| 5443 | |||||
| 5444 | ;******************************************************************** | ||||
| 5445 | ; | ||||
| 5446 | ;ПОДПРОГРАММА ВОЗВРАТА К ТЕКУЩЕМУ ЭТАПУ ЗАГРУЗКИ | ||||
| 5447 | ; | ||||
| 5448 | ;********************************************************************* | ||||
| 5449 | |||||
| 5450 | 167700 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП=7 | |
| 5451 | 167706 | 012706 001100 | MOV #1100,SP | ;УСТАНОВИТЬ УКАЗАТЕЛЬ СТЕКА | |
| 5452 | 167712 | 004737 167450 | JSR PC,@#167450 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5453 | 167716 | 000177 147636 | JMP @137560 | ;ПЕРЕЙТИ К ТЕКУЩЕМУ ЭТАПУ ЗАГРУЗКИ | |
| 5454 | 167722 | 000000 | 0 | ||
| 5455 | 167724 | 000000 | 0 | ||
| 5456 | 167726 | 000000 | 0 | ||
| 5457 | |||||
| 5458 | ;******************************************************************** | ||||
| 5459 | ; | ||||
| 5460 | ;ПОДПРОГРАММА ПЕРЕХОДА К ПЕРВОМУ ЭТАПУ ЗАГРУЗКИ ИЛИ К ВЫВОДУ | ||||
| 5461 | ;ПРОГРАММНОЙ ОШИБКИ | ||||
| 5462 | ; | ||||
| 5463 | ;********************************************************************* | ||||
| 5464 | |||||
| 5465 | 167730 | 012737 000340 177776 | MOV #340,@#177776 | ;УСТАНОВИТЬ ПРИОРИТЕТ ЦП =7 | |
| 5466 | 167736 | 010037 177640 | MOV R0,@#177640 | ||
| 5467 | 167742 | 010137 177642 | MOV R1,@#177642 | ||
| 5468 | 167746 | 012706 001100 | MOV #1100,SP | ||
| 5469 | 167752 | 004737 167450 | JSR PC,@#167450 | ;СФОРМИРОВАТЬ КОНСТАНТЫ ПЕРЕРАСПРЕДЕЛЕНИЯ | |
| 5470 | 167756 | 000177 147606 | JMP @137570 | ;ПЕРЕЙТИ К ПЕРВОМУ ЭТАПУ ЗАГРУЗКИ ИЛИ | |
| 5471 | ;ВЫВЕСТИ СООБЩЕНИЕ О ПРОГРАММНОЙ ОШИБКЕ, | ||||
| 5472 | ;ЕСЛИ R0 ИЛИ R1 ОТЛИЧЕН ОТ 0 | ||||
| 5473 | 167762 | .BLKW 7 | |||
| 5474 | 000001 | .END | |||