Вход

Просмотр полной версии : Программирование в машинных кодах



Zidane
28.08.2022, 13:02
Доброго дня. Тыкаю эмулятор Радио-86РК (Emu80) на предмет подготовки к стриму... Но вот как-то работает он интересно. Точнее печально. Код 0Е 21 CD 09 F8 C9 делает черти что... Запуск по G0000 (собственно там и располагается программа). Что примечательно, на "Специалисте" аналогичная программа работает как надо. А вот на Радио-86РК беда просто. Есть что-то, чего я не учел? А вот при попытке напрямую поместить значение байта в ячейки (ну просто для примера) 37С2 и 37С3 тоже начинается абсолютно непонятная канитель.

Вообще машина не то чтобы сильно меня интересует - я больше по Специалисту тащусь ). Но чтобы выдать адекватную информацию, нужно самому на этом компьютере научиться работать.

Я вот всегда думал, что на Радио-86 кодить будет проще из-за текстового режима работы, по факту оказалось все с точностью наоборот. Монитор Специалиста, зашитый в эмулятор, работает ощутимо приятнее и понятнее чем РК.

zebest
28.08.2022, 15:50
Код 0Е 21 CD 09 F8 C9 делает черти что...
нормально этот код работает. Как и должОн.
Это особенности программированийя ВГ75, управляющие коды etc... Все просто.
в д.с. 0Eh тут контроллер сбивает. Запиши втуда что-нить попроще, нУ 55h. например.

SegaBoy
28.08.2022, 17:53
нормально этот код работает. Как и должОн.
Это особенности программированийя ВГ75, управляющие коды etc... Все просто.
в д.с. 0Eh тут контроллер сбивает. Запиши втуда что-нить попроще, нУ 55h. например.
В примере 0E 21 это команда mvi c, ‘!’ и она никак не должна влиять на контроллер

zebest
28.08.2022, 18:17
в примере - F809h - вывод символа на экран. Думаешь оно ограничилось одним символом и вернулось из п\п? Ну да , ну да. Пока стоп-кода нет - будет выводить все, что встретит, весь мусор, в т.ч. и управляющие коды. Что и наблюдаем

ivagor
28.08.2022, 18:20
Код 0Е 21 CD 09 F8 C9 делает черти что... Запуск по G0000 (собственно там и располагается программа).
Не надо завершать запускаемую по G программу RETом, если только она сама не запишет в стек какой-нибудь корректный адрес возврата.


Что примечательно, на "Специалисте" аналогичная программа работает как надо.
Вероятно только на SP580, у стандартного специалиста по адресу F809 нет пзу. Хотя попробовал - на SP580 тоже работает не очень, опять же не надо завершать RETом.

SegaBoy
28.08.2022, 18:33
в примере - F809h - вывод символа на экран. Думаешь оно ограничилось одним символом и вернулось из п\п? Ну да , ну да. Пока стоп-кода нет - будет выводить все, что встретит, весь мусор, в т.ч. и управляющие коды. Что и наблюдаем
F809 это вывод одиночного символа из регистра C. Там не требуется никаких стоп-кодов.

0E это не управляющий код - это символ стрелка вправо. Можно заменить 0E 21, на 0E 0E и убедиться в этом.
В эмуляторе вывод портится из-за последней команды C9 - ret. После неё стек налазит на экран, но программа переходит на адрес 0000 и выполняет новый цикл. С каждым разом всё дальше наезжая стеком на экран. Если в эмуляторе нажать ресет, то программа будет исполняться как и на реале - выведет один символ ‘!’ На экран и повиснет - улетит куда-то в неизвестность.

Непонятно что хотел топикпастер. Если вывести символ ‘!’ в бесконечном цикле на экран, то последняя команда должна быть не C9 (ret), а C3 0000 (jmp 0000). Если же вывести один раз символ и вернутся в монитор, то C3 F86C - переход к приглашению командной строки.

goodboy
28.08.2022, 18:43
Непонятно что хотел топикпастер
он наверно думал что "G0000" это аналог Call, а не Jump
ну и в руководствах для возврата в монитор упоминается RST6

Zidane
28.08.2022, 21:01
Я думал что ассемблер на Радио-86РК работает также как и в Специалисте. К слову, если попытаться запустить программу директивой G без параметров, то все тоже печально. Кроме того, в описании к монитору 86РК сказано, что можно не указывать адрес останова программы. Это, на мой взгляд, как бы подразумевает, что стартовый адрес указывать обязательно. Касательно адреса вывода символа на экран - в эмуляторе Специалиста это $C037. И все работает как часы, при этом все понятно, что весьма немаловажно. В конечном итоге имелся ввиду общий алгоритм, а не программа целиком. Ну в любом случае неважно. От темы отказался. Этот компьютер слишком не для меня.

Всем спасибо за попытку помочь нубу ).

Serg6845
29.08.2022, 11:09
он наверно думал что "G0000" это аналог Call, а не Jump

ну в мониторе Специалиста так и есть.

Vital72
29.08.2022, 13:52
в Мониторе РК-шки также в стек кладется адрес теплого старта F86C, он же командный интерпретатор, так что возврат из программы командой RET является легальным способом завершения программы.
Почему код не работает в эмуляторе -- надо спрашивать автора эмулятора.

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

Хотя, директива G может и портит стек, надо бы проверить на реальном железе и эмулятор тут не причем.

goodboy
29.08.2022, 14:10
а как так получается что размещая программу с #0000 делаем вызов на #F809 ?
(смущает общий объём памяти)

Zidane
29.08.2022, 14:21
а как так получается что размещая программу с #0000 делаем вызов на #F809 ?
(смущает общий объём памяти)

Ну так у 86РК (как и у специалиста вроде) монитор с адреса $F800 по моему. В любом случае руководствовался этой таблицей http://www.emuverse.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Radio-05-87-Radio-Tables-01.png

ivagor
29.08.2022, 15:02
в Мониторе РК-шки также в стек кладется адрес теплого старта F86C
Скриншот (https://imgur.com/a/rnSj3yq) из отладчика после старта РК, когда монитор ждет нажатия клавиши и крутится в цикле FE63-FE67. Где здесь на стеке F86C?

директива G может и портит стек
При выполнении G значение SP берется по адресам 761C-761D. По умолчанию монитор заносит туда 76СF. А по адресам 76CF-76D0 монитор записывает нули. Т.е. если не принять специальных мер, то выход после G0 по RET вернется в 0 и будет дальше разматывать стек в направлении видеопамяти.

как и у специалиста вроде
у специалиста не так

SegaBoy
29.08.2022, 15:18
… Т.е. если не принять специальных мер …
Всё верно. Спецмерой в данном случае могут быть две команды dcx sp в виде первых двух строк программы. Тогда указатель стека сместится и на верхушке будет лежать правильный адрес возврата F86C.

3B 3B 0Е 21 CD 09 F8 C9 - вот такой код работает корректно.

Zidane
29.08.2022, 15:30
Спасибо за информацию. А есть ли адекватная литература по 86РК? То есть не урывочные публикации а что-то из серии МРБ? А то по журналам Радио искать такое себе. Сейчас просто Вектору готовлюсь, но потом можно и РК, если найдется толковый источник информации. Потому что я так понял по 86РК было достаточно большое семейство. Как минимум Микроша и Апогей (поправьте если ошибаюсь). Просто изучать что-то только для одного выпуска не хочется от слова совсем. Если уж рассказывать, так разобраться надо. И тут Вектор и Специалист явно впереди.

goodboy
29.08.2022, 16:22
3B 3B 0Е 21 CD 09 F8 C9 - вот такой код работает корректно
можно и сократить 3B 3B 0Е 21 С3 09 F8
.................
можно сократить и ещё на один байт - сделать вначале pop reg

Vital72
29.08.2022, 16:40
А есть ли адекватная литература по 86РК? То есть не урывочные публикации а что-то из серии МРБ?

Домашний компьютер/Зеленко Г. В., Панов В. В.,. Попов С. Н.- М.: Радио и связь, 1989.-144 с.: ил.-. (Массовая радиобиблиотека; Вып. 1139).

Прям первая ссылка в гугле.

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


Скриншот из отладчика после старта РК, когда монитор ждет нажатия клавиши и крутится в цикле FE63-FE67. Где здесь на стеке F86C?

Вот кусочек кода Монитора, код заканчивается как раз помещением F86C в стек:



F86C: 31 CF 76 LBL3: LXI SP,76CFH ; 30415; [4]
F86F: 21 66 FF LXI H,REF4 ; 65382
F872: CD 22 F9 CALL SUB2
F875: 32 02 80 STA V_8002
F878: 3D DCR A
F879: 32 02 A0 STA V_A001+1
F87C: CD EE F8 CALL SUB1
F87F: 21 6C F8 LXI H,LBL3 ; 63596
F882: E5 PUSH H

ivagor
29.08.2022, 17:12
Вот кусочек кода Монитора, код заканчивается как раз помещением F86C в стек:
Стоило уточнить, когда он выполняется. Не просто

в Мониторе РК-шки также в стек кладется адрес теплого старта F86C
а при нажатии ВК. И в команде G после этого выполняются действия, которые делают следующее утверждение неправильным (без принятия дополнительных мер)

возврат из программы командой RET является легальным способом завершения программы.

SegaBoy
29.08.2022, 17:30
можно сократить и ещё на один байт - сделать вначале pop reg
Не выйдет, нам в другую сторону. Pop это аналог двух inx, что ещё дальше отодвинет нужный адрес.

goodboy
29.08.2022, 17:43
точно, ступил.

Pyk
30.08.2022, 10:52
в Мониторе РК-шки также в стек кладется адрес теплого старта F86C, он же командный интерпретатор, так что возврат из программы командой RET является легальным способом завершения программы.
Почему код не работает в эмуляторе -- надо спрашивать автора эмулятора.
В стандартном Мониторе РК-шки адрес теплого старта в стек не кладется, в отличие от расширенного 4К-Монитора и некоторых других компьютеров, например, Специалиста или Партнера. В Emu80 по умолчанию используется стандартный Монитор. Надо будет, пожалуй, сделать еще и конфигурацию для расширенного...

ivagor
30.08.2022, 11:10
В стандартном Мониторе РК-шки адрес теплого старта в стек не кладется

В Emu80 по умолчанию используется стандартный Монитор
В rk86.rom есть фрагмент, который привел Vital72 и при нажатии ВК он выполняется. Другое дело, что этого недостаточно, чтобы просто вернуться по RET после G.

Pyk
30.08.2022, 11:44
Я видел. Выглядит как недоработка, но итог все равно такой же - по RET нельзя вернуться после G...

Zidane
30.08.2022, 14:34
А в Специалист без RET в Монитор не вернуться совсем. Причем где-то читал, что именно для Спеца RET обязателен. Ну я думал, может и здесь так же.

HardWareMan
30.08.2022, 17:12
А в Специалист без RET в Монитор не вернуться совсем. Причем где-то читал, что именно для Спеца RET обязателен. Ну я думал, может и здесь так же.
JMP C800 или даже JMP C000. Зачем что-то придумывать?

Zidane
30.08.2022, 20:06
JMP C800 или даже JMP C000. Зачем что-то придумывать?

Машина незнакомая и абсолютно непонятная. Как бы везде так: имеющиеся навыки пытаемся перенести на новую машину ) Вообще сомневаюсь что тема "Радио-86РК" вызовет большой интерес, но рассказать хочется. Причем не просто рассказать, а так чтобы посмотревший запись мог что-то сделать на компьютере. Вот и приходится изучать. Ну то есть мне не хочется показать, как делали что-то на старых машинах (по типу стримеров игр). Я хочу показать как этого можно было добиться ))) И РК86 оказался самым неподдатливым из всей команды. С тем же Спецом или Вектором работать получается едва ли не интуитивно.

P.S. RET 1 байт и 10 тактов, если табличка не врет, а JMP 3 байта и 10 тактов.

HardWareMan
31.08.2022, 15:51
P.S. RET 1 байт и 10 тактов, если табличка не врет, а JMP 3 байта и 10 тактов.
А что удивляет то? Вот растактовки:
https://i.postimg.cc/15Sz9bc1/i8080-2.png
Обе команды вычитывают 3 байта в итоге. Только RET меняет SP а JMP - нет.

svofski
31.08.2022, 16:36
С тем же Спецом или Вектором работать получается едва ли не интуитивно.
А про Вектор уже можно посмотреть?

Zidane
31.08.2022, 17:06
А про Вектор уже можно посмотреть?

Вообще планируется на субботу. Но там столько тонкостей, по сравнению со Специалистом... Просто тот же монитор должен так же загружаться, ну и документации по нему не так чтобы много. Тут такой момент что фаны Вектора намного более разобщенные... И собрать инфу гораздо сложнее, чем на тот же Спец или 86РК. Опять же, монитор версии 3.5 имея ядовито-фиолетовую расцветку. И если загружать программы для работы в него как-то еще ничего, то вот писать в ассемблере, который использует цвета системы - да хоть глаз вырви ))) Что касается Бейсика для Вектора, то это отдельная тема с примерами... Там слишком много всего. Даже работать с ассемблером без инструкции не выйдет ). Так что в планах есть, конечно, но несколько не уверен что к субботе успею все собрать. В конце концов работа еще.... Но после запуска ассемблер для Вектор понятнее чем РК

M80
31.08.2022, 17:19
Мужики, я фигею! Откуда такой энтузиазм? Нужно ведь разбираться в азах, а обычно же народ ленив... В чём тут фишка?

goodboy
31.08.2022, 17:26
Тыкаю эмулятор на предмет подготовки к стриму
наверняка за донат

Zidane
31.08.2022, 17:29
Ну я в принципе странный тип... На гитаре еще играю немного, сборка щитов автоматики, программируемые реле разных производителей тоже мое хобби. Минск (до 112)/Восход/Иж смогу перебрать не особо напрягаясь... И да, я ленив. Очень ленив. Но как только меня что-то заинтересует...

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


наверняка за донат

Хмм... Было бы неплохо, врать не буду. Но за все время только один. Да и тот по сути в процессе настройки донатов... Тема не профитная абсолютно ) Просто интересно самому.

svofski
31.08.2022, 17:36
Тут такой момент что фаны Вектора намного более разобщенные...
Да, разве? Спрашивай -- особенно в разделе про Вектор. По-моему мы как раз охотно на тему его программирования общаемся.

Но тут мне интересно немного другое. Я хоть и фанат Вектора, на нём самом без современных инструментов никогда не программировал. Посмотреть как кто-то мучается, пытаясь сделать условно говоря змейку в мониторе, пользуясь одним только магнитофоном (эмулятором магнитофона ок), могло бы быть любопытно.

Zidane
31.08.2022, 17:39
Хех, нет. Тут я согласен, без инструментов разрабатывать дело такое себе. И хотя мне это на самом деле нравится, вести стримы в процессе разработки едва ли интересно. Думаю не стоит объяснять почему? )) Вот поиск ошибок и отладка программы может и было бы кому интересно. Но вот слушать обсуждение еще даже не существующей программы... Ну я бы не смог работать так. По крайней мере продуктивно.

Хотя был бы живой Вектор, может и задался бы целью. А в эмуляторе Специалист интереснее. Да и проще. Замечательная парта.

К слову если есть описание на Монитор Вектора полное, был бы весьма признателен ). Однако разговор зашел куда-то не туда.

svofski
31.08.2022, 19:03
И хотя мне это на самом деле нравится, вести стримы в процессе разработки едва ли интересно. Думаю не стоит объяснять почему?
Понятно конечно. Все люди разные. Я вот люблю иногда смотреть The Coding Train, а ему явно нравится программировать напоказ. Это такой стенд-ап программист можно сказать.

M80
01.09.2022, 08:58
Ну я в принципе странный тип... На гитаре еще играю немного, сборка щитов автоматики, программируемые реле разных производителей тоже мое хобби. Минск (до 112)/Восход/Иж смогу перебрать не особо напрягаясь... И да, я ленив. Очень ленив. Но как только меня что-то заинтересует...
Блин, ну есть же множество БОЛЕЕ интересных тем, нежели ковыряния в говне. И прибыльных. Ну на кой вам это?
Я пацана своего не могу заинтересовать. Хотя многому мог бы научить! Но нет. Не интересно, видите ли.(

M80
01.09.2022, 11:07
Мат и оскорбления удалены модератором

Zidane
01.09.2022, 15:13
Потому что делается это не для прибыли, а для души. Тут как бэ разница большая. Ну и 1150 просмотров за 4 дня в принципе показывает, что тема то не совсем мертвая.... Может потому что редкая. Стримы и ролики про спектрум обычно 1000 набирают хорошо если за месяц. Конкуренция.....

Zidane
04.09.2022, 12:15
Возвращаясь к ассемблеру... Из того что я успел проверить, на Специалист, Радио-86РК и Вектор используется один и тот же пакет "Микрон", адаптированный для каждой платформы. Еще нашел замечательный эмулятор rk86.ru, со сборником программ которые можно потыкать и запускать. Правда там почему то написано что редактор Ассемблера не работает, хотя все вроде ок. Возможно составивший сборник не разбирался в нем и добавил для комплекта. В любом случае, спасибище этому человеку, если он присутствует на форуме )))

sd
05.09.2022, 08:13
вот ассемблер неплохой https://svofski.github.io/pretty-8080-assembler/

на нем можно писать сохранять кнопкой tape, а в другом окне запускать более продвинутый эмулятор типа EMU 1.01 и в него грузить

M80
05.09.2022, 08:39
"Ты прекрасный, спору нет.") А на z80 переключатель есть? А макросредства?

sd
05.09.2022, 09:45
Зачем мне Z80 я на 580 пишу. А команды как пишется на z80 не люблю :)

M80
05.09.2022, 09:50
Речь то не о вас, а о людях.) Всегда хорошо, когда есть выбор. Особенно, когда нужно и так, и эдак.

Zidane
05.09.2022, 13:12
Видел я тот ассемблер. Он только под Вектор. Для Радио-86РК тоже есть, причем отличный. Для Специалиста нет ) К слову в онлайн эмуляторе 86РК ассемблер работает прекрасно, если работать по инструкции.

Что касается Z80, то онлайн эмуляторов сколько хотишь, в том числе и с поддержкой Спектрум, Атари да и вообще всего что хочешь... Было бы желание найти.

ivagor
05.09.2022, 14:26
Видел я тот ассемблер. Он только под Вектор.
"Сколько странных вещей написано, а сколько еще предстоит написать."
Как это только под Вектор? Он может генерировать код для 8080, значит для любого компа на 8080.
Более того, открываем страницу по ссылке (https://zx-pk.ru/threads/34607-programmirovanie-v-mashinnykh-kodakh.html?p=1162090&viewfull=1#post1162090), кликаем рыбу в заголовке и выбираем заготовку программы для интересующего компьютера, в т.ч. для РК и Специалиста.

Zidane
05.09.2022, 15:03
"Сколько странных вещей написано, а сколько еще предстоит написать."
Как это только под Вектор? Он может генерировать код для 8080, значит для любого компа на 8080.
Более того, открываем страницу по ссылке (https://zx-pk.ru/threads/34607-programmirovanie-v-mashinnykh-kodakh.html?p=1162090&viewfull=1#post1162090), кликаем рыбу в заголовке и выбираем заготовку программы для интересующего компьютера, в т.ч. для РК и Специалиста.

А кто сказал что я не пробовал? Тем более мне прямо сказали, что эмуляция там только Вектор. Насчет кода да, в принципе любой код i8080 можно там проверить.. Только как отлаживать? так что для РК свой эмулятор онлайн есть. Вот для Специалист нет. А самая прикольная платформа из всех. Вот. Так что Emu80 и Микрон, а он практически стандартный для всех трех платформ

ivagor
05.09.2022, 16:03
Осталось только понять, где в процитированной фразе

Видел я тот ассемблер. Он только под Вектор.
спряталось слово "эмулятор"

Zidane
05.09.2022, 16:47
Осталось только понять, где в процитированной фразе

спряталось слово "эмулятор"

Ну сути это не меняет. Программа запускается только в эмуляторе Вектор

sd
05.09.2022, 18:44
Видел я тот ассемблер. Он только под Вектор.
Почему под вектор ? Я на нем под микрошу, апогей или рк пишу. Он как я писал сохраняет в формате рк или микроши там же написано.

потом грузите в комп или эмулятор

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


РК свой эмулятор онлайн есть
когда я там начал чего то с вг75 насколько я помню делать, там уже это не работало. а на отдельном эмуляторе EMU работает

M80
05.09.2022, 20:47
))Очевидно я отстал от "современной" жизни... Ибо тут везде резиновые женщины. Резиновые РК, эмуляторы РК... Ужос(.
Я и с РК то не работал. Не считая того, что ставил CP/M на него, UART и электронный диск. И то всё корысти ради.) Ну так и отладка была вживую, и монитор-отладчик самому писать приходилось - а куда деваться то было. Но тут...

Zidane
06.09.2022, 06:24
Почему под вектор ? Я на нем под микрошу, апогей или рк пишу. Он как я писал сохраняет в формате рк или микроши там же написано.

потом грузите в комп или эмулятор

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


когда я там начал чего то с вг75 насколько я помню делать, там уже это не работало. а на отдельном эмуляторе EMU работает

А смысл? Внес несколько исправлений, загружай файл и проверяй локально... Уж лучше сразу в эмуле писать. Или на сборке какой, если уж на то пошло. Что касается ВГ75 на 86РК, то меня эта платформа на самом деле мало интересует. Именно по причине того же ВГ75...

sd
06.09.2022, 08:05
Это как в эмуле писать ? На микрошевском ассемблере ? Тяжелые были тогда времена в 86 году, хотя писали и на магнитофон сохраняли. Но сейчас гораздо удобнее в том же претиасме писать. Ну а загружается это все быстро. сохранил в эмуле загрузил, смотришь.

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


ВГ75 на 86РК, то меня эта платформа на самом деле мало интересует
Тема то вроде по РК-86 и т.п. :)

M80
06.09.2022, 08:43
Что касается ВГ75 на 86РК, то меня эта платформа на самом деле мало интересует. Именно по причине того же ВГ75...
А что тогда интересует? Весь тайный смысел в чём?

Zidane
06.09.2022, 09:46
Изначально хотел разобраться как это все работает. Но в процессе ковыряния платформы полностью утратил интерес. По ощущениям - колхоз чистой воды. Компьютер созданный радиолюбителями для радиолюбителей. Остальным практически бесполезен... Имхо.

M80
06.09.2022, 10:20
Ну так это когда было то, какие были условия! У создателя/лей всегда есть какие то цели. Так же как и сроки. И, как обычно, всегда приходится идти на компромиссы. Да, колхоз, но вам даётся дешевая рыба, а дальше вы уже сами. Радио оно и есть для радиолюбителей.)
Ну а монитор пишется для своей модели, функции у них примитивные, насколько хватает фантазии/желания/необходимости.) Приходилось делать и с продвинутым отладчиком, с ассемблером/дизассемблером в т.ч.
Как бы, при наличии системы, монитора вообще может и не быть, достаточно начального загрузчика.) А, кстати! Раньше (на старых ЭВМ) загрузчик набирался вручную, с пульта, каждый раз при включении. Некоторые, код даже держали в голове! Слабо?) 173110 102310 024007...)

sd
06.09.2022, 10:42
Остальным практически бесполезен... Имхо.
Как это бесполезен! У меня правда микроша была , но это почти тоже самое, чуть лучше и доделаней. И в игры играли, и тексты печатали, и языки программирования изучали и программировали! А купив допустим принтер надо было написать самому его драйвер, предварительно разобравшись как его присеоеднить! Классые были времена, это вам не в айфон пяляться ;)

M80
06.09.2022, 13:00
Остальным практически бесполезен...
Это сейчас бесполезен.) Хотя, исследовать развитие компьютерной техники в СССР, почему бы и нет.)
Касательно мониторов. Основная их функция - драйверы устройств ввода/вывода, аналогично BIOS. И, как дополнение, интерпретатор команд оператора для работы с памятью и вводом/выводом. Вот и всё.

andrews
06.09.2022, 15:02
Если бы сделали наконец все в одном чипе(8080,8251, 8253, 8259, 8255,8257+SRAM 4Кб+EPROM 16Кб) с питанием от +5В и тактовой хотя бы 6MHz, то можно было бы куда-то и приспособить.

Вот кто бы такое же под PL/M-80 и ISIS-II или CP/M-80 сделал?https://svofski.github.io/pretty-8080-assembler/

M80
06.09.2022, 15:16
Если бы сделали наконец все в одном чипе(8080,8251, 8253, 8259, 8255,8257) с питанием от +5В и тактовой хотя бы 6MHz, то можно было бы куда-то и приспособить.
Ну, Япония много чего делала на одном кристалле. Только ведь не пошло... А может время ушло...)
http://elm-chan.org/docs/dev/tmpz84c015.html
http://elm-chan.org/docs/dev/kl5c8012_e.html

Вот кто бы такое же под PL/M-80 и ISIS-II или CP/M-80 сделал?https://svofski.github.io/pretty-8080-
Ну так старьё же. Зачем?

andrews
06.09.2022, 18:34
Это классика: 8080, z80, 8051, 8088, 80386ex, 6809, 6502 Нет никаких проблем со средствами разработки, причем начиная от ноутбуков на первом пне(другие просто не сохранились). Нет проблем с нарушением патентов и авторских прав(разработки более чем 40 летней давности. Нет проблем на имеющемся в России технологическом оборудовании. Что особенно актуально в нынешней ситуации с МЭ в России. Сегодня была публикация в Инет, что Зеленограду выделили всего 7 млрд. рублей на производство МЭ, что катастрофически мало для новых дизайнов и уменьшения проектных норм.


Ну так старьё же. Зачем?
PL/M-80 оптимизирующий компилятор фирмы Intel. Активно использует регистры, модули, реентерабельность, макро, условную компиляцию, низкоуровневые операторы, процедуры обработки прерываний, вставки ассемблера. Словом есть все для работы с железом и операционками ISIS-II и CP/М. Правда они консольные конечно. Но графика тоже прикручивалась через библиотеки.

M80
07.09.2022, 09:31
Ха. Вспомнилось.) Году, эдак, в 1989-м наша фирма (кооператив) закупила для организации с десяток "дешёвеньких" ХТ-шек. Они были компактного размера и как бы не одноплатные, с моно видео (Геркулес, скорее всего). Но основная фишка - там стоял 10 мгц NEC V20, у которого, как известно, есть режим 8080. И я даже чего то там запускал в этом режиме. Ну просто песня! Эх, поиметь бы такой). Ведь наверняка же списали и выкинули со временем.(

andrews
07.09.2022, 10:29
В eBay есть эти чипы (https://www.ebay.com/itm/333163559681?hash=item4d92187b01:g:LJAAAOSwOwJc-cCZ&amdata=enc%3AAQAHAAAAoEDZLP3wn4beG%2BndTuKCOcDKzm% 2F8qi8xEPbOqBCZJEQIW4cGwvLsBfekfzpCR43ixU4YexgEO50 EL0WRATszRb%2FwCAh5f6l9Rn8L1h9FPj3PpDu6oXuIzoP6MMq 9Lfbj%2FDw%2FTqbnUPIHOazdGmqd4p0MfI9vI%2BqxyTtEu%2 BZXgXuk3MAO8jPRCwVVoynBZOvLveKpDUI9G0ZM0f1yj00CuYk %3D%7Ctkp%3ABk9SR_K7nu3iYA). Можно попросить казахстанских товарищей с этого форума привезти. Только это совсем недешево. С пересылками под 3000 руб. может выйти.
Проще присоединиться к обсуждению в соседнем треде про 8080.vhdl, или как вариант сэмулировать все на esp32. Тогда можно и кодить под 8080 и через wifi с ним работать. А платы под них готовые в алике по 200 с небольшим рублей можно найти.
Разговоры про эмуляцию надо просто отбросить. По другому нужны миллионы долларов и командировки в Зеленоград, чтобы по чесноку все что надо в чип засунуть.

hitomi2500
07.09.2022, 11:08
Это классика: 8080, z80, 8051, 8088, 80386ex, 6809, 6502 Нет никаких проблем со средствами разработки, причем начиная от ноутбуков на первом пне(другие просто не сохранились). Нет проблем с нарушением патентов и авторских прав(разработки более чем 40 летней давности. Нет проблем на имеющемся в России технологическом оборудовании. Что особенно актуально в нынешней ситуации с МЭ в России. Сегодня была публикация в Инет, что Зеленограду выделили всего 7 млрд. рублей на производство МЭ, что катастрофически мало для новых дизайнов и уменьшения проектных норм.

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

andrews
07.09.2022, 11:30
Если Вы про "Эльбрусы", то TSMC "сделала Зеленограду ручкой". Очевидно и чипы с ядром STM32 при этом тоже "накрылись медным тазом"? Сколько там было? 45 или 90 нм? А что еще можно делать на техпроцессе 130 нм кроме чипов для банковских карт? Последние и так прибыль приносили, начиная с 2021 года. Зачем туда вливать 7 млрд руб?
Как раз вот расширенные процессоры 386(освоены "Светланой"), масштабируйте! Разработчиков на них в начале нулевых было как грязи, все ЦАТС у погранцов до сих пор на них пашут. Модернизированные ядра 8051, а также все мной вышеперечисленное с периферией тоже совсем не сложно сделать и в мелкосерию запустить. У разработчиков зато проблем никаких не будет, ни со средствами разработки, ни с даташитами, ни с чем. А приостановка патентов и авторских прав агентов недружественных государств это проблема Росреестра. Депутаты уже вроде осзаботились законопроектом, о котором я уже несколько лет всюду и везде жужжу с начала импортозамещения.
Так ведь еще и пластины надо самим производить подготовленные для литографии, так как пиндосы, если что Китай "под лавку загонят" и с ними.

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


На эти копейки даже здание не построить
да ладно, а азиаты в Москве на что? Да и в Питере, хотя москвичи постарались во всем для того, чтобы питерское производство МЭ угробить, с конца 60-х прошлого века, на закрытых автомобильных сборочных заводах с огромными простаивающими теперь без дела корпусами ( спасибо Матвиенко) что-нибудь замутить можно. Хотя бы под ту же автомобильную электронику предыдущих поколений. Вряд ли у Ирана и Сев. Кореи с этим проблем нет. А на Китай надейся - да сам не плошай!
Кроме даже к 1 млрд. госинвестиций вполне можно привлечь 2-3 млрд. рублей частных инвесторов

hitomi2500
07.09.2022, 11:46
На 130нм теоретически можно сделать многое, если говорить о процессорах, то это уровень Pentium 4, никак не 8080. Но это в теории, на практике под знаменем чучхе сделать что-то всегда в разы труднее. И дело не только в пластинах, кроме них для производства ещё нужна куча всего, что могут прикрыть. Поэтому делать то, для чего материалы ещё не прикрыли, или получается провезти в обход - это всё, на что способно производство сейчас. И потом, в хорошие времена разработка чипов делается обычно под покупателя, а в трудные, да без финансирования, да на устаревшей архитектуре... Может и взлетит конечно, но риск слишком велик, вряд ли кто на это пойдёт. Те же RISC-V выглядят в этом плане привлекательнее.

M80
07.09.2022, 12:36
В eBay есть эти чипы
Не, паять не хочу. Я тут Ардуино подключал к Z80 (всего 2 чипа), и то паял фиг знамо сколько времени.)
Просто там была компактная плата со всей периферией и HDD в т.ч. Мы открывали и ахали тогда.)
Касательно Зеленограда. У нас был филиал НИИМП (МП - микроприборов), головная фирма в Зеленограде. Так даже таксисты не знали куда везти.) Почила в 90-х, как и многие.(

andrews
07.09.2022, 12:56
Голый процессор 386 это 1-1.5 мкм. В расширенном многое чего есть дополнительно. Меньшая норма это еще и повышение тактовой частоты и снижение энергопотребления.100 MHz для системы на одном чипе с флэшью лучше, чем 20MHz. Средства разработки любой десктоп или ноутбук, ассемблеры, яву все доступно. RISC-V 64 bit потянет ли 130 нм? Память? 64-bit АDC, DAC? У аналоговой схемотехники особенно вкупе с цифровой насколько я помню про Analog Devices и TI свои проблемы.
Так что целиком 64-битную аналого-цифровую систему на одном чипе при 130 нм вряд ли сделаешь? Да и цены очевидно начнут с $200 за чип?
А я о массовых чипах стоимостью максимум до $20. Чтобы области применений было много. От медтехники до автомобильной электроники.
Да и выводы желательно на последовательных скоростных шинах. M80 прав. А то четырехслойки для макетов городить, да если еще в bga корпусах. А ну их нафиг!

M80
07.09.2022, 13:06
Да и цены очевидно начнут с $200 за чип? Да, да. Помнится Intel заявлял в 1975-м: "никогда микропроцессор не будет стоить дешевле $100".)
Так же как и "640КБ хватит на всех" - общеизвестное выражение.)

Sandro
08.09.2022, 09:21
RISC-V 64 bit потянет ли 130 нм? Память? 64-bit АDC, DAC?

Потянет. А вот 64-бит ADC/DAC не бывает. Законы физики не велят.

andrews
08.09.2022, 14:22
32 bit уже есть 32-Bit, Precision, 38-kSPS, Analog-to-Digital Converter (ADC)
with Programmable Gain Amplifier (PGA) and Voltage Reference. Тут даже больше вопрос к датчикам и соединениям. И фильтрации помех. Но как я понимаю, чтобы распознавать из космоса предметы с точностью до 1 мм 32 bit недостаточно. И чтобы из летающего со скоростью 300 км/ч беспилотника снимать карту местности с точностью до 1 мм(трещины в асфальте) тоже. Для фиксации активности коры головного мозга человека с точностью до нейрона тоже.

Sandro
08.09.2022, 15:35
Тепловой шум не даст. И таки 2^64 -- это очень, очень много. 18,446,744,073,709,551,616

Трещины в асфальте снимать из космоса не получится. Атмосфера ограничивает разрешение величинами порядка 30..50 см, и то в спокойную погоду.

andrews
08.09.2022, 15:45
Про трещины я без прикола. Если поставить на авто стоимостью от 3 млн. рублей систему, передающую координаты и качество дорожного покрытия, то можно много денег стране сэкономить. А чтобы владельцам стимул был - налоги снизить и скидку на бензин. Про беспилотники другой

А в таракане 1 млн. нейронов между прочим. В муравье 250 тыс. нейронов. Это к вопросу о миниатюризации в живой природе. Что-то тепловой шум ни им,ни вирусам не помеха. И на чем эти твари бегают? Людям бы для их технологий такие моторы. И если кто-то там живую блоху подковал, то зеленоградцам бы программируемого робота размером хотя бы с таракана изваять!

Zidane
26.10.2023, 18:40
F809 это вывод одиночного символа из регистра C. Там не требуется никаких стоп-кодов.

0E это не управляющий код - это символ стрелка вправо. Можно заменить 0E 21, на 0E 0E и убедиться в этом.
В эмуляторе вывод портится из-за последней команды C9 - ret. После неё стек налазит на экран, но программа переходит на адрес 0000 и выполняет новый цикл. С каждым разом всё дальше наезжая стеком на экран. Если в эмуляторе нажать ресет, то программа будет исполняться как и на реале - выведет один символ ‘!’ На экран и повиснет - улетит куда-то в неизвестность.

Непонятно что хотел топикпастер. Если вывести символ ‘!’ в бесконечном цикле на экран, то последняя команда должна быть не C9 (ret), а C3 0000 (jmp 0000). Если же вывести один раз символ и вернутся в монитор, то C3 F86C - переход к приглашению командной строки.

Периодически не дает мне покоя данная железка. По итогу откопал в журнале Радио статью про ассемблер и посмотрел как надо. Ну в общем-то мне тут и ответили, а только я прочитать не сумел. Слабак )))
Смутило другое: в приведенном примере (не суть важно каком) вызов всех подпрограмм, в т.ч. из ПЗУ происходит командой JMP. Так задумано или я опять чего-то не понял?

Этот РК - прямо как наркотик.. Один раз попробуешь, уже не слезешь так просто...

NEO SPECTRUMAN
26.10.2023, 21:39
А в таракане 1 млн. нейронов между прочим. В муравье 250 тыс. нейронов
а гыде такие цифры?

HardWareMan
27.10.2023, 07:43
а гыде такие цифры?
В таракане и муравье!

andrews
27.10.2023, 08:52
сегодня это уже как 2x2=4

Alikberov
27.10.2023, 10:52
Смутило другое: в приведенном примере (не суть важно каком) вызов всех подпрограмм, в т.ч. из ПЗУ происходит командой JMP.Если программировать/отлаживать код в Visual Studio, те же CreateWindowEx, SelectObject и т.д. - те же CALL на локальную таблицу из кучи JMP'ов, а JMP'ы уже и ведут в недры Win-API. То есть, принципиально, всё то же самое как в РК, так и в Windows.

Zidane
28.10.2023, 17:27
Так, к слову. Ежели кому хочется ассм попробовать - то на сайте rk86.ru как раз онлайн эмуль этого компьютера, если кто вдруг не знал. Довольно функциональный, хотя и без модуля цветности. Но цвет в РК такое себе. Ну так вот, в первых двух программах написано что редакторы ассемблера "... реально не работает..." работает. Нажмите последовательно "F5" и "N" и будет вам счастье. Правда там есть вполне функциональный (кросс? - я не понимать в таких словах) ассемблер, что есть круть. Просто на программку зря наговаривают...

К слову, я вот уже задавал этот вопрос, а только найти теперь никак его не могу - где скачать полный набор программ РК?

Alikberov
29.10.2023, 11:45
Так, к слову. Ежели кому хочется ассм попробовать - то на сайте rk86.ru как раз онлайн эмуль этого компьютера, если кто вдруг не знал. Довольно функциональный, хотя и без модуля цветности. Но цвет в РК такое себе. Ну так вот, в первых двух программах написано что редакторы ассемблера "... реально не работает..." работает. Нажмите последовательно "F5" и "N" и будет вам счастье. Правда там есть вполне функциональный (кросс? - я не понимать в таких словах) ассемблер, что есть круть. Просто на программку зря наговаривают...

К слову, я вот уже задавал этот вопрос, а только найти теперь никак его не могу - где скачать полный набор программ РК?Кстати, Текстовый редактор ПОБЕДИТ (https://zx-pk.ru/threads/35028-tekstovyj-redaktor-dlya-rlk-s-unwrap-rezhimom.html?highlight=) разработан и отлажен полностью в rk86.ru.

Vital72
29.10.2023, 12:09
Кого победит?

Alikberov
30.10.2023, 14:03
Кого победит?Сплав вольфрама и кобальта (https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B1%D0%B5%D0%B4%D0%B8%D1%82)?

Zidane
08.01.2024, 17:06
В общем, уперся в потолок ассемблера "Микрон".. Ну да и ладно. Скачал TASM, в DosBox его и EDIT для набора листинга. И все хорошо, все работает... Но выходной файл имеет не формат РК. Ну то есть компиляция начинается сразу с первого байта. А там же вроде еще нужно указать начальный адрес загрузки и длину программы? Или я где-то ошибаюсь?

Если коротко, нужно описание формата файла для РК. Счас в Emu80 работаю, так что нужно именно для него, хотя наверное они одинаковы для всего семейства РК-подобных...

SegaBoy
08.01.2024, 20:08
В общем, уперся в потолок ассемблера "Микрон".. Ну да и ладно. Скачал TASM, в DosBox его и EDIT для набора листинга. И все хорошо, все работает... Но выходной файл имеет не формат РК. Ну то есть компиляция начинается сразу с первого байта. А там же вроде еще нужно указать начальный адрес загрузки и длину программы? Или я где-то ошибаюсь?

Если коротко, нужно описание формата файла для РК. Счас в Emu80 работаю, так что нужно именно для него, хотя наверное они одинаковы для всего семейства РК-подобных...
А почему не используешь Прекрасный ассемблер (https://svofski.github.io/pretty-8080-assembler/)?

Pyk
09.01.2024, 11:58
А там же вроде еще нужно указать начальный адрес загрузки и длину программы? Или я где-то ошибаюсь?
Если коротко, нужно описание формата файла для РК.
Кроме заголовка с адресами нужен еще футер с синхробайтом и контрольной суммой. Еще раз посоветую утилиту bin2tape (https://emu80.org/files/?id=78), которая автоматически добавит все необходимые заголовки к полученному после tasm bin-файлу.

Zidane
09.01.2024, 12:27
А почему не используешь Прекрасный ассемблер (https://svofski.github.io/pretty-8080-assembler/)?

Ну наверное потому что он меня по ряду причин не устраивает, хотя инструмент, безусловно, удобный. Основная претензия к нему только в том, что он онлайн. А у меня основная возможность разработки только на работе в перерывах. А на том компе сети нет. Ну и в силу возраста на мелкие буквы уже не так удобно смотреть. Да, можно поиграть масштабом, но если нужно опять шаманить - какая разница? Ко всему Макроассемблер от Telemark вполне работает под Win10, как оказалось. Так что все равно будет преимущество у инструмента, который всегда под рукой. Ну и можно Notepad++ настроить или Geany. Но если уж совсем серьезно, то как среда разработки мне больше всего нравится GNUSim8085 - вот уж где редактор прям под меня сделан ))) Но сборщика там нет. При попытке собрать файл он просто сохраняет листинг...

Впрочем, утилитка скорее всего решит мою проблему. Всем спасибо за желание помочь.

janvier
13.01.2024, 09:02
Разбираюсь с пакетом Editor-Assembler от "Микрон". В описании http://www.danbigras.ru/RK86/Edit/Edit.html встретилась такая фраза, смысл которой не совсем понял:
"В режиме редактирования в текст можно вставлять отдельные псевдографические символы, нажав предварительно на клавиши "АР2", "". В режиме ввода строки этого делать не нужно - любые символы можно вводить непосредственно."
На эмуляторе Пыхонина при нажатии "АР2","\" в режиме редактирования появляется "стрелка вправо" и чего-то ждет, если нажать клавиши F2-F5, то появляются символы псевдографики, нажимаю любую другую клавишу, появляется символ с ней связанный или пищит как с F1 и все.
Вообще, интересует возможность вводить псевдографику и прочие граф. символы не кодами, а с помощью символов.

Zidane
13.01.2024, 10:03
в редакторе "Микрон" псевдосимволы вводил только с нажатой клавишей "ctrl". Уж какие символы какой клавише соответствуют не скажу - забросил и забыл за ненадобностью. Копировать нужные данные сразу в память компьютера намного практичнее.

Я так понял, что хотите заранее готовить и выводить строки из символов псевдографики. Можно просто подготовить строку db с номерами символов псевдографики, и чтобы заканчивалась на 0, а потом вывести с помощью F818h. так будет намного быстрее, чем сразу готовые строки набирать, хотя и не так наглядно.

Что-то в духе:

lxi h,msg
call 0F818h
.....
msg: db 02h,03h,01h,0


Кроме того. при таком подходе не выводится символы с кодами 7 (07h) и 27 (1Bh). В первом случае вы услышите писк, а второй является частью последовательности для позиционирования курсора и тоже Монитором нормально не обрабатывается. Ко всему вывод указанной подпрограммой намного медленнее, чем непосредственное копирование в память. Уже при выводе 5 и более строк разница более чем заметна. Хотя вроде говорят что не должно такого быть. Но я вижу. Хотя может конкретно этот момент - самовнушение.

Если так хочется выводить построчно, то сперва позиционируешь курсор
1Bh,59h,32+номер строки, 32+номер знакоместа, 0
call 0F818h

И потом последовательно копировать байт за байтом нужное число раз.

janvier
14.01.2024, 06:31
в редакторе "Микрон" псевдосимволы вводил только с нажатой клавишей "ctrl".
Спасибо, разобрался, все так и работает, в руководстве правильно было написано, что при вводе после АР2+А псевдографические символы вводятся через УС+клавиша, а если в режиме редактирования, то нужно сначала ставить АР2+\.


Копировать нужные данные сразу в память компьютера намного практичнее.
Согласен полностью, но мне нужно было выводить одиночные символы в программе, я долго не мог сообразить, как это более красиво что-ли сделать с помощью редактора, тем более что там такая возможность была. :)