Микро-ЭВМ на КМ1801ВМ2

Digital Equipment Corporation PDP-8 & PDP-11 (а также совместимые с последним советские ЭВМ на 1801ВМ1/2/3)

Moderator: Shaos

Post Reply
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Lavr wrote:
Shaos wrote:По идее тут после каждой посылки надо флаг занятости читать, чтобы понять когда следующий символ можно сувать, но т.к. у меня просто запись, то будем просто ждать...
Извини, то ли я забыл, то ли где-то пропустил, почему "просто запись", и почему "после каждой посылки флаг занятости читать" НЕТ ВОЗМОЖНОСТИ?
Потому что так подключено на макетке :)
Для чтения взад надо добавлять дополнительный буфер
В реальной плате всё будет, но пока вот так :roll:
Shaos wrote: 16-битный порт на вывод доступен по BBS7, т.е. адрес 0FF00H должен сработать - младший байт это 8-битные данные в ЖКИ и несколько битов в старшем байте порта пойдут на управление - RS,R/W,E:

bit 8 - LED (индикация ошибки)
bit 9 - RS (0 для команды, 1 для данных)
bit 10 - R/W (0 для записи. 1 для чтения)
bit 11 - E (1 для разрешения связи с ЖКИ)
bit 12 - бит адреса клавиаутры KA0
bit 13 - бит адреса клавиатуры KA1
bit 14 - бит адреса клавиатуры KA2
bit 15 - IFLAG для nedoText/SX ?

в будущем можно на ввод тоже поддержать - младший байт также будет 8 бит данных (чтение из ЖКИ), а старший байт может быть таким:

bit 8 - бит клавиатуры KB0
bit 9 - бит клавиатуры KB1
bit 10 - бит клавиатуры KB2
bit 11 - бит клавиатуры KB3
bit 12 - бит клавиатуры KB4
bit 13 - кнопка S1?
bit 14 - кнопка S2?
bit 15 - OFLAG из nedoText/SX?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Вот думаю надо материнку PDPii Junior нарисовать в Circuits.CC :)

Далее надо один раз написать программу, которая будет конвертить из Circuits.CC формата в Gerber и потом глядишь народ прибежит свои платки рисовать ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Shaos wrote:Воткнул модуль в PDPii - "Hello, World" всё ещё работает, значит КЗ нету и конфликтов на шине тоже - можно писать тестовую программку с индкацией на дисплейчик...
Наконец-то придумал, как продлить шину за пределы бредборды, чтобы нормально воткнуть третий модуль - купил маленькую, но такую же длинную бредборду и много проводочков :mrgreen:
Attachments

PDPii-2019-06-09s.jpg
PDPii-2019-06-09s.jpg (210.8 KiB) Viewed 12772 times

PDPii-2019-06-09-2.jpg
PDPii-2019-06-09-2.jpg (230.05 KiB) Viewed 12772 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

О - в прошлом году на хабре и про это появилась заметка :)

https://habr.com/ru/post/374455/
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Апдейт на тему PDPii Junior на Хакадее:

https://hackaday.io/project/164866-pdpjr

Про возможность подцепить туда NedoText на SX-28 и клаву МС-7007 пока не упоминаю - сюрприз будет :mrgreen:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Shaos wrote:P.S. Либо отказаться от отдельного "основного" ПЗУ и сделать одну боротовую микросхему 27C1024 с программно переключаемыми окнами? В этом случае управление ограничивается только 4 битами - первые два окна 8кб и будут являться "основным" 16кб ПЗУ, подставляемым в первую либо третью четверть адресного пространства, поэтому первые 2 комбинации управляющих битов можно отвести под особые случаи (в том числе режим по молчанию, когда ПЗУ в начале):

0000 - режим по умолчанию, 16КБ ПЗУ в первой четверти, в 0xC000...0xDFFF просвечивает кусок RAM1 (в будущем может быть видеопамять)
0001 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF всё также просвечивает кусок RAM1 (в будущем может быть видеопамять)
0010 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №2
0011 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №3
0100 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №4
0101 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №5
0110 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №6
0111 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №7
1000 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №8
1001 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №9
1010 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №10
1011 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №11
1100 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №12
1101 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №13
1110 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №14
1111 - 16КБ ПЗУ перемещён в третью четверть, в 0xC000...0xDFFF подставляется 8кб страница ПЗУ №15

P.P.S. Можно ещё завести логику на одной XOR-микросхеме, которая будет опционально (по стостоянию джамперов) переворачивать эти старшие 4 битика адреса, подставляя в страницы 0-1 любые другие части этого большого ПЗУ...
Кстати шина данных у нас ведь инвертированная - надо иметь это ввиду в случае всяких внешних регистров и периферийных устройств. Например в качестве 16-битного регистра взять не две 74ALS574, а скажем четыре 74LS175 (ака 555ТМ8) - там у каждого бита есть Q и /Q - инвертированные выходы пустить дальше, а неинвертированные отправить на 16 светодиодов для индикации состояния битов регистра, а в качестве буфера взять инвертирующий буфер 74LS240 (два)...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Shaos wrote:Например в качестве 16-битного регистра взять не две 74ALS574, а скажем четыре 74LS175 (ака 555ТМ8) - там у каждого бита есть Q и /Q - инвертированные выходы пустить дальше, а неинвертированные отправить на 16 светодиодов для индикации состояния битов регистра...
Вот примерно как-то так:
Attachments

PDPjr-2019-06-26.png
PDPjr-2019-06-26.png (7.21 KiB) Viewed 12548 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Продвинулся чуть дальше:
Attachments

PDPjr-2019-06-27.png
PDPjr-2019-06-27.png (20.81 KiB) Viewed 12521 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Вот посимулил выбор ПЗУ/ОЗУ в зависимости от трёх старших битов адреса и четырёх битов выбора режима распределения памяти:
Attachments

PDPjr-logic.zip
(2.11 KiB) Downloaded 394 times

PDPjr-logic.png
PDPjr-logic.png (15.22 KiB) Viewed 12516 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

На видеопамять пока забъём - в режиме 0000 в младшей половине старшей четверти будет ROM0, а в режиме 0001 - ROM1 (т.е. номер ПЗУ в половинке последнего окошка точно соответствует номеру режима для всех режимов от 0000 до 1111)

P.S. Снизу картинки видно как я буду запрещать ОЗУ в тех местах, где ему быть ненужно - просто путём маскирования /BSYNC, идущего на этот слот (в отведённом для модуля ОЗУ слоте он будет называться /BSYNCR)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Окончательная схема PDPjr получилась на 22 микросхемы (это плюс к модулям ЦПУ и ОЗУ):
Attachments

PDPjr-2019-07-07.png
PDPjr-2019-07-07.png (35.68 KiB) Viewed 12253 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

На макетке надо добавить инверсию инверсной шины данных, чтобы не надо было инвертировать отправляемые на ЖКИ данные, как сейчас. Потом надо добавить обратный канал через буфер, чтобы можно было состояние ЖКИ читать. Ну и ZX-клавку надо бы подцепить ;)

А вот банками памяти щёлкать я уже буду когда соберу сие на печатной плате...

P.S. Вот версия схемы чёрным по белому, если кому зелёным по чёрному кажется слишком вырвиглазным :mrgreen:
Attachments

PDPjr-2019-07-07.gif
PDPjr-2019-07-07.gif (32.62 KiB) Viewed 12253 times

Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Напоминаю, что без изменения схемы к PDPjr можно присобачить советскую JCUKEN-клаву MC7007 и nedoText на SX-24 с текстовым разрешением 80x25 :mrgreen:

P.S. Где-то существуют удобоваримые исходники монитора типа "пультъ"?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16622
Joined: 21 Oct 2009 15:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

Shaos wrote:Где-то существуют удобоваримые исходники монитора типа "пультъ"?
Ну я вот тут расковырял один Монитор, чтобы иметь представление, как пишут Мониторы для этих процев:
viewtopic.php?f=95&t=10288&start=255

Но тебе, скорее всего, не подойдёт - там вывод на 7-сегментный индикатор...
iLavr
User avatar
Shaos
Admin
Posts: 23664
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Да мне нужно полноклавиатурный - в котором клавшами ПС и ВК управляют открытием следующей ячейки и т.д.

P.S. А вот же в теме про УКНЦ я линк приводил: viewtopic.php?p=150413#p150413

P.P.S. Прямо сразу оттуда можно взять тест ОЗУ :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
Post Reply