PC-01 Lviv http://pc01.lviv.ua/forum/ |
|
Хочу написать свой эмулятор ПК-01 Львов на Delphi http://pc01.lviv.ua/forum/viewtopic.php?f=12&t=193 |
Page 1 of 15 |
Author: | MARAT_BEST [ 14 Sep 2012, 12:02 ] |
Post subject: | Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Хочу написать эмулятор ПК-01 Львов на Delphi. За основу взять представленный на сайте код написанный на javascript, можно ? чисто попробовать свои силы. зы. потом (в случае успеха ) попробую портировать на коммуникаторы под windows mobile 6.5 |
Author: | Zelya [ 14 Sep 2012, 12:05 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
MARAT_BEST Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад! |
Author: | liberation [ 14 Sep 2012, 13:06 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Quote: Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад!
Эмуляция проца i8080A утянута с эмулятора Радио-86РК Алекса Дёмина, а не на свалке.Паблик-репозиторий будете делать? |
Author: | Zelya [ 14 Sep 2012, 13:20 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
liberation Простите! Забыл откуда... Просто я накачал кучу разных javascript реализаций проца, а потом выбрал самый удобный. Кстати, там была бага в одной из функций . |
Author: | MARAT_BEST [ 14 Sep 2012, 14:11 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Quote: MARAT_BEST
если что вопросы сюда можно постить ?
Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад! |
Author: | MARAT_BEST [ 14 Sep 2012, 14:31 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Quote:
Паблик-репозиторий будете делать?
это как простите?
|
Author: | Zelya [ 14 Sep 2012, 14:34 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
MARAT_BEST Вопросы постить - нужно. Паблик репозиторий, это место, откуда можно стянуть сорсы. |
Author: | MARAT_BEST [ 14 Sep 2012, 14:37 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
memory: массив от 0 до 65535 вся память пк я так понимаю значение byte (0-255) video : 0..? сколько ports : 0..256 byte ? dirty : это для звуков ? bios : 0..? |
Author: | MARAT_BEST [ 14 Sep 2012, 14:39 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Quote: MARAT_BEST
понял спасибо.Вопросы постить - нужно. Паблик репозиторий, это место, откуда можно стянуть сорсы. сорсы обязательно размещу ! ps. надеюсь заработает |
Author: | Zelya [ 14 Sep 2012, 14:49 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Quote: memory: массив от 0 до 65535 вся память пк я так понимаю значение byte (0-255)
Видео - 16К; порты - байты; dirty - рудимент; биос - грузится из файла в верхние 16К памяти.
video : 0..? сколько ports : 0..256 byte ? dirty : это для звуков ? bios : 0..? |
Author: | sadfsdfsdaf [ 15 Sep 2012, 00:11 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Quote: dirty : это для звуков ?
Ну, если в основе фрагменты моего кода, то это оптимизация вывода на экран. При заполнении видеопамяти взводятся флаги "грязных" (изменённых) строк, их будет 256, по количеству линий на экране. Дальше на момент вывода картинки можно проверять эти флаги и выводить только изменённые строки (они у меня дополнительно агрегировались в блоки, правда ситуацию черезстрочного растра я не проверял - патологический случай true, false, true, false, true, false .... наверное это будет тормозить по сравнению с разовым выводом всего массива на экран), благо bitblit быстр для целых строк изображения (и тормозит при выводе произвольных прямогугольников, поэтому я не заморачивался с поиском изменённых двумерных блоков). Не знаю, насколько это сейчас актуально, а тогда на P120 получалось практически реальное время работы, особенно если экран слабо изменялся.
|
Author: | sadfsdfsdaf [ 15 Sep 2012, 00:21 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Quote: Эмуляция проца i8080A утянута с эмулятора Радио-86РК Алекса Дёмина, а не на свалке. всё-таки судя по коду страницы эмуляция процессора там базируется на исходниках от моего эмулятора, а не Алекса, а потому вопрос:
Quote: Простите! Забыл откуда... Просто я накачал кучу разных javascript реализаций проца, а потом выбрал самый удобный. Кстати, там была бага в одной из функций . в каком месте была ошибка?
|
Author: | Zelya [ 15 Sep 2012, 12:02 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
sadfsdfsdaf Нет, эмуляция процессора именно не Ваша (автозамена по некоторым названиям) и когда я "ремонтировал" багу, использовал Ваши сорсы. |
Author: | MARAT_BEST [ 17 Sep 2012, 03:09 ] | |||
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi | |||
Доброго времени суток !!! переделал кучу кода с javascript (язык все больше начинает нравиться своей простотой) на данный момент два вопроса 1. почему то не совпадает значения после процедуры (разбираюсь) i8080_do_opcodes(20000000); 2. реализация вывода на экран
|
Author: | MARAT_BEST [ 17 Sep 2012, 03:19 ] |
Post subject: | Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi |
Интересует как работает данный код Code: 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);imgd = ctx.getImageData(0,0,256,256); зачем считывать данные с области ? в идеале я так понимаю нужно считать Byte из массива видео, преобразовать его в 4 точки(по цветам) и вывести на экран ? (вот тут я уже забыл как это делалось на львове) |
Page 1 of 15 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |