nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 19 Nov 2018 11:58



Reply to topic  [ 12 posts ] 
Nedo-трансляторы для i8080 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Задача написать свой компилятор для PIC8080 показалась мне весьма интересной,
http://www.nedopc.org/forum/viewtopic.php?t=9310
поскольку была в некотором роде триединой: я сам мог ввести нужные мне ассемблерные команды в PIC8080, на основе этих команд писалась программа Теннис, которую своим же компилятором я и переводил в коды.
Ну и чтоб не изобретать на этом пути древних велосипедов, я слегка обозрел материалы в Инете на вопрос - как написать компилятор.
Честно говоря, меня это повергло в некоторое сомнение, ибо, если бы я учился писать компиляторы на этом материале - я, наверное, осилить такую задачу не смог бы...
Хотя встретились вещи и совершенно удивительные - компилятор, который может скомпилировать сам себя на GW-Basic, к примеру, и некоторые другие интересные проекты...

http://www.soft-info.ru/downloads/cat207
http://www.vbnet.ru/articles/showarticle.aspx?id=131
http://www.kulichki.net/kit/
http://exmortis.narod.ru/
последний сайт мне асабливо понравился, хотя конечно накопать можно еще много чего.

Основная мысль меня просто убила - написать компилятор тяжело, противно, и трудно довести это дело до победного конца, а лучше всего написать транслятор в мнемоники какого либо другого известного и распространенного языка, а уж потом готовым компилятором всё и компилить.
Может, конечно, это и не везде так, но такова основная мысль распространенного материала - Компилятор пишется так...
http://www.cast.h1.ru/Articles/compiler_writes_as.shtml

В общем, я плюнул на эти источники и написал компилятор PIC ASSM i8080 так, как умел сам, как учился сам, проводя в древние времена реверс-разработки программ-Ассемблеров для 8-битных процессоров.

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

EDUCATIONAL ASSEMBLER I8080 VERSION 2.0 for MS Windows 95/98
Copyright 1995-2000 by Konstantin Zheludev

попробовать её можно отсюда:
http://sgu-wap.narod.ru/PIC8080/Assm80.rar

я думаю, автор не обидится на меня, ибо откуда я её взял - не запомнил, значит будем считать, что я бесплатно делаю ему рекламу. :lol:
Ничего потрясающего в этом EDUCATIONAL ASSEMBLER не было, и мои программы от Специалиста_MX, пусть тот же Теннис,
http://sgu-wap.narod.ru/Tennis/PONG.rar
этот EDUCATIONAL ASSEMBLER скомпилировать не смог, поскольку сразу не нравилось ему слово ORG, а потом он ругался на длину программы и т.д.

Короче, ничего кроме собственных примеров EDUCATIONAL ASSEMBLER я на нём не скомпилировал, но удивила меня одна опция - перевести коды ассемблера i8080 в мнемоники Z80 (что вполне не фантастично) и в мнемоники i8086 - что уже более интересно!
Свои примеры он действительно переводит, хотя несколько по-своему. И поскольку скопилировать его текст сразу не получится, нет обрамления типа
Code:
сode_seg    SEGMENT PARA 'CODE'
            ASSUME  CS:code_seg, DS:code_seg, SS:code_seg
;
            ORG  100H
BEGIN_COD:

...
code_seg    ENDS

            END  BEGIN_COD


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

А сам вопрос весьма интересен, поскольку Intel всегда утверждала, что программы под i8080 можно практически безболезненно перекомпилировать под x86, переписав их в новых мнемониках.
То что это правда - я знаю, сам так делал, когда еще только осваивал IBM PC XT и перетаскивал под него всё что было наработано на Специалисте, но специальных программ мне ни попадалось ни одной.
Год назад я обсуждал этот вопрос с Витей Пыхониным, он таких программ тоже не видел, но хотел бы что-то подобное приделать к своему эмулятору.
Я тогда загорелся идеей и набросал небольшой проект, который ни протестировать ни довести до ума в то время не случилось. Но, встретив этот EDUCATIONAL ASSEMBLER, я свой проект раскопал и скомпилировал на нём компилятор ассемблера :D ASSM_MX(4К) от Специалиста_МХ, расковыривая который, я в своё время, собственно и учился как писАть компиляторы. Каково же было удивление, когда этот весьма крупный исходник после трансляции в коды x86, совершенно безошибочно скомпилировался под Tasm !
Я не помню, что я еще хотел добавить тогда в этот проект, зачем-то там 3 поля внизу задействованы... но, на мой взгляд, основную задачу этот софт выполняет.

Интерфейс понятный интуитивно,

Image

хелп есть,

http://sgu-wap.narod.ru/PIC8080/Help.HLP

чего еще надо - не знаю, а поэтому выкладываю его здесь

http://sgu-wap.narod.ru/PIC8080/ASMWizard.rar

для тестирования и битья, вдруг что хорошее получилось, а может и ашыпки есть... :wink:

Исходник ASSM_MX там тоже прилагается.

PS. Я кстати решил дотащить его до рабочего варианта под DOS - интересно что выйдет. Коды и алгоритм менять не буду, как доделаю, тоже выложу здесь.


06 Sep 2010 09:45
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17140
Location: Colorado
Reply with quote
Post 
Я не совсем понял - речь идёт о компиляторе или об ассемблере?...

_________________
:eugeek: https://twitter.com/Shaos1973


06 Sep 2010 15:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Quote:
Я не совсем понял - речь идёт о компиляторе или об ассемблере?...


Я сам не совсем понял, чего ты не совсем понял и в каком месте ?
Компилятор мнемоник ассемблера обычно называют Ассемблер... :wink:


06 Sep 2010 17:45
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 533
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
А что подразумевается под названием PIC8080?

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


06 Sep 2010 23:24
Profile WWW
God

Joined: 02 Jan 2006 03:28
Posts: 1371
Location: Abakan
Reply with quote
Lavr wrote:
А сам вопрос весьма интересен, поскольку Intel всегда утверждала, что программы под i8080 можно практически безболезненно перекомпилировать под x86, переписав их в новых мнемониках.
То что это правда - я знаю, сам так делал, когда еще только осваивал IBM PC XT и перетаскивал под него всё что было наработано на Специалисте, но специальных программ мне ни попадалось ни одной.
Очень сомнительна полезность оного. В первую очередь из-за специфики устройств ввода-вывода на разных платформах, даже на одном типе процессора. Т.е. реальные программы "перетаскивать" не получится, и единственная область применения - перенос сложных алгоритмов. С другой стороны, алгоритмы все-таки принято записывать не в мнемониках ассемблера... imho.


07 Sep 2010 03:00
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17140
Location: Colorado
Reply with quote
Lavr wrote:
Quote:
Я не совсем понял - речь идёт о компиляторе или об ассемблере?...


Я сам не совсем понял, чего ты не совсем понял и в каком месте ?
Компилятор мнемоник ассемблера обычно называют Ассемблер... :wink:


Ассемблер написать дело нехитрое - я вон свой RASM написал 13 лет назад - и до сих пор юзаю, а вот язык чуть более высокого уровня - вот это уже задача (я с такой несколько лет боролся, пока не получил более менее приемлимый результат в лице RW1P2).

_________________
:eugeek: https://twitter.com/Shaos1973


07 Sep 2010 18:32
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
2_Shaos

Shaos писал(а):

Quote:
Ассемблер написать дело нехитрое - я вон свой RASM написал 13 лет назад - и до сих пор юзаю


Я нигде не говорил, что дело хитрое, другой вопрос, что в некоторых статьях Инета говорится противная мысль.
Я не соревновался с "13-летним назад" :wink: Шаосом в написании каких-либо языков, желаю успехов в юзаньи.

2_jdigreze

jdigreze писал(а):

Quote:
Очень сомнительна полезность оного.


А мне кажется, что полезность очевидна. Обзор Инета показывает, что 80-й проц часто используют в качестве "автомата калашникова" в учебных заведениях. О чем я там в хелпе и упомянул.

Quote:
...из-за специфики устройств ввода-вывода на разных платформах, даже на одном типе процессора...


Полный автоматический перенос даже в рамках 2-х систем на 80-м
проце, естесственно, может обеспечить только "обыкновенное чюдо". :lol:

Quote:
...реальные программы "перетаскивать" не получится...


Я хочу рискнуть показать, что с минимальными затратами времени получится. Для этого и перетранслировал ASSM_4k от Специалиста.

Quote:
...алгоритмы все-таки принято записывать не в мнемониках ассемблера...

А если они были на ассемблере написаны, то в чем? Или в Intel дураки сидели, когда сделали i8086? а потом откатили его до i8088 и заверили всех в лёгком переносе существующего уже софта для 8-битной платформы?

2_fifan

fifan писал(а):

Quote:
А что подразумевается под названием PIC8080?


Вот тут написано: http://www.nedopc.org/forum/viewtopic.php?t=9310

Lavr писал(а):

Quote:
Ну и поскольку к i8080 всё максимально приблизилось, то назовём сий дивайс Pic8080.


10 Sep 2010 03:30
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Nedo-транслятор xlt86

Случайно мне попался dos-вариант подобной программы. Не знаю - плох он или хорош, не пробовал. Но если кто-то подобное делал, значит оно кому-то было нужно...
http://sgu-wap.narod.ru/PIC8080/xlt86.zip

xlt86.zip (~18.5kb) i8080 to i8086 (c) 1984 by Frank J. Zerilli, ms-dos port by Craig Derouen
http://www.exmortis.narod.ru/comp_src/xlt86.zip

Переводит ассемблерный текст процессора Intel 8080 в ассемблерный текст Intel 8086.
Автор: Фрэнк Церилли; ms-dos адаптация: Крэйг Дёруан
Язык исходника: .asm (Tasm)
Выходной язык: .asm (i8086)
Документация: комментарии на английском


28 Dec 2010 21:25
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Джентльмены! У кого Венда-7 есть, не сочтите за труд - попробуйте продукт?

http://sgu-wap.narod.ru/PIC8080/ASMWizard.rar

А то я как-то, может опрометчиво, сказал Shaos-у, что всё, что я пишу под
Вендой-98, пока ещё не вступало в в конфликт со старшими версиями... :-?

Даже самому чрезвычайно интересно! :wink:

_________________
iLavr


30 Aug 2012 00:03
Profile
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2150
Location: От туда
Reply with quote
Post 
Доставлено:
Image


30 Aug 2012 01:19
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
Доставлено:
http://savepic.net/3335120.png

Спасибо Хардыч! :lol:
Вот я так и думал - шрифты КОИ-8 надо с программой таскать... но не сделал... :(

Но если не повисло - уже хорошо! Хотя там виснуть-то нечему - текстовый
перекодировщик с записью в файл фактически...

_________________
iLavr


30 Aug 2012 01:41
Profile
Supreme God
User avatar

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

_________________
iLavr


24 Oct 2018 13:09
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 12 posts ] 

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.