nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 12:29



Reply to topic  [ 153 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11  Next
8086+FPGA 
Author Message
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Пытаюсь в первом приближении подключить контроллер (пока без BIOS'а), просто убедиться в доступе к памяти, и сразу же налетел на проблему...

assign GC_MEM_RD = ~nMRD & ~MA_DIRECT & ~MA_CHAIN4;

Насколько я понимаю, GC_MEM_RD активно тогда, когда идет обращение к видеопамяти (причем вроде только EGA/VGA) ? Просто по каким-то причинам сигнал активизируется сразу после сброса, когда идет чтение основного BIOS'а, и в результате формируется V_READ, по которому я выдаю данные процессору...

[UPDATE] Похоже, начал разбираться... Наверное, вопрос снят.


01 Jun 2017 10:01
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
По fasm - на каких конкретно строках ругается? Примеры? Тест ругательства? Хоть не досовским собирали?
Скрин сборки у меня
newold86 wrote:
assign GC_MEM_RD = ~nMRD & ~MA_DIRECT & ~MA_CHAIN4;

Сигнал активен при чтении со стороны CPU по адресам видеопамяти (т.е. не MA_DIRECT, который отвечает за обычные обращения) и не в режиме chain4, т.е. где байт из проца падает в плоскость целиком. И да, CGA проходит по статье MA_DIRECT, т.к. ему не требуется работа с плоскостями.
Вообще этот сигнал (GC_MEM_RD) делает 2 вещи:
- разрешает заполнение латчей
- при выборе чего вернуть процу при чтении, включает в кач-ве источника граф. контроллер, который отвечает за сборку байта (или двух) для CPU в планарных или o/e режимах, т.е. всякие там color compare, чтение только одного плейна и т.п.
newold86 wrote:
когда идет чтение основного BIOS'а

Когда идет чтение основного биоса [из флешки], проц удерживается в состоянии RESET. Таким образом, он ничего читать не может.


Last edited by Vic3Dexe on 01 Jun 2017 22:31, edited 2 times in total.



01 Jun 2017 22:13
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
ругается на отсутствие кавычек

Какое отсутствие?! Вон же они, на скрине!


01 Jun 2017 22:21
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
По fasm - на каких конкретно строках ругается? Примеры? Тест ругательства? Хоть не досовским собирали?

Даже стыдно такие вещи спрашивать...
Тем не менее, наглость - второе счастье :)
Во первых, с кавычками - это у меня уже крыша поехала после двадцатого переключения между masm и fasm...
А вообще я пытаюсь вычленить видеочасть из BIOS'а, поэтому взял int10.asm, дописал сверху include "video.inc" и попробовал откомпилировать. На выходе получил:

Attachment:
fasm1.jpg
fasm1.jpg [ 109.84 KiB | Viewed 8946 times ]


Что еще смущает - вроде в документации к fasm struc пишется без struct имя в конце... Естественно, разберусь в конце концов и сам, но от мудрого совета, естественно, не откажусь :)

Насчет железной части - я прикручиваю Вашу карту в немного другом виде - нужна именно карта, без всего остального (основная память, BIOS и т.д.). Попытался сначала подправить код, чтобы карта не реагировала на адреса за пределами видеопамяти, но там друг за друга несколько вещей цепляются, поэтому сейчас просто обойду это снаружи карты, вообще не трогая Ваш код... Наконец-то за вопросительными знаками и точками Verilog'а я начал видеть железку, что сильно помогает...


02 Jun 2017 04:13
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
Что еще смущает - вроде в документации к fasm struc пишется без struct имя в конце...

И правильно смущает, потому что со слова struc объявление структуры начинается, а struct - это макрос, добавляющий к структурам такую штуку как sizeof.
Позволяет далее написать что-то вроде
Code:
mov eax,sizeof.TMyStruct

Макрос лежит в include/8086.inc в самом начале. Ессно, что без него фасм ругается во все поля.
newold86 wrote:
подправить код, чтобы карта не реагировала на адреса за пределами видеопамяти

Ну так выпилите декодирование CONV_RAM_CS и ROM_CS в синхронизаторе, что сложного-то?


