Body #06
20 июня 1997

PUSH HL - Печать текста с точностью до пикселя по координате Y.

<b>PUSH HL</b> - Печать текста с точностью до пикселя по координате Y.
┌══════════════════════════════════════════════════════════════┐
│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ PUSH HL ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓│
└══════════════════════════════════════════════════════════════┘
(C) SATSOFT					   PHN.270-72-36

Я  ПРЕДЛАГАЮ  ВАШЕМУ ВНИМАНИЮ ПРОЦЕДУРУ СТИВА ТЕРНЕРА ДЛЯ ПЕЧАТИ
ТЕКСТОВЫХ СООБЩЕНИЙ В ЛЮБОЙ ТОЧКЕ ЭКРАНА С ТОЧНОСТЬЮ ДО ПИКСЕЛА,
А  НЕ  ТОЛЬКО  В КООРДИНАТАХ ЗНАКОМЕСТ.ЭТА ПРОГРАМКА БЫЛА СЛЕГКА
МНОЮ  ОТТЕСТИРОВАНА  В  ALASM'Е,  ТАК ЧТО ОШИБОК В НЕЙ НЕ ДОЛЖНО
БЫТЬ.   КОММЕНТАРИЕВ,Я  НАДЕЮСЬ,К  ДАННОЙ  ПРОГРАММЕ  ДАВАТЬ  НЕ
НАДО,Т.К.  ВСЕ ВЫ НАВЕРНОЕ ОБРАЗОВАННЫЕ ЛЮДИ.МОГУ СКАЗАТЬ ТОЛЬКО
ОДНО - НЕ ЗАБЫВАЙТЕ СТАВИТЬ ДЛИНУ СТРОКИ.

               ;ПЕЧАТЬ ТЕКСТА С ТОЧНОСТЬЮ ДО ПИКСЕЛА
        ORG 40000
	LD A,1	            ;НОМЕР СООБЩЕНИЯ В КИЛОГРАММАХ   :)
	LD D,99	            ;КООРДИНАТА Y В ПИКСЕЛАХ ОТ 0 ДО 184
	LD E,3              ;КООРДИНАТА Х В ЗНАКОМЕСТАХ 0 ДО 31
	CALL TEXT
	LD A,2
	LD D,120
	LD E,8
	CALL TEXT
	RET
	                     ;ПОДПРОГРАММА ТЕХТ
	                     ;А - НОМЕР СООБЩЕНИЯ
	                     ;DE- КООРДИНАТЫ ПЕЧАТИ
TEXT	LD HL,TXADD
LOOK	LD B,0
	JR GOTRY
LONG	LD C,(HL)            ;ПОИСК ТЕКСТА
	INC HL
	ADD HL,BC
GOTRY	DEC A
	JR NZ,LONG
	CALL PRINT
	RET
PRINT	LD (INPUT),HL
	LD A,D
	AND #38	             ;ОПРЕДЕЛЯЕМ РЯД
	ADD A,A
	ADD A,A
	ADD A,E	             ;ПРИБАВИЛИ Х
	LD E,A	             ;МЛАДШИЙ БАЙТ
	LD A,D
	RRA
	RRA
	RRA
	AND #18	             ;ОПРЕДЕЛЯЕМ ТРЕТЬ ЭКРАНА
	LD C,A
	LD A,D
	AND #07	             ;СТРОКА В РЯДУ
	ADD A,C
	ADD A,#40            ;СТАРШИЙ БАЙТ
	LD D,A
	LD HL,(INPUT)
	LD A,(HL)
	AND A
	RET Z	             ;НЕВЕРНОЕ ЗНАЧЕНИЕ
	LD C,A
PROLET	LD (OUTPUT),DE
	INC HL
	LD (INPUT),HL
	LD A,(HL)
	CP #FF
	JR NZ,CHAR
	                     ;ПЕРЕХОД К НОВОЙ СТРОКЕ
	                     ;ПОД ПЕРВОЙ ПОЗИЦИЕЙ
	                     ;ПЕЧАТИ
	LD DE,(OUTLIN)
	LD A,E
	ADD A,#20
	LD E,A
	RET NC
	LD A,D     	     ;ДРУГАЯ ТРЕТЬ ЭКРАНА
	ADD A,8
	CP #58
	RET NC
	LD D,A
	LD (OUTLIN),DE
	JR REJOIN
CHAR	LD L,A     	     ;ПОИСК СИМВОЛА
	LD H,0
	ADD HL,HL
	ADD HL,HL
	ADD HL,HL
	LD DE,(CHASET)
	ADD HL,DE
	LD DE,(OUTPUT)
	LD A,D
	CP #58
	RET NC
 	LD B,8
EIGHT	LD A,(HL)            ;ВЫДАЕТ 8 СТРОК СИМВОЛА
	LD (DE),A
	INC HL
	LD A,D
	AND 7
	INC A
	CP 8
	JR NZ,NONEW
	LD A,D
	AND #F8
	LD D,A
	LD A,E
	ADD A,#20
	LD E,A
	JR NC,NEXTSL
	LD A,D
	ADD A,8
	LD D,A
NONEW	INC D
NEXTSL	DJNZ EIGHT
	LD DE,(OUTPUT)
NEXTLT	INC E
	JR NZ,REJOIN
	LD A,D
	ADD A,8
	LD D,A
REJOIN	LD HL,(INPUT)
	DEC C
	JR NZ,PROLET
	RET
OUTLIN	DEFW 0                 ;НАЧАЛЬНАЯ СТРОКА
OUTPUT	DEFW 0	               ;АДРЕС ПЕЧАТИ
INPUT	DEFW 0	               ;АДРЕС ТЕКСТА
CHASET	EQU 23606              ;УКАЗЫВАЕТ НА АДРЕС ШРИФТА В ПЗУ
		               ;МИНУС 256 БАЙТ
	                       ;ТАБЛИЦА ТЕКСТА
TXADD   DEFB 26		       ;ДЛИНА ДАННОЙ СТРОКИ В СИМВОЛАХ
	DEFB "HELLO ALL READERS OF BODY!"
        DEFB 16		       ;ДЛИНА ДАННОЙ СТРОКИ В СИМВОЛАХ
        DEFB "TO BE CONTINUED!"

>ASSEMBLE
#0079
 SYMBOLS:#C04B-#FED1
TOTAL ERRORS:#0000



Другие статьи номера:

GAME Обзор - Краткий обзор новых игрушек и демок : Dandy, G-Man, Little Computer People, Operation Wolf, Ugliblaster, Defenders of the Earth, Zero Info, Insane, Stress, Blood Jack, F.S.R.D., Geography.

PUSH HL - Печать текста с точностью до пикселя по координате Y.

Давайте посмеемся - Ответы GIVER'a на задачки первого номера.

Новости - О свежих новостях из Гомеля.

От авторов - О новых рубриках газеты.

Реклама - Реклама и объявления ...


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

Похожие статьи:
Реклама - Реклама и объявления.
Oт редакции - Приближается Enlight'97.
Игроскоп - краткий обзор игровых программ, появившихся в Челябинске: Freddy Kruger Live, Mortal Kombat, Zybex Remix, Gorodki, Atomic Robo Kid, Turbo Skate Fighter, Gremlins 2, Robot, Mercs, The Big Slease, UFO 2, Twin, Клятва Ночи, Trinia, Randex, Hunter, Talisman, Killed Until Dead, Supertetris, Miner, Tarzan, Final Fight, Go Bear Go, Rings Wars, 48 Утюгов, Prince of Persia и т.д.
scene off! - сценерши.
Playing With The Index Registers

В этот день...   21 июня