Плата электронного диска
DM:
http://tis.kz/large/DM-175000-17...006/IMG_1238.JPG
http://tis.kz/large/DM-175000-17...006/IMG_1239.JPG
Она имеет адреса
175000-175006 в адресном пространстве
и представляет собой один электронный диск на
1792 блока...
Платы электронного диска
DP:
http://tis.kz/large/DP-176470-17...476/IMG_1245.JPG
http://tis.kz/large/DP-176470-17...476/IMG_1246.JPG
http://tis.kz/large/DP-176470-17...476/IMG_1249.JPG
http://tis.kz/large/DP-176470-17...476/IMG_1250.JPG
http://tis.kz/large/DP-176470-17...476/IMG_1254.JPG
http://tis.kz/large/DP-176470-17...476/IMG_1255.JPG
Они работают только все вместе, и представляют собой один электронный диск на
5376 блоков,
который имеет адреса
176470-176476 в адресном пространстве, причем сканируется на предмет
адресов только нижняя плата от которой отходит проводок соединяющей еще две платы...
Принцип работы: (Отобразить)
в CSR заносится номер блока
CSR+2 обнуляется (адрес внутри блока)
из/в CSR+4 читаются/пишутся слова данных [при записи конец блока надо занулять вручную]
Принцип работы с электронным диском уточнился:
в 175000 пишется номер блока
в 175002 пишется номер слова в блоке (0-377)
в/из 175004 последовательно пишутся/читаются слова
После записи в 175000 и 175002 нужен некоторый таймаут чтобы устройство сообразило что к чему.
Память подсказывает, что CLR @#175002, NOP не хватает чтобы сразу начинать читать-писать,
а MOV #0,@#175002 вполне хватает.
Регистры 175000 и 175002 при чтении всегда возвращают 0. Если номер блока выходит за пределы диска,
регистр 175004 исчезает с шины. "Родное" прерывание или вообще не используется или используется если совсем все хреново.
Проверка на номер устройства не делается. Что DM0, что DM7 - ему пофигу.
Размер диска жестко задан 1792. блока, CSR жестко задан 175000, вектор жестко задан 114,
но не используется в принципе (вернее используется как признак ошибки).
Никаких DMA, все ручным трудом...
Принцип чтения и записи дисков DM и DP (состоящего из 3-х плат)
одинаковый, и результаты тестирования тоже одинаковые...
Принцип записи на примере DM :
175000/xxxxxx 0 BK
175002/xxxxxx 0 BK
175004/xxxxxx 0 - Пишем слово 0
175004/xxxxxx 2 - Пишем слово 2
175004/xxxxxx 4 - Пишем слово 4
175004/xxxxxx 6 - Пишем слово 6
175004/xxxxxx 10 - Пишем слово 10
Принцип чтения на примере DM :
175000/xxxxxx 0 BK
175002/xxxxxx 0 BK
175004/xxxxxx - Читаем что-то
175004/0 - Читаем наше слово 0
175004/xxxxxx - Читаем что-то
175004/2 - Читаем наше слово 2
175004/xxxxxx - Читаем что-то
175004/4 - Читаем наше слово 4
175004/xxxxxx - Читаем что-то
175004/6 - Читаем наше слово 6
175004/xxxxxx - Читаем что-то
175004/10 - Читаем наше слово 10
Точно так-же и на втором Эл.диске
В архиве:
http://tis.kz/progs/dvk/MC1260-M...02/MT-170002.rar
Драйвера
DM.SYS и
DP.SYS именно на эти электронные диски,
а так-же остальные программы от системной ленты с комплекса, где стоял контроллер.
В архиве загрузочный образ диска MY с драйвером MY.SYS,
который был добавлен туда. Остальное на диске без изменений с комплекса.
Для тестирования этих Электронных дисков
DM и
DP были написаны программы
DMTEST.SAV и
DPTEST.SAV
http://tis.kz/progs/dvk/dm-dp-test.rar
Команды: (Отобразить)
.GE DMTEST
(выбор параметров)
.ST
Выбор параметров:
.D 1000=177777 ! выбор слова которым прописать диск
.D 1002=176470,12400 ! выбор второго диска
.D 1006=1 ! включить автоинкремент слова-заполнителя
Для просмотра содержимого эл. диска:
.DUM/TER/STA:xxx/END:yyy DM:
ххх от 0. до 1791. (Для второго эл. диска - до 5375.)
yyy от 0. до 1791. (Для второго эл. диска - до 5375.)
Можно вместо /TER написать /OUT:file и он в файл запишет
Можно вместо /STA и /END написать /ONL:n - печатает один блок n
Для сохранения копии программки для второго диска:
GE DMTEST
D 1002=176470,12400
SAV DPTEST