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.





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

BBS-Лист - Список Vicomm-совместимых BBS.

Внимание - Памятка пользователю сети SPbZXNet (продолжение).

Вопрос - Ареал распространения газеты.

День за днем - Обзор эхи GENERAL...

Новинка - О новой игре: Операция PP v1.01.

От авторов - Полуторомесячная "кома".

Под микроскопом - Анонс журнала: Spectrum Expert.

Праздник - С Днем победы.

Программирование - Печать строки на 42 символа.

Сетевые новости - MMD v4.00 - тестируется на BBS, гейт SpbZxNet <=> Internet набирает обороты.

Чемпионат - Посвящение в вирусоводы.

Юмор - Армейские маразмы (часть 1).


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

Похожие статьи:
Вступление - Содержание номера.
Вступление - содержание номера.
Scorpion Club - Что такое BBS и Fido ? Почта Fidonet.

В этот день...   17 февраля