8086+FPGA

16-битные ПЦ-совместимые компьютеры с процессорами 8086/8088/80286 работающие под управлением ДОС

Moderator: Shaos

newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: 8086+FPGA

Post by newold86 »

Пытаюсь в первом приближении подключить контроллер (пока без BIOS'а), просто убедиться в доступе к памяти, и сразу же налетел на проблему...

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

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

[UPDATE] Похоже, начал разбираться... Наверное, вопрос снят.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: 8086+FPGA

Post by Vic3Dexe »

По 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.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: 8086+FPGA

Post by Vic3Dexe »

newold86 wrote:ругается на отсутствие кавычек
Какое отсутствие?! Вон же они, на скрине!
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: 8086+FPGA

Post by newold86 »

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

Насчет железной части - я прикручиваю Вашу карту в немного другом виде - нужна именно карта, без всего остального (основная память, BIOS и т.д.). Попытался сначала подправить код, чтобы карта не реагировала на адреса за пределами видеопамяти, но там друг за друга несколько вещей цепляются, поэтому сейчас просто обойду это снаружи карты, вообще не трогая Ваш код... Наконец-то за вопросительными знаками и точками Verilog'а я начал видеть железку, что сильно помогает...
You do not have the required permissions to view the files attached to this post.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: 8086+FPGA

Post by Vic3Dexe »

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

Code: Select all

mov eax,sizeof.TMyStruct
Макрос лежит в include/8086.inc в самом начале. Ессно, что без него фасм ругается во все поля.
newold86 wrote:подправить код, чтобы карта не реагировала на адреса за пределами видеопамяти
Ну так выпилите декодирование CONV_RAM_CS и ROM_CS в синхронизаторе, что сложного-то?
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: 8086+FPGA

Post by newold86 »

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

За объяснение struct отдельное спасибо !
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: 8086+FPGA

Post by Vic3Dexe »

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

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

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

Re: 8086+FPGA

Post by newold86 »

Vic3Dexe wrote:Если вы даже биос не подключили, то тип карты поменяться не мог, значит она CGA, значит GC_MEM_RD не может быть активен.
А я сразу свитчи в режим VGA выставил.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: 8086+FPGA

Post by Vic3Dexe »

Неважно, chain4 должен быть выключен.
Смотрите сигналтапом, откуда у вас единица в сигнал лезет.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: 8086+FPGA

Post by newold86 »

Как думаете, если намертво поставить V_OPTIONS = 0, и запустить обычный BIOS от XT, заработать в режиме CGA должно ?
Что-то у меня пока не пошло - вроде и доступ к видеопамяти со стороны процессора есть, а развертка 640х480 присутствует, а вот на экране пусто...
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: 8086+FPGA

Post by Vic3Dexe »

newold86 wrote:Как думаете, если намертво поставить V_OPTIONS = 0, и запустить обычный BIOS от XT, заработать в режиме CGA должно ?
Нет конечно. Шрифты-то нужно грузить в режиме VGA во 2 плейн, как обычно.
newold86 wrote:а вот на экране пусто
Ну потому и пусто, что шрифтов нет.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: 8086+FPGA

Post by newold86 »

А, понятно. Я просто думал, что в режиме CGA карта имитирует CGA и в этом отношении - уже залитые шрифты. И только сейчас сообразил, что не помню места в коде, где они могли бы быть :)
Тогда другой вопрос - если установлю V_OPTIONS в VGA режим и запущу какой-нибудь VGA BIOS попроще/постандартнее, должно заработать ?
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: 8086+FPGA

Post by Vic3Dexe »

newold86 wrote:имитирует CGA и в этом отношении - уже залитые шрифты
Откуда они возьмутся в RAM сами по себе?
newold86 wrote:если установлю V_OPTIONS в VGA режим и запущу какой-нибудь VGA BIOS попроще/постандартнее, должно заработать
Без понятия. Мой код эмулирует 3 хитросделаных бита o/e (odd/even) именно так, как оно работало на EGA, и как должно быть. Современные карты (и поздние VGA) на один или два из них кладут, потому что функции этих бит почти одинаковые, их несколько т.к. у EGA было несколько чипов. В одночиповых вариантах это избыточно.

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

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

Re: 8086+FPGA

Post by newold86 »

Vic3Dexe wrote:Собственно, кто вам мешает попробовать? :) Заодно и мне расскажете, подходит ли туда стандартный биос.
Да я и собираюсь это сделать, обязательно расскажу !
Просто хотел убедиться, что там нет чего-то, что гарантированно не даст такому BIOS'у работать (типа какой-то изначальной инициализации, помимо битов в V_OPTIONS)
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: 8086+FPGA

Post by newold86 »

С лету запустить с парой вроде бы стандартных BIOS'ов не получилось (вполне вероятно, что что-то не то пока делаю). Причем явно видно, что что-то происходит - синхронизация то исчезает в процессе отработки BIOS'а, то появляется...