Aspect
#09
21 мая 1998 |
|
Программирование - Печать строки на 42 символа.
Привет, читателям ASPECT'а! Эта подпрограмма будет полезна тем, кто выпускает компьютерные журналы, газеты, кто делает текстовые редакторы и вьюверы на спеке. Сразу хочу сказать - лучше учится ловить рыбу, чем упражнятся в поедании. Метод пе- чати строки, который приведен ниже, позво- ляет начинающему программисту - кодеру(а в кодах ведь почти все самые лучшие програм- мы написаны!),лучше понять как пользоватся командами сдвига. Программируя в кодах, где-бы то ни было, на какой угодно машине, вы выиграете, по сравнению с теми, кто пишет свои программы на языках высокого уровня: BASIC, PASCAL, ALGOL 68, PL1, FORTRAN и т.д. Многих смущает, что писать большие программы на ассемблере сложно. Да - сложно. Поначалу... А приобретя опыт и свою библиотеку процедур, вы не сможете не оценить очевидных плюсов программирования на ассемблере. ****************************************** Вот пример работы команд сдвига: Второе R в команде - Right, т.е. право. A = %11100001; флаг Half Carry = C RRCA ╚═> флаг C ┌<═ флаг C A = %11110000; сдвигается подобно карусели флаг C=1 A = %11110000; флаг Half Carry = C RRA ╚═> флаг C ┌<═ Half Carry A = %11111000 флаг C=0 Еще пример: A = %01000011 C = %00000000 SCF; флаг C = 1 RRA RR C A = %10100001 C = %10000000 Все вычисления в компьютерах проводятся в двоичной системе исчисления. Десятичная и шестнадцатиричная системы применяются в программах для удобства. ****************************************** Перед тем, как печатать строку, нужно ее подготовить, заодно учитывая управляющие символы. ;Ассемблер - XAS v6.18 ;Печать строки на 42 символа ;Written by PHOENIX in 04.1998 STRING EQU #BF00 ;в пределах 1-го сектора. PRINT42 EX DE,HL;в HL адрес экрана (H=#40,#48,#50). LD HY,D LD LY,10 EXX LD DE,STRING PST_C EX DE,HL LD A,(HL) INC L EX AF,AF LD A,(HL) ;берем значения букв из INC L ;подготовленной строки. LD C,(HL) INC L LD E,(HL) INC L EX DE,HL LD B,#60;по #6000 находится фонт (8 секторов) EXX LD H,#60 LD L,A EX AF,AF LD C,A !ASSM 7 LD B,H LD A,(BC) ;объяснять и комменнтировать здесь RRCA ;нет смысла; вы сами должны решить RRCA ;формальность логики. LD B,(HL) INC H RL B RLA RL B RLA LD (DE),A INC E EXX LD A,(BC) RRCA RRCA LD H,B LD H,(HL) INC B RRA RR H RRA RR H EX AF,AF LD A,H EXX INC E LD (DE),A DEC E EX AF,AF OR B LD (DE),A DEC E INC D !CONT LD B,H LD A,(BC) RRCA RRCA LD B,(HL) RL B RLA RL B RLA LD (DE),A INC E EXX LD A,(BC) RRCA RRCA LD H,B LD H,(HL) RRA RR H RRA RR H EX AF,AF LD A,H EXX INC E LD (DE),A DEC E EX AF,AF OR B LD (DE),A INC E LD D,HY INC E EXX DEC LY JP NZ,PST_C LD A,(DE) ;оставшиеся 2 символа INC E EX AF,AF LD A,(DE) EXX LD L,A EX AF,AF LD C,A LD H,#60 !ASSM 7 LD B,H LD A,(BC) RRCA RRCA LD B,(HL) INC H RL B RLA RL B RLA LD (DE),A INC E LD A,B LD (DE),A DEC E INC D !CONT LD B,H LD A,(BC) RRCA RRCA LD B,(HL) RL B RLA RL B RLA LD (DE),A INC E LD A,B LD (DE),A RET Фонт в 8 секторов - это треть картинки в Art Studio. Эта подпрограмма используется в SPBZXNET Mail Viewer v2.00, который вы найдете в приложении к этому номеру ASPECT'a. Ну вот и все на сегодня. Смотрите SPB_ZXV2! (c)PHOENIX.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября