Недокомпьютер nedoPC-85-MK

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

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

Недокомпьютер nedoPC-85-MK

Post by Shaos »

nedoPC-85-MK это лицо nedoMK85 размером 35.6 x 15.2 см (14 x 6 дюймов), которое можно будет также использовать, как самостоятельный компьютер на микропроцессоре 8085А, т.к. у него будет полный доступ как к клаве, так и к дисплею:

mk85scr2018.gif
mk85scr2018.gif (31.24 KiB) Viewed 19275 times

Shaos wrote:
Shaos wrote:Выходит клаву тоже придётся имитировать вторым процом?

Судя по дизассемблированным исходникам ПЗУ в порт сканирования клавиатуры #102 могут подаваться следующие значения:

#2 (0010) - сканирование первого набора кнопок
#4 (0100) - сканирование второго набора кнопок
#8 (1000) - сканирование третьего набора кнопок
#E (1110) - сканирование всех кнопок (чтобы быстро определить нажато что-то или нет)

Скажем мы будем иметь 4 регистра, куда 8085 будет отображать нажатое на обычной клаве (по 2 бита на кнопку) и мы можем битами 1 и 2 из #102 выбирать какой из этих регистров будет подключаться ко входам чтения с клавиатуры (адрес #100) - каждый регистр будет подключаться к следующим сигналам с входного порта KB (#100):

бит 0 -> KB2 ( на схеме цепь 3 )
бит 1 -> KB3 ( на схеме цепь 4 )
бит 2 -> KB4 ( на схеме цепь 5 )
бит 3 -> KB5 ( на схеме цепь 6 )
бит 4 -> KB6 ( на схеме цепь 7 )
бит 5 -> KB7 ( на схеме цепь 8 )
бит 6 -> KB8 ( на схеме цепь 9 )
бит 7 -> KB9,KB10 (на схеме цепи 10 и 11, соединённые вместе - к ним подключена кнопка STOP)

Подключение клавы к 8085 наряду с дисплеем делает возможным для начала запустить это хозяйство и отладиться только на 8085, без подключения 1801ВМ2...
Итого для формирования изображения на индикаторе нам потребуется 12 регистров-защёлок 74LS574, в каждом из которых 5 младших битов идут на столбики пикселов светодиодного индикатора в соответствующем знакоместе (которых 12), оставляя по 3 старших бита на нужды клавиатуры - всего остаётся 36 битов. Клавиатурные линии сигнализации чего нажато могут пойти так:

первый регистр - KB2,KB3,KB4 при сканировании первого ряда кнопок
второй регистр - KB5,KB6,KB7 при сканировании первого ряда кнопок
третий регистр - KB8,KB9/KB10 при сканировании первого ряда кнопок и ещё один выходной бит O1
четвёртый регистр - KB2,KB3,KB4 при сканировании второго ряда кнопок
пятый регистр - KB5,KB6,KB7 при сканировании второго ряда кнопок
шестой регистр - KB8,KB9/KB10 при сканировании второго ряда кнопок и ещё один выходной бит O2
седьмой регистр - KB2,KB3,KB4 при сканировании третьего ряда кнопок
восьмой регистр - KB5,KB6,KB7 при сканировании третьего ряда кнопок
девятый регистр - KB8,KB9/KB10 при сканировании третьего ряда кнопок и ещё один выходной бит O3
десятый регистр - KB2,KB3,KB4 при сканировании всех кнопок
одинадцатый регистр - KB5,KB6,KB7 при сканировании всех кнопок
двенадцатый регистр - KB8,KB9/KB10 при сканировании всех кнопок и ещё один выходной бит KB, который скажем можно задействовать для сигнализации того, что хотя бы что-то нажато, чтобы разбудить ВМ2, который спит между нажатиями на кнопки в режиме WRT

13й регистр 74LS574 может идти на сканирование горизонтальных рядов пикселов по вертикали, используя все 8 сигналов

14й регистр 74LS574 может идти на сканирование кнопок клавиатуры, организованных в матрицу 8x8 (либо сделать как в ZX-спектруме, когда сканирование идёт битами адресной шины при вычитке байта состояния клавиатуры?) - соответственно нам нужен ещё один вход через буфер, чтобы читать клавиатуру обратно...

ещё нам нужно как минимум 2 входных регистра, в которых будет защёлкиваться адрес и байт, который ВМ2 записал, переслав что-то в диапазон #80...#FF для отображения на экране, что будет вызывать прерывание 8085 (тут желательно предусмотреть регистры со сбросом, чтобы 8085 сбрасывал их сосотяние после вычитывания)

P.S. KB9/KB10 похоже просто на HALT уходят - ничего не надо мудрить...
(кнопка STOP подключает KB9/KB10 только к общему контакту первого набора кнопок - соответственно подводить этот сигнал имеет смысл только для первого и для последнего случая, что высвобождает ещё 2 выхода - O3 и O4)

В качестве основы взята схема nedoPC-85-A с добавлением на "лицо" 12 светодиодных матриц 5x7, 5 семисегментных светодиодных индикаторов (на самом деле 6, чтобы минусик слева показать при необходимости), несколько светодиодов для отображения режимов и самое главное - околокомпьютерная клавиатура из кнопочек Cherry MX (в которые можно навтыкать светодиодов для весёленькой подсветки):

nedopc85mk-180126.jpg
nedopc85mk-180126.jpg (139.08 KiB) Viewed 19045 times

P.S. У меня даже было желание назвать этот недокомпьютер Chereshnya-I (а двухплатный клон МК85 соответственно стал бы Chereshnya-II - с лёгким намёком на PDP-11), однако потом подумалось, что компания Cherry на меня обидится за беспардонное использование ихней торговой марки, так что пусть будет nedoPC-85-MK ( Микро Компьютер : )
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23633
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Вобщем распределение адресов такое (жирным выделяю то, что досталось по наследству от nedoPC-85-A):

#0000...#1FFF - ROM8K (основное ПЗУ)
#2000...#3FFF - RAM8K (основное ОЗУ)
#4000...#5FFF - RAM8K' (необязательная вторая микросхема ОЗУ)
#6000...#7FFF - external memory (должно возвращать #FF при чтении если ничего не подключено)
#8000...#9FFF - keyboard (область памяти для опроса клавиатуры)
#A000...#BFFF - NI15 (внешняя шина расширения)
#C000...#DFFF - RAM8K (копия области памяти с адреса #2000)
#E000...#FFFF - ROM8K (копия области памяти с адреса #0000)

Кроме того в nedoPC-85-MK существуют ПОРТЫ :o

#00 - REG0 (регистр подсветки строк)
#01 - REG1 (регистр подсветки колонок первого знакоместа)
#02 - REG2 (регистр подсветки колонок второго знакоместа)
#03 - REG3 (регистр подсветки колонок третьего знакоместа)
#04 - REG4 (регистр подсветки колонок четвёртого знакоместа)
#05 - REG5 (регистр подсветки колонок пятого знакоместа)
#06 - REG6 (регистр подсветки колонок шестого знакоместа)
#07 - REG7 (регистр подсветки колонок седьмого знакоместа)
#08 - REG8 (регистр подсветки колонок восьмого знакоместа)
#09 - REG9 (регистр подсветки колонок девятого знакоместа0
#0A - REG10 (регистр подсветки колонок десятого знакоместа)
#0B - REG11 (регистр подсветки колонок одиннадцатого знакоместа)
#0C - REG12 (регистр подсветки колонок двенадцатого знакоместа)
#0D - OUT1 (первый байт вывода 8 бит)
#0E - OUT2 (второй байт вывода 8 бит)
#0F - SND (звуковой порт для выдачи стерео сигнала 4 бита на канал)

Это было на вывод (все неиспользуемые биты выводятся наружу), а вот на ввод (рекомендованные номера):

#00 - VADR (адресный порт для связи с управляющим устройством)
#01 - VDAT (порт данных для связи с управляющим устройством)
...
#0D - IN1 (первый байт ввода 8 бит)
#0E - IN2 (второй байт ввода 8 бит)
#0F - SYS (биты состояния системы)

P.S. На самом деле на ввод только 7 сигналов CS декодируется, составленных из 3 младших битов адреса, т.е. #0D это тоже самое что #05 и #15 и т.д. - получается, что у нас остаётся 3 свободных сигнала на ввод - порты 2,3 и 4 (или что тоже самое - #0A, #0B, #0C)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16611
Joined: 21 Oct 2009 15:08
Location: Россия

Re: Недокомпьютер nedoPC-85-MK

Post by Lavr »

Ну портов для подключения чего-либо внешнего, как я вижу, нет?
iLavr
User avatar
Shaos
Admin
Posts: 23633
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Lavr wrote:Ну портов для подключения чего-либо внешнего, как я вижу, нет?
Есть - IN1,IN2 и OUT1,OUT2 - целых 16 битов на ввод и 16 битов на вывод :)
Ещё в SYS хочу завести один бит с мафона :roll:
Ну и шина расширения NI-15 само собой - туда всякую недопериферию можно цеплять ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
murgatroid_79
Senior
Posts: 157
Joined: 07 Dec 2010 09:51
Location: РФ г.КЕМЕРОВО

Re: Недокомпьютер nedoPC-85-MK

Post by murgatroid_79 »

Shaos wrote: У меня даже было желание назвать этот недокомпьютер Chereshnya-I...
... однако потом подумалось, что компания Cherry на меня обидится за беспардонное использование
ихней торговой марки...
Shaos,по моему,компания Cherry тебе доплачивать должна будет,за пиар их кнопочек :idea:
В байте 8 бит,а в каждом четвёртом 9 ! ! ! Потомушта он высокосный ! ! !
User avatar
Shaos
Admin
Posts: 23633
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

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

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

7-сегментные индикаторы вот такие например подойдут:
https://www.jameco.com/z/UA3041-12-LED-7-Segment-Orange-635Nm-30-1-Digital-3-3mcd-Ca-Right-Hand-Decimal-Point-Rhdp-2-5V_335011.html
или любые подобные с похожим расположением контактов (DIP14: a,f,CA,NC,NC,DP,e, d,NC,c,g,NC,b,CA) - неважно точка слева у них или справа - она всё равно в этой схеме не используется

А матрицы 5x7 я взял вот такие - у них вертикали цепляются к земле, а горизонтали - к питанию:
https://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&freeText=2005518&langId=-1&productId=2005518&storeId=10001

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

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Платка будет выглядеть примерно вот так:

nedopc85mk-pcb.jpg
nedopc85mk-pcb.jpg (278.75 KiB) Viewed 19227 times

Как я и писал чуть выше - размер платки 35 x 15 см

P.S. Ввёл парамеры в китайскую SeeedStuido и они рассчитали, что сделать 5 штучек позолоченных красных платок такого размера обойдётся мне всего в $98 :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23633
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Текущее состояние:
Attachments

nedopc85mk-180127.jpg
nedopc85mk-180127.jpg (213.79 KiB) Viewed 19045 times

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

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Сегодня пришлось платку немного расширить (теперь её размер 35.6 x 15.2 см), чтобы воткнуть PNP дарлингтоны слева:
Attachments

nedopc85mk-180128.jpg
nedopc85mk-180128.jpg (289.17 KiB) Viewed 19045 times

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

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Текущее положение дел (уже немного осталось):
Attachments

nedopc85mk-180130.jpg
nedopc85mk-180130.jpg (315.36 KiB) Viewed 19045 times

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

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Вроде развёл всё что касается обвязки 8085A с памятями - теперь осталось клаву развести:
Attachments

nedopc85mk-180201.jpg
nedopc85mk-180201.jpg (325.83 KiB) Viewed 19045 times

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

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Добавил R-2R стерео-DAC по 4 бита на канал для генерации стерео-звука:
Attachments

nedopc85mk-180203.jpg
nedopc85mk-180203.jpg (328.43 KiB) Viewed 19004 times

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

Re: Недокомпьютер nedoPC-85-MK

Post by Shaos »

Теперь точно осталось только кнопочки развести и можно отдавать в производство :roll:

P.S. Кнопочки сделаю по аналогии с ZX-спектрумом - будем подсвечивать колонку нулём с шины адреса - задействованы 8 младших битов:

0й бит шины адреса -> [S] [F] ENTER + - HOME END RESET
1й бит шины адреса -> O P . 3 6 9 * [RESERVED]
2й бит шины адреса -> L ANS 2 5 8 / PGUP PGDN
3й бит шины адреса -> = EE 0 1 4 7 AC [RESERVED]
4й бит шины адреса -> ESC(STOP) INS DEL MODE UP DOWN LEFT RIGHT
5й бит шины адреса -> Q W E R T Y U I
6й бит шины адреса -> A S D F G H J K
7й бит шины адреса -> Z X C V B N M SPACE

Как видим остаётся место ещё под 2 кнопки - это можно в будущем скажем отдать под "метакнопки" (когда 8085 будет посылать наружу нажатие 2 кнопок подряд - MODE и ещё одной цифровой, выбирающей режим) например WRT (MODE 1) и RUN (MODE 2) - кстати Insert, PgUp и PgDn уже являются такими метакнопками ибо при нажатии на них в процессор будут посылаться коды [S]+[DEL], [S]+[Up] и [S]+[Dn] соответственно (в интерфейсе клавиатуры МК-85 есть место ещё под 5 кнопок, которыми могут быть Home, End, Up, Dn и что-то ещё, хотя наверное Home и End тоже можно сделать метакнопками, посылающими [S]+[Left] и [S]+[Right]).

P.P.S. Расположение битов в описании исправлено 27 марта 2018 года в соответствии с реальной разводкой на плате

P.P.P.S. А в октябре 2023 года мне подумалось, что надо поменять местами AC и STOP т.к. по смыслу STOP ближе к ESC, чем AC (которое есть очистка)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16611
Joined: 21 Oct 2009 15:08
Location: Россия

Re: Недокомпьютер nedoPC-85-MK

Post by Lavr »

Возможно, я где-то пропустил, но не увидел: а что у тебя будет программным обеспечением этой недо-машинки?
iLavr
Post Reply