PC1-88 - одноплатный компьютер на 8088
Moderator: Shaos
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
PC1-88 - одноплатный компьютер на 8088
Так как собрал все, что хотел в свое время собрать, причем в разных вариациях, возникло желание сделать что-то свое. В результате появился проект одноплатного компьютера на 8088, частично совместимого с IBM PC.
На борту имеется:
8088 - тактируется от отдельного кварца, поэтому какой поставишь (в пределах допустимого для конкретного процессора), такая тактовая и будет
512К SRAM
32К ROM
8255 x 2
8254
PS/2 разъем для клавиатуры
Разъем для SD карт
Видеоадаптер располагается на этой же плате:
Выход - VGA разъем
Сигнал - VGA 1024x768
Разрешение - 512x384 (т.е. каждая точка отображена 4-мя точками развертки дисплея)
Цветность - 16 странных цветов (4 бита на точку - WRGB, где W - нечто типа сигнала яркости)
Видео ОЗУ - SRAM 128K (используется 96K), при обращении процессора к адаптеру на экране снег, так как прозрачный доступ решил не делать
Кроме процессорного комплекта, все остальное - серия 74xx (видео - в основном 74Fxx), плюс одна МС согласователя уровней для SD карты (можно было и резисторами обойтись)
Смысл был именно в НЕ использовании CPLD/FPGA/PAL/GAL вообще.
Никакого практического применения этому устройству я, естественно, не вижу - просто хотелось поиграться.
Так как схему рисовал за два вечера, после запуска выяснилось, что немного напутал в управлении мультиплексором видеоданных - вместо WrBrGrRrWlBlGlRl (две точки на байт) получилось WrWlGrGlBrBlRrRl. Так как за время ожидания платы из производства написал Int 10, сейчас думаю - переписывать ли Int 10, или же просто разрезать дорожку и припаять проводок. Остальное вроде работает.
На борту имеется:
8088 - тактируется от отдельного кварца, поэтому какой поставишь (в пределах допустимого для конкретного процессора), такая тактовая и будет
512К SRAM
32К ROM
8255 x 2
8254
PS/2 разъем для клавиатуры
Разъем для SD карт
Видеоадаптер располагается на этой же плате:
Выход - VGA разъем
Сигнал - VGA 1024x768
Разрешение - 512x384 (т.е. каждая точка отображена 4-мя точками развертки дисплея)
Цветность - 16 странных цветов (4 бита на точку - WRGB, где W - нечто типа сигнала яркости)
Видео ОЗУ - SRAM 128K (используется 96K), при обращении процессора к адаптеру на экране снег, так как прозрачный доступ решил не делать
Кроме процессорного комплекта, все остальное - серия 74xx (видео - в основном 74Fxx), плюс одна МС согласователя уровней для SD карты (можно было и резисторами обойтись)
Смысл был именно в НЕ использовании CPLD/FPGA/PAL/GAL вообще.
Никакого практического применения этому устройству я, естественно, не вижу - просто хотелось поиграться.
Так как схему рисовал за два вечера, после запуска выяснилось, что немного напутал в управлении мультиплексором видеоданных - вместо WrBrGrRrWlBlGlRl (две точки на байт) получилось WrWlGrGlBrBlRrRl. Так как за время ожидания платы из производства написал Int 10, сейчас думаю - переписывать ли Int 10, или же просто разрезать дорожку и припаять проводок. Остальное вроде работает.
You do not have the required permissions to view the files attached to this post.
-
- Doomed
- Posts: 598
- Joined: 10 Mar 2012 16:21
- Location: РФ
Re: PC1-88 - одноплатный компьютер на 8088
Хотелось бы подробнее узнать самый интригующий момент - организацию видеопамяти и счётчиков.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Блин, ситуация хуже, чем я думал вначале - биты перепутаны еще круче, а резать нужно не 1, а 8 дорожек...newold86 wrote:...сейчас думаю - переписывать ли Int 10, или же просто разрезать дорожку и припаять проводок.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Упустил еще 8259, на который приходят int 08 от таймера, 09 от клавиатуры и еще прерывания от строчных и кадровых гасящих импульсов.newold86 wrote:На борту имеется:
8088 - тактируется от отдельного кварца, поэтому какой поставишь (в пределах допустимого для конкретного процессора), такая тактовая и будет
512К SRAM
32К ROM
8255 x 2
8254
PS/2 разъем для клавиатуры
Разъем для SD карт
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: PC1-88 - одноплатный компьютер на 8088
Ух класс! Я думал такое сделать, но решил, что с моим счастьем на FPGA будет проще (и был прав! На переделках уже разорился бы нахрен).
Терь конкретнее:
- не вижу на плате DAC, откуда VGA сигнал?
- откуда такое странное разрешение? Вангую, что из-за опорного кварца.
- так 4 бита на точку (IRGB) или 8 бит на точку (irgbIRGB)?
И самое главное (так и не понял) - оно PC/XT/x86 совместимое или нет?
Да, и RGB попутаны, мне кажется. Я не знаю, как генерится картинка на скрине, но если по порядку цветов, то синий должен идти после черного. Хотя... третьим (с нуля) цветом должна быть сумма 1 и 2 (т.е. у вас R+B = magenta), а на картинке зеленый... Не, может, так в коде задумано, мне отсюда не видно
ps SMD чего не юзаете? Удобнее же паять...
pps
Терь конкретнее:
- не вижу на плате DAC, откуда VGA сигнал?
- откуда такое странное разрешение? Вангую, что из-за опорного кварца.
- так 4 бита на точку (IRGB) или 8 бит на точку (irgbIRGB)?
И самое главное (так и не понял) - оно PC/XT/x86 совместимое или нет?
Да, и RGB попутаны, мне кажется. Я не знаю, как генерится картинка на скрине, но если по порядку цветов, то синий должен идти после черного. Хотя... третьим (с нуля) цветом должна быть сумма 1 и 2 (т.е. у вас R+B = magenta), а на картинке зеленый... Не, может, так в коде задумано, мне отсюда не видно

ps SMD чего не юзаете? Удобнее же паять...
pps
Это дело техники, я пока принципиально не понимаю, как там видеосигнал генерится.Хотелось бы подробнее узнать самый интригующий момент - организацию видеопамяти и счётчиков.
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Да, блин, мне самому нужно было не лениться, а сделать хотя бы видеоадаптер в полном объеме в FPGA для проверки, прежде чем делать плату. Похоже, нашел еще одну ошибку, где уже чисто программно не исправить - причину еще не выявил, но вообще не отображаются первые две точки (один байт) в каждой строке. Причем, когда рисовал схему, понимал, что начало и конец критичны, и пытался быть внимательным, но что-то где-то упустил...Vic3Dexe wrote:...но решил, что с моим счастьем на FPGA будет проще...
Ну как же так, есть там DAC - всем DAC'am DAC ! Целых 6 резисторов и 3 диода, прямо у VGA разъемаVic3Dexe wrote:- не вижу на плате DAC, откуда VGA сигнал?

Кварц был вторичен - первичным был выбор разрешения. Мысли были следующие:Vic3Dexe wrote:- откуда такое странное разрешение? Вангую, что из-за опорного кварца.
- стандартная VGA развертка для монитора
- поместиться максимум в 128К видеопамяти
- с ОЧЕНЬ большим запасом вписаться в быстродействие всех компонентов, чтобы не возиться еще и с проблемами задержек, гонок и т.д.
- в строке количество точек "двоично" круглое для упрощения схемотехники
- получить разрешение получше, чем CGA
4 бита на точку, т.е. 1 байт на 2 точки - IRGB.Vic3Dexe wrote:- так 4 бита на точку (IRGB) или 8 бит на точку (irgbIRGB)?
Очень ограниченно. Основная проблема - видео не совместимо ни с чем, причем есть только графический режим. Через свой Int 10, естественно, можно все гонять, но напрямую с видеобуфером ничто существующее работать не будет. Думал сделать перехват обращений к видеопамяти через NMI (типа как в Поиске, если я правильно понимаю), но не смог для себя найти объяснение, зачем мне это нужноVic3Dexe wrote:И самое главное (так и не понял) - оно PC/XT/x86 совместимое или нет?

Следующее - так как коды AT клавиатуры попадают в BIOS (говорить об PC AT) оттранслированными в (грубо говоря) XT-шные коды, а у меня отдельного контроллера клавиатуры нет, то напрямую с клавиатурой стандартные программы тоже не будут работать (если только не найти XT-шную клавиатуру). Также не стал делать перекодировку через прерывания.
Int 13 используется мой, который был написан для PC XT на FPGA.
Имеющиеся порты сидят на стандартных IBM PC адресах и работа с ними практически идентична.
На последовательность цветов вообще можно не смотреть - там табличка байт для вывода прямо в программе, так как я напутал с соединением данных видеопамяти с мультиплексором, который должен был половинки байта коммутировать для четных/нечетных точек.Vic3Dexe wrote:Да, и RGB попутаны, мне кажется. Я не знаю, как генерится картинка на скрине, но если по порядку цветов, то синий должен идти после черного. Хотя... третьим (с нуля) цветом должна быть сумма 1 и 2 (т.е. у вас R+B = magenta), а на картинке зеленый... Не, может, так в коде задумано, мне отсюда не видно
Да и я с самого начала сказал, что цвета странные из-за особенностей моего супер-DACа

Вот так люди, начав с SMD, потом к FPGA и скатываются !Vic3Dexe wrote:ps SMD чего не юзаете? Удобнее же паять...

-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: PC1-88 - одноплатный компьютер на 8088
Понятно, я так и предполагал. Уровни выдержаны? Это я на тему "странной" интенсивности. Когда возился со своим резистивным DAC, тоже нога I работала как попало, потому что уровни были какие угодно, но не те, что надо.newold86 wrote: Ну как же так, есть там DAC - всем DAC'am DAC ! Целых 6 резисторов и 3 диода, прямо у VGA разъема![]()
640х480, она отвечает всем требованиям, кроме четвертого. Я не то чтобы доколупываюсь, просто непонятно, зачем делать изначально ни с чем несовместимое... В качесте самообразования? Вряд ли, произвольная задача имеет произвольное решение, ну в смысле себя не проверишь - правильно или нет.newold86 wrote: - стандартная VGA развертка для монитора
- поместиться максимум в 128К видеопамяти
- с ОЧЕНЬ большим запасом вписаться в быстродействие всех компонентов, чтобы не возиться еще и с проблемами задержек, гонок и т.д.
- в строке количество точек "двоично" круглое для упрощения схемотехники
- получить разрешение получше, чем CGA
Винтажность не в схеме, винтажность в головеnewold86 wrote: Вот так люди, начав с SMD, потом к FPGA и скатываются !Для пущей винтажности, да и никогда хотя бы минимально серьезно с SMD не работал...


И я бы не сказал, что я "скатился" к FPGA, скорее, поднялся, да

А что касается SMD... сегодня за 20 минут распаял полсотни SMD-резисторов (цепи IDE на моей плате). Это с учетом времени, необходимого для их поиска в куче подобных. Выводные формовал и паял бы, обжигая пальцы, наверное до сих пор...
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Естественно, 640х480 был самый первый кандидат, но он не отвечает еще и второму пункту, если только не использовать всего лишь четыре цвета (2 бита на точку). А насчет цели проекта и возможности проверки - цели (кроме "захотелось") нет в принципе, а работу именно моей схемы могу, естественно, проверить и сам. Для этого не обязательно гонять стандартные программы. Да и, думаю, сложновато будет найти программу, которая может работать на 8088, но при этом использует режим 640х480...Vic3Dexe wrote:640х480, она отвечает всем требованиям, кроме четвертого. Я не то чтобы доколупываюсь, просто непонятно, зачем делать изначально ни с чем несовместимое... В качесте самообразования? Вряд ли, произвольная задача имеет произвольное решение, ну в смысле себя не проверишь - правильно или нет.newold86 wrote: - стандартная VGA развертка для монитора
- поместиться максимум в 128К видеопамяти
- с ОЧЕНЬ большим запасом вписаться в быстродействие всех компонентов, чтобы не возиться еще и с проблемами задержек, гонок и т.д.
- в строке количество точек "двоично" круглое для упрощения схемотехники
- получить разрешение получше, чем CGA
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: PC1-88 - одноплатный компьютер на 8088
Насколько я помню, вот эта игрушка так могла. Я тода работал на CGA-мониторе, но уже с EGA-картой,newold86 wrote:думаю, сложновато будет найти программу, которая может работать на 8088, но при этом использует режим 640х480...
так на этой игрушке синхронизация была устойчивой, но нижняя часть изображения уходила за экран.

iLavr
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Так вроде у EGA нет режима 640x480 ?Lavr wrote:Насколько я помню, ... вот эта игрушка... так могла. Я тода работал на CGA-мониторе, но уже с EGA-картой,newold86 wrote:думаю, сложновато будет найти программу, которая может работать на 8088, но при этом использует режим 640х480...
так на этой игрушке синхронизация была устойчивой, но нижняя часть изображения уходила за экран.
В любом случае, даже EGA-совместимый (пускай частично) адаптер по сложности будет покруче, чем все мое творение. Я, кстати, пытался поместиться в 50 корпусов МС, что вроде с трудом удалось...
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: PC1-88 - одноплатный компьютер на 8088
Так по идее и синхронизации не должно было быть!newold86 wrote:Так вроде у EGA нет режима 640x480

В EGA - режимах на моём советском мониторе "Электроника" я наблюдал лишь мельтешение строк.
А тут - картинка устойчива была, но часть - внизу за экраном. Почему мне это и запомнилось!

iLavr
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
После некоторой возни с парой недочетов в видеочасти все удалось исправить, практически не трогая плату:
Дальше, по идее, должно пойти попроще...
Дальше, по идее, должно пойти попроще...
You do not have the required permissions to view the files attached to this post.
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: PC1-88 - одноплатный компьютер на 8088
Мы схему всё-таки увидим, или так и будем блуждать в догадках, опираясь на словесные рассказы о недочетах и неполадках?newold86 wrote:схему рисовал за два вечера
Одна принципиальная схема, на мой взгляд, говорит о себе специалисту гораздо больше, чем множество страниц словоблудия.
iLavr
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: PC1-88 - одноплатный компьютер на 8088
Да нет там ничего особенного в этой схеме - все в лоб, без каких-либо фирменных know-how. Наоборот, есть пара ляпов, за которые стыдно. Такое любой, минимально соображающий в схемотехнике, нарисует... Но если уж очень хочется, то прикладываю, мне не жалко...
На данной схеме, как уже говорил, есть некоторые ошибки (не влияющие принципиально на работоспособность):
1. Перепутаны местами B и G сигналы на VGA разъеме
2. Неправильно подключены входы мультиплексора IC27 - вообще решается программно, просто в байте биты точек получаются перепутаны между собой
3. Самое главное - в корне неверная сама идея использовать мультиплексор в этом узле. Из-за задержек в регистре IC18 и в мультиплексоре IC27 четные и нечетные точки получаются разными. Мне удалось свести разницу к минимуму за счет использования более медленного мультиплексора (серия ALS вместо F), но это неправильный подход. Уже придумал, как вместо этих двух микросхем использовать всего одну (ИР13), при этом точки получаются идентичными, так как схема уже синхронная.
Update:
4. Забыл еще один нюанс - вывод 1 IC16 вместо питания нужно подключить к выводу 2 этой же микросхемы. Это решает ранее упомянутую проблему отсутствия первых двух точек в каждой строке.
На данной схеме, как уже говорил, есть некоторые ошибки (не влияющие принципиально на работоспособность):
1. Перепутаны местами B и G сигналы на VGA разъеме
2. Неправильно подключены входы мультиплексора IC27 - вообще решается программно, просто в байте биты точек получаются перепутаны между собой
3. Самое главное - в корне неверная сама идея использовать мультиплексор в этом узле. Из-за задержек в регистре IC18 и в мультиплексоре IC27 четные и нечетные точки получаются разными. Мне удалось свести разницу к минимуму за счет использования более медленного мультиплексора (серия ALS вместо F), но это неправильный подход. Уже придумал, как вместо этих двух микросхем использовать всего одну (ИР13), при этом точки получаются идентичными, так как схема уже синхронная.
Update:
4. Забыл еще один нюанс - вывод 1 IC16 вместо питания нужно подключить к выводу 2 этой же микросхемы. Это решает ранее упомянутую проблему отсутствия первых двух точек в каждой строке.
You do not have the required permissions to view the files attached to this post.
Last edited by newold86 on 21 Jan 2016 10:41, edited 1 time in total.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: PC1-88 - одноплатный компьютер на 8088
Зачет! Это однозначно пять с плюсом и больше. Афтор - бог . Хотя бы по тому, что у него нашлось время это сделать. Восхищаюсь! Горжусь! И просто рад за человека.
А если просто - молодец. Радуюсь, что есть еще такие люди. Я думал, уже никто не знает и не помнит, а смотри-ка!
Вы - сделали мой день! Так держать!
А если просто - молодец. Радуюсь, что есть еще такие люди. Я думал, уже никто не знает и не помнит, а смотри-ка!
Вы - сделали мой день! Так держать!