Форум за любителите на Стара електроника

Персонални компютри, игрови приставки и друга стара електроника за забавление => Ремонт, схеми, документация, литература => Темата е започната от: nickysn в 03 Ноември, 2020, 14:12:07

Титла: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: nickysn в 03 Ноември, 2020, 14:12:07
Здравейте,

Разработвам емулатор с отворен код за Oric-1, Oric Atmos и Правец-8Д. Знам, че емулатори за тези компютри вече има (Euphoric, Oricutron, MAME), но бих искал да направя емулацията си на Правец-8Д (както и в бъдеще на флопи контролерът на Борислав Захариев) по-прецизна. Едно от нещата, които искам да направя, например, е възможност за емулация на ранни и късни версии на Правец-8Д. Доколкото знам, има разлика в ROM-а и клавиатурата на компютрите произвеждани през първата половина на 1986 г., спрямо тези през втората половина. Знам, че кодът на буквата "Ч" е променен. В старите версии на 8Д буквата "Ч" е с код 124, докато в новите, на това място е сложена руската буква "Э". С други думи, търся собственик на компютър, при който командата:

PRINT CHR$(124)

отпечатва Ч, а не Э.

Ако компютърът работи, ROM-ът може да бъде из-dump-ен през порта за касетофон, и записан през звуковата карта на някой модерен компютър:

CSAVE "ROM",A#C000,E#FFFF

Аз лично имам два компютъра Правец-8Д, единият е с клавиш F1, другият с C/L, но и двата са от по-новите версии, и имат еднакво съдържание на ROM-а. Разликата между тях е само в клавиатурата, но не и в ROM-а.

Който се интересува от емулатора ми, намира се ето тук:

https://sourceforge.net/p/trololoric/code/HEAD/tree/trunk/

Компилира се с Free Pascal. Все още не е завършен, обаче. Липсва му звук, четене/запис от касетофон и флопи, както и режимът на десетична аритметика на 6502 (който изглежда не се ползва от BASIC интерпретатора). Но постепенно ще ги реализирам и тях, и ще работя за подобряване на точността на емулацията.

Нещата, които работят: процесора, видео контролера, клавиатурата, таймерите и портовете на 6522, използвани при нормална работа от BASIC интерпретатора (без работа с касетофон), регистрите на AY-3-8912 (просто все още не произвежда звук), портът за принтер.
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: Gabo в 03 Ноември, 2020, 16:21:27
Нашият колега във  форума iss (https://www.sandacite.com/forum/index.php?action=profile;u=531) мисля, че отдавна го е направил емулатора.
https://iss.sandacite.com/
но все пак нека даде и той мнение.
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: nickysn в 03 Ноември, 2020, 16:37:06
Не знаех за емулатора на iss. Нищо, сега ще има още един :)

Но иначе знаех, че има други емулатори - Euphoric, Oricutron и MAME/MESS. Моят емулатор го правя с учебна цел и за забавление.

Старата версия на ROM-а ще е полезна и за другите емулатори - и те също ще могат да добавят поддръжка на старите версии на 8Д-то.
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: iss в 03 Ноември, 2020, 20:53:49
@nickysn: Поздравления за амбициозното начинание и за резултата до тук! ;)

[attach=1]

Аз не разполагам с РОМ-а, за който споменаваш, но наистина ще е полезно да се намери дори само заради "запазването на историята". Интересно е също дали разликата е само в кода на 'Ч'-то или има и друго.

Любопитна подробност е, че за РОМ на Правец-8Д са използвали оригинала Basic 1.1a, където функциите за работа с касетофон (CLOAD/CSAVE) са "бъгави" и предизвикват известното "ERRORS FOUND", малко по-късно са подобрени в Basic 1.1b.

Иначе очаквай да се сблъскаш с доста недокументирани детайли по хардуера и пиши за прогреса.

Малко въпроси:
Интересен ти е и избора на език - паскал - какви платформи предвиждаш да се поддържат?
Какво имаш предвид под "по-прецизна" емулация?
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: nickysn в 03 Ноември, 2020, 21:49:07
Цитат
Аз не разполагам с РОМ-а, за който споменаваш, но наистина ще е полезно да се намери дори само заради "запазването на историята". Интересно е също дали разликата е само в кода на 'Ч'-то или има и друго.

Да, и на мен ми е интересно дали има други разлики. Ако се намери собственик на такъв компютър, ще могат да се видят разни други неща - как изглежда клавиатурата, например.

