За основу взять представленный на сайте код написанный на javascript, можно ?
чисто попробовать свои силы.
зы. потом (в случае успеха
Эмуляция проца i8080A утянута с эмулятора Радио-86РК Алекса Дёмина, а не на свалке.Zelya wrote:Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад!
если что вопросы сюда можно постить ?Zelya wrote:MARAT_BEST
Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад!
это как простите?liberation wrote: Паблик-репозиторий будете делать?
понял спасибо.Zelya wrote:MARAT_BEST
Вопросы постить - нужно. Паблик репозиторий, это место, откуда можно стянуть сорсы.
Видео - 16К; порты - байты; dirty - рудимент; биос - грузится из файла в верхние 16К памяти.MARAT_BEST wrote:memory: массив от 0 до 65535 вся память пк я так понимаю значение byte (0-255)
video : 0..? сколько
ports : 0..256 byte ?
dirty : это для звуков ?
bios : 0..?
Ну, если в основе фрагменты моего кода, то это оптимизация вывода на экран. При заполнении видеопамяти взводятся флаги "грязных" (изменённых) строк, их будет 256, по количеству линий на экране. Дальше на момент вывода картинки можно проверять эти флаги и выводить только изменённые строки (они у меня дополнительно агрегировались в блоки, правда ситуацию черезстрочного растра я не проверял - патологический случай true, false, true, false, true, false .... наверное это будет тормозить по сравнению с разовым выводом всего массива на экран), благо bitblit быстр для целых строк изображения (и тормозит при выводе произвольных прямогугольников, поэтому я не заморачивался с поиском изменённых двумерных блоков). Не знаю, насколько это сейчас актуально, а тогда на P120 получалось практически реальное время работы, особенно если экран слабо изменялся.MARAT_BEST wrote:dirty : это для звуков ?
всё-таки судя по коду страницы эмуляция процессора там базируется на исходниках от моего эмулятора, а не Алекса, а потому вопрос:liberation wrote:Эмуляция проца i8080A утянута с эмулятора Радио-86РК Алекса Дёмина, а не на свалке.
в каком месте была ошибка?Zelya wrote:Простите! Забыл откуда... Просто я накачал кучу разных javascript реализаций проца, а потом выбрал самый удобный. Кстати, там была бага в одной из функций.
Code: Select all
var imgd = ctx.getImageData(0,0,256,256);
var pix = imgd.data;
for (var i = 0; i < video.length; i ++) {
var iCol = ParseColor(video[i]);
for (var j = 0; j < 4; j++)
{
var iNum = compute_color_index(ports[0xC1], iCol[3-j]%4);
var pos = i*16 + j*4;
put_pixel(iNum, pix, pos);
}
}
ctx.putImageData(imgd, 0, 0);
if (BigScreen)
ctx2.drawImage(canvas ,0,0,768,512);
else
ctx2.drawImage(canvas,0,0);Users browsing this forum: No registered users and 0 guests