nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 Mar 2024 23:31



Reply to topic  [ 361 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 25  Next
Троичная ЭВМ "Сетунь" (1958) 
Author Message
Novelist

Joined: 16 Jun 2018 14:35
Posts: 25
Reply with quote
askfind, большое спасибо за разъяснение по адресации и переходам.
(оффтоп от сетуни:)
по поводу BCTD это элементарное представление троичного числа битами: каждый трит кодируется 2мя битами, 1 бит отвечает за положительность трита, другой за отрицательность, для ускорения операций сдвига чередование положительных и отрицательных бит происходит не для каждого трита, а для целой последовательности из 9 тритов представляющих трайт.
BCTD EOF - переменное содержимое последних 2-3 байт, во первых длинна BCTD файла может быть строго из значений "2N + (N+3)/4", во вторых само значение, вернее битовая маска EOF варьируется в зависимости от длины файла, что сразу собой представляет и сигнатуру и своеобразную контрольную сумму.
Есть еще PBCTD, отличие упакованного представления то, что каждый трайт кодируется переменным числом битов, минимальным и достаточным для однозначного определения всех тритов трайта, т.е. первые 9 бит кодируют положительность тритов трайта, а вот следующие биты кодируют только триты значение которых не однозначно (т.е. только те, которые могут быть либо нулевыми либо отрицательными), EOF в PBCTD кодируется набором битов недостаточным для определения трайта, т.е. последовательностью от 1 до 17 нулевых битов, берется максимально возможная последовательность таких нулевых битов, чтобы поместиться на границу байта.
PBCTD представление может быть удобным для передачи по сети, в то время как для эмуляции максимально быстрое представление BCTD, опять же оно максимально быстрое только в сдвиговых операциях (т.е. в умножении и делении на степени тройки), остальные же операции будут эмулироваться десятком или несколькими десятками бинарных операций, что конечно не медленнее других представлений, но и не очень то быстрее.
Где конкретно первоисточники этих форматов? не знаю. там и сям. частично даже на этом форуме.


27 Feb 2021 14:11
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
ProMiNick wrote:

BCTD это элементарное представление троичного числа битами: каждый трит кодируется 2мя битами, 1 бит отвечает за положительность трита, другой за отрицательность, для ускорения операций сдвига чередование положительных и отрицательных бит происходит не для каждого трита, а для целой последовательности из 9 тритов представляющих трайт.

BCTD EOF - переменное содержимое последних 2-3 байт, во первых длинна BCTD файла может быть строго из значений "2N + (N+3)/4", во вторых само значение, вернее битовая маска EOF варьируется в зависимости от длины файла, что сразу собой представляет и сигнатуру и своеобразную контрольную сумму.

PBCTD, отличие упакованного представления то, что каждый трайт кодируется переменным числом битов, минимальным и достаточным для однозначного определения всех тритов трайта, т.е. первые 9 бит кодируют положительность тритов трайта, а вот следующие биты кодируют только триты значение которых не однозначно (т.е. только те, которые могут быть либо нулевыми либо отрицательными), EOF в PBCTD кодируется набором битов недостаточным для определения трайта, т.е. последовательностью от 1 до 17 нулевых битов, берется максимально возможная последовательность таких нулевых битов, чтобы поместиться на границу байта.


Не прояснил для себя введения Вами несколько сущностей. Где посмотреть программный код объявления типов данных для тритов и трайтов?


Мне было важно использовать определения, которые легко обрабатывать двоичными ARM процессорами.


В работе Рамиль Альварес Х. Алгоритмы троичной арифметики. – М.,Фонд «Новое тысячелетие», 2012. – 20 с. были предложены троичных типы данных:

Code:
/* Тип данных троичное целое число */
typedef struct trin {
    int n;
    int trit[18];
} trit_t;

/* Тип данных троичное с плавающей запятой */
struct ftrin {
   int8_t n[5];
   int8_t trit[15];
};


Попробовал эту версию. Удобно для программистов. Наглядно, легко анализировать исходный код. Тип данных 'int' - классический для всех микроконтроллеров. Недостатки - медленная работа с тритами в числе.


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

Code:
/**
 * Типы данных для виртуальной троичной машины "Сетунь-1958"
 */
typedef uint32_t trishort;
typedef uint64_t trilong;
typedef uintptr_t addr;

typedef struct trs {
   uint8_t  l;         /* длина троичного числа в тритах         */
   trilong tb;       /* двоичное битовое поле троичного числа    */
} trs_t;


Большая часть функций - это операции с двоичными полями бит. Т.е. можно реализовать в следующих версиях на ассемблере микроконтроллера.


Attachments:
Ternary arithmetic algorithms.pdf [812.53 KiB]
Downloaded 230 times

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
28 Feb 2021 01:24
Profile WWW
Novelist

Joined: 16 Jun 2018 14:35
Posts: 25
Reply with quote
Code:
/* Тип данных BCTD */
struct tryte
{
  uint16 positive : 9;
  uint16 negative : 9;
};

/* Тип данных BCTD */
struct trites
{
  uint8 pos1 : 1;
  uint8 pos2 : 1;
  uint8 pos3 : 1;
  uint8 pos4 : 1;
  uint8 pos5 : 1;
  uint8 pos6 : 1;
  uint8 pos7 : 1;
  uint8 pos8 : 1;
  uint8 pos9 : 1;
  uint8 neg1 : 1;
  uint8 neg2 : 1;
  uint8 neg3 : 1;
  uint8 neg4 : 1;
  uint8 neg5 : 1;
  uint8 neg6 : 1;
  uint8 neg7 : 1;
  uint8 neg8 : 1;
  uint8 neg9 : 1;
};

не силен я в высокоуровневых языках, кажется так определяются битовые поля
оба варианта собственно и есть 18 бит на 1 трайт, по 2 бита на трит.

(я собрался реализовывать под х86, но полезную логику переписать под ARMv4,ARMv5 и ARMv8 смогу, но интерфейс взаимодействия с пользователем и с ОС на армах это не ко мне - под полезной логикой имеется в виду только эмуляция(троичные операции над этими типами) и ничего кроме)


28 Feb 2021 02:21
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
Birchpunk, [03.04.21 11:58]

Ячейки первой «Сетуни» в работали двухбитном троичном коде, то есть один трит записывался в два двоичных разряда, четвёртое состояние двух двоичных разрядов не использовалось. Состояние каждого разряда на пульте управления отображалось двумя лампочками, а четвёртая комбинация (1, 1) не использовалась.

Кстати, в мире Birchpunk троичная логика получила широкое распространение, и все ЭВМ и прошивка роботов (даже Глаша!) тоже основаны на троичной логике, что породило ругательно-экспрессивное междометие «Триты-биты».

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

Birchpunk, [03.04.21 11:58]
Влияние было оказано даже на антропологию и культуру. Трайт из 6 тритов принято интерпретировать как целое число в диапазоне от -364 до 364. Поэтому день программиста отмечают дважды – 1 января и 30 декабря. Ходят слухи, что некоторые программисты даже не успевают сделать перерыв!

#BirchPunk #BirchPunkLore #Setun

Читай полную версию в новой рубрике #BirchPunkLore эксклюзивно в нашем канале Телеграмма.
https://t.me/birchpunkofficial/6


Attachments:
Setun2098.jpg
Setun2098.jpg [ 241.03 KiB | Viewed 5206 times ]

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
05 Apr 2021 21:24
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
ВЗГЛЯД ВО ВРЕМЕНА «Большого железа»

( Конспект статьи: https://habr.com/ru/company/ruvds/blog/553740 )

Увидел прототип будущей панели для "Сетунь". Именно такой дизайн надписи "Сетунь 58/20".

Из списка книг и работ Николая Петровича, с большим интересом , прочитал о миникомпьютерах. Хотелось понять источник идей для реализации одноадресных команд в Сетунь-1958. Миникомпьютеры серии PDP в ней подробно рассмотрены.

"Миникомпьютеры" Брусенцов Н.П. М.: Наука, 1979. — 272 с.: илл. — (Библиотечка программиста).

"...
Миникомпьютер — это тот вариант цифровой машины, в котором она стала, наконец, действенным орудием производства. Книга представляет собой попытку раскрыть сущность миникомпьютеров. Показать, каким образом достигнута необыкновенная практичность, обусловившая лавинообразное увеличение их выпуска и быстрое проникновение во все сферы жизни. Главное внимание уделено особенностям архитектуры миникомпьютеров, таким как экономная адресация и управление ходом программы в условиях короткого машинного слова, микрооперационное преобразование данных, оперативное взаимодействие с периферией. В качестве образцов подробно описана архитектура важнейших миникомпьютерных семейств. Книга рассчитана как на разработчиков, так и на потребителей миникомпьютерной техники.
...")


Attachments:
jrepov2gy4oz16blrcjlu7nad4u.png
jrepov2gy4oz16blrcjlu7nad4u.png [ 994.28 KiB | Viewed 5248 times ]
9f9ebc6eab3a96fa2505f5343777a089-d.jpg
9f9ebc6eab3a96fa2505f5343777a089-d.jpg [ 14.02 KiB | Viewed 5248 times ]

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

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
askfind wrote:
"Миникомпьютеры" Брусенцов Н.П. М.: Наука, 1979. — 272 с.: илл. — (Библиотечка программиста).

Книга есть в нашей библиотеке: Брусенцов - Миникомпьютеры

_________________
iLavr


25 Apr 2021 08:26
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
askfind wrote:
Моделирование троичных элементов на ферритовых кольцах.

Хорошая статейка попалась про логические элементы на ферритовых кольцах.
Феррит-диодные ячейки. Старая импульсная логика. История цифровой техники.

Упомянута и ячейка компенсации, которая так не понравилась Брусенцову.
Attachment:
компенс-1.png
компенс-1.png [ 28.15 KiB | Viewed 4878 times ]

_________________
iLavr


24 Jun 2021 03:09
Profile
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
Lavr wrote:
askfind wrote:
Моделирование троичных элементов на ферритовых кольцах.

Упомянута и ячейка компенсации, которая так не понравилась Брусенцову.
Attachment:
The attachment компенс-1.png is no longer available


Точнее схема прототипа троичного цифрового элемента, который использовали в лаборатории электромоделирования под руководством Л.И. Гутенмахера на феррит-диодные трехактные элементы автоматики этого типа разрабатывалась вычислительная машина ЛЭМ-1.

Главная проблема в том, что феррит-диодные трехактные элементы потребляли большой ток и ненадёжные. Брак при производстве составлял до 80%.

Фотографии феррит-диодной вычислительной машины тех лет можно посмотреть в книге [1].

Ссылки:
1. Дейнеко В.Н. Макурин П.С. Чернобай В.В., Феррит-диодные трехактные элементы автоматики и вычислительной техники. // [Текст] .- Москва, Ленинград .- Издательство Энергия .- 1966 г. - 96 стр., с чертеж.


Attachments:
Снимок экрана от 2021-08-29 11-30-27.png
Снимок экрана от 2021-08-29 11-30-27.png [ 1.24 MiB | Viewed 4478 times ]
XySsERkYZmQ.jpg
XySsERkYZmQ.jpg [ 143.29 KiB | Viewed 4478 times ]

_________________
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
29 Aug 2021 01:38
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
Новая версия эмулятора троичного "Сетунь"

Несколько месяцев назад приостановил окончательную отладку троичной машины. Испытывал несколько вариантов хранения тритов в памяти двоичного микроконтроллера. Получился запутанный код: тяжёлый и медленный.

У создателя "Сетунь" Николая Петрович Брусенцова и инженеров в 50-х годах получилась работать красиво. В том числе код математического обеспечения для "железной" троичной машины.

Решил вернуться к проекту и начать "от печки".

Создал проект на языке Golang https://github.com/askfind/goTernaryArithmetic "Троичная арифметика". Цель исследовать производительность операций над тритами и троичными числами из тритов. Язык программирования Golang включает инструменты тестирования и измерения производительности. Перевод фрагментов кода с языка С на Golang не составляет больших усилий программиста.

Лучший способ создать новый тип данных, который легко и быстро выполняется на обычных двоичных микроконтроллерах выглядит так:
Code:
typedef struct trs {
   uint8_t  l;      /* длина троичного числа в тритах         */
        uint32_t t1;      /* троичное число FALSE,TRUE */
        uint32_t t0;      /* троичное число NIL */
} trs_t;


Это троичное число длиной из 32-тритов (TRITS-32). Для машины "Сетунь-1958" это даже избыточно. Именно тип данных uint32_t в регистрах ARM-32,64 бита выполняются максимально быстро. В перспективе можно сделать реализацию троичных операция на чистом ассемблере. Компилятор языка С хорошо оптимизирует С-код проекта.

Приступил к окончательной отладке малой троичной машины:
Ссылка на проект здесь - https://github.com/askfind/Emulator-Setun-1958

Многие просят ссылки на книги, документацию, методические пособия по математическому обеспечению МЦВМ "Сетунь". Разместил в каталоге https://github.com/askfind/Emulator-Setun-1958/tree/main/Documentation проекта.

$> ./Emulator-Setun-1958$ ./emu

Code:
[ Registers Setun-1958: ]
 K: [000000000], (0), 00000
 F: [00000], (0), 000
 C: [-1-1-1-1-1], (-121), WWW
 W: [0], (0), 0
 ph1: [0], (0), 0
 ph2: [0], (0), 0
 S: [000000000000000000], (0), 0000000000
 R: [000000000000000000], (0), 0000000000
 MB: [0000], (0), 000


Благодарю участников форума за терпение и подсказки, концентрированную информацию по троичности!

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


08 Sep 2021 03:23
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
Эмулятор VM 'Setun-1958'

Новости

Выделяю в отдельные тесты троичные операции и проверку эмулятора.

Quote:
// TEST_NUMBER:
// 1 : Test Arithmetic Ternary
// 2 : Test Arithmetic TRITS-32
// 3 : Test Arithmetic Registers VM Setun-1958
// 4 : Test FRAM VM Setun-1958
// 5 : Test DRAM VM Setun-1958
// 6 : Test Instructiron VM Setun-1958
// 7 : Test Program VM Setun-1958
#define TEST_NUMBER (1)


Тест троичной арифметики с тритами:
Code:
--- TEST #1  Logic opertion trits  for VM SETUN-1958 ---

 1.1. Логическая операция NOT
 C = NOT A
 a,c {-1}-> 1
 a,c { 0}-> 0
 a,c { 1}->-1
 1.2. Логическая операция AND
 C = A AND B
 a,b,c {-1,-1}-> 1
 a,b,c {-1, 0}-> 0
 a,b,c {-1, 1}->-1
 a,b,c { 0,-1}-> 0
 a,b,c { 0, 0}-> 0
 a,b,c { 0, 1}-> 0
 a,b,c { 1,-1}->-1
 a,b,c { 1, 0}-> 0
 a,b,c { 1, 1}-> 1
 1.2. Логическая операция OR
 C = A OR B
 a,b,c {-1,-1}->-1
 a,b,c {-1, 0}-> 0
 a,b,c {-1, 1}-> 1
 a,b,c { 0,-1}-> 0
 a,b,c { 0, 0}-> 0
 a,b,c { 0, 1}-> 1
 a,b,c { 1,-1}-> 1
 a,b,c { 1, 0}-> 1
 a,b,c { 1, 1}-> 1
 1.3. Логическая операция XOR
 C = A XOR B
 a,b,c {-1,-1}-> 1
 a,b,c {-1, 0}->-1
 a,b,c {-1, 1}-> 0
 a,b,c { 0,-1}->-1
 a,b,c { 0, 0}-> 0
 a,b,c { 0, 1}->-1
 a,b,c { 1,-1}-> 0
 a,b,c { 1, 0}-> 1
 a,b,c { 1, 1}->-1
 1.4. Логическая операция SUM FULL
 C, P1 = A + B + P0
 a,b,p0,c,p1 {-1,-1,-1}-> 0,-1
 a,b,p0,c,p1 {-1,-1, 0}-> 1,-1
 a,b,p0,c,p1 {-1,-1, 1}->-1, 0
 a,b,p0,c,p1 {-1, 0,-1}-> 1,-1
 a,b,p0,c,p1 {-1, 0, 0}->-1, 0
 a,b,p0,c,p1 {-1, 0, 1}-> 0, 0
 a,b,p0,c,p1 {-1, 1,-1}->-1, 0
 a,b,p0,c,p1 {-1, 1, 0}-> 0, 0
 a,b,p0,c,p1 {-1, 1, 1}-> 1, 0
 a,b,p0,c,p1 { 0,-1,-1}-> 1,-1
 a,b,p0,c,p1 { 0,-1, 0}->-1, 0
 a,b,p0,c,p1 { 0,-1, 1}-> 0, 0
 a,b,p0,c,p1 { 0, 0,-1}->-1, 0
 a,b,p0,c,p1 { 0, 0, 0}-> 0, 0
 a,b,p0,c,p1 { 0, 0, 1}-> 1, 0
 a,b,p0,c,p1 { 0, 1,-1}-> 0, 0
 a,b,p0,c,p1 { 0, 1, 0}-> 1, 0
 a,b,p0,c,p1 { 0, 1, 1}->-1, 1
 a,b,p0,c,p1 { 1,-1,-1}->-1, 0
 a,b,p0,c,p1 { 1,-1, 0}-> 0, 0
 a,b,p0,c,p1 { 1,-1, 1}-> 1, 0
 a,b,p0,c,p1 { 1, 0,-1}-> 0, 0
 a,b,p0,c,p1 { 1, 0, 0}-> 1, 0
 a,b,p0,c,p1 { 1, 0, 1}->-1, 1
 a,b,p0,c,p1 { 1, 1,-1}-> 1, 0
 a,b,p0,c,p1 { 1, 1, 0}->-1, 1
 a,b,p0,c,p1 { 1, 1, 1}-> 0, 1

 --- END TEST #1 ---

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


09 Sep 2021 08:05
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
--- TEST #2 Operations TRITS-32 for VM SETUN-1958 ---

Пройдены тесты операций с троичными числами 32 трита.

Code:
/**
* Filename: "emusetun.c "
*
* Project: Виртуальная машина МЦВМ "Сетунь" 1958 года на языке Си
*
* Create date: 01.11.2018
* Edit date:    10.09.2021
*
* Version: 1.36
*/


Code:
./emu --test 2

...
t2.12 --- inc_trs(...)
tr1 =: [+0-0+---], 3X2W, (1958), {10-101-1-1-1}
inc_trs(&tr1)
tr1 =: [+0-0+--0], 3X2X, (1959), {10-101-1-10}

t2.13 --- dec_trs(...)
tr1 =: [+0-0-+0-], 3XYZ, (1925), {10-10-110-1}
dec_trs(&tr1)
tr1 =: [+0-0-+-+], 3XYY, (1924), {10-10-11-11}

t2.14 --- add_trs(...)
tr1 =: [+---+], 1WY, (43), {1-1-1-11}
tr2 =: [+0-+0], 1Z3, (75), {10-110}
tr1 = add_trs(tr1,tr2)
tr1 =: [+++0+], 141, (118), {11101}

t2.15 --- sub_trs(...)
tr1 =: [+0-+00--], 3Y0W, (2021), {10-1100-1-1}
tr2 =: [+0-0+--+], 3X2Y, (1960), {10-101-1-11}
tr1 = sub_trs(tr1,tr2)
tr1 =: [000+-+-+], 01YY, (61), {0001-11-11}

t2.15 --- shift_trs(...)
tr1 =: [0000+0000], 00100, (81), {000010000}
tr1 = shift_trs(tr1,-2)
tr1 =: [00+000000], 01000, (729), {001000000}
tr1 = shift_trs(tr1,-2)
tr1 =: [+00000000], 10000, (6561), {100000000}

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


10 Sep 2021 12:25
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
--- TEST #3 Operations for VM SETUN-1958 ---

Добавлен тест операций с регистрами и операциями "Сетунь-1958"

Code:
t3.6 --- S = S + R
S: [0000000000000+---+], 0000001WY, (43), {00000000000001-1-1-11}
R: [0000000000000+0-+0], 0000001Z3, (75), {000000000000010-110}
S=S+R: [0000000000000+++0+], 000000141, (118), {000000000000011101}

t3.7 --- next_address(...)
beg  C: [000--], 00W, (-4), {000-1-1}
next C: [000-0], 00X, (-3), {000-10}
next C: [000-+], 00Y, (-2), {000-11}
next C: [00000], 000, (0), {00000}
next C: [0000+], 001, (1), {00001}
next C: [000+0], 003, (3), {00010}
next C: [000++], 004, (4), {00011}
next C: [00+-0], 01X, (6), {001-10}
next C: [00+-+], 01Y, (7), {001-11}
next C: [00+00], 010, (9), {00100}
next C: [00+0+], 011, (10), {00101}

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


11 Sep 2021 00:49
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
RUN program for VM SETUN-1958 ---

Новости:
Отладка выполнения команд эмулятора троичного компьютера "Сетунь-1958".

Code:
[ Start Setun-1958 ]

 --- Reset Setun-1958 ---
[ Registers Setun-1958: ]
  K  : [000000000], 00000, (0), {000000000}
  F  : [00000], 000, (0), {00000}
  C  : [00000], 000, (0), {00000}
  W  : [0], 00, (0), {0}
  ph1: [0], 00, (0), {0}
  ph2: [0], 00, (0), {0}
  S  : [000000000000000000], 000000000, (0), {000000000000000000}
  R  : [000000000000000000], 000000000, (0), {000000000000000000}
  MB : [0000], 00, (0), {0000}

 --- Load 'ur0/01-test.txs' ---
01yz0 -> [01YZ0] addr: [----0], ZWX, (-120), {-1-1-1-10}
0110x -> [0110X] addr: [----+], ZWY, (-119), {-1-1-1-11}
101x0 -> [101X0] addr: [---00], ZW0, (-117), {-1-1-100}
11wx4 -> [11WX4] addr: [---0+], ZW1, (-116), {-1-1-101}
11wxy -> [11WXY] addr: [---+0], ZW3, (-114), {-1-1-110}
~~~~
14444 -> [14444] addr: [+++0+], 141, (118), {11101}
00300 -> [00300] addr: [++++0], 143, (120), {11110}
00300 -> [00300] addr: [+++++], 144, (121), {11111}
 --- EOF 'test-1.txs' ---


reg C = 00001
A*=[-+++-], ( -43),    k6..8[-+-] : Норм.(S)=>(A*); (N)=>(S)
A*=[--+-+], ( -74),    k6..8[+0-] : (S)-(A*)=>(S)
A*=[+-+-+], (  88),    k6..8[0+-] : A*=>(C) при w=0
A*=[00000], (   9),    k6..8[+--] : (A*)=>(R)
A*=[00000], ( -75),    k6..8[+00] : (A*)=>(S)
A*=[00000], ( -45),    k6..8[+0-] : (S)-(A*)=>(S)
A*=[+-+++], (  94),    k6..8[0+-] : A*=>(C) при w=0
A*=[00000], (   3),    k6..8[+--] : (A*)=>(R)
A*=[-+++-], ( -43),    k6..8[+00] : (A*)=>(S)
A*=[00000], ( -72),    k6..8[-+0] : (A*)=>(S)
A*=[00000], ( -75),    k6..8[+0+] : (S)+(A*)=>(S)
A*=[00000], ( 102),    k6..8[0+-] : A*=>(C) при w=0
A*=[---++], (   4),    k6..8[+--] : (A*)=>(R)
A*=[00000], (  60),    k6..8[0--] : (F)+(A*)=>(F)
A*=[00000], (  54),    k6..8[0+-] : A*=>(C) при w=+1
A*=[00000], (  87),    k6..8[0-0] : (A*)=>(F)
A*=[-++-+], ( -47),    k6..8[00-] : (F)=>(A*)
A*=[-+-+-], ( -61),    k6..8[+00] : (A*)=>(S)
A*=[-++--], ( -46),    k6..8[-++] : (S)=>(A*)
A*=[00000], ( -75),    k6..8[0-0] : (A*)=>(F)
A*=[+----], (  41),    k6..8[-++] : (S)=>(A*)
A*=[00000], (  60),    k6..8[0--] : (F)+(A*)=>(F)
A*=[++-++], ( 112),    k6..8[0+-] : A*=>(C) при w=+1
A*=[00000], (  51),    k6..8[0-0] : (A*)=>(F)
A*=[-----], (-112),    k6..8[-0+] : (Фа*)=>(Мд*)
A*=[00000], ( -72),    k6..8[0--] : (F)+(A*)=>(F)
A*=[+++-+], ( 118),    k6..8[0+-] : A*=>(C) при w=-1
A*=[---++], ( -32),    k6..8[+++] : (S)+(A*)(R)=>(S)
A*=[00000], (   3),    k6..8[000] : A*=>(C)
A*=[--+-+], ( -74),    k6..8[+0-] : (S)-(A*)=>(S)
A*=[+-+-+], (  88),    k6..8[0+-] : A*=>(C) при w=0
A*=[00000], (   9),    k6..8[+--] : (A*)=>(R)
A*=[00000], ( -75),    k6..8[+00] : (A*)=>(S)
A*=[00000], ( -45),    k6..8[+0-] : (S)-(A*)=>(S)
A*=[+-+++], (  94),    k6..8[0+-] : A*=>(C) при w=0
A*=[00000], (   3),    k6..8[+--] : (A*)=>(R)
A*=[-+++-], ( -43),    k6..8[+00] : (A*)=>(S)
A*=[00000], ( -72),    k6..8[-+0] : (A*)=>(S)
A*=[00000], ( -75),    k6..8[+0+] : (S)+(A*)=>(S)
A*=[00000], ( 102),    k6..8[0+-] : A*=>(C) при w=0
A*=[---++], (   4),    k6..8[+--] : (A*)=>(R)
A*=[00000], (  60),    k6..8[0--] : (F)+(A*)=>(F)
A*=[00000], (  54),    k6..8[0+-] : A*=>(C) при w=+1
A*=[-+++-], ( -43),    k6..8[+-+] : (A*)=>(R)
A*=[00000], ( -48),    k6..8[+00] : (A*)=>(S)
A*=[--+-+], ( -71),    k6..8[+0+] : (S)+(A*)=>(S)
A*=[00000], ( -96),    k6..8[-++] : (S)=>(A*)
A*=[-++--], ( -46),    k6..8[+00] : (A*)=>(S)
A*=[00000], ( -75),    k6..8[+-0] : (A*)[x](S)=>(S)
A*=[00000], ( -96),    k6..8[+0+] : (S)+(A*)=>(S)
A*=[00000], ( -96),    k6..8[-++] : (S)=>(A*)
A*=[00000], (   0),    k6..8[000] : A*=>(C)
A*=[00000], ( -45),    k6..8[00+] : (C)=>(A*)
A*=[-+++-], ( -43),    k6..8[-+-] : Норм.(S)=>(A*); (N)=>(S)
A*=[--+-+], ( -74),    k6..8[+0-] : (S)-(A*)=>(S)
A*=[+-+-+], (  88),    k6..8[0+-] : A*=>(C) при w=0
A*=[00000], (   9),    k6..8[+--] : (A*)=>(R)
A*=[00000], ( -75),    k6..8[+00] : (A*)=>(S)
A*=[00000], ( -45),    k6..8[+0-] : (S)-(A*)=>(S)

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


11 Sep 2021 12:37
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
TEST#3 Operations for VM SETUN-1958

Новости:

Приближается время "Ч". Продолжаю проверки выполнения команд эмулятора Сетунь из памяти FRAM.

Quote:
* TEST#3 Operations
* +00 (A*)=>(S) Ok'
* -++ (S)=>(A*) Ok'
* +-+ (A*)=>(R) Ok'
* 0-0 (A*)=>(F) Ok'
* 00- (F)=>(A*) Ok'
* 00+ (C)=>(A*) Ok'
* +0+ (S)+(A*)=>(S) Ok'
* +0- (S)-(A*)=>(S) Ok'


Запуск теста с номером 3:

./emu --test 3



Code:
t3.17:  Oper=k6..8[+0-] : (S)-(A*)=>(S)
fram[00000] (  0: 0) = [0000000++], 00004
S=: [000000000000000+0+], 000000011, (10), {000000000000000101}
fram[0000+] (  0: 1) = [00000+0-0], 0003X

reg C = 00001
K=: [00000+0-0], 0003X, (24), {0000010-10}
A*=[00000], (   0),    k6..8[+0-] : (S)-(A*)=>(S)
[status: ERR#5]

[DUMP registers Setun-1958]
  K  : [00000+0-0], 0003X, (24), {0000010-10}
  F  : [00000], 000, (0), {00000}
  C  : [0000+], 001, (1), {00001}
  W  : [-], Z, (-1), {-1}
  ph1: [-], Z, (-1), {-1}
  ph2: [0], 0, (0), {0}
  S  : [000000000000000+-0], 00000001X, (6), {0000000000000001-10}
  R  : [000000000000000000], 000000000, (0), {000000000000000000}
  MB : [0000], 00, (0), {0000}

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


12 Sep 2021 00:52
Profile WWW
Doomed
User avatar

Joined: 04 Jan 2016 09:15
Posts: 648
Location: Russia, S.- Peterburg
Reply with quote
Реализация эмулятора. GUI для дисплея.

Две версии.

С появлением платы ESP32 VGA приступил к проектированию визуальной части эмулятора.

Есть дизайн web-эмулятора http://trinary.su/projects/setunws

Хочется сделать полезный. План в том, сам эмулятор - это практические комплект rjvgm.nthysq из дисплея, клавиатуры и мыши. На платке есть MicroSD и на нём будет образ диска с программами для Сетунь-1958.

Есть предложения и пожелания?


Attachments:
setunbc.png
setunbc.png [ 159.16 KiB | Viewed 3280 times ]
setun_emu_gui.png
setun_emu_gui.png [ 454.48 KiB | Viewed 3292 times ]

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


Last edited by askfind on 19 Feb 2022 03:22, edited 2 times in total.

18 Feb 2022 06:04
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 361 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13, 14, 15 ... 25  Next

Who is online

Users browsing this forum: No registered users and 6 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.