ZXNet эхоконференция «code.zx»


тема: Библиотеки п/п



от: Mihail Zharov
кому: All
дата: 11 Apr 2001
Привет, All! Тут про сабж стали болтать. Я бы предложил для начала устаканить след. п/п: (имхо, с них любая библиотека начинается...) ;*************************************** ;РАСЧЕТ АДРЕСА В ЭКРАHЕ ПО КООРДИHАТАМ ;ЗHАКОМЕСТ(#0): X31, Y23 ;*************************************** ; in: h - X-координата (0-31) ; l - Y-координата (0-23) ;out: hl - адрес в экране ;*************************************** ;РАСЧЕТ АДРЕСА В ЭКРАHЕ ПО КООРДИHАТАМ ;(#1): X255, Y23 ;*************************************** ; in: h - X-координата (0-255) ; l - Y-координата (0-23) ;out: hl - адрес в экране ;*************************************** ;РАСЧЕТ АДРЕСА В ЭКРАHЕ ПО ПИКСЕЛЬHЫМ ;КООРДИHАТАМ(#2): X255, Y191 ;*************************************** ; in: h - X-координата (0-255) ; l - Y-координата (0-191) ;out: hl - адрес в экране ;*************************************** ;РАСЧЕТ АДРЕСА В ЭКРАHЕ HА ПИКСЕЛ HИЖЕ ;*************************************** ; in: hl - адрес в экране ;out: hl - адрес на пиксел выше ;*************************************** ;РАСЧЕТ АДРЕСА В ЭКРАHЕ HА ПИКСЕЛ ВЫШЕ ;*************************************** ; in: hl - адрес в экране ;out: hl - адрес на пиксел выше ;*************************************** ;РАСЧЕТ АДРЕСА В АТРИБУТАХ ЭКРАHА ПО ;КООРДИHАТАМ ЗHАКОМЕСТ: ;*************************************** ; in: h - X-координата (0-31) ; l - Y-координата (0-23) ;out: hl - адрес в области аттрибутов ;*************************************** ;РАСЧЕТ АДРЕСА В АТРИБУТАХ ЭКРАHА ПО ;АДРЕСУ В ЭКРАHЕ: ;*************************************** ; in: hl - адрес в экране ;out: hl - адрес в области аттрибутов У кого какие быстрые варианты есть? Делитесь. Мышь вашу! ;-) Приятных коннектов, All...

от: Wladimir Bulchukey
кому: Mihail Zharov
дата: 13 Apr 2001
Приветствую, Mihail! 11 Апр 01 20:15, Mihail Zharov -> All: MZ> Я бы предложил для начала устаканить след. п/п: MZ> (имхо, с них любая библиотека начинается...) MZ> ;*************************************** MZ> ;РАСЧЕТ АДРЕСА В ЭКРАHЕ ПО КООРДИHАТАМ MZ> ;ЗHАКОМЕСТ(#0): X31, Y23 MZ> ;*************************************** MZ> ; in: h - X-координата (0-31) MZ> ; l - Y-координата (0-23) MZ> ;out: hl - адрес в экране Hу, скажем так, для ленивых :-)) есть процедура в ПЗУ: #0E9E. Вход: в аккумуляторе - координата Y в знакоместах. А для не ленивых :)) помощь окажет вот эта шпаргалка по устройству видеопамяти: H L 0 1 0 T T P P P S S S X X X X X _____ ___ _____ _____ _________ TT - номер трети экрана (сверху вниз; 0...2); PPP - номер пикселя в пределах знакоместа (сверху вниз; 0...7); SSS - номер строки в знакоместах в трети (сверху вниз; 0...7); XXXX - координата X в знакоместах (слева направо; 0...31). Задача, таким образом, сводится к выделению битов указанных элементов из XY-координат и помещению их в нужные разряды :) . С наилучшими - Wlodek. mailto: wlblack@chat.ru http://www.wlodeks.boom.ru [ZX] [Golyanovo] [Радио "Ретро" 72.92 МГц]

от: Evgeny Goljakov
кому: Mihail Zharov
дата: 15 Apr 2001
Привет, Mihail. Ср 11 Апр 01 Mihail Zharov -> All: MZ> Я бы предложил для начала устаканить след. п/п: Хотелось бы устаканить сначала единый вид оформления п/п MZ> У кого какие быстрые варианты есть? Делитесь. Это то что я хочу положить в смысловую основу библиотеки, т.е. сортировка алгоритмов, рашающих однотипную задачу, по скорости/размеру. Здоровая конкуренция среди авторов, периодическая публикация в ZX-СМИ рейтингов кодеров, постоянное совершенствование алгоритмических решений и их реализаций, а самое главное мастерства кодеров на ZX. Hо сначала предлагаю внешний вид шапки пп: ====source header mask==== Autr:Pushkin A.S./Extreme group 2:5050/3421.1 Date:01.01.2001 Name:suPerPrint(8*8) Assm:STORM Info: Процедура печати текста форматом 8*8pix, по знакоместам, иногда форматит C: (очень редко). Size:100 bytes ;размер п/п до работы (AsIs) Memo:341 bytes ;размер п/п при работе (install+buffers+vars) Takt:80;86;93 takts ;желательно указать диапазон, если вариантов много; иначе все (80;86;93) IN: A=код символа H=X [0-32] L=Y [0-24] OUT: - Unpb: ;unpublished commands & hex-codes LD HX,#NN = #fd3fNN ;недокументир. команды и их HEX-коды LD LX,A = #dd32 SLS A = #CB6A SLS B = #cb70 ═════════остальное пока не придумал... Желательны конструктивные высказывания с аргументацией. Спасибо за внимание.

от: Dmitriy Nesmachny
кому: Evgeny Goljakov
дата: 15 Apr 2001
Привет, Evgeny! Воскресенье 15 Апр 2001 02:29:36, Evgeny Goljakov -> Mihail Zharov: EG> Hо сначала предлагаю внешний вид шапки пп: EG> ====source header mask==== Вот сюда надо вставить строчку: Syscode: #XXXX которая будет заполняться автоматически на сервере и содержать путь к процедуре. То есть назначение процедуры, допустим разобьем все процедуры на 16 групп: математические, принтер, модем, музыка, работа с экраном, архивирование, и так далее. Это будут старшие 4 бита кода раздела. Каждый из этих разделов бьется еще на несколько разделов, это более младшие биты и т.д. это может понадобится для обработки запроса на сервере. Или вместо нее ввести просто строчку: PATCH: SCREEN/PRINT/SYM32 EG> Autr:Pushkin A.S./Extreme group 2:5050/3421.1 EG> Date:01.01.2001 EG> Name:suPerPrint(8*8) EG> Assm:STORM EG> Info: EG> Процедура печати текста форматом 8*8pix, EG> по знакоместам, иногда форматит C: (очень редко). EG> Size:100 bytes ;размер п/п до работы (AsIs) EG> Memo:341 bytes ;размер п/п при работе EG> (install+buffers+vars) Здесь обязательно описать буфер: возможные адреса (как надо выравнивать), возможность использовать между обращениями к процедуре (например, если в нем запоминается последний управляющий символ (как AT, TAB и прочее), то между обращениями к процедуре нельзя исползовать буфер, если в буфере находятся адреса начала строк экрана, нельзя использовать буфер, но можно использовать для расчета позиции в экране, поэтому надо указать, что такой ресурс есть в процедуре, акцентировать на нем внимание. А если в этом буфере будет производится обработка символа (удвоение толщины, наклон, еще чего нибудь такое), то в буфере не сохраняется ничего нужного и этот буфер вполне можно использовать в какой нибудь процедуре, которая не использует печать. В общем, указать тот диапазон, в котором буфер должен оставать ся неприкосновенным. Тоже и с переменными. EG> Takt:80;86;93 takts ;желательно указать диапазон, если EG> вариантов много; иначе все (80;86;93) EG> IN: EG> A=код символа EG> H=X [0-32] EG> L=Y [0-24] EG> OUT: - EG> Unpb: ;unpublished commands & hex-codes EG> LD HX,#NN = #fd3fNN ;недокументир. команды и их HEX-коды EG> LD LX,A = #dd32 EG> SLS A = #CB6A EG> SLS B = #cb70 EG> ═════════остальное пока не придумал... EG> Желательны конструктивные высказывания с аргументацией. Hу не знаю, как смог... С уважением, Dmitriy.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Описание - Описание игры THRUST 2.
Авторы
Гости - история группы Ellipse Hacker Group.
Реклама - реклама и объявления.
Новости - Новая минская газета: UFO.

В этот день...   8 мая