nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 25 Apr 2024 00:09



Reply to topic  [ 182 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13  Next
Запустить 8086 в минимальной обвязке? 
Author Message
Maniac

Joined: 18 Nov 2013 15:15
Posts: 209
Location: все оттуда ;)
Reply with quote
Post 
НетЪ.
99% игрушек напрямую работают с видеопамятью.
И очень много программ так же (даже в текстовом режиме) работают напрямую с видеопамятью.


25 Oct 2014 02:50
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Vasiliy wrote:
А если оставить таблицу векторов прерываний и адреса портов ввода/вывода неизменными?
В качестве видеоадаптера использовать TFT дисплей 320х240 с ним довольно легко работать?
Будет хоть какая то совместимость?
Я понимаю что обработчики прерываний BIOS нужно почти все переписать под этот дисплей.

Будет совместимость на уровне портов в/в и вызовов BIOS.
Но, действительно, даже в текстовом режиме многие программы обращаются напрямую к видео-ОЗУ.
Я сам так писал - это же просто программно: заполняешь область последовательностью символ/аттрибут.
Многие программы так и делают.

_________________
iLavr


25 Oct 2014 03:24
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Post 
Извините, что поднимаю старую тему, но все-таки интересует вопрос сопряжения 8086 с 8-битной ISA.

Как я понимаю, в случае обмена словом придется генерировать 2 отдельных цикла внешней схемой (что 8088 делает из коробки). Т.е., для макс-конфигурации примерно так:

Схема перехватывает сигналы S0-S2 между процом и 8288 (ну или реализацией последнего на плисине - непринципиально). Далее

1. Ловим факт word-операции (A0 = 0, BHE = 0)
2. Выставляем процу RDY = 0, чтобы он не закончил цикл раньше положенного.
3. Имитируем окончание цикла младшего байта путем подъема S0-S2 в единицы, это нужно сделать по факту READY = 1 на шине (т.е. от девайса), но не ранее T3. Так как нам нужно сохранить оригинальные значения S0-S2 для второго цикла, проще всего сделать Sx OR 1, после снятия единицы, сигналы восстановят первоначальные значения.
4. Ждем T4, как дождались - коммутируем шинные D0-D7 на D8-D15 проца, выставляем на шину A0 = 1, и снимаем единицу, подпирающую S0-S2, начиная второй цикл.
5. В T2 выставялем RDY = 0, его и READY с шины заводим на проц/8284 через AND.
6. Профит :)

Это вообще похоже на правду, или мне пора отдыхать?

Работать, конечно, не будет. Хотя бы потому, что во втором цикле снова будет выдано ALE, а на мультиплексных ногах проца к этому моменту что угодно, но не адрес.

Следовательно, нужно либо во втором цикле подавлять ALE на адресных защелках внешней схемой, либо иметь два ALE - один для проца, другой для шины.

В связи с чем возникает вопрос: зачем на шине ALE вообще? Ведь туда уже поступают демультиплексированные A/D.


16 Dec 2014 12:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Я как-то из текста не осознал точно, правильно тут всё или неправильно,
но так понял, что речь идёт о перестановщике байтов.

Если это так, то процесс его работы достаточно подробно описан по ссылкам:
http://www.hackersrussia.ru/Cards/Develop/isa.htm
http://ru.osdev.wikia.com/wiki/ISA



Shaos, кстати, давно хотел спросить, как звучит термин перестановщик байтов
в зарубежной технической литературе? shuffler (тасовщик, перестановщик) - нет?

_________________
iLavr


16 Dec 2014 13:17
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 460
Location: Москва
Reply with quote
Post 
Vic3Dexe wrote:
Как я понимаю, в случае обмена словом придется генерировать 2 отдельных цикла внешней схемой (что 8088 делает из коробки).

Проще договориться с самим собой, что по внешней шине память никогда не будет адресоваться, только IO. А насчет IO - вряд ли в реале есть грязные хаки обращения к соседним 8-бит портам как к одному 16-бит.
Quote:
зачем на шине ALE вообще? Ведь туда уже поступают демультиплексированные A/D.
А хрен его знает. Вытаскивать локальный сигнал на общую шину - моветон. Но, что размножилось де факто - то и размножилось.


16 Dec 2014 14:10
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22572
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Я как-то из текста не осознал точно, правильно тут всё или неправильно,
но так понял, что речь идёт о перестановщике байтов.

Если это так, то процесс его работы достаточно подробно описан по ссылкам:
http://www.hackersrussia.ru/Cards/Develop/isa.htm
http://ru.osdev.wikia.com/wiki/ISA

Shaos, кстати, давно хотел спросить, как звучит термин перестановщик байтов
в зарубежной технической литературе? shuffler (тасовщик, перестановщик) - нет?


Первый раз про это услышал - ни разу не встречал такого в "зарубежной технической литературе"...

_________________
:dj: https://mastodon.social/@Shaos


16 Dec 2014 14:56
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Первый раз про это услышал - ни разу не встречал такого в "зарубежной технической литературе"...

Вот интересно - почему и спрашиваю... специально потратил я время и погуглил - но так и
не нашел ни этого термина, ни его аналога.

В русской Вике про ISA - он есть, в английском аналоге - его нет... :wink:

_________________
iLavr


16 Dec 2014 15:08
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Post 
Lavr wrote:
речь идёт о перестановщике байтов.

Да, походу именно он. Однако, по первой же ссылке ISA-16. Тут вроде ISA-8 подразумевалась в обсуждении, у которой нет MEMCS16 и т.п.
Quote:
что по внешней шине память никогда не будет адресоваться

Эээ... почему? А видяха?
Да и какая, собственно, разница, память или ИО?
Quote:
вряд ли в реале есть грязные хаки обращения к соседним 8-бит портам как к одному 16-бит

Почему хак? Обычное дело, тот же контроллер CRT (индексный регистр по 3D4, данных по 3D5).
Code:
mov dx,3D4h
mov ax,0FACEh
out dx,ax

Quote:
А хрен его знает.

Я имел ввиду - он вообще где-то используется на каких-нибудь платах? Как он вообще там работает? По АЛЕ адрес от проца стробируется в регистры, а на шине что стробируется? Предыдущий адрес? Или надежда на то, что регистры мгновенно устаканят новый адрес на выходе?


16 Dec 2014 15:26
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Vic3Dexe wrote:
Lavr wrote:
речь идёт о перестановщике байтов.

Да, походу именно он. Однако, по первой же ссылке ISA-16. Тут вроде ISA-8 подразумевалась
в обсуждении, у которой нет MEMCS16 и т.п.

А ISA-8, мне думается, атавизм из прошлого, под который и сделали 8088 - поэтому ему так
и удобно лезть в 8-битные порты.

А 8086 - полностью 16-разрядный по ШД, поэтому везде и пишут, что любую транзакцию по
шине он начинает, как 16-разрядную
, а дальше - как ему ответят...

_________________
iLavr


16 Dec 2014 16:08
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Post 
Lavr wrote:
А ISA-8, мне думается, атавизм из прошлого, под который и сделали 8088 - поэтому ему так
и удобно лезть в 8-битные порты.

А 8086 - полностью 16-разрядный по ШД, поэтому везде и пишут, что любую транзакцию по
шине он начинает, как 16-разрядную
, а дальше - как ему ответят...

Так, кажется, непонимание :)

ISA-16 появилась под 286 (по вашей же ссылке на осьдев.вики), т.е., после и 88 и 86. Т.о. предполагалась, а в XT, как я понимаю, и была реализована ISA-8 при 16-битной ШД у проца. PC jr (8088) была цельновосьмибитной.

Я могу что-то путать в наименованиях, но ISA-16 (286) не могла появиться до ISA-8 (86/88 ).

Ну и как бы сути моего вопроса это не отменяет. Повторюсь - прав ли я, что для сопряжения 16 бит 86 проца с ISA-8 достаточно выполнить 2 цикла по приведенному мной алгоритму?
Понимаю, что читать по псевдокоду сложно, как будет время - переварю в верилог и дам схему.

Главное - чего с BALE делать-то? Нужен он на шине реально, или можно положить? Если не сложно, ткните носом в читабельную схему CGA или хоть мультяшки какой. Короче, чего угодно под ISA-8, но реально существующего, а не хенд-мейд в 20xx г.
То, что есть у меня, нечитабельно даже на трезвую.


16 Dec 2014 18:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Vic3Dexe wrote:
Так, кажется, непонимание :)

Действительно, непонимание... и - с Вашей стороны.

Vic3Dexe wrote:
ISA-16 появилась под 286 (по вашей же ссылке на осьдев.вики), т.е., после и 88 и 86. Т.о.
предполагалась, а в XT, как я понимаю, и была реализована ISA-8 при 16-битной ШД у проца.
PC jr (8088) была цельновосьмибитной.
Я могу что-то путать в наименованиях, но ISA-16 (286) не могла появиться до ISA-8 (86/88 ).

А я ни слова не сказал про ISA-16. :o Читаем:
Lavr wrote:
А 8086 - полностью 16-разрядный по ШД, поэтому везде и пишут, что любую транзакцию по
шине он начинает, как 16-разрядную
, а дальше - как ему ответят...

И это - действительно так, а причем тут ISA-16?

А 8088 появился позже 8086, чтобы обеспечить как раз совместимость с большим количеством
существующих 8-битных периферийных устройств.
И поэтому ему действительно удобно работать с 8-биной ISA. И все PC-юки делались всё же на 8088,
а клоны PC на 8086 гораздо более редки.

8088 - он такой же 16-разрядный внутри, как и 8086, но шина данных сделана 8-разрядной,
поэтому он работает с 16 битами в два обращения, и я не назвал бы его "цельновосьмибитным".

_________________
iLavr


16 Dec 2014 19:09
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Post 
Lavr wrote:
И это - действительно так, а причем тут ISA-16?

Притом, что Ваша ссылка http://www.hackersrussia.ru/Cards/Develop/isa.htm описывает перестановщик байтов именно для ISA-16, о ISA-8 там нет ни слова.
Кроме того,
Lavr wrote:
ISA-8, мне думается, атавизм из прошлого

но мы-то как раз ее и обсуждаем. Вариантов PC/XT/jr и пр. с ISA-16 я не знаю. Были?
Lavr wrote:
а клоны PC на 8086 гораздо более редки.

Да, мой косяк, я почему-то думал, что оригинальная XT была на 86.


17 Dec 2014 08:44
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Vic3Dexe wrote:
Lavr wrote:
И это - действительно так, а причем тут ISA-16?

Притом, что Ваша ссылка http://www.hackersrussia.ru/Cards/Develop/isa.htm описывает
перестановщик байтов именно для ISA-16, о ISA-8 там нет ни слова.

Будьте всё же внимательны. Я дал Вам 3 ссылки:
1. перестановщик байтов.
Можете читать любые другие материалы про перестановщик байтов .

Но сам я читал про это устройство - перестановщик байтов - на этих страницах:

2. http://www.hackersrussia.ru/Cards/Develop/isa.htm
3. http://ru.osdev.wikia.com/wiki/ISA

поскольку здесь принцип работы этого устройства описан весьма подробно.

И я ничего не говорил Вам про шины ISA по ссылкам - можете про них не читать.

Я надеюсь, мы сойдемся во мнении, что в традиционном РС на 8088 с ISA-8 никакой
перестановщик байтов не нужен?
Поэтому там, где идет речь про ISA-8, об этом устройстве ничего и не пишут.

И как я понял из этого топика, ни Shaos, ни Mixa64 об этом устройстве ничего и не слышали.
Нужда в нём действительно возникает там, где используется 8086 с его полной 16-разрядной ШД.

_________________
iLavr


17 Dec 2014 09:55
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Post 
Lavr wrote:
Будьте всё же внимательны. Я дал Вам 3 ссылки:

Проехали, ибо не о том говорим. :)
Lavr wrote:
Я надеюсь, мы сойдемся во мнении, что в традиционном РС на 8088 с ISA-8 никакой
перестановщик байтов не нужен?

Да, но только потому, что в 8088 этот "перестановщик" встроен. Два цикла вместо одного при операциях со словом.
Lavr wrote:
Поэтому там, где идет речь про ISA-8, об этом устройстве ничего и не пишут.

ISA-8 не подразумевает 8088, например, тот же Поиск-2. Смотрел (тупил) в его схему, но так как там этот момент сделан на РТ, прошивок которых нет, ничерта не понял :)

зы За ссылку по ISA-16, кстати, спасибо. В копилочку.


18 Dec 2014 01:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Vic3Dexe wrote:
Проехали, ибо не о том говорим. :)
...
зы За ссылку по ISA-16, кстати, спасибо. В копилочку.

Ну проехали - так проехали. Будьте здоровы. Помолчим на эту тему.

_________________
iLavr


18 Dec 2014 07:26
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 182 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13  Next

Who is online

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