|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Пытаюсь в первом приближении подключить контроллер (пока без BIOS'а), просто убедиться в доступе к памяти, и сразу же налетел на проблему...
assign GC_MEM_RD = ~nMRD & ~MA_DIRECT & ~MA_CHAIN4;
Насколько я понимаю, GC_MEM_RD активно тогда, когда идет обращение к видеопамяти (причем вроде только EGA/VGA) ? Просто по каким-то причинам сигнал активизируется сразу после сброса, когда идет чтение основного BIOS'а, и в результате формируется V_READ, по которому я выдаю данные процессору...
[UPDATE] Похоже, начал разбираться... Наверное, вопрос снят.
|
01 Jun 2017 10:01 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
По fasm - на каких конкретно строках ругается? Примеры? Тест ругательства? Хоть не досовским собирали? Скрин сборки у меняСигнал активен при чтении со стороны CPU по адресам видеопамяти (т.е. не MA_DIRECT, который отвечает за обычные обращения) и не в режиме chain4, т.е. где байт из проца падает в плоскость целиком. И да, CGA проходит по статье MA_DIRECT, т.к. ему не требуется работа с плоскостями. Вообще этот сигнал (GC_MEM_RD) делает 2 вещи: - разрешает заполнение латчей - при выборе чего вернуть процу при чтении, включает в кач-ве источника граф. контроллер, который отвечает за сборку байта (или двух) для CPU в планарных или o/e режимах, т.е. всякие там color compare, чтение только одного плейна и т.п. Когда идет чтение основного биоса [из флешки], проц удерживается в состоянии RESET. Таким образом, он ничего читать не может.
Last edited by Vic3Dexe on 01 Jun 2017 22:31, edited 2 times in total.
|
01 Jun 2017 22:13 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Какое отсутствие?! Вон же они, на скрине!
|
01 Jun 2017 22:21 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Даже стыдно такие вещи спрашивать... Тем не менее, наглость - второе счастье Во первых, с кавычками - это у меня уже крыша поехала после двадцатого переключения между masm и fasm... А вообще я пытаюсь вычленить видеочасть из BIOS'а, поэтому взял int10.asm, дописал сверху include "video.inc" и попробовал откомпилировать. На выходе получил: Что еще смущает - вроде в документации к fasm struc пишется без struct имя в конце... Естественно, разберусь в конце концов и сам, но от мудрого совета, естественно, не откажусь Насчет железной части - я прикручиваю Вашу карту в немного другом виде - нужна именно карта, без всего остального (основная память, BIOS и т.д.). Попытался сначала подправить код, чтобы карта не реагировала на адреса за пределами видеопамяти, но там друг за друга несколько вещей цепляются, поэтому сейчас просто обойду это снаружи карты, вообще не трогая Ваш код... Наконец-то за вопросительными знаками и точками Verilog'а я начал видеть железку, что сильно помогает...
|
02 Jun 2017 04:13 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
И правильно смущает, потому что со слова struc объявление структуры начинается, а struct - это макрос, добавляющий к структурам такую штуку как sizeof. Позволяет далее написать что-то вроде Макрос лежит в include/8086.inc в самом начале. Ессно, что без него фасм ругается во все поля. Ну так выпилите декодирование CONV_RAM_CS и ROM_CS в синхронизаторе, что сложного-то?
|
02 Jun 2017 04:33 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Именно с этого я и начал... И обнаружил, что после этого GC_MEM_RD все время активный, и V_READ из-за этого активный тоже Нет, понятно, что можно подкорректировать и там, но решил, что вообще ничего трогать не буду, если работает, разберусь со всем на своей стороне... За объяснение struct отдельное спасибо !
|
02 Jun 2017 04:48 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Ну так вы что-то делаете не так, он не может быть активным все время. Он активен, если: -nMRD = 0, т.е. есть сигнал чтения от проца И-карта не-CGA (а по умолчанию она как раз CGA, т.к. тип карты задает биос, и изначально в регистрах нули) И-в VGA-карте не включен chain4 Если вы даже биос не подключили, то тип карты поменяться не мог, значит она CGA, значит GC_MEM_RD не может быть активен.
|
02 Jun 2017 05:55 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
А я сразу свитчи в режим VGA выставил.
|
02 Jun 2017 06:26 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Неважно, chain4 должен быть выключен. Смотрите сигналтапом, откуда у вас единица в сигнал лезет.
|
02 Jun 2017 06:36 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Как думаете, если намертво поставить V_OPTIONS = 0, и запустить обычный BIOS от XT, заработать в режиме CGA должно ? Что-то у меня пока не пошло - вроде и доступ к видеопамяти со стороны процессора есть, а развертка 640х480 присутствует, а вот на экране пусто...
|
02 Jun 2017 07:51 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Нет конечно. Шрифты-то нужно грузить в режиме VGA во 2 плейн, как обычно. Ну потому и пусто, что шрифтов нет.
|
02 Jun 2017 07:54 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
А, понятно. Я просто думал, что в режиме CGA карта имитирует CGA и в этом отношении - уже залитые шрифты. И только сейчас сообразил, что не помню места в коде, где они могли бы быть Тогда другой вопрос - если установлю V_OPTIONS в VGA режим и запущу какой-нибудь VGA BIOS попроще/постандартнее, должно заработать ?
|
02 Jun 2017 08:04 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Откуда они возьмутся в RAM сами по себе? Без понятия. Мой код эмулирует 3 хитросделаных бита o/e (odd/even) именно так, как оно работало на EGA, и как должно быть. Современные карты ( и поздние VGA) на один или два из них кладут, потому что функции этих бит почти одинаковые, их несколько т.к. у EGA было несколько чипов. В одночиповых вариантах это избыточно. Поэтому как оно будет работать и работать ли вообще - вопрос. Собственно, кто вам мешает попробовать? Заодно и мне расскажете, подходит ли туда стандартный биос.
|
02 Jun 2017 08:35 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Да я и собираюсь это сделать, обязательно расскажу ! Просто хотел убедиться, что там нет чего-то, что гарантированно не даст такому BIOS'у работать (типа какой-то изначальной инициализации, помимо битов в V_OPTIONS)
|
02 Jun 2017 08:52 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
С лету запустить с парой вроде бы стандартных BIOS'ов не получилось (вполне вероятно, что что-то не то пока делаю). Причем явно видно, что что-то происходит - синхронизация то исчезает в процессе отработки BIOS'а, то появляется...
|
03 Jun 2017 06:53 |
|
|
Who is online |
Users browsing this forum: No registered users and 28 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|