Цитат
Любопитна подробност е, че за РОМ на Правец-8Д са използвали оригинала Basic 1.1a, където функциите за работа с касетофон (CLOAD/CSAVE) са "бъгави" и предизвикват известното "ERRORS FOUND", малко по-късно са подобрени в Basic 1.1b.

Мда, помня, че навремето като ползвах касетофон, редовно излизаше "ERRORS FOUND", но програмите работеха, и затова се бях научил да не му обръщам внимание.  :)

Когато излезе контролерът за флопи на Захариев в сп. "Компютър за вас", баща ми го реализира, и беше невероятен напредък, спрямо касетофона :)

Цитат
Иначе очаквай да се сблъскаш с доста недокументирани детайли по хардуера и пиши за прогреса.

Ами да, очаквам го, това си е направо част от забавлението :)

Цитат
Интересен ти е и избора на език - паскал - какви платформи предвиждаш да се поддържат?

Ами поне Windows и Linux, които се поддържат и в момента. Също, евентуално DOS (с 32-битов DOS extender), Mac OS X. Имаше интерес и за Amiga, но се опасявам, че ще са твърде бавни :)

Относно езика - фен съм на Паскал и пиша на него. Освен това съм част от екипа, който прави компилатора Free Pascal. Аз му добавих поддръжка на процесорите i8086 (16-битов x86) и Z80, както и на платформите 16-битов DOS, Win16 (Windows 3.x), което даже влезе в новините по разни сайтове наскоро и ZX Spectrum :) Но работя не само по ретро платформи, например в момента работя по поддръжка на WebAssembly, само че още не е готова. В бъдеще мисля и 6502 поддръжка да правя, но е малко трудно да се генерира код за този процесор.

Цитат
Какво имаш предвид под "по-прецизна" емулация?
Ами точност до машинен цикъл. Смятам да направя най-различни тестове, с които да го сравня с реалния хардуер. Мисля да им публикувам сорса, така че да стане своеобразен testsuite за съвместимост, с който да могат да се тестват и други емулатори. Други неща, които планирам:

- емулация на контролера на Захариев, както е в списанието + емулация на звуците от истинско флопи, за по-голямо удоволствие при работа :)
- по-бавна, но по-прецизна емулация на видео контролера, при която се формира видео изображението пиксел по пиксел, като при реалния компютър. Това ще забави доста емулацията, затова ще е опционално.
- може би някакви ефекти, подобни на PAL ghosting-а в Oricutron :)
- dump на съдържанието на DRAM при включване на захранването, за да симулирам реалистично ефектите, които излизат на екрана при включване на компютъра. Разбира се, това са случайни артефакти, но все пак образуват някакви шаблони, зависещи от чиповете DRAM, инсталирани в компютъра. За да получа такива dump-ове сигурно ще трябва да слагам някакъв custom ROM, който да не инициализира паметта, ами да си я оставя в първоначалния вид, поне във областта, където е видео паметта. Ще го измисля, още не съм стигнал дотам :)
- всякакви други идеи, които могат да ми хрумнат или пък да дойдат от този форум :)

Въоръжен съм с логически анализатор (Intronix LA1034 LOGICPORT), закачен за шината на компютъра, с който мога да наблюдавам какво се случва, вкл. и работата на ULA видео контролера, който си вмъква обръщенията към видео паметта по време на едната фаза на clock-а, когато 6502 не ползва шината.

Имам също и EPROM/EEPROM/FLASH програматор Batronix BX48 Batego II.

Въобще - идеи много. Засега първо трябва да го довърша де, че още няма звук и касетофон. :)
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: Gabo в 03 Ноември, 2020, 22:46:04
най-първия РОМ... ще погледна годината на производство на моя 8Д (около 1989 е по спомени), за жалост, съм сигурен, че не е с "оригинален", щото лично от Борислав Захариев взех версията, с препрограмиран ДМА бутон на дъното, който да действа като РЕСЕТ.
(другите 2 броя са ми подаръци от приятели и със сигурност не са от най-първата серия)
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: digi2577 в 04 Ноември, 2020, 09:08:25
Аз разполагам с този Правец 8Д. Купих го преди повече от 5 години и все не ми остава време за него.

[attach=1]

Нямам касетофон обаче, но очаквам да получа програматор в следващите седмици. Като ми остане време ще му направя копие на рома и ако представлява интерес ще го изпратя.
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: Nprod в 04 Ноември, 2020, 11:39:51
Нямам касетофон обаче, но очаквам да получа програматор в следващите седмици. Като ми остане време ще му направя копие на рома и ако представлява интерес ще го изпратя.

Първо провери какво ще ти излезе като въведеш PRINT CHR$(124) за да се разбере дали въобще има смисъл. Аз пробвах на моя от 87г., но ми показа Э
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: digi2577 в 04 Ноември, 2020, 14:31:24
И при мен изкарва Э, така че и моят ROM е по-нов.
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: TheHungry в 04 Ноември, 2020, 23:30:43
Аз съм по хардуера , но браво за желанието и резултата до тук !

Ще погледна из кашона с 8Д платките какви РОМ-ове има и ще ги сравня дали имат разлики и ако имат ще ги пусна да видя дали принтва "Ч".

Може пък да изкочи нещо .

Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: iss в 05 Ноември, 2020, 00:19:59
Щом @TheHungry е тук няма начин да не стане! ;)

Ето и нещо от мен: преди време бях направил един инструмент за визуализиране на файлове с шрифтове за Правец 8Д - поддържа бинарни и ТАП-ове, а днес му добавих и възможност да показва шрифта и от стандартните РОМ-ове (бинарни файлове с дължина 16384 байта). Инструментът е достъпен тук:

https://iss.sandacite.com/tools/oric-font-viewer.html

Работи изцяло в броузера ви т.е. бъдете спокойни - "дропнатите" файлове не се изпращат никъде ;).

Интересен резултат даде РОМ-а на @Дедо Боре изпозван в системата РЗ-210 за обучение на р/телеграфисти.
(Виж темата ТУК (https://www.sandacite.com/forum/index.php?topic=3484.0)!)
Знаковият набор включва 2 броя 'Ч' като първия е точно с ASCII 124!

Иначе след известно ровене в архивите изкочи потвърждение на факта, че е имало ралични версии на РОМ-а -
в КВ брой 1-2 от 1990 на стр.47 в статията "Клавиатурен драйвер" от (познай от кого ;)) Борислав Захариев пише:

[attach=1]

Търсенето продължава....
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: RETROTRONICS.info в 05 Ноември, 2020, 00:21:16
За съжаление на ранната версия от другата тема са му сменили дъното. Но на едно дъно намерих това...
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: iss в 05 Ноември, 2020, 00:59:57
@RETROTRONICS.info: Велико! Благодарности за находката!

[attach=1]

При команда CLOAD"" изкарва невероятния надпис ПОДГОТОВКА..  8)

[attach=2]

Иначе РОМ-ът представлява 1:1 копие на Basic 1.0 (този използван в оригинала Oric-1) като са сменени само надписите и дефинициите на знаците. В атачнатия файл са обединени дветете части (0xCDxx+0xEFxx) за лесно ползване с емулатор. Във файла първият байт беше 0x00 вместо 0x4C (JMP), което е явна грешка - може би е възникнала при изчитането на чипа...

Интересно е дали има серийно продавани бройки с този РОМ или е бил само за прототипа....

Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: nickysn в 05 Ноември, 2020, 01:35:57
Да, находката е много яка! :)

Интересно наистина дали е било само прототип. Доколкото знам BASIC 1.0 има доста разлики (и повече бъгове :) ). Също, разни адреси в ROM са на различни места, а в книжките за 8Д като че ли съм виждал само новите (на BASIC 1.1) адреси.

Иначе от къде знам, че е имало различни версии на ROM-а - трябва да изровя конкретните броеве на "Компютър за вас", но съдя по следното:

В един от броевете на КВ беше публикувана програмата на Борислав Захариев "Универсален инструмент". Тя е на машинен език, и се въвежда с DATA. Когато я набереш и пуснеш, в надписите ѝ излиза Э, вместо Ч. В по-късен брой беше излязло допълнение, правено май от някой друг, което показва кои редове с DATA как да промениш, за да излязат Ч-тата като трябва и на новите серии. И там се споменаваше, че имало разлика между ROM-овете на компютрите, произведени през първата половина на 1986 г, спрямо по-късните.
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: nickysn в 05 Ноември, 2020, 04:01:05
Намерих статията, в която се споменава. Малка поправка, не е корекция към "Универсален инструмент", а към програмата за копиране на файлове на Антоан Хлебаров. Страница 34 на КВ 01-02 '88

[attach=1]
Титла: Re: Търся съдържанието на ROM на ранните Правец-8Д
Публикувано от: iss в 05 Ноември, 2020, 09:13:59
Да, имам "визуален" спомен точно за тази табличка  :morning1: