Контоллер дисковода для MSX-2 |
0. ПредисловиеКогда я учился в Ангарском Политехническом Лицее N2 (с 10 по 11 классы), Ямахи (MSX-2) у нас только появились (1990 год). Знакомый музыкант для своих целей приобрел японские MSX-2 с музыкальными возможностями (MIDI, синтезаторы, клавиши). Естественно, на Ямахе только писались, подвергались аранжировке и хранились композиции в формате, подобном формату MIDI на персоналках. Игралась эта музыка, конечно же, на профессиональном инструменте ENSONIQ, предварительно загнаная туда по MIDI шлангу (хотя и в realtime получалось, но не очень :-). К чему я это рассказал? Случилось так, что я много помогал моему знакомому в области MSX (руссификация японских ямах, программное обеспечение, выдирание музыкальных программ из картриджей и т.п.), и он решил меня отблагодарить за это. Мне предлагался обычный «ученический» YIS-503III, но при условии, что ... я сделаю для себя контроллер дисковода. Теперь становится понятно, почему я сделал этот контроллер - уж очень мне тогда хотелось иметь настоящий компьютер. |
1. Как это делалосьИз источников информации у меня была лишь возможность посидеть с отладчиком DBG (огромное спасибо Леониду Баразу за этот программный продукт) на «учительской» YIS-805/R (именно с контроллером дисковода этой модели и совместим мной изготовленный), да распечатка адресов для доступа к регистрам чипа FDC для различных версий контроллера дисковода. 1.1. Первая радостьВ то время я, как и многие другие, занимались Спектрумом. Очень хотелось его научить читать MS-DOS'овые дискеты - по-этому пришлось детально разобраться в работе БИС контроллера дисковода (1818ВГ93), а так же попутно доработать Спектрум таким образом, чтобы его порты были доступны не только при включенном теневом ПЗУ дисковой подсистемы. Можно представить себе мою радость, когда копаясь в потрохах ямаховского DiskROM, я обнаружил подозрительное сходство в командах, посылаемых контроллеру, с командами вышеупомянутой 1818ВГ93! |
1.2. Свобода выбораТак как ту часть схемы, которая между шиной компьютера и БИС контроллера я себе хоть как-то представлял (там цифра - все просто), то с второй частью (от БИС контроллера до дисковода) было сложнее. Просидев некоторое количество времени в библиотеке и найдя несколько вариантов решения оконечной части, я не смог выбрать не одну из них. Особенно меня смущал узел прекомпенсации - очень уж разные схемные решения предлагались. По-этому, немного по-размыслив, я решил взять за основу работающий контроллер от ZX-Spectrum и переделать его под ямаховский. Первый, который мне попался, был довольно компактен - его оконечный узел был собран на матрице 556РТ4. Хотя за компактность мне пришлось рассплачиваться - этот зверь греется и потребляет, по-видимому, столько же, сколько все остальные элементы. |
1.3. Исходные данныеК этому времени мне уже было известно, что адресное пространство ПЗУ контроллера дисковода (т.н. DiskROM) расположено на 1-й странице (адреса 4000h-7FFFh). Так же, в результате исследований с отладчиком, было выясненно, что под регистры БИС контроллера отводятся адреса 7F80h-7F83h, а под регистр контроллера дисковода статус/управление - 7F84h. В окне дампа отладчика очень хорошо просматривается, что из-за упрощенной дешифрации адресов, эти регистры дублируются через восемь адресов вплоть до адреса 7FBFh (регистр статуса/управления дублируется подряд 4 раза после регистров БИС).
Регистры БИС контроллера дисковода подробно описывать не буду, так как это не поможет построить контроллер дисковода. Скажу лишь, что БИС имеет четыре регистра: регистр команд/состояния, регистр номера дорожки, регистр номера сектора и регистр данных. Более подробно можно почитать, например, в журнале «Микропроцессорные средства и системы» N3 за 1986 год. |
На регистре статуса/управления контроллера дисковода остановлюсь подробнее, так как это имеет непосредственное отношение к изготовлению контроллера. Если рассматривать по-битно, то это выглядит так:
Подведем маленький итог. Со стороны процессора контроллер дисковода должен выглядеть как ПЗУ с адреса 4000h-7FFFh в соответствующем слоте. Причем, адреса с 7F80h-7FBF используются как область обмена данными с контроллером дисковода:
|
1.4. Подводные камниПосле изготовления контроллера дисковода, основываясь на вышесказанном, выяснились две детали из-за которых он все еще был не работоспособен.
После исправления этих огрех, контроллер в своей функциональности ничем не отличался от исходного. |
2. Как это сделать2.1. Сама схемаСхема оптимизирована так, чтобы все, по-возможности, логические элементы микросхем были использованы. ![]() [качественная картинка (2055 x 3190, 75Kb)] К сожалению, у меня нет времени для завершения данного описания в полном объеме. По-этому, привожу часть схемы между системной шиной и ВГ93 в таком виде и без описания, кому нужно - разберется. 3. Напоследок3.1. Некоторые сведения
3.1. От автораЕсли кто-нибудь хочет дополнить данную описаловку или дать ценные рекомендации - присылайте все в более-менее готовом виде на maw@null.ru или на 2:6070/148 (2:5070/948). |
Alexandr Murin 16/01/2000 [018Permission denied] |