Просмотр полной версии : ZX-M8XXX эмулятор на javascript
Bedazzle
31.12.2025, 18:03
С Новым годом!
Встречайте первый блин комом
https://github.com/Bedazzle/ZX-M8XXX
cafedead
31.12.2025, 22:05
Круто, молодец) Долго делал?
Внешне интерфейс мне нравится. Код такой себе. Медленный. Много ифов, функций. На Джаваскрипте это медленно. Флаг переполнения можно без таблиц быстрее посчитать, и полуперенос. На полную 700 кадров в секунду в браузере на моей машине - это круто, уровень ZXMAK. Но это медленно. Можно быстрее, если поработать с кодом.
usr0 на Пентагоне приводит к зависанию, нажатие на Ентер по завершению программы, загруженной загрузчиком из меню Пентагона - тоже.
HALT на реальном процессоре не так работает. Ну это я в коде увидел... Просто на глаза попалось. На реале после HALT процессор постоянно вычитывает следующий байт, но ничего не делает, пока не поймает прерывание. У вас он сам HALT постоянно читает. Впрочем, не критично.
В остальное не вникал. Удачного допиливания... -)
83468
Всех с НГ.
Bedazzle
01.01.2026, 01:47
Круто, молодец) Долго делал?
Это эксперимент по ии-кодингу. Начал в полдень 19го числа, т.е. меньше двух недель на всё.
Внешне интерфейс мне нравится. Код такой себе. Медленный. Много ифов, функций. На Джаваскрипте это медленно.
Основная цель - богатый инструмент для ковыряния, высокая скорость наверное, нужна только для быстрого проигрывания rzx.
Остальное пока худо-бедно успевает.
Флаг переполнения можно без таблиц быстрее посчитать, и полуперенос.
Поставлю галочку на будущее, спасибо за подсказки!
usr0 на Пентагоне приводит к зависанию
ой... пора вызывать фиксиков!
На реале после HALT процессор постоянно вычитывает следующий байт
спасибо!
Woodster
01.01.2026, 17:46
HALT behaviour can be tested with this relatively new test program: https://github.com/redcode/Z80/wiki/HALT2INT
Bedazzle
01.01.2026, 19:56
usr0 на Пентагоне приводит к зависанию
фиксики пришли, починили
83468
А где этот тест взять?
zexall с текущей версией должен все тесты проходить успешно.
cafedead
01.01.2026, 23:38
А где этот тест взять?
83476
83477
Bedazzle
02.01.2026, 00:40
83476
Стало лучше, но надо подпилить.
83478 83479
cafedead
02.01.2026, 02:50
Стало лучше, но надо подпилить.
case 0x40: this.b = this.inPort(this.bc); this.f = (this.f & this.FLAG_C) | this.sz53pTable[this.b]; this.memptr = (this.bc + 1) & 0xffff; this.tStates += 12; break; // IN B,(C)
Очередность действий не та... В MEMPTR должно попадать не значение BC + 1 как таковое, а адрес, который выкладывается на шине для чтения порта, который затем инкрементируется. А тут вы в B прочитали значение из порта, и в BC уже не то, что нужно для занесения в MEMPTR.
83480
Вот, косячат только IN B,(C) и IN C,(C).
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot