ZX-Ревю 1996 №7-8 1995 г.

Этюды - программа "Option Selector".


(c) А.Епончинцев, Кемеровская обл.

     Я прочитал в ZX РЕВЮ 95/2 программу Антона Сидоренко " OPTION SELECTOR". 
Теперь я предлагаю читателям свою версию "OPTION SELECTOR'а". Она занимает 150 
байт.
    Антон для выделения опции использует атрибут, я же использую процедуру 
печати символа, накладывая его на изображение по "OVER". У Антона в метку 
"OPTN" загружается номер выбранного пункта, а у меня программа делает переход 
на нужный адрес. Впрочем, если это не нужно, Вы можете узнать номер выбранного 
пункта в метке "NUM".

          ORG 40000
OPR       CALL PRINT
          CALL PAUSE
OPR1      LD A,#FD
          IN A,(#FE)
          BIT 0,A
          JR Z,DOWN
          LD A,#FB
          IN A,(#FE)
          BIT 0,A
          JR Z,UP
          LD A,#7F
          IN A,(#FE)
          BIT 0,A
          JR Z,FIRE
          JR OPR1
PAUSE     LD B,5
MM        HALT
          DJNZ MM
          RET
DOWN      CALL PRINT
          LD A,(YC)
;       1->
          CP 5
          JR Z,OPR
          INC A
          LD (YC),A
          LD A,(NUM)
          INC A
          LD (NUM),A
          CALL PAUSE
          JR OPR
UP        CALL PRINT
          LD A,(YC)
;       2->
          CP 0
          JR Z,OPR
          DEC A
          LD (YC),A
          LD A,(NUM)
          DEC A
          LD (NUM),A
          CALL PAUSE
          JR OPR
FIRE      LD A,(NUM)
          LD DE,VETKA
          LD L,A
          LD H,0
          ADD HL,HL
          ADD HL,DE
          LD E,(HL)
          INC HL
          LD D,(HL)
          EX DE,HL
          JP (HL)
PRINT     LD (IY+87),3
          LD HL,CUP
          LD A,(SH)
          LD B,A
L1        LD A,22
          RST 16
          LD A,(YC)
          RST 16
          LD A,(XC)
          RST 16
          INC A
          LD (XC),A
          LD A,(HL)
          RST 16
          DJNZ L1
          LD A,(XPC)
          LD (XC),A
          LD (IY+87),0
          RET
YC        DEFB 0
XC        DEFB 0
XPC       DEFB 0
NUM       DEFB 0
CUP       DEFB 143
SH        DEFB 10
          DEFW; ПЕРЕХОД НА АДРЕС ADR1
          DEFW;                  ADR2
          DEFW;                  и т.д
          DEFW;
           .
           .
           .
    В данной программе:
    Метка YC - печать опции;
          XC - печать по X;
          XPC- должна  равняться  первому вводу метки XC, чтобы курсор не 
               прыгал по экрану;
          NUM- номер опции;
          CUP- код символа;
          SH - ширина опции;
          VETKA - адрес перехода.
    Изменив значения "CP" ( 1->, 2->), Вы можете увеличить или уменьшить 
количество выбераемых пунктов.
    Клавиши управления у этой программы: Q, A, SP.



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
АMБАPКАНТА by Дж.P.P.Тoлкин - Илюрamбaр (Ilurambar) или mирoвыe cтeны oгрaждaют вecь mир...
Жeлeзо - Кворум, "Фича V1.0".
Wante - поиск спектрумоских игр и программ.
Срочно в номер - Пpодается:пpинтеp ROBOTRON шиpокий видеоголовки и дисковод 5305.
События - фестваль FunTop98, последние приготовления.

В этот день...   29 марта