?login_element?

Subversion Repositories NedoOS

Rev

Rev 1345 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

Запись в -(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: не реагирует на клавиши, крутится на каких-то паузных циклах

csi2020: грязь, вылет

dropzona: ashc [падает брусок, потом по enter описание и стрелка, движется по space, потом игровой экран искажён]

hearts4k: читает порт ffff неоднократно, вылетает с какой-то версии. ?нестандартный call at 020e: 09ff, 02ca
hny2020: WAIT, потом вылетает

labyrinh: в старой версии в игре рисует из точек, но не чистит. в пц эмуляторе не получается реагировать на клавиши. после фикса mona/leopol/morf ничего не рисует

logo: идут надписи на фоне грязи

mars1: спрашивает "ВАШ ПАРОЛЬ?" и висит (буквы не вводятся)

miraclebk: линии двигаются неправильно
modplaypsg - вылет (modplaypsgalone не вылет)

mona - обе версии не прекращают рисовать

morf!: фигуры отрисовываются не совсем точно (фиксится инверсией CY до и после sbc)

moroz-no: emt 0x35, потом читает порт ffff, потом нечётный адрес, шевелится мусор
movblobs: вылет [портит фоновый экран, а блобы рисует грязно]

newlode: ждёт клавишу, рисует грязный уровень и где-то крутится в паузных циклах

ninza_1: неправильная полоса здоровья, не работает управление

pacman: показывает поле и всё, что надо, делает несколько шагов (не сразу), а потом горой исчезает, а привидения всё ещё движутся

pacman2 не ловит вниз, при последней смерти входит в 0e4a (0000), если поставить там jp (iy), то нормально продолжает - возможно таймер

pacmanria: с какой-то версии не входит из меню в игру [почему-то пакман вверху]

pentis: выводит бред и меню, крутится в каком-то ожидании

pifpaf: выводит грязь, меню, читает порт 0, чистит не нулём, виснет

pipe: крутится на каких-то паузных циклах

pyromania: крутится на каких-то паузных циклах?

road2cafe: emt 0x32, 0x2f, 0x33, как-то странно перекрашивает доску без клеток

sokoban: почему-то у меня в начале не 0000 шагов, а "100H" шагов

space4k: на третьем эффекте читает порт fffe, потом виснет

tron_ovl: игра не стартует (чёрные экраны)


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 - готовности к передаче.