PDA

Просмотр полной версии : Эмулятор Специалиста - EmuStudio



Titus
28.02.2018, 17:28
Сделал в своем эмуляторе EmuStudio поддержку компьютера Специалист (ч/б, 4 или 8 цветов) и клона Eureka (ч/б и 4 цвета).


http://a.radikal.ru/a08/1803/81/4fc099f29b73.png


Делалось чисто для себя, поиграться в игры из детства, поностальиговать.
Но может кому-то тоже будет интересно.

Инструкция по использованию - запустить эмулятор, и кидать в него образы игр с расширением .rk и .rke для режима Eureka, и .rks и остальные для режима Специалиста.
В зависимости от расширения файла эмулятор будет переключаться в режимы Специалиста или Eureka автоматически.
Также можно загружать программы из бейсика и прочих редакторов. Для примера с бейсиком делаем так - кидаем в эмулятор интерпретатор бейсика, затем программу для бейсика (она автодетектится по трем байтам $D3 в начале файла). Если же формат бейсик-файла отличается, или же вы хотите загрузить что-то другое, то необходимо кидать файл в окно с нажатой клавишей LCtrl.
После того, как кинули в окно интерпретатор бейсика и бейсик-программу, можно загрузить ее директивами MLOAD (для стандартного бейсика) и CLOAD"" (для бейсика Микрон). А далее просто запускаем программу по RUN. Проще не придумаешь.
Можно даже кидать бейсик программу в окно после того, как вы написали MLOAD/CLOAD. А можно сперва кинуть бейсик программу, а потом сам интерпретатор.
Запись программы в образ кассеты в режиме Специалиста происходит автоматически. Файл с образом будет называться SaveFile.rks. Например, из стандартного бейсика можно записать программу директивой MSAVE.

Клавиатура: максимально подогнанная для тех, кто привык к PC-клавиатуре.

~ - HOME
NumLock - ПВ (повтор)
CapsLock - НРф (РУС/ЛАТ)
Delete - смена масштаба экрана x2 / x3
Insert - смена палитры (для тех, кто любит разные ламповые цвета)
Home - смена цветового режима (ч/б, 4 цвета, 8 цветов)
End - смена режима сканлиний (включить/выключить)
Esc - АР2
LCtrl + RCtrl - Сброс
LWin + F - полноэкранный режим
Shift + PrintScr - сделать скриншот

Из особенностей:


Звука нет
Порт клавиатуры ВВ55 эмулируется в эскпериментальном аналоговом виде
Загружать программы можно только Drag'n'Drop'ом


Об особенностях под спойлером:

Клавиатура:
Как и в моделях других компьютеров для EmuStudio, клавиатура эмулируется так, чтобы полностью совпадать с привычной раскладкой клавиатуры на PC.
Например, если на PC, чтобы получить символ '@' нужно нажать Shift + '2', то не смотря на то, что на Специалисте есть совершенно отдельная клавиша '@', для которой Shift нажимать ненужно, вы нажмете Shift + '2', и будет нажата имено '@'.
Однако, в силу особенностей опроса клавиатуры Специалиста, выяснилось 2 особенности:
1. Если передать Специалисту матрицу клавиатуры, где нажат одновременно Shift и что-то еще, то в некоторых случаях Shift будет пропущен.
2. Если отпустить какую-либо клавишу, а потом нажать другую ранее, чем через определенный промежуток времени, то другая клавиша не нажмется.
Отсюда возникло две особенности эмуляции для гарантированного срабатывания в вышеописанных случаях.
1. Если вы нажали любую клавишу, либо комбинацию клавиш, где для Специалиста передается Shift, то это нажатие задержится на 1 кадр, т.к. сперва передается Shift, а уже в следующем кадре сама клавиша.
2. Если вы нажали комбинацию клавиш с Shift'ом, для которой у Специалиста есть клавиша без Shift'а (например все тот же Shift + '2' -> '@'), то сперва Специалисту будет передано отпускание Shift'а (хотя вы его и держите), затем только через 6 кадров, когда Специалист поймет, что Shift отпущен, будет передан символ '@'. Поэтому задержка для нажатия таких комбинаций - 6 кадров. И это следующие символы '@', '^', '_', ':'.
Весь этот огород сделан исключительно для того, чтобы пользователь не знакомый с раскладкой Специалиста, или же просто привыкший к единой раскладке клавиатуры PC, мог легко печатать все, что ему заблагорассудится и сразу же.
Клавиатуру можно проверить в Basic'е, который есть в архиве с эмулятором.
Да, клавиши 'F', 'HELP', 'NEW', 'SAVE', 'LOAD', 'RUN', 'STOP', 'CONT', 'EDIT', 'СФ', 'ТФ', 'НФ' находятся на F1-F12.

Параллельный порт ВВ55:
По скольку ВВ55 является универсальным портом, отдельные выводы которого можно программно настраивать самым разнообразным двунаправленным образом, то при подключении к порту клавиатурной матрицы, реальное цифровое состояние входных защелок уже очень сложно вычислить, если не рассматривать клавиатурную матрицу, подтягивающие резисторы и внешние ключи порта, как аналоговую схему.
Что я и попробовал сделать в данном эмуляторе. В первом приближении, разумеется, пока что без тестов сравнения с реалом.

Скриншоты (большие, теплые и ламповые):


ZOO:
http://a.radikal.ru/a42/1802/fa/61f3f1e48476.png

Пещера:
http://b.radikal.ru/b07/1802/01/c159263b1e5d.png

Клад:
http://d.radikal.ru/d40/1802/de/1ce2bb0dc5f2.png

Ралли:
http://a.radikal.ru/a11/1802/d9/3e874a8cfa12.png

Тетрис:
http://d.radikal.ru/d08/1802/5c/46ed329fd521.png

Цветные линии:
http://c.radikal.ru/c40/1803/46/4836ba4ba9a7.png

Canball:
http://b.radikal.ru/b40/1803/aa/d714b59c0362.png

В комплекте прилагается несколько игрушек.

ZEman
28.02.2018, 18:40
а специалист мх тут не поддерживается ?

Titus
28.02.2018, 19:16
а специалист мх тут не поддерживается ?
Пока нет. Только классический.
Цвета еще можно поддержать, но все эти дисководы и прочее - уже на любителя.

hobot
28.02.2018, 20:04
В комплекте прилагается несколько игрушек.
а где брать игрушки и какой ориентир - насколько в смысле богата библиотека игр в целом?
В любом случае, благодарность за новый эмулятор.
Живьём никогда не видел его, вижу порт LAND есть )
своя версия клада, где бы ещё игрушек взять, кто нибудь делится-собирает?

ZEman
28.02.2018, 20:11
hobot, держи, тут все игры для специалиста.
https://yadi.sk/d/Z_PRBwc73Ssico

hobot
28.02.2018, 22:28
Инструкция по использованию - запустить эмулятор
у меня ругается на отсутствие BIOS.ROM ) ещё раз проверил,в первом архиве только .exe-шник
? (спасите - помогите)

petrov1962
28.02.2018, 22:35
у меня ругается на отсутствие BIOS.ROM ) ещё раз проверил,в первом архиве только .exe-шник
? (спасите - помогите)

Возьмите прошивки ПЗУ с сайта fifana и переименуйте...

Titus
28.02.2018, 23:04
у меня ругается на отсутствие BIOS.ROM ) ещё раз проверил,в первом архиве только .exe-шник
? (спасите - помогите)
Блин) Забыл в архив положить игры и биос. Исправил) И никто даже не сказал)

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


Живьём никогда не видел его, вижу порт LAND есть )
На Специалисте два вида LAND'а.
Один классический, порт с ДВК.
А вот другой (он есть в архиве) называется Пещера, и он отличается. В нем можно стрелять не в стены, а в чертиков. И сами чертики ведут себя гораздо более интеллектуально.
Именно в нее я заигрывался в детстве в радиокружке.
В той версии, что в архиве, всего один лабиринт. Но есть версии, где их много. Просто пока не нашел такую, а какую находил, она была немного битая, поэтому не выкладываю.

ivagor
01.03.2018, 08:08
тут все игры для специалиста
Вся "классика", но игры не все

ZEman
01.03.2018, 09:06
Я как правило новодел не считаю за игры, что для спектрума, что для таких компов.

Titus
01.03.2018, 11:04
Вся "классика", но игры не все
Можно ссылочку на архив со всеми играми и программами для специалиста?

Добавил в первый пост подробности работы клавиатуры и ВВ55.

ivagor
01.03.2018, 12:27
Знаю только про конверсии игрулек со своим участием (5 штук, новоделы, я их где-то выкладывал). Не думаю, что они интересны для проверки эмуляции, т.к. делались в эмуляторе, а так то у ZEmanа в архиве вся классика есть.

Titus
01.03.2018, 12:36
Не думаю, что они интересны для проверки эмуляции, т.к. делались в эмуляторе
Оно нужно не только для проверки, но и для поиграть)

ivagor
01.03.2018, 12:40
Ссылка на архив моего старого сайта здесь (http://zx-pk.ru/threads/8378-pk8000-soft-staryj-i-novyj.html?p=877066&viewfull=1#post877066). \games\spec\

zx_
01.03.2018, 22:06
ivagor, а плутонию конвертировать нет желания?
http://opensourcezx.untergrund.net/a_games-plutonia_src.html

:v2_dizzy_roll:

Titus
01.03.2018, 22:15
Ну чего, кто-нить запускал? Есть замечания?)

MacBuster
01.03.2018, 23:10
Я запускал, ничё так :)

hobot
01.03.2018, 23:14
Тема в поддержку эмулятора на игровом форуме
https://www.old-games.ru/forum/threads/ehmuljator-specialista-emustudio.79690/

ZEman
02.03.2018, 03:24
Titus, эмулятор хороший, всё работает как надо.
Из минусов только отсутствие звука.