02 Jun 2017 04:33
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
Ну так выпилите декодирование CONV_RAM_CS и ROM_CS в синхронизаторе, что сложного-то?

Именно с этого я и начал... И обнаружил, что после этого GC_MEM_RD все время активный, и V_READ из-за этого активный тоже :) Нет, понятно, что можно подкорректировать и там, но решил, что вообще ничего трогать не буду, если работает, разберусь со всем на своей стороне...

За объяснение struct отдельное спасибо !


02 Jun 2017 04:48
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
И обнаружил, что после этого GC_MEM_RD все время активный

Ну так вы что-то делаете не так, он не может быть активным все время.

Он активен, если:
-nMRD = 0, т.е. есть сигнал чтения от проца
И
-карта не-CGA (а по умолчанию она как раз CGA, т.к. тип карты задает биос, и изначально в регистрах нули)
И
-в VGA-карте не включен chain4

Если вы даже биос не подключили, то тип карты поменяться не мог, значит она CGA, значит GC_MEM_RD не может быть активен.


02 Jun 2017 05:55
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
Если вы даже биос не подключили, то тип карты поменяться не мог, значит она CGA, значит GC_MEM_RD не может быть активен.


А я сразу свитчи в режим VGA выставил.


02 Jun 2017 06:26
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Неважно, chain4 должен быть выключен.
Смотрите сигналтапом, откуда у вас единица в сигнал лезет.


02 Jun 2017 06:36
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Как думаете, если намертво поставить V_OPTIONS = 0, и запустить обычный BIOS от XT, заработать в режиме CGA должно ?
Что-то у меня пока не пошло - вроде и доступ к видеопамяти со стороны процессора есть, а развертка 640х480 присутствует, а вот на экране пусто...


02 Jun 2017 07:51
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
Как думаете, если намертво поставить V_OPTIONS = 0, и запустить обычный BIOS от XT, заработать в режиме CGA должно ?

Нет конечно. Шрифты-то нужно грузить в режиме VGA во 2 плейн, как обычно.
newold86 wrote:
а вот на экране пусто

Ну потому и пусто, что шрифтов нет.


02 Jun 2017 07:54
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
А, понятно. Я просто думал, что в режиме CGA карта имитирует CGA и в этом отношении - уже залитые шрифты. И только сейчас сообразил, что не помню места в коде, где они могли бы быть :)
Тогда другой вопрос - если установлю V_OPTIONS в VGA режим и запущу какой-нибудь VGA BIOS попроще/постандартнее, должно заработать ?


02 Jun 2017 08:04
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
имитирует CGA и в этом отношении - уже залитые шрифты

Откуда они возьмутся в RAM сами по себе?
newold86 wrote:
если установлю V_OPTIONS в VGA режим и запущу какой-нибудь VGA BIOS попроще/постандартнее, должно заработать

Без понятия. Мой код эмулирует 3 хитросделаных бита o/e (odd/even) именно так, как оно работало на EGA, и как должно быть. Современные карты (и поздние VGA) на один или два из них кладут, потому что функции этих бит почти одинаковые, их несколько т.к. у EGA было несколько чипов. В одночиповых вариантах это избыточно.

Поэтому как оно будет работать и работать ли вообще - вопрос.

Собственно, кто вам мешает попробовать? :) Заодно и мне расскажете, подходит ли туда стандартный биос.


02 Jun 2017 08:35
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
Собственно, кто вам мешает попробовать? :) Заодно и мне расскажете, подходит ли туда стандартный биос.

Да я и собираюсь это сделать, обязательно расскажу !
Просто хотел убедиться, что там нет чего-то, что гарантированно не даст такому BIOS'у работать (типа какой-то изначальной инициализации, помимо битов в V_OPTIONS)


02 Jun 2017 08:52
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
С лету запустить с парой вроде бы стандартных BIOS'ов не получилось (вполне вероятно, что что-то не то пока делаю). Причем явно видно, что что-то происходит - синхронизация то исчезает в процессе отработки BIOS'а, то появляется...


03 Jun 2017 06:53
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 153 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11  Next

Who is online

Users browsing this forum: No registered users and 7 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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.