nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 14 Nov 2019 16:29



Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Ассемблер для Специалиста на Z80 
Author Message
Doomed

Joined: 06 Oct 2006 04:17
Posts: 589
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Хотел спросить у знающих. Был ли когда-нибудь ассемблер для Специалиста в мнемонике Z80. Ведь был же Специалист на Z80, вернее МХ - схема юзанья процессора - http://www.spetsialist-mx.ru/index17.html.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


26 Jul 2019 07:22
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Был такой ассемблер но не специально для "Специалиста". Использовал он стандартные вызовы,
у меня со времён "Микроши" имеется.
Только он по функционалу DEBUG oт М$ напоминал, а не полноценный ассемблер.

На мой взгляд, так ассемблер из пакета RAMFOS весьма удобный, но он не поддерживает мнемоники
z80, к сожалению.

_________________
iLavr


26 Jul 2019 08:08
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 589
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Интересует только для Z80. Для Ориона был такой ассемблер?

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


26 Jul 2019 23:06
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Он подходит и для Ориона... Он вопще-то от CP-M.

_________________
iLavr


27 Jul 2019 15:36
Profile
Maniac
User avatar

Joined: 19 Feb 2017 04:46
Posts: 308
Location: С-Петербург
Reply with quote
fifan wrote:
Для Ориона был такой ассемблер?
Для ОРИОНА было написано несколько любительских ассемблеров для Z80. Лучший из них, естественно, TASM$ от В.Пушкова.

А для Специалиста вряд-ли есть приличный отечественный ассемблер в мнемониках Z80. Даже для КР580 и для ОРИОНА было написано всего три ассемблера - А.Балдина, А.Вакуленко и В.Пушкова. Все они на порядок грамотнее, и полезнее чем ассемблер МИКРОН, т.к позволяют транслировать большие программы, для чего используют квазидиск. Во вложении ассемблеры для ОРИОНА А.Балдина (для КР580 и Z80), - их несложно адаптировать для Специалиста, если в него добавлено доп.ОЗУ пригодное для организации эл.диска.

А сейчас (после появления Интернета) пригодными для адаптации для Специалиста стало и более десятка иностранных (примитивных и не очень) любительских ассемблеров для Z80 из 70-тых и 80-тых. Самые простые характерны тем, что у них адрес JR-перехода задаётся в виде $-Label. Чтобы долго не искать и скачивать по одному вот подборка иностранных ассемблеров https://yadi.sk/d/W4HkacEdJcvWSg.
Attachment:
ASMS.rar [9.99 KiB]
Downloaded 20 times


Last edited by barsik on 28 Jul 2019 17:52, edited 1 time in total.



28 Jul 2019 15:06
Profile
Maniac

Joined: 18 Nov 2013 16:15
Posts: 203
Location: все оттуда ;)
Reply with quote
http://www.z80.info/z80sdt.htm


28 Jul 2019 15:26
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 589
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
А что мне с ссылкой из последнего топика делать? Я вроде не писал, что мне нужны утилиты для работы на ПС.

Я давно пользуюсь "Ассемблером 512 для Z80" от Вячеслава Медноногова. Но возникла ситуация, когда мне нужно отлаживать программы для SD контроллера от Vinxru непосредственно. Никакой эмулятор данный контроллер не поддерживает. И что каждый раз записывать пзушку и совать в Специалист (я использую Сябр)? Выход из положения железный эмулятор ПЗУ с загружаемым в него образом ПЗУ. Не знаю хватит ли мне сил его собрать (схема, плата есть, нет поддержки для пика - ещё не придумал :no: ).

Эти сложности можно обойти сразу отлаживать программу в самом Специалисте. Ну вот такой я не стандартный - люблю мнемонику Z80, а не ВМ80.

В атаче схема железного эмулятора.


Attachments:
ROMemullator1.pdf [86.61 KiB]
Downloaded 23 times

_________________
:arrow: Сайт о ПК "Специалист" и его клонах
29 Jul 2019 12:10
Profile WWW
Doomed

Joined: 06 Oct 2006 04:17
Posts: 589
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Сам решил сделать ассемблер для Z80 под Специалист МХ. Принцип запуска понимаю. Исходный текст находится с адреса #1100. Кодовая таблица мнемоник у меня получилась большая - 1981 байт, а ещё сам ассемблер что-то будет занимать. В 2048 байт (столько занимает в ПЗУ RAMFOS) я не влезу. Кодовая таблица мнемоник у меня имеет такой формат:

NOP 00 00
LD BC, 02 01
LD (BC),A 00 02
INC BC 00 03

Собственно сама мнемоника, байт типа мнемоники (0,1,2,3 или 4) и 16-й код команды.

Наверное в самом ассемлере Assm_MX V3.3 из RAMFOSа таблица по другому шифруется (по крайней мере я не нашёл текстовых вкладок). Подскажите как там всё сделано.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


05 Aug 2019 11:38
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Наверное в самом ассемлере Assm_MX V3.3 из RAMFOSа таблица по другому шифруется (по крайней мере я не нашёл текстовых вкладок). Подскажите как там всё сделано.

Может тебе исходник дать ассемБлера из RAMFOS? Я только не уверен, что это Assm_MX V3.3 у меня...
Но алгоритм там, я бы не сказал, что зело простой...

_________________
iLavr


05 Aug 2019 14:25
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 589
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Если не жалко, то дай. Посмотрю как там все устроено.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


05 Aug 2019 20:40
Profile WWW
Maniac
User avatar

Joined: 19 Feb 2017 04:46
Posts: 308
Location: С-Петербург
Reply with quote
Post .
В выложенной ранее коллекции ассемблеров 8080/Z80 было 5 CP/M ассемблеров с исходниками, вот они отдельно.

fifan wrote:
Сам решил сделать ассемблер для Z80 под Специалист MX.
Это очень самоотверженное решение. Для этого надо много энтузиазма.

По моему опыту, работая фанатично, ассемблер КР580 с возможностями ассемблера МИКРОН (с объёмом кода ~3 кб) довольно легко пишется за 4-5 дней (не напрягаясь за неделю). С добавкой условной компиляции и вычислений сложных выражений (со скобками) уходит ещё около недели (объём кода достигнет ~5 кб).

А чтобы обслужить хотя бы большинство макрокоманд, т.е получить полноценный макроассемблер уйдёт, как минимум ещё 2 месяца (объём кода возрастёт до 10 кб или более, исходник более 80 кб). И это тяжёлая работа. Для Z80 трудоёмкость надо увеличить на 20%. Я это знаю, т.к сам писал ассемблер КР580 для Специалиста в начале 90-тых (дописал уже для ОРИОНА, причём за несколько лет).

Для сравнения, исходник ассемблера М80 (обычный для 8080/Z80 с объёмом 16 кб) имеет дизассемблированный исходник в 190 кб (см.по ссылке выше) и доводили его профессионалы много лет.

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

Будучи на вашем месте, я бы попробовал использовать ассемблер TASM$ В.Пушкова для ORDOS. Посмотрите его в эмуляторе ОРИОНА. Вряд-ли даже иностранные Z80-ассемблеры лучше, В.Пушков доводил его много лет. Чтобы его использовать возможно будет достаточно смоделировать в ОЗУ среду ORDOS, т.е входы в ПЗУ ОРИОНА и коды ORDOS загрузить в ОЗУ B800...BFFF.

Обычный Специалист легко совместить по входным точкам F800 с РК86 (это делалось простой схемой обеспечивающей, чтобы участок ПЗУ C800...C8FF читался и в области F800...F8FF). А в MX такую среду получить возможно ещё проще.

А если с TASM$ возникли бы сложности, то я бы адаптировал ассемблер CP/M (вероятно Z80ASM24, я с ним уже когда-то разбирался). Аналогично, как с ORDOS, чтобы работало без дисковода можно с'имитировать среду CP/M для ассемблеров сделанных под CP/M.
fifan wrote:
Подскажите как там всё сделано.
О... это вам здесь вряд-ли кто скажет (а вот на zx-pk.ru есть асмо-писатели). В фирменных ассемблерах всё очень сложно. Придётся долго разбираться даже имея исходник. Часть кодов 580 (например MOV/LD 40...7F и др.) вычисляются без таблиц. Фирменные грамотные ассемблеры имеют таблиц очень мало. А любительские ассемблеры имеют много таблиц, это тупо, но проще.

Я делал таблицу не одну общую, а несколько, для каждой группы команд своя структура. Общая таблица расточительна и невыгодна для 8-ми разрядки. Например, для однобайтовых команд это просто текст самой мнемоники и один байт кода. Первым байтом в таблице идёт байт задающий длину мнемоники (например, 3), далее с шагом 3+1 перечислены все однобайтовые мнемоники длиной в 3 буквы, затем число 4 (задающее следующую длину мнемоники) и далее с шагом 4+1 перечислены все однобайтовые мнемоники длиной в 4 буквы и т.д. Это можно посмотреть в файле TABLE.INC вот здесь. Видел, что в M80, по крайней мере в одном месте, команды сгрупированы в таблицы по первой букве мнемоники.

А вот когда экономить ОЗУ не требуется, то проще не думать, а применить огромную таблицу. Когда я писал кросс Z80 мини-ассемблер и кросс Z80 мини-дизассемблер на ассемблере 8086 для отладчика в эмуляторах РК86 и ОРИОНА, то я так и сделал. Конечно мини-ассемблер без меток и выражений намного проще, чем полноценный ассемблер, потому на написание мини-ассемблера у меня ушёл всего один день (см. здесь), потому, что я не заморачивался, чтобы сделать по-умному, не экономил ОЗУ. Но для 8-ми разрядки ассемблер всегда делают по умному, почти без таблиц. .


06 Aug 2019 02:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Если не жалко, то дай.
Жалко - оно, знаешь ли, у пчёлки... :lol:

Я переспросил лишь с одной целью: ты хочешь посмотреть, как устроен и работает Ассемблер
под RAMFOS "Специалиста" в мнемониках К580ВМ80.
А то скажешь потом, что тебе не то, что надо дали. :wink:

Вот эти исходники:
Attachment:
ASSM4K.zip [7.38 KiB]
Downloaded 18 times

Собираются безошибочно самим этим Ассемблером из RAMFOS "Специалиста".
Исходники достаточно прокомментированы, Ассемблер может работать и с другого
адреса, если нужно посмотреть принцип его работы под отладчиком.

А болтунов не слушай... Как говорил председатель Мао:"Всё - в наших руках!" :ewink:

_________________
iLavr


06 Aug 2019 08:10
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 589
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Спасибо, посмотрю.
Lavr wrote:
А болтунов не слушай...

Я и не слушаю. Он мне и на соседнем форуме надоел.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


06 Aug 2019 08:19
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Вспомнил, что вобще-то я его уже один раз выкладывал здесь: Компиляторы ассемблера
И что-то там писал по этому поводу...

_________________
iLavr


06 Aug 2019 08:46
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 589
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Для сокращения таблицы мнемоник здесь, как я предполагал, одной из групп, например MOV присваивается одно число. Буду дальше разбираться.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


06 Aug 2019 08:48
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 16 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.