Speccy
#02
31 октября 1995 |
|
Программирование - Универсальная программа ввода/вывода спрайтов.
╒══════════════════════════════╕ │░░░░░░ ПРОГРАММИРОВАНИЕ ░░░░░░│ ╘══════════════════════════════╛ Предлагаем вашему вниманию прог- рамму присланную нам Котовым А.В из города Рыбинска. Котов А.В. ─────────── Универсальная подпрограмма ввода/вывода спрайта Данная прцедура работает с файлами формата редактора спрайтов "SPRITE EDITOR 2". Для тех у кого его нет сообщаю, что формат файла у данного редактора таков: Если файл создавался с выключенными опциями Mask и Color, т.е. содержит только информацию о графике, то вначале идут 8 строк первого знакоместа спрайта потом 8 второго и так далее. Данные в подпрограмку переда- ются через IX регистр, в него записывается адрес таблицы пара- метров. Формат таблицы: IX + 0 X - координата X вывода на экран (в знакоместах ) + 1 Y - координата Y вывода на экран (в знакоместах ) + 2 Xраз- размер спрайта по горизонтали в знакоместах + 3 Yраз- размер спрайта по вертикали в знакоместах + 4 n - номер спрайта к выводу (меньше действительного на 1) для таблиц спрайтов. + 5 \ + 6 / размер спрайта в байтах. * SPBUF DEFW 0 ; здесь адрес ;начала таблицы спрайтов sprite DI LD B,(IX+4) ;получили ;номер спрайта LD A,B CP #0 JR Z,sl2 ;точка входа ;для первого или ;единственного ; спрайта LD E,(IX+5) LD D,(IX+6) ;загрузка ;размера ;спрайта LD HL,(spbuf) ;адрес ;спрайта или ; таблица ;спрайтов sl1 ADD HL,DE DJNZ sl1 sl2 LD B,(IX+3) ;размер по Y LD D,(IX+0) LD E,(IX+1) ;координаты ;вывода ;спрайта PUSH HL CALL GET_ADR_S POP DE sl3 PUSH BC LD B,8 ;начало цикла по ;знакоместу sl4 PUSH BC PUSH HL CALL Outspr ;прорисовка ;одной строки ;спрайта POP HL INC H POP BC DJNZ sl4 DEC H ;коррекция HL CALL next_b ;переход на ;следующую ;символьную ;строку ;и коррекция ;при переходе ;через границу ;трети экрана POP BC DJNZ sl3 EI RET ;данная процедура позволяет как ;вывести спрайт на экран так и ;взять его с экрана.Вывод ;возможен прямой по XOR, OR,AND ;нужно только заменить команду ;NOP на ту, которую вам нужно. Outspr: LD B,(IX+2) ;длинна ;строки outsp1 LD A,(DE) NOP LD (HL),A INC DE INC HL DJNZ outsp1 RET next_b INC H LD A,H AND #7 RET NZ LD A,1 ADD A,#30 LD 1,A RET C LD A,H SUB 8 LD H,A RET * Set_Adr_S ;данная процедура ;находит экранный адрес ;по знакоместам ; /координаты в DE,адрес ;возвращается в HL (взя- ;то из книги "Приклодная ;графика" Инфорком)/ LD A,E AND #18 OR #40 LD H,A LD A,E AND #07 OR A RRA RRA RRA RRA ADD A,D LD L,A RET Соломонов Антон из Челябинска задает вопрос, связанный с ис- пользованием принтера. У меня компьютер "Sсorpion 256" Version 2.4d. При подключении к нему через интерфейс Centroniсs принтера "Seikosha", при подаче команды на печать LPRINT с уп- равляющими кодами CHR$ 15 в тек- стовом режиме выдает совершенно не то, что нужно... В графическом режиме при сбросе картинки с экрана на принтер вместо картины, также печатаются буквы... Для ответа на такие вопросы необходимо обладать полной ин- формацией. Как известно, для то- го чтобы принтер работал, требу- ется выполнить два условия: 1. Правильно сделать подключение (аппаратная часть). 2.Установить программу поддержки принтера (программная часть). В фирменном ZX-Spectrum'e в ПЗУ находится программа, которая ра- ботает только с принтером специ- ально созданным для этого компь- ютера. Если к компьютеру подклю- чен какой-либо другой принтер,то для его работы требуется прог- рамма (драйвер) поддерживающая данный тип принтера. К сожалению большинство программ содержат драйвера Epson - совместимых принтеров. Для того, чтобы ваш принтер за- работал необходимо приобрести, либо написать драйвер этого принтера, а также установить его в графические и текстовые редак- торы. Пиобрести такую программу можно на радиорынке. Если таковой там не окажется, то обратитесь в НПО "УРАЛАВТ" (см.рекламу). Просьба к читателям журнала: В связи с тем, что очень много пользователей обращаются с воп- росами, связанными с ремонтом компьютеров, подключением каких- - либо внешних устройств, напи- санием программ поддетжки, то пусть тот, кто может и желает сделать такие виды работ, даст рекламу в нашем журнале. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября