Реальный 8086/88 + FPGA

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

Moderator: Shaos

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

Post by newold86 »

К сожалению, за пару недель удалось выделить буквально несколько часов на проект, поэтому получилось намного меньше, чем хотел :(

Так как добиться устойчивой работы самонаправляющихся согласователей уровня быстро не удалось, решил вернуться к истокам и использовать уже опробованные 8T245. Скрепя сердце, поставил защелку на адрес для упрощения управления направлением передачи, а также решил запустить процессор в максимальном режиме (на случай, если соберусь двигаться дальше). На выходе получилось вот такое творение:

Image

К отладочной плате подключается двумя шлейфами:

Image

Как уже говорил, времени было в обрез, поэтому пока сделано только:

- 640К оперативной памяти, начиная с 0

- 48К ROM в самом верху адресного пространства

- таймер, тикающий 18.2 раза в секунду (стандартно для IBM PC) и вызывающий прерывание INT 08, которое можно разрешать/запрещать записью в управляющий регистр

- аппаратный интерфейс (моя гордость :) ) SPI для записи/чтения байта SD-карты. После операции чтения/записи выставляется бит готовности, который можно либо ждать в цикле, либо он может вызывать прерывание INT 0E (управление через управляющий регистр)

- после сброса система читает нулевой сектор SD карты, грузит в память и передает на него управление

Клавиатуру сделать не успел

Зато буквально сейчас, когда писал это сообщение, вдруг сообразил, почему не запускался видеоконтроллер (ранее даже близко ничего подобного не пытался сделать), проверил идею и получил результат:

Image

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

Только вот пока не уверен, останется ли еще энтузиазм - вроде что-то заработало, сложно теперь себя мотивировать :)
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

newold86 wrote: (пока даже не могу нормально раззнести обращение к памяти - процессор мешает выводу на экран при записи)
В оригинальном CGA вроде как тоже на это забили, то есть, можно забить. Да будет снег, зима же.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Mixa64 wrote:В оригинальном CGA вроде как тоже на это забили, то есть, можно забить.
Не сказать, чтобы так уж и забили, эту проблему вполне себе успешно решали корректным программированием.
Читали Регистр состояния (Input Status Register - ISR0) и отслеживали интервал, когда обращение к видеопамяти
не вызовет "снега" на экране - во время обратного хода луча.

Программирование видеоадаптеров CGA, EGA и VGA
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Пока решил не сильно озадачиваться этим вопросом. А чтобы мое чувство прекрасного не страдало, просто в качестве видеобуфера использую двухпортовую RAM, которую сгенерил Quartus, с ней таких проблем нет. Одним портом пользуется процессор, вторым - адаптер. А как они между собой внутри памяти разбираются, один Quartus знает...

Сейчас меня больше волнует другое - по каким-то непонятным причинам процессор довольно сильно греется (палец почти невозможно держать). Перепробовал все, что можно - ничего не меняется. Причем на макетке вроде такого не наблюдается (намного в меньшей степени)...
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

Stan wrote: вполне себе успешно решали корректным программированием.
Это и называется забили.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Mixa64 wrote:
Stan wrote: вполне себе успешно решали корректным программированием.
Это и называется забили.
Видимо, только у Вас это так называется, а у всех остальных - "особенности прямого отображени в видеобуфер видеоадаптера CGA".
При выводе на экран через процедуры BIOS никакого "снега" не наблюдалось.
Если бы "забили" - то так бы и смотрели все на "снег".
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Post by Tronix »

Mixa64 wrote:
Stan wrote: вполне себе успешно решали корректным программированием.
Это и называется забили.
Не было такого, снег боролся программно. Забить сейчас можно когда что-то не понравилось в этом арме, взял, перешел на другой от другого производителя. Или вообще на пике сделал, или вообще на авр, или вообще на техасах или на чем там еще - тыщи их (микроконтроллеров). Раньше - было строго: 1) 2) 3) и возможно с некоторой натяжкой 4) и все. Выбирай люлой из 4, но не забывай что каждый по своему ущербен.

PS: Автору респект. Вот могут люди, когда захотят. Год мусолилась тема, бла бла, бла бла, а потом раз - и два автора взяли и завели проц. Я то нуб, в электронике, процах и тд, но впитываю каждый пост. Возможно и созрею для самостоятельной сборки. Это хорошо, когда старшее поколение передает хоть часть информации младшему. Мы сейчас многого не понимаем, но мы хотим учится. Нам нужна точка опоры, и вы, ее даете. А на остальных форумах, когда речь заходит о советской элементарной базе или что-то вроде этого, единственное что можно услышать - выкинь и возьми плис. Но нам нужны основы. Как можно проектировать и создавать новое, когда ты не знаешь самых банальных вещей? Спасибо большое автору за этот топик, а еще лучше - схему бы. И хочется пожелать - не бросать. Знаю, кажется - никому нафиг не нужно, а сам уже все понял давно, но знайте - хотя бы один человек (я) очень пристально следит за дальнейшим развитием.
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

Забили, забили :) Не хотелось думать, подперли программным костылем, в ущерб производительности, ну и элегантности тоже. Говорю так, потому что в свое время делал. Это несложно.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

Mixa64 wrote:Забили, забили :)
Мне думается, это они на Вас забили, раз уж Вы с таким упорством повторяете эту глупость.
Адаптер CGA всем известен при всех его особенностях, а вот что Вы там "свое время делали" (или не делали) никому не известно.

Фигня, короче говоря, как говорит наш админ... :wink:
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Ну можно так сказать - забили железячники ради удешевления железяки, а программисты подставили костыль, выдумав "особенности прямого отображения..."
Я тут за главного - если что шлите мыло на me собака shaos точка net
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

Tronix wrote:... а еще лучше - схему бы.
Мне не жаль, но в каком виде ? Это дикая смесь схемы в Eagle, схемного дизайна в Quartus и кусочков VHDL. Да еще на данном этапе с заплатами везде, где только можно и нельзя. Даже не совсем понятно, как все это выложить.

Наверное, проще задать вопросы, если что-то конкретное интересует.
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

newold86 wrote:
Tronix wrote:... а еще лучше - схему бы.
Мне не жаль, но в каком виде ? Это дикая смесь схемы в Eagle, схемного дизайна в Quartus и кусочков VHDL. Да еще на данном этапе с заплатами везде, где только можно и нельзя. Даже не совсем понятно, как все это выложить.

Наверное, проще задать вопросы, если что-то конкретное интересует.
Это да. В давние времена схема напрямую отражала идею, посмотрел - и все понятно. Сейчас схема про идею ничего сразу не скажет, тем более многое уже и не схема.

ОЗУ, ПЗУ и видеопамять физически где?

P.S. ЛА3 прикольная. Микроновская, 2003 гв, и треугольник шлепнули, типа статики боится. :)
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Post by newold86 »

ОЗУ - SRAM на отладочной плате

BIOS ROM и видео RAM - сгенерированные внутри FPGA специализированными функциями Altera. BIOS - чтобы не возиться с перепрошивкой после каждого изменения. Видео - как уже говорил, пока просто сгенерировал двухпортовое ОЗУ, чтобы не возиться с разделением доступа между процессором и видеоадаптером.

font ROM - в виде VHDL, что позволяет корректировать фонт прямо текстовым редактором
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Ну можно так сказать - забили железячники ради удешевления железяки
Вот это ближе к истине, только ничего они не забили, а приняли оптимальное на тот момент решение по соотношению цена-качество.

А то так можно сказать, что авторы "РК-86" и вовсе на всех забили, и видеоконтроллер в их исполнении практически мешает процессору работать.

Но ведь всем ясно, что это не так, а просто ряд не самых удачных с точки зрения пользователя схемотехнических решений был ими принят для упрощения и удешевления конструкции.

Но если посмотреть на "РК-86" с точки зрения конструкции "Специалиста" с его прозрачной регенерацией и доступом в видео-ОЗУ, так можно сказать, что "РК-86" - костыль на костыле... :wink:

Да и CGA-адаптер с этой точки зрения - полная фигня.
iLavr
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Post by Mixa64 »

Lavr wrote:
Shaos wrote:Ну можно так сказать - забили железячники ради удешевления железяки
Вот это ближе к истине, только ничего они не забили, а приняли оптимальное на тот момент решение по соотношению цена-качество.
Вы схему оригинального CGA смотрели, анализировали?
Бывают решения компромиссные, вынужденные, а бывают нелепые, как будто бы второпях делали или студенту поручили.
Хотя, может быть, во "второпях" и скрыта оптимальность, не спорю.