Вместо кассеты —
ДИСКЕТАВ любительской микроЭВМ внешним накопителем, как правило, служит обычный кассетный магнитофон. Благодаря этому значительно снижаются затраты на постройку компьютера — ведь магнитофон есть почти у каждого. Однако при общении с такой ПЭВМ приходится мириться с нередкими сбоями, происходящими в процессе считывания с кассеты цифровой информации.
Улучшить работу вашего компьютера поможет накопитель на гибком магнитном диске (НГМД), который избавит вас от многих неудобств, связанных с использованием магнитофона.
Предлагаем вниманию читателей описание устройства сопряжения персональной ЭВМ
“Специалист” с дисководом ЕС-5074 (рис. 1). Его контроллер, обладая достаточно высокими техническими характеристиками (отсутствие сбоев, надежность, быстродействие), отличается простотой схемного решения и отсутствием остродефицитных элементов.Рис. 1.
Принципиальная схема устройства сопряжения.Вместе с тем данное устройство сопряжения имеет низкую скорость передачи данных — 64 Кбод вместо 256 Кбод
, которую обычно позволяет НГМД, и, как следствие, вчетверо меньшую информационную емкость флоппи–диска. Дело в том, что скорость передачи данных 64 Кбод максимальная для микросхемы К580ВВ51А, и потому увеличить её нельзя. Однако этот недостаток можно устранить, снизив скорость вращения диска,— достаточно лишь поменять ведущий шкив привода вращения диска на меньший. Временные диаграммы процессов записи/чтения приведены на рис. 2.Рис. 2.
Временные диаграммы процессов записи/чтения.Для сопряжения с НГМД автором разработано программное обеспечение — “Дисковый Монитор”, позволяющий выполнять такие команды, как разметка диска, запись файла, чтение файла, удаление файла и распечатка на дисплее оглавления диска.
При разметке записываются собственные адреса на каждой дорожке и, кроме того, на 00 дорожке создается оглавление, включающее в себя таблицу экстентов и “пустой” список названий файлов.
Таблица экстентов (
FAT ?) предназначена для того, чтобы была возможность записывать файлы не только на дорожки, следующие одна за другой, но и кусками по одной или несколько дорожек. Выполняя команду “запись”, необходимо указывать начальный и конечный адреса программы (или массива данных) и её имя.При чтении или удалении файла нужно указывать его имя — полностью или один или несколько первых символов. Имя может состоять из любых символов длиной не более 10.
Чтение или запись на дорожке происходит только после совпадения считанного собственного адреса с текущим. После записи на дорожке происходит контрольное считывание и сравнение с информацией в ОЗУ. Если она не сравнилась или не совпали контрольные суммы, то в оглавлении эта дорожка помечается как дефектная и та же информация записывается на следующую свободную дорожку. При сбое предусмотрены три попытки записи, после этого информация бракуется. На случай сбоя во время чтения предусмотрены три попытки чтения и только после этого выдается сообщение о сбое.
Формат записи на дорожку следующий: собственный адрес — 1 байт, адрес начала — 2 байта, адрес конца — 2 байта, массив — от 1 до 3BF
H байт, контрольная сумма — 2 байта.Поскольку скорость передачи данных изменилась, в НГМД необходимо скорректировать постоянную времени RC-цепочки — установить параллельно конденсатору С47 еще один, емкость 1000 пФ. Кроме того, из-за низкой нагрузочной способности ИМС КР580ВВ51А в НГМД нужно отпаять резисторы R19, R20, R44, R45, подключенные между сигналами “шаг” и “запись”, линиями “земля” и “±5В
”.Программное обеспечение (табл. 1) записано в отдельное ПЗУ КР573РФ2, которое подключено по адресам
0D000H — 0D7FFH и состоит из следующих подпрограмм:D000
— установка на дорожку,D02D
— инициализация МС КР580ВВ51А,D038
— установка на 00 дорожку,D050
— ожидание индекса,D07C
— чтение собственного адреса,D0A8
— запись одного байта,D0BA
— чтение одного байта,D0CC
— печать ошибок,D0F1
— чтение на одной дорожке,D17E
— запись и контрольное считывание на одной дорожке,D228
— ввод имени файла, чтение оглавления и поиск файла в оглавлении,D2C0
— запись файла,D346
— чтение файла,D36E
— вывод оглавления на дисплей,D3BC
— удаление файла,D400
— вход в программу записи или чтения командой(GD400), (адрес начала), (адрес конца), (ВК),
D444
— вывод оглавления и количества свободных дорожек,D471
— разметка диска,D49C
— запись собственного адреса на дорожку,D500
— запись оглавления командой (GD500) (ВК),D520
— программа декодирования команд,D540
— позиционирование головки в рабочую зону после включения,D570
— D746 — неиспользуемое пространство,D747
— D7FF — текстовые сообщения.Ножки микросхемы ПЗУ с программой Дискового Монитора подсоединяют к одноименным выводам других ПЗУ, кроме ножки 20, которая подключается к выводу 11 МС DD51 (“М-К”, 1987 г., № 2, с. 20, 21).
Для программного подключения Дискового Монитора к имеющемуся в ПЗУ Монитору необходимо внести изменения:
в ячейку 0С8АВ
H — записать 40, в 0С8АСH — записать D5.Команды обращения к Дисковому Монитору набираются на верхнем регистре (русские буквы
).Для записи файла
— [З] (адрес начала) (адрес конца) [ВК].Для чтения файла
— [Ч] [ВК].Для вывода оглавления
— [O] [ВК].Для разметки диска
— [Р] [ВК].Дисковый Монитор использует пространство ОЗУ с адресами 8В00
H — 8Е10H для записи оглавления и 8FD0H — 8FDFH как рабочие ячейки.Для записи можно использовать и вторую сторону диска ЕС-5274, увеличивая таким образом его емкость вдвое — 144 Кбайт. Для этого осторожно лезвием нужно расширить с обеих сторон индексное отверстие пакета (но не диска!) так, как показано на рисунке, и вставлять в дисковод в перевернутом виде этикеткой вниз.
Таблица 1.
(есть некоторые опечатки, исправленные в ASM тексте 580BB51.I80)ADDR 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
----------------------------------------------------
D000 3A DD 8F 47 79 32 DD 8F 90 4F C8 AF 32 01 FF 3E
D010 20 32 01 E8 AF 32 01 E8 D5 11 00 0A 1B 7A B3 C2
D020 1C D0 D1 3A 02 FF 0F D8 0D C2 0F D0 C9 3E 4D 32
D030 01 E8 3E 3D 32 FF 8F C9 3A FF 8F FE 3C CC 2D D0
D040 AF 32 DD 8F 3E 80 0E 50 32 01 FF C3 23 D0 00 00
D050 3E 10 32 01 E8 3E 00 32 01 E8 32 01 E8 01 FF FF
D060 CD 73 D0 CA CC D0 D2 60 D0 CD 73 D0 CA CC D0 DA
D070 69 D0 C9 0B 78 B1 3A 02 FF 0F 0F C9 06 03 C5 CD
D080 50 D0 06 38 05 C2 84 D0 3A 00 E8 3E 04 32 01 E8
D090 CD BA D0 47 AF 32 01 E8 3A DD 8F B8 C1 C8 05 C2
D0A0 7E D0 21 E7 D7 C3 CF D0 06 FF 05 CA CC D0 3A 01
D0B0 E8 0F D2 AA D0 79 32 00 E8 C9 06 FF 05 CA CC D0
D0C0 3A 01 EB E6 02 CA BC D0 3A 00 E8 C9 21 C6 D7 EB
D0D0 0E 0A CD 09 C8 3A DD 8F CD 15 C8 0E 0A CD 09 C8
D0E0 21 80 D7 CD 18 C8 EB CD 18 C8 CD 5A C2 C3 00 C8
D0F0 00 CD 00 D0 06 03 C5 CD 7C D0 06 38 05 C2 FC D0
D100 3A 00 E8 3E 04 32 01 E8 CD BA D0 67 CD BA D0 6F
D110 CD BA D0 57 CD BA D0 5F 7A 94 FE 05 D2 72 D1 E5
D120 CD BA D0 77 CD 27 C4 23 C2 20 D1 CD BA D0 67 CD
D130 BA D0 6F 22 DE 8F AF 32 01 E8 E1 E5 3A FE 8F FE
D140 28 C2 5E D1 7C CD 15 C8 7D CD 15 C8 0E 2D CD 09
D150 C8 7A CD 15 C8 7B CD 15 C8 0E 20 CD 09 C8 CD 2A
D160 C8 E1 3A DF 8F B8 C2 72 D1 3A DE 8F B9 C2 72 D1
D170 C1 C9 C1 05 C2 F6 D0 21 86 D7 C3 CF D0 00 E5 CD
D180 2A C8 E1 79 32 DE 8F 78 32 DF 8F 06 03 C5 E5 CD
D190 7C D0 AF 32 00 E8 3E 03 32 01 E8 06 50 05 C2 9D
D1A0 D1 4C CD A8 D0 4D CD A8 D0 4A CD A8 D0 4B CD A8
D1B0 D0 4E CD A8 D0 CD 27 C4 23 C2 B1 D1 2A DE 8F 4C
D1C0 CD A8 D0 4D CD A8 D0 0E 00 CD A8 D0 CD A8 D0 CD
D1D0 A8 D0 AF 32 01 E8 D5 CD 7C D0 06 30 05 C2 DC D1
D1E0 3A 00 E8 3E 04 32 01 E8 CD BA D0 67 CD BA D0 6F
D1F0 CD BA D0 57 CD BA D0 5F CD BA D0 BE C2 19 D2 CD
D200 27 C4 23 C2 F8 D1 CD BA D0 67 CD BA D0 6F 3A DE
D210 8F BD C2 19 D2 3A DF BF BC 3E 00 32 01 E8 D1 E1
D220 C1 C8 05 C2 8D D1 C9 00 21 81 CF CD 18 C8 21 D0
D230 8F 06 0A CD 03 C8 FE 0D CA 48 D2 77 4F CD 09 C8
D240 23 05 C2 33 D2 C3 4F D2 36 20 23 05 C2 48 D2 36
D250 20 0E 0A CD 09 C8 CD 5A C2 3E 0D 32 03 FF CD 38
D260 D0 CD F4 D0 21 50 8B 01 0C 00 3E 01 32 DB 8F 11
D270 D0 8F 7C FE 8E D2 BA D2 E5 7E B7 CA 9D D2 1A BE
D280 CA 8C D2 21 DB 8F 34 E1 09 C3 6F D2 23 13 1A FE
D290 20 CA 9B D2 BE CA 8C D2 C3 83 D2 E1 C9 21 50 BB
D2A0 3E 01 32 DB 8F 7E B7 CA B7 D2 FE EE CA B7 D2 3A
D2B0 DB 8F 3C 09 C3 A2 D2 B4 C1 C9 21 D3 D7 C3 E7 D0
D2C0 CD 28 D2 CA 67 D3 E5 2A 83 8F EB 2A 81 8F D5 E5
D2D0 01 BF 03 09 7C BA DA EA D2 C2 E1 D2 7D BB DA EA
D2E0 D2 AF E1 D1 CD 1F D3 C3 F6 D2 54 5D 23 E3 CD 1F
D2F0 D3 E1 D1 C3 CE D2 E1 11 D0 8F 06 0B 1A 77 23 13
D300 05 C2 FC D2 21 00 8B 11 10 8E CD 38 D0 CD 7E D1
D310 AF B8 C0 21 91 D7 C3 CF D0 21 74 D7 C3 E7 D0 01
D320 00 8B 79 FE 4D CA 19 D3 0A B7 CA 31 D3 0C C3 22
D330 D3 3A DB 8F 02 C5 CD 00 D0 CD 7E D1 AF B0 C1 C0
D340 3E FF 02 C3 2D D3 21 B7 D7 C3 E7 D0 CD 28 D2 C2
D350 46 D3 01 00 8B 79 FE 4C C8 21 DB 8F 0A BE C5 CC
D360 F1 D0 C1 0C C3 55 D3 21 A7 D7 C3 E7 D0 00 CD 56
D370 D2 21 50 8B 06 01 7E B7 C8 FE EE CA AC D3 78 0E
D380 0A CD 09 C8 CD 15 C8 E5 0E 20 CD 09 C8 CD 18 C8
D390 3E 33 32 FD 8F 11 00 8B 1E 00 1A B8 C2 A0 D3 0C
D3A0 1C 7B FE 4C C2 9A D3 79 CD 15 C8 E1 11 0C 00 19
D3B0 04 CD 12 C8 FE 1F CA EA D0 C3 76 D3 21 5A D7 CD
D3C0 18 C8 CD 28 D2 C2 46 D3 36 EE 21 00 8B 7D FE 4C
D3D0 CA E0 D3 3A DB 8F BE C2 DC D3 36 00 2C C3 CD D3
D3E0 CD 04 D3 C3 EA D0 00 00 00 00 00 00 00 00 00 00
D3F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D400 2A 83 8F 22 81 8F 2A 85 8F 22 83 8F 7B B2 CA 33
D410 D4 2A 97 8F 3A 99 BF 77 21 9A BF 11 38 00 CD 5A
D420 C9 CD 58 C9 CD 58 C9 21 64 D7 CD 18 C8 CD C0 D2
D430 C3 EA D0 78 B1 C2 27 D4 21 6C D7 CD 18 C8 CD 4C
D440 D3 C3 EA D0 CD 6E D3 21 00 BB 11 00 EE 7D FE 4D
D450 CA 62 D4 7E B7 C2 59 D4 1C BA C2 5E D4 1C 2C C3
D460 4D D4 21 47 D7 CD 1B C8 7B CD 15 CB C3 EA D0 00
D470 00 21 00 8B 11 C0 03 36 80 23 1B 36 00 7A B3 C2
D480 79 D4 CD 38 D0 0E 00 C5 CD 00 D0 CD 9C D4 C1 0C
D490 79 FE 4D C2 87 D4 CD 04 D3 C3 EA D0 06 03 C5 CD
D4A0 50 D0 AF 32 00 E8 3E 03 32 01 EB 06 50 05 C2 AD
D4B0 D4 3A DD 8F 4F CD A8 D0 0E 00 CD A8 D0 CD A8 D0
D4C0 CD A8 D0 AF 32 01 E8 CD 50 D0 06 30 05 C2 CC D4
D4D0 3A 00 E8 3E 04 32 01 E8 CD BA D0 47 AF 32 01 EB
D4E0 3A DD 8F B8 C1 C8 05 C2 9E D4 3A DD 8F B7 CA 13
D4F0 D3 4F 06 8B 3E FF 02 C9 00 00 00 00 00 00 00 00
D500 CD 5A C2 3E 0D 32 03 FF C3 04 D3 FF FF 00 FF 00
D510 CD 5A C2 3E 0D 32 03 FF C3 70 D4 FF FF FF FF FF
D520 FE 7A CA C0 D2 FE 7E CA 4C D3 FE 6F CA 44 D4 FE
D530 72 CA 10 D5 FE 75 CA BC D3 C3 14 CE FF FF FF FF
D540 55 3A FF 8F FE 3D 00 00 00 00 00 00 00 00 00 00
D550 00 00 00 60 00 CA 60 D5 CD 2D D0 0E 02 CD 0B D0
D560 F1 C3 20 D5 FF FF FF FF FF FF FF FF FF FF FF FF
D730 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
D740 FF FF FF FF FF FF FF 0A 73 77 6F 62 6F 64 6E 79
D750 6B 20 74 72 65 6B 6F 77 20 06 75 64 61 6C 65 6E
D760 69 65 2C 00 7A 61 70 69 73 78 2C 00 7E 74 65 6E
D770 69 65 2C 00 60 6F 6E 65 63 20 64 69 73 6B 61 00
D780 73 62 6F 6A 20 00 70 72 69 20 7E 74 65 6E 69 69
D770 00 70 72 69 20 7A 61 70 69 73 69 20 6F 67 6C 61
D7A0 77 6C 65 6E 69 71 00 74 61 6B 6F 6A 20 66 61 6A
D7B0 6C 20 65 73 74 78 00 66 61 6A 6C 20 6E 65 20 6E
D7C0 61 6A 64 65 6E 00 6F 62 6F 72 75 64 6F 77 61 6E
D7D0 69 71 00 6F 7B 69 62 6B 61 20 77 20 6F 67 6C 61
D7E0 77 6C 65 6E 69 69 00 6E 65 73 6F 77 70 61 64 65
D7F0 6E 69 65 20 73 61 64 00 FF 00 FF 00 00 FF 00 FF
А. ЖЕНЖЕРУХА,
г. Старый О с к о л.
Белгородская обл.
“М-К” 10'
89 c.27