Rev 1406 | Blame | Compare with Previous | Last modification | View Log | Download
Запись в -(SP) или чтение из (SP)+ всегда происходит по чётному адресу. Даже если сделать MOVB R0,(SP)+, значение SP увеличится не на 1 (как с любым другим регистром), а на 2. (Manwe)
монитор: входит в бейсик, текст вводится, но enter не выполняет команду
klad: печать символа надо с учётом скролла
bubbler: перестал работать с какой-то версии (выводит заставку и тут же стирает)
cafelogo256: emt 0, потом где-то крутится с гадостью на экране
cd.bk: читает порт ffc0, readdestop_000_pc, потом нечётный de, где-то крутится
cindy2: после падения чего-то читает порт ff00, потом 400 dots и крутится на одном эффекте с постепенным заглючиванием, потом вылетает
cosmic_flight: не реагирует на клавиши, крутится на каких-то паузных циклах
20csi20: грязь, вылет в бейсик
digger: с какой-то версии перестал реагировать на клавиши в меню
dropzona: ashc [падает брусок, потом по enter описание и стрелка, движется по space, потом игровой экран искажён]
hearts4k: читает порт ffff неоднократно, вылетает с какой-то версии. ?нестандартный call at 020e: 09ff, 02ca
hny2020: WAIT, [потом вылетает] крутится на трёх командах
labyrinh: в старой версии в игре рисует из точек, но не чистит. в пц эмуляторе не получается реагировать на клавиши. после фикса mona/leopol/morf ничего не рисует
logo: идут надписи на фоне грязи
mars1: спрашивает "ВАШ ПАРОЛЬ?" и висит (буквы не вводятся)
miraclebk: [линии двигаются неправильно] вылет
modplaypsg - вылет (modplaypsgalone не вылет)
mona0010 - не прекращает рисовать (mona0011 норм)
[morf!: фигуры отрисовываются не совсем точно (фиксится инверсией CY до и после sbc или отключением всех инверсий CY)]
moroz-no: emt 0x35, потом читает порт ffff, потом нечётный адрес, шевелится мусор
movblobs: вылет [портит фоновый экран, а блобы рисует грязно]
[newlode: ждёт клавишу, рисует грязный уровень и где-то крутится в паузных циклах (без инверсий CY норм)]
ninza_1: неправильная полоса здоровья, не работает управление
[pacman: показывает поле и всё, что надо, делает несколько шагов (не сразу), а потом горой исчезает, а привидения всё ещё движутся (без инверсий CY норм)]
pacman2 не ловит вниз, при последней смерти входит в 0e4a (0000), если поставить там jp (iy), то нормально продолжает - возможно таймер
pacmanria: с какой-то версии не входит из меню в игру [почему-то пакман вверху]
pentis: выводит бред и меню, крутится в каком-то ожидании
pifpaf: выводит грязь, меню, читает порт 0, чистит не нулём, вылет
pipe: крутится на каких-то паузных циклах
pyromania: крутится на каких-то паузных циклах?
[road2cafe: emt 0x32, 0x2f, 0x33, [как-то странно перекрашивает доску без клеток] (без инверсий CY норм)]
[sokoban: почему-то у меня в начале не 0000 шагов, а "100H" шагов (фиксится отключением всех инверсий CY)]
space4k: на третьем эффекте читает порт fffe, потом вылет
tron_ovl: игра не стартует (не реагирует на space)
Alexander Tishin: ? anonymous - 11.12.2009 23:39
Первые два - из комплекта сдаточных тестов ВМ1, тест инструкций процессора и тест прерываний, третий - расширенный тест ОЗУ. Они обругают, если что-то не так съемулировано. Загружаются с адреса 0, диагностику выводят на учительскую машину через блок ИРПС. ИРПС эмулировать не сложно, там 4 регистра, перемычкой их адрес задается 0176560..0176567 для школьного бейсика и 0177560..0177567 для школьного фокала, последний вариант - стандартные адреса терминала в pdp11, на этих адресах и следует добавить эмуляцию с выводом в соседнее, например, окно, или в файл. В *560м регистре имеются
два бита, 6й и 7й. 7 бит *560го регистра устанавливается, если во входной регистр *562 поступил новый байт, а если перед приемом байтов установить в 1 6й бит *560го регистра, то произойдет прерывание с вектором, адрес которого читается из регистра *566. *562й регистр - буфер приемника, оттуда считывается последний принятый байт, по записи регистр ничего не делает. В регистре *564 имеются тоже два бита, 6й и 7й, с тем же назначением, что и у приемника, 7й бит устанавливается в 0, когда процессор пишет байт в буфер передатчика, *566, и устанавливается в 1, когда заканчивается переда
ча, т.е. когда буфер готов к приему следующего байта. Если при установке 7го бита был установлен 6й, то по готовности передатчика возникает прерывание с вектором, на 4 бОльшим, чем считываемое из регистра *566 значение. Регистр *566 - по записи - буфер передатчика, по чтению - регистр вектора прерывания, при установке адресов 0176560..0176567 вектор считывается 0360, приемник прерывает работу по 0360му вектору, а передатчик - по 0364му, при установке адресов 0177560..0177567 - адрес вектора 060 для приемника и 064 для передатчика.
По команде процессора reset все биты в регистрах приемника обнуляются, а в регистре передатчика устанавливается бит 7 - готовности к передаче.
сделана в Рязани https://r-games.net/bk001x/games/441-zerkalo.html?__cf_chl_tk=nn_CKosc02K3aqXCNbxjbx0jTo9XEToDhzWo3GvyA2A-1638263562-0-gaNycGzNCZE
http://emuverse.ru/wiki/БК-0010_-_Руководство_пользователя#3._.D0.97.D0.B0.D0.BF.D1.83.D1.81.D0.BA_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D1.8B
http://gid.pdp-11.ru/docstable.html
аппаратные прерывания http://gid.pdp-11.ru/books/programming_BK10.html#__RefHeading__180