PDA

Просмотр полной версии : Гибридный электронный диск для ПРК ОРИОН



Denn
10.07.2015, 15:28
Привет всем поклонникам Ориона :)

Родилась у меня идейка скрафтить т.н. гибридный Электронный Диск (далее - ЭД), тобишь это будут совмещённые "в одном флаконе" ROM- и RAM-диски в виде небольшой платки, которая подключается в стандартный порт #F5 ROM-диска ПРК "Орион". Идея родилась исходя из завалявшихся с древних времён комплектующих и реальной потребности в таковом устройстве. Возможно, кого-то тоже заинтересует такой девайс для своего Ориона.

Итак, по порядку. Часть, отвечающая за ROM-диск. Здесь я упёрся в нехватку стандартных 64 Кб, а в хозяйстве уже 15 лет валяется ПЗУ AM27C040 (http://denn.ru/8bit/orion/128/e-disk/am27c040.pdf) (512К x 8).
Итого получается объём в восемь раз больше максимального стандартного ROM-диска. Были мысли сделать больше (1 Мб), но прикинув, понял, что ни к чему. Прикидка простая: средний размер софтинки для Ориона грубо считаем 2 Кб, максимальное кол-во файлов на диске - 255, т.е. как раз и получается 2x256=512 Кб. Большее кол-во файлов потребует серьёзное изменение ОС, дополнительный объём ОЗУ для каталога, да и физически проматывать список из более 200 файлов - это заморочка. В связи с тем, что на самом деле 64 Кб "немного" не хватает для полного счастья, 8-кратное его увеличение - это "вообще щастье"!

Часть, отвечающая за RAM-диск. Здесь ноги идеи растут из привычных и "вполне достаточных для счастья" 780 Кб ГМД, а также имеющихся в наличии (и, что немаловажно, ныне ещё доступных для покупки!) микросхем статического ОЗУ CY7C1049D-10VXI (http://denn.ru/8bit/orion/128/e-disk/cy7c1049d-10vxi.pdf) (512K x 8). За "щастье" беру ориентир на 1 Мб, т.е. на две такие микросхемы. Дело в том, что доступ к RAM-диску будет не "туполинейный" (а-ля ORDOS-стайл, все файлы друг за дружкой, без FAT), а будет кластерная организация, т.е. каталог + FAT + кластеры. Также две микросхемы ОЗУ не превышают "болевой порог" по цене, их дешифрация достаточно проста, габариты и потребление (в режиме хранения) в самых разумных пределах.

Далее. Интерфейс должен быть стандартный от ROM-диска Ориона, т.е. это три 8-битных линии ВВ55'ой + питание. Опционально потребуется "дежурный" микромощный источник питания для хранения данных RAM-диска. Без этой опции информация будет сохраняться при выключении питания ПРК с помощью 3-вольтовой батарейки типа CR2032.
Также с "точки зрения" загрузчика программы "Монитор" девайс должен видится как стандартный ROM-диск Ориона, а доступ к расширенным "фишкам" осуществляться через имеющиеся линии порта.

В результате некоторого мыслительного процесса родилась следующая схемка:

http://denn.ru/8bit/orion/128/e-disk/e-disk.jpg

Девайс имеет четыре режима:

1). Чтение данных из ROM-диска;
2). Чтение данных из RAM-диска;
3). Запись данных в RAM-диск;
4). Z-состояние (режим StandBy: микропотребления, если это кого-то сегодня волнует :))

Выбор режима осуществляется записью соответствующего значения в старшие разряды шины адреса (линии C7 и C8 порта Ориона). "Украденные" на управление режимом старшие адресные линии, а также линии виртуального адреса (совсем старшие линии адреса, которые нужны для доступа свыше 64 Кб) берутся из 6-ти младших линий и защёлкиваются триггером ТМ9. Защёлкивание производится по фронту при переходе в режим Z-состояния (StandBy). Сброс защёлки осуществляется сигналом RESET от ПРК (дополнительная линия на порт - B9), либо сделать RC-цепочку начального сброса от питания (ещё не определился, как лучше).
При старте ПРК, загрузчик программы монитор читает данные по младшим адресам, т.о. автоматом девайс будет в режиме чтения данных из ROM-диска. Т.о. при oldschool-доступе, первые 16 Кб ROM-диска читаются без проблем, что позволит загрузить ОС и необходимый драйвер, который будет поддерживать работу с гибридным ЭД в полном объёме.

Для гарантии сохранения информации во время переходных процессов подачи/снятия питания применена микросхема контроллера SRAM - DS1210 (http://denn.ru/8bit/orion/128/e-disk/ds1210.pdf). Она при уменьшении питающего напряжения ниже 4,75в моментально переводит вход CE ОЗУ в лог."1", т.о. запись в м-сх блокируется.

Если интересно, то можно обсудить. Проект пока ещё только на бумаге, но в ближайших планах воплотить его в железе :)

BYTEMAN
10.07.2015, 15:56
Итак, по порядку. Часть, отвечающая за ROM-диск. Здесь я упёрся в нехватку стандартных 64 Кб, а в хозяйстве уже 15 лет валяется ПЗУ AM27C040 (512К x 8).
Итого получается объём в восемь раз больше максимального стандартного ROM-диска. Были мысли сделать больше (1 Мб), но прикинув, понял, что ни к чему. Прикидка простая: средний размер софтинки для Ориона грубо считаем 2 Кб, максимальное кол-во файлов на диске - 255, т.е. как раз и получается 2x256=512 Кб. Большее кол-во файлов потребует серьёзное изменение ОС, дополнительный объём ОЗУ для каталога, да и физически проматывать список из более 200 файлов - это заморочка. В связи с тем, что на самом деле 64 Кб "немного" не хватает для полного счастья, 8-кратное его увеличение - это "вообще щастье"!
Посмотрите реализацию в ПРО, там четыре РОМ-диска независимых получается по 64к...

Denn
10.07.2015, 16:57
там четыре РОМ-диска независимых получается по 64к...

По четыре - это не интересно. Красивее одним, но большим. Удобство работы, простота реализации, компактность исполнения... идеи вокруг этого.

BYTEMAN
10.07.2015, 17:33
По четыре - это не интересно. Красивее одним, но большим. Удобство работы, простота реализации, компактность исполнения... идеи вокруг этого.
Лишь бы совместимость сохранить... На ПРОшке сохранили...

HardWareMan
10.07.2015, 19:06
Мы на кружке делали RAM-диск, для него в том самом Нортоне была буква H выделена. Вещь классная, но у нас по скромному, 4 РУ10х...

Error404
10.07.2015, 21:34
Мое ИМХО, абстрагируясь от того что спаять что-нибудь просто приятно.

Любой самопальный носитель проигрывает по объему и удобству SD-карте с быстрым контроллером, например по варианту HardwareMan-а.

Доработка РОМ-диска на мой взгляд имеет смысл если она минимальна. Например, на платке Ориона-512 доработка представляла собой одну ТМ9/ТМ9 для дополнительных адресных ног, а РОМ-диск (панелька под ПЗУ) использовался стандартный Орионовский. При этом получалось 1М (софтовое ограничение), в котором был и Ордос и CP/M.

РАМ-диск на внешней ОЗУ имеет смысл если она умеет хранить данные на батарейном питании (для тех у кого нет 150р на SD-карту, а 300р на ОЗУ есть), как это в прошлом столетии рекламировал Чистяков. Он так и использовал - питая РАМ-диск от автомобильного акумулятора. Тогда винчестеры стоили запредельно, а SD/CF (от которых функционально внешний РАМ-диск не отличается а по объему несравним) не было вовсе. И то, для этой системы у них уже в 90м году была своя ОС, где в отличие от Ордос и файлы хранились не последовательно, а кластерами, и размер файла не ограничивался одной страничкой РОМ-диска или страничкой ОЗУ. Также эти диски поддерживались в CP/M.

Другое дело - расширение штатного ОЗУ. Покольку оно продляет основное на том же самом порту и странично включается в адресное пространство процессора, то в нем можно как РАМ-диск организовать, так и использовать его под выполнение процессов, например под тот же UZIX. Это большой плюс, как мне кажется, ибо дает выбор.

Denn
10.07.2015, 23:58
абстрагируясь от того что спаять что-нибудь просто приятно

Как раз вовсе нет. Если абстрагироваться, то тогда имеет смысл только эмулятор на уже имеющемся у всех ПиСи.
Но здесь сайт любителей олдскула, как я понимаю.



Любой самопальный носитель проигрывает по объему и удобству SD-карте с быстрым контроллером,

Толку от быстрого контроллера для Ориона с его клоком 2,5 МГц никакого. Удобство? Поддержка протокола SD это задачка не на один вечер, и кода там будет несравнимо больше, чем для обмена с ROM/RAM-диском. Что касается объёма, то тут всё упирается в разумность, в размер ОЗУ Ориона под FAT и опять же в никакое быстродействие. Добавим сюда тот печальный факт, что флэшки идеологически невечны, а реальные дешёвые китайские экземпляры вообще ненадёжны.



Доработка РОМ-диска на мой взгляд имеет смысл если она минимальна.

Доработка имеет смысл, если она позволяет наиболее лёгким способом получить необходимый функционал.



РАМ-диск на внешней ОЗУ имеет смысл если она умеет хранить данные на батарейном питании

Об этом и речь. На схеме указаны аж два резервных источника питания (батарейка и "дежурка").



Другое дело - расширение штатного ОЗУ. Покольку оно продляет основное на том же самом порту и странично включается в адресное пространство процессора, то в нем можно как РАМ-диск организовать, так и использовать его под выполнение процессов, например под тот же UZIX. Это большой плюс, как мне кажется, ибо дает выбор.

Включить RAM-диск в адресное пр-во ОЗУ Ориона - это технически сложная доработка. Плюс тут только один - скорость, но работа на Орионе это вовсе не гонка за скоростью, это скорее наоборот (получение удовольствия от неспешной вдумчивости :)).
Скажу так, в реальной работе на Орионе медленность носителей информации меня никогда особо не волновала. ЭД будет по любому быстрее того же НГМД, так что тут всё прекрасно, я считаю.

HardWareMan
11.07.2015, 06:49
Любой самопальный носитель проигрывает по объему и удобству SD-карте с быстрым контроллером, например по варианту HardwareMan-а.
А еще можно использовать контроллер и притвориться линейной памятью. Но скорость будет не торт по сравнению с настоящей микросхемой.

Включить RAM-диск в адресное пр-во ОЗУ Ориона - это технически сложная доработка. Плюс тут только один - скорость, но работа на Орионе это вовсе не гонка за скоростью, это скорее наоборот (получение удовольствия от неспешной вдумчивости :)).
Не только, можно запускать код с него, а это бывает большой плюс (для ВМ80 не особо - код должен быть специально подготовлен, а для Z80 очень даже вариант).

Скажу так, в реальной работе на Орионе медленность носителей информации меня никогда особо не волновала. ЭД будет по любому быстрее того же НГМД, так что тут всё прекрасно, я считаю.
И вот тут, контроллер с ОЗУ и картой памяти очень вкусно выглядит: сеансовая работа с ОЗУ и ленивый фоновый сброс ее содержимого на карту. Как вариант.

