Хочу написать свой эмулятор ПК-01 Львов на Delphi

Все об эмуляции ПК-01 "Львов" на современных платформах
Post Reply
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

Хочу написать эмулятор ПК-01 Львов на Delphi.
За основу взять представленный на сайте код написанный на javascript, можно ?
чисто попробовать свои силы. :roll:

зы. потом (в случае успеха :) ) попробую портировать на коммуникаторы под windows mobile 6.5
User avatar
Zelya
Site Admin
Posts: 1071
Joined: 24 Jul 2008, 12:05

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by Zelya »

MARAT_BEST

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

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

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

Паблик-репозиторий будете делать?
Carthago delenda est, Carthaginem delendam esse
User avatar
Zelya
Site Admin
Posts: 1071
Joined: 24 Jul 2008, 12:05

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by Zelya »

liberation

Простите! Забыл откуда... Просто я накачал кучу разных javascript реализаций проца, а потом выбрал самый удобный. Кстати, там была бага в одной из функций :(.
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

Zelya wrote:MARAT_BEST

Код процентов на 50% Владимира Калашникова, еще где-то на 25% натыренный по всяким свалкам, и процентов на 25% мой. Думаю, никто с Вами судиться не будет. А я, даже наоборот, буду очень-очень рад!
если что вопросы сюда можно постить ?
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

liberation wrote: Паблик-репозиторий будете делать?
это как простите?
User avatar
Zelya
Site Admin
Posts: 1071
Joined: 24 Jul 2008, 12:05

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by Zelya »

MARAT_BEST

Вопросы постить - нужно. Паблик репозиторий, это место, откуда можно стянуть сорсы.
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

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

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

Zelya wrote:MARAT_BEST

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

ps. надеюсь заработает :roll:
User avatar
Zelya
Site Admin
Posts: 1071
Joined: 24 Jul 2008, 12:05

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by Zelya »

MARAT_BEST wrote:memory: массив от 0 до 65535 вся память пк я так понимаю значение byte (0-255)
video : 0..? сколько
ports : 0..256 byte ?
dirty : это для звуков ?
bios : 0..?
Видео - 16К; порты - байты; dirty - рудимент; биос - грузится из файла в верхние 16К памяти.
sadfsdfsdaf
Posts: 227
Joined: 07 Dec 2010, 16:54

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by sadfsdfsdaf »

MARAT_BEST wrote: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.
sadfsdfsdaf
Posts: 227
Joined: 07 Dec 2010, 16:54

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by sadfsdfsdaf »

liberation wrote:Эмуляция проца i8080A утянута с эмулятора Радио-86РК Алекса Дёмина, а не на свалке.
всё-таки судя по коду страницы эмуляция процессора там базируется на исходниках от моего эмулятора, а не Алекса, а потому вопрос:
Zelya wrote:Простите! Забыл откуда... Просто я накачал кучу разных javascript реализаций проца, а потом выбрал самый удобный. Кстати, там была бага в одной из функций :(.
в каком месте была ошибка?
User avatar
Zelya
Site Admin
Posts: 1071
Joined: 24 Jul 2008, 12:05

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by Zelya »

sadfsdfsdaf

Нет, эмуляция процессора именно не Ваша (автозамена по некоторым названиям) и когда я "ремонтировал" багу, использовал Ваши сорсы.
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

Доброго времени суток !!!
переделал кучу кода с javascript (язык все больше начинает нравиться своей простотой)
на данный момент два вопроса
1. почему то не совпадает значения после процедуры (разбираюсь)
i8080_do_opcodes(20000000);
2. реализация вывода на экран
Attachments
Снимок2.JPG
Снимок2.JPG (26.29 KiB) Viewed 14034 times
Снимок.JPG
Снимок.JPG (22.03 KiB) Viewed 14034 times
Last edited by MARAT_BEST on 17 Sep 2012, 03:19, edited 1 time in total.
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

Интересует как работает данный код

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);
imgd = ctx.getImageData(0,0,256,256);
зачем считывать данные с области ?
в идеале я так понимаю нужно считать Byte из массива видео, преобразовать его в 4 точки(по цветам) и вывести на экран ? (вот тут я уже забыл как это делалось на львове)
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests