:: СОДЕРЖАНИЕ НОМЕРА
:: Газетные рубрики
:: АВТОРЫ
:: Поиск
:: Поддержка проекта
Webmoney:
|
:: №25 (09.09.2005) Просмотров: 5203
Рубрика: Этюды. Номер: №25 (09.09.2005). Модификация шрифтаПредлагаем вашему вниманию, несколько интересных процедур, которые <превращают> стандартный шрифт из ПЗУ, в шрифт, пригодный для печати 64-х символов в строке (один символ - 4х8 пикселей).Вообще-то, все эти процедуры были написаны специально для наших демок 512 байт, и работали только при определенных условиях. Но во время подготовки данной статьи, мы решили доработать их и сделать более универсальными. font EQU #7000;адрес ;размещения ;шрифта (2048 байт) ORG #6000 LD HL,font+32 LD DE,#3d00 cy LD BC,#300 LD A,(DE) RLA cy2 RLA JR NC,cy3 RL C RLA JR cy4 cy3 RLA RL C cy4 DJNZ cy2 LD (HL),C INC H INC DE LD A,H CP font/256+8 JR NZ,cy LD H,font/256 INC L JR NZ,cy Некоторые новосозданные символы, выглядят немного коряво, следующая программка их подправит. LD HL,ftab LD DE,font+512+32 dorf LD B,(HL) INC HL LD C,(HL) INC HL INC DE DJNZ $-1 LD A,(DE) XOR C LD (DE),A LD A,(HL) OR A JR NZ,dorf Посмотреть получившийся шрифт (см. рисунок внизу страницы), можно перебросив его на экран, LDIR'ом. HL, font, DE, #4000, BC, 2048, LDIR. И напоследок, третья процедура, при помощи которой, вы сможете напечатать текст на экране (HL, адрес экрана (#4000), DE, адрес текста, CALL wyw): wyw LD A,(DE) INC DE OR A RET Z CP 32 JR NC,$+4 LD A,32 LD C,A LD A,(DE) INC DE PUSH AF,HL,DE CP 32 JR NC,$+4 LD A,32 LD E,A LD B,font/256 LD D,B LD A,(BC) LD (HL),A LD A,(DE) RLD INC H INC D INC B LD A,B CP font/256+8 JR NZ,$-11 POP DE,HL,AF INC L OR A JR NZ,wyw RET Ниже находится таблица для второй процедуры. Вы можете поэкспериментировать с BIN числами, изменяя их, вы измените вид некоторых созданных символов. ftab DB 5,%00000100 DB 1,%00000011 DB 4,%00000110 DB 20,%00000110 DB 15,%00000010 DB 30,%00000011 DB 8,%00000101 DB 1,%00000001 DB 206,%00000001 DB 23,%00000011 DB 13,%00000101 DB 192,%00000010 DB 22,%00000110 DB 22,%00000001 DB 211,%00000001 DB 7,%00000110 DB 250,%00000100 DB 4,%00000110 DB 20,%00000110 DB 49,%00000101,0 Весь код занимает 145 байт (все три процедуры + таблица). Алексей Червов, Владислав Ювженко, |