PC-01 Lviv
http://pc01.lviv.ua/forum/

Классика: "Color Lines"
http://pc01.lviv.ua/forum/viewtopic.php?f=3&t=211
Page 3 of 3

Author:  liberation [ 22 Jan 2013, 00:01 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
Quote:
to vinxru Вы злой и недобрый программист! На "Львове" никто-никто, никогда-никгода не использвоал порт С3
кроме системного биоса 1 раз при старте :-) а с какой целью контроллер перепрограммируется в этой игре?
Я бы не был столь категоричен, что никто и никогда. Я-то смог припомнить этот прикол! ;)

Через порт C3 удобно изменять состояние отдельных битов для порта C2, сохраняя неизменным состояние остальных. Короче, смотрим "Таблица 5. Оперирование битами" у КР580ВВ55:
Quote:
Каждый из восьми битов канала C может быть независимо от других установлен или сброшен с помощью специальной команды вывода, посылаемой в регистр управления. Это свойство канала C облегчает программирование в случае, когда биты канала C используется для управления передачей данных по каналам A или B. Формат команды приведен в табл. 5.

Author:  ivagor [ 22 Jan 2013, 09:11 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
На "Львове" никто-никто, никогда-никгода не использвоал порт С3.
Во всех своих околомузыкальных поделках использовал порт C3. Использование обращения к C2 в случаях, когда нужно изменить его отдельный бит выглядит странным и громоздким, т.к. сначала нужно прочитать C2, установить нужное значение бита, потом записать. Вместо этого можно просто записать в С3.

Author:  Zelya [ 22 Jan 2013, 11:54 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
с какой целью контроллер перепрограммируется в этой игре?
Переключается видеорежим.
Quote:
Я бы не был столь категоричен, что никто и никогда.
Ну, в моей практике это первый раз, поэтому и впал в ступор. :) Знал бы, что такое бывает - обратил бы внимание, а так пришлось дизассемблировать и по чуть-чуть дебагать.

Author:  sadfsdfsdaf [ 23 Jan 2013, 15:54 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
Quote:
На "Львове" никто-никто, никогда-никгода не использвоал порт С3.
Во всех своих околомузыкальных поделках использовал порт C3. Использование обращения к C2 в случаях, когда нужно изменить его отдельный бит выглядит странным и громоздким, т.к. сначала нужно прочитать C2, установить нужное значение бита, потом записать. Вместо этого можно просто записать в С3.
Да, всё так, но поскольку это не система "разделяемого времени", а смысловая нагрузка битов порта известна, то сложилась практика, когда сразу пишут в C2. Кстати, на IPM PC в своё время была беда с использование портов видеоконтроллера: порты у EGA только на запись, лишь появившийся позже VGA позволял получить своё состояние, так что приходилось хранить в памяти "теневые значения", которые и записывались потом в нужные регистры EGA.
Quote:
Ну, в моей практике это первый раз, поэтому и впал в ступор. Знал бы, что такое бывает - обратил бы внимание, а так пришлось дизассемблировать и по чуть-чуть дебагать.
я, когда писал эмулятор, первоначально реализовал флаги в произвольном порядке. Тоже потом случайно выяснилось, что какая-то из программ переключает видеорежим примерно таким образом:
Code:
stc
.....
push psw
.....
ral
.....
pop psw
out c2
последовательность команд разумеется не дословная и явно в коде не выделялась, а получалась по ходу действия, но общий смысл такой (записать бит переноса (или чётности) в C2 для переключения видеорежима).

Author:  liberation [ 23 Jan 2013, 16:01 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
Использование обращения к C2 в случаях, когда нужно изменить его отдельный бит выглядит странным и громоздким, т.к. сначала нужно прочитать C2, установить нужное значение бита, потом записать. Вместо этого можно просто записать в С3.
Кстати, авторы штатного ПО ко "Львову" такими тонкостями не заморачивались. Просто фигачили в порт нужные сейчас значения. Отсюда все эти приколы с непонятными щелчками и прочими звуками при работе графических процедур, непонятные баги при выводе на принтер.

Author:  sadfsdfsdaf [ 23 Jan 2013, 16:09 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
Просто фигачили в порт нужные сейчас значения. Отсюда все эти приколы с непонятными щелчками и прочими звуками при работе графических процедур, непонятные баги при выводе на принтер.
только в местах где используют 0/2 и FD/FF, если бы придерживались одного стиля - такого бы не произошло, но с другой стороны... RAKETA.LVT станет совсем беззвучной :-)

Author:  liberation [ 23 Jan 2014, 07:59 ]
Post subject:  Re: Классика: "Color Lines"

Позабыл отписаться, что так называемый vixru выложил в открытый доступ исходники своей версии "Color Lines". Вот как это подает автор:
Quote:
Не нашел последней версии. Это слегка глючные версии, может быть когда нибудь я исправлю их и даже перенесу Линии на другие компьютеры.

В комплекте компилятор Си, причем версия то же не последняя. Может быть когда нибудь потом я его перепишу и доведу до совершенства.
Пару горьких слов про авторский компилятор Си. Карнавала не будет, поскольку исходники компилятора надежно уничтожены:
Quote:
Я выкинул почти все паяльные принадлежности, детали, реактивы. Удалил с жестких дисков все проекты, в том числе исходники компилятора Си для 8080. А из LJ удалил 95% всех постов.
Даже не хочу комментировать этот поступок... :(

Author:  MARAT_BEST [ 24 Jan 2014, 14:20 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
Позабыл отписаться, что так называемый vixru выложил в открытый доступ исходники своей версии "Color Lines". Вот как это подает автор:
Quote:
Не нашел последней версии. Это слегка глючные версии, может быть когда нибудь я исправлю их и даже перенесу Линии на другие компьютеры.

В комплекте компилятор Си, причем версия то же не последняя. Может быть когда нибудь потом я его перепишу и доведу до совершенства.
Пару горьких слов про авторский компилятор Си. Карнавала не будет, поскольку исходники компилятора надежно уничтожены:
Quote:
Я выкинул почти все паяльные принадлежности, детали, реактивы. Удалил с жестких дисков все проекты, в том числе исходники компилятора Си для 8080. А из LJ удалил 95% всех постов.
Даже не хочу комментировать этот поступок... :(
ПОТЕРЯ ПОТЕРЬ !!! было бы первое апреля ... я бы все понял ... но так !!!! обидно !!!!

в том числе исходники компилятора Си для 8080 блин была мысль под pascal переделать :(

зы.
ХТО ИХ ГЕНИЕВ ПОЙМЕТ ? :?

Author:  liberation [ 24 Jan 2014, 23:07 ]
Post subject:  Re: Классика: "Color Lines"

Quote:
ХТО ИХ ГЕНИЕВ ПОЙМЕТ ? :?
Насколько я понял ситуацию, синька и понты - лучшее объяснение 90% поступков "русских гениев". Но это я пишу на правах оффтопа. Частное мнение, так сказать.

А компилер реально жалко. Хотя vinxru имел большие планы по части второй версии продукта. Думаю, теперь уже можно об этом рассказать. Вот парочка душевных цитат из переписки:
Quote:
Новая версия компилятора кстати будет написана на Прологе.
Она должна будет сама оценить систему команд процессора и построить самые оптимальные конструкции команд.
И одновременно прорабатывать миллионы вариантов программ
И на каждой строке программы перемещать переменные между памятью и регистрами так, что бы код был как можно быстрее.

[...]
я опишу каждую команду процессора, как микро операции.
И программа транслируется в микрооперации
Останется только подобрать нужные команды.
то есть уровень, еще меньше чем ассемблер

[...]
Я регил разделить компилятор на две части. Первая программу из Си преобразует в что то похожее на Форт.
Это часть уже почти работает.
А вторая из Форта в машинный код, перебирая миллионы вариантов.
У нас сейчас 64-х битные 6-ядерные 3 ГГц процессоры
вот и пускай поработают :)

Page 3 of 3 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/