Сетунь-1958 и ассемблер на FASM

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Сетунь-1958 и ассемблер на FASM

Post by askfind »

Здравия, всем!

Необходима консультация. Кто-то из участников форума поделился решением - написал файл макросов для троичной ЭВМ "Сетунь-1958". Исходные файлы сохранились, а переписка и ветку на форуме не обнаружил .

# flat assembler g - examples library
$ tree -L 2
.
├── core
│   ├── docs
│   ├── examples
│   ├── fasmg
│   ├── fasmg.exe
│   ├── fasmg.x64
│   ├── hex.hex
│   ├── hex.inc
│   ├── license.txt
│   ├── README.md
│   ├── readme.txt
│   ├── set
│   ├── setun_1958.inc
│   ├── source
│   ├── test
│   ├── test.asm
│   └── test.bin
├── packages
│   ├── tar
│   ├── utility
│   ├── webassembly
│   └── x86
└── README.md

9 directories, 14 files
SETUN-1958/fasmg/fasmg$

Прикрепляю к посту:
$ tree -L 1
.
├── build.sh
├── hex.inc
├── setun_1958.inc
├── test.asm
├── test.bin
└── test.hex
Пример test.asm компилируется. В файле setun_1958.inc реализованы макросы. Создаётся бинарный и hex-файлы.

Есть гуру в FASM, чтобы помогли понять формат выходного файла bin и перевод его в формат 9-ричных троичных кодов для эмулятора "Сетунь-1958" на языке С?

9-ричный код в ASCII формате для ввода в ферритовую память:

Code: Select all

101x0
00030
zwwy3
00yz0
zwx31
00xy0
zww33 
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Сетунь-1958 и ассемблер на FASM

Post by askfind »

Разработка ассемблера для "Сетунь-1958"

Перечитываю документацию. Исследую примеры и реализацию ассемблеров для различных микроконтроллеров Intel 8051, Atmel AVR, JVM, Intel x86.

Исходные коды находятся здесь:
1) flat assembler g - examples library - https://github.com/tgrysztar/fasmg

Документация:
2) flat assembler g. User Manual - https://github.com/tgrysztar/fasmg/blob ... manual.txt


В троичной "Сетунь-1958" ферритовая память простирается от FRAM(-121:0:+121).

Задача #1:Сформировать выходной файл в формате симметричной девятеричной системе, которая состоит из операций троичной "Сетунь".


Пример фрагмента дампа зоны ферритовой памяти интерпретатора ИП-5 для чисел повышенной точностью '01_ip5_fram_0_setun.txs'
02XZX
0Z00X
0Z1Z0
033ZX
01Y1X
Z1XXX
...
Вот заготовок конвертации из десятичных чисел (-9841,9841) в формат симметричной девятеричной системы (WXYZ01234).

Подробнее об алфавите троичной симметричной системы счисления читайте здесь: http://trinary.su/kb/18153031-8224-4357 ... 632cf.html


Файл txs.inc для fasmg

Code: Select all

define TXS
format binary as 'txs'

; Краткая запись троичных симметричных кодов
; в симметричной девятеричной системе
virtual at 0
	TXS.digits:: db 'WXYZ01234'
end virtual

; Конвертировать INT16 to TXS
macro TXS.byte value
	;TODO  db 
end macro
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)