Subversion Repositories NedoOS

Rev

Rev 889 | Rev 1000 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1. ;Процедуры вывода "Об игре" и "Об авторах"
  2. ;
  3. ;ABOUT
  4.  
  5. ;Эти переменные нужно взять
  6. ;из основной программы, либо компилировать
  7. ;в составе основной проги!
  8. ;--------------------
  9. ;PG_VIEW EQU 7
  10. ;PAGE   EQU 0
  11. ;MKEYSp1  EQU 0
  12. ;CURSCR EQU 0
  13. ;PR64   EQU 0
  14. ;IM2M2  EQU 0
  15. ;IM2N   EQU 0
  16. ;--------------------
  17.  
  18. PRINTER_SCREEN=0x4000;#c000
  19.  
  20. PRINTER
  21. ;d=0..1
  22. ;       LD A,16
  23. ;       LD (CURSCR-1),A
  24.         CALL PAGE_PG_VIEW
  25.  
  26.         PUSH BC
  27.         PUSH DE
  28.        if EGA
  29.         xor a
  30.         ld (curscrnum_int),a
  31.         ld e,a
  32.         OS_SETSCREEN
  33.         ;ld a,(user_scr1_high) ;ok
  34.         ;SETPGC000
  35.        endif
  36.  
  37. PRTER   XOR A
  38.         LD (MKEYSp1),A
  39.  
  40.         LD DE,#1800
  41.         LD HL,PRINTER_SCREEN+0x1800;#D800
  42.         LD BC,32
  43. PRTLP0  LD (HL),E
  44.         CPI
  45.         JP PE,PRTLP0
  46.         HALT
  47.         DEC D
  48.         JR NZ,PRTLP0-3
  49.  
  50.         LD HL,PRINTER_SCREEN;#C000
  51.         LD DE,PRINTER_SCREEN+1;#C001
  52.         LD BC,6143
  53.         LD (HL),L
  54.         LDIR
  55.  
  56.         POP DE
  57.         POP BC
  58.         LD A,D      ;Если D=1 - заходим в описание первый раз
  59.         OR E        ;Если DE=0 - выход из описания в меню
  60.         RET Z
  61.         DEC D
  62.         JR Z,PRTLP1
  63.         INC D
  64.         JR PRTLP2   ;Продолжение описания с адреса DE
  65. PRTLP1  LD HL,#1203 ;координаты
  66.         LD DE,ABGM1 ;об игре
  67.         INC C
  68.         DEC C
  69.         JR Z,PRTLP2
  70.         LD DE,AUTR  ;об авторах
  71. PRTLP2  CALL PR64
  72.  
  73. ;можно юзать токен смены координат: 0,1,X,Y
  74.  
  75.         INC DE
  76.         LD A,(DE)
  77.         DEC A
  78.         JR NZ,PRTLP5
  79.         INC DE
  80.         EX DE,HL
  81.         LD D,(HL)
  82.         INC HL
  83.         LD E,(HL)
  84.         INC HL
  85.         EX DE,HL
  86.         JR PRTLP2
  87.  
  88. PRTLP5
  89.         EX DE,HL
  90.         INC HL
  91.         LD D,(HL)
  92.         INC HL
  93.         LD E,(HL)
  94.         INC HL
  95.         LD A,(HL)
  96.         INC HL
  97.         LD C,(HL)
  98.         INC HL
  99.         LD B,(HL)
  100.         EX DE,HL
  101.         PUSH BC
  102.         PUSH BC
  103.  
  104.         LD DE,PRINTER_SCREEN+0x1800;#D800
  105.         LD B,23
  106. PRTLP4  PUSH BC
  107.         ADD HL,HL
  108.         ADC A,A
  109.         CALL ATRLIN
  110.         POP BC
  111.         DJNZ PRTLP4
  112.        
  113. ;Ожид. клавишу
  114. PRTLP3  LD H,25 ;скорость мигания во фреймах
  115.         HALT
  116.         LD A,(MKEYSp1)
  117.         AND %00010000 ;Fire
  118.         LD B,A
  119.         LD A,(KEYSp1)
  120.         AND %10000000 ;Enter
  121.         OR B
  122.         JR NZ,PRTER
  123.         DEC H
  124.         JR NZ,PRTLP3+2
  125.         LD DE,PRINTER_SCREEN+0x1ae0;#DAE0
  126.         LD A,6  ;Цвет мигания
  127.         XOR 6
  128.         LD ($-1),A
  129.         LD C,A
  130.         CALL ATRLP
  131.         JR PRTLP3
  132.  
  133. ATRLIN  LD C,7
  134.         JR NC,$+4
  135.         LD C,4
  136. ATRLP   LD B,32
  137.         EX DE,HL
  138.         LD (HL),C
  139.         INC HL
  140.         DJNZ $-2
  141.         EX DE,HL
  142.         RET
  143.  
  144. AUTR
  145.         DB "Художник",13
  146.         DB "Кирилл Каган (Surfin Bird)",13,13
  147. ;       DB "Александр Шушков (Axor)",13
  148. ;       DB "Дмитрий Патютько (Pulsar)",13,13
  149.  
  150.         DB "Композиторы:",13
  151.         DB "Дмитрий Жемков (C-jeff)",13
  152.         DB "Андрей Пеунов (Bedjamen)",13
  153.         DB "n1k-o",13,13
  154.  
  155.         DB "Программисты:",13
  156.         DB "Александр Шушков (Axor)",13
  157.         DB "Александр Синяков (SAM style)",13
  158.         DB "Сергей Бульба",13
  159.         DB "Дмитрий Быстров (Alone Coder)",13,13
  160.  
  161.         DB "Авторы сценария:",13
  162.         DB "Владимир Сивов",13
  163.         DB "Александр Разумов",13,13
  164.  
  165.         DB "(c) 2003-2008, Perspective",0
  166.  
  167. ;       DB "Антон Яковлев (scl)",13
  168. ;       DB "Александр Шушков (Axor)",0
  169.         DB 1,58,23,"В меню",0,2
  170.         DB %00010000,%01000000 ;атрибутная раскраска по строкам
  171.         DB %00010010
  172.         DW 0        ;адрес продолжения текста, 0,0-конец
  173.  
  174. ABGM1   INCBIN "VERA_ZX1.C" ;текст об игре1
  175.         DB 0
  176.         DB 0,0,64
  177.         DW ABGM2
  178.  
  179. ABGM2   INCBIN "VERA_ZX2.C" ;текст об игре2
  180.         DS 6
  181.  
  182.