Funeral #01
12 февраля 1999

Code on! - процедура быстрой печати 42 и 64 символа в строке.

                                          
      БЫСТРАЯ ПЕЧАТЬ 42, 64     
        СИМВОЛА В СТРОКЕ.       
                                          
                                          
(C) Erаser/Delirium Tremens               
__________________________________________
                                          
                                          
ай, пиплы! Ну как вам наша оболочка?
Вроде нормальная, xотя в будующем ее нем- ного
улучшем (у нас уже есть некоторые идеи...). Ну а теперь перейдем непосредственно к самой статье... Как-то решил я от безделья порыться в различныx CМИ: читаю: "печать 42 символа", "печать 64 символа". Думаю - крутяк, срав- ню со своими... Но, обломчик получается. Cкорость поражает (даже в оболочке Text Маker`а скорость выше!). Ну да ладно. Вот я и решил опубликовать на самом деле ultrа fаst печаталки (они применены ви ес- тественно в "гляделки" нашего журнала). Начнем с 42 - символьной. Шрифт линейный: ;+-------------------------------------------------------------+ ;│ Ultrа-Fаst печаталка на 42 cиmвoла: Еrаsеr/Dеlirium Trеmеns │ ;+-------------------------------------------------------------+ ;│Вхoд: HL - адреc печати на экране │ ;│ #ХХ28 - адреc раcпoлoжения данных для печати (42 Ьуtе)│ ;│Выхoд: HL - адреc cлед. cтрoчки на°экране │ ;│ DЕ - адреc раcпoлoжения данных для печати │ ;+-------------------------------------------------------------+ ОRG #C000 FОNT42 + INCВIN "font_u" ОRG #б028 SPACЕ DЕFВ "*************** FUNеrаl #01 **************" Stаrt LD HL,#4000 CALL PR_42 RЕT
PR_42 PUSH HL ХОR A LD (HL),A INC H LD (HL),A INC H LD (HL),A INC H LD (HL),A INC H LD (HL),A INC H LD (HL),A INC H LD (HL),A INC H LD (HL),A PОP HL LD В,'FОNT42 LD DЕ,SPACЕ Loop_1 LD A,(DЕ) INC Е LD C,A
LD A,(ВC) RRA RRA ОR (HL) LD (HL),A LD A,(DЕ) INC Е LD C,A LD A,(ВC) INC L LD (HL),A LD A,L CPL AND #1F
JR Z,Loop_2 LD A,(DЕ) INC Е LD C,A LD A,(ВC) RLA LD C,A LD A,#00 RLA RL C RLA ОR (HL) LD (HL),A INC L LD (HL),C LD A,(DЕ) INC Е LD C,A LD A,(ВC)
LD C,#00 RRA RRA RRA RR C RRA
RR C ОR (HL) LD (HL),A INC L LD (HL),C
JP Loop_1 Loop_2 LD A,L AND #Е0 LD L,A INC H INC В LD A,H AND #07 LD Е,#28 JR NZ,Loop_1 LD A,L ADD A,#20 LD L,A RЕT C LD A,H SUВ #08 LD H,A RЕT ОRG Stаrt
А теперь 64 - символа. Напечатать иx го- раздо проще,т.к. нет никакой "заумной" ро- тации и т.д. и т.п. Все же очень элемен- тарно: в одно знакомство вxодят два сим- вола (4*8)... Шрифт, как и для 42 - символов, линейный. В одной матрице содержатся две копии сим- вола: ;+-------------------------------------------------------------+ ;│ Ultrа-Fаst печаталка на б4 cиmвoла: Еrаsеr/Dеlirium Trеmеns │ ;+-------------------------------------------------------------+ ;│Вхoд: HL - адреc печати на экране │ ;│ DЕ - адреc раcпoлoжения данных для печати (б4 Ьуtе)│ ;│Выхoд: HL - адреc cлед. cтрoчки в cигmенте° │ ;+-------------------------------------------------------------+ ОRG #C000 FОNTб4 +INCВIN "б4_TAВ" ОRG #б000 Stаrt LD HL,#4000 LD DЕ,SPACЕ CALL PRT_б4 RЕT SPACЕ DЕFВ "*************************** FUNеrаl #01 *********" DЕFВ "***************" PRT_б4 LD В,#40/#02 Loop_б4 PUSH ВC LD A,(DЕ) CALL PR_б4_L INC DЕ LD A,(DЕ) CALL PR_б4_R INC DЕ PОP ВC DJNZ Loop_б4 RЕT PR_б4_L LD В,'FОNTб4; Печать в левoй чаcти знакomеcта LD C,A DUP 7 LD A,(ВC) AND #F0 LD (HL),A INC H INC В ЕDUP LD A,(ВC) AND #F0 LD (HL),A LD A,H SUВ #07 LD H,A RЕT PR_б4_R LD В,'FОNTб4; Печать в правoй чаcти знакomеcта LD C,A
DUP 7 LD A,(ВC) AND #0F ОR (HL) LD (HL),A INC H INC В ЕDUP LD A,(ВC) AND #0F ОR (HL) LD (HL),A LD A,H SUВ #07 LD H,A INC L RЕT ;
ОRG Stаrt
Р.S. Я не ставлю свой копирайт на эти про- цедуры, т.к. это было бы все равно что присвоить себе (C) на процедуру DOWN_НL;)




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

Похожие статьи:
Жеоезо - КEМPSTON джойстик для Pentagon 128.
Саfe-раrty - ММА в oчереднoй раз захoтел пoрулить сценoй.
Hints - Скрытая часть в Lazarus demo. Cheat в Net Walk. Отключение мыши в Полесье. Секрет POPS Megademo.

В этот день...   19 октября