PC-01 Lviv

It is currently 19 Mar 2024, 05:52

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 215 posts ]  Go to page 1 2 3 4 515 Next
Author Message
PostPosted: 14 Sep 2012, 12:02 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Хочу написать эмулятор ПК-01 Львов на Delphi.
За основу взять представленный на сайте код написанный на javascript, можно ?
чисто попробовать свои силы. :roll:

зы. потом (в случае успеха :) ) попробую портировать на коммуникаторы под windows mobile 6.5


Top
   
PostPosted: 14 Sep 2012, 12:05 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
MARAT_BEST

Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад!


Top
   
PostPosted: 14 Sep 2012, 13:06 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад!
Эмуляция проца i8080A утянута с эмулятора Радио-86РК Алекса Дёмина, а не на свалке.

Паблик-репозиторий будете делать?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 14 Sep 2012, 13:20 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
liberation

Простите! Забыл откуда... Просто я накачал кучу разных javascript реализаций проца, а потом выбрал самый удобный. Кстати, там была бага в одной из функций :(.


Top
   
PostPosted: 14 Sep 2012, 14:11 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
MARAT_BEST

Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад!
если что вопросы сюда можно постить ?


Top
   
PostPosted: 14 Sep 2012, 14:31 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
Паблик-репозиторий будете делать?
это как простите?


Top
   
PostPosted: 14 Sep 2012, 14:34 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
MARAT_BEST

Вопросы постить - нужно. Паблик репозиторий, это место, откуда можно стянуть сорсы.


Top
   
PostPosted: 14 Sep 2012, 14:37 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
memory: массив от 0 до 65535 вся память пк я так понимаю значение byte (0-255)
video : 0..? сколько
ports : 0..256 byte ?
dirty : это для звуков ?
bios : 0..?


Top
   
PostPosted: 14 Sep 2012, 14:39 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
MARAT_BEST

Вопросы постить - нужно. Паблик репозиторий, это место, откуда можно стянуть сорсы.
понял спасибо.
сорсы обязательно размещу !

ps. надеюсь заработает :roll:


Top
   
PostPosted: 14 Sep 2012, 14:49 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Quote:
memory: массив от 0 до 65535 вся память пк я так понимаю значение byte (0-255)
video : 0..? сколько
ports : 0..256 byte ?
dirty : это для звуков ?
bios : 0..?
Видео - 16К; порты - байты; dirty - рудимент; биос - грузится из файла в верхние 16К памяти.


Top
   
PostPosted: 15 Sep 2012, 00:11 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
dirty : это для звуков ?
Ну, если в основе фрагменты моего кода, то это оптимизация вывода на экран. При заполнении видеопамяти взводятся флаги "грязных" (изменённых) строк, их будет 256, по количеству линий на экране. Дальше на момент вывода картинки можно проверять эти флаги и выводить только изменённые строки (они у меня дополнительно агрегировались в блоки, правда ситуацию черезстрочного растра я не проверял - патологический случай true, false, true, false, true, false .... наверное это будет тормозить по сравнению с разовым выводом всего массива на экран), благо bitblit быстр для целых строк изображения (и тормозит при выводе произвольных прямогугольников, поэтому я не заморачивался с поиском изменённых двумерных блоков). Не знаю, насколько это сейчас актуально, а тогда на P120 получалось практически реальное время работы, особенно если экран слабо изменялся.


Last edited by sadfsdfsdaf on 15 Sep 2012, 00:22, edited 1 time in total.

Top
   
PostPosted: 15 Sep 2012, 00:21 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Эмуляция проца i8080A утянута с эмулятора Радио-86РК Алекса Дёмина, а не на свалке.
всё-таки судя по коду страницы эмуляция процессора там базируется на исходниках от моего эмулятора, а не Алекса, а потому вопрос:
Quote:
Простите! Забыл откуда... Просто я накачал кучу разных javascript реализаций проца, а потом выбрал самый удобный. Кстати, там была бага в одной из функций :(.
в каком месте была ошибка?


Top
   
PostPosted: 15 Sep 2012, 12:02 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
sadfsdfsdaf

Нет, эмуляция процессора именно не Ваша (автозамена по некоторым названиям) и когда я "ремонтировал" багу, использовал Ваши сорсы.


Top
   
PostPosted: 17 Sep 2012, 03:09 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Доброго времени суток !!!
переделал кучу кода с javascript (язык все больше начинает нравиться своей простотой)
на данный момент два вопроса
1. почему то не совпадает значения после процедуры (разбираюсь)
i8080_do_opcodes(20000000);
2. реализация вывода на экран


Attachments:
Снимок2.JPG
Снимок2.JPG [ 26.29 KiB | Viewed 8988 times ]
Снимок.JPG
Снимок.JPG [ 22.03 KiB | Viewed 8988 times ]


Last edited by MARAT_BEST on 17 Sep 2012, 03:19, edited 1 time in total.
Top
   
PostPosted: 17 Sep 2012, 03:19 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Интересует как работает данный код
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 точки(по цветам) и вывести на экран ? (вот тут я уже забыл как это делалось на львове)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 215 posts ]  Go to page 1 2 3 4 515 Next

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited