nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 04:07



Reply to topic  [ 18 posts ]  Go to page 1, 2  Next
ASM TRIT 
Author Message
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 649
Location: Russia, S.- Peterburg
Reply with quote
Для развития использование троичной логики в проекта предлагаю пройти пройденные тропинки.

Начать с ASM TRIT.

Есть прекрасная книга для программистов "Языки программирования и методы трансляции" [1].

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

Я написал автору книги Сергею Залмановичу и получил разрешение использовать исходный код копилятора "О" и ассемблера в проектах.

Исходные коды ассемблера можно забрать здесь: https://github.com/askfind/computer_language_O/blob/master/OASM/ASMTABLE.PAS


Quote:
Модульная структура ассемблера будет во многом повторять
конструкцию компилятора «О». Предусматриваются драйвер
исходного текста ( AsmText ), модуль для работы с таблицей имен
( AsmTable ), лексический анализатор ( AsmScan ). Это вспомога-
тельные модули. За собственно ассемблирование будет отвечать
AsmUnit , объединяющий функции распознавателя и генератора
кода. Модуль виртуальной машины используется, разумеется,
без всяких изменений. Отвечающий за реакцию на ошибки, мо-
дуль OError также применен неизменным.


Предлагаю предложить мнемокод будущего ассемблера ASM TRIT

Пример исходного кода ассемблера:
Code:

      IN   ; X      
      IN   ; X, Y

Loop: OVER   ; X, Y, X
      OVER   ; X, Y, X, Y
      Quit
      IFEQ   ; X, Y      
      OVER   ; X, Y, X
      OVER   ; X, Y, X, Y
      NoSwap
      IFLT   ; X, Y      
      SWAP   ; Y, X      
NoSwap:
      OVER   ; Min(X, Y), Max(X, Y), Min(X, Y)
      SUB      ;
      Loop
      GOTO   ; X, Y   

Quit: DROP   ; X
      0      ; X, 0
      OUT
      OUTLN
STOP


В файле список кодов ассемблера, которые распознаёт ассемблер OASM:

Code:
procedure InitScan;
begin
   cmd := 0;
   EnterCode(cmStop, 'STOP' );
   EnterCode(cmOut, 'OUT' );
   EnterCode(cmOutLn, 'OUTLN' );
   EnterCode(cmIn, 'IN' );
   EnterCode(cmAdd, 'ADD' );
   EnterCode(cmSub, 'SUB' );
   EnterCode(cmMult, 'MULT' );
   EnterCode(cmDIV, 'DIV' );
   EnterCode(cmMOD, 'MOD' );
   EnterCode(cmNeg, 'NEG' );
   EnterCode(cmDup, 'DUP' );
   EnterCode(cmDrop, 'DROP' );
   EnterCode(cmSwap, 'SWAP' );
   EnterCode(cmOver, 'OVER' );
   EnterCode(cmLoad, 'LOAD' );
   EnterCode(cmSave, 'SAVE' );
   EnterCode(cmGoto, 'GOTO' );
   EnterCode(cmIfEQ, 'IFEQ' );
   EnterCode(cmIfNE, 'IFNE' );
   EnterCode(cmIfLE, 'IFLE' );
   EnterCode(cmIfLT, 'IFLT' );
   EnterCode(cmIfGE, 'IFGE' );
   EnterCode(cmIfGT, 'IFGT' );

{
   EnterCode(cmEnter, 'ENTER' );
   EnterCode(cmCall, 'CALL' );
   EnterCode(cmRet, 'RET' );
   EnterCode(cmSetBP, 'SETBP' );
   EnterCode(cmGetBP, 'GETBP' );
   EnterCode(cmLLoad, 'LLOAD' );
   EnterCode(cmLStore, 'LSTORE' );
   EnterCode(cmSP, 'SP' );
}
end;


1. Свердлов С.З, Языки программирования и методы трансляции. Учебное пособие. // [Текст] .- С.-Петербург .- изд. Питер .- 2007 г. - стр. 571

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


27 Apr 2018 12:27
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
askfind wrote:
Исходные коды ассемблера можно забрать здесь:
https://github.com/askfind/computer_language_O/blob/master/OASM/ASMTABLE.PAS

Прямая ссылка, а не скачивается... :-?
Непонятные нелады у меня с https://github.com/... :osad:

_________________
iLavr


27 Apr 2018 12:49
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 649
Location: Russia, S.- Peterburg
Reply with quote
Lavr wrote:
askfind wrote:
Исходные коды ассемблера можно забрать здесь:
https://github.com/askfind/computer_language_O/blob/master/OASM/ASMTABLE.PAS

Прямая ссылка, а не скачивается... :-?
Непонятные нелады у меня с https://github.com/... :osad:


Attachments:
File comment: Проект "Компилятор "О" и OASM.
computer_language_O.zip [233.46 KiB]
Downloaded 408 times

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
27 Apr 2018 12:55
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Благодарю! :kruto:
Увлекаюсь ассемблерами просто... :wink:

_________________
iLavr


27 Apr 2018 13:04
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Да начинали мы уже с ассемблера - в частности я в своём ассеблере RASM поддержал троичный виртуальный компьютер Tunguska :)

_________________
:dj: https://mastodon.social/@Shaos


27 Apr 2018 18:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Да начинали мы уже с ассемблера...

Начинали, начинали, да что-то никак не закончили... :wink:

Помнится мне, под TRIADOR кто-то обещал простенький ассемблер написать...
Нет, это не ты. Но ассемблера я что-то так и не увидел даже в зачатках. :-?

_________________
iLavr


28 Apr 2018 03:06
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 649
Location: Russia, S.- Peterburg
Reply with quote
Shaos wrote:
Да начинали мы уже с ассемблера - в частности я в своём ассеблере RASM поддержал троичный виртуальный компьютер Tunguska :)


Скачал и посмотрел TUNGUSKA.TAB . А где описание подробное синтаксиса ассемблера скачать?

Где взглянуть обсуждение идей и принципов построения ассемблера для троичных процессоров?

Code:
// TUNGUSKA.TAB - Tunguska assembler table for RASM v2.4
*ASM TABLE Tunguska
CLV    #D8 #FF
BRK    #D9 #FF
RTI    #DA #FF
 

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


28 Apr 2018 03:31
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 649
Location: Russia, S.- Peterburg
Reply with quote
Lavr wrote:
Нет, это не ты. Но ассемблера я что-то так и не увидел даже в зачатках. :-?


У меня есть опыт создания специализированного ассемблера для виртуальной машины. Виртуальная машина работает в ARM и управляет устройствами сети CAN в автомобилях.

Занять воссозданием "Сетунь".

Ищите толкового добровольца-программиста. Могу стать наставником и консультантом по реализации ассемблера.

Кстати, RASM - вполне даже решение. Написать документацию. Подготовить примеры с пояснениями. Взлетит!

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


28 Apr 2018 03:37
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
askfind wrote:
Ищите толкового добровольца-программиста. Могу стать наставником и консультантом по реализации ассемблера.

Да мы и сами умеем, без наставников... Но на всё надо время - это же хобби тут у нас.

Когда люди взялись толкнуть вместе интересный проект, просто распределяют роли или
обязанности - я об этом намекнул... :wink:
Вот "доброволец-программист" пока и "просел"... :lol:

_________________
iLavr


28 Apr 2018 03:55
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Ну у Тунгуски есть и свой родной ассемблер, и даже свой родной си - все в исходниках доступно ;)

А ассемблер Триадора надо написать, но только онлайн...

_________________
:dj: https://mastodon.social/@Shaos


28 Apr 2018 07:20
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 649
Location: Russia, S.- Peterburg
Reply with quote
Shaos wrote:
Ну у Тунгуски есть и свой родной ассемблер, и даже свой родной си - все в исходниках доступно ;).


Проект "Тунгуски" просмотрел. Автор Си дал ссылку на исходные файлы. Скачал и взглянул. Не было практической задачи. Возможно к "Сетунь" реализация может понадобиться. Я не понял главное. Для чего? Наверное хобби и страсть к новому.

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


30 Apr 2018 12:46
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Для чего? Чтобы был ещё один троичный процессор (хоть и виртуальный) ;)

_________________
:dj: https://mastodon.social/@Shaos


01 May 2018 05:04
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 649
Location: Russia, S.- Peterburg
Reply with quote
Shaos wrote:
Для чего? Чтобы был ещё один троичный процессор (хоть и виртуальный) ;)


Идея-план, очень захотелось, воссоздать в "железе" "Сетунь-1958".

Для него сделать ассемблер. Оценить можно ли использовать "как есть". Архитектура очень простая и местами неожиданная. Например, адресация к памяти. Будет необходимо расширить и добавить страницы памяти. Попытаться оценить возможность использовать троичный процессор из "Сетуни" для логических вычислений по Аристотелю (силогистика Брусенцова).

Т.е. создать нормальный набор инструментов по написанию "на человеческом" языке прикладных программ.

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)


02 May 2018 12:19
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
askfind wrote:
Попытаться оценить возможность использовать троичный процессор из "Сетуни" для логических вычислений по Аристотелю (силогистика Брусенцова).

Так есть же эмулятор "Сетуни" и есть даже вариант онлайн... :roll:

Не слишком ли долгий путь - строить аппаратный эмулятор "Сетуни" для этой "оценки возможностей"?

_________________
iLavr


02 May 2018 13:00
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 649
Location: Russia, S.- Peterburg
Reply with quote
Lavr wrote:
Не слишком ли долгий путь - строить аппаратный эмулятор "Сетуни" для этой "оценки возможностей"?


Эмулятор "Сетунь" на javascript и lisp я скачал и посмотрел. Запускал web-версию, причём поведение и реакция машины была странной. Что-то делала. Повторное обновление страницы вывела результат. Управляющие клавиши то срабатывают, то нет.

Мне хочется полноценной симуляции на языке Си. На прошлой неделе начал писать модели типов ферритовых цифровых элементов как битовых, так и тритовых. Тестирую и оптимизирую программный код модели. Очень помогла. На основании модели получился синтез схемы на цифровых микросхемах, которых не наблюдал здесь. :esmile: Ферритовый битовый цифровой элемент можно заменить 3-мя D-триггерами и парой обычной логики. Остальные троичные платки на ферритах также очевидно можно заменить 4-мя D-триггерами и логикой.

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

Запутанность в моей голове была в том, что на ферритовые цифровые элементы необходимо подавать импульсы тока. А я привык к цифровой логике, где на вход подают уровни напряжения.

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

Купил и ожидаю доставку ферритомых колец с прямоугольной петлей гистерезиса. Надеюсь повторить некоторые ферритовые цифровые элементы "Сетунь". Проведу лабораторную работу.

Конечный "железный" вариант "Сетунь-1958" конечно же будет на современных нескольких микроконтроллерах.


Attachments:
InterfaceTrit.png
InterfaceTrit.png [ 23.91 KiB | Viewed 10595 times ]
tte.png
tte.png [ 39.78 KiB | Viewed 10595 times ]
image042.jpg
image042.jpg [ 1.75 KiB | Viewed 10595 times ]

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
02 May 2018 14:06
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 18 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 11 guests


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.