Denn
11.07.2015, 11:01
контроллер с ОЗУ и картой памяти очень вкусно выглядит: сеансовая работа с ОЗУ и ленивый фоновый сброс ее содержимого на карту. Как вариант.

Да, такой вариант интересный. Но умный ROM-диск это как-то совсем не по-олдскулу.
Мне видится идеалом именно такой вариант, как я описал в стартовом посте. Т.е. ОС и основной проверенный набор программ находится в ROM-диске, текущие рабочие файлы проектов в RAM-диске, а на ГМД (или SDHC) иногда делается бэкап. Т.о. нечасто мучаю подверженные износу носители, а SRAM можно считать вечной и объёма в 1 Мб вполне достаточно для работы.

Error404
11.07.2015, 11:56
Толку от быстрого контроллера для Ориона с его клоком 2,5 МГц никакого. Удобство? Поддержка протокола SD это задачка не на один вечер, и кода там будет несравнимо больше, чем для обмена с ROM/RAM-диском. Что касается объёма, то тут всё упирается в разумность, в размер ОЗУ Ориона под FAT и опять же в никакое быстродействие. Добавим сюда тот печальный факт, что флэшки идеологически невечны, а реальные дешёвые китайские экземпляры вообще ненадёжны.


Почему никакого толку? Точно такая же хранилка.
Работать она будет быстрее твоего RAM-диска если в пересчете на обмен 512-байтными блоками. Потому что в схеме Hardwareman-а пересылка одного байта - это одна команда (которые для новой схемы можно и по OUT передавать, т.е. за 7 тактов), а в твоей - несколько (надо установить адрес и надо передать собственно данные, которые делаются через STA - 12 тактов на команду). В схеме того-же Чистякова вместо адресной TM9 использовались ИЕ7 с параллельной загрузкой и автоинкрементом адреса по обращению, у него передача блока шла быстрее, но все рвно медленнее SD-карты Hardwareman-а из-за OUT/STA

SD-карта - это "выбор пользователя", т.к. оно и как носитель - можно вынуть и прочитать/записать на ПС или другом Орионе, и как RAM-диск со свойствами ПЗУ и батарейка не нужна. Вон когда Евгений7 еще интересовался Орионом, он сразу начал ее использовать как расширение ROM-диска, ибо подпрограммы блочного обмена уже есть, программу написал за вечер (и мой аналог тоже есть). Довольно смешно имея такие носители, в качестве базового хранения для РОМ_диска (загрузиться то откуда то надо? И батарейка ОЗУ не вечна, сохраняться тоже надо) в 21 веке использовать магнитофон или дисковод.

Другое дело, если задача стоит использовать это с ОРДОС, причем не страницами по 60к (загружая их в ОЗУ целиком), а побайтовыми обращениями из BIOS Ордос. Тогда - да. Ордос переписывать (делать буферизацию) - не вариант, не стоит овчинка выделки.

По поводу микроконтроллеров согласен, как по мне, то на Орионе должен быть только один еще один ЦПУ/контроллер - для клавиатуры PS2/USB, т.к. без клавы никуда, а старые матричные уже погнили все. Также не мой вкус, не смотрятся в Орионе ПЛИС для маленьких задач типа SD-контроллера. Или эта ПЛИС должна тянуть всю логику, или уж оставаться на россыпухе.

Denn
11.07.2015, 17:10
Работать она будет быстрее твоего RAM-диска если в пересчете на обмен 512-байтными блоками.

В Орионе нет контроллера ПДП, так что я не понимаю, о каком принципиальном ускорении может идти речь.



и надо передать собственно данные, которые делаются через STA - 12 тактов на команду)

Порты в Орионе отображены на память, поэтому не обязательно использовать 12-тактовые STA/LDA.



В схеме того-же Чистякова вместо адресной TM9 использовались ИЕ7 с параллельной загрузкой и автоинкрементом адреса по обращению,

Не понял. ТМ9 используется для защёлкивания старшей части адреса, и при чтении/записи блока (256 или 512 байт) там ничего менять не надо.
Кто инициирует инкремент? Или речь о какой-то глубокой аппаратной доработке и использовании внутренних сигналов ПРК, которых нет в интерфейсе порта?



SD-карта - это "выбор пользователя", т.к. оно и как носитель - можно вынуть и прочитать/записать на ПС или другом Орионе

Это выбор пользователей ПиСи и современных нанотехнологий, с соответствующими объёмами, быстродействием и стандартами. Орион - он как бы из другой эпохи ;)



Довольно смешно имея такие носители, в качестве базового хранения для РОМ_диска (загрузиться то откуда то надо? И батарейка ОЗУ не вечна, сохраняться тоже надо) в 21 веке использовать магнитофон или дисковод.

Не пойму, при чём тут магнитофон? Речь про ROM-диск, загрузка осуществляется с него, запись информации с помощью программатора. ОС может записывать файлы в RAM-диск, информация в котором хранится за счёт "дежурки", а в случаях отключения электроэнергии (или переноса ЭД на другой ПК) - от батарейки.



По поводу микроконтроллеров согласен, как по мне, то на Орионе должен быть только один еще один ЦПУ/контроллер - для клавиатуры PS2/USB, т.к. без клавы никуда, а старые матричные уже погнили все. Также не мой вкус, не смотрятся в Орионе ПЛИС для маленьких задач типа SD-контроллера. Или эта ПЛИС должна тянуть всю логику, или уж оставаться на россыпухе.

Кроме клавы согласен :) У меня герконовая клава, она не сгниёт никогда! А писишную можно цеплять напрямую.. но это уже оффтоп.

HardWareMan
11.07.2015, 18:11
и надо передать собственно данные, которые делаются через STA - 12 тактов на команду).
Порты в Орионе отображены на память, поэтому не обязательно использовать 12-тактовые STA/LDA.

Извините, не удержался:
http://savepic.su/5785538.png
Считал и так и этак, но всегда получал 13: 4+3+3+3. Энивэй, как уже было сказано, можно использовать MOV M,A/MOV A,M за 7 тактов (4+3). Если рабочая скорость карты будет равна тактовой процессора, то добавляем NOP и все в ажуре. Это если не делать RDY/WAIT. По скорости, связка LDA/STA это 26 тактов (13+13), а MOV/NOP/MOV уже 18 (7+4+7). Ускорение примерно 44%. Если использовать IN/OUT, то получаем 20 тактов (10+10).

Denn
11.07.2015, 21:03
Про 12 тактов написал Error404, я поверил ему на слово, в справочник проверять не полез :)

Вопросами ускорения чтения/записи я в своё время развлекался. Самое ощутимое ускорение даёт использование стековых операций, но и то в масштабах чтения 2-килобайтовых файлов эти ускорения ничего кардинально не меняют в жизни. На Орионе же не МикрософтВиндовс, с её перманентной прогрузкой файлов тысячами штук в секунду :)
RAM-диску не нужно менять дискету, там нет механического позиционирования головок, bad-секторов - и это уже большая радость! Скорость там достаточная для 8-битного счастья!

b2m
12.07.2015, 00:53
Не слушай никого. Вполне законченное и простое устройство, которое вполне логично подключается к стандартному Ориону. Будет полезно тем, кто привык использовать Ордос и программы для этой системы.

С другой стороны, никто не заставляет использовать Ордос. Можно считать, что Орион после сброса грузит 2Кб-ный загрузчик, а это устройство совместимо с протоколом загрузки. Так что в ПЗУ можно зашить что-то своё. Вопрос только в совместимости со старыми ордосовскими программами.

Denn
12.07.2015, 01:29
b2m, собственно процесс возделывания уже начал :)
Сегодня сделал самую тонкую часть работы: разогнул SOJ-выводы ОЗУшек, напаял одну на другую:

http://www.denn.ru/8bit/orion/128/e-disk/edisk_01.jpg

распаял полученный "бутерброд" на переходную плату SOIC-DIP:

http://www.denn.ru/8bit/orion/128/e-disk/edisk_03.jpg

дальше уже останется работа в PDIP-домене :)

Схему перерисую, т.к. во-первых там есть ошибка (вместо ЛЕ1 должна быть ЛЛ1, с соотв. распиновкой), плюс я добавил два джампера (один для вариации ПЗУ в 28-выводном корпусе, второй для "вечного" standby ОЗУ (для превращения в стандартный ROM-диск ОРИОНа, для пущей универсальности).

Примерное расположение элементов такое:

http://www.denn.ru/8bit/orion/128/e-disk/edisk_04.jpg

ТМ9-ая стоит под ОЗУшками.


Касательно программной части. Я с 2000 года использую DSDOS, в которой есть эмуляция ORDOS для старых программ, т.о. софт полностью абстрагирован от реализации дисковой системы. А поддержку нового ЭД, разумеется, сделаю в новой версии DSDOS.

Error404
12.07.2015, 01:57
Извините, не удержался:
http://savepic.su/5785538.png
Считал и так и этак, но всегда получал 13: 4+3+3+3. Энивэй, как уже было сказано, можно использовать MOV M,A/MOV A,M за 7 тактов (4+3). Если рабочая скорость карты будет равна тактовой процессора, то добавляем NOP и все в ажуре. Это если не делать RDY/WAIT. По скорости, связка LDA/STA это 26 тактов (13+13), а MOV/NOP/MOV уже 18 (7+4+7). Ускорение примерно 44%. Если использовать IN/OUT, то получаем 20 тактов (10+10).

Нельзя быть таким занудой. :)

---------- Post added at 01:57 ---------- Previous post was at 01:49 ----------



Не понял. ТМ9 используется для защёлкивания старшей части адреса, и при чтении/записи блока (256 или 512 байт) там ничего менять не надо.
Кто инициирует инкремент? Или речь о какой-то глубокой аппаратной доработке и использовании внутренних сигналов ПРК, которых нет в интерфейсе порта?


Не, мысль в том, что если ОС все равно допиливать для новых доработок расширений ромдиска, то можно ИЕ7 (вместо ТМ9) поставить на младшие адреса. Адрес первой ячейки блока загружается в ИЕ7 (или в каскад ИЕ7), и по каждому последующему обращению на чтение или запись (по спаду) ИЕ7 сама инкрементирует адрес. Что позволяет существенно реже писать адрес, а чаще работать по данным.

Так было сделано у Чистякова в электронных дисках: пишешь "адрес сектора" (в регистры или в ВВ55), пишешь "смещение в секторе" (не помню, возможно там каскад ИЕ7 автоматом обнулялся на начало сектора), затем куча чтений или записей без установки адреса - адрес растет автоинкрементом.

Ну это так, к слову о быстродействии.
Здесь эта задача на сама деле не стоит, так - че-нить поделать околоорионовское. Понимаю, я тоже вон, то Юзикс, то в CP/M чо-нить впилю, т.е. никому кроме меня не интересное. Поэтому я не придираюсь, я просто любую авторскую мысль сначала пытаюсь направить в русло моих концепций - чтобы я потом мог это поддержать (в Юзикс или где-то еще), но когда нет - то нет, дело хозяйское.

