И тогда вместо TRIMUX у Вас получился один XUMIRThaqreu wrote:где-то на тысячном корпусе микросхем для триадора я всё же запаял один задом наперёд

Жду второй сезон о TRIADOR... когда будет анонс?
Moderator: haqreu
И тогда вместо TRIMUX у Вас получился один XUMIRThaqreu wrote:где-то на тысячном корпусе микросхем для триадора я всё же запаял один задом наперёд
LM324 - Quadruple Operational Amplifier?haqreu wrote:где-то на тысячном корпусе микросхем для триадора я всё же запаял один задом наперёд
![]()
Второй сезон, наверное, будет чисто софтверный о базовой архитектуре; а уже третий с непосредственными железками АЛУ, которые я потихоньку готовлю. Про даты боюсь загадыватьTernarySystem wrote:Жду второй сезон о TRIADOR... когда будет анонс?
Да, в качестве драйвера для светодиодов.Shaos wrote:LM324 - Quadruple Operational Amplifier?
Я что-то подобное пытался сделать при тестировании своего чипа, но оно не заработало и я в итоге вытащил операционники и проводочками соединил напрямую - двухцветные светодиоды после этого загорались нормально (резисторы я правда поменьше поставил в делитель)haqreu wrote:Второй сезон, наверное, будет чисто софтверный о базовой архитектуре; а уже третий с непосредственными железками АЛУ, которые я потихоньку готовлю. Про даты боюсь загадыватьTernarySystem wrote:Жду второй сезон о TRIADOR... когда будет анонс?
Но очень надеюсь гораздо быстрее, нежели прошедшие три года.
Да, в качестве драйвера для светодиодов.Shaos wrote:LM324 - Quadruple Operational Amplifier?
![]()
Наверное всё-таки на последних версиях C++ надо этот макро-ассемблер писать - назвать его скажем TRIADORAShaos wrote:... сделать макрос JMP для дальних прыжков и пусть программист сам следит за своими адресами и содержимым R13:Этот ассемблер может выдавать листинг файлы, пригодные для скармливания в эмулятор триадора (адреса будут укзаны в каждой строке как комментарии), а также бинарные файлы 2К-образа ПЗУ для моего логисимовского симулятора триадораCode: Select all
JMP MACRO L R1 SEG L RR -13 JP OFF L ENDM
Code: Select all
; Refresh R13 with current segment identifier
RFR MACRO
LOCAL L
R1 SEG L
RR -13
L:
ENDM
Code: Select all
RFR
JP LL
RFR
LL:
Code: Select all
R1 SEG L_1
RR -13
L_1:
JP LL
R1 SEG L_2
RR -13
L_2:
LL:
Code: Select all
R13= MACRO X
R1 X
RR -13
ENDM
Чтобы большие приложения писать, например тетрисhaqreu wrote:Я не очень понимаю, зачем он нам нужен. У меня же уже есть ассемблер...
Надо посчитать сколько у меня получилось в логисимовском симуляторе триадора - вроде меньше...haqreu wrote:Три года спустя отрисовки на бумаге развёл и заказал самый тримуксожоркий срез АЛУ: RR. 52 корпуса dg403!
В методе cycle нужно засунуть return в условие для case -4 (строка 129), а то внешние EX-команды небудут нормально работать (PC небудет инкрементироваться):haqreu wrote:Смерджил ; я помимо прочего исправил формат программ и перемешал скипы (если не забыл).
Code: Select all
case -4: { // EX: halt and catch fire if not processed
if (!do_ex(arg)) {
fHalt = true;
return;
}
} break;
Code: Select all
1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
R5 R6 R7 R8 R9 R10 R11 R12
< 1
#### #### #### #### #### #### #### #### @@@@@@ < 2
# # # # # # # # # # # # # # # # @@@@@@ < 3
# # # # # # # # # # # # # # # # @@@@@@ < 4
#### #### #### #### #### #### #### #### @@@@@@ < 5
# # # # # # # # # # # # # # # # @@@@@@ < 6
# # # # # # # # # # # # # # # # @@@@@@ < 7
#### # #### # #### # #### # #### # #### # #### # #### # < 8
-------------------- ------------- ------------- -------------- ---------------- < 9
|()()()()()()()()()| |R1|()|()|()| |R5|()|()|()| |R9 |()|()|()| |R13 <|()|()|()| < 10
|()()()()()()()()()| ------------- ------------- -------------- ---------------- < 11
|()()()()()()()()()| |R2|()|()|()| |R6|()|()|()| |R10|()|()|()| |R13 >|()|()|()| < 12
|()()()()()()()()()| ------------- ------------- -------------- ---------------- < 13
|()()()()()()()()()| |R3|()|()|()| |R7|()|()|()| |R11|()|()|()| |PC()()()()()()| < 14
|()()()()()()()()()| ------------- ------------- -------------- ---------------- < 15
|()()()()()()()()()| |R4|()|()|()| |R8|()|()|()| |R12|()|()|()| |A|()|B|()|C|()| < 16
|()()()()()()()()()| ------------- ------------- -------------- ---------------- < 17
|()()()()()()()()()| < 18
|()()()()()()()()()| ##### #### ### ### #### ### #### #### ### < 19
|()()()()()()()()()| # # # # # # # # # # # # # # # < 20
|()()()()()()()()()| # #### # ##### # # # # #### ### ### ##### < 21
|()()()()()()()()()| # # # # # # # # # # # # # # # < 22
-------------------- # # # ### # # #### ### # # #### # # < 23
TRIADOR-3A v1.0.0 < 24
________________________________________________________________________________ < 25
или так (ещё похимичил с псевдографикой):Shaos wrote:В досе оно может выглядеть как-то вот так:
Code: Select all
align 27
timer:
r4 OPN
r3 POP
RMH
rr -2
RML
rr 1
sk IFCARRY
jp timer1r
rr -5
rr 2
rr 1
rr -2
sk 0
jp timer2
rr 5
timer1r:
WMM
RET ; 4 instructions
timer2:
rr 5
WMM
r1 seg timer2r
rr -13
r3 POO
RMH
rr -2
RML ; new segment starts here
rr 1
sk IFCARRY
jp timer2r
rr -5
rr 2
rr 1
rr -2
sk 0
jp timer3
rr 5
timer2r:
WMM
RET ; 4 instructions
timer3:
rr 5
WMM
r3 PON
RMH
rr -2
RML
rr 1
sk IFCARRY
jp timer2r
rr -5
rr 2
rr 1
rr -2 ; new segment starts here
; ignore CARRY
rr 5
WMM
RET ; 4 instructions