Регенерацией в Спектруме "занимается" видеоадаптер, причём опять же абсолютно бесплатно (по времени, разумеется). :)
64к - 24 раза за экран, мегабайт 6 раз.
Вид для печати
Я с SRAM(8-бит). А DRAM – веселая штука. Ух.
- - - Добавлено - - -
Хотя скоро придется (86г), DRAM.
Уснул:)
Они же стробы мультиплексоров адреса и видео и клок для процессора
Циклическое последовательное чтение
Это да, но "оно" же и экономит пины. (кстати, забавные ПЗУ-шки с мультиплексированным адресом тоже есть)))
Ради прикола сделал чтение порта FE
В менюшке 128 весело нажимается клавиша "ВНИЗ", значит всё работает, так что ядро полностью готово! Останется разве что подкорректировать немного /INT при прогоне программ его проверяющих :) сейчас сделал по первой строке экрана, но это вроде не совсем корректно.Код:wire port_rd_req = rd_n | iorq_n;
reg p_wr_fe_sel = 0;
reg p_wr_7ffd_sel = 0;
reg p_wr_1ffd_sel = 0;
// writing ports data (port read by CPU)
always @(negedge port_rd_req or posedge iorq_n)
if(!port_rd_req)
casex({DOS,a[15:0]})
/*#FE*/ 'b0XXXXXXXXXXXXXXX0: p_wr_fe_sel <= 1'b1;
/*#1FFD*/ 'b0000XXX1XXXXXXX01: p_wr_1ffd_sel <= 1'b1;
/*#7FFD*/ 'b001XXXXXXXXXXXX01: p_wr_7ffd_sel <= 1'b1;
endcase
else
begin
p_wr_fe_sel <= 1'b0;
p_wr_1ffd_sel <= 1'b0;
p_wr_7ffd_sel <= 1'b0;
end
assign dt = p_wr_fe_sel ? (!a[8] ? 8'b11111110 : !a[12] ? 8'b11101111 : 8'b11111111) : 8'bzzzzzzzz;
assign dt = p_wr_7ffd_sel ? p7FFD_data : 8'bzzzzzzzz;
assign dt = p_wr_1ffd_sel ? p1FFD_data : 8'bzzzzzzzz;
Еще один вариант, меньше ячеек занимает
#FF не влазиет увы...Код:// writing ports data (port read by CPU)
wire port_rd_req = rd_n | iorq_n | DOS;
wire p_wr_fe_sel = port_rd_req | a[0];
//wire p_wr_ff_sel = port_rd_req | ~&a[7:0];
wire p_wr_7ffd_sel = port_rd_req | |{a[15:14],a[1]} | ~(a[13] & a[0]);
wire p_wr_1ffd_sel = port_rd_req | |{a[15:13],a[1]} | ~(a[9] & a[0]);
assign dt = !p_wr_fe_sel ? (!a[8] ? 8'b11111110 : !a[12] ? 8'b11101111 : 8'b11111111) : 8'bzzzzzzzz;
assign dt = !p_wr_1ffd_sel ? p1FFD_data : 8'bzzzzzzzz;
assign dt = !p_wr_7ffd_sel ? p7FFD_data : 8'bzzzzzzzz;
//assign dt = !p_wr_ff_sel ? attr : 8'bzzzzzzzz;
Решил, что буду ставить вторую альтеру, в неё запихну DOS и обработку IORQ (под IORQGE) оставшиеся биты порта FE (бипер, тапеаут), так же чтение порта FE, FF и немоIDE, может еще и клавиатуру получится там хотя бы частично сделать и часть BDI. Останется 4 пина в первой альтере, их можно будет задействовать под VGA
/M1 уйдет во вторую, CLK приклею к /RAS, как раз 4 пина будет.
Ну, я как бы уже купил их 20 штук по 100р ))))
И опять же 5 вольт.
Я в свою альтеру уже более 500 раз прошивку заливал, никаких проблем пока что, говорят можно многим более 1000 раз лить, но сокращается срок службы флешки, т.е. количество лет гарантированного хранения информации в ней.
У меня же память 5в, процессор 5в, флеш 5в.... так что с циклоном будет напряжно, шина адреса не проблема, а вот шины данных и переферия... опять же PS2 клавиатура внутри подтянута к 5в...
С прицелом на барахолку? ;)
Так-таки трёхвольтовых нет? )))
Софтовый.
Для тренировок самое то.
2 резистора.
Тут в соседней ветке рекомендуют. :)