PC-01 Lviv

It is currently 29 Apr 2024, 01:28

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 215 posts ]  Go to page Previous 13 4 5 6 715 Next
Author Message
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 11 Jun 2012, 12:16 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Чё Вы там курите?
Да тоже что и ты….
Quote:
Поставьте себя на минутку на место пользователя своего продукта.
Очень хорошо представляю. Точно так же как людей использующих среду дельфи а в ней делают асм вставки…
Quote:
будет забивать себе голову тем, как транслировать синтаксис ассемблера i8080 (с которым он последний раз имел дело лет двадцать назад) в синтаксис Дельфи,
Там забивать себе голову нечем… пиши как на асме только слитно, а данные в скобки. Насколько я знаю и понимаю, что «чистый» асм, и асм-вставки в языки программирования, тоже разной мнемоники, но это тебя почему-то не удивляет…
Quote:
На свете и без всего этого есть прекрасные бесплатные редакторы и целые IDE, которые не менее чудесно позволяют редактировать текст,
Покажи мне хоть один который можно нормально использовать, т.е. так же как мой (еще не написанный)?....
Покажи мне где есть такое как Watch в дельфи?...
Покажи мне где легким движение руки проверяется синтаксис и делается компиляция проги?
Покажи мне где я могу вставить в код вспомагетельные для отработки программы процедуры, пусть даже их нет, дак самому написать, например быструю выгрузку (загрузку) содержимого всего или часть памяти или видеопамяти в нужный момент?...
Покажи мне где есть тип Sprite для работы со страйтами или хотя бы его создать можно, хотя бы в вспомогательных целях?..
Покажи мне где можно этому типу присвоить в нужный момент часть( полность) видеопамяти Львова?...
Конце концов, можно создавать свои целые вспомагательные модули с формой в которой будет вывод параллениый работе программы, всего, что только хош.. - подобное двумя мониторам.. :-) как бывает используют..
Что-то я слабо верю, что где-то такое возможно !
А, ну да… тебя как послушать… это ведь все никому не нужно….
А ты скажи мне, а почему ты вот так само не критикуешь LvivStudio?... Там даже вставив текст и сделав запуск – не запускает, вот и все, и причину НЕзапуска не выдает?!!.. Иль это только у меня так?
А также в LvivStudio все тот же асм и никаких вспомогательных функций и процедур для создания кода, да и пошагово не так как у меня оно и т.д.
Quote:
… Ладно бы, Вы писали транслятор с какого-либо современного высокоуровнего языка в ассемблер i8080, но что мы сейчас видим прелесть: "MVIB(1); MVIA(250);"
А ты думаешь что с «нуля» написать транслятор «без этого» возможно?... – попробуй! Ну и как он будет компилировать то, чего пока в нем не будет?... – нужны будут асм вставки т.е. то, что ты называешь «прелесть: "MVIB(1); MVIA(250)»
Quote:
…goto используется!
Слушай, у тебя какая-то, извини меня, - «тупая критика»… знаешь как по другому?... – Подскажи! А где ты видел, чтобы асм-вставки были без этого?… Да и в дельфи как не «крутили» отказаться от этого т..е. от меток и goto – НЕ СМОГЛИ! Все таки! Вообщем, у тебя, я так понял, критика ради критики …:-)


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 11 Jun 2012, 23:39 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Quote:
Чё Вы там курите?
Да тоже что и ты….
предлагаю продолжить разговор (всем заинтересованным сторонам) после того, как появится программный продукт, а в нём написанная игрушка. срок, скажем, полгода/год. тогда и сравним - что лучше, что хуже :-)


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 12 Jun 2012, 08:17 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
предлагаю продолжить разговор (всем заинтересованным сторонам) после того, как появится программный продукт, а в нём написанная игрушка. срок, скажем, полгода/год. тогда и сравним - что лучше, что хуже :-)
Черновик-программа (типа Демо чтоль...) появится как можно быстрее, постараюсь в течении месяца, над которой можно будет проводить пробы и экперементы хоть какие-то...
Компилятора в черновике пока еще не будет... В черновике будет скорее всего только возможность вывода на экран через видеопамять... Запуск процедур в ПЗУ в черновике?... пока сложно сказать...
Игрушку новую писать внем не буду, так как изначально не умею, а вот для примера "перекочивать" какую нить конечно нужно... скорее всего это будет Пьяный лифтер так как она самая маленькая..:-)
Другие игрушки при желании сами попробуете "перенести", будет утилита ДизПас, которая переведет асм мнемонику в мнемонику пас, а далее флаг в руки... :-)


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 12 Jun 2012, 11:51 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Несего не понимаю… :-)
А почему в одних таблицах КР580, код $CB равен пустоте (прочеркуи или нет команды), а в других равен команде jmp? Нормальный код команды JMP ведь равен $C3.
Такое же и с командой RET = $D9, хотя нормальный код этой команды = $C9…
И в исходниках эмул-ров в одном реализовывается, а вдругом нет?
Как быть? (И вообще - быть или не быть :-)


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 12 Jun 2012, 12:17 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Олег же писал
Quote:
КР580ВМ80А имеет 12 недокументированных команд (аналогично 8080). Опкоды #08, #10, #18, #20, #28, #30, #38 являются аналогами операции NOP; опкод #CB является аналогом JMP; опкоды #DD, #ED, #FD являются аналогами CALL; опкод #D9 является аналогом RET.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 12 Jun 2012, 13:37 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Олег же писал
Отыскал в Инете и опубликовал на форуме отличный материал на тему недокументированных команд i8080 и несовместимостей с Z80. Читайте с удовольствием.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 12 Jun 2012, 14:32 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
А, ну да… тебя как послушать… это ведь все никому не нужно….
А ты скажи мне, а почему ты вот так само не критикуешь LvivStudio?... Там даже вставив текст и сделав запуск – не запускает, вот и все, и причину НЕзапуска не выдает?!!.. Иль это только у меня так?
А также в LvivStudio все тот же асм и никаких вспомогательных функций и процедур для создания кода, да и пошагово не так как у меня оно и т.д.
И хотя Zelya просветил меня касательно некоторых деталей этого проекта, задумка впечатляет, но ответ я все-таки лучше нарисую:

Image

Про Студию замечу, что вокруг нее уже мульён копий сломано. Не первый год в бизнесе. :D

А так, в общем и целом, то через год действительно посмотрим, что получилось. А ВДРУГ?! :shock:

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 12 Jun 2012, 14:35 
Offline

Joined: 29 Mar 2012, 21:35
Posts: 115
Quote:
А почему в одних таблицах КР580, код $CB равен пустоте (прочеркуи или нет команды), а в других равен команде jmp? Нормальный код команды JMP ведь равен $C3.
Такое же и с командой RET = $D9, хотя нормальный код этой команды = $C9…
И в исходниках эмул-ров в одном реализовывается, а вдругом нет?
Как быть? (И вообще - быть или не быть :-)
Потому что в одних таблицах только документированные команды, а в других - и недокументированные тоже. Недокументированные команды получились из-за неполной дешифрации кода команды в процессоре (для экономии). Т.е. можно проверять все 8 бит команды, а можно и не все, тогда сэкономим на паре логических элементов.

В одних эмуляторах сделано по документации, а в других - наиболее близко к реалу.

Как быть? Решай сам, что тебе надо, и что ты будешь использовать: только документированные команды, или полное соответствие реалу. В нормальных эмуляторах, как правило, делается полное соответствие реалу, т.к. бывают программы, использующие недокументированные особенности процессора.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 12 Jun 2012, 14:53 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
В нормальных эмуляторах, как правило, делается полное соответствие реалу, т.к. бывают программы, использующие недокументированные особенности процессора.
На "Львове" с этим проще, поскольку была только одна программа, которая использовала одну недокументированную команду перехода, - речь идет о "Last Mission", да и то, согласно воспоминаниям Дениса, это было сделано по приколу, чтобы подколоть Ктитарева: на ПК-02 игра зависала намертво сразу после запуска. Короче, прикол имел успех и был оценен. Команду выпилили под корень. Ибо кроссплатформенность прежде всего!!! :D

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 13 Jun 2012, 16:52 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Подскажите пож-ста какой компонент можно (нужно) использовать (в Дельфи) для вывода в него Экрана ПК-01 Львов? (Эмулятор экрана ПК-01). Пробовал TImage; и TPaintBox; но они при сворачивании их и после накладки на них других приложений виндовс, теряют изображение, т.е. нужно переририсовывать. А также очень медленно перерисовывают всю область компонента, которая всего лишь 256х256 пикселов…


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 13 Jun 2012, 23:32 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
А также очень медленно перерисовывают всю область компонента, которая всего лишь 256х256 пикселов…
я использовал вот эту функцию:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
рисовал в фоновую битмапку, а потом её отрисовывал на экране.
раньше приходилось отслеживать изменённые строки и рисовать только их, а теперь, имхо, можно всю битмапку "шарашить" на экран, скорости компьютеров хватит.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 14 Jun 2012, 00:43 
Offline
User avatar

Joined: 13 Feb 2012, 15:32
Posts: 341
Location: Россия
Quote:
Подскажите пож-ста какой компонент можно (нужно) использовать (в Дельфи) для вывода в него Экрана ПК-01 Львов? (Эмулятор экрана ПК-01). Пробовал TImage; и TPaintBox; но они при сворачивании их и после накладки на них других приложений виндовс, теряют изображение, т.е. нужно переририсовывать. А также очень медленно перерисовывают всю область компонента, которая всего лишь 256х256 пикселов…
самый простой способ
Code:
var
game: Tbitmap;
begin
  game:=TBitMap.Create;
  game.Canvas.Brush.Color
  game.Canvas.Pen.Color
  game.Height:=256;
  game.Width:=256;
  game.Canvas.Draw( //вывод  картинки
  game.Canvas.StretchDraw(
  game.Canvas.MoveTo //линии
  game.Canvas.LineTo
 game.Canvas.Pixels //точка

form1.canvas.draw(0,0,game)
ну и на form1.onactivate вешай перерисовку
form1.canvas.draw(0,0,game)


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 14 Jun 2012, 08:53 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
самый простой способ
Code:
var game: Tbitmap; [/quote]
Спасибо! Пробовал! Понравилось!
А стоит ли экран 256х256 разбивать на несколько мелких битмапов скажем 32х32 (или на сколько?) , чтобы эффективней был вывод на экран и меньше «притапливал» ресурсы компа?…


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 14 Jun 2012, 09:19 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
А стоит ли экран 256х256 разбивать на несколько мелких битмапов скажем 32х32 (или на сколько?) , чтобы эффективней был вывод на экран и меньше «притапливал» ресурсы компа?…
вопрос интересный..... в принципе, можно разбить изображение на прямоугольные области, потом, по мере их изменения, объединять в одну (две, три...), скажем, представив изначально их в виде дерева, и выводить уже её.....
попробуй, надо мерять скорость разных реализаций. только верхняя граница должна быть на количество выводимых таким образом блоков, т.к. наступит момент, когда дешевле отрисовать всю область целиком.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 14 Jun 2012, 16:10 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
...наступит момент, когда дешевле отрисовать всю область целиком.
Насколько я понял...
В ПК-01 делается вывод в видеопамять побайтово (если нужно блок, то в цикле) посредством заполнения байтов видеопамяти, которые сразу же и отрисовываються...!!!??? Всегда ли так это?,
поэтому я и оптимизировал под это, т.е. "подробил" весь экран на кусочки 4х4.
при попадении байта в какой-то из этих кусоков, отрисовывается только этот кусок - так отрисовывается, весь экран (побайтово) быстрее всего.
Также делаю и кеширование т.е. если в видеопамать попадает такой же байт как там есть, она его не отрисовывает заново, возможно так надо будет сделать и с отдельными 4пикселами, из которых состоит это байт... если конечно такое понадобится.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 215 posts ]  Go to page Previous 13 4 5 6 715 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 13 guests


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:
Powered by phpBB® Forum Software © phpBB Limited