Denn
12.07.2015, 02:14
и по каждому последующему обращению на чтение или запись (по спаду) ИЕ7 сама инкрементирует адрес.

Повторюсь, в интерфейсе порта (на разъёме) нет сигнала, который меняется по факту чтения/записи порта. Как я понимаю, надо протаскивать CS ВВ55-ой наружу. При этом получается возможным только линейное (посекторное) чтение данных, а произвольный доступ (например, сканирование каталога) с определённым "танцами" с инициализацией ИЕ7'ой.

А реальный выигрыш в скорости вряд ли будет на глаз различим ;) По любому на реальных файлах (~2 Кб) это будут доли секунды. Гораздо дольше будут прорисовываться панели Нортона, или экран запущеной софтинки (особенно с нативным 6-битным драйвером печати символов :)).

HardWareMan
12.07.2015, 07:05
Правильно написанный 6ти битный драйвер печати символа даже на Специалистовских 2МГц работает довольно-таки шустро.

PS Вспомнилось. Тут была же тема не далеко про FWH к компу, не помню точно, вроде к РК подобному. В параллельном режиме FWH работает как ПЗУ с мультиплексированными адресами. Ну а если использовать ее а ОЗУ подключить по подобию, чтобы драйвер был универсален?
С другой стороны, данная схема при использовании регистра только как расширитель самых старших адресов и со сбросом от кнопки Ориона может быть совместим по младшим 32КБ ПЗУ со стандартным Ордосом. И таким образом не требовать переделки онного для запуска (а после загрузки использовать уже свой драйвер).

Denn
12.07.2015, 10:17
Правильно написанный 6ти битный драйвер печати символа даже на Специалистовских 2МГц работает довольно-таки шустро.

А вот с этого места поподробнее.. Т.е. в Орионе дефолтный драйвер F809h написан криво?
Разве можно "обмануть физику" и сделать 6-битный вывод близкий по быстродействию к 8-битному? Имхо, нереально. По любому это будут сдвиги битов, чтение смежных байтов, наложение маски.. и всё это против простого копирования байтов знакогенератора в экран в случае 8-битного. :v2_dizzy_punk:

HardWareMan
12.07.2015, 12:38
Понятно, что у 6ти битного вывода в 2 раза больше операций, но есть примеры совсем неудачной реализации онного: стандартный вывод символа стандартного ПСПЗУ. Там все идет через стэк и RAMFOS как-будто под транками работает. При замене на нормальный вывод он даже перестает бесить своими перерисовками.

По теме диска. Будет полезная фича сброса дампа ОЗУ на диск (можно файлом, можно в специальную резервную область) по мановению палочки (нажатию кнопки, выбору меню - нужное подчеркнуть) для сохранения текущего сеанса работы с последующим восстановлением, причем даже после выключения, т.е. гибернация для Ориона. Этакий аналог магической кнопки спецтрума. Было бы очень полезно, я думаю.

b2m
12.07.2015, 21:27
Схему перерисую, т.к. во-первых там есть ошибка (вместо ЛЕ1 должна быть ЛЛ1, с соотв. распиновкой), плюс я добавил два джампера (один для вариации ПЗУ в 28-выводном корпусе, второй для "вечного" standby ОЗУ (для превращения в стандартный ROM-диск ОРИОНа, для пущей универсальности).
Не забудь подтянуть C7,C8 к еденице - при сбросе ВВ55 переключается в режим ввода, возможна порча случайного байта в ОЗУ эл. диска.

Error404
15.07.2015, 00:32
По теме диска. Будет полезная фича сброса дампа ОЗУ на диск (можно файлом, можно в специальную резервную область) по мановению палочки (нажатию кнопки, выбору меню - нужное подчеркнуть) для сохранения текущего сеанса работы с последующим восстановлением, причем даже после выключения, т.е. гибернация для Ориона. Этакий аналог магической кнопки спецтрума. Было бы очень полезно, я думаю.

Так диска же нет (SD-карты) :rolleyes:

HardWareMan
15.07.2015, 06:38
ТС назвал его диском. Поэтому и я так же назвал его, чтобы не делать путаницы. По сути он да, "электронный квазидиск". Журнальное понятие, ага. Ну и в случае с гибернацией можно назвать его S3 состоянием глубокого сна. :3

Denn
15.07.2015, 12:38
Так диска же нет (SD-карты) :rolleyes:

Именно диск! SD - это тоже электронная память, просто в ней flash-память, которой для хранения не нужно питание.

В моём случае это статическое ОЗУ с хранением от дежурки/батарейки. Дежурное питание нужно для того, чтобы понапрасну не сажать батарейку (хотя и без дежурки батарейка проработает лет 7..10), и с его использованием срок действия батарейки фактически ограничивается сроком её хранения (можно считать вечной)! ЭД также можно отсоединять, переносить на другой ПРК, без потери информации.

Квазидиском называют диск, организованный в ОЗУ (динамическом), информация в нём теряется при выключении ПРК.

П.С. "Гибернизация" для Ориона, имхо, не нужна. Загрузка ОС занимает долю секунды, примерно столько же сохранение рабочего файла на ЭД :)

---------- Post added at 12:38 ---------- Previous post was at 11:28 ----------


Не забудь подтянуть C7,C8 к еденице - при сбросе ВВ55 переключается в режим ввода, возможна порча случайного байта в ОЗУ эл. диска.

Или всё-таки к GND ? Что будет в момент нарастания питания: подтяжки могут неодновременно начать работать (распознаться как лог. "1"). Или я паранойю? :confused:

b2m
15.07.2015, 15:20
Что будет в момент нарастания питания
У тебя же вроде "батарейное" питание? Подтягивай туда, откуда вся плата питается, в т.ч. и ОЗУ. Или у тебя логика отключается от питания?

Denn
15.07.2015, 18:23
У тебя же вроде "батарейное" питание? Подтягивай туда, откуда вся плата питается, в т.ч. и ОЗУ. Или у тебя логика отключается от питания?

При выключении, на батарейку переводится только ОЗУ и ЛЛ1, т.к. последняя формирует сигнал CE для первых :)
Подтягивать к батарейке не хочется, т.к. будет дополнительное потребление на резисторах подтяжки. А ноль - он всегда трушный ноль, никуда не прыгает при переходных процессах и режим 00 тоже безопасный для сохранности инфы в ОЗУ.

b2m
16.07.2015, 09:58
При выключении, на батарейку переводится только ОЗУ
Тогда надо к еденице подтянуть /RAM0 /RAM1. Тогда может быть и без ЛЛ1 обойтись можно. Экономнее будет.

---------- Post added at 11:58 ---------- Previous post was at 11:47 ----------

Если отключать ЛА3, не будет ли конфликта на шине А, если /ROM и /CE одновременно в нуле окажутся?

Denn
16.07.2015, 11:21
Тогда надо к еденице подтянуть /RAM0 /RAM1. Тогда может быть и без ЛЛ1 обойтись можно. Экономнее будет.

В схеме есть контроллер питания ОЗУ, он рулит сигналом CE: при снижении питания ниже 4,75в он переводит CE в лог."1", тобишь ОЗУ гарантировано "спит" во время всех переходных процессов. Т.к. микросхем ОЗУ две, то разруливанием их сигналов CE занимается ЛЛ1, и её приходится тоже питать от резервного питания (батарейки).



Если отключать ЛА3, не будет ли конфликта на шине А, если /ROM и /CE одновременно в нуле окажутся?

См. выше, при отключении ЛА3 на входах CE ОЗУ будут принудительно выставлены лог."1", т.е. ОЗУ будут "спать"
(а их выходы будут в :v2_dizzy_vodka4:-состоянии).

Vladimir_S
16.07.2015, 12:04
Т.к. микросхем ОЗУ две, то разруливанием их сигналов CE занимается ЛЛ1, и её приходится тоже питать от резервного питания (батарейки).
Тогда может целесообразно вместо ЛЛ1 применить какую нибудь например 561 серии?

Denn
16.07.2015, 12:51
Тогда может целесообразно вместо ЛЛ1 применить какую нибудь например 561 серии?

Дык там ещё лучше стоит - 74AC32 ! :ZXPlus:
Это я по-старинке называю "ЛЛ1", т.к. лично мне так понятнее, о чём речь (не привык я к буржуйской маркировке :))

Denn
18.07.2015, 12:32
Уже разрисовал лейку под МГТФ'инг, хотел включать паяльник... и внезапно понял, что есть серьёзный косяк! У ВВ55'ой есть противная особенность: при установке режима она принудительно все порты, настроенные на вывод, устанавливает в лог."0". Тобишь хотим мы записать байт в RAM-диск, выдаём команду "11" (StandBy), переводим линию порта данных на вывод и у нас автоматом на ША выставляются лог."0", т.е. выдаётся команда "00" (чтение ROM-диска), т.о. получается конфликт на ШД - выходы ПЗУ подключаются к выходам ВВ55'ой.

В результате мозгового штурма, пришёл к выводу, что проще всего немного изменить логику работы и добавить триггер защёлки команд (ТМ2). Получается плюс ещё один корпус. По фронту бита C7 будет защёлкиваться старшая часть адреса в ТМ9, а по фронту бита C8 - команда в ТМ2. При изменении режима порта принудительная установка в лог."0" даст спад, который никак не изменит состояния триггеров, следовательно режим "StandBy" не изменится и конфликта на ШД не будет.

Схему перерисую позже и обновлю в заглавном посте.

HardWareMan
18.07.2015, 16:35
Кстати да, ВВ55 этим грешит конкретно. Более того, НП ЛК на этом основаны (вход по сбросу как лог.1).

newart
17.08.2015, 17:47
Схема заработала?

---------- Post added at 18:47 ---------- Previous post was at 18:29 ----------

Кстати где взять DS1210? В чип и дипе и терре она по 400р.
На алиэкспрессе по 50р, но ждать месяц.

Denn
17.08.2015, 23:07
Схема заработала?

Полная беда со свободным временем (( Пока распаял только шины питания и пару-тройку сигнальных линий:

http://denn.ru/8bit/orion/128/e-disk/edisk_05.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_06.jpg

Семья-дети-гитаризм-халтуры-работа - это полный досвидос для хобби ((



Кстати где взять DS1210? В чип и дипе и терре она по 400р.
На алиэкспрессе по 50р, но ждать месяц.

Я придушил жабу и взял по 190 руб/шт. тут - http://platan.ru/cgi-bin/qwery.pl/id=1817
(сейчас у них уже по 210 руб)...

А ЧиД как всегда неадекватит со своими ценами.

П.С. если кому-то интересно, то макетка эта - http://www.radetali.ru/catalog/product/plata-dpp-50kh100/

Berg_Ice
01.10.2015, 01:48
Можно глянуть DS1215, DS1314, DS1315...
Первый и последний ещё и с часами (RTC)...
Но эти, я думаю, подороже будут...

Stampmaker
01.11.2015, 20:59
из даташита:

NOTES:
...
2. Only one battery input is required. Unused battery inputs must be grounded
....

по схеме из первого поста на вывод 2 DS1210 подключена батарейка.
а зачем при этом на вывод 7 заведено ещё 3,6в?
ведь согласно даташиту, выв.7 должен быть подключен на землю.

Denn
01.11.2015, 23:08
Stampmaker, идея в запитывании от "дежурки", т.е. от сетевого резервного питания. А батарейка на случай отключения от сети или при физическом переносе диска на другой ПК. Т.о. в конструкции задействованы оба входа резервного питания DS1210.

Denn
30.11.2015, 15:01
Наконец-то удалось выделить время и спаять девайс. Схемотехника чуть-чуть была изменена, в результате удалось обойтись без дополнительного триггера-защёлки режима, получить более быстрый доступ к программированию режима, получить полную совместимость со стандарнтой 64-килобайтной версией родного ROM-диска Ориона (!), но для всех этих "плюшек" пришлось задействовать дополнительную свободную линию [C2] порта клавиатуры (#F402).

Обновлённый вариант схемы:

http://denn.ru/8bit/orion/128/e-disk/e-disk2.jpg


Фотосессия процесса сборки:

http://denn.ru/8bit/orion/128/e-disk/edisk_07.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_09.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_11.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_12.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_13.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_14.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_15.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_16.jpg


В результате обнаружилась проблема с работой супервайзора DS1210: в варианте с трансляцией его сигнала CEO на две микросхемы ОЗУ через сепаратор на ЛЛ1, в режиме "спячки" по непонятным причинам получается дикое потребление энергии, в результате батарейка просаживается с 3 Вольт до 1,14! Без установленных микросхем ОЗУ просадки нет и все необходимые для "спячки" сигналы на контактах ОЗУ в норме.
С супервайзором придётся разбираться отдельно, на макете.

В остальном схемотехника отрабатывает функционал верно. Теперь дело за "малым" - нужно написать программную поддержку этого монстра :)

Denn
04.08.2016, 12:05
И года не прошло, как я добрался и наконец-то "добил" ЭД :)

Схему пришлось чуть-чуть доработать, совсем чуть-чуть:

http://denn.ru/8bit/orion/128/e-disk/e-disk3.jpg

Изменения отмечены красным цветом. А именно, пришлось взять с порта клавиатуры ещё одну неиспользованную линию (С1, выв. 15 DD53 или он же контакт С1 разъёма клавиатуры) - для стробирования процесса записи в СОЗУ (факин' ВВ55 с её сбросом линий портов при смене режима IN/OUT :v2_dizzy_queen: ).
Т.о. от программного режима "StandBy" (D7=D6="1") СОЗУ отказался. Высвободился один ЛЭ от ЛАЗ, его можно задействовать например для буферизации светодиода индикации обращений к ЭД :)

Программная поддержка пока сделана в виде отдельного загружаемого драйвера в DSDOS v3.84 - EDISK$. В настоящий момент ведутся работы по оптимизации кода чтения/записи в RAM-часть ЭД, как всегда хочется выжать максимум скорости.

Проблема с супервайзором в реальности оказалась проблемой неудачно выбранного типа м/сх СОЗУ :( Микросхемы CY7C1049D-10VXI заточены под быструю скорость работы, а не под малое потребление в "спячке", у них StandBy Power аж целых 10 мА на один чип, итого оба чипа в "спячке" кушают 20 мА ! Батарейка CR2032 физически не тянет такой ток и питание "проваливается" до 1,14в. Ни о каком резервном хранении с этим типом СОЗУ речи нет, разве что только от "дежурки" ИБП.

Позже перерисую схему с учётом исправлений и с другими м/сх СОЗУ - K6T4008C1B-DB70 (корпус DIP32), а также выложу код процедур чтения/записи RAM-части.

Denn
05.08.2016, 12:36
Программная поддержка RAM-диска ЭД:



; *** Процедуры работы с RAM-диском ЭД ***
; (C) Denn /St.-Petersburg/, 05.08.2016

; Порт ROM/RAM-диска:
PT_CFG:EQU 0F503H
PT_ADR:EQU 0F501H
PT_DAT:EQU 0F500H
PT_KBD:EQU 0F402H; порт банка ROM/RAM и CE RAM-диска

LDRAMD:
; Чтение блока из RAM-диска
; Вх: [A]-номер банка в RAM-диске (0..15), [HL]-а/н блока в RAM-диске,
; [DE]-а/н буфера загрузки блока, [BC]-длина блока
ANI 0FH; защита блока выбора режима ЭД

; включить режим "RD RAM"
ORI 80H; режим "01" + выбор банка
STA PT_ADR+1
LDA PT_KBD
ORI 04H
STA PT_KBD
XRI 06H; = XRI 04h & ORI 02h
STA PT_KBD

LDRAM0:
SHLD PT_ADR
INX H
DCX B
LDA PT_DAT
STAX D
INX D
MOV A,C
ORA B
JNZ LDRAM0

ROM_ON:
; Вкл. режима "RD ROM"
LDA PT_KBD
ORI 06H
XRI 06H
STA PT_KBD

; сброс банка на нулевой (для доступности ROM-диска после HW-RESET)
XRA A

SVBANK:
STA PT_ADR+1
LDA PT_KBD
ORI 04H
STA PT_KBD
XRI 04H
STA PT_KBD
RET


SVRAMD:
; Запись блока в RAM-диск
; Вх: [A]-номер банка в RAM-диске (0..15), [HL]-а/н блока в RAM-диске,
; [DE]-а/н буфера записываемого блока, [BC]-длина блока
ANI 0FH; защита блока выбора режима ЭД

; включить режим "WR RAM"
ORI 40H; режим "10" + выбор банка
CALL SVBANK

; перепрограммируем порт на запись данных
MVI A,80H
STA PT_CFG

SVRAM0:
; выставляем адрес и байт данных
SHLD PT_ADR
LDAX D
STA PT_DAT

; импульс записи байта в RAM-диск
; бит C1: CS_RAM "0" -> "1" -> "0"
LDA PT_KBD
ORI 02H
STA PT_KBD
XRI 02H
INX D
INX H
DCX B
STA PT_KBD
MOV A,C
ORA B
JNZ SVRAM0

; перепрограммируем порт на чтение данных
MVI A,90H
STA PT_CFG

; Вкл. режима "RD ROM", банк 0
JMP ROM_ON

END


Некоторые пояснения. Работа с RAM-диском предполагается не в т.н. линейном, а в кластерном варианте, т.е. ПО заранее рассчитывает целевой кластер (номер банка и адрес блока внутри банка). Т.о. считается, что при чтении/записи блока мы не выйдем за границу банка, в противном случае, в данном варианте процедур произойдёт "заворачивание" адреса на начало текущего банка. Этот момент должен контролировать программист самостоятельно.
В конце каждой процедуры делается перевод ЭД в режим "RD ROM" и выборка нулевого банка. Это делается потому, что режим ЭД переключается программно и аппаратный сброс его не меняет (не сбрасывает на ROM-диск), а загрузчик ПЗУ "Монитора" не "знает" ничего про банки и ЭД, и соответственно не сможет загрузиться с ROM-диска, если его режим будет в каком-то произвольном состоянии.

При использовании блоков данных (кластеров) размером 256 байт процедуры обмена можно ощутимо "ускорить", что и сделано в реализации под DSDOS.

П.С. Немного цифр. Копирование 35 файлов суммарным объёмом около 64 Кб с RAM-диска на квазидиск, с процессором ВМ80 (CLK=2,5МГц) у меня занимает 13 секунд. Для сравнения, на этой же системе копирование этих же файлов с ROM-диска в квазидиск происходит за 9,8 секунд. Оптимизацию кода вполне можно считать успешной :)

b2m
05.08.2016, 13:43
А почему не используешь команды ВВ55, чтобы рулить отдельными битами порта С?

- - - Добавлено - - -

ORI 6 / XRI 6 === ANI 0F9h

- - - Добавлено - - -

XRI 06H; != XRI 04h & ORI 02h

Denn
05.08.2016, 14:13
А почему не используешь команды ВВ55, чтобы рулить отдельными битами порта С?

У нас данность: линия А порта ВВ55 используется для передачи данных. Так придумали авторы Ориона при организации ROM-диска. У меня задача по этой "ША" гонять данные в двух направлениях: при чтении ROM/RAM в одну сторону, а при записи RAM - в другую.
Менять назначение линий порта диска означает переписывание всего ранее созданного ПО, в т.ч. ОС и ПЗУ "Монитора" - эта затея совершенно бесперспективная, имхо.




XRI 06H; != XRI 04h & ORI 02h

Смысл в следующем: нужно бит D2 сбросить, а бит D1 установить. Для этого нужно выполнить:



XRI 04h
ORI 02h


Вместо этого я одной командой убиваю двух зайцев:



XRI 06H


Типа экономия двух байт ;)


- - - Добавлено - - -



ORI 6 / XRI 6 === ANI 0F9h


Про "ANI 0F9h" не понял... В данном месте была задача сбрость биты D2 и D1 в ноль, не меняя значения остальных битов порта!

Добавил: а, теперь въехал! Спасибо за хинт ;)

b2m
05.08.2016, 14:18
У нас данность: линия А порта ВВ55 используется для передачи данных.
При чём тут порт А. Я имею ввиду, чтобы изменить бит порта С (например, чтобы выдать тактовый сигнал через порт клавиатуры), не нужно его читать. Можно просто дать команду ВВ55 для изменения бита порта С.


Вместо этого я одной командой убиваю двух зайцев:
Если бит D1 был установлен, то ты его этой командой только сбросишь.

А по поводу зайцев - обрати внимание на ORI 6 / XRI 6 === ANI 0F9h


Про "ANI 0F9h" не понял... В данном месте была задача сбрость биты D2 и D1 в ноль, не меняя значения остальных битов порта!
А ANI 0F9h тогда что делает? :)

Denn
05.08.2016, 14:28
При чём тут порт А. Я имею ввиду, чтобы изменить бит порта С (например, чтобы выдать тактовый сигнал через порт клавиатуры), не нужно его читать. Можно просто дать команду ВВ55 для изменения бита порта С.

Не понял. Поясни, плз. Как мне выборочно изменить один бит, не трогая остальные?

- - - Добавлено - - -


А ANI 0F9h тогда что делает? :)

Тут согласен. Отписал выше.

b2m
05.08.2016, 14:33
Есть команда ВВ55 (которую нужно выдавать в порт управления): 0000NNNV, где NNN - номер бита, а V - новое значение


LDA PT_KBD
ORI 04H
STA PT_KBD
XRI 04H
STA PT_KBD
можно сократить до

MVI A,5
STA PT_KBD+1
DCR A
STA PT_KBD+1

- - - Добавлено - - -

Остальные биты при этом не изменятся.

Denn
05.08.2016, 14:34
Прикольно! Не знал. Надо будет попробовать. А она в любом режиме ВВ55 работает?

b2m
05.08.2016, 14:38
Только когда порт С (или его половина) на вывод. Порты А и В так менять нельзя.

Denn
05.08.2016, 14:44
Только когда порт С (или его половина) на вывод.

Я имел в виду, что там же есть какой-то принципиально другой режим ВВ55-ой, который в 8-битках почему-то не используют. В подробности не вдавался, просто когда-то читал.

b2m
05.08.2016, 15:03
Есть ещё стробируемый ввод/вывод. При этом часть порта С (или полностью) используется для сигналов управления. Тут лучше даташит или книжку какую почитать.
Используется для вывода на принтер (можно даже в фоне по прерыванию), например. Но тут нужно, чтобы порт С был правильно соединен с сигналами управления принтера.

- - - Добавлено - - -

Ещё по поводу оптимизации:

DCR C
JNZ LLL
DCR B
JNZ LLL
не использует регистр A и работает быстрее, чем

DCX B
MOV A,C
ORA B
JNZ LLL
Но там есть подводные камни - нужно перед циклом увеличить на 1 регистр B, если он был равен нулю или регистр С был не равен нулю.

Denn
05.08.2016, 15:35
В практическом коде у меня сделано много оптимизаций по скорости. Вместо dcx-mov-ora просто INR L, вместо LDA/STA - LDAX/STAX, операции со стеком. Здесь просто пример кода, самый простой и прозрачный вариант для понимания принципов работы с ЭД.

Denn
19.09.2016, 22:40
Наконец-то с алибабы приехали СОЗУ:

https://pp.vk.me/c626222/v626222907/288ad/fa_SHGovSlQ.jpg

Для ЭД - идеальны!

Denn
06.01.2017, 19:15
По мотивам девайса, описанного тут - http://zx-pk.ru/threads/21984-dsdos-dlya-prk-quot-orion-128-quot.html?p=880046&viewfull=1#post880046
собрал облегчённо-урезанную версию SuperROM-диска объёмом 1 Мб.

Схема устройства:

http://denn.ru/8bit/orion/128/sromd/srom1024_lite_schematic.jpg


Диск содержит только SRAM-часть, без "страховочного" ПЗУ. Дело в том, что ROM-диск позволяет производить "горячую" замену, а ROM-вариант у меня уже есть. Т.о. для первоначальной прошивки загружаемся с обычного ROM-диска, после чего его отсоединяем, подключаем SROM-диск и записываем его. Далее уже ничего перетыкать не нужно, работаем полностью на SROM. В случае форс-мажора (порчи данных в СОЗУ), также загружаемся с обычного ROM-диска и перезаписываем SROM.
В качестве ЗУ в SROM используются две микросхемы статического ОЗУ - K6T4008C1B-VB70 (даташит (http://denn.ru/orion/512/srom/K6T4008C1B-VB70.pdf)), каждая объёмом 512 Кб. Хранение информации при отключении питания ПРК осуществляется за счёт резервного питания СОЗУ от батарейки CR2032.
Запись информации выполняется с помощью утилиты SROM$, подробности описаны там же (http://zx-pk.ru/threads/21984-dsdos-dlya-prk-quot-orion-128-quot.html?p=880046&viewfull=1#post880046).
Включение режима записи ручное, поэтому случайная порча информации диска при программных сбоях ПРК исключена.

Использование устройства требует доработки базовой схемы ПРК "Орион-128": проброс двух линий от порта клавиатуры (#F4) на разъём порта ROM-диска (#F5), а также заведения сигнала /RESET на контакт А9. Доработки точно такие же, как для Гибридного ЭД и для SuperROM v2.0.

В результате получаем непрерывное хранилище объёмом 1024 Кб! Из них 2 Кб отнимает загрузчик ОС, т.о. под файлы остаётся 1022 Кб, что в масштабах ПО "Ориона" весьма прилично.

У меня традиционно девайс собран на макетной плате, и заработал сразу. Фото готового варианта:

http://denn.ru/8bit/orion/128/sromd/srom1024_lite(1).jpg

http://denn.ru/8bit/orion/128/sromd/srom1024_lite(2).jpg

http://denn.ru/8bit/orion/128/sromd/srom1024_lite(3).jpg

http://denn.ru/8bit/orion/128/sromd/srom1024_lite(4).jpg

http://denn.ru/8bit/orion/128/sromd/srom1024_lite(5).jpg

Vladimir_S
06.01.2017, 19:33
Denn, а почему не сделать так?

Denn
06.01.2017, 19:42
Vladimir_S, это цепь подзарядки?

Vladimir_S
06.01.2017, 19:43
Vladimir_S, это цепь подзарядки?
Ну да.

Denn
06.01.2017, 19:52
А не злобно 1 ком будет? Я видел в любительской схеме похожую подзарядку, там было 39 ком...
У меня Орион бывает сутками не выключается, как бы батарейке дно не вышибло от этой подзарядки :)

Vladimir_S
06.01.2017, 20:00
Denn, 1килоом не я придумал, это из схемы часов на К512ВИ1. У меня комп неделями не выключается и ничего. И еще - схему на 1Мб можно и попроще сотворить. Поставь не ТМ8, а например ИР23. Как раз 1Мб получается если задействовать все ноги ВВ55.

Denn
06.01.2017, 20:36
Vladimir_S, не понял, чем ИР23 проще ТМ8-ой?
Тут схема проще некуда: две м/сх ОЗУ и одна ТМ8 (защёлка номера банка). При этом ROM-диск полностью совместим "вниз" с авторским.

Vladimir_S
06.01.2017, 21:03
не понял, чем ИР23 проще ТМ8-ой?
Вся схема получится (не считая диодов для питания и батарейки) из ИР23, два транзистора и два резистора. У меня 1Мб разбит на четыре (A-D) диска, 1011 секторов по 256 байт в каждом.

- - - Добавлено - - -

И память у меня - в даташите написано, что разрабатывалась специально для аппаратуры с батарейным питанием и при единице на CS все без исключения ноги переключаются в третье состояние. В общем какая то суперэкономичная. В понедельник напишу какая (у меня все на работе).

- - - Добавлено - - -

Подумал и вспомнил - CY62148. Правда не в дипе.

Denn
06.01.2017, 21:21
Vladimir_S, всё равно я ничего не понял. Нарисуй схему, плз.

В моём варианте две СОЗУ впараллель, кроме чипселектов, последними с помощью парафазного выхода Р3 ТМ8-ой осуществляется переключение между младшими и старшими 512к. Весь "метр" памяти доступен линейно, одним диском "А:". ВВ55-я напрямую адресует 64 Кб, следовательно "метр" разбит на 16 банков по 64 Кб. Номер банка защёлкивает ТМ8-я. На транзисторах собрана коммутация чипселектов СОЗУ и имитатор супервайзора.

Vladimir_S
07.01.2017, 01:25
Denn, http://zx-pk.ru/threads/12137-radio-86rk-vneshnij-rom-disk.html?p=743383&viewfull=1#post743383
Только вместо FLASH SRAM, ну и понятно что CS второй SRAM на С7.

Denn
07.01.2017, 12:42
Vladimir_S, во-первых, судя по кол-ву адресных ног, тут не "метр", а 512кб. Во-вторых, твоя схема не совместима со стандартом ROM-диска (Монитор с него не запустит загрузчик). В-третьих, при программировании флэш-ПЗУ требуется двухсторонний обмен данными, а ВВ55-я имеет неприятную фишку: при смене режима порта она скидывает в ноль все линии, т.е. трансляция сигналов управления через ВВ55-ю не получится.

- - - Добавлено - - -


Только вместо FLASH SRAM, ну и понятно что CS второй SRAM на С7.

При программировании режима ВВ55, на всех "С" установятся "0", в результате будет выборка обоих чипов, т.е. аппаратная коллизия, какая-то ОЗУшка не выдержит и погорит ((

Vladimir_S
07.01.2017, 12:59
При программировании режима ВВ55, на всех "С" установятся "0", в результате будет выборка обоих чипов, т.е. аппаратная коллизия, какая-то ОЗУшка не выдержит и погорит ((
Я ведь писал ранее, что на CS стоят транзисторы и они переворачивают уровни.

- - - Добавлено - - -


во-первых, судя по кол-ву адресных ног, тут не "метр", а 512кб.
Еще раз посчитай.

Denn
12.03.2018, 16:02
Наконец-то, выбрал время отрисовать финальную схему ЭД:

http://denn.ru/8bit/orion/128/e-disk/e-disk4.jpg

(открыть крупно (http://denn.ru/8bit/orion/128/e-disk/e-disk4.jpg))


Убрал дорогостоящий супервайзор DS1210, с соответствующим "пересчётом" логики управления чипселектами.
Важный момент, в качестве D5 обязательно использовать КМОП-логику (74HCx00, 74ACx00, КР1594ЛА3, КР5564ЛА3 и т.п.), т.к. в режиме "сна" она питается от батарейки! Остальные микросхемы не принципиально, можно "обычную" серию 1533.
Также добавил светодиод индикации доступа к RAM-диску.

HardWareMan
12.03.2018, 16:45
Убрал дорогостоящий супервайзор DS1210, с соответствующим "пересчётом" логики управления чипселектами.
Важный момент, в качестве D5 обязательно использовать КМОП-логику (74HCx00, 74ACx00, КР1594ЛА3, КР5564ЛА3 и т.п.), т.к. в режиме "сна" она питается от батарейки! Остальные микросхемы не принципиально, можно "обычную" серию 1533.
Также добавил светодиод индикации доступа к RAM-диску.
В кариках Сеги развязка на транзисторе (коллектор на CS, подтянутый к VBat, база через сопротивление 1к к 5В, эмиттер в схему выбора - можно как комплементарную, так и ОК, что даже лучше). Данные хранятся десятилетиями и питать лишнюю микруху не надо.

Denn
12.03.2018, 17:12
В кариках Сеги развязка на транзисторе (коллектор на CS, подтянутый к VBat, база через сопротивление 1к к 5В... Данные хранятся десятилетиями и питать лишнюю микруху не надо.

Я сначала разрисовал вариант на транзисторах, но потом решил перевести на микрухи - меньше канители с разводкой, обвязкой, трудностями доставания/пайки. Тут нужно два чипселекта рулить в сон, соответственно три транзюка (http://zx-pk.ru/threads/25367-gibridnyj-elektronnyj-disk-dlya-prk-orion.html?p=896625&viewfull=1#post896625) получаются + всё равно некоторое кол-во ЛЭ. В итоге сделал по минимуму корпусов.

OrionExt
12.03.2018, 17:42
Пипец. Denn. Cнова картина ручкой (интересно сколько черновиков в мусорке):)

- - - Добавлено - - -

Vр питание обернул. Хи-хи.

- - - Добавлено - - -

Я зачем в свою схему (http://zx-pk.ru/attachment.php?attachmentid=64322&d=1519294036) кондер поставил? Этот транзистор гад в режим усиления уходил.
И ппц как путает. Отхватывать питание у логики. И на диоды:)

Denn
12.03.2018, 18:01
И ппц как путает. Отхватывать питание у логики. И на диоды:)

Наоборот. На диодах собран "микшер" двух источников питания, от него и запитана логика.

OrionExt
12.03.2018, 18:58
Да это козлику понятно

mr.Lee
12.05.2018, 23:56
Наконец-то нашел пару часиков и спаял эл.диск.
ОС запускается (правда пока в варианте 64к), но при попытке обратиться к диску Е - ошибка. Монтаж проверил.
Буду разбираться дальше. Еще смущает то, что диск А определяется в 1 МБ, хотя установлена 512.
65263

65264

65265

Denn
13.05.2018, 01:33
ОС запускается (правда пока в варианте 64к)

64к - это объём ROM-диска ?



но при попытке обратиться к диску Е - ошибка. Монтаж проверил.
Буду разбираться дальше.

Хм, странно. Судя по картинке, форматирование таки проходит успешно, а впоследствии ОС не видит разметку.



Еще смущает то, что диск А определяется в 1 МБ, хотя установлена 512.

Тут всё верно. В 2 Кб загрузчика физически нет места под программную поддержку ПЗУ более 64 Кб и анализ структуры диска, поэтому при загрузке просто детектится наличие диска и выводится его максимальная ёмкость, поддержанная в данной версии ОС. К тому же достоверно определить фактическую ёмкость установленной микросхемы ПЗУ затруднительно, ОС по команде "?А" определяет объём, занятый файлами, а свободное место - как теоретический максимум минус объём файлов.

mr.Lee
13.05.2018, 06:11
Да, за неимением пока более емкой ПЗУ зашил ОС в 512кбит.

Denn
13.05.2018, 20:10
@mr.Lee


Судя по картинке, форматирование таки проходит успешно, а впоследствии ОС не видит разметку.

Посмотрел исходник FORMAT'а, оказывается нет проверки успешности форматирования. Сначала выполняется определение наличия RAM-диска, после чего в диск записывается структура каталога (DIR+FAT) и "успешный" выход. Определение делается следующим образом: ЭД переводится в режим "чтение RAM", читается байт по адресу 0000h нулевого банка, если там не 0C3h, значит RAM5 есть. Из чего можно сделать следующий вывод: если м/сх СОЗУ неисправны или вообще отсутствуют, то детект пройдёт успешно, форматилка отработает без ошибок, а ОС разумеется сообщит о неготовности диска - что и видно на скриншоте.

По хорошему, нужно усложнить алгоритм форматирования, дополнив его микро-тестом СОЗУ. Или сделать отдельную утилиту теста RAM-части ЭД.

b2m
14.05.2018, 11:32
По хорошему, нужно усложнить алгоритм форматирования
По-хорошему, нужно хранить на RAM-диске контрольную сумму секторов.

mr.Lee
20.05.2018, 00:32
заработало. пришлось перепаять озу - может феном перегрел.
65325
65326
Сам девайс, мелочевка (smd) разместилась на обратной стороне.
65327
осталось дождаться ПЗУ 4мбит и собрать уже рабочий вариант

Denn
20.05.2018, 10:01
mr.Lee, отличная работа!

Вы наверное уже попользовались устройством какое-то время, как обстоят дела с надёжностью хранения данных в СОЗУ ?
Меня интересует работа рассыпного супервайзора по новой схемотехнике. По логике всё должно быть красиво, но реальность обычно бывает сурова :)

mr.Lee
20.05.2018, 13:59
Писал одной рукой, во второй еще остывал паяльник:-). Ближайшую неделю буду тестить. Может пару-тройку дней модуль полкжит на батарейном питании, потом проверю

Denn
02.06.2018, 20:40
mr.Lee, спасибо за печатную плату, собрал на одном дыхании, всё заработало сразу!

Фотоотчёт:

http://denn.ru/8bit/orion/128/e-disk/edisk_17.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_18.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_19.jpg

http://denn.ru/8bit/orion/128/e-disk/edisk_20.jpg

mr.Lee
04.06.2018, 10:21
Здорово:).
Я все же подготовлю исправленный вариант - может кому еще будет интересно перевести работу с Орионом на качественно другой уровень.

Denn
04.06.2018, 12:58
mr.Lee, пожелания по новому варианту платы.

Я хотел заменить на старом Орионе свой "первый блин" ЭД на неправильных СОЗУ, и меня ждал облом - там у меня двухэтажное ОЗУ ПРК !!!
Соответственно, либо просто укоротить плату (желательно), чтобы она не залезала в область ОЗУ, либо направить в другую сторону.

Момент номер два: хочется видеть в надетом варианте красоту лицевой стороны, а не изнанки.

Можно ещё предусмотреть доп. линию запитки СОЗУ от "дежурки" (кто питает Орион от АТХ-БП), т.е. пробросить линию С9 через диод в точку суммирования источников питаний СОЗУ. У кого "дежурки" нет, тот просто не запаивает этот диод. С "дежуркой" батарейка реально становится вечной, т.к. она работает только в случае пропадания сетевого напряжения.

П.С. мелкологику можно попробовать разместить под брюхом ПЗУ, а ТМ9 тоже взять в SOIC'е.

HardWareMan
04.06.2018, 16:52
Причем, это:

Момент номер два: хочется видеть в надетом варианте красоту лицевой стороны, а не изнанки.
Решает это:

Я хотел заменить на старом Орионе свой "первый блин" ЭД на неправильных СОЗУ, и меня ждал облом - там у меня двухэтажное ОЗУ ПРК !!!
Соответственно, либо просто укоротить плату (желательно), чтобы она не залезала в область ОЗУ, либо направить в другую сторону.

mr.Lee
05.06.2018, 13:04
Попробую. У меня Орион в корпусе и весьма ограниченной высоты - этим и вызвано направление как самой платы, так и расположением детали - там у меня по высоте счет на миллиметры.

mr.Lee
05.06.2018, 18:24
Сегодня пришли 4мбитные ПЗУ - Winbond 29C040. Для себя открыл, что у них адресная нога А18 на первом выводе, а у 27C040 - на 31-ом. Надо было сразу в даташит лезть, а не тратить полчаса на поиск причин незапуска:).

Denn
05.06.2018, 18:33
Серия 29ххх это же вроде флэшки, там совсем другая история. Но подстава жестокая, согласен!

HardWareMan
06.06.2018, 07:38
JEDEC'а на вас нет. Ну да ладно, держите скан из известного журнала. Даже распечатка на А4 вполне юзабельна.
http://jpegshare.net/images/b9/08/b908b283da87b5cb5e94febdaa93821a.png

Freiwind
07.02.2021, 16:51
Здорово:).
Я все же подготовлю исправленный вариант - может кому еще будет интересно перевести работу с Орионом на качественно другой уровень.
Будет. :)
Где посмотреть исправленный вариант?

SpaceEngineer
02.12.2021, 02:32
Схемка отрисованная в каком-либо редакторе есть, можно глянуть? И герберы?

- - - Updated - - -


К тому же достоверно определить фактическую ёмкость установленной микросхемы ПЗУ затруднительно, ОС по команде "?А" определяет объём, занятый файлами, а свободное место - как теоретический максимум минус объём файлов.
Флешки типа 29Cxxx имеют спец команды, которыми можно прочитать device ID, а зная его и имея табличку соответствия, можно определить объём каждого чипа.

Denn
02.12.2021, 12:16
Флешки типа 29Cxxx имеют спец команды, которыми можно прочитать device ID, а зная его и имея табличку соответствия, можно определить объём каждого чипа.

На весь загрузчик ОС у нас 2 Кб (ещё раз, медленно - ДВА КИЛОБАЙТА)!
Идёт жесточайшая оптимизация кода, борьба за каждый байт. Не до табличек совсем..

HardWareMan
02.12.2021, 18:45
На весь загрузчик ОС у нас 2 Кб (ещё раз, медленно - ДВА КИЛОБАЙТА)!
Идёт жесточайшая оптимизация кода, борьба за каждый байт. Не до табличек совсем..
Как и у процессоров, которые бутятся с NAND. Именно поэтому, там есть STAGE2_BOOT.

Denn
02.12.2021, 18:56
Именно поэтому, там есть STAGE2_BOOT.

Подгружаемый загрузчик как раз будет в четвёртом поколении ОС.

SpaceEngineer
02.12.2021, 22:15
А я не предлагаю менять загрузчик. Пусть ОС (драйвер ром-диска?) проанализирует его, достаточно один раз это сделать на старте. Табличка может быть в виде файла на том же диске.
А можно ещё проще сделать - в самый конец ром-диска записать байт 00. Тогда надо просто просканировать весь диск начиная с конца вниз (подвешенная шина даст FF), пока не найдётся этот ноль.

Denn
03.12.2021, 11:13
А я не предлагаю менять загрузчик. Пусть ОС (драйвер ром-диска?) проанализирует его, достаточно один раз это сделать на старте. Табличка может быть в виде файла на том же диске.

И на диске места уже нет. Совсем нет!

Третье поколение ОС "намертво прибито" к работе с ROM-диска, и обязательным условием является возможность работы в его базовом (64 Кб) варианте.
Сборка на 64 Кб и так урезана до невыносимого минимума - чтобы помещалась на ROM-диск.



А можно ещё проще сделать - в самый конец ром-диска записать байт 00. Тогда надо просто просканировать весь диск начиная с конца вниз (подвешенная шина даст FF), пока не найдётся этот ноль.

Четвёртое поколение ОС будет ориентировано на работу с жёсткого диска, там места завались, вот там будут все плюшки, в т.ч. расширенный детект аппаратной части. Алгоритм определения объём будет работать без спец. нулей.

Freiwind
04.12.2021, 18:56
Запустил свой Ориончик с гибридным диском.
Большое спасибо Денису Соловьеву!

Для желающих тут (https://drive.google.com/file/d/18s-LkcpVTUsPVyxyqcQ_ZxvRblk0V-Pp/view?usp=sharing) схема со сборочной документацией, проект в AD и герберы.

https://i.ibb.co/QmMtR3f/IMG-20211204-165821.jpg (https://ibb.co/QmMtR3f) https://i.ibb.co/PCGFY2b/IMG-20211204-165846.jpg (https://ibb.co/PCGFY2b) https://i.ibb.co/FKrgQQY/IMG-20211204-165922.jpg (https://ibb.co/FKrgQQY) https://i.ibb.co/dW3XY0p/Top-3D.jpg (https://ibb.co/dW3XY0p) https://i.ibb.co/k5YxWVv/Bottom-3-D.jpg (https://ibb.co/k5YxWVv)

otrazhenie
22.03.2022, 13:35
Доброго дня.
а можно прошивку ПЗУ для ром-диска?

Denn
22.03.2022, 14:38
otrazhenie, тема "утонула" на вторую страницу и уже не на виду, вот тут прошивки на выбор - https://zx-pk.ru/threads/21984-dsdos-dlya-prk-quot-orion-128-quot.html?p=1102433&viewfull=1#post1102433

otrazhenie
23.03.2022, 07:35
Не пойму в чем дело.
При включении показывает экран что ROM-диск подключен, потом непонятные полосы.
видео:

https://disk.yandex.ru/i/868eTNuBb8shzg
пробовал заливать 27с4008 и в 27с512. везде поведение одинаково
еще вопрос по микросхемам созу.
В загашнике нашел K674008C2E как раз пара штук. По даташиту отличаются...1 нога не используется, 30 нога СS2. И адресная шина у них с А0-А16. На схеме по А18.
Как мне их подключить?

Freiwind
23.03.2022, 08:29
K674008C2E.
Гугл про них что-то ничего не знает. С маркировкой точно не ошиблись?

Stampmaker
23.03.2022, 11:04
K674008C2E.
Гугл про них что-то ничего не знает. С маркировкой точно не ошиблись?

K6T4008C2E

otrazhenie
23.03.2022, 12:54
K6T4008C2E
они....ошибся я

Denn
23.03.2022, 13:42
Не пойму в чем дело.
При включении показывает экран что ROM-диск подключен, потом непонятные полосы.
видео:

https://disk.yandex.ru/i/868eTNuBb8shzg
пробовал заливать 27с4008 и в 27с512. везде поведение одинаково

А если отключить ЭД, то так же всё ?

otrazhenie
23.03.2022, 13:55
А если отключить ЭД, то так же всё ?

все стандартно...на экране слово "ввод"

Добился чтобы экран не заливали полосы....теперь вижу шелл...только порезанный
https://disk.yandex.ru/i/Vvvq5Su9UcaHwQ
это если несколько раз нажать кнопку ESC (у меня писишная клава)
Светодиод выбора РОМ диска моргает

Denn
23.03.2022, 14:37
otrazhenie, скорее всего криво считываются данные из ПЗУ. Причины - аппаратные. Я бы начал с прочтения ПЗУ на программаторе и сравнения данных с исходником.

otrazhenie
23.03.2022, 14:50
otrazhenie, скорее всего криво считываются данные из ПЗУ. Причины - аппаратные. Я бы начал с прочтения ПЗУ на программаторе и сравнения данных с исходником.

ЭТО ПЕРВОЕ С ЧЕГО Я НАЧАЛ.
проверил монтаж и прошивку

при нажатии на клаве кнопки ресет - изображение становится на миг нормальным

попробую отключить озу полностью - только пзу и посмотрим что и как

Denn
23.03.2022, 15:02
при нажатии на клаве кнопки ресет - изображение становится на миг нормальным

В этот момент сбрасывается схема видеорежима на монохромный, и мусор в области цвета не отображается и не портит картинку.

- - - Добавлено - - -


все стандартно...на экране слово "ввод"

Я имел в виду загрузиться с ром-диском, но без RAM-дисковой части.



Добился чтобы экран не заливали полосы....теперь вижу шелл...только порезанный

это если несколько раз нажать кнопку ESC (у меня писишная клава)
Светодиод выбора РОМ диска моргает

Как вариант: в ОЗУ такой хитрый мусор, который ОС принимает за осмысленную информацию и пытается её обрабатывать. По-хорошему, при включении питания в ОЗУ должно быть что-то примерно такое: FF 00 00 FF и т.д.. Если же там байты, соответствующие ASCII-кодам символов, то загрузчик ОС будет думать, что там живой каталог с файлами, и пытаться там искать системные файлы, а оболочка искать свой файл конфигурации.

otrazhenie
23.03.2022, 15:20
Я имел в виду загрузиться с ром-диском, но без RAM-дисковой части.
я так и делаю. Микросхемы памяти убраны

- - - Добавлено - - -




В этот момент сбрасывается схема видеорежима на монохромный, и мусор в области цвета не отображается и не портит картинку.
Получается что одна ИР13 битая?

Denn
23.03.2022, 15:46
я так и делаю. Микросхемы памяти убраны

Самое простое: загрузитесь без запуска оболочки и повыводите несколько раз подряд каталог ROM-диска [ команда DA ], наблюдайте за корректностью выводимой информации.
Если будет проскакивать мусор, значит всё же с аппаратной частью что-то не в порядке.
Если всё хорошо, то отформатируйте квазидиск командой [F], и пробуйте запустить оболочку клавишей [Esc].



Получается что одна ИР13 битая?

Нет. На фото/видео скорее похоже на улёт ПО в космос.

otrazhenie
24.03.2022, 08:03
Самое простое: загрузитесь без запуска оболочки и повыводите несколько раз подряд каталог ROM-диска [ команда DA ], наблюдайте за корректностью выводимой информации.
как это сделать?
поставил пзу на 512 и монитор М1. ввожу команду R, вижу заставку и все...виснет.....либо мусор....почемуто показывает А: ром-диск 1022кб

Denn
24.03.2022, 09:41
поставил ... монитор М1. ввожу команду R, вижу заставку и все...виснет.....либо мусор....

Нет, М1 не подойдёт, к сожалению. Там неперемещаемый знакогенератор монитора в области F000..F2FFh, ОС DSDOS без неё не может работать, увы.
Нужен М2. Вроде выше была речь про "ВВОД:" без подключения ROM-диска, а это как раз с М2.



почемуто показывает А: ром-диск 1022кб

Всё верно. Это потенциальное максимально возможное значение, которое поддерживает данная версия ОС. Загрузчик ОС на данном этапе показывает максимальные значения объёмов дисков.

otrazhenie
24.03.2022, 10:34
ладно...честно говоря уже надоело малость.....КАК мне вывести правильную картинку?
у меня орион экспресс...собран на макетке. Тест128 выдает что все прекрасно.
А вот ром-диск ни в какую не хочет работать
может монитор прошить посвежее?
ПРОШИЛ 3.1. та же песня

Denn
24.03.2022, 13:45
у меня орион экспресс...собран на макетке.

Насчёт макетки не скажу, а вот про готовую печатную плату неоднократно слышал, что там есть ошибки, в частности в узле переключения страниц памяти, поищите на форуме должна быть информация на эту тему.

- - - Добавлено - - -

Вот, нашёл у себя в переписках: "На желтой плате (NBRSK.405.001) две ошибки на DD29 (3 и 13 ноги перепутаны) и DD62 (15 и 16), их перебросить наоборот. "

otrazhenie
24.03.2022, 14:04
я делал согласно схеме.77173
ну мониторы работают. тест памяти проходит. Можно конечно и поменять, но ни к чему это не приведет.
Если не влом.... прозвоните плиз цепи от dd29 выв 13 и 3. 13 вывод должен идти к DD16.4 выв11, а 3 к DD16.3 выв 8
от DD62 выв16 должен идти DD16.3 выв 10 и выв 15 идет к выв 13 DD60.4

Denn
24.03.2022, 19:09
я делал согласно схеме.

Так там похоже ошибка изначально в схеме. Знакомый собирал на этой плате, у него всё стартовало и почти всё работало, но одна программа (MTOOL$) работала криво в одном месте - так он вышел на эту ошибку. Исправление помогло.

otrazhenie
25.03.2022, 13:47
попробовал махнуть D29 выв 3 и 13...выдает ошибка стр 1 озу.
и D62 выв 15 и 16 .....разницы никакой

нашел ошибку.....

otrazhenie
16.05.2022, 08:02
Доброго дня.
У меня наверно риторический вопрос.....как записать ПЗУ для РОМ-диска?
ну или есть у кого прошивка с игрушками. Скоро дачный сезон....старшему все развлечение

Pluto
20.05.2022, 10:00
http://rdk.regionsv.ru/orion128-games.htm

http://rdk.regionsv.ru/orion128-soft-dsdos.htm
это прошивка DSDOS с играми

otrazhenie
20.05.2022, 10:28
это я видел.
по первой ссылке - записал и на дисках пусто...может и не разобрался толком...
по второй ссылке папка с играми идет в конце прошивки и на мою имеющуюся 27с4001 влазит всего 10 игр...маловато.
Вот я и подумал....как мне выкинуть все ненужное и оставить нужное? ну или может есть у кого готовый образ

проверил еще раз все прошивки с сайта.....игры есть только тут http://rdk.regionsv.ru/orion128-soft-dsdos.htm
остальные содержат набор софта

Pluto
20.05.2022, 12:05
https://www.chipdip.ru/product0/8007169613
Я такую поставил

- - - Добавлено - - -

У меня есть небольшие ПЗУ с играми на OR DOS. Где-то скачал прошивки, не помню.. В каждой буквально по 3-4 игры, штуки три..

otrazhenie
20.05.2022, 12:07
ого...цены щас....

этого мало...вот бы еще научиться создавать образы ПЗУ под OR DOS. описалова я так и не нашел....тайна наверно

Pluto
20.05.2022, 12:17
Ну, это дорого, но быстро..
Наверное можно и дешевле найти.
Зато сразу штук двадцать,а то и больше игрушек с удобным интерфейсом для запуска плюс куча плюшек под DOS от Denna, текстовый редактор, Бейсик, просмотр картиночек, ребенку будет чем заняться.. ;)

Serg6845
20.05.2022, 12:20
https://www.chipdip.ru/product0/8007169613
Я такую поставил


одноразовая, не так интересно...

otrazhenie
20.05.2022, 12:29
Ну, это дорого, но быстро..
Наверное можно и дешевле найти.
Зато сразу штук двадцать,а то и больше игрушек с удобным интерфейсом для запуска плюс куча плюшек под DOS от Denna, текстовый редактор, Бейсик, просмотр картиночек, ребенку будет чем заняться.. ;)

моему к сожалению только игры.....да и картинки с текстом надо откуда то брать и куда то сохранять.....

Pluto
20.05.2022, 14:04
одноразовая, не так интересно...

На самом деле они керамические, с окошком

- - - Добавлено - - -


моему к сожалению только игры.....да и картинки с текстом надо откуда то брать и куда то сохранять.....

Так, гибридный диск для этого и нужен. Я уже отписался в теме про сборку, что сохранял программку на Бейсике на эл.диск. Проверил через неск.дней, все на месте.

Pluto
20.05.2022, 16:27
А сколько вообще известно игр для Ориона ?

b2m
20.05.2022, 20:38
вот бы еще научиться создавать образы ПЗУ под OR DOS
Я писал утилитку для работы с образами ПЗУ: bru.zip (http://bashkiria-2m.narod.ru/files/bru.zip)
Help-а в ней нет, но я приложил read.me, там всего 4 команды поддерживаются. Пустой образ (ну то есть только OR DOS и VC$) тоже в комплекте, копируем его и добавляем понравившиеся .bru/.ord

sergey_sitnik
20.05.2022, 20:40
77366 для 27с080

Pluto
20.05.2022, 22:50
77366 для 27с080

Записал содержимое на 27с801

https://i.ibb.co/31zLQWK/36724-F51-C822-4-D1-A-82-EC-64-C18-B70345-A.jpg (https://ibb.co/31zLQWK)

Не понял, что тут интересного? У меня полностью содержимое отображается?

- - - Добавлено - - -

Разобрался, это РОМ с банками

sergey_sitnik
22.05.2022, 07:12
Там игр много... диски от 0 до F

Pluto
22.05.2022, 10:41
У меня плата на 8 дисков

https://i.ibb.co/Z2CYht3/F8-DEC145-262-A-45-DF-98-ED-5-CAC05434-F34.jpg (https://ibb.co/Z2CYht3)

Pluto
22.05.2022, 13:32
Кстати, электронный диск можно заставить работать в режиме переключения банков?

Denn
22.05.2022, 15:33
Кстати, электронный диск можно заставить работать в режиме переключения банков?

Можно программно переключать банки.

otrazhenie
24.05.2022, 10:43
Записал содержимое на 27с801

https://i.ibb.co/31zLQWK/36724-F51-C822-4-D1-A-82-EC-64-C18-B70345-A.jpg (https://ibb.co/31zLQWK)

Не понял, что тут интересного? У меня полностью содержимое отображается?

- - - Добавлено - - -

Разобрался, это РОМ с банками
и как банки переключать?

Pluto
24.05.2022, 12:00
Должна быть плата с переключателями. См.фото выше.
На моей нужно добавить еще один переключатель, чтобы видеть 16 банков.
Как программно переключать, на практике, я пока не понял.

otrazhenie
24.05.2022, 14:01
схема есть?

Pluto
24.05.2022, 14:10
Нет. Я брал готовую плату у Корнелиуса, по моему.

https://cloud.mail.ru/public/AdDS/AyLGdhYPR

https://zx-pk.com/forum/viewtopic.php?f=7&t=11524

sergey_sitnik
24.05.2022, 18:45
Я просто переключалку на PIC собирал....

otrazhenie
25.05.2022, 08:14
Нет. Я брал готовую плату у Корнелиуса, по моему.

https://cloud.mail.ru/public/AdDS/AyLGdhYPR

https://zx-pk.com/forum/viewtopic.php?f=7&t=11524

это за одну 250 или за четыре?

Pluto
25.05.2022, 11:54
это на барахолке надо спросить, я уже не помню, по чем, что брал.
См п.12 объявления

otrazhenie
31.05.2022, 09:18
Я просто переключалку на PIC собирал....

какие адреса коммутировать?

sergey_sitnik
31.05.2022, 12:19
77398

Aleksandr44
01.06.2022, 13:13
Вопрос - если DALLASы поставить взамес статики то по питанию как нужно развязаться, можно ли будет ЛА3 ТТЛ ставить и питать от общего +5в источника?

otrazhenie
24.06.2022, 16:22
доброго дня.
при попытке вставить все это хозяйство в корпус....почему-то не грузится РОМ-диск.
на экране BIOS V3.1
мож что жать надо? ну забыл пока специалиста собирал....клава писишная у меня....ESC жал, Enter выдает ошибку
прошивка отсюда: http://rdk.regionsv.ru/orion128-rom-tm8.htm
ПЗУ 27С4001

Pluto
27.06.2022, 13:16
Доработка мат.платы выполнена, доп.адресные сигналы подключены?

otrazhenie
27.06.2022, 13:56
да, все сделано......вроде все должно при включении грузиться
уж не битая ли вв55? на входах все есть

otrazhenie
30.06.2022, 15:56
Доброго дня.
не заводится ром диск. вв55 новая.
подключаю к адресу F500 (выв. 6 DD27) в момент старта активность есть. Доп сигнал с порта клавиатуры заведен
на экране BIOS v3.1.
прошивка отсюда: http://rdk.regionsv.ru/orion128-rom-tm8.htm
ПЗУ 27С4001
ром диск по схеме с ТМ8. выв1 ПЗУ на +5в

otrazhenie
01.07.2022, 14:36
спасибо мне за помощь!
решил подтяжкой выв 9 ТМ8 к +5 через резистор 10к и кондера 68пик с выв 9 ТМ8 на землю

AlexBel
24.06.2023, 15:38
Всем привет. Спаял гибридный электронный диск, зашил во флэш-ROM файл dsdos-128_p512.rom. При запуске видно порядка двух десятков файлов, т.е. далеко не всё содержимое ROM, отсутствует SHELL и не определяется RAM-диск. Два сигнала, которые идут на порт клавиатуры F400h до C1 и C2 порта 82С55 звонятся нормально. У кого гибридный диск работает (схема, во избежание недопонимания (https://ibb.co/pxd12v9)) - можете сообщить, как он подключен, что в него зашито... И поддерживает ли этот гибридный диск какой-нибудь софт ORDOS? В общем, любая информация может быть полезной.
Я встречал упоминание порта 0FEh, попробовал в эмуляторе OrionZEm подключить файл ромдиска, ту же прошивку, что зашил у себя. То же самое. Включил "Emulate ROM-disk 64k-pages switched by 0FEh port bits D0..D3 )allow ROM-disk size over 64k) - увиделось порядка 130 файлов, в том числе и SHELL.
Фотография платы (https://ibb.co/phfL4Qy), линия подключение А18 скорректировано под флэшку (иначе вообще стартовал бы)

Denn
25.06.2023, 11:26
Спаял гибридный электронный диск, зашил во флэш-ROM файл dsdos-128_p512.rom.

Алексей, привет!

Что за файл dsdos-128_p512.rom ?

Ссылки на актуальные файлы находятся тут - https://zx-pk.ru/threads/21984-dsdos-dlya-prk-quot-orion-128-quot.html?p=1102433&viewfull=1#post1102433

Сабж называется dsdos-128_p512.zip (http://denn.ru/8bit/orion/soft/dsdos-128_p512.zip) (расширение "ZIP", а не "ROM")

Внутри архива сам файл называется romdisk.bin


Теперь по аппаратной части. В природе существует два варианта переключения банков многостраничных ROM-дисков:

1) Через свободные линии "С" порта клавиатуры
2) Через специально выделенный порт #FE (является надстройкой-доработкой)

В гибридном ЭД применяется первый вариант, при этом одновременное наличие второго варианта недопустимо.

Момент номера два. Недоступность всего списка файлов указывает на неработоспособность узла переключения банков ROM-диска.
А если не работает переключение банков ROM-части, то разумеется не будет работать и SRAM-часть. Надо искать ошибку в плате.
Лично я не сталкивался с неработоспособностью схемы ЭД (у меня три разных реализации - одна на МГТФ, две другие на сторонних готовых платах).
При исправных деталях и правильном их соединении схема работает сразу.

- - - Добавлено - - -


поддерживает ли этот гибридный диск какой-нибудь софт ORDOS?

В теории - да. На практике с 90-ых никто ничего под ORDOS не писал, а ЭД вышел позже.. :)

AlexBel
25.06.2023, 13:04
Алексей, привет!

Что за файл dsdos-128_p512.rom ?

Ссылки на актуальные файлы находятся тут - https://zx-pk.ru/threads/21984-dsdos-dlya-prk-quot-orion-128-quot.html?p=1102433&viewfull=1#post1102433

Сабж называется dsdos-128_p512.zip (http://denn.ru/8bit/orion/soft/dsdos-128_p512.zip) (расширение "ZIP", а не "ROM")

Внутри архива сам файл называется romdisk.bin


Теперь по аппаратной части. В природе существует два варианта переключения банков многостраничных ROM-дисков:

1) Через свободные линии "С" порта клавиатуры
2) Через специально выделенный порт #FE (является надстройкой-доработкой)

В гибридном ЭД применяется первый вариант, при этом одновременное наличие второго варианта недопустимо.

Момент номера два. Недоступность всего списка файлов указывает на неработоспособность узла переключения банков ROM-диска.
А если не работает переключение банков ROM-части, то разумеется не будет работать и SRAM-часть. Надо искать ошибку в плате.
Лично я не сталкивался с неработоспособностью схемы ЭД (у меня три разных реализации - одна на МГТФ, две другие на сторонних готовых платах).
При исправных деталях и правильном их соединении схема работает сразу.

Денис, привет. Рад видеть!

Да, файлы для ROM-диска я по этой ссылке и брал файлы. Расширение .rom - это уже я переименовывал, мне так удобнее. Но сами файлы, разумеется, не менялись и их имена - тоже.
Тот диск, который я собрал, судя по обозначениям на схеме, подключается двумя дополнительными линиями к линиям С порта клавиатуры. Но в эмуляторе все файлы диска появились при включении эмуляции порта 0FEh! Вот здесь непонятно. Получается, что система рулит банками через 0FEh, а у меня подключение к порту клавиатуры. В общем, я в затруднении. Вот фотографии платы, что я собрал:
https://ibb.co/PtrcWnP
https://ibb.co/ynFN834

Denn
25.06.2023, 13:53
Тот диск, который я собрал, судя по обозначениям на схеме, подключается двумя дополнительными линиями к линиям С порта клавиатуры. Но в эмуляторе все файлы диска появились при включении эмуляции порта 0FEh! Вот здесь непонятно. Получается, что система рулит банками через 0FEh, а у меня подключение к порту клавиатуры.

Система на этапе детекта оборудования автоматически определяет доступный способ управления страницам ROM-диска. Т.е. работать будет и так, и так. Буквально - сначала ОС пробует одним способом переключать страницы и смотрит меняется ли читаемая из ПЗУ информация, затем другим. Если оба способа не меняют данные, значит у нас олдскульный ROM-диск на 64кб.
С точки зрения эмуляторов проще эмулировать порт #FE, на реале проще пробросить два проводка от порта клавиатуры.

AlexBel
25.06.2023, 14:01
Система на этапе детекта оборудования автоматически определяет доступный способ управления страницам ROM-диска. Т.е. работать будет и так, и так. Буквально - сначала ОС пробует одним способом переключать страницы и смотрит меняется ли читаемая из ПЗУ информация, затем другим. Если оба способа не меняют данные, значит у нас олдскульный ROM-диск на 64кб.
С точки зрения эмуляторов проще эмулировать порт #FE.

Понятно, значит, причину нужно искать в железе. Спасибо!

Denn
25.06.2023, 14:14
Понятно, значит, причину нужно искать в железе.

Скорее всего перепутаны местами С1 и С2, которые идут от порта клавиатуры.

AlexBel
25.06.2023, 14:17
Скорее всего перепутаны местами С1 и С2, которые идут от порта клавиатуры.

Звонил прямо от вывода до вывода микросхем - правильно подключены. Плата "Ориона" уже доработана, дорожки идут уже между разъёмами, перемычки не нужно бросать. Возможно, где-то непропай, каза или просто микруха какая неисправна. Будем искать...

Denn
25.06.2023, 14:55
Звонил прямо от вывода до вывода микросхем - правильно подключены. Плата "Ориона" уже доработана, дорожки идут уже между разъёмами, перемычки не нужно бросать.

А при загрузке есть активность на С1 и С2 на стороне ЭД ? На чипселектах СОЗУ?

AlexBel
25.06.2023, 15:00
А при загрузке есть активность на С1 и С2 на стороне ЭД ? На чипселектах СОЗУ?

Я, пока что, осциллом не смотрел. Как следующий раз буду доставать 128-й - проверю. Сейчас место на столе занял "Про". Из-за мусор... э-э-э... творческой обстановки места очень мало :)