Разыскиваю схему электронного диска (RAM-Disk) 512к - 1М 1995 г. SP-Computer Club

Компьютер Орион-128 (1990) расширяемый до 256 КБ и его развитие

Moderator: Shaos

User avatar
FizikS
Maniac
Posts: 269
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Разыскиваю схему электронного диска (RAM-Disk) 512к - 1М 1995 г. SP-Computer Club

Post by FizikS »

Раскопал у себя в сарае этот артефакт прошлого тысячелетия. Схема не сохранилась. Из сохранившейся переписки с В. Чистяковым я выяснил, что схему он мне высылал, но на дискетах я ее не нашел. Вероятно, она была в бумажном виде и не сохранилась. Эл. диск я немного переделал для своего Ориона: убрал с платы 580ВВ55 и подключил его напрямую к порту F500 вместо ROM диска. Пришлось, правда, драйвер подкорректировать на новые адреса и утилиту форматирования. Может еще что-то, уже не помню. Если схема не найдется, буду реверсить плату.
Фото не очень качественные но какой он на внешний вид, понятно.
RAM_Disk_ TOP_1.jpg
RAM_Disk_ BOT_1.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
FizikS
Maniac
Posts: 269
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: Разыскиваю схему электронного диска (RAM-Disk) 512к - 1М 1995 г. SP-Computer Club

Post by FizikS »

Описание электронного диска версии 1993 г.

Электронный-диск, устройство и использование
26.01.93 02.45 MSK. Чистяков Владимир


Электронный диск представляет собой узел регенерации ОЗУ типа 565ру7 и интерфейсную бис типа 580вв55 для связи с центральным компьютером. Плата обладает своим задающим генератором и все сигналы для своей работы вырабатывает сама, тем самым плата полностью не зависит от основного компьютера, что позволяет выключать его питание без потери инф-и на диске. Потребление при отсутствии обращения к диску не превышает 300 ма. При наличии буферной емкости в 50000 мкф не страшны провалы питания до 2-3 сек. На плате эл. диска установлены 2 банки ОЗУ 565ру7 и еще две банки могут быть напаяны сверху (методом 'PACK-UP') - позволяя иметь в максимуме 1 мбайт. Также на плате располагается панелька под ПЗУ 27128/37256 (16/32 кб). Кроме такой платы варианта 1990 г. Была выпущена также партия плат 1989 года, без ПЗУ и всего с одной банкой ру7. Данная конструкция разрабатывалась для "специалиста", где во-первых нет лишних портов (как на Орионе) и не буферизованы шины процессора. Поэтому весь интерфейс осуществляется через одну единственную ППА 580вв55, нагружая шину (D0-D7, A0,A1) нагрузкой всего одного входа порта. На "специалисте" с тактом 2.0 Мгц допускается длина соед. кабеля до 35 см, без ухудшений надежности. На специалисте с тактом 2,5 длина кабеля не должна превышать 15 см, причем в случае применения ИМС 155 серии (кп2) и большого количества ПЗУ рф2 (более 3-х) шина будет перегружена и нельзя будет одновременно подключить контроллер НГМД.
Рекомендуется установка 580вк28, благодаря чему удается поднять такт на 580 процессоре (!) до 3.75 И 4.0 Мгц (это достигается за счет вк28, а также понижения питания процессора до 4.75В - только процессора, озу: >=5.0В). Длину кабеля при этом можно сделать 35 см. В случае применения в "специалисте" Z80 - проблем с перегрузкой шин не наблюдалось до частоты 4.25 Мгц (абсолютная надежность при 4.0). Что касается "ориона", то здесь проблем подключения меньше. У многих работает уже более полу-года и на такте 5.0 Мгц). Исходя из вышеизложенного, я рекомендую применять в "специалисте" - Z80 с большей мощностью, а именно 'GOLDSTAR' с буквой 'а'. Можно также GOLDSTAR-B или SHARP с любой буквой что конечно решает все проблемы с перегрузкой шин, но глупо из-за их "печкообразности". На "орионе" наоборот целесообразно применять Z80 с "хилыми" выходами: ZILOG,TOMPSON,NEC,MME,TOSHIBA или их КМОП варианты (8C0004) или даже SU880 (10MA!), т.к процессор там буферизован.

Для интерфейса с компьютером используются следующие сигналы системной магистрали:
D0-D7 шина данных
A0,A1 шина адреса
/WR запись (в память т.е - /MEMW)
/RD чтение (/MEMR)
/CS 'чип-селект',специалист-FF30,ORION-F780)
RESET сброс (прямой, не инверсный)
GND GROUND, системная земля

Принцип работы:
для адресации в 512к требуется 19 адресов: а0-а18. Для хранения этого адреса на плате имеется 3 регистра: младшего байта адреса (N байта в сект), старшего байта адреса (N сектора) и регистр хранящий адреса а16-а18 (N банки). Эти регистры непрерывно сохраняют этот текущий адрес (даже после сброса) - тем самым процессор может читать или писать данные из этой ячейки диска. Первые два из этих регистров, 8-ми разрядные, выполнены на счетчиках с переносом: ие7. С помощью сигнала с выхода порта (PC3) формируется так называемый строб инкремента адреса - счетчики увеличивают свое состояние на 1. Таким образом при чтении/записи в пределах 64 кбайт (одной условной банки) существует возможность не устанавливать при обращении к последующей ячейке новый адрес; достаточно выдать строб инкремента и читать/писать далее. Установка старшего и младшего байта адреса (а0-а15), т.е запись в эти счетчики также осуществляется стробами адреса: старшего (PC5) и младшего (PC4).
Что касается адресов а16-а18, то они формируются по разному для вариантов 256/512к и 1 мбайт, а именно: в варианте 1 мбайт также используется регистр на ие7 и строб для его записи (PC6)/ В вариантах же диска 1989 и 1990 годов на 256 и 512к эти адреса формируются непосредственно портом (это позволяет сэкономить одну ие7). т.е в твоей плате адресам а16-а18 соответствуют выходы порта PC0-PC2. Все данные вводятся в диск через порт а, а считываются через порт B бис вв55. Выходы порта C - формируют управляющие сигналы. Таким образом назначение разрядов порта такое:

PA0-PA7 данные для ввода в диск (вв55-на вывод)
PB0-PB7 данные с диска (вв55 - всегда ввод)
порт "C" программируется на вывод и управляется поразрядно: PC0-PC2 - это адреса а16-а18
PC3 - строб инкремента адреса
PC4 - строб младших 8-ми разрядов адреса (а0-а7)
PC5 - строб старших 8 разрядов адреса (а8-а15)
PC6 - блокировка записи диска 256к и сигнал /ROM/RAM в дисках 512к и 1 мбайт
PC7 - строб записи

Сигналы стробов должны быть постоянно "1". При формировании строба на эти выходы выводится на короткое время 0, затем возврат в 1. Запись осуществляется по уровню, т.е если держать стробы=0 и менять данные, то в регистрах будет то-же, что и на выходах порта А. Если адреса равны, то стробы можно выдавать одновременно (т.е установить адреса а0-а18=0 и записать в эту ячейку 0, можно всего одной командой: STA PORTC,040H). Строб инкремента работает по переднему фронту (PC3).

Рассмотрим работу с диском.
Для записи надо:

1. Вывести в порт а адреса а0-а7
2. Выдать строб PC4
3. Вывести в порт а адреса а8-а15
4. Выдать строб PC5
5. Вывести в разрядах PC0-PC2, адреса а16-а18
6. Вывести в порт а подлежащие записи данные
7. Выдать строб записи. При этом если сигнал ROM/RAM (защита от записи) был равен 1, то данные будут записаны.
Если надо записывать в следующий адрес, можно вместо пп.1-5 Выдать строб инкремента.

Для чтения надо:
1-5. Установить адреса (см.выше)
6. Просто считать с порта "B" данные.
Далее можно опять выдать строб инкремента и считать следующий байт и т.д. Для диска 256к при чтении значение разряда PC6 не важно - это просто блокировка ими защита от записи, на чтение не влияет. В диске 512к значение сигнала на выходе PC6 определяет считывается ячейка ROM или RAM. При PC6=0 считывается пзу, при PC6=1 ячейка RAM диска. Естественно этот сигнал выполняет и старую функцию - защиту от записи, ведь в ROM записать нельзя.

Теперь о программах для RAM-диска. Немного истории. Исторически первый RAM-диск появился в 1988 году, как внешняя плата графического адаптера к РК-86 (на ру6,схема RFE:10.1987,графика 384*256). После перехода от рк86 к специалисту имеющему графику плата была переделана под ру5 и использована как эл. диск.

В 1989 г.в мп "комтех" мы делали компьютерные классы для школ на базе "специалиста", и т.к нгмд тогда мы использовать не умели, в качестве массовой памяти в машине преподавателя и был использован первый эл.диск на 128к именно такой конструкции (с портом в кач-ве интерфейса). В конце 1989 г. удалось изготовить первую партию в 25 печ.плат на 256к. Первую совсем убогую файловую систему написал А. Кузнецов (8к, с интерфейсом). Кроме того выяснилось, что на ру7 возникают сбои, и только с большим трудом удалось найти причину этого - ру7 не допускают изменение адреса даже при чтении - для борьбы с этим пришлось простробировать на тм9 сигналом MUXB разряды PC0-PC5 порта. Именно поэтому на плате стоит дополнительная TM9. RAMDOS 1-й версии была написана легендарным программистом В. Ивинских весной 1990 г. Также были доработан для работы с файлами его редактор SCREEN и была сделана первая версия программы RAMDOS-COMMANDER. В сентябре 1990 г. В.Ивинских закончил RAMDOS версии 1.4 И COMMANDER версии 1.3, ставшие классикой программирования для 580. За август-сентябрь 1990 г. Пользуясь RAMDOS В. Ивинских адаптировал для "специалиста" MANIC-MINER синклера, работу которую без диска, сделать было-бы невозможно. К несчастью наступими времена дисководов.

Весной 1990 г. А.Кузнецову удалось адаптировать BIOS CP/M "корвета" и скопировать его контроллер тем самым к осени 1990 г. 5 пользователей "специалиста" имели НГМД. Были выпущены платы КНГМД. Несмотря на это эл.диски нашли отличное применение и в среде CP/M, т.к до появления первых программ копирования на одном нгмд (А.Новгородов, 08.1991) эл.диск был единств. способом скопировать файл размером больше обьема TPA (36K). В дальнейшем в.Ивинских уже зимой 1990/91 разработал новую версию RAMDOS-COMMANDER, использовав специально написанный им графический интерфейс с открывающимися окнами. (Получить представление о нем можно посмотрев ROM-WRITER В.Ивинских).

Для RAMDOS из-за общего упадка интереса к "специалисту и ухода весной 1991 г. из любителей в профессиональные программисты В.Ивинских ничего серьезного создано не было. Менее 10 "спецов" от которых к 1993 г. осталось 5 человек почти не пишут сами. Можно упомянуть форт-систему работающую с файлами RAMDOS, редактор Якубовского для работы с файлами, программа DISK DOCTOR Максима Белова и мои програмки FILE MANAGER,SPRED, GAME-MAKER. RAMDOS в.Ивинских была лишь немного доработана, чтобы ввести в метки файлов дату и время. Сейчас заканчивается работа по созданию ассемблера Z80, работающего с файлами и адаптация граф.редактора В.Новикова (пк "хоббит").

К 1993 г. Общее количество имеющихся в с-петербурге эл.дисков составляет: 5 у "специалистов" и около 25 у владельцев "ориона". Количество таких дисков в ино-городах по-видимому 50-75 шт - и только у владельцев "ориона". Владельцы "ориона" используют диск исключительно для CP/M, не имея никакого представления о RAMDOS. На мой взгляд наличие диска обьемом 512к и турбо-среды программирования на ассемблере для программиста более полезно, чем наличие CP/M и нгмд. В турбо среде переход из программы (редактор-отладчик ассемблер) осуществляется мгновенно одной кнопкой (загрузка 32к - 0.1сек). Сравните: в RAMDOS закончив редактирование программы - хлоп по кнопке - вы в ассемблере и уже идет ассемблирование, через 30 сек - готово, хлоп по кнопке - программа загружена в раб.адреса, также текст отредактированной версии программы записан на диск, загружен отладчик и вы в нем - проверяйте.

А как то же делается в CP/M. В редакторе закончив редактирование - записываете файл на диск. Запускаете ассемблер, ждете (лязг дисковода 10 минут), вскоре выясняется, что в тексте куча ошибок опять загружаете редактор (каждый раз пишете имя редактора- затем имя файла).Если ошибок нет загружаете компоновщик - опять 10 минут износа дискет, готово. Теперь с пом. пр-мы LOAD делаете COM-файл. Затем запускаете ZSID, загружаете ваш файл и наконец начинаете отладку - и конечно ничего не работает. Надо опять загружать редактор и файл на редактирование. Но прошло 25 минут и вы уже забыли какие изменения вы делали в тексте и потеряли нить вашей програмистской мысли. Писать программы когда на один цикл изменения и проверки уходит пол-минуты или когда на то-же самое - пол-часа. Мы выбираем первое, даже если в RAMDOS-Aссемблере нет макро-команд, отладчик Z80 - сильно уступает ZSID, а редактор не имеет команд работы с блоками. Все это искупается Скоростью работы, отсутствием потерь времени. Именно так можно работать с RAM-диском, а не для копирования файлов на одном нгмд. Подобную турбо-среду ассемблирования можно иметь и на "Орионе", если адаптировать RAMDOS для внутреннего эл.диска "ориона" 168к (при 256к озу).

Ниже я привожу базовые подпрограммы чтения и записи байта и сектора, а также еще несколько полезных подпрограмм, для работы с диском на физическом уровне ("выдранные" из RAMDOS В.Ивинских)

--- приведенный текст был написан более полугода

назад специально для Олега Цыганова (т.к он собирался тогда написать свою файловую систему для использования эл.диска 512к на "орионе" (сейчас он уже давно закончил эту работу, получилась новая система, причем совместимая с ORDOS). Этот текст я рассчитывал в дальнейшем использовать и для других пользователей (ибо как-раз тогда получил партию плат диска 512к от Зорина (Пермь).
Недавно я закончил более подробное описание схемотехники и программ эл.диска (для В.Леонтьева), тем не менее я счел возможным, сохранить и это описание для рекламных целей.
Чистяков В. (08.93)