nedoPC.org

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



Reply to topic  [ 410 posts ]  Go to page Previous  1 ... 24, 25, 26, 27, 28
Давайте думать над железкой (TRIADOR) 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
В методе cycle нужно засунуть return в условие для case -4 (строка 129), а то внешние EX-команды небудут нормально работать (PC небудет инкрементироваться):
Code:
        case -4: { // EX: halt and catch fire if not processed
                     if (!do_ex(arg)) {
                       fHalt = true;
                       return;
                     }
                 } break;

и поменять местами if (fHalt) break; // halt and catch fire и if (verbose) display_memory_state(); в конце метода run, чтобы при окончании программы состояние регистров не печаталось два раза для EX -13 (т.к. после хальта PC не проинкрементируется и инкрементировать его нельзя т.к. при этом эмулятор вывалиться по ошибке что PC вылез за пределы программы)

Заслал пулл-реквест про эти две штуки https://github.com/ssloy/triador/pull/3
Изменения в triador.cpp:
https://github.com/ssloy/triador/pull/3/commits/bac364bd137cacd961253794a58534a7f91d7aac

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


13 Jun 2020 16:34
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
haqreu wrote:
Я не очень понимаю, зачем он нам нужен. У меня же уже есть ассемблер...

Чтобы большие приложения писать, например тетрис :mrgreen:
Без макросов это почти нереально
Ну и выход будет совместим с твоим эмулятором

Чото месяц уже прошёл, а я всё никак не могу сесть и сделать :no:

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


13 Jun 2020 16:46
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
haqreu wrote:
Я не очень понимаю, зачем он нам нужен. У меня же уже есть ассемблер...

Чтобы большие приложения писать, например тетрис :mrgreen:
Без макросов это почти нереально
Ну и выход будет совместим с твоим эмулятором

Чото месяц уже прошёл, а я всё никак не могу сесть и сделать :no:

Ещё 2 месяца прошло - всё никак не могу войти в рабочую колею на новом месте, чтобы успевать и работу делать (на дому) и свои поделки-самоделки...

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


13 Aug 2020 21:14
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Shaos wrote:
Shaos wrote:
В методе cycle нужно засунуть return в условие для case -4 (строка 129), а то внешние EX-команды небудут нормально работать (PC небудет инкрементироваться):
Code:
        case -4: { // EX: halt and catch fire if not processed
                     if (!do_ex(arg)) {
                       fHalt = true;
                       return;
                     }
                 } break;

и поменять местами if (fHalt) break; // halt and catch fire и if (verbose) display_memory_state(); в конце метода run, чтобы при окончании программы состояние регистров не печаталось два раза для EX -13 (т.к. после хальта PC не проинкрементируется и инкрементировать его нельзя т.к. при этом эмулятор вывалиться по ошибке что PC вылез за пределы программы)

Заслал пулл-реквест про эти две штуки https://github.com/ssloy/triador/pull/3
А между тем мой пул-реквест был смёрджен автором ещё 21 июня 2022 года :o
Пора чтоли начинать писать расширения системы команд...

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


02 Apr 2023 20:28
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Вот на чём я остановился по возможным расширениям системы команд Триадора 05 мая 2020:
Shaos wrote:
P.S. Вариант без обязательного ADD и с переносом всех "программируемых" команд и пользовательских схем вверх для логичности:

NNNNN - EX -13 -> HLT ( halt and catch fire ; ) <<<<<<< перенесено по просьбе haqreu
NNNNO - EX -12 -> CUSTOM CIRCUIT C (read any registers, writes R1 and C)
NNNNP - EX -11 -> CUSTOM CIRCUIT B (read any registers, writes R1 and C)
NNNON - EX -10 -> CUSTOM CIRCUIT A (read any registers, writes R1 and C) <<<< например это может быть ADD (C,R1=R1+R2)

NNNOO - EX -9 -> PMT-9 (programmable by PEX)
NNNOP - EX -8 -> PMT-8 (programmable by PEX)
NNNPN - EX -7 -> PMT-7 (programmable by PEX)

NNNPO - EX -6 -> OPB-6 (R1 = R1 o R2) - programmable by PEX
NNNPP - EX -5 -> OPB-5 (R1 = R1 o R2) - programmable by PEX
NNONN - EX -4 -> OPB-4 (R1 = R1 o R2) - programmable by PEX
NNONO - EX -3 -> OPB-3 (R1 = R1 o R2) - programmable by PEX
NNONP - EX -2 -> OPB-2 (R1 = R1 o R2) - programmable by PEX
NNOON - EX -1 -> OPB-1 (R1 = R1 o R2) - programmable by PEX

NNOOO - EX 0 -> PEX (program customizable EX instructions above using R1,R2,R3,R4)
NNOOP - EX +1 -> CMP (hardwired OPB)
NNOPN - EX +2 -> MIN (hardwired OPB)
NNOPO - EX +3 -> MAX (hardwired OPB)
NNOPP - EX +4 -> MUL (hardwired OPB) <<< это то что я раньше MSK называл - у людей это MUL
NNPNN - EX +5 -> SUM (hardwired OPB)
NNPNO - EX +6 -> CON (hardwired OPB) <<< консенсус (бывший OVF - для генерации трита переноса при суммировании)

NNPNP - EX +7 -> CLC (hardwired PMT) <<< или очистка флага C слишком простая команда, чтобы под неё целый PMT отводить?
NNPON - EX +8 -> RLC (hardwired PMT)
NNPOO - EX +9 -> RRC (hardwired PMT)

NNPOP - EX +10 -> WMM (write R2,R1 to memory [27*R4+R3])
NNPPN - EX +11 -> RML (read lower triad from memory [27*R4+R3] to R1)
NNPPO - EX +12 -> RMH (read higher triad from memory [27*R4+R3] to R1)

NNPPP - EX +13 -> JPI (store current PC+1 to R12,R11 and jump to R13,R1) <<<< сохранять в R12,R11 и прыгать на R13,R1 вроде логичнее?

PEX может программировать любые команды вверх и у каждой будет 9-тритовый регистр, который может быть использован внутри схемы.
При попытке запрограммировать команды вниз PEX приведёт систему в режим Halt (либо ничего не произойдёт - надо подумать).
Часть регистров PEX (а то может быть и все 13) можно использовать для вывода - например на светодиодный дисплейчик:

Image

(Автор гифки - JeNNeR)

Долго пытался вспомнить что такое PMT и наконец методом вдумчивого перечитывания анналов нашёл вот это изложение от 03 мая 2020:
Shaos wrote:
P.P.S. А вот интересно насколько оказалась бы полезной в триадоре команада Permutation, которая перемешивала бы триты в R1 любом порядке? Имея три трита в результате нам надо задать источник каждого трита, которые могут быть младшим тритом, средним тритом или старшим тритом регистра R1 - одного трита достаточно, чтобы это указать - получается одной триадой мы можем задать такой Permutation для целевой триады - тогда имеет смысл программировать это на лету допустим содержимым регистра R2 и команду такую назвать PRM, поставив её скажем на место EX -5. Такая команда легко покроет все возможные вращения в кольце, не задевающие флаг C (например записав в R2 триаду OPN мы сообщаем PRM, что хотели бы сдвинуть R1 на 1 трит влево по кольцу).

P.P.P.S. Если добавить источников - в дополнение к 3 тритам R1 добавим один трит флаг C плюс три константы N,O,P, то получаем 7 вариантов, программируемых двумя тритами (и ещё запас на 2 трита-источника остаётся - скажем на будущие теневые флаги?) на каждый трит результата - если выходной флаг C также будет результатом (для реализации вращений через флаг C), то нам надо 4*2=8 тритов, чтобы такую сложную пермутацию запрограммировать. Для круглоты ещё один трит можно задействовать скажем для указания того, что мы используем один из двух теневых флагов вместо основного флага C - вот это ваще будет гибкость неописуемая...

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


07 May 2023 11:56
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 410 posts ]  Go to page Previous  1 ... 24, 25, 26, 27, 28

Who is online

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