Именно так для начала и хочется, цель: не переделывать целевой софт (только сам рамфос подправить немного, а точнее его DOS часть).
Вид для печати
Одобрямс.
Было бы здорово, если бы ты еще скомпоновал универсальный драйвер для SD-интерфейса. Типа, вызов функций инита, чтения сектора, запись сектора.
Аналогично тому, что сделал Error404 для интерфейсов MSX & N8M, и Savelij для Z-controller'a.
Я маленько подправил видеогенератор, сделал вместо 640*480 более понятный мониторам режим 800*600. А то забодало после СкорпЭвы настраивать моник под СпецаFPGA.
Я тут бегло проанализировал RAMFOS, оказалось, он поддерживает до 16 страниц дополнительного ОЗУ (номер страницы AND'ится с 0FH перед вызовом шлюза, но думаю эту цифру можно "расширить" до 128, т.е. по маске 7FH, старший бит - это признак обращения к ROM). Возможно, и до 16 страниц ROM, но тут я не вникал. Даже с поддержкой дисковода, столько страниц ПЗУ не нужно, а вот ОЗУ интересно...
Можно. Единственное, нужно ТЗ: адреса "посадки", рабочий адрес (если он будет куда-то копироваться перед работой) и прочие желаемые мелочи.
Вернее 27 (RAMFOS+ROM-disk) + 6 (Монитор-2) + 2 (Тест_МХ) + 2 (Тест_М).
Первую цифру я хочу сделать как 16 (RAMFOS) + 32 (ROM-disk). Но одновременно в работе участвует только одно "ПЗУ", переключаемое кнопками Num Lock(MX/STD) и Scroll Lock/Home(Test on/off).
HardWareMan, как приспособить твой лоадер под МХ? Что в нём переделать? Если что у меня есть весь исходник...;). Кстати вот с помощью твоих тестовых подпрограмм нарисовал данный пример коммандера, ты ж мечтал воплотить что-то подобное в жизнь? У тебя ещё нет подпрограмм опроса клавиатуры и ввода символа.
Ewgeny7, на твой вопрос по клавиатуре Специалиста_МХ отвечаю картинкой раскладки, взятой из брошюры по RAMFOSу.
http://www.spetsialist-mx.ru/images/Keyboard3.png
Если я правильно догадываюсь, то АР2 и КОИ как раз и "добавляют" ту самую двойку.
На F2(КОИ) в рамфосе как раз переключаются раскладки знакогенератора.
Надо бы в модуле клавы сделать переключение на другую раскладку при mode=1...
---------- Post added at 19:35 ---------- Previous post was at 19:33 ----------
У нас есть еще 128кб неиспользуемого ОЗУ, которую можно использовать как ПЗУ. Только туда нужно будет заливать образы из SD.
---------- Post added at 20:00 ---------- Previous post was at 19:35 ----------
Со структурой ромдиска разобрался. Фигня, по сравнению с ромдиском Скорпиона это детский сад :)
Предлагаю по любому разбить наш бинарник с рамфосом и ромдиском именно на отдельные рамфос 16кб и отдельный ромдиск 16кб. Чем сейчас и займусь.
Сделаю. Нужно сейчас чётко проштудировать все клавиши, может ещё какие-нибудь кроме функциональных в STD и МХ разные.
Считай нету. Последний Специалист_МХ имел 64 * 8 = 512 кБайт RAM-диска. В реальной железке я не знаю какую прогу использовали для теста всей памяти. Тест_МХ тестирует только 256 кБайт.:eek:
Адресовались верхние 256 кБайт также как и нижние. Т.е. в выражение:Поставить двоичку вместо единицы и разобраться с А19.Цитата:
page <= dataO (1 downto 0);
А у меня две срамины по 512 кБайт друг на дружку запаяны. Итого - 1 МБайт.
http://www.nedopc.org/forum/viewtopic.php?t=9406 - описаны все известные форматы применимо к Специалисту.
Сделал ромдиск с бесиком_МХ и тетрисом.
Кстати, у нас процик работает на 4 и 8 Мгц :)
Работает?
Неа, 2 и 4.
---------- Post added at 19:36 ---------- Previous post was at 18:14 ----------
Сейчас переделываю селектор адресов, подключаю таймер. Какой программой проверять последний не знаю, через него в МХ должен пойти звук.
---------- Post added at 20:37 ---------- Previous post was at 19:36 ----------
Таймер не подключил, зато исправил драйвер клавиатуры. Теперь в МХ верхний ряд:
АР2 - КОИ - F1 - ... - F8 - СТР
имеет соответствие писишных клавиш:
Ctrl - F11 - F1 - ... - F8 - F12.
Ещё больше возникло препятствие по клавиши Esc. Напомню сейчас на неё повешен сброс. А в Специалисте_МХ лучше на неё повешать АР2, (из описания) - <АР2> - реализует те же функции, что и <СТР>, но преимущественно на более высоком уровне (прерывает, отменяет работу самой программы).
Исходники оформлю и помещу, как всегда на страницу позже.
Всё исходники исправил и опубликовал. См. мой сайт в подписи, далее в нём: ПЛИС, нижняя таблица.
Я внес такие изменения:
Получаем 2 и 8 Мгц соответственно.Код:signal del: std_logic_vector (2 downto 0);
process(clock,del)
begin
if (clock'event and clock = '1') then
if turbo = '1' then
clk_cpu <= del (0); -- "Турбо" режим 8 МГц
else
clk_cpu <= del (2); -- "Нормальный" режим 2 МГц
end if;
end if;
end process;
Ewgeny7, я тут попытался вывести индикатор (на внешней плате у меня распаяны два светодиода) режима РУС/LAT. Это с заделом на ввод русской раскладки. Сделал в драйвере клавы триггер от нажатия клавиши Caps Lock. Светодиод чётко срабатывает, но возникли два косяка:
1. Не крузится система с SD карты в режиме STD - только первоначальная надпись лоадера
2. Зависает тест на первом красном экране в Тесте_МХ.
У тебя такого не было?
В исходниках нововведения закомментированы - вернул чтоб не глючило.
fifan, прямо сейчас взял проект с твоего сайта, фпихнул твои .vhd из архива, скомпилил, залил. Всё четко работает, на любой скорости и в любом режиме...
Держи на всякий случай проект в архиве. Там есть и .sof и .jic. Оба работают прекрасно.
Если "симптомы" останутся (не грузится SD и глючит тест), инвертируй клок на входе модуля SPI:
Код:SD:SPI
port map(
A0 => a_buff (0),
WR => wr_n,
CS => not spi_cs,
MISO => miso,
INSERT => sd_ins,
CLK => not clock,
vlad, там свой драйвер для своей песочницы. Не мешай ребятам развлекаться решая "мировые проблемы" :)
А насчет перевода на VHDL - да, это уберет лишние тормоза и глюки. Но это я оставил "на десерт" :)
Ты ж меня не понял. Кроме вот этих строк, которые нужно раскоментировать, соответственно определения в модулях spetskey:spetskeyboard и SD:SPI.
И соответственно в драйвере клавы все закоментированные включить.Код:--signal ruslat_key: std_logic; -- клавиша "РУС / LAT"
--signal led_red_spi: std_logic; -- светодиод "OPERATE"
--led_red <= led_red_spi when spi_cs = '1' else ruslat_key; -- красный светодиод
Этот то и у меня работает. А вот нововведение - сигнал ruslat от клавиши переключения раскладок при задействовании глючит прога. Но в то же время светодиод вовремя гаснит и включается как надо по нажатию Caps Lock (РУС/LAT).
Изменение в проекте:
работает всё, и карта, и тест. И светодиодики.Код:spetskey:spetskeyboard
port map(
clk => not clock_32,
Пробовал не прокатило. Идея у меня такая. При нажатии РУС/LAT (Caps Lock) включается красный светодиод. Код текущей раскладки опять возвращается в драйвер клавиатуры. Там включается русская раскладка (rus_lat == 1'b1). При повторном нажатии возвращается английская раскладка. Светодиод и клавиши работают, соответствующие буквы выходят на дисплей, но тест RAM-диска в режиме МХ не работает и в режиме STD не грузится система с SD карты.:v2_slee2: Вот проект во вложении.:v2_wink2:
спасибо vlad'y за board!
теперь общие вопросы:
- как я понял - SD обязательна ибо на ней BIOS.BIN,
правильно?
- есть ли по ROMFOS доки , как например с SD работать? ( или просто моя SD не запустилась )
- где можно посмотреть и может помочь с исходниками ( не VHDL - это нашлось , но .bin из roms директории )
что то как то тишо и нет никого :)
у меня с SD даже BIOS.BIN не хочет грузить, u10_spets_fpga_rev36
MBR видит, начинает с BIOS.BIN, потом по правому краю экрана появляется мусор и все...
еще - где лежат если вообще исходники test-m.rom ?
хочется пару старых игрушек запустить, хочу из rom попробывать...
звука тоже можно не ждать?
да, интересует обычный Специалист, не MX....
PS спасибо за появление :) !
Мусор по правому краю - это нормально. Это буфер чтения с карты. Какие-нибудь сообщения показываются при загрузке?
Всё есть на моём сайте, в том числе и упомянутая 36 версия для u10. Я выкладываю последнюю рабочую версию. Напоследок я застопорился на том, что при подключении русской раскладки SPI встает и немного глючил какой-то тест (вроде ROM-диска), но эта версия не выкладывалась.
На счёт игр. Сам компануешь файл bios.bin (не более 12 кБайт) соответственно нужно записать сначала сам монитор, например monitor2_1,2,3.rar и ещё 6 кБайт игрушек. Я так делал - всё работало. Пока только так. Приеду с отдыха допишу драйвер для загрузки bin файлов. Будем под STD игры и программы загружать! Да и переключаемые раскладки тоже хочу сделать. Вернее переключение уже работает, остальное глючит...
ага, у меня bios.bin просто из u10_spets_fpga_rev36/BIOS.BIN 6234байт который,
я может конечно слепой :) но где можно узнать как именно надо собрать/Сам компануешь файл bios.bin ?
пример можно?
и еще - звук стоит ждать?
спасибо!
кстати - еще вопрос - где можно найти исходники всех roms?
которые 10_spets_fpga_rev36\roms
Пока есть время до прихода новых плат Специалиста_МХ2, снова решил покопаться с кодом. Последний раз у меня при переключении раскладок клавиатуры РУС/LAT глучил SD драйвер и какой-то тест не работал.
Так. Посмотрел работу своей u10. Тест RAM-диска и сама оболочка RAMFOSа не пашет. Раскладка русская/латинская работает. Буду смотреть из-за чего так в проекте.