ivagor
02.03.2018, 07:41
Ну чего, кто-нить запускал? Есть замечания?)
В Sky Scraper ГГ не реагирует на клавиатуру, в emu все нормально работает.
Желательно добавить возможность отключения "чересстрочности".


ivagor, а плутонию конвертировать нет желания?
Нет, скорее я соберусь что-нибудь из недоделок довести до ума. Но это крайне маловероятно.

Titus
02.03.2018, 09:36
В Sky Scraper ГГ не реагирует на клавиатуру, в emu все нормально работает.
Желательно добавить возможность отключения "чересстрочности".
Проверю.
Чересстрочность отключить на всех масштабах или только на x2?

MacBuster
02.03.2018, 09:43
Чересстрочность отключить на всех масштабах или только на x2?
Я бы оставил, но делал бы не пустую строку, а тень с яркостью в 30%.

Titus
02.03.2018, 09:45
Я бы оставил, но делал бы не пустую строку, а тень с яркостью в 30%.
Там так и есть. Пустая строка - это 25% яркости от двух соседних строк.

MacBuster
02.03.2018, 09:46
В Sky Scraper ГГ не реагирует на клавиатуру
Да, во время игры не реагирует, а перед игрой вроде нормально.

Titus
02.03.2018, 10:54
Да, во время игры не реагирует, а перед игрой вроде нормально.
Интересно, что в архивах есть два Скраппера.
Один действительно в игре не реагирует, а другой под названием SCRAP2 - реагирует.
Причем во втором перед началом игры промелькивает надпись 'Исправил ошибку *Практик*'.

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

А в режиме x3 смешение точек не только вертикальное, но и горизонтальное, чтобы получились такие красивые точечки, как на мониторах или телевизорах с ЭЛТ:

http://d.radikal.ru/d04/1803/98/dd1703f72aa5.png

Кстати, что в режиме x2, что в x3, средства масштабирования видеокарты не используются. Исключительно целочисленное процессорное масштабирование. Это исключает всяческий муар и погрешности, которые вносит видюха. И гарантирует, что в независимости от видеокарты, эффект будет у всех одинаковый.

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

Вопрос такой - каким разрешением кто пользуется? x2 или x3?
Я на мониторе 1920 x 1080 пользуюсь разрешением x3.

ivagor
02.03.2018, 12:07
Чересстрочность отключить на всех масштабах или только на x2?
Желательно иметь возможность отключать ее при любом масштабе.

Насчет sky scraper. В неправленом варианте процедура вывода графики умудряется "нарисовать" в области F800-FFFF.

Dr.Potapov
02.03.2018, 12:15
Ну чего, кто-нить запускал? Есть замечания?)
Спасибо за эмуль ) Зачетный весьма, экран и палитры - вообще бомба! )

Но в играх не работает управление, либо я не разобрался как ) Только в футболе работает.
Написал на бейсике Hello World! )

Titus
02.03.2018, 12:16
Но в играх не работает управление, либо я не разобрался как ) Только в футболе работает.
Скорее всего не разобрался.
Приведи пример конкретных игр, где не работает)

Dr.Potapov
02.03.2018, 12:20
Скорее всего не разобрался.
Так и есть, запустил Lode Runner, выбрал "cursor" и все заработало отлично )

Titus
02.03.2018, 14:52
Насчет sky scraper. В неправленом варианте процедура вывода графики умудряется "нарисовать" в области F800-FFFF.

Так может она правильно у меня не работает)

ivagor
02.03.2018, 15:53
В emu и emu80 исходный sky scraper работает нормально. У меня есть предположение, что если в эмуляции ВВ55 реализовать следующее (цитата): "При записи нового управляющего слова все буферные регистры портов устанавливаются в 0.", то клавиатура в игровом процессе sky scraper заработает.

b2m
02.03.2018, 16:40
При записи нового управляющего слова все буферные регистры портов устанавливаются в 0
все буферные регистры портов, настроенные на вывод, ...

ivagor
02.03.2018, 17:06
все буферные регистры портов, настроенные на вывод
После недавнего разбирательства с вектором я в курсе, но я процитировал конкретную книжку. Если сделать хотя бы как в цитате, то sky scraper должен управляться.

Titus
02.03.2018, 17:15
Надо знать, как на реале)

ivagor
02.03.2018, 17:19
Для полноты картины можно посмотреть тест (http://zx-pk.ru/threads/8634-vektor-06ts-emulyatsiya.html?p=943302&viewfull=1#post943302) и его результат (http://zx-pk.ru/threads/8634-vektor-06ts-emulyatsiya.html?p=943319&viewfull=1#post943319) с реального вектора. Или владельцы реальных специалистов (со старыми клавами) могут провести подобные тесты.

Titus
02.03.2018, 23:15
В emu и emu80 исходный sky scraper работает нормально.
Интересно, почему тогда кто-то эту игру переделал, исправив эту самую клавиатурную ошибку?

Titus
03.03.2018, 05:32
В другой теме (http://zx-pk.ru/threads/10378-spetsialist-voprosy-programmirovaniya.html?p=951310&viewfull=1#post951310) HardWareMan писал о различиях между тремя версиями ВВ55:


1. Мы уже обсуждали на ZX.PK, но я не помню где. Есть 3 "ревизии" порта: ИК55, ВВ55 и ВВ55А. Есть 2 вида бага: порт не устанавливает 0 на порте, только что настроенном на выход и чтение из порта, настроенного на выход возвращает регистр выхода а не состояние ножки (т.е., нельзя "перетянуть" ее). Какой баг на каком этапе исправили я, увы, не помню

Может быть на одних ВВ55 игра работала, на других нет?

ivagor
03.03.2018, 06:04
Про различие версий ВВ55 не знал, спасибо.
По поводу причины переделки sky scraper. Может дело в версии ВВ55 у кого-то, а может в том, что исходный sky scraper "рисует" не только в f800-ffff, но и в f000-f7ff (и не только туда). Может у кого-то к этой ВВ55 было подключено что-то критичное и он заметил и поправил.
А так-то можно было поправить и более точечно. Вчера вместо переделки графической процедуры добавил в начало опроса клавиатуры вывод 0 в порт B системной ВВ55 и в EmuStudio такой вариант заработал.

Titus
03.03.2018, 07:03
Вчера вместо переделки графической процедуры добавил в начало опроса клавиатуры вывод 0 в порт B системной ВВ55 и в EmuStudio такой вариант заработал.
Логично, т.к. у меня при настройке портов на вывод, ноль автоматически в него не записывается.
Не знаю уж, какой ВВ55 это соостветствует, из перечисленных HardWareMan'ом.

Хорошо бы переписать действующий реальщиков, и выяснить, какие версии портов стоят у них на платах, чтобы позапускать тесты.

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

Вот такое нашел здесь (http://zxpress.ru/article.php?id=6412):


В старых версиях микросхемы, носивших название К580ИК55, чтение
из порта, запрограммированного на вывод, давало всегда #FF. В
современном варианте ВВ55 результатом считывания будет то, что
было записано в регистр адаптера. Это следует иметь в виду при
ознакомлении со старой литературой, например, с описанием компь-
ютера "Радио-86РК".

К слову сказать, у меня при чтении портов, настроенных на выход, читается реальное состояние ножек.

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

И вот (http://zx-pk.ru/threads/13270-radio-86rk-po-stranitsam-zhurnala-radio.html?p=511866&viewfull=1#post511866) об этом же пишет HardWareMan:


Есть разница между ИК55 и ВВ55. У первых, если вывод настроен на выход, то читается только 0xFF, т.е., схема чтения с пинов отключается. У вторых нормально считывается состояние пинов, т.е. то, что было записано. Поэтому, первые не работают с некоторым софтом. Вроде как тут пролетало и вроде как в теме про Орион.

PS Ан нет, в теме (http://zx.pk.ru/showpost.php?p=238677&postcount=3) про этот ваш (http://zx.pk.ru/showpost.php?p=356690&postcount=16) Радио 86РК.

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

И еще вопрос, в какой программе можно посмотреть использование двух незадействованных в базовом варианте клавиш - TAB и АР2?

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

И вот тут (http://zx-pk.ru/threads/20586-ps-2-adapter-klaviatury-dlya-spetsialista.html?p=563195&viewfull=1#post563195):


Да, клава в спеце 12х6. PA+PCl это одна координата, PB другая.
http://savepic.ru/3728910m.jpg (http://savepic.ru/3728910.jpg)
При этом, разные программы по-разному ее опрашивают: все мониторы используют режим [A+Cl] на вывод а на ввод. Софт МХа использует [B] на вывод а [A+Cl] на ввод. NC использует [A+Cl] на вывод (все нули, используется особбеность ВВ55 при смене режима) а [B] на ввод для определения факта нажатия и [B] вывод и [ACl] на ввод при сканировании. [Ch], [B.1] и [B.0] при этом имеют индивидуальные функции. Здесь (http://www.nedopc.org/forum/viewtopic.php?t=7394&postdays=0&postorder=asc&start=0) я веду расчет таймингов для создания безвейтингового контроллера конкретно для Спеца.

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

А вот тут (http://zx-pk.ru/threads/16885-voprosy-po-580vv55a.html) я уже поднимал подобную тему, оказывается)

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

И вот это (http://zx-pk.ru/threads/20586-ps-2-adapter-klaviatury-dlya-spetsialista.html?p=563286&viewfull=1#post563286) интересно:


Все зависит от технологии порта, это да. Пробовал штук пять обычных конца 80-начала 90-х.
Как там [B]Ewgeny7 пишет, висящий вход читается как 0.
В моих тестах - сразу после смены режима вход читался как 1. Если его замкнуть на землю и отпустить - читался как 0.
Соединенные же входы - это не подвешенные входы! На них потенциал около 1.5В. Читается как 1, стабильно даже после подачи и снятия земли.

Titus
03.03.2018, 13:04
Стал разбираться с цветными схемами - 4 и 8 цветов, и пока не могу понять палитры.

Если брать 8-м цветную схему (МК 1990'8), то то выводы ВВ55, отвечающие за цвета должны быть 10 - B, 11 - R, 13 - G,

http://c.radikal.ru/c12/1803/0a/5af259a78a5a.png

тогда как, если предположить, что выходы RGB инверсные, в прилагаемой таблице цветов все не так - 10 (Bit 7) - R, 11 (Bit6) - G, 13 (Bit4) - B. Почему так?

http://d.radikal.ru/d12/1803/27/5bca202b1f88.png

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

Заодно интересует кодирование цветов для 4-х цветного режима.
В журнале об этом ни слова)

ivagor
03.03.2018, 18:18
Проще всего предположить, что на рисунке ошибка, и правильная схема вот такая (http://www.spetsialist-mx.ru/schemes/ColorController1.png). Но может есть еще какие-то варианты.

Про кодирование цветов в 4х цветном написано (МК88/7):
1. стр.47, левая колонка, внизу: "Таким образом, светлые элементы изображения окрашиваются в один из 4х цветов: белый, красный, зеленый, синий."
2. стр.47, средняя колонка, внизу: "где, COLOR=0/64/128/192"
Т.е. белый - 0; красный - 64; зеленый - 128; синий - 192.

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

Если сравнить 4х и 8ми цветные схемы, то представляется более вероятным вариант, что авторы 8ми цветной модификации перепутали на картинке входные (для РУ3) сигналы (с D44).
1. Вместо 13 должно быть 11
2. Вместо 11 должно быть 10
3. Вместо 10 должно быть 13

Titus
03.03.2018, 21:59
1. стр.47, левая колонка, внизу: "Таким образом, светлые элементы изображения окрашиваются в один из 4х цветов: белый, красный, зеленый, синий."
2. стр.47, средняя колонка, внизу: "где, COLOR=0/64/128/192"
Т.е. белый - 0; красный - 64; зеленый - 128; синий - 192.
Возможно и так, но не обязательно, т.к. нет явных указаний, а лишь косвенные. Но можно взять за рабочую гипотезу)

Вариант проверки предполагаю такой - просто запустить игру в цвете, и сравнить со скриншотами, которые люди делали в других эмулях.

Titus
04.03.2018, 03:56
Сделал цвета такими, как указывалось в таблице (а не так, как на схеме), и совпало с тем, что задумывал, например, vinxru в своей игре:



http://d.radikal.ru/d34/1803/f5/b7d367febad8.png

ivagor
04.03.2018, 07:47
Возможно и так, но не обязательно, т.к. нет явных указаний, а лишь косвенные.
Косвенные, но довольно определенные. 4х цветный вариант - "самостоятельный", с печаткой. А 8ми цветный - модификация 4х цветного. Представляется нецелесообразным делать лишнюю работу по перетасовке входных сигналов, если можно просто добавить 1 новый.

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

Вспомнил, что делал тестик (http://zx-pk.ru/threads/24428-spetsialist-na-plis.html?p=769892&viewfull=1#post769892) 8ми цветного режима

Titus
04.03.2018, 09:56
Вспомнил, что делал тестик 8ми цветного режима
Да, все совпадает.

Так же проверил схему 4-х цветного режима, там все тоже совпадает с предложенными вами цветами.

Единственное, 4-цветный и 8-цветный режим будут отличаться двумя цветами.
В 4-цветном красный, а в 8-цветном - фиолетовый,
в 4-цветном зеленый, а в 8-цветном - голубой.
Синий же у них совпадает.

ivagor
04.03.2018, 10:30
Интересно, что если ограничиться 4мя цветами, то можно делать программы которые будут выглядеть одинаково на обоих вариантах.
0С0h - синий; 50h - красный; 90h - зеленый; 0 - белый.
Примерно поэтому и не делал по 2 варианта цветных конверсий игрушек, т.к. основные цвета совпадают, а которые не совпадают - близки.

Titus
04.03.2018, 11:14
Это да. Но я не видел ни одной игры, в которой так делалось)
Т.к. владельцы 8-ми цветовых систем делали все 8, разумеется)

Кроме того, при использовании в 4-х цветном варианте цветов, в которых установлен бит 4 (красный и зеленый), компьютер пересбросится, т.к. на место ОЗУ встанет ПЗУ, если только схема начального пуска не переделана.

ivagor
04.03.2018, 12:16
Кроме того, при использовании в 4-х цветном варианте цветов, в которых установлен бит 4 (красный и зеленый), компьютер пересбросится, т.к. на место ОЗУ встанет ПЗУ, если только схема начального пуска не переделана.
Да, про начальный пуск я забыл, без резни совместимости по цветам не получится.

ivagor
04.03.2018, 14:20
Стоит отметить, что в стандартной поставке emu и emu80 реализована 8ми цветная приставка, но пзу без правок. Т.е. на реле 8ми цветную приставку можно программно детектить, а в эмуляторах - нет. Хотя это легко можно поправить самостоятельно, заменив/добавив правленый файл с содержимым пзу.

barsik
04.03.2018, 15:04
Стоит отметить, что в стандартной поставке EMU и EMU80 реализована 8-ми цветная приставка, но ПЗУ без правок. Т.е. на реале 8-ми цветную приставку можно программно детектить, а в эмуляторах - нет.
А почему? Как программно Вы собираетесь обнаруживать наличие схемотехники на 8 цветов?

Если Вы имеете ввиду контроль ПЗУ на то, что там в конкретном месте стоит команда EI, то это неправильно и неграмотно. Вообще контроллировать ПЗУ нельзя, оно у всех разное. Были глупые программы РК-платформы, что определяли тип РК-клона по КС ПЗУ, которые успешно глюкались (когда в ПЗУ исправлены ошибки, или оно доработано для поддержки ROM-диска или дисковода или это ПЗУ для клавиатуры MS7007, или для CPU Z80 и т.п).

Ещё раз напомню, что для освобождения разряда PC4 для нужд цвета в МК-08.1990, авторы этой схемы поменяли ПЗУ, чтобы в качестве сигнала "начальный пуск" использовать выход INTE, там ПЗУ выполняет команду EI. Отчего попытка запустить 8-ми цветную программу на Специалисте с 4-мя цветами, где PC4 это всё ещё сигнал НП, приведёт к фатальному улёту, т.к при выводе цвета ОЗУ отключится.

Глупо перешивать ПЗУ и впустую тратить выход INTE, поэтому эмуляторы эмулируют Специалист, в котором сигнал НП формируется как в РК86, т.е сбрасывается не программно, а автоматически по первому же сигналу /WR от КР580, т.е на той же самой 4-той команде ПЗУ - LD (FF03),A, без всякого изменения ПЗУ. Не говоря уже о том, что использование INTE под сигнал НП, ещё глупее, чем использование INTE для звука в ОРИОНЕ, т.к прерывания нужны для мыши и конверсии Zx-игры 'Elite'.

Потому детектирование команды EI в ПЗУ следует считать большой ошибкой. Лучше в дамп каждой игры встраивать флаг, изменив который пользователь сам настроит игру под своё цветовое железо.

Pyk
05.03.2018, 23:16
А реально существовали программы, которые детектили тип цветной приставки по содержимому ПЗУ? Или это просто теоретические размышеления? (У меня в emu80 при переключении 2/4/8-цветных режимов содержимое ПЗУ, естественно, не меняется...)

Titus
05.03.2018, 23:25
А реально существовали программы, которые детектили тип цветной приставки по содержимому ПЗУ? Или это просто теоретические размышеления? (У меня в emu80 при переключении 2/4/8-цветных режимов содержимое ПЗУ, естественно, не меняется...)
У меня тоже не меняется) Естественно)

barsik
06.03.2018, 02:26
А реально существовали программы, которые детектили тип цветной приставки по содержимому ПЗУ?
Вопрос правомерный. Возможно из-за детектирования наличия цвета по коду ПЗУ, мы видим некоторые программы лишь в монохроме. Т.к при несоответствующем ПЗУ из-за автонастройки они работают без цвета.

Кстати, вот именно поэтому, я и призывал включить в эмуляторы возможность оперативной замены ПЗУ. В моём эмуляторе Ориона (для MSDOS) в встроенном командном отладчике специально есть директива R - рестарт, как бы нажатие на кнопку сброс. Если ввести R с параметром не равным нулю, то грузится альтернативный ROM-BIOS (файл с именем ROM_F800.ALT, вместо обычного ROM_F800.DAT). Это удобно, если надо убедиться, что программа не работает с конкретным ПЗУ.

А вообще, очень сомнительно, что оригинальные программы из исторического периода используют такой трюк. Т.к тогда 8-ми цветных программ просто не было. Потому-что схема на 8 цветов была опубликована лишь в августе 1990, когда уже распространилась мода собирать ZX и появился Орион, из-за чего популярность Специалиста в городах фатально упала. А так как программисты-любители были сосредоточены именно в крупных городах, то их число мгновенно упало до нуля.

Потому основная масса пользователей Специалиста была с периферии, но среди них не было программистов. Потому что там лишь изолированые пользователи, лишённые возможности обмена опытом с другими и оттого не имеющие моральной поддержки и доступа к информации. Да и техническая грамотность населения ниже. Именно поэтому 99% программ Специалиста в XX веке написано именно в 80-тые. А в 1991 появился Специалист-MX, где цвет совсем иной, сигнал НП иной и ПЗУ другое. Потому новых игр с 1991 года вообще не появилось ни одной. Оцвечиванием старых программ Специалиста под 8 цветов и написанием новых занялись уже только в этом веке

А точно узнать ответ на этот вопрос можно только практически, - проверкой всех монохромных программ с модифицированным ПЗУ.

ivagor
06.03.2018, 06:40
А реально существовали программы, которые детектили тип цветной приставки по содержимому ПЗУ? Или это просто теоретические размышеления?
Теоретические. Возможно обновлю свои конверсии игрушек, чтобы детектили. Придется вместе с ними правленый дамп пзу прикладывать.

barsik
06.03.2018, 11:57
Потому детектирование команды EI в ПЗУ следует считать большой ошибкой. Лучше в дамп каждой игры встраивать флаг, изменив который пользователь сам настроит игру под своё цветовое железо.


Возможно обновлю свои конверсии игрушек, чтобы детектили
Чтобы детектили как? Совсем не понял Вашу логику.

В позапрошлом посте я утверждал, что так делать неправильно и вредно. И с этим все согласились. А в предыдущем посте я предположил, что так никто никогда и не делал. Т.е до сих пор, как и положено, не было привязки программ к конкретному коду в ПЗУ. Зачем же уже в новое время заниматься вредительством и сознательно портить имеющиеся программы?

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

Вам что так сильно не нравятся прерывания, что требуется любой ценой заблокировать их появление на Специалисте? Мне тоже не нравятся прерывания, но я понимаю, как будет правильно. По-моему разумно, наоборот, бороться с использованием схемы начального пуска использующей выход INTE.

Я вообще не вижу проблемы, что её надо решать привязкой программ к коду ПЗУ и тратить на цели обнаружения схемы цвета прерывания.

Да, это неприятно, что "горе-изобретатели" 8-ми цветной схемы сдуру не только загубили выход INTE, привели к тому, что команда DI, что есть в многих фирменных программах приводит к завису, но и сделали такой цвет несовместимым с базовым Специалистом, хотя всем ясно, что любые доработки должны быть совместимы (а тем более до такой степени, что вызывают улет программ).

Да, неприятно, что в реале запуск 8-ми цветной программы на Специалисте с моно или 4-х цветным адаптером приводит к улёту. Но это проблема только для идиотов, которым лень сделать схему сброса НП такой же как в РК86 по сигналу /WR процессора, а не отдельным программно управляемым сигналом.

Я не вижу необходимости ни детектировать цвет, ни вводить в игры вопросы типа "А у тебя не будет зависа, если эта программа использует 8 цветов?". Когда у пользователя 8-ми цветные игры будут улетать, он быстрее сделает себе правильный сигнал НП. Кстати, посмотрите, многие игры для XT, при старте задают вопросы о типе адаптера и никто не обиделся. Так, что проще всего ввести в игры вопрос при старте игры.

Сейчас все эмуляторы Специалиста не эмулируют ни бит PC4, ни INTE. В противном случае, в них по DI или в цветных программах происходил бы улёт. И так это надо и оставить.

И если уж так хочется детектировать 8 цветов, то вот Вам решение проблемы.

Программно нельзя определить наличие 8-ми цветов в схеме цвета, но зато я знаю как грамотно детектировать незанятость бита PC4 под сигнал начальный пуск, чего достаточно для того, чтобы быть уверенным, что при запуске 8-ми цветной программы не произойдёт улёт. А то, что пользователь не увидит цветов, если нет соответствующей цветовой приставки, то это его проблемы.

Для контроля сигнала НП надо сознательно вывести единицу на бит PC4, что отключит всё ОЗУ из адресного пространства и включит вместо него ПЗУ.

Для детектирования использования бита PC4 в качестве НП, разместим в ОЗУ по адресу 024B, следующую программу:



.
A024B: LD A,82H
LD (0FF03H),A
CPL
LD (0FF02H),A
A0254: RET


и сделаем CALL на адрес 24B.

При этом команда RET стоящая после команды LD (0FF02H),A, что выводит в PC4 единицу, расположена на адресе 0254. По включению в адресное пространство ПЗУ, на этом адресе оказывается подпрограмма C254, которая во всех разновидностях ПЗУ Специалиста одинакова: там записывается 82H по адресу FF03, что программирует весь порт C на вывод, делая PC4=0 и отключая тем самым ПЗУ.

Там такой код (когда ПЗУ включено с нуля):



.
A0254: LD A,82H
LD (0FF03H),A
RET


Таким образом, если ПЗУ включится вместо ОЗУ, то будут исполнены эти 3 команды, если же нет, то будет просто RET командой из ОЗУ. Если при возврате в регистре A содержится 82H, значит бит PC4 ППА занят на начальный сброс и 8-ми цветную программу стартовать нельзя.

Вышеприведённую программу можно сократить до 3-х команд (с'экономив 4 байта), если задать режим ППА, где порт C работает на ввод. При этом сигнал на выходе PC4 тоже станет единицей (висящий в воздухе TTL-вход является единицей).

Таким образом нет проблем.

Вообще полезно было бы программно включать ПЗУ с адреса 0, но только до адреса 8000, хоть битом PC4, хоть выходом INTE. Чтобы ПЗУ включалось не на всё адресное пространство, а только в области ниже 8000, достаточно двух диодов. Тогда можно иметь 32 кб ПЗУ и разместить в нём набор подпрограмм для GUI, кучу оконных экранных драйверов, разные DOS и другие резидентные программы. Тогда занятие выхода INTE хотя бы приносило пользу.

Полезно выделить этот вопрос о сигнале НП и борьбы с зависом при запуске 8-ми цветных программ на монохромном и 4-х цветном Специалисте в отдельную тему.

Pyk
06.03.2018, 23:19
Возможно обновлю свои конверсии игрушек, чтобы детектили.
Не надо детектить IMHO. Лучше 2 версии сделать при необходимости.

ivagor
07.03.2018, 07:19
У меня в основном спортивный интерес (хочу выкрутится и обойтись без добавления/замены файла пзу в эмуляторах). Старые версии игрушек (без детекта) в любом случае останутся.

Titus
07.03.2018, 16:47
Обновил версию эмулятора (в первом посте) до 0.15g.


Поддерживаются цветные режимы 4 и 8 цветов
Сканлинии теперь можно отключить
Описание новых режимов в первом посте
В архив добавлены две цветные игры (а некоторые из тех, что были, тоже стали цветными).

Не сделано:

ВВ55 все еще не обнуляет порты после записи в управляющий регистр. Т.к. нет тестов, проведенных на реале.

barsik
07.03.2018, 19:30
ВВ55 все еще не обнуляет порты после записи в управляющий регистр. Т.к. нет тестов, проведенных на реале.
Какие нужны тесты на реале? Могу что-то проверить на Z80.

В чём заключается неясность? При задании режима порта на вывод, на его выходах сразу возникают нули и они же оттуда и читаются..


Описание новых режимов в первом посте
Почитал описание клавиатуры. Не очень понял что там с клавишей <НР>. В любом случае нужна полноценная эмуляция или возможность её включить. Судя по тексту, у Вас там полная или частичная "химия" с перехватом входных точек, хотя тогда непонятно как работают игры с прямым доступом к матрице.


Если вы нажали комбинацию клавиш с Shift'ом, для которой у Специалиста есть клавиша без Shift'а, сперва Специалисту будет передано отпускание Shift'а (хотя вы его и держите), затем только через 6 кадров, когда Специалист поймет, что Shift отпущен, будет передан символ '@'.
Непонятная фраза.

Не понял тут, что значит термин "Специалисту будет передано" и как Вы узнаете, что "Специалист уже понял", что Shift отпущен? Куда передано? Передано в рег.А на выходе из подпрограмм опроса клавиш, или как положено, имитировано соответствующим битом порта при его чтении.

На всякий случай напомню как читается клавиатура. Очень простая подпрограмма опроса выдаёт код буквенного символа в нижнем регистре (т.е в диапазоне 40...5F). После выхода из опроса делается LD A,(PB) : AND 00000010B, и если получится 0 (что значит, что клавишу <НР> держат), то для символов с кодом более 40H и менее 80H делается XOR 20H (на самом деле прибавляется 20H, но грамотнее XOR), что переводит код в верхний регистр.

По поводу удобства на PC-клавиатуре. Я эту проблему решал в 90-тые в эмуляторе ОРИОНА. Сделал соответствие клавиш по латинским надписям. Остальные клавиши по положению на РК-клавиатуре. Получилось и понятно и привычно. И решил задачу полноценного использования PC-клавиатуры в эмуляторе в программах специально странслированных для работы в эмуляторе. Тогда совпадают вообще все надписи. Это достигается тем, что в программе определяется, что это эмулятор и тогда по таблице коды возвращаемые п/п-ммой F81B перекодируются.

Почему Вы клавишу TAB на PC-клавиатуре отдали под <ПВ>? Клавиша TAB должна быть клавишей <TAB>. Как иначе пользоваться редактором? А вот клавиша <ПВ> вообще, наоборот, совсем не нужна. Клавиша повтор была на антикварных ЭВМ (например на Apple-II первых моделей). Видимо А.Волков с какой-то рэтро-ЭВМ это и заимствовал.

В нормальных мониторах Специалиста и драйверах сделан нормальный автоповтор, отчего клавиша <ПВ> вообще не используется. Алгоритм автоповтора такой. Если клавишу нажать, то сразу же возвращается код (именно по нажатию, а не отпусканию). А если удерживать клавишу более 0.75 секунды, то начинается автоповтор, быстрая выдача кода клавиши с периодом в 0.15...0.20 секунды.


По поводу клавиатуры, у Специалиста проблема с отсутствием клавиши <Control> необходимой в CP/M. Тут есть два выхода. Если есть DOS с дисководом, то МГ-вход не нужен. Тогда, что более удобно, клавиша <Control> вешается туда (на PB0). Если же МГ-вход нужен, то в качестве <Control> приходится использовать клавишу <НР>.

Причём одновременно она же используется и в качестве <РУСЛАТ>. Тогда нажатие и отпускание <НР> меняет флаг RUSLAT драйвера. Если этот флаг выставлен, и нажата буквенная клавиша, то выдаются русские буквы КОИ-8 с кодами C0...FF. Если же удерживая <НР> нажать буквенную клавишу, то возращается код минус 40H, т.е <НР> при этом работает как <Control>. Но при этом неудобно вводить заглавные буквы, т.к клавиши SHIFT нет.

Pyk
07.03.2018, 20:41
barsik, на клавиатуре PC знак @ нажимается с шифтом, а на клавиатуре Специалиста - без. При нажатии Shift на клавиатуре PC в эмулятор передается это нажатие. Если потом нажимается "2" (@), то нужно сначала передать в эмулятор отжатие шифта, а уж потом саму "@". Titus говорит о том, что сразу это сделать не получается, нужна пауза. Похоже, что у меня из-за того же не работает как положено этот режим в "Специалисте", хотя в РК-86, например, все отлично.

Titus
07.03.2018, 22:58
Почитал описание клавиатуры. Не очень понял что там с клавишей <НР>. В любом случае нужна полноценная эмуляция или возможность её включить. Судя по тексту, у Вас там полная или частичная "химия" с перехватом входных точек, хотя тогда непонятно как работают игры с прямым доступом к матрице.
Никакого перехвата нет.

Приведу образный пример, как это все работает.
Есть настоящая матрица специалистовской клавиатуры. Допустим, за ней сидит оператор по имени Петя. Рядом сижу я с PC-шной клавой. Я беру и нажимаю Shift + '2'. Петя видит это и нажимает на настоящей специалистовкой матрице ту комбинацию, которая нужна для получения символа '@'. Вот и все. Нет никакого перехвата. Есть умный виртуальный Петя, который делает нужные действия, для того, чтобы получить на специалисте то, что нажато на PC-шной клаве. Петя это машинистка-секретарша. А я директор, который диктует документ)

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


Какие нужны тесты на реале? Могу что-то проверить на Z80
Нужен человек с реальный классическим Специалистом, чтобы имело смысл писать тест.

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


Почему Вы клавишу TAB на PC-клавиатуре отдали под <ПВ>? Клавиша TAB должна быть клавишей <TAB>.
Клавиши 'TAB' на классическом Специалисте вообще нет.

barsik
08.03.2018, 03:00
barsik, на клавиатуре PC знак @ нажимается с шифтом, а на клавиатуре Специалиста - без. При нажатии Shift на клавиатуре PC в эмулятор передается это нажатие. Если потом нажимается "2" (@), то нужно сначала передать в эмулятор отжатие шифта, а уж потом саму "@".
Это пояснило о чём речь.

Т.е речь идёт не о лобовой эмуляции кнопок, а о "химии", чтобы совпадали надписи на клавишах. При лобовой эмуляции кнопок таких проблем нет. И как упомянуто выше, я проблему соответствия надписей решал со стороны 8-ми разрядки, а не со стороны PC. Да и проблема несоответствия надписей важна только для текстовых редакторов, а их всего несколько.

Клавиша <НР> ROM-BIOS-ом вообще отдельно не контроллируется (а только при нажатиях клавиш на основном поле). Но есть драйвер отдельно контроллирующий <НР>, где на саму эту клавишу возложена функция смены режима клавиатуры (аналогично русификаторам на PC). Но всё-равно этот нюанс не проблема, т.к лишь приведёт при вводе '@' к смене режима клавиатуры.


Клавиши 'TAB' на классическом Специалисте вообще нет.
В оригинальном журнальном Специалисте клавиш <F1>...<F5>, <АР2>, <СТР>, <ТАБ> не было, что делало невозможным использование системных программ от РК86. Потому вскоре Зверков, опубликовал улучшенную версию "загрузчика" в которой были изменены коды клавиш. Клавишу <ТАБ> Зверков добавил в неиспользуемом узле матрицы. А клавишу <Control> Зверков программно ввести не смог, т.к тут нужны апп.доработки.

В журнале МК 03.1987 стр.37 другие названия клавиш, т.к это для волковского загрузчика, который с тех пор никто не использует. У меня клавиши верхнего ряда называются F1...F9, NOINV, INV, СТР, АР2. И клавиша <ТАБ> на моей клавиатуре тоже есть и как и положено она возвращет код 9.

Хотя п/п-мы ввода C337, C803, C81B вводят, но п/п-ммы вывода C037 и C809 не обслуживают код TAB. Вот здесь (http://zx-pk.ru/threads/4800-spetsialist-raznoe.html?p=953047&viewfull=1#post953047) я недавно положил редактор, в котором всякий может убедиться, что клавиша <TAB> существует и работает. В данном редакторе шаг табуляции не 8, а 4, но так принято на 8-ми разрядках, потому что удобнее для ассемблера.


Приведу образный пример, как это все работает.
Этот образный пример вообще ничего не поясняет.

В моём MSDOS эмуляторе ОРИОНА эмуляция матрицы делается так. Перехватываются Z80-команды чтения портов ППА-клавиатуры. Надо перехватывать не только команду LD A,(mem_port), но и LD A,(RR), а для РК86 и IN A,(io_port).

Как только программа читает порт ППА, то смотрится, во-первых, в какой режим запрограммирован ППА, затем смотрится, что за байт записан в другой порт ППА. И если читаемый порт настроен на ввод, другой порт на вывод и в другом порту есть "бегущий 0" по какому-то разряду, то смотрится нажата ли клавиша на PC. И если есть нажатая PC-клавиша и она расположена на матрице эмулируемой клавиатуры по той линии где есть "бегущий ноль", то по таблице берётся возвращаемый код, иначе FF. Эмулируются и двойные нажатия.

Точно также работают и контроллеры PS/2 клавиатуры на Atmega от vinxru.


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

Вы, похоже, собираетесь проверять нелегальную работу с клавиатурой, когда на порты выдаётся не 0, а сочетание нулей и единиц и нажимаются сразу две клавиши, что приводит к замыканию ППА-выхода с нулём на ППА-выход с единицей (т.к диодов нет).

Но зачем это надо? Нет программ занимающихся вредительством, да и сжечь ППА не получится, его разработали не идиоты. Кроме того это делать бессмысленно, т.к у всех разные резисторы привязки, отчего на разных машинах будут разные результаты.

CityAceE
08.03.2018, 03:49
Может быть на одних ВВ55 игра работала, на других нет?
Всё именно так и есть! Подтверждаю! Я ВВ55 на своём Специалисте поставил в "кроватку" уж не помню почему, то ли горели они, то ли ещё почему-то. Так вот именно для SkyScraper приходилось подбирать ВВ55, потому что игра работала далеко не с каждой исправной микросхемой. У нас с другом ситуация была идентичной, и мы ещё недоумевали как такое может быть. И вот теперь спустя столько лет, загадка разрешена!

Titus
08.03.2018, 06:27
Этот образный пример вообще ничего не поясняет.

В моём MSDOS эмуляторе ОРИОНА эмуляция матрицы делается так. Перехватываются Z80-команды чтения портов ППА-клавиатуры. Надо перехватывать не только команду LD A,(mem_port), но и LD A,(RR), а для РК86 и IN A,(io_port).

Тогда уж не знаю, как вам обьяснить)
Одно скажу - никаких команд у меня нигде не перехватывается. Все делается только на уровне матрицы клавиатуры.

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


Вы, похоже, собираетесь проверять нелегальную работу с клавиатурой, когда на порты выдаётся не 0, а сочетание нулей и единиц и нажимаются сразу две клавиши, что приводит к замыканию ППА-выхода с нулём на ППА-выход с единицей (т.к диодов нет).
Да, и это тоже. Но обещаю, что в тесте крупными буквами будет написано: 'Это тесть потенциально может навредить вашему ВВ55'.

Titus
08.03.2018, 11:24
Почитал тему про клон Специалиста под названием 'Микрон-2'. Там говорится, что обращение к портам ВВ55 может быть так же по In/Out.
А в классическом Специалисте куда будет обращение по In/Out? И что даст чтение порта In, если он никуда не ведет?

barsik
08.03.2018, 14:22
Почитал тему про клон Специалиста под названием 'Микрон-2'. Там говорится, что обращение к портам ВВ55 может быть так же по IN/OUT
Таких программ нет. А если кто-то и сделал такую программу, то следует его найти и оторвать руки.

Потому что, хотя для простоты дешифратор ИД4 в базовой схеме тратит на ППА участок в целых 2 кб, но ROM-BIOS А.Волкова обращается к ППА не по адресу F800, а по адресу FF00. Что однозначно свидетельствует, о том что для расширения области В/У предполагается расширять область F800...FFFF делением дешифратором на 8 участков с шагом в 100H.

Но т.к официального стандарта на область В/У не опубликовали, и из-за того, что для журнального ROM-BIOS тратится только 4 кб, то остальные 2-х килобайтовые чип-селекты пользователь может тратить как угодно, в т.числе не только на ПЗУ РФ2, но и для портов, например для ППА принтера или ВИ53. Это плохой вариант, хотя и экономит дешифратор.

У меня на большинстве плат Специалиста был распаян дешифратор делящий область F800 на 8 участков. И не встречал программ, что не работали бы из-за этого. А если бы такие программы были, я бы их исправил.

Конечно, пользуясь тем, что в отсутствии дешифратора области В/У, ППА адресуется во всей области в 2 кб, подлый вредитель, которому ещё не оторвали руки, может использовать команды OUT, считая, что ППА стоит на F800. Тогда естественно:

OUT (F8),A - попадает в PA,
OUT (F9),A - попадает в PB,
OUT (FA),A - попадает в PC,
OUT (FB),A - попадает в РУС ППА.

Однако эти команды давно зарезервированы под порты. Причём некоторые эти порты используются именно с адресацией по OUT. Более короткая команда OUT (F8),A удобнее, чем LD (F800),A для системных регистров.

Запись в порт F8 (или адрес F800) используется для коммутации в окне ПЗУ C000...DFFF 8-ми килобайтовых участков из ПЗУ 27256 или 27512, что удобно для расширения ROM-BIOS. Бит D7=1 в этом порту совсем отключает ПЗУ, делая FULL RAM 62К в банке 0 (в других банках и без того сплошные 62К).

Запись в порт F9 (или адрес F900) используется для коммутации банки при расширении ОЗУ. Это совместимо с ОРИОНОМ, как аппаратно, так и программно. Потому команда OUT (F9),A переключает банки. Если текущей установлена доп.банка 1...15, то процессору доступны сплошные 62 кб. Это делает такую архитектуру более выгодной, чем в ОРИОНЕ, где банки по 60К.

Кстати, также расширяли ОЗУ в теме "РК86 на 8085", чтобы использовать ORDOS ОРИОНА. Это логично, т.к для ОРИОНА есть многобанковое ПО и глупо несовместиться. Потому, когда я расширил ОЗУ, не пришлось переписывать DOS, в которых есть RAM-диск. Чтобы заменить РУ5 на РУ7 и поиметь 256 кб достаточно 10 минут труда. К сожалению, при этом и ОЗУ цвета приходится делать на РУ7. А при РУ5-тых удобно напаивать их вторым этажом.

Если Вы сделаете в эмуляторе расширение ОЗУ и ПЗУ портами F8 и F9 и поставите ROM-диск по адресу FE00, то для этого есть программы.

Во вложении - тест доп.ОЗУ любого размера и конфиг-файл на 512 кб для эмулятора EMU80. Имея доп.ОЗУ на Специалисте, можно использовать дисковое ПО для разных DOS, не имея дисковода или винчестера.


что даст чтение порта IN, если он никуда не ведет?По IN не читал, но по LD, если читать по адресу незадействованного чип-селекта, то у меня почему-то читается 82H. Т.к у меня нет прерываний и соответственно резисторов привязки шины на +5В. Хотя, возможно, это в разных машинах по разному.

TomaTLAB
08.03.2018, 16:15
Т.к у меня нет прерываний и соответственно резисторов привязки шины на +5В.
Вот уже не первый раз это от Вас слышу. Откуда такая уверенность, что подтяжка на ШД нужна только при наличии прерываний?
Для прерываний она нужна, если их делать по-извращенски :)
Однако, подтяжку ставят и при наличии контроллера, и при неиспользовании прерываний вовсе.
Подтяжка шины выполняет еще пару важных функций. В том числе, и чтобы не читалась погода на марсе из "ничейных" адресов.

barsik
08.03.2018, 17:11
Откуда такая уверенность, что подтяжка на ШД нужна только при наличии прерываний?
Оттуда, что не встречал этого, ни в РК86, ни в Специалисте, ни в ОРИОНЕ, - значит совершенно незачем впустую грузить шину. С чего Вы взяли, что грузить шину полезно? И без разницы, что читается с шины, когда все устройства шины неактивны. И полезнее не подтяжка шины на +5В, а наоборот утяжка шины на землю через резисторы 300 Ом. Это повышает надёжность.


Для прерываний подтяжка нужна, если их делать по-извращенски.Это претензии к сэру Клайву Синклеру. Но вроде на это никто не жаловался. По-моему бОльшим извращением является установка контроллера прерываний, если прерывание всего одно.

Для прерываний в КР580 лучше всего использовать ВК28, подав через резистор 1 кОм на его выход INTA напряжение +12 вольт. Вот такая у него странность. Тогда он начинает обслуживать прерывания, выдавая процессору код RST 38 в цикле обработки прерывания. И без всяких резисторов привязки.

ВК28, а ещё лучше ВК38 это мои любимые микросхемы для Специалиста. Они позволяют разогнать Специалист до 4 МГЦ. А ОРИОН на КР580, не имея ВК28, несмотря на всю его буферизацию не может вытянуть даже 3 МГЦ.

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

Кстати, по поводу прерываний при КР580 (http://zx-pk.ru/threads/28929-preryvaniya-im2-v-spetsialiste-na-kr580.html?p=953604&viewfull=1#post953604).

Titus
09.03.2018, 10:11
Какие есть точки входа в классическом ПЗУ Специалиста для печати символа или сообщения?
Такие, чтобы работали на всех прошивках и во всех случаях. Т.е. самые стандартные.

barsik
09.03.2018, 10:31
Прошивок ПЗУ было много, в основном туфтовые, т.к совместимые с журнальным стандартом лишь частично. Программы рассчитаны в основном на монитор Орлова и загрузчик Зверкова. Игры чаще используют только загрузчик, т.к монитора C800 может не быть. А системные программы требуют обязательного наличия монитора Орлова или 100% совместимого.

Все входные точки, если они хоть один раз были в журнале документированы являются стандартными. Но в ходе эволюции возникли стандартные, но недокументированные входные точки, т.к программы идиотов лезли внутрь ПЗУ и на недокументированные точки. Это затруднило разработку 100% совместимого ленинградского монитора, но задача была решена. В частности ленинградский монитор сохранил не только 18 документированных, но и 20 недокументированных, но стандартных по факту использования входных точек монитора Орлова.

Надо бы набрать в файл описание всех входных точек Специалиста, оно у меня только на бумаге. Ранее было лень, понимая, что это никому не надо, а кому надо тот и без того знает.

C037 - ZCOUT. Вход: С - символ. Все регистры и AF сохраняются. Символ выводится по XOR с экраном. Потому, если на экране уже что-то есть, то надо почистить знакоместо выдав 7F и 08. В ленинградском мониторе много отличий, например, в отличие от волкова-зверкова, есть ролик экрана, есть эхо-печать на принтер (по флагу принтера), вход векторизован, т.е можно загрузить драйвер другого шрифта, есть переключения по НР+Fn и т.п. Не помню обрабатывает ли зверков упр.код ESC+Y, но в ленинградском мониторе да. Других искейп-кодов нет. Включить/выключить инверсию - коды 8B, 8C. Но пользоваться инверсией не очень удобно, т.к выводится только 8 линий знакоместа высотой 10 линий.

C809 - MCOUT. Выводимый символ также в регистре C. Этот вход работает так. Если код символа больше или равен 20H, то предварительно знакоместо очищается, затем делается JMP C037. Все регистры сохраняются.

C438 - ZMSSG. Вход: HL - адрес начала текста. Стоп байт 00. Выход: HL указывает на байт 00, портятся регистры AF и C. Вывод происходит через вход C037, потому не стоит выводить на нечистый экран.

C818 - MMSSG. Аналогично C438, но текст выводится с очисткой знакоместа.

А вообще достаточно почитать описание ПЗУ РК86, т.к входы C803...C833 в мониторе Орлова работают почти идентично стандартным подпрограммам РК86 F803...F833, описанными в ж.Радио 10.1986. Есть конечно, отличия. Самая фатальная из которых то, что в МГ-подпрограммах перепутаны регистры A и C, т.к Орлов на входах LDBYTE/SVBYTE C806 и C80C поставил просто JMP на C377 и C3D0.

Titus
09.03.2018, 11:05
Я так понял, что если я хочу, чтобы программа работала в том числе на самом базовом Специалисте (только с загрузчиком Зверкова), то мне можно использовать только C037 и C438. А все, что выше C800 относится уже к Монитору, которого может не быть.

barsik
09.03.2018, 11:23
все, что выше C800 относится уже к Монитору, которого может не быть.
Теоретически это правильно. Может случиться такая ситуация, если кто-то ярый фанат "классики" из 1985 года и использует оригинальный монитор А.Волкова, который тоже прошивается в ПЗУ C800, но не имеет РК-совместимых входов C803...C833. Или же, если кто-то слишком беден, чтобы поставить вторую РФ2 и использует монитор загружаемый в ОЗУ по сбросу. Такое часто встречалось в 80-тые годы. Но сейчас вряд-ли кто-то не поставит вторую РФ2, т.к перестанет работать часть системных программ.

Кстати, ещё до Орлова был монитор от КООП SP-580 который имел входные точки F803...F833 на 100% совместимые с РК86, но этот монитор стоял на адресах F800...FFFF (а ППА клавиатуры FF00 отсюда было перенесёно куда-то ещё). Это позволяло без переделки использовать программы от РК86, но увы, стандарты задаёт публикация в журнале, а не наличие программы.

При выводе на C037 есть один нюанс. В оригинальном и зверковском загрузчике эта подпрограмма не делает ролика при ВК в последней строке, а переходит на начало экрана. А в ленинградском мониторе в загрузчик умещён и ролик экрана, потому там п/п-ммы C037 и C809 в плане ролика в последней строке одинаковы, а в орловском нет. Т.е п/п-мма C037 в НЕленинградском мониторе неполноценна. Проблема ролика была исправлена в орловском мониторе, там п/п-мма C809 уже делает ролик.

Потому, если в программе нужен ролик экрана и эта программа должна работать не только на ленинградском мониторе, но и на журнальном, то надо пользоваться входами C809 и C818. Потому-то системные программы, где ролик необходим, и пользовались именно входами монитора, а не загрузчика.

Titus
09.03.2018, 11:52
Или же, если кто-то слишком беден, чтобы поставить вторую РФ2 и использует монитор загружаемый в ОЗУ по сбросу. Такое часто встречалось в 80-тые годы.
Мы в радиокружке грузили монитор с кассеты. Это было в 89-90-м году примерно.

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

Какие управляющие символы (позиционирование в нужное место экрана, очистка экрана и т.д.) есть в процедурах C037 - ZCOUT и C438 - ZMSSG?

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


Потому, если в программе нужен ролик экрана и эта программа должна работать не только на ленинградском мониторе, но и на журнальном, то надо пользоваться входами C809 и C818. Потому-то системные программы, где ролик необходим, и пользовались именно входами монитора, а не загрузчика.
Мне не нужен ролик, мне нужна совместимость с любыми прошивками. И с отсутствием Монитора по адресу C800.

barsik
09.03.2018, 12:21
Какие управляющие символы (позиционирование в нужное место экрана, очистка экрана и т.д.) есть в процедурах C037 - ZCOUT и C438 - ZMSSG?
Я посмотрел исходник зверковского загрузчика и орловского монитора (они, увы, есть только на бумаге) и обнаружил, что ни там, ни там, не обрабатываются вообще никакие искейп-коды. Код 1BH игнорируется. Это очередная ошибка Орлова, т.к стандартная подпрограмма F809 в РК86 обслуживает позиционирование по ESC+Y. Так что, если нужно позиционирование по ESC+Y, то пользуйтесь ленинграским монитором.

А в журнальных ПЗУ обслуживаются только коды: 0D, 0A, 18, 08, 19, 1A, 0C, 1F.

Очистку выполняет код 1F, хотя в CP/M это делается кодом 0C. А код 0C здесь HOME - курсор в левый верхний угол. Если позицию курсора надо сохранить, то для очистки делают CALL C010, это стандартный вход CLS, регистров не портит. В крайнем случае можно позиционировать курсор понемногу, кодами 08 - влево, 18 - вправо, 19 вверх, 1A - вниз.

Ха... в этих ПЗУ даже управление инверсией не обслуживается. Вот так облом. Это что же получается, что чтобы включить инверсию символов, надо нагло лезть в служебные ячейки INVERSE (8FFA/8FFB) и вручную заносить туда коды FF. Вообще драйвер вывода символов в Специалисте очень неудобный. Особенно раздражает, что нет нормальных координат позиции курсора POSX и POSY, как есть в РК86 и ОРИОНЕ. А также свой фонт замучишься загружать, хотя это и предусмотрено.

В общем, похоже, для позиционирования с орловским монитором Вам придётся вручную подставлять координаты курсора в ячейки 8FFC (V_CUR: она 0...FF) и 8FFD (H_CUR: она 0...BF). V_CUR это позиция нижней линии знакоместа на экране (т.е содержимое регистра L при экранной адресации через HL), а H_CUR это гориз.позиция сдвинутая влево на 3 разряда.

Так, что лучше пользоваться ленинградским монитором, он на порядок лучше.

fifan
09.03.2018, 14:58
Проверено экспериментально на играх - выходы цвета ВВ55: 10, 11 и 13 соответственно R, G, B.

Titus
09.03.2018, 15:09
Проверено экспериментально на играх - выходы цвета ВВ55: 10, 11 и 13 соответственно R, G, B.
Так у меня и сделано.

barsik
09.03.2018, 18:14
Чтобы позиционировать курсор для Специалиста с убогим ROM-BIOS, не поддерживающим позиционирование искейп-кодом ESC+Y, используйте вот такие процедуры. В них на входе нормальные человеческие координаты (0...63, 0...24). Удобно объединить их в одну подпрограмму POS_HL передавая координаты X,Y в регистрах HL.



.
V_CUR EQU 8FFCH ; верт.коорд.курсора
H_CUR EQU 8FFDH ; гориз.коорд.курсора

SET_V: ADD A,A
LD C,A
ADD A,A
ADD A,A
ADD A,C
ADD A,8
LD (V_CUR),A
RET

SET_H: LD C,A
ADD A,A
ADD A,C
LD (H_CUR),A
RET

TomaTLAB
09.03.2018, 18:53
Оттуда, что не встречал этого, ни в РК86, ни в Специалисте, ни в ОРИОНЕ,
Нашли "эталон"! Три почти эталонно безграмотно спроектированных машинки. Нет, оно понятно почему и зачем, но тем не менее.

- значит совершенно незачем впустую грузить шину. .... И полезнее не подтяжка шины на +5В, а наоборот утяжка шины на землю через резисторы 300 Ом. Это повышает надёжность.
2,4В / 300Ом = 8мА! Тут ВА86 с его вытекающим током 5мА пуп надорвет от земли отрывать. При том, что втекающий у него 32мА, а подтяжка 4,7...10кОм как правило (на длинных шинах может и Ом до 300 уменьшить придется).

С чего Вы взяли, что грузить шину полезно? С того, что болтающаяся в воздухе шина несколько меня коробит :)

Titus
09.03.2018, 19:56
Нашли "эталон"! Три почти эталонно безграмотно спроектированных машинки. Нет, оно понятно почему и зачем, но тем не менее.
Расскажите, почему. Очень интересно)

TomaTLAB
09.03.2018, 20:20
Одним словом - радиолюбительские. То есть делаем из того что есть под рукой, экономя на "спичках". Времена такие были, наверно.
Часто загоняя в предельные режимы, полагаясь на "особые" свойства того или иного элемента.
В общем куча "грязных хаков", предмет особой гордости авторов :)
Отсюда напр. конденсаторы в несколько пик. на информационных выводах для затяжки фронтов и подавления "иголок".
В промышленных тоже встречается, и по той же примерно причине.
Какая нибудь ерунда могла оказаться остродефицитной и приходилось искать замену (или вовсе не устанавивать).

Отсутствие тех же подтяжек на шинах, буферизации шин, ну и прочие мелочи.
Вот берем справочник "Микропроцессоры и микропроцессорные комплекты..." под ред. Шахнова стр.169 п.3.15. Рекомендации по применению:
"... для увеличения быстродействия системы тристабильные линии шины адреса и данных рекомендуется подключать к шинам +5В через резисторы сопротивлением 2,2кОм..."

Орион-128 еще так, более-менее, хотя тоже не без недостатков.

Вот "Ириша", например, спроектирована "по учебнику", как говорится.

barsik
10.03.2018, 07:44
Вот ИРИША, например, спроектирована "по учебнику"
Да ИРИША грамотно буферизована, что доказывает опыт её турбирования. Но в ней сдуру понаставили, так называемых, терминаторов шины на выходах всех буферов. Очевидно, что от этих терминаторов (это резисторы 330 Ом на +5В и 470 Ом на землю) никакой пользы на такте 1.77 МГЦ. Такая мода пришла из 50-тых и 60-тых годов, когда в компьютерах модули были большими и потому соединялись длинными проводами. В схемах других компьютеров, начиная с конца 70-тых, Вы этого не найдёте.


ОРИОН [сделан] еще так, более-менее [грамотно], хотя тоже не без недостатков
Наоборот, ОРИОН по буферизации более безграмотен. Если Вам надо его турбировать, приходится перепаивать входы ПЗУ и 155 ТМ7 к процессору до буфера шины данных, чтобы разгрузить шину.

О том, грамотно или неграмотно разработан комп, надо судить по практике, а не по учебнику. О том какой запас надёжности можно узнать только по опыту турбирования. А факты таковы, что ОРИОН с ВА86 едва тянет такт CPU в 2.75 МГЦ, РК86 без периферии работает при такте 3 МГЦ, ИРИШУ я использую с тактом CPU в 2.7 МГЦ (но без сбоев тянет и такт 3.3 МГЦ !), а Специалист с водяным охлаждением тянет и 4 МГЦ (без охлаждения только одну минуту).

Так вот, чтобы выжать максимум скорости надо разгружать шину именно по току при 0. Т.к значительно бОльший ток TTL-входы жрут при нуле, а не при единице. Потому притягивая шину к земле резисторами (я ставил 330 Ом) мы облегчаем нагрузку выходов, а не нагружаем их, как Вы написали. Это я проверил на практике, а учёные в книгах могут писать всё, что угодно. Не призываю Вас выбросить учебники и изучать классиков марксизма-ленинизма, но тезис К.Маркса, что практика критерий истины - верен до сих пор.

Titus
20.03.2018, 02:43
Обновилась версия эмулятора.

Теперь поддерживается прибалтийский клон Специалиста под названием Eureka.
Помимо стандартного черно-белого графического режима 384x256 точек, в этом клоне есть режим 192x256 точек, 4 цвета.
Под данный режим есть целых две игры - Lode Runner и Tetris&Piton. Кстати, Тетрис очень неплохой и динамичный.

Еще изменения:


Немного изменена раскладка клавиатуры. Теперь все клавиши F1-F9 на своих местах. Клавиша ПВ уехала на NumLock, а также появились TAB (на своем месте) и АР2 (на ESC).
Автоматически распознается и переключается режим Специалист/Eureka в зависимости от расширения файла, кинутого в эмулятор. Расширения .rk и .rke - это Eureka, а все остальные - Специалист.
Появилась возможность загружать программы из бейсика, а так же из других программ и редакторов. Для этого достаточно кинуть файл в эмулятор удерживая клавишу LCtrl. После чего загрузить в нужной программе (например, в бейсике) средствами этой программы. Например, кидаем интерпретатор бейсика в эмулятор, затем программу на бейсике (можно не удерживая LCtrl, т.к. бейсик-программы распознаются автоматически по трем 0xD3 в начале файла). После чего пишем MLOAD (в стандартном бейсике) или CLOAD"" (в бейсике Микроне) и программа загрузится. После чего пишем RUN и запускаем ее на выполнение.


Чего интересненького можно загрузить из пакета программ для Eureka:


Конечно же цветные игры Tetris&Piton и Lode Runner.
Демонстрацию на бейсике, а так же два пакета программ для бейсика (сперва кидаем интерпретатор бейсика в эмулятор, затем программу, затем пишем CLOAD"", затем RUN). Кстати, F4 останавливает выполнение программы на бейсике.


Чего не работает:


Не работает игра Zoo. Не реагирует на нажатие клавиши 'пробел'. Кроме того, прежде чем загрузить Zoo, нужно бросить в эмулятор программу Monitor.rks, т.к. без нее Zoo вообще не запустится.

ivagor
20.03.2018, 08:37
Грубый хак zoo под эврику в EmuStudio. В начале, при демонстрации, жмем например Э/'/" и переходим к игре.

Titus
20.03.2018, 08:55
Грубый хак zoo под эврику в EmuStudio. В начале, при демонстрации, жмем например Э/'/" и переходим к игре.
Это все хорошо, но зачем? Есть же оригинальный Zoo под специалист, который работает.
Меня интересует, почему версия для Eureka не работает)

zx_
20.03.2018, 11:36
в этом клоне есть режим 192x256 точек, 4 цвета.
Под данный режим есть целых две игры - Lode Runner и Tetris&Piton

и как его в железе реализовать елки ?

Titus
20.03.2018, 11:56
и как его в железе реализовать елки ?
Это вопрос к авторам Eurek'и)

ivagor
20.03.2018, 13:42
Меня интересует, почему версия для Eureka не работает)
Без встроенного отладчика и исходников сложно сказать. Вернее нужно потратить заметно больше времени, чем с исходниками.
Я бы поставил или на неточность установки флага(ов?) командой ora a (в 1 очередь стоит проверить флаг знака) или на rm.
Судя по эксисайзеру с флагами в EmuStudio на данный момент все плохо.
Хотя может проблема с клавиатурой, но вероятность имхо меньше.


и как его в железе реализовать елки ?
В руководстве есть схема.

Titus
20.03.2018, 14:21
Судя по эксисайзеру с флагами в EmuStudio на данный момент все плохо.
Потому что пока что это Z80 быстренько переделанный в 8080. Чисто сделан флаг четности для всех операций, а так же что-то там сделал с флагами для сдвигов. Больше ничего не менял.
А, ну еще недокументированные команды ввел вместо JR и прочих.

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

Вот версия с примитивным отладчиком. Причем, с мнемониками от Z80, т.к. мнемоники 8080 для меня нечитабельны.

F8 - выход в отладчик.

В отладчике:
Enter - шаг
j nnnn - переход на адрес nnnn
r nnnn - запуск с точкой останова nnnn
f0 - выполнить один фрейм
m0 - сохранить дамп памяти
d nnnn mmmm - дизассемблировать с адреса nnnn по mmmm

ivagor
20.03.2018, 14:43
При переходе из отладчика к окну отображения похоже имитируется нажатие Enter. Пару раз удалось этого избежать, но я не понял как и больше не могу повторить.

Titus
20.03.2018, 15:26
При переходе из отладчика к окну отображения похоже имитируется нажатие Enter. Пару раз удалось этого избежать, но я не понял как и больше не могу повторить.
Очевидно, клавиши, нажатые в отладчике захватываются и обработчиком клавиатуры эмулятора. Поэтому последняя нажатая клавиша в отладчике вполне может перенестись на окно эмулятора.

ivagor
20.03.2018, 15:35
Про команды был неправ. Все же проблема в ВВ55 (все та же, надо обнулять при установке режима).

Titus
20.03.2018, 16:14
Про команды был неправ. Все же проблема в ВВ55 (все та же, надо обнулять при установке режима).
Тогда опять же необходимо подождать, пока будут тесты, для сравнения с реалом.

barsik
20.03.2018, 17:13
ну еще недокументированные команды ввёл вместо JR и префиксов
Прошу огласить весь список.

В моём эмуляторе ОРИОНА на КР580 для MSDOS тоже обслуживаются недокументированные команды КР580. И есть одна программа ОРИОНА, которая защищается от модификаций с помощью недокументированных команд КР580. Так вот она не работает ни в моём эмуляторе (который тоже, кстати, получен из эмулятора Z80, т.к исходник для КР580 погиб в 2000), и не работает ни в EMU, ни в EMU80 (хотя возможно я сдуру просто не знаю как в этих эмуляторах включить обслуживание недокументированных кодов).

Titus
20.03.2018, 17:34
Прошу огласить весь список.

Брал вот отсюда:


Can anyone confirm this rumor:

I've been told that Intel 8080 CPU supports these undocumented opcodes - is it true?

08h, 10h, 18h, 20h, 28h, 30h, 38h - NOP
0CBh - JMP
0D9h - RET
0DDh, 0EDh, 0FDh - CALL

Titus
23.03.2018, 05:37
Кстати, 'Adskok' у меня в эмуляторе тоже не работает)

ivagor
23.03.2018, 08:16
Если заранее выполнить (например в emu) стартовые выкрутасы адскока, запаковать и сохранить, то результат работает в EmuStudio. К сожалению у меня не хватило терпения протрассировать стартовую процедуру в отладчике EmuStudio, чтобы увидеть точное место проблемы.

Titus
23.03.2018, 18:20
Обновил версию эмулятора.


Теперь из бейсика и прочих программ использующих стандартную точку входа 0xC3D0, можно записывать файлы в образ кассеты. Это происходит автоматически. Файл будет называться SaveFile.rks.
Оставил активной клавишу F8 (выход в отладчик).
Заменил глючный бейсик на тот, которым пользовался в радиокружке. Он поддерживает дополнительные графические команды, опубликованные в MK 88'6

Теперь записывать свои программы из бейсика стало чрезвычайно просто.
Пишете программу, и время от времени набираете MSAVE. И все! Никаких сложностей, файловых реквесторов и прочей бухгалтерии.

p.s.: Теперь я смогу найти свои тетрадки с бейсиковыми программами времен радиокружка, набить их в эмуляторе и записать. Это радость)

MacBuster
23.03.2018, 18:53
Файл будет называться SaveFile.rks.
Он дополняется или перезаписывается каждый раз?

Titus
23.03.2018, 19:31
Он дополняется или перезаписывается каждый раз?
Перезаписывается.

Titus
23.03.2018, 21:31
p.s.: Теперь я смогу найти свои тетрадки с бейсиковыми программами времен радиокружка, набить их в эмуляторе и записать. Это радость)
Покопался в тетрадках, программы под Специалист не нашел) Печалька) Ну и ладно)

hobot
23.03.2018, 22:18
Заменил глючный бейсик на тот, которым пользовался в радиокружке.
описание языка есть где-то?

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


Покопался в тетрадках, программы под Специалист не нашел)
а для УК-НЦ есть что нибудь забавно - историческое из тех времён ? Любопытство )

Titus
23.03.2018, 22:26
описание языка есть где-то?
В том же номере МК, на который я указал.

Для УК-НЦ были какие-то наброски, но ничего интересного особо)
Хотя, был где-то листинг моей экзаменационной работы по информатике (в 11 классе), что-то типа расчет траектории полета снаряда на бейсике. С рисованием траектории.
Если найду, то можно вбить.

hobot
23.03.2018, 23:31
Хотя, был где-то листинг моей экзаменационной работы по информатике (в 11 классе), что-то типа расчет траектории полета снаряда на бейсике. С рисованием траектории.


Никто на УК-НЦ полновесный вариант так и не набил, хотя многие порывались )
Но как дело доходило до ИИ всё стопарилось сразу )

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

marinovsoft
14.04.2018, 10:06
Как из загрузчика выйти в монитор? На версии 0.15i у меня не удается это сделать. На самой первой выложенной здесь версии нажимаю ESC, или любую Fxx + Enter - все работает, а на 0.15i - нет.

Titus
14.04.2018, 12:30
Как из загрузчика выйти в монитор? На версии 0.15i у меня не удается это сделать. На самой первой выложенной здесь версии нажимаю ESC, или любую Fxx + Enter - все работает, а на 0.15i - нет.
Думаю, что это связано с тем, что сейчас перехватывается функция 'ввод байта с магнитофона' $C377, и загрузчик сразу переходит в режим загрузки, и не реагирует на клавиши.

Titus
10.05.2020, 08:51
Исправил работу порта ВВ55. Спасибо ivagor'у за подсказку.

Добавил в первый пост исправленную версию, а также прекрасный порт игры Exolon от ivagor.

hobot
10.05.2020, 12:00
А вот другой (он есть в архиве) называется Пещера, и он отличается. В нем можно стрелять не в стены, а в чертиков. И сами чертики ведут себя гораздо более интеллектуально.
Именно в нее я заигрывался в детстве в радиокружке.
В той версии, что в архиве, всего один лабиринт. Но есть версии, где их много. Просто пока не нашел такую, а какую находил, она была немного битая, поэтому не выкладываю.

Кидаю Peshera.rks в окошко последней версии - появляется какой-то не дорисованный уровень лестницы
и кирпичи, но размера явно не LANDовские - всё какое-то гигантское, инверсия непривычно наезжает слева
и всё. Как поиграть?
Эмулятор напрочь не "слышит" кнопки "пробел" и стрелки курсора , а может и ещё какие клавиши - это норм?

В эмуляторе ощущение что клавиатура "подыхает", вырубаешь его и прямо
"уф! реальность - ты прекрасна! "

Titus
10.05.2020, 12:47
Кидаю Peshera.rks в окошко последней версии - появляется какой-то не дорисованный уровень лестницы
и кирпичи, но размера явно не LANDовские - всё какое-то гигантское, инверсия непривычно наезжает слева
и всё. Как поиграть?
Эмулятор напрочь не "слышит" кнопки "пробел" и стрелки курсора , а может и ещё какие клавиши - это норм?

Пещера запускается, если нажать клавишу 1, 2, или 3. Это выбор скорости игры.
Управление в игре - цифровые клавиши. Но удобнее на дополнительной цифровой клавиатуре.

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

Из журнала 'Моделист-Конструктор' 09-1989
https://pic.maxiol.com/images2/1589103936.1504841820.01.png