ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А в чём она заключается, а то я подумал грешить на плисину...
---------- Post added at 19:16 ---------- Previous post was at 18:58 ----------
Мысли по вводу режима №3 по опросу клавиатуры:
переменную metod расширить до трёх значений:
1. =0 - метод №0 (вновь вводимый). инициализируется плисина в это значение. При считывании портов ВВ55, если ранее не был режим 1 или 2 (см. ниже), значения битов всех портов А,В и С присваиваиваются в зависимости от нажатой клавиши (spetskeyboard.v). Конкретнее в этом коде должны быть два нуля, соответствующие нажатой клавише. Этот ответный код записывается сразу в porta, portb и portc.
2. =1 - метод №1 (ранее был =0). порты а и с выводят бегущий ноль, порт в вводит ответный код.
3. =2 - метод №2 (ранее был =1). порт в выводит бегущий ноль, порты а и с вводят ответный код.
Реализацию кода планирую в драйвере клавиатуры (spetskeyboard.v) - основная часть и в основной программе. Пока обдумываю конкретнее как вставить в программу хотелки.
---------- Post added at 19:28 ---------- Previous post was at 19:16 ----------
Вот реализация переключения скорости работы процессора - Turbo/Normal - 4 и 2 МГц соответственно (клавиши Page Up и Page Down):
Измененный файл spetskeyboard.v представлю позже.Код:signal turbo_key: std_logic; -- клавиша "Турбо" signal turbo: std_logic:= '0'; -- скорость: 4 МГц / 2 МГц ... component spetskeyboard is -- контроллер клавиатуры port( ... turbo_k : out std_logic -- нажата клавиша "Турбо" ); end component; ... turbo <= '1' when turbo_key = '1' else '0'; -- скорость: 4 МГц / 2 МГц ... process(clock,del,turbo) begin if (clock'event and clock = '1') then if turbo = '1' then clk_cpu <= del (0); -- Turbo режим 4 МГц else clk_cpu <= not del (1); -- Normal режим 2 МГц end if; end if; end process;
Последний раз редактировалось fifan; 25.10.2010 в 17:19.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Понятно. Просто заменить на: clock=> not clock,
И не получим ничего, кроме черного экрана. Адреса не успеют обновиться, строб записи не зафиксируется.
Для ОЗУ в ПЛИС нужна частота в разы большая чем пиксельклок.
В общем, переделал я. Для подстраховки хочу еще сделать и второй вариант, с размещением цветного ОЗУ в основной (внешней) памяти. Проверишь на работе оба варианта.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Ну что, готово?
Первый вариант (с внутренней ОЗУ) давно готов. Домучиваю вариант с внешней ОЗУ.
---------- Post added at 20:10 ---------- Previous post was at 20:07 ----------
10 минут и будет готово.
---------- Post added at 20:10 ---------- Previous post was at 20:10 ----------
10 минут и будет готово.
---------- Post added at 20:20 ---------- Previous post was at 20:10 ----------
Оба варианта.
Прошивки уже скомпилены, залей их без компиляции.![]()
http://narod.ru/disk/26546676000/ext..._spec.rar.html
http://narod.ru/disk/26546698000/int..._spec.rar.html
---------- Post added at 20:23 ---------- Previous post was at 20:20 ----------
Турбопереключалки внедрены.
---------- Post added at 20:23 ---------- Previous post was at 20:23 ----------
Турбопереключалки внедрены.
---------- Post added at 20:24 ---------- Previous post was at 20:23 ----------
Форум глючит
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Да форум глючит.Тут во нашёл ошибку в драйвере клавиатуры. Во втором методе при опросе порта В возвращается код с портов А и С. Подчёркиваю и. Значит код ответа должен состоять из 8 + 4 битов. А у тебя стоит scan_out (7 downto 0) и scan_out (3 downto 0) соответственно записываются в порты А и С. Должно быть во втором случае быть такое:
Код:dataI <= "0000" & scan_out (11 downto 8);
Т.е. порту а присваиваются младшие 8 бит, порту с - старшие 4 бита переменной scan_out. По крайней мере в драйвере клавиатуры вырабатываются 12 бит кода ответа.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Ты наверное так сделал в драйвере клавиатуры для отладки (твоё закомментировал):
Ладно пошел спать (твоё московское время +2 будет моё). Завтра прошью две прошивки.Код:case (sp_kb_scan) 12'b111111111110: col <= 4'b0101; 12'b111111111101: col <= 4'b0100; 12'b111111111011: col <= 4'b0011; 12'b111111110111: col <= 4'b0010; 12'b111111101111: col <= 4'b0001; 12'b111111011111: col <= 4'b0000; default: col <= 4'b1111; endcase // sp_kb_out_ <= { 6'b111111 & ~keymatrixb[col]}; sp_kb_out_ <= ~keymatrixb[col]; end // if (col == 4'b1111) sp_kb_out_ <= 12'b111111111111; end
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)