Я нашел в прошивке Бейсика команду "asm". Что делает пока не понятно.
Причем, в отличии от других команд, она пишется маленькими буквами.
Еще до кучи, в бейсике команда POKE 51202, 40 включает шрифт 8х8
Я нашел в прошивке Бейсика команду "asm". Что делает пока не понятно.
Причем, в отличии от других команд, она пишется маленькими буквами.
Еще до кучи, в бейсике команда POKE 51202, 40 включает шрифт 8х8
Последний раз редактировалось vinxru; 11.04.2012 в 16:38.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
D8 = ИЕ7 ?
Линия X на схеме - это +5В
Осталась одна D14. Там к ногам 6,7,14 подходят то ли резисторы, диоды или перемычки.
D14 = К155АГ3
Последний раз редактировалось vinxru; 11.04.2012 в 22:58.
Плата дисководов и клавиатуры. Основные цепи нарисованы.
На схеме США11 я написал на обум, там вообще не шина адреса. Скорее всего это один из системных регистров. Завтра узнаю точно и можно будет прикрутить в эмуляторе ВГ93. Неизвестные сигналы, это выбор флопа, выбор стороны и возможно запуск мотора.
Оранжевым отмечены проводники, которые я проверил 10 раз. Они есть, но они работать не будут. Фиолетовым я отметил свой вариант исправления. Будем считать, что это то же ошибка, как и с микросхемой D7 ИЕ5.
А вот еще. На разъеме дисковода нет земли. Вообще.
---------- Post added at 02:54 ---------- Previous post was at 02:46 ----------
А где найти CP/M максимально подходящую для этого компьютера?
Последний раз редактировалось vinxru; 12.04.2012 в 04:02.
Если США10,США11 это не шина адреса, то выбор CS ВГ93 вполне мог быть и по "оранжевой" схеме. Тогда единственная ошибка - это выбор ИР22.
Я думаю F21 (прижим головки) и F13 (готовность дисковода) тоже можно уже обозначить на разъёме.
Общий блок питания? Или может быть дисковод встраивался в корпус Искры?
CP/M везде одинаковая, главное - на какие адреса она "посажена" (т.е. слинкована). Если не найдём готовую, можно будет исходники скомпилировать, они в интернете вроде есть. Ещё, как вариант, взять две копии, слинкованные на разные адреса, сравнить, и скорректировать несовпадающие старшие байты адреса на нужные нам.
---------- Post added at 11:47 ---------- Previous post was at 11:41 ----------
А вот драйвер ВГ93 в BIOS-е CP/M придётся писать самим. Странно, что DRQ ВГ93 не подсоединён, как же тогда ждать прихода данных?
---------- Post added at 12:03 ---------- Previous post was at 11:47 ----------
Сам спросил, сам ответил: в регистре статуса тоже есть DRQ, но обычно драйверы не успевали его опрашивать. Интересно, как тут было сделано? Уложить в 70 тактов и опрос готовности, и чтение/сохранение байта и сам цикл - весьма непросто.
Последний раз редактировалось b2m; 12.04.2012 в 11:07.
Обычно драйвер активно работает с двумя регистрами: статуса/команды (00b) и данных (11b). Т.е. нужно быстро переключаться между ними (т.е. шиной адреса). Ещё важен регистр номера сектора (10b), но обращение к нему не критично по времени, можно и битом конфигурации адрес устанавливать. Из всего этого можно предположить, что США11 = США10 xor [бит конфигурации].
Там места нет. Тем более, что этот разъем выведен наружу.
Я вчера просмотрел кучу контроллеров дисководов на ВГ93. Что бы разобраться с принципами работы и ошибками (моими и разработчиков). DRQ часто не используется.
(Надо было это сделать сразу, тогда бы никаких вопросов по микросхемам не возникло бы.)
Этот контроллер дисковода очень похож на контроллер от Ориона-128 (http://narod.ru/disk/26711070001/%D0...0%94.djvu.html). В Орионе DRQ так же не используется.
Скорее всего CP/M так же можно взять с Ориона.
Последний раз редактировалось vinxru; 12.04.2012 в 11:50.
Ага, я тоже по нему микросхемы отгадывал
В принципе, у Ориона порты через память, т.е. обращение лишь на 3 такта короче (к тому же и частота чуть выше), так что можно его процедуры взять. Вот, например, чтение сектора:
Минимум 59 тактов плюс по 30 тактов, если данных ещё нет. У нас будет 62(+33), думаю, должно успеть.Код:L1: LDAX B ; читаем статус RAR RNC ; если контроллер больше не занят RAR JNC L1 ; если данных пока нет LDAX D ; читаем байт MOV M,A INX H JMP L1
Я только не понял, если CS ВГ93 рулится через порт, тогда читать можно из любого несуществующего порта. А что произойдёт при записи в порт, когда мы CS выключать будем? Видимо, запись будет в порт данных ВГ93, в принципе, ничего страшного, если контроллер уже ничего не делает. Но это при условии, что выключать будем через порт 0C7h.
---------- Post added at 13:58 ---------- Previous post was at 13:46 ----------
Нет. Она слинкована с адреса 9600, а нам нужно с 9С00.
Я на Орионе делал так:
И все отлично работало. Если нужно было читать более 256 байт (512 и 1024 байт), то приходилось повторять куски циклов по 256 байт, иначе не успевало уже. Последний LDA брал статус ВГ93, данные процедуры не висли при ошибках ВГ93, но, правда, заполняли область загрузки каким-нибудь байтом (в случае ошибки). Код 82Н - это готовность диска и готовность данных. в случае ошибки прога вываливала при отсутствии готовности диска.Код:LXI H,BUF LXI D,0F700H LXI B,0082H IN0:LDAX D ANA C JZ IN0 LDA 0F703H MOV M,A INX H DCR B JNZ IN0 LDA 0F700H
Это если вдруг кому интересно.
Последний раз редактировалось HardWareMan; 12.04.2012 в 17:27.
Вы монстры.
Повыкладывайте скриншотов системы и игрушек.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)