Исходники или дизассемблированный монитор специалиста

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
Lavr
Supreme God
Posts: 16869
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Исходники или дизассемблированный монитор специалиста

Post by Lavr »

fifan wrote:Если нужно могу выложить исходники всего RAMFOSа правда в мнемонике Z80.
А чем ты их компилируешь в мнемониках Z80?
Я свои исходники в мнемониках i8080 обычно ассемблером из пакета RAMFOS компилирую...
iLavr
User avatar
fifan
Devil
Posts: 917
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Исходники или дизассемблированный монитор специалиста

Post by fifan »

Есть такой ассемблер-утилита на пс от Медногова (автора многих игр для Спеутрума), который называется "Ассемблер 512 для Z80". Я им пользуюсь давно - https://zx-pk.ru/threads/27-kross-assem ... =1#post860

На самой железке (Специалист) ассемблера для Z80 я не нашёл. Пытался сам что-то наваять - не получилось...
User avatar
Lavr
Supreme God
Posts: 16869
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Исходники или дизассемблированный монитор специалиста

Post by Lavr »

Lavr wrote: 11 Jul 2019 02:58Нигде не могу найти исходники хотя бы одного монитора "Специалиста"... :-?
В очередной раз понадобились мне исходники "Загрузчика" Специалиста уточнить некоторые особенности
его системных вызовов, но снова нигде не нашел, хотя, помнится, не раз мы различную специфику обсуждали...

Потратил время и дизассемблировал сам. Честно говоря, увидел много интересного... :roll:
В процессе работы использовал информацию со следующих ресурсов:
https://emu80.org/docs/spec_techinfo
https://alemorf.github.io/retro_computers/computer.html?id=Specialist
https://alemorf.github.io/retro_computers/Specialist/russian.monitor1.html

Исходники прилагаю с нужным ассемблером и "сопутствующими товарами". :wink:
SP_LOADER.zip

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

Давно хотелось мне иметь мобильный вариант ПК "Специалист" с таким вот экранчиком:
LOADSRL2.PNG
Но при этом не хотелось отказываться от механизма вывода на дисплей, ну что-то типа такого:
http://www.nedopc.org/forum/viewtopic.php?p=105633#p105633

Хотелось также оставить совместимость с существующим софтом хотя бы в рамках пакета RAMFOS.
Нравятся мне его Ассемблер, Дизассеблер и прочая требуха... либо просто привык. :lol:

Решение вырисовалось пока следующее: у дисплея NOKIA 3310 объём памяти (84х48)/8 = 504 байта.
Если сориентироваться на экранное ОЗУ ПК "Специалист", то это займёт: 504 байта / 48 байт = 10,5 ~ 11 строк.
Но первые 10 строк всех программ под RAMFOS - это верхняя служебная строка, которая практически
не меняется в процессе работы программы!
LOADSRM.PNG
Вот там и имеет смысл разместить буферное ОЗУ для дисплея NOKIA 3310! 8)
Тем более, что интерфейс SPI этого дисплея аппаратно схож с выводом видеосигнала ПК "Специалист".
Те же сдвиговые регистры, но только с дополнительным стробом - можно допилить аппаратно.
Довольно похожий вариант я тестировал несколько для другой задачи:
http://www.nedopc.org/forum/viewtopic.php?p=138289#p138289

А можно и чисто программно решить проблему: ввести в ПК "Специалист" прерывание по кадру, и во
время этого прерывания чисто программным путём перекидывать 504 байта дисплея NOKIA 3310 из ОЗУ
через какой-либо порт хотя бы из одного регистра.
Такой способ успешно тестировал на вот этой железке и всё весьма быстро было:
http://www.nedopc.org/forum/viewtopic.php?p=157230#p157230

Обдумаю обе эти идеи под PROTEUS...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16869
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Исходники или дизассемблированный монитор специалиста

Post by Lavr »

Lavr wrote: 06 Feb 2026 05:52В процессе работы использовал информацию со следующих ресурсов:
https://emu80.org/docs/spec_techinfo
https://alemorf.github.io/retro_computers/computer.html?id=Specialist
https://alemorf.github.io/retro_computers/Specialist/russian.monitor1.html
Несколько оффтоп здесь... но попался мне по одному из адресов весьма неплохой и
шустрый "Online эмулятор компьютера Специалист". :kruto:
А я когда встречаю какой-либо подобный эмулятор, не могу отказать себе в удовольствии
"погамать" в любимую игрушку! :lol:
Online SP-1.png
К сожалению, в меню этого эмулятора компьютера Специалист её не было...
Пришлось немного пораскинуть мозгами и подставить её в качестве file_samfox.js :wink:
Я надеюсь, Саманта Фокс на меня за это не обидится. :mrgreen:

Если Алексей Морозов не забывает наш форум, выкладываю ниже ему для коллекции эту
игрушку в формате *.js
file_babnik.zip
А если кто в неё не играл, то там же она в формате *.rks :roll:

Игрушка классная тем, что фактически не зависит от любых Мониторов, главное,
чтобы экран начинался с 9000H и порт клавиатуры попадал в диапазон 0F800-0FFFFH.
(В моём варианте порты ППА - под RAMFOS: 0FFE0-0FFE3H, попадают куда надо.)

На примере этой игрушки я в своё время постигал как устроены игрушки, ассемблер,
дизассемблер и шестнадцатеричные патчи... 8)

Управление очень простое:
[1],[2],[3] - выбрать уровень сложности: [1] - самый быстрый;
[4] - влево;
[5] - вверх;
[6] - вправо;
[7] - выстрел влево;
[8] - вниз;
[9] - выстрел вправо;
[0] - стой на месте.

Таким образом, пальцы двух рук на клавишах на одной линии - играть очень удобно! :kruto:
И управление в игре сделано грамотно: если персонаж бежит, и впереди поворот
вверх или вниз, клавишу можно нажать чуть заранее и он четко повернёт!

Let's play! :ebiggrin:

P.S. А если Виктор Пыхонин к нам иногда заглядывает, то вот это неверно, надо бы исправить:
Порт A и младшая половина C программируются на вывод, порт B - на ввод. Осуществляется сканирование методом бегущего "0" путем записи в порты A и C и анализа порта B.
Порт A и младшая половина C программируются на ввод, порт B - на вsвод. Осуществляется сканирование методом бегущего "0" путем записи в порт B и анализа портов A и C.
Насколько позволяет судить исходник, "бегущего "0"" там нет...
You do not have the required permissions to view the files attached to this post.
iLavr