PDA

Просмотр полной версии : Прототип ПЗУ ZX Spectrum



CityAceE
04.04.2020, 16:35
Не прошло и 40 лет, как нашёлся прототип ПЗУ оригинального ZX Spectrum. Его даже можно подключить к эмулятору и посмотреть в работе.

Скачать ПЗУ (http://www.computinghistory.org.uk/userdata/files/zx_spectrum_prototype_rom_image.zip)


https://www.youtube.com/watch?v=PPEclMvAA3A

P.S. Источник (http://www.computinghistory.org.uk/det/51620/Sinclair-ZX-Spectrum-Prototype/)

nihirash
10.04.2020, 17:11
У меня вечно на ramtop ругается при попытке писать на васике)

Eltaron
10.04.2020, 17:48
Вроде нормально работает, но сходу не нашел ни одного отличия.

И судя по описанию, это не прототип ПЗУ, а наоборот. Это доработанная версия, которую закончили уже после того, как продали кучу машин. Изначально хотели выпустить Спектрум с недоделанным ПЗУ, а потом бесплатно всем проапгрейдить на законченную версию. Но продажи были слишком велики и они не поняли, как при таких масштабах организовать такой апгрейд, поэтому забили.

ZX_NOVOSIB
10.04.2020, 17:58
Интересно, что же в этой версии доработали.

SoftLight
10.04.2020, 19:05
Не слабо они доработали: компаратор живого места не находит все переправлено. Интересно, какова совместимость с существующим софтом.
А ну да постоянная ошибка RAMTOP с более менее современными играми (89 года), игры 84 года некоторые идут норм. В общем совместимость хуже чем у OpenSE. Появилось сообщение 'Device unformatted', возможно для микродрайва?

JV-Soft
10.04.2020, 20:01
CityAceE, а история ,откуда выплыла эта плата ?

goodboy
10.04.2020, 20:30
откуда выплыла эта плата ?
ссылка "источник" в первом посту

JV-Soft
10.04.2020, 21:12
Интересно ,схему бы срисовали ,судя по плате ,общее поле памяти.

- - - Добавлено - - -

PS или они пилили пзуху на 16к машине ?

ZX_NOVOSIB
11.04.2020, 06:29
А ну да постоянная ошибка RAMTOP с более менее современными играми (89 года), игры 84 года некоторые идут норм.
короче это не улучшенное доработанное пзу, а ухудшенное, так как свободной памяти видимо меньше осталось.

SoftLight
11.04.2020, 11:16
А кто сказал что оно улучшенное? Это прототип, это альфа официальной пзухи. В видео говорится, про то, что спектрум стартовал с недоделанным ПЗУ. Но нигде не сказано, что этим прототипом его собирались апгрейдить.

Eltaron
11.04.2020, 20:51
А кто сказал что оно улучшенное? Это прототип, это альфа официальной пзухи. В видео говорится, про то, что спектрум стартовал с недоделанным ПЗУ. Но нигде не сказано, что этим прототипом его собирались апгрейдить.
Там ещё говорится, что этот комп принадлежал компании, которая разрабатывала ПЗУ. A в тексте ещё написано, что доработка ПЗУ велась ещё три месяца после официального старта продаж. Логично предположить, что велась она в том числе и на этом компьютере.

Хотя, в принципе, Синклер хоть и жадина, но мог пожертвовать парочку готовых компов/плат для нужд разработки. Даже и до старта продаж мог - тогда да, этот экземпляр мог оказаться заброшен с какой-то старой версией прошивки.

Но я подиффал дизасмы, и мне показалось, что большинство отличий выглядят так, как будто в наш привычный ром добавили какой-то код. Хотя есть и места, которые выглядят с точностью до наоборот. Но, в целом, кода в роме из этого треда больше. В оригинальном пустого места (#FF-ы перед шрифтом) больше килобайта, а в этом всего 157 байт.

ЗЫ Кстати, есть одно видимое глазом отличие - токен MOVE тут пишется как "MOVE #".

SoftLight
18.05.2020, 15:35
Вот нашел подробный анализ содержимого этого ПЗУ, кому интересно.
https://www.spectrumforeveryone.com/technical/inside-the-prototype-zx-spectrums-rom/
Это действительно более новая версия ПЗУ, чем та, что была отправлена продакшн. Но все ошибки фирменной прошивки на месте, еще и RUN сломали:


...this part that contains the bug responsible for the incorrect working of CLEAR and RUN mentioned above. The instructions at 1568 and 1576 assume that the stack pointer has already been initialized, although it happens only much later at 159d. So, what ends up happening here upon startup is that UDG initialization overwrites the pointer to the top of the physical RAM saved on the stack, resulting in a faulty initialization of the P_RAMT system variable, breaking the CLEAR routine.