Кстати если интересно, могу включить 11/83 и дать доступ к консоли. В RT-11 доступен TCP/IP, так, что файлики гонять легко :)
Тест ВМ3
Код:.RUN HX1:TDIV7
PSW[000] ; R0[177776] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[177776] ; R1[000000]
PSW[000] ; R0[177774] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[177774] ; R1[000000]
PSW[000] ; R0[177770] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[177770] ; R1[000000]
PSW[000] ; R0[177760] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[177760] ; R1[000000]
PSW[000] ; R0[177740] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[177740] ; R1[000000]
PSW[000] ; R0[177400] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[177400] ; R1[000000]
PSW[000] ; R0[174000] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[174000] ; R1[000000]
PSW[000] ; R0[140000] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[140000] ; R1[000000]
PSW[000] ; R0[110000] ; R1[000000] ; R2[000001] >>> DIV R2,R0 >>>
PSW[002] ; R0[110000] ; R1[000000]
PSW[000] ; R0[110000] ; R1[000000] ; R2[070000] >>> DIV R2,R0 >>>
PSW[004] ; R0[000000] ; R1[000000]
PSW[000] ; R0[140000] ; R1[000000] ; R2[040000] >>> DIV R2,R0 >>>
PSW[004] ; R0[000000] ; R1[000000]
PSW[000] ; R0[174000] ; R1[000000] ; R2[004000] >>> DIV R2,R0 >>>
PSW[004] ; R0[000000] ; R1[000000]
PSW[000] ; R0[177400] ; R1[000000] ; R2[000400] >>> DIV R2,R0 >>>
PSW[004] ; R0[000000] ; R1[000000]
PSW[000] ; R0[177740] ; R1[000000] ; R2[000040] >>> DIV R2,R0 >>>
PSW[004] ; R0[000000] ; R1[000000]
PSW[000] ; R0[177760] ; R1[000000] ; R2[000020] >>> DIV R2,R0 >>>
PSW[004] ; R0[000000] ; R1[000000]
PSW[000] ; R0[177770] ; R1[000000] ; R2[000010] >>> DIV R2,R0 >>>
PSW[004] ; R0[000000] ; R1[000000]
Тест Эл.85
Прояснилась ситуация у деления с переполнением при выполнении деления процессором 1801ВМ3 - если младшее слово делимого равно нулю, а старшее слово делимого отрицательное и по модулю равно делителю - результат деления обнуляется и вместо признака переполнения V в PSW устанавливается только бит нулевого результата Z.
Это явная ошибка, поскольку переполнение не диагностируется и сообщается об успешном делении.
...
Дальнейшего тестирования требует деление на 0 процессором Эл.85.
В архиве TDIV9.zip :
TDIV9.SAV - дополнительный тест деления на 0 для Эл.85 :
Код:.RU TDIV9
PSW[000] ; R0[100000] ; R1[000004] ; R2[000000] >>> DIV R2,R0 >>>
PSW[007] ; R0[100000] ; R1[000004]
PSW[000] ; R0[100001] ; R1[000004] ; R2[000000] >>> DIV R2,R0 >>>
PSW[007] ; R0[100001] ; R1[000004]
PSW[000] ; R0[177777] ; R1[000004] ; R2[000000] >>> DIV R2,R0 >>>
PSW[007] ; R0[177777] ; R1[000004]
PSW[000] ; R0[077777] ; R1[177774] ; R2[000000] >>> DIV R2,R0 >>>
PSW[007] ; R0[077777] ; R1[177774]
PSW[000] ; R0[077777] ; R1[000004] ; R2[000000] >>> DIV R2,R0 >>>
PSW[007] ; R0[077777] ; R1[000004]
PSW[000] ; R0[077777] ; R1[177777] ; R2[000000] >>> DIV R2,R0 >>>
PSW[007] ; R0[077777] ; R1[177777]
.
Тест Эл.85
Patron, Есть ли какой нибудь тест для проверки MMU. Интересно различия после 18BIT на процессоре 1801ВМ3.
form, Цитата из Вики.
Код:КМ1801ВМ3
Отличается бо́льшим объёмом адресуемой памяти (до 4 МБ), более высоким
быстродействием (сложение регистр/регистр — 1,5 млн оп/с, умножение —
100 тыс. оп/с, деление — 50 тыс. оп/с), а также возможностью
подключения сопроцессора арифметики с плавающей запятой.
Менеджер памяти не полностью совместим с аналогом от DEC.
В случае использования лишь 18-разрядной адресной шины (до 256 кБ) совместимость диспетчера памяти была
достаточна для использования программного обеспечения без переделок, но при использовании полной,
22-разрядной адресной шины (4 МБ) требовалась адаптация программного кода.