Да, это была опечатка. Исправил на "|". Изменения выложены.Paguo-86PK wrote:Чтo-то я не пойму:Почему вместо «& ~» применён «| ~»?Code: Select all
99 if (addr == 0xc001) { 100 return 0xff | ~(this.screen.light_pen_active ? 0x10 : 0x00); 101 };
Я этого не знал. Надо будет поддержать. Пока этого нет.Paguo-86PK wrote:Кстати, флаг «IR» тоже не плохо было бы поддержать с маской 0x20, который используется в подпрограмме запуска ВГ75/ВТ57. В 90-х я по этому флагу устраивал часы реального времени.
Если при стандартных настройках ВГ75:Частота активации «IR» должна быть примерно 50 Гц:Code: Select all
SHHHHHHH 4D - 78 CHARACTERS PER ROW + 8 CHARACTERS PER HRTC VVRRRRRR 1D - 30 ROWS PER FRAME + 1 ROW PER VRTC UUUULLLL 99 - 10 LINES PER ROW MFCCZZZZ 93 - 8 CHARACTERS PER HRTC
Соответственно, в эмуляторе нужно привязать флаг ко времени:Code: Select all
8 MHz / (6 * 86 * 31 * 10) ≈ 50,0125 Hz
Code: Select all
vg75_flag_IR = Date.now() % Math.floor(8 / (6 * (characters_per_row + characters_per_hrtc) * (rows_per_frame + rows_per_vrtc) * lines_per_row / 100000)) > (длительность IRQ) ? 0x20 : 0x00;
Чтобы этот флаг тестировать, есть пример программы, которая умеет этот флаг использовать?