Проверил под TSX-Plus V6.50 - PSW правильно выставляется в 170000.
Проверил под TSX-Plus V6.50 - PSW правильно выставляется в 170000.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Пока могу предложить только самостоятельно модифицировать и перекомпилировать исходник или патчить исполняемую программу.
Старый код превращения номера блока в номера сектора, стороны и цилиндра годится только для 16 секторов на дорожке и 4 головок:
Код:$MaxTrack: .Word 152.Код:READBL: Mov #BIGBUF, R4 Mov #10., $Retr Clr $Wcnt Mov R3, R1 Mov R1, $Sect BiC #^b1111111111110000, $Sect ASR R1 ASR R1 ASR R1 ASR R1 Mov R1, $Side BiC #^b1111111111111100, $Side ASR R1 ASR R1 Mov R1, $Track Cmp R1, $MaxTrack BLE 11$ SeC Return
Универсальный код :
Код:$MaxTrack: .Word 152. ; Максимальный номер дорожки $N.Sec: .Word 16. ; Число секторов на дорожке $N.Head: .Word 4. ; Число головокНовая версия с универсальным кодом: CopyDW_v1.3Код:READBL: Mov #BIGBUF, R4 Mov #10., $Retr Clr $Wcnt Mov R3, R1 Clr R0 Div $N.Sec, R0 Mov R1, $Sect Mov R0, R1 Clr R0 Div $N.Head, R0 Mov R1, $Side Mov R0, $Track Cmp R0, $MaxTrack BLE 11$ SeC Return 11$: Mov $Sect, @#174006 Mov $Track, @#174012 Mov $Side, @#174014
Константы $MaxTrack, $N.Sec и $N.Head в исполнимом файле COPYDW.SAV находятся по смещениям 01142, 01144, 01146 .
Последний раз редактировалось Patron; 03.09.2014 в 14:36.
Patron, Спасибо, желательно конечно чтобы вносить параметры винчестера в диалоговом режиме.
Если на PDP-11/83, эмулируемой в SIMH, запустить тест TSTVM2.SAV, то результат получается такой:
Причём, для команды деления тест сообщает об ошибке эмуляции:Код:Тестирование правильности выполнения команд процессора: Однооперандные байтовые команды: NOP - OK MOVB - OK CLRB - OK COMB - OK INCB - OK DECB - OK NEGB - OK TSTB - OK ROLB - OK RORB - OK ASRB - OK ASLB - OK ADCB - OK SBCB - OK SXT - OK Однооперандные словные команды: MOV - OK CLR - OK COM - OK INC - OK DEC - OK NEG - OK TST - OK ROL - OK ROR - OK ASR - OK ASL - OK ADC - OK SBC - OK SWAB - OK Двухоперандные байтовые команды: CMPB - OK BITB - OK BICB - OK BISB - OK Двухоперандные словные команды (частичный тест): ADD - OK SUB - OK CMP - OK BIT - OK BIC - OK BIS - OK XOR - OK Команды работы с флагами: CLx - OK SEx - OK Команды условных переходов: Bcc - OK Команда умножения (частичный тест): MUL (even/even) - OK MUL (even/odd) - OK MUL (odd/odd) - OK MUL (odd/even) - OK MUL (table) - OK Команды сдвига (частичный тест): ASH (test 1) - OK ASH (test 2) - OK ASHC (even) - OK ASHC (odd) - OK Команда деления (частичный тест): DIV (even) - ERROR: 0x4B4E / 0xEE7C DIV (odd) - ERROR: 0x7704 / 0x5956 .
Код:Команда деления (частичный тест): DIV (even) - ERROR: 0x4B4E / 0xEE7C DIV (odd) - ERROR: 0x7704 / 0x5956
Интересно, как это выглядит на реальной PDP-11/83.
Если Е11 устроит то вот.
Код:Тест процессора КР1801ВМ2 v0.1a (c) by dr.Titus Тестирование правильности выполнения команд процессора: Однооперандные байтовые команды: NOP - OK NOP - OK MOVB - OK CLRB - OK COMB - OK INCB - OK DECB - OK NEGB - OK TSTB - OK ROLB - OK RORB - ERROR: 0x376F / 0xAD84 ASRB - OK ASLB - OK ADCB - OK SBCB - OK SXT - OK Однооперандные словные команды: MOV - OK Next page?2l2h Next page?2l2h CLR - OK COM - OK INC - OK DEC - OK NEG - OK TST - OK ROL - OK ROR - OK ASR - OK ASL - OK ADC - OK SBC - OK SWAB - OK Двухоперандные байтовые команды: CMPB - OK BITB - OK BICB - OK BISB - OK Двухоперандные словные команды (частичный тест): ADD - OK SUB - OK Next page?2l2h Next page?2l2h CMP - OK BIT - OK BIC - OK BIS - OK XOR - OK Команды работы с флагами: CLx - OK SEx - OK Команды условных переходов: Bcc - OK Команда умножения (частичный тест): MUL (even/even) - OK MUL (even/odd) - OK MUL (odd/odd) - OK MUL (odd/even) - OK MUL (table) - OK Команды сдвига (частичный тест): ASH (test 1) - OK ASH (test 2) - ERROR: 0xB7C3 / 0xB7BB Next page?2l2h Next page?2l2h ASHC (even) - OK ASHC (odd) - OK Команда деления (частичный тест): DIV (even) - ERROR: 0x4B4E / 0xC69E DIV (odd) - ERROR: 0x7704 / 0x80382l DIV (odd) - ERROR: 0x7704 / 0x80382l
Да, не думал, что E11 более глючный, чем SIMH.
Если там можно разные процессоры эмулировать, то везде ли ошибки одинаковые ?
Я кстати тоже.
Какие конкретно процессоры тестировать, или все подряд?
---------- Post added at 21:27 ---------- Previous post was at 21:14 ----------
на всякий случай тест Е11 PDP11/23
Код:Тестирование правильности выполнения команд процессора: Однооперандные байтовые команды: NOP - OK MOVB - OK CLRB - OK COMB - OK INCB - OK DECB - OK NEGB - OK TSTB - OK ROLB - OK RORB - ERROR: 0x376F / 0xAD84 ASRB - OK ASLB - OK ADCB - OK SBCB - OK SXT - OK Однооперандные словные команды: MOV - OK Next page?2l2h Next page?2l2h CLR - OK COM - OK INC - OK DEC - OK NEG - OK TST - OK ROL - OK ROR - OK ASR - OK ASL - OK ADC - OK SBC - OK SWAB - OK Двухоперандные байтовые команды: CMPB - OK BITB - OK BICB - OK BISB - OK Двухоперандные словные команды (частичный тест): ADD - OK SUB - OK Next page?2l2h Next page?2l2h CMP - OK BIT - OK BIC - OK BIS - OK XOR - OK Команды работы с флагами: CLx - OK SEx - OK Команды условных переходов: Bcc - OK Команда умножения (частичный тест): MUL (even/even) - OK MUL (even/odd) - OK MUL (odd/odd) - OK MUL (odd/even) - OK MUL (table) - OK Команды сдвига (частичный тест): ASH (test 1) - OK ASH (test 2) - ERROR: 0xB7C3 / 0xB7BB Next page?2l2h Next page?2l2h ASHC (even) - OK ASHC (odd) - OK Команда деления (частичный тест): DIV (even) - ERROR: 0x4B4E / 0xC69E DIV (odd) - ERROR: 0x7704 / 0x80382l
---------- Post added at 21:32 ---------- Previous post was at 21:27 ----------
Patron, Теперь самое время тест прогнать на Эл.85, как Вы считаете?![]()
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)