|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Запустить 8086 в минимальной обвязке?
Author |
Message |
VGrad
Maniac
Joined: 18 Nov 2013 15:15 Posts: 209 Location: все оттуда ;)
|
НетЪ.
99% игрушек напрямую работают с видеопамятью.
И очень много программ так же (даже в текстовом режиме) работают напрямую с видеопамятью.
|
25 Oct 2014 02:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Будет совместимость на уровне портов в/в и вызовов BIOS.
Но, действительно, даже в текстовом режиме многие программы обращаются напрямую к видео-ОЗУ.
Я сам так писал - это же просто программно: заполняешь область последовательностью символ/аттрибут.
Многие программы так и делают.
_________________ iLavr
|
25 Oct 2014 03:24 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Извините, что поднимаю старую тему, но все-таки интересует вопрос сопряжения 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 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я как-то из текста не осознал точно, правильно тут всё или неправильно,
но так понял, что речь идёт о перестановщике байтов.
Если это так, то процесс его работы достаточно подробно описан по ссылкам:
http://www.hackersrussia.ru/Cards/Develop/isa.htm
http://ru.osdev.wikia.com/wiki/ISA
Shaos, кстати, давно хотел спросить, как звучит термин перестановщик байтов
в зарубежной технической литературе? shuffler (тасовщик, перестановщик) - нет?
_________________ iLavr
|
16 Dec 2014 13:17 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 460 Location: Москва
|
Проще договориться с самим собой, что по внешней шине память никогда не будет адресоваться, только IO. А насчет IO - вряд ли в реале есть грязные хаки обращения к соседним 8-бит портам как к одному 16-бит. А хрен его знает. Вытаскивать локальный сигнал на общую шину - моветон. Но, что размножилось де факто - то и размножилось.
|
16 Dec 2014 14:10 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22576 Location: Silicon Valley
|
Первый раз про это услышал - ни разу не встречал такого в "зарубежной технической литературе"...
|
16 Dec 2014 14:56 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот интересно - почему и спрашиваю... специально потратил я время и погуглил - но так и
не нашел ни этого термина, ни его аналога.
В русской Вике про ISA - он есть, в английском аналоге - его нет...
_________________ iLavr
|
16 Dec 2014 15:08 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Да, походу именно он. Однако, по первой же ссылке ISA-16. Тут вроде ISA-8 подразумевалась в обсуждении, у которой нет MEMCS16 и т.п. Эээ... почему? А видяха? Да и какая, собственно, разница, память или ИО? Почему хак? Обычное дело, тот же контроллер CRT (индексный регистр по 3D4, данных по 3D5).
Я имел ввиду - он вообще где-то используется на каких-нибудь платах? Как он вообще там работает? По АЛЕ адрес от проца стробируется в регистры, а на шине что стробируется? Предыдущий адрес? Или надежда на то, что регистры мгновенно устаканят новый адрес на выходе?
|
16 Dec 2014 15:26 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А ISA-8, мне думается, атавизм из прошлого, под который и сделали 8088 - поэтому ему так
и удобно лезть в 8-битные порты.
А 8086 - полностью 16-разрядный по ШД, поэтому везде и пишут, что любую транзакцию по шине он начинает, как 16-разрядную, а дальше - как ему ответят...
_________________ iLavr
|
16 Dec 2014 16:08 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Так, кажется, непонимание
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 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Действительно, непонимание... и - с Вашей стороны. А я ни слова не сказал про ISA-16. Читаем:
И это - действительно так, а причем тут ISA-16?
А 8088 появился позже 8086, чтобы обеспечить как раз совместимость с большим количеством
существующих 8-битных периферийных устройств.
И поэтому ему действительно удобно работать с 8-биной ISA. И все PC-юки делались всё же на 8088,
а клоны PC на 8086 гораздо более редки.
8088 - он такой же 16-разрядный внутри, как и 8086, но шина данных сделана 8-разрядной,
поэтому он работает с 16 битами в два обращения, и я не назвал бы его "цельновосьмибитным".
_________________ iLavr
|
16 Dec 2014 19:09 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Притом, что Ваша ссылка http://www.hackersrussia.ru/Cards/Develop/isa.htm описывает перестановщик байтов именно для ISA-16, о ISA-8 там нет ни слова. Кроме того, но мы-то как раз ее и обсуждаем. Вариантов PC/XT/jr и пр. с ISA-16 я не знаю. Были?
Да, мой косяк, я почему-то думал, что оригинальная XT была на 86.
|
17 Dec 2014 08:44 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Будьте всё же внимательны. Я дал Вам 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 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Проехали, ибо не о том говорим. Да, но только потому, что в 8088 этот "перестановщик" встроен. Два цикла вместо одного при операциях со словом.
ISA-8 не подразумевает 8088, например, тот же Поиск-2. Смотрел (тупил) в его схему, но так как там этот момент сделан на РТ, прошивок которых нет, ничерта не понял
зы За ссылку по ISA-16, кстати, спасибо. В копилочку.
|
18 Dec 2014 01:35 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну проехали - так проехали. Будьте здоровы. Помолчим на эту тему.
_________________ iLavr
|
18 Dec 2014 07:26 |
|
|
Who is online |
Users browsing this forum: No registered users and 26 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
|
|