Здравствуйте, коллеги. Читаю вас давно, зарегался только что.
Спасибо Shaos'у за площадку, и многим коллегам (Lavr, Случайность, Mixa64 и всем, кого не упомянул тут, за посты).
Вот и я добрался до чудного мира 1801. Цель - та же самая, сделать (почти) минимальную ЭВМ на 1801.
Сам я Векторист-Ынтеловец, что-то в электронике соображаю, кое-какой код писать тоже умею.
Где то в фоне я неторопливо пытаюсь сделать реинкарнацию Вектор-06Ц со всякими плюшками, но это не
тема данного треда. Зато, в процессе этой работы получились 3 платки CPU с унифицированным интерфейсом:
на ВМ80А, на 8085 и на Z80. Идея в том, что остальная система остается такой же и не зависит от типа CPU.
Почесав репку и почитав доки на 1801 я пришел к идее попробовать этот же подход к BM1/ВМ2/ВM3, конечно,
с расширениями для последнего. По наводке Shaоs'а в https://github.com/jaquinn/RetroShield-KR1801VM2
я нашел и повторил этот шилд, но с изменениями - чтобы паять на макетке было проще. Код от Andrew Quinn тоже был
доработан. В результате получилась прикольная игрушка в которой можно программно танцевать вокруг ВМ2.
В частности, стали сильно понятнее запуск, разделение на USER и HALT режимы и общий подход к циклам шины.
Такая же макетка делается и для ВМ1. Понятно, что ВМ2 статический, а ВМ1 - нет, и использовать её также
напрямую с Ардуиной не получится, но потм оба модуля можно будет использовать в одной борде, конечно
научив ее отличиям в CPU. Ну и на BM3 я такой подход попробую адаптировать.
ВМ1/ВМ2/ВМ3 и Arduino Mega
Moderator: Shaos
-
- Junior
- Posts: 6
- Joined: 25 Feb 2025 08:31
ВМ1/ВМ2/ВМ3 и Arduino Mega
You do not have the required permissions to view the files attached to this post.
-
- Junior
- Posts: 6
- Joined: 25 Feb 2025 08:31
Re: Микро-ЭВМ на КМ1801ВМ2
Ерундопель продолжается. В ту же установку с подключением км1801вм2 в Ардуино Мега, и в том же стиле, была сделана платка с км1801вм3. Немного посравнивав доступные доки на процы удалось как-то свести в одном минимальном 40 пиновом коннекторе основные сигналы и вм2 и вм3. Не выведены сингалы IRQ, заглушены в пассивном состоянии сигналы DMA. Для вм3 также в пассивном состоянии находится интерфейс с FPU (вм4), дополнительные адресные линии А16-А21 выведены на отдельный коннектор и пока не используются.
Тестовая софтина не менялась относительно вм2 и пока не может полноценно работать с вм3: у него нет фазы /AR и есть отличия в стартовой последовательности. Если вм2 начинает с безадресного чтения стартового вектора, откуда потом извлекаются PC и PSW и процессор стартует в HALT моде, то вм3 при /WO=0 тупо стартует с 173000(oct) и заполняет PSW константой, причем, это, к тому же, происходит в USER моде, если /HALT пассивен при поднятии /ACLO.
Можно в стартовой последовательности со стороны Ардуино сказать /HALT=0 и, по идее, старт должен быть в HALT моде, но тогда первый адрес на шине, выставляемый процом читается не как 173000(oct), а как 17776(oct). Пока, полного понимания стартовой последовательности вм3 в голове нет.
Тем не менее, вм3 запустился и задышал. Белый дым остался внутри и помогает процессору работать.
Тестовая софтина не менялась относительно вм2 и пока не может полноценно работать с вм3: у него нет фазы /AR и есть отличия в стартовой последовательности. Если вм2 начинает с безадресного чтения стартового вектора, откуда потом извлекаются PC и PSW и процессор стартует в HALT моде, то вм3 при /WO=0 тупо стартует с 173000(oct) и заполняет PSW константой, причем, это, к тому же, происходит в USER моде, если /HALT пассивен при поднятии /ACLO.
Можно в стартовой последовательности со стороны Ардуино сказать /HALT=0 и, по идее, старт должен быть в HALT моде, но тогда первый адрес на шине, выставляемый процом читается не как 173000(oct), а как 17776(oct). Пока, полного понимания стартовой последовательности вм3 в голове нет.
Тем не менее, вм3 запустился и задышал. Белый дым остался внутри и помогает процессору работать.

You do not have the required permissions to view the files attached to this post.
-
- Junior
- Posts: 6
- Joined: 25 Feb 2025 08:31
Re: Микро-ЭВМ на КМ1801ВМ2
Распиновка плат переходников относительно торцевого разъема Arduino Mega сейчас такая.
Софтина на Ардуине учится подсовывать процессорам разные плюхи, в виде кусков
ROM (предопределенных во флеше Ардуины) и пары килобайтов RAM.
Как предполагал Andrew Quinn в https://github.com/jaquinn/RetroShield-KR1801VM2
эмуляция и ромов и периферии будет делаться Ардуиной. Пока, у меня консольный порт не
обрабатывается в адресном пространстве и приходит bus trap, что тоже хорошо.
Первая грабля, на которую наступил - nSSYNC на ВМ3, который был изначально
заглушен, но по факту оказался аналогом nAR у ВМ2 и без него ничего дальше
первовго выставления адреса не двигалось. Сейчас поведение живых ВМ2 и ВМ3
одинаковое - падают в bus trap на обращениии в UART, ибо пока эмуляции его еще нет.
Схемы, герберы и код на стороне Ардуино выложу чуть позже, после окультуривания.
PS: Запустится ли в такой остнастке ВМ1 - вопрос. Пока - не должен, ибо тактовая
частота герц так 10, не более.
Code: Select all
+--------------------VM1--------------------+
/ +---------------VM2---------------+ \
/ / +----------VM3----------+ \ \
/ / / /---Signals---\ \ \ \
/ / / / Pins \ \ \ \
| | | | +-------+ | | | |
+5V +5V +5V +5V | 39 40 | +5V +5V +5V +5V
| |
nAD8 nAD8 nAD8 PA0 | 37 38 | PA1 nAD9 nAD9 nAD9
nAD10 nAD10 nAD10 PA2 | 35 36 | PA3 nAD11 nAD11 nAD11
nAD12 nAD12 nAD12 PA4 | 33 34 | PA5 nAD13 nAD13 nAD13
nAD14 nAD14 nAD14 PA6 | 31 32 | PA7 nAD15 nAD15 nAD15
| |
nAD7 nAD7 nAD7 PC7 | 29 30 | PC6 nAD6 nAD6 nAD6
nAD5 nAD5 nAD5 PC5 | 27 28 | PC4 nAD4 nAD4 nAD4
nAD3 nAD3 nAD3 PC3 | 25 26 | PC2 nAD2 nAD2 nAD2
nAD1 nAD1 nAD1 PC1 | 23 24 | PC0 nAD0 nAD0 nAD0
| |
nSEL1 nSEL nSEL PD7 | 21 22 | PG2 nEVNT nEVNT NC
NC nHALT nHALT PG1 | 19 20 | PG0 NC nVIRQ nVIRQ
| |
nINIT nINIT nINIT PL7 | 17 18 | PL6 nDCLO nDCLO nDCLO
nIAKO nIAKO nIAKO PL5 | 15 16 | PL4 nACLO nACLO nACLO
NC nAR nSSYNC PL3 | 13 14 | PL2 nCLCI CLCI CLCI
nRPLY nRPLY nRPLY PL1 | 11 12 | PL0 nDIN nDIN nDIN
| |
nDOUT nDOUT nDOUT PB3 | 09 10 | PB2 nSYNC nSYNC nSYNC
nBSY NC NC PB1 | 07 08 | PB0 nWTBT nWTBT nWTBT
| |
GND GND GND GND | 05 06 | GND GND GND GND
| |
NC NC NC NC | 03 04 | NC NC NC NC
NC NC NC NC | 11 02 | NC NC NC NC
+-------+
Отличия:
pin 21 (PD7) - nSEL на ВМ2 и ВМ3, nSEL1 на ВМ1. nSEL2 на ВМ1 не выведен.
pin 22 (PG2) - nEVNT на ВМ2 и ВМ3, NC на ВМ1, т.к. такого сигнала нет.
pin 19 (PG1) - nHALT на ВМ2 и ВМ3, NC на ВМ1, т.к. такого сигнала нет.
pin 20 (PG0) - nVIRQ на ВМ1 и ВМ2, NC на ВМ3, т.к. такого сигнала нет.
pin 13 (PL3) - nAR на ВМ2, nSSYNC на ВМ3, NC на ВМ1 т.к. такого сигнала нет.
Поведение nSSYNC на ВМ3 и nAR на ВМ2 кажется похожим, как
ответ на выставление адреса процом.
// OUTDATED AND WRONG!!!
// На BM2 nAR имеет естественный пуллап, как и у многих других
// входов CPU и при старте можно вычитывать оттуда высокий уровень
// для автоопределения ВМ2. На Ардуино Мега пуллдаун резисторов в
// чипе нет, поэтому для плат на BM1 и ВМ3 этот пин коннектора
// подсоединен пуллдауном в 10к на землю.
Автоопределение между ВМ2 и ВМ3 пока основано на отсутствии у ВМ3 nVIRQ.
У ВМ2 оно есть и подтянуто пуллапом, на плате ВМ3 NC от nVIRQ подсоединен
пуллдауном в 10к на землю. Дальнейшее различение между ВМ1 и ВМ2 возможно
сделать аналогично, по отсутствиию на ВМ1 nEVENT (будет пуллдаун).
pin 14 (PL2) - посмотреть на полярность тактового сигнала на разных процах.
pin 07 (PB1) - nBSY на ВМ1, NC на ВМ1 и BM3, т.к. такого сигнала нет.
ROM (предопределенных во флеше Ардуины) и пары килобайтов RAM.
Как предполагал Andrew Quinn в https://github.com/jaquinn/RetroShield-KR1801VM2
эмуляция и ромов и периферии будет делаться Ардуиной. Пока, у меня консольный порт не
обрабатывается в адресном пространстве и приходит bus trap, что тоже хорошо.
Первая грабля, на которую наступил - nSSYNC на ВМ3, который был изначально
заглушен, но по факту оказался аналогом nAR у ВМ2 и без него ничего дальше
первовго выставления адреса не двигалось. Сейчас поведение живых ВМ2 и ВМ3
одинаковое - падают в bus trap на обращениии в UART, ибо пока эмуляции его еще нет.
Схемы, герберы и код на стороне Ардуино выложу чуть позже, после окультуривания.
PS: Запустится ли в такой остнастке ВМ1 - вопрос. Пока - не должен, ибо тактовая
частота герц так 10, не более.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Микро-ЭВМ на КМ1801ВМ2
Если тут уже про всё на свете речь идёт (ВМ1,ВМ2,ВМ3), то может отпочковать беседу в отдельную тему? 

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Junior
- Posts: 6
- Joined: 25 Feb 2025 08:31
Re: Микро-ЭВМ на КМ1801ВМ2
Я не против, можно и отпочковать. По крайней мере , направление, которого я придерживаюсь - унифицированная "материнская" плата и отдельные платы CPU на BM1/ВM2/ВМ3.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: ВМ1/ВМ2/ВМ3 и Arduino Mega
Отпочковал
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Junior
- Posts: 6
- Joined: 25 Feb 2025 08:31
Re: ВМ1/ВМ2/ВМ3 и Arduino Mega
Немного попедалировав, стартовая последовательность для ВМ2 получается следующая:
Ao - октальный адрес, Do - октальная шина данных, DC/AC - DCLO/ACLO. DI/DO - DIN/DOUT.
Code: Select all
21:48:39.328 -> CPU type autodetect: 1801VM2
<--- Initial state for setup is IDLE (IDL)
21:48:39.593 -> CLK:0000 Ao000000 Do000000 IDL/IDL DC/AC:00 INIT:0 SEL:1 SYNC:1->0 AR:1 DI/DO:11 RPLY:1
21:48:39.593 -> Init Complete
<--- First step for setup is to change state from IDLE (IDL) to RESET (RST)
21:48:39.593 -> CLK:0001 Ao000000 Do000000 IDL/RST DC/AC:00 INIT:0 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
21:48:39.593 -> CLK:0002 Ao000000 Do000000 RST/RST DC/AC:00 INIT:0 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- After 20 clocks we set nDCLO inactive (=1): DC power is good
21:48:39.759 -> CLK:0022 Ao000000 Do000000 RST/RST DC/AC:10 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
...
<--- Deasserting nDCLO turns startup phase from RESET(RST) to START2 (ST2)
21:48:39.759 -> CLK:0023 Ao000000 Do000000 RST/ST2 DC/AC:10 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:39.759 -> CLK:0024 Ao000000 Do000000 ST2/ST2 DC/AC:10 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
...
<--- After 20 more clocks we set nACLO inactive (=1): AC power is good
21:48:39.891 -> CLK:0041 Ao000000 Do000000 ST2/ST2 DC/AC:10 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:39.924 -> CLK:0042 Ao000000 Do000000 ST2/ST2 DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
<--- Deasserting nACLO turns startup phase from START2 (ST2) to STARTED (STD)
21:48:39.924 -> CLK:0043 Ao000000 Do000000 ST2/STD DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:39.924 -> CLK:0044 Ao000000 Do000000 STD/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
...
<--- Some clocks are waiting for CPU attempts to read startup vector via "non-address read"
21:48:39.924 -> CLK:0045 Ao000000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
...
21:48:39.991 -> CLK:0052 Ao000000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:39.991 -> Startup vector 165004
21:48:39.991 -> CLK:0053 Ao000000 Do000000 IDL/RVC DC/AC:11 INIT:1 SEL:0 SYNC:1->1 AR:1 DI/DO:01 RPLY:1
21:48:39.991 -> CLK:0054 Ao000000 Do000000 RVC/RVC DC/AC:11 INIT:1 SEL:0 SYNC:1->1 AR:1 DI/DO:01 RPLY:1
21:48:40.024 -> CLK:0055 Ao000000 Do000000 RVC/RVC DC/AC:11 INIT:1 SEL:0 SYNC:1->1 AR:1 DI/DO:01 RPLY:1
21:48:40.024 -> CLK:0056 Ao000000 Do000000 RVC/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.024 -> CLK:0057 Ao000000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.024 -> CLK:0058 Ao000000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
...
21:48:40.090 -> CLK:0066 Ao000000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
<--- "Set address in halt mode" (SAH) phase: nSEL=0, address=165000
21:48:40.090 -> CLK:0067 Ao000000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:0 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.090 -> CLK:0068 Ao000000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:0 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.123 -> CLK:0069 Ao165000 Do000000 IDL/SAH DC/AC:11 INIT:1 SEL:0 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- Data in. First 2 bytes in reset vector is PC value (165004)
21:48:40.123 -> CLK:0070 Ao165000 Do165004 SAH/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.123 -> CLK:0071 Ao165000 Do165004 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.123 -> CLK:0072 Ao165000 Do165004 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.156 -> CLK:0073 Ao165000 Do165004 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.156 -> CLK:0074 Ao165000 Do000000 DIN/IDL DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
21:48:40.156 -> CLK:0075 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.156 -> CLK:0076 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.189 -> CLK:0077 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.189 -> CLK:0078 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.189 -> CLK:0079 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.189 -> CLK:0080 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
<--- "Set address in halt mode" (SAH) phase: nSEL=0, address=165002
21:48:40.189 -> CLK:0081 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:0 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.222 -> CLK:0082 Ao165000 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:0 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.222 -> CLK:0083 Ao165002 Do000000 IDL/SAH DC/AC:11 INIT:1 SEL:0 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- Data in. Second 2 bytes in reset vector is PSW value (000200)
21:48:40.222 -> CLK:0084 Ao165002 Do000200 SAH/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.222 -> CLK:0085 Ao165002 Do000200 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.255 -> CLK:0086 Ao165002 Do000200 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.255 -> CLK:0087 Ao165002 Do000200 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.255 -> CLK:0088 Ao165002 Do000000 DIN/IDL DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- Something happens inside CPU. Outer signals are just idle.
21:48:40.255 -> CLK:0089 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.288 -> CLK:0090 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.288 -> CLK:0091 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.288 -> CLK:0092 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.288 -> CLK:0093 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.288 -> CLK:0094 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.321 -> CLK:0095 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.321 -> CLK:0096 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.321 -> CLK:0097 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.321 -> CLK:0098 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.355 -> CLK:0099 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.355 -> CLK:0100 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.355 -> CLK:0101 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.355 -> CLK:0102 Ao165002 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
<--- "Set address in user mode" (SAU) phase: nSEL=1, address=<READ_FROM_STARTUP_VECTOR> (165004)
21:48:40.388 -> CLK:0103 Ao165004 Do000000 IDL/SAU DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- Read the first word from "user ROM" (032737)
21:48:40.388 -> CLK:0104 Ao165004 Do032737 SAU/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.388 -> CLK:0105 Ao165004 Do032737 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.388 -> CLK:0106 Ao165004 Do032737 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.388 -> CLK:0107 Ao165004 Do032737 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.421 -> CLK:0108 Ao165004 Do000000 DIN/IDL DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
21:48:40.421 -> CLK:0109 Ao165004 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.421 -> CLK:0110 Ao165004 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
<--- "Set address in user mode" (SAU) phase: nSEL=1, address=165006
21:48:40.421 -> CLK:0111 Ao165006 Do000000 IDL/SAU DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- Read the second word from "user ROM" (000200)
21:48:40.454 -> CLK:0112 Ao165006 Do000200 SAU/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.454 -> CLK:0113 Ao165006 Do000200 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.454 -> CLK:0114 Ao165006 Do000200 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.454 -> CLK:0115 Ao165006 Do000200 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.487 -> CLK:0116 Ao165006 Do000000 DIN/IDL DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
21:48:40.487 -> CLK:0117 Ao165006 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.487 -> CLK:0118 Ao165006 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.487 -> CLK:0119 Ao165006 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.487 -> CLK:0120 Ao165006 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.520 -> CLK:0121 Ao165006 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.520 -> CLK:0122 Ao165006 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
<--- "Set address in user mode" (SAU) phase: nSEL=1, address=165010
21:48:40.520 -> CLK:0123 Ao165010 Do000000 IDL/SAU DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- Read the third word from "user ROM" (177564) - it is a port address, currently unhandled
21:48:40.520 -> CLK:0124 Ao165010 Do177564 SAU/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.553 -> CLK:0125 Ao165010 Do177564 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.553 -> CLK:0126 Ao165010 Do177564 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.553 -> CLK:0127 Ao165010 Do177564 DIN/DIN DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:01 RPLY:0
21:48:40.553 -> CLK:0128 Ao165010 Do000000 DIN/IDL DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
21:48:40.553 -> CLK:0129 Ao165010 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.586 -> CLK:0130 Ao165010 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.586 -> CLK:0131 Ao165010 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
21:48:40.586 -> CLK:0132 Ao165010 Do000000 IDL/IDL DC/AC:11 INIT:1 SEL:1 SYNC:1->1 AR:1 DI/DO:11 RPLY:1
<--- "Set address in user mode" (SAU) phase: nSEL=1, address=177564
21:48:40.586 -> CLK:0133 Ao177564 Do000000 IDL/SAU DC/AC:11 INIT:1 SEL:1 SYNC:0->0 AR:0 DI/DO:11 RPLY:1
<--- Yep. Peripherials is not implemented, so we get a bus trap here.
21:48:40.619 -> Bus Error Trap A177564
21:48:40.619 ->
21:48:40.619 -> Last state 07
-
- Junior
- Posts: 6
- Joined: 25 Feb 2025 08:31
Re: ВМ1/ВМ2/ВМ3 и Arduino Mega
Почитав коллег в разных форумах, оснастку ВМ3 переделываю. Резисторные сборки меняются с 10k на 2k2,
как положено по известным схемам, nWO(pin59) из глухого соединения с общим выносится под перемычку:
можно теперь пускать и с 177300 (nWO=0) и с 000024 (nWO=1) в USER моде.
Дополнительно, если в ардуиновском скетче придавить nHALT, то будет запуск сразу в пультовом режиме.
Итого, пока вырисовываются 3 режима старта:
- nHALT=1, nWO=0 -> пуск в USER c 177300 и константным PSW
- nHALT=1, nWO=1 -> пуск в USER c 000024 и ??? PSW
- nHALT=0, nWO=0 -> пуск в HALT со своими непонятными тараканами и умолчаниями.
Трейсы будут немного позже.
как положено по известным схемам, nWO(pin59) из глухого соединения с общим выносится под перемычку:
можно теперь пускать и с 177300 (nWO=0) и с 000024 (nWO=1) в USER моде.
Дополнительно, если в ардуиновском скетче придавить nHALT, то будет запуск сразу в пультовом режиме.
Итого, пока вырисовываются 3 режима старта:
- nHALT=1, nWO=0 -> пуск в USER c 177300 и константным PSW
- nHALT=1, nWO=1 -> пуск в USER c 000024 и ??? PSW
- nHALT=0, nWO=0 -> пуск в HALT со своими непонятными тараканами и умолчаниями.
Трейсы будут немного позже.