Программы для «Специалиста»

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

Moderator: Lavr

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

Re: Программно-управляемый баян

Post by Lavr »

Lavr wrote:
b2m wrote:
Lavr wrote:Компьютерный баян из 1988 года
Об этом баяне мы пару раз уже упоминали и знаем, что работает он под управлением "Специалиста".
Портрет автора разработки - инженера Владимира Демина
А какая у него там ДОС - уже определили? Самодельная, или дампы где-то публиковались?
Эх, найти бы его софт, может и баян сэмулировать можно было бы :)
ДОС у него там "Монитор", ибо это всё сделано на "Специалисте", почему я и рискнул вставить
пост в этот топик
А этот мужичок-то, Владимир Демин, своим хобби занимается весьма последовательно и увлечнно! :o

Семь сорок (гитара-робот)

 ВИДЕО

В меню после клипа - есть и другие ролики с этой "гитарой"...
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Программы для «Специалиста»

Post by Lavr »

rw6hrm wrote:1. ПЗУшный Бейсик с добавлением расширенной графики ( http://www.spetsialist-mx.ru/Docs/mk1988_06.djvu ). Кассетная версия есть, но использовать с постоянным трансфером в ОЗУ считаю идиотизмом. Всё равно под какой монитор, но лучше под третий.
Ну разве что, если кто-то допилил этот Бейсик или похожий сам для себя, чтобы работать
из ПЗУ в верхних адресах памяти... :-?
Когда я этим всем занимался, то декомпилировал несколько Бейсиков, и по коду видел, что
переносить их в иные адреса - проблематично, поскольку они используют команды RST N.

В пакете RAMFOS для "Специалиста-МХ" в верхние адреса (там где у вас ПЗУ) перенесли
Редактор, Ассемблер, Дизассемблер и Отладчик - они сменяют друг друга по одним и тем-
же адресам, возможно, их и можно адаптировать под ПЗУ-версии...

Но вот Бейсик и в "Специалисте-МХ" оставили на месте - с адреса 0000Н в ОЗУ.
iLavr
User avatar
Error404
Maniac
Posts: 269
Joined: 05 Oct 2006 04:45
Location: Moscow

Re: Программы для «Специалиста»

Post by Error404 »

rw6hrm wrote:...я уже понял, что "Спец" - это заброшенная платформа, вышедшая слишком поздно, чтобы ей хоть как-то плотно заниматься. Неплохое железо - это да, в остальном швах...
Да ладно, где там неплохое железо?
Безотносительно процессора, неплохое железо обычно не навязывает пользователю ПЗУ 12..16к, съедая гигантский кусок адресного пространства, оно обычно отключаемое делается, уже "из коробки", а не резаком и МГТФ. Т.е. применительно к Спецу, неплохое железо начинается только с MX, а вообще для отечественных ПК на 8080 - с изначально многостраничных ПК типа Ориона, Корвета(?), Вектора(?) и т.п. где программам есть возможность работать во всем адресном пространстве не упираясь ни в экран ни в ПЗУ (ну или с какими-то существенно меньшими чем в Спеце ограничениями).
Всем добра!
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Программы для «Специалиста»

Post by Lavr »

rw6hrm wrote:Вот тут-то и стоило вспомнить про ПЗУшные Бейсики для 6502 - они с этим никаких проблем не испытывают, ибо есть такая няша, как нулевая страница памяти.
...
На мой взгляд, именно тут - как раз и не стОило, ибо i8080 и 6502 железки довольно разные...
И как говорится в известной пословице:"Если бы у бабушки был йеньг, то это была бы не бабушка, а дедушка..."
rw6hrm wrote:Но не знали у нас про 6502 и его возможности, а пользовались заброшенным производителем 8080, что упёрли, то и пользовали...
Честно говоря, это Ваше личное и ничем не обоснованное мнение, разве что как вариант: беспочвенно побрюжжать...
Про 6502 и его возможности у нас знали, ибо был такой компьютер "Агат" в какой-то мере совместимый с Апплей.
https://ru.wikipedia.org/wiki/Агат_(компьютер)

Также вынужден напомнить (https://ru.wikipedia.org/wiki/4К602ВМ1):
Советская промышленность выпускала совместимый с 65C02 микропроцессор
4.К602ВМ1 для использования в военных встраиваемых системах.
Image

Ну и очень удивительно мне, что судя по вашим постам, Вы чаще меня бываете на дружественном
форуме, а там не так давно предметно показали, что КР580ВМ80А не сперли, а сделали по мотивам...
Кто действительно спер i8080, причем с ошибками - на них почему-то пальцами не показывают,
хотя они давно и конкретно всем известны.

Я это всё к тому написал, что как-то серьёзнее всё же надо относиться к подаче информации на открытом
и довольно популярном техническом ресурсе, коим является наш форум.


P.S. Про дедушку-музыканта я промолчал, но на мой взгляд - это тоже зря... :-?
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Программы для «Специалиста»

Post by Lavr »

Error404 wrote:
rw6hrm wrote:"Спец" - это заброшенная платформа... Неплохое железо - это да, в остальном швах...
Да ладно, где там неплохое железо?
Безотносительно процессора, неплохое железо обычно не навязывает пользователю ПЗУ 12..16к,
съедая гигантский кусок адресного пространства, оно обычно отключаемое делается, уже "из коробки",
а не резаком и МГТФ.
Прежде чем такую ерунду писать - надо бы вспомнить, а сколько было памяти ОЗУ в "Радио-РК-86",
и что это была за память.

В оригинальном "Специалисте" было 3 линейки РУ3, причем "средняя" обозначалась опциональной.
Если человек не смог достать 3 линейки РУ3 - мог работать на двух.
Память в момент создания "Специалиста" была дорогая и дефицитная. Так что не надо 30 лет
спустя тарахтеть, что памятью обделили - не было тогда в избытке её!

А уж когда память стала доступной - сделали "Специалист-МХ", где ОЗУ = 64 К - 32 байта.

Каждый "овощ" нёс на себе отпечаток своего времени...
iLavr
User avatar
Error404
Maniac
Posts: 269
Joined: 05 Oct 2006 04:45
Location: Moscow

Re: Программы для «Специалиста»

Post by Error404 »

Lavr wrote:
Error404 wrote:
rw6hrm wrote:"Спец" - это заброшенная платформа... Неплохое железо - это да, в остальном швах...
Да ладно, где там неплохое железо?
Безотносительно процессора, неплохое железо обычно не навязывает пользователю ПЗУ 12..16к,
съедая гигантский кусок адресного пространства, оно обычно отключаемое делается, уже "из коробки",
а не резаком и МГТФ.
Прежде чем такую ерунду писать - надо бы вспомнить, а сколько было памяти ОЗУ в "Радио-РК-86",
и что это была за память.

В оригинальном "Специалисте" было 3 линейки РУ3, причем "средняя" обозначалась опциональной.
Если человек не смог достать 3 линейки РУ3 - мог работать на двух.
Память в момент создания "Специалиста" была дорогая и дефицитная. Так что не надо 30 лет
спустя тарахтеть, что памятью обделили - не было тогда в избытке её!

А уж когда память стала доступной - сделали "Специалист-МХ", где ОЗУ = 64 К - 32 байта.

Каждый "овощ" нёс на себе отпечаток своего времени...
И где я писал, что РК-86 это предел мечтаний?
И скажите мне, какому нормальному инженеру, и когда, количество имеющейся у него в наличии памяти мешало нормально планировать архитектуры - закладывать под будущее развитие, стремиться к оптимуму (в этот момент где-то икнул коллектив разработчиков РК-86 с их гениальным планированием портов на одной ИД7)? Со сколькими программами вышел в свет Спец? "Хрен да маленько"? Сколько его сопровождал автор, чуть меньше чем нисколько? Вот и ответ - Спец комп радиолюбительский: спаял-включил-порадовался-на_полку, паяй следующий. Как и Спек - учебный и игровой, всё более менее стоящее на них требует от программиста при написании вывернуться мехом наружу. Собственно поэтому на классическом Спеце ничего стоящего и нет (о чем тут и удивлялся ранее уважаемый rw6hrm).
Всем добра!
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Программы для «Специалиста»

Post by Lavr »

И я никому не приписывал мнение, что "РК-86" - это "это предел мечтаний".
Я обратил внимание на даты "РК-86", а "Специалист" - это "Фахiвец-85".
То есть, создавая свой компьютер ранее чем "РК-86", автор заложил в него по крайней мере
48К ОЗУ, графический экран и прозрачную регенерацию.

Это, на мой взгляд, более прогрессивно, чем 32К "РК-86" и ВГ75 с ПДП.

Структура графического экрана "Специалиста" куда удобнее для программиста, нежели организация
экрана "Спецтрума".

И еще раз подчеркиваю, что эти конструкции безусловно, радиолюбительские, рассчитаны на
массовое повторение в тот исторический момент, когда никаких других компьютеров в избытке
и не наблюдалось.
Поэтому предъявлять к ним необоснованные претензии более 30 лет спустя - просто глупо.
Да и сравнивать любительские "багги" с профессиональным гоночным автомобилем не совсем корректно.

Ну и я не заметил в ретроспективе, чтобы более "продвинутые" "Корветы" и иже с ними задвинули
под шконку тот же "Спектрум"...



P.S. Ну а что касается т.н. "программистов", то они что-то ни в СССР, ни в поздней России "нихрена"
хорошего в глобальном плане так и не написали... Собственно, это и была одна из причин, по которой
мы вынуждены были делать аналоги забугорных железок.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Программы для «Специалиста»

Post by Lavr »

Lavr wrote:В оригинальном "Специалисте" было 3 линейки РУ3, причем "средняя" обозначалась опциональной.
...
Каждый "овощ" нёс на себе отпечаток своего времени...
А у БК-001х.ХХ (разработка 1982...1983) с памятью (ОЗУ) и похуже "Специалиста" было...
BK_M.gif
Хотя БК-001х.ХХ разрабатывали в НИИ точной технологии НПО «Научный Центр», г. Зеленоград,
а не какой-то там "кустарь-одиночка с мотором"... :wink:
(https://ru.wikipedia.org/wiki/БК_(семейство_компьютеров))
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re:исходники Best_C

Post by Lavr »

Lavr wrote:Здесь собственно сам С-компилятор - оригинал под "Партнёр" и файлы под РАМФОС..
Shaos wrote:А фигурных скобок то нет совсем?
Двойные квадратные вместо них используются...
Ну так именно и написано в описании... двойные - тяжело смотрятся. :-?
Я, кстати, ещё когда обсуждали это, испытал некоторое недоумение, но ничего не высказал...
А так как я тут вплотную занялся внутренностями ЯВУ: PL/M, Tiny Basic и этот вот Best_C поковырял,
то я понял, в чем было моё недоумение: НА КЛАВИАТУРЕ "СПЕЦИАЛИСТА_МХ" СКОБКИ {} ЕСТЬ! :lol:
KbS.gif
В этой связи вот какой интересный вопрос возник: а что, если адаптировать Best_C под "Специалист_МХ"?

Должно получиться очень интересно. Дело в том что в комплекте Best_C еще и редактор "Микрон"
прикручен, вместе они занимают память 0000-47FFh, что не оставляет места для программы практически,
но и то - программы в пакете есть. :o

Но в "Специалисте_МХ" редактор "Микрон" можно удалить. Собственный редактор "Специалиста_МХ" -
Edit_MX расположен по адресам E800h-EFFFh и не занимает ОЗУ ниже экрана (9000h).

Можно было бы и компилятор Best_C поднять в верхние адреса. В "Специалисте_МХ" компилятор
Ассемблера - Asm_MX, работающий в связке с Edit_MX, загружается в адреса F000h-F7FFh.

Но вся прелесть в том, что Edit_MX расположен и работает в ОЗУ, как и Asm_MX, поэтому редактор
можно в любой момент затереть компилятором Best_C и потом снова восстановить из ROMDISKa.
A компилятор Best_C можно загружать на эти адреса из RАMDISKa, и на него же сохранять
исходники и бинарники.

Весь вопрос в том, есть ли у кого-либо исходники Best_C? Декомпилировать как-то нет особой охоты,
ибо довольно-таки много... :-?

Сведения об авторе следующие:
*SARATOV BEST-C COMPILER*
СГУ,ФИЗИКА-1989
КОВАЛЕНКО Д.И.

СО ВСЕМИ ЗАМЕЧАНИЯМИ И ПРЕДЛОЖЕНИЯМИ ОБРАЩАЙТЕСЬ
ПО АДРЕСУ:

410 600, Г.САРАТОВ, УЛ.ПУШКИНА, Д.N 17/25, КВ.109
КОВАЛЕНКО Д.И.
Сведения из открытого источника - описания Best_C.

Я знал этого человека в том "далёком давно" в лицо, хоть я и зело старше его,
поэтому знаком с ним лично не был в силу разницы возраста.
Написал я письмо знакомым, которые по возрасту должны были знать его лучше.
Мне ответили:
Увы, но Димку я последний раз видел/слышал примерно во время выпуска из универа. А это примерно 1992 год.
Значит там "весёлые 90-е" надвинулись... :-? но, может быть, у кого-либо исходники Best_C имеются?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Re:исходники Best_C

Post by Lavr »

Lavr wrote:Дело в том что в комплекте Best_C еще и редактор "Микрон"
прикручен, вместе они занимают память 0000-47FFh, ...
Редактор "Микрон" (я вчера покопал файл BEST-C.RKP) расположен по адресам 0000-07FFh, и связь
между ним и Best_C-компилятором, похоже, только в JMP-ах по клавише <CTP>.
Lavr wrote:Весь вопрос в том, есть ли у кого-либо исходники Best_C? Декомпилировать как-то нет особой охоты,
ибо довольно-таки много... :-?
Не то, чтобы очень много - 16 КБайт - но декомпилировать средствами "Специалиста_МХ" неудобно.
Пришлось бы резать на несколько частей... :-?

Пошарил по сети простенький подВиндовый дизассемблер i8080, ничего подходящего не нашел пока.
IDA у меня есть, но она код z80 выдает вроде как...

P.S. Нашел у себя "в закромах Родины" какой-то DB8085 - 8080 and 8085 binary file disassembler
ни разу им не пользовался... Но надо посмотреть...
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Re:исходники Best_C

Post by Lavr »

Lavr wrote:Нашел у себя "в закромах Родины" какой-то DB8085 - 8080 and 8085 binary file disassembler
ни разу им не пользовался... Но надо посмотреть...
Посмотрел на примере Tiny BASIC, для которого есть исходный код. :wink:

Особым интеллектом этот DB8085 disassembler не блещет, молотит всё как код,
но рядом с мнемониками выписывает исходные коды в HEX-виде и символами:
TB-ASM.gif
То есть, текстовые сообщения и таблицы придётся рихтовать вручную... :-?

Ну... в принципе можно попробовать декомпильнуть Best_C...


P.S. Сам DB8085 disassembler я брал вот здесь: Dick's Web Page (W3SYY), осталась ссылка.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Re:исходники Best_C

Post by Lavr »

Lavr wrote:
Lavr wrote:Дело в том что в комплекте Best_C еще и редактор "Микрон"
прикручен, вместе они занимают память 0000-47FFh, ...
Редактор "Микрон" (я вчера покопал файл BEST-C.RKP) расположен по адресам 0000-07FFh, и связь
между ним и Best_C-компилятором, похоже, только в JMP-ах по клавише <CTP>.
Сегодня попробовал у Best_C для "Микроши" редактор "Микрон" отрезать. Отделился вроде как
безболезненно и остался работоспособным, если не нажимать вызов компилятора С.
EDIT-C.zip
Осталось протестировать для "Специалиста", там, похоже, чуть посложнее всё.

Дело в том, что я предварительно сравнивал бинарно и просматривал файлы Best_C для "Микроши",
"Специалиста" и "Партнера".
Несмотря на одинаковый размер - 47FFH, файлы довольно разные и больше всего отличий у Best_C
для "Специалиста" - его я даже под отладкой немного просмотрел...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Re:исходники Best_C

Post by Lavr »

Lavr wrote:Несмотря на одинаковый размер - 47FFH, файлы довольно разные и больше всего отличий у Best_C
для "Специалиста" - его я даже под отладкой немного просмотрел...
Best_C "Специалиста" при старте выставляет стек на 8000Н, и далее - патчит сам себя:
по адресу 0000Н, где записано JMP 1000H - переход на адрес патча, он записывает LXI SP,8000H;
после чего патчит еще несколько ячеек и перезапускает себя.

Прямо под RAMFOS "Специалиста_MX" стартует нормально, только предварительно надо включить
кодировку КОИ-7:
C_MX.gif
Текстовый буфер начинается с адреса 4800Н, с адреса 8000Н предлагается размещать библиотеки.
Одна библиотека для графических функций PLOT и LINE есть в комплекте.

Что ж... надо попробовать скомпилировать что-то осмысленное. Если скомпилируется успешно и в
компактный код, будет иметь смысл расковырять этот Best_C до исходника... :ewink:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Программы для «Специалиста»

Post by Lavr »

Подведу некоторый итог опытов с этим самым BEST-C...

Я его чуть-чуть пропатчил и он довольно прилично стал работать под RAMFOS
"Специалиста_МХ". Собственно, он сам теперь включает КОИ-7 и не лезет, куда
не следует, a работать с ним вполне можно, если аккуратно.

Файлы программ на Си - обычные текстовые, которые поддерживает редактор
RAMFOS
, со стоп-байтом 0FFH в конце. Только в RAMFOS буфер редактора
начинается с адреса 1100Н, а файлы Си - на адресе 4800Н начинаются.
Поэтому работать надо так: выходим в Debug по [F7], в нем вызываем загрузку
файла также через [F7]. Файл копируем на адрес 4800Н и выходим из Debug.

Запускаем BEST-C.ЕХЕ и он начинает задавать кучу вопросов, как на них
отвечать, я показал на скриншоте.
C-ALL.gif
Главное, на вопрос NEW? ответить N, т.к. мы полжили программу в память.
Запускается Редактор типа "Микрон", кто умеет, можно работать его клавишами
УС+хх :wink: Но лучше нажать [СТР] и выйти в компилятор. Он тоже задаст вопросы,
на которые видно как ответить на скриншоте.

Компилятор предлагает 3 варианта компияции: 1, 2, 3
1 - полный листинг, и что приятно, показывает, во что превращаются строки Си.
2 - выдаст только адреса.
3 - скомпилирует быстро и молча.

В архиве есть файл BEST_C.ALL - под эмулятор Шевцова, он загрузит всё сразу:
сам BEST-C, графическую библиотеку и тестовые программы.
BEST-CSP.zip
Собственно, я добивался взглянуть, во что BEST-C превратит простую программу
аналог под PL/M - заполнение области байтом, и результат мне не понравился. :osad:
viewtopic.php?f=81&t=19633#p153052

Писать программы в эмуляторах ныне - дурной тон, поэтому я писал в обычном
редакторе под Вендой, а в эмулятор пропихивал с помощью маленькой утилиты,
которая удаляет все 0AH из текста, формируя файл *.I80, с байтом 0FFH в конце.
Она же формирует сопутствующий файл *.CPU - эти файлы удобно грузить в эмулятор
Шевцова. Исходный текст не меняется. Утилита есть в архиве, писать надо в КОИ-8,
или же всё - на английском... :ewink:

В общем, я пока поостыл декомпилировать этот BEST-C, слишком "толстый" код
он выдаёт... :-?

Я поискал в сети и нашел небольшой кросс-компилятор SMALL_C, который выдает
код под i8080: http://www.cpm.z80.de/small_c.html
Гляну, во что он соберет тот же самый пример. А уже потом будем посмотреть... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16682
Joined: 21 Oct 2009 08:08
Location: Россия

Re:исходники Best_C

Post by Lavr »

Lavr wrote:Не то, чтобы очень много - 16 КБайт - но декомпилировать средствами "Специалиста_МХ" неудобно.
Пришлось бы резать на несколько частей... :-?
...
Ну... в принципе можно попробовать декомпильнуть Best_C...
Декомпилировал двумя инструментами: DB8085 disassembler и DIZASM от "Специалиста_МХ", благо я сделал себе работу с пакетом RAMFOS гораздо удобнее. :wink:
DIZASM от "Специалиста_МХ" лучше обрабатывает области данных и текстовые области, а DB8085 позволил декомпилировать крупный по размеру файл целиком.

В общем в "нулевом приближении" код по исходнику собирается с адреса 0800H полностью идентично оригиналу.
BEST_800.zip
В архиве - исходный ассемблерный код компилятора С без редактора, а также оригинал бинарного кода для сравнения.

Я оставил всё как есть в оригинале, некоторые комментарии - по разбору таблиц. Компилировать с других адресов пока не пробовал.

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

Во время листинга компилятор показывает соответствие тексту на С кодом в текстовом виде и собирает программу из эквивалентов в виде бинарного кода. Видимо, поэтому код получается весьма "толстым".
Очень много работы со стеком, по сути все манипуляции делаются в стеке.

Ну что ж, для интересу можно код и почитать теперь, поскольку в кишках компиляторов С я ранее практически особо и не копался... :-?


P.S. А вот DB8085 disassembler, что я брал вот здесь: Dick's Web Page (W3SYY), меня немного подвёл.
Он неверно декомпилирует инструкцию CNZ (код 0С4Н).
:osad:
You do not have the required permissions to view the files attached to this post.
iLavr