Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

            DEVICE ZXSPECTRUM1024
;VERA
;INTRO and SETUP
;
;15.12.07
;18.04.08
;29.04.08
;17.05.08
;18.05.08
;19.05.08
;23.05.08
;6.07.08
;7.08.08
;23.08.08
;24.08.08 - мой д/р :)
;25.08.08
;26.08.08

GAME=#7286 ;старт игры
KDEL=15    ;задержка автоповтора нажатия клавиши
QLINE=9    ;кол-во пунктов меню
QVALUE=7   ;кол-во изменяемых пунктов сетапа
LEN=17     ;Длина линейки выделения пункта
SET=23881  ;Адрес, где хранятся данные установок

;Корректируемые ячейки (установки) в игре
MOUSE   EQU #68C8 ;мышь
ROLL    EQU #692D ;колесо
SCANTYP EQU #69CF ;Джойстик/клава
MSPEED  EQU #68C0 ;ускорение курсора
MUSON   EQU #67FD ;музыка on/off
SOUND   EQU #F8FD ;звуки on/off, PG_MAP

;Страницы
PG_MAP  EQU 1
PG_MUZ  EQU 6
PG_VIEW EQU 7

MUSIC   EQU #D35E-100 ;адрес мелодии (-100 т.к. заголовок отруб)
MUSINI  EQU #D696     ;плеер инициализация
PLAY    EQU MUSINI+2  ;проигрывание одного кванта мелодии
MUTE    EQU MUSINI+5  ;заглушить музыку

;Токены в тексте
NCRD=1
BOLD=2
NORM=3
LINE=4
PAUS=5
CLS=6
BORDER=7
LINK=8  ;ссылка на строку текста, токены в ссылках не работают!
FATR=9  ;заполнить атрибуты экрана белым
;ENDL=9 ;конец линка

;По токенам смотри метку TITRES

;---
;       ORG GAME
;       RET

        ORG #6000
begin
        DISP #4040

IM2
        PUSH IX,IY,HL,DE,BC,AF
        EX AF,AF' ;'
        EXX
        PUSH HL,DE,BC,AF
        LD A,(NUMPAGE)  ;Запоминаем номер текущ. стр.
        LD (RST_PG+1),A

        LD A,PG_MUZ
        CALL PAGE
        CALL PLAY   ;проигрываем мелодию

RST_PG  LD A,0
        CALL PAGE
;Выход из вторых прерываний
        POP AF,BC,DE,HL
        EX AF,AF' ;'
        EXX
        POP AF,BC,DE,HL,IY,IX
        EI
        RET

;Начало работы интро
INTRO

;       CALL SETIM2
;       EI
;       LD A,PG_VIEW
;       CALL PAGE
;       LD HL,SCR
;       LD DE,#C000
;       LD BC,6912
;       LDIR

        DI
        LD A,PG_MUZ
        CALL PAGE
        LD HL,MUSIC
        CALL MUSINI

        LD A,PG_VIEW
        CALL PAGE

        CALL SETIM2

        CALL FROMGAM

        LD HL,TITRES
        CALL PRINTFX
        JP TOGAME

;Установка вектора IM2
SETIM2
        DI
        LD HL,IMVEC ;адрес вектора прерываний
        LD BC,256
        LD D,H
        LD E,B
        LD (HL),IM2/256
        LD A,H
        LDIR
        LD I,A
        IM 2
        EI
        RET

;Установка вектора IM1
SETIM1
        DI
        LD IY,23610
        LD A,63
        LD I,A
        IM 1
        EI
        RET

;Печать текста с обработкой токенов
PRINTFX
        CALL PRTEXT
        LD B,A
        AND A
        RET Z
        DJNZ NFX2

        LD E,(HL)     ;новые координаты
        INC HL
        LD D,(HL)
NFX1    INC HL
        JR PRINTFX

NFX2    DJNZ NFX3
        LD A,#0F      ;утолщенный
NFX2_   LD (PRNMOD),A
        JR PRINTFX

NFX3    DJNZ NFX4     ;нормальный
        XOR A
        JR NFX2_

NFX4    DJNZ NFX5
        PUSH DE
        LD E,(HL)     ;цветная линия
                      ;E-атрибут
        INC HL
        LD D,(HL)     ;D-Y коорд.
        PUSH HL
        CALL LINE3
        POP HL,DE
        JR NFX1

NFX5    DJNZ NFX6    ;пауза
        LD A,(HL)
        CALL PAUSE
        JR NFX1

NFX6    DJNZ NFX7    ;стирание экрана
        LD A,(HL)    ;Y размер
        LD (YSZ+1),A
        LD C,A
        INC HL
        LD A,(HL)    ;X размер
        LD (XSZ+1),A
        LD B,A
        INC HL
        LD A,(HL)
        LD (CSZ+1),A
        INC HL
        LD A,(HL)
        LD (CSZ+2),A
        PUSH DE,HL
        CALL CHANX
        CALL FILLATR
        POP HL,DE
        JR NFX1

NFX7    DJNZ NFX8    ;бордюр
        LD A,(HL)
        OUT (254),A
        JR NFX1

NFX8    DJNZ NFX9
        PUSH DE      ;ссылка на текст
        LD E,(HL)    ;нужна для печати одинаковых строк
        INC HL
        LD D,(HL)
        INC HL
        EX DE,HL
        LD B,D
        LD C,E
        POP DE
        PUSH BC
        CALL PRTEXT
        POP HL
        JR PRINTFX

NFX9    DJNZ NFX10   ;заполнение экрана атрибутом
        CALL FILLATR
NFX10   JR NFX1

;Начало работы установок
SETUPI
        XOR A
        LD (PRNMOD),A

        ;LD A,PG_VIEW
        ;CALL PAGE

        CALL CHANX
        CALL FILLATR

        LD DE,#0046
        CALL LINE3

        LD DE,#0B43
        CALL LINE3

        CALL LINE2

        LD DE,#0000
        LD HL,TEXT3
        CALL PRTEXT

        LD DE,#100B   ;D-X pix, E-Y znak
        LD HL,TEXT0
        CALL PRTEXT

        LD DE,#3C00
        LD HL,TEXT1
        CALL PRTEXT

REPRINT
        CALL SET_TXT
        LD DE,#B301
        LD HL,TEXT2
        CALL PRTEXT

;Опрос клавиш
KEYLP   HALT
        LD BC,#BFFE
        IN A,(C)
        BIT 0,A
        JR Z,ENTER

        LD B,#FE    ;CS
        IN A,(C)
        BIT 0,A
        JR NZ,KEYLP2

        LD B,#EF
        IN A,(C)
        BIT 4,A
        JP Z,DOWN

        BIT 3,A
        JP Z,UP

        BIT 2,A
        JP Z,RIGHT

        LD B,#F7
        IN A,(C)
        BIT 4,A
        JR Z,LEFT

KEYLP2  LD A,KDEL
        LD (PRKEY+1),A
        JR KEYLP

;Проверка на автоповтор
PRKEY   LD A,KDEL
        DEC A
        RET Z        ;задержка кончилась
        LD (PRKEY+1),A
        CP KDEL-1
        RET Z        ;нажали первый раз
        POP BC       ;для корректировки SP
        JR KEYLP

ENTER   LD A,(NUMLINE)
        CP QVALUE
        JP Z,SAVE_SETUP
ENT_MOD JR C,RIGHT

        CALL FROMGAM ;Чтобы установки
                     ;остались прежними

TOGAME
        HALT
        LD BC,#BFFE
        IN A,(C)
        BIT 0,A
        JR Z,TOGAME

        LD A,PG_VIEW
        CALL PAGE
        CALL CHANX

        CALL SETIM1

        LD A,PG_MUZ
        CALL PAGE
        CALL MUTE

;Корректируем игру
;в соответствии с установками
        LD HL,SETUP+1
        LD DE,4
        LD A,(HL)
        DEC A
        CPL
        LD (MOUSE),A ;255 - мышь есть, 0 - нет

        ADD HL,DE
        LD A,(HL)
        DEC A
        JR Z,$+4
        LD A,201  ;RET  нет колеса
        LD (ROLL),A

        ADD HL,DE
        LD A,(HL)
        LD (SCANTYP),A
        ADD HL,DE
        ADD HL,DE

        LD A,(HL)
        LD (MSPEED),A
        ADD HL,DE

        LD A,(HL)
        XOR 1
        LD (MUSON),A

        LD A,PG_MAP
        CALL PAGE
        ADD HL,DE
        LD A,(HL)
        DEC A
        JR Z,$+4
        LD A,201  ;RET  нет звуков
        LD (SOUND),A

        JP GAME   ;Стартуем игру!

LEFT
        CALL PRKEY
        LD C,-1
        CALL CH_VALUE
;       CALL LINE
        JP REPRINT

RIGHT
        CALL PRKEY
        LD C,1
        CALL CH_VALUE
;       CALL LINE
        JP REPRINT

UP
        LD BC,#0101
        JR DOWN+3

DOWN
        LD BC,#FFFF
        LD DE,(COORD)
        CALL PRKEY
        LD HL,(NUMLINE)
        LD A,H
        SUB B
        LD H,A
        LD A,L
        SUB C
        LD L,A
        CP #FF
        JP Z,KEYLP
        CP QLINE
        JP Z,KEYLP
        LD (NUMLINE),HL
;       CALL SCR_ADR2
        EX DE,HL
        CALL LINE2+3
        CALL LINE2
        JP KEYLP

CH_VALUE
        LD A,(NUMLINE)
        LD B,A
        ADD A,A
        ADD A,A
        LD HL,SETUP
        LD E,A
        LD D,0
        ADD HL,DE
        LD A,(HL)
        INC HL
        CP #FF
        RET Z     ;не меняем значения
        AND A
        JR Z,VAL_01  ;меняем значение тригерно
        DEC A
        JR NZ,VAL_02

;Меняем значение в диапазоне (MIN-MAX)
        PUSH HL
        LD A,(HL)
        INC HL
        LD E,(HL) ;MIN
        INC HL
        LD D,(HL) ;MAX
        INC D
        POP HL
        ADD A,C
        BIT 7,A
        JR Z,POL
        CP E
        JR NC,POL1
        LD A,RIGHT-2-ENT_MOD
        LD (ENT_MOD+1),A
        RET

POL     CP D
        JR C,POL1
        LD A,LEFT-2-ENT_MOD
        LD (ENT_MOD+1),A
        RET
POL1    LD (HL),A
        RET

;Простой тригер
VAL_01  LD A,(HL)
        XOR 1
        LD (HL),A
        RET

;Тригер меняется с кем-то
VAL_02  LD A,(HL)
        XOR 1
        LD (HL),A
        INC HL
        LD E,(HL)
        INC HL
        LD D,(HL)
        EX DE,HL
        LD A,(HL)
        XOR 1
        LD (HL),A
        RET

;Переносим настройки из сетапа в текст
SET_TXT
        LD HL,TEXT2
        LD DE,3
        LD BC,SETUP
        LD A,QVALUE

CHV_LP  EX AF,AF'
        LD A,(BC)
        CP 255
        JR Z,CHV_LP2
        DEC A
        JR Z,NZBIT

;Обычный тригер

        INC BC
        LD A,(BC)
        DEC BC
        PUSH HL
        INC HL
        ADD A,192   ;Галочка/крестик
        LD (HL),A
        POP HL
CHV_LP2 ADD HL,DE
        INC BC,BC,BC,BC
        EX AF,AF'

        DEC A
        JR NZ,CHV_LP
        RET

;Переменная в диапазоне
NZBIT   PUSH HL
;       INC HL
        INC BC
        LD A,(BC)
        DEC BC
        AND A
        JR Z,ZERO
        BIT 7,A
        JR Z,POLOJIT
        NEG
        LD (HL),"-"
        JR POLOJIT+2

POLOJIT LD (HL),"+"
        INC HL
        ADD A,48
        LD (HL),A
        JR CHV_LP2-1

ZERO    LD (HL),32
        INC HL
        LD (HL),"0"
        JR CHV_LP2-1

FILLATR
        LD HL,#D800
        LD DE,#D801
        LD BC,767
        LD (HL),7
        LDIR
        RET

;Пауза
PAUSE
        LD B,A
ANY_KEY HALT
        XOR A
        IN A,(#FE)
        CPL
        AND 31
        JR NZ,KEY_PRS ;что-то нажали
        DJNZ ANY_KEY
        RET

PAUSE2
        LD B,0
ANYK    HALT
        XOR A
        IN A,(#FE)
        CPL
        AND 31
        RET NZ    ;что-то нажали
        DJNZ ANYK
        RET

KEY_PRS POP BC
        LD A,#BF
        IN A,(#FE)
        BIT 0,A
        JP Z,SETUPI ;Enter
        LD A,#7F
        IN A,(#FE)
        BIT 0,A
        JP Z,TOGAME ;Пробел
        PUSH BC
        RET
       
;E-атрибут
;D-Y
LINE3
        LD B,32
        LD H,0
        LD L,D
LN3     CALL ATR_ADR
        LD (HL),E
        INC L
        DJNZ $-2
        RET

;Инвертированная линия атрибутами
LINE2
        LD HL,(COORD) ;H-X,L-Y
        CALL ATR_ADR
        LD A,(HL)
        LD C,A
        AND 7
        ADD A,A
        ADD A,A
        ADD A,A
        LD E,A
        LD A,C
        AND 56
        RRA
        RRA
        RRA
        OR E
        LD B,LEN
        LD (HL),A
        INC L
        DJNZ $-2
        RET

;Печать текста пропорциональным шрифтом
;by SAM style, модификация для маски by axor
;IN DE-координаты (D-X пикс., E-Y знакоместа)
;   HL-текст
;1-12-токены (они не обязательны!)
PRTEXT
        PUSH DE
        LD A,(HL)
        AND A
        JR NZ,PRT0
PREX    POP DE
        RET
PRT0    INC HL
        CP 13
        JR C,PREX
        JR NZ,PRT
        POP DE
        INC E
        JR PRTEXT
PRT     CALL print_symbol
        JR PRTEXT+1

print_symbol
        PUSH HL
        PUSH DE
        LD L,A
        LD H,0
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        LD BC,font-256  ; font.addr
        ADD HL,BC

        LD B,(HL)       ;ширина буковки
        LD C,B
        LD A,255
        SRL A
        DJNZ $-2
        LD B,C
        LD (MASK+2),A   ;Маска буковки

        PUSH BC

        LD A,D          ;величина сдвига
        AND 7
        LD (sdwig+1),A

        XOR D           ;вычисление адреса на экране (de)
        RRA
        RRA
        RRA
        AND #1F
        LD B,A
        LD C,E
        LD A,C
        RRCA
        RRCA
        RRCA
        AND #E0
        OR B
        LD E,A
        LD A,C
        AND #18
        OR #C0
        LD D,A
;---
        INC D
        INC HL

        LD A,7   ;высота буковки
prn_1   EXA

        LD A,(HL)
PRNMOD  RRCA    ;#0F/00 утолщение
        OR (HL)
        LD B,A

        PUSH HL
MASK    LD HL,#00FF
        LD C,0
sdwig   LD A,0
        AND A
        JR Z,prn_3
prn_2   SRL B
        RR C
        SCF
        RR H
        RR L
        DEC A
        JR NZ,prn_2
prn_3   LD A,(DE)
        AND H
        OR B
        LD (DE),A
        INC E
        LD A,(DE)
        AND L
        OR C
        LD (DE),A
        POP HL
        DEC E
        INC D
        INC HL
        EXA
        DEC A
        JR NZ,prn_1
        POP BC
        POP DE
        POP HL
        LD A,B    ;изменяем X (D) на ширину печати (B)
        ADD A,D
        LD D,A
        RET

;Координаты в знакоместах преобразует
;в реальный адрес экрана
;IN D-X, E-Y
;
SCR_ADR LD A,E
        AND 7
        RRCA
        RRCA
        RRCA
        ADD A,D
        LD D,E
        LD E,A
        LD A,D
        AND #18
        OR #C0 ;#C0/#40
        LD D,A
        RET

SCR_ADR2
        LD A,E
        AND #18
        ADD A,#C0
        LD H,A
        LD A,E
        AND 7
        RRCA
        RRCA
        RRCA
        ADD A,D
        LD L,A
        RET

;Из координат адрес в атрибутах
;H-X, L-Y
ATR_ADR
        LD A,H
        ADD HL,HL
        ADD HL,HL
        ADD HL,HL
        LD H,#36 ;#36, если экран с #C000
                 ;#16, если с #4000
        ADD HL,HL
        ADD HL,HL
        ADD A,L
        LD L,A
        RET

;Чанковый метод стирания окна. 17 фаз
;DE - координаты, D-X, E-Y
;HL- адрес чанки 8*8 пикселей
;BC - размер окна, B - по Y, C - по X
CHANX
        LD A,17   ;кол-во фаз
        LD HL,CHANKS
LOOPch
        PUSH AF

YSZ     LD B,24  ;Y-размер
CSZ     LD DE,#0 ;координаты
CHNK1
        PUSH BC
        PUSH DE
        PUSH HL
        CALL SCR_ADR

        LD B,(HL)
        INC HL
        LD C,(HL)
        INC HL
        LD A,(HL)
        INC HL
        LD L,(HL)
        LD H,A

XSZ     LD A,32    ;X-размер
CHN1
        EX AF,AF' ;'
        PUSH DE

        LD A,(DE)
        AND B
        LD (DE),A
        INC D

        LD A,(DE)
        AND C
        LD (DE),A
        INC D

        LD A,(DE)
        AND H
        LD (DE),A
        INC D

        LD A,(DE)
        AND L
        LD (DE),A
        INC D
;
        LD A,(DE)
        AND B
        LD (DE),A
        INC D

        LD A,(DE)
        AND C
        LD (DE),A
        INC D

        LD A,(DE)
        AND H
        LD (DE),A
        INC D

        LD A,(DE)
        AND L
        LD (DE),A
;
        POP DE
        EX AF,AF' ;'
        INC E
        DEC A
        JR NZ,CHN1

        POP HL
        POP DE
        POP BC
        INC E
        DJNZ CHNK1

        INC HL,HL,HL,HL
        POP AF
        DEC A

        PUSH AF,HL

        BIT 2,A
        CALL Z,FADE_OUT

        POP HL,AF

        HALT
        HALT

        JR NZ,LOOPch

FADE_OUT
        LD H,#5B+#80
        LD L,0
FOUT1   LD A,(HL)
        AND %00111111
        SRL A
        LD (HL),A
        DEC HL
        BIT 3,H
        JR NZ,FOUT1
        RET

;Копирование установок из игры
;для работы с ними
;HL - откуда копировать
FROMGAM
        LD HL,SET
        LD A,QVALUE   ;кол-во переменных
        LD DE,SETUP+1
FRG1    LDI
        INC DE
        INC DE
        INC DE
        DEC A
        JR NZ,FRG1
        RET

;Копирование установок в игру
;DE - куда копировать
TOGAM
        LD A,QVALUE   ;кол-во переменных
        LD HL,SETUP+1
TOG1    LDI
        INC HL
        INC HL
        INC HL
        DEC A
        JR NZ,TOG1
        RET

;Работа с диском
TRDOS
        EX AF,AF' ;'
        XOR A
        LD (23823),A  ;Обнуляем код
        LD (23824),A  ;ошибки TR-DOS
        LD (23570),A  ;Блокируем поток
        EX AF,AF' ;'
        PUSH HL
        LD HL,(23613)
        LD (DOS_ERR+1),HL
        LD HL,DOS_ERR ;Устанавливаем
        EX (SP),HL    ;свой обработчик
        LD (23613),SP
        JP #3D13
DOS_ERR LD HL,0
        LD (23613),HL
        LD A,6        ;Восстанавливаем
        LD (23570),A  ;поток
        LD A,(23838)
        LD B,A
        LD A,(23823)  ;Проверяем
        AND A         ;была ли ошибка
        RET Z
        CP B
        RET Z
        INC A
        RET Z
ERR     LD B,10
        LD A,2
        OUT (254),A
        HALT
        DJNZ $-1
        XOR A
        OUT (254),A
        RET

ERROR
        CALL ERR
        JP TOGAME

;Сохранение установок
SAVE_SETUP

        CALL SETIM1
        LD A,PG_MUZ
        CALL PAGE
        CALL MUTE    ;выключаем музыку

;Ищем файл
;       CALL FILE

        LD A,9
        LD (23814),A

        LD C,#18
        CALL TRDOS
        JR NZ,ERROR
        LD C,10
        CALL TRDOS
        LD A,C
        INC C
        JR Z,ERROR ;нет файла!
;Высчитываем адрес файла (сектор,дорожка)
        LD C,8
        CALL TRDOS

;Читаем сектор
        LD DE,(#5CDD+14)
        LD BC,#0105
        LD HL,BUFER
        PUSH DE,HL
        CALL TRDOS

;Переносим установки
        LD DE,BUFER+14
        CALL TOGAM

;Сохраняем сектор
        POP HL,DE
        LD BC,#0106
        CALL TRDOS
        JP TOGAME

;FILE   LD HL,FILENAM
;       LD DE,#5CDD
;       LD BC,9
;       LD A,C
;       LD (23814),A
;       LDIR
;       RET

;FILENAM DB "VERA   B" ;Имя файла для сохранения
           ;123456789
;Драйвер переключения страниц для 128-го
;A-номер нужной страницы
PAGE
        PUSH BC
        LD (NUMPAGE),A
PG_     OR 16+8
        LD BC,#7FFD
        OUT (C),A
        POP BC
        RET
NUMPAGE DB 0

CHANKS  DW #FF77,#FFFF
        DW #FF77,#FFDD
        DW #FF77,#FF55
        DW #FF55,#FF55
        DW #FF55,#EE55
        DW #BB55,#EE55
        DW #BB55,#AA55
        DW #AA55,#AA55
        DW #AA55,#8855
        DW #2255,#0055
        DW #0055,#0055
        DW #0055,#0044
        DW #0011,#0044
        DW #0011,#0000
        DW #0010,#0000
        DW #0000,#0000
        DW #0000,#0000

TR0     DB "В е р а",0

TR1     DB "    Perspective",0

TR1_    DB "представляет игру",0

TR2     DB "    .pO,",0

TR3     DB "   iP  7p",0

TR4     DB "  .P    9;",0

TR5     DB "  d'   ,p",0

TR6     DB " i;  d6",0

TR7     DB ".D  89pPo",0

TR8     DB "iP 6'   7P",0

TR9     DB "d:      d'",0

TR10    DB "8;     8'",0

TR11    DB "Qp   oP",0

TR12    DB "  O:q6",0

TR14    DB "Художник",0

TR15    DB "Композиторы:",0

TR16    DB "Программисты:",0

TR17    DB "Авторы сценария:",0

TITRES
;       DB BORDER,1
        DB PAUS,0
        DB PAUS,0
        DB PAUS,0

        DB CLS,24,32,0,0 ;код,Yразмер,Xразмер,Y,X

        DB PAUS,100
        DB BOLD
        DB NCRD,10,83
        DB LINK
        DW TR1
        DB NORM
        DB PAUS,4
        DB NCRD,10,83
        DB LINK
        DW TR1

        DB PAUS,200

        DB BOLD
        DB NCRD,11,83
        DB LINK
        DW TR1_
        DB NORM
        DB PAUS,4
        DB NCRD,11,83
        DB LINK
        DW TR1_

        DB PAUS,150
        DB CLS,24,32,0,0 ;код,Yразмер,Xразмер,Y,X

        DB BOLD
        DB NCRD,5,105
        DB LINK
        DW TR2

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR2

        DB BOLD,PAUS,4
        DB NCRD,6,105
        DB LINK
        DW TR3

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR3

        DB BOLD,PAUS,4
        DB NCRD,7,105
        DB LINK
        DW TR4

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR4

        DB BOLD,PAUS,4
        DB NCRD,8,105
        DB LINK
        DW TR5

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR5

        DB BOLD,PAUS,4
        DB NCRD,9,105
        DB LINK
        DW TR6

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR6

        DB BOLD,PAUS,4
        DB NCRD,10,105
        DB LINK
        DW TR7

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR7

        DB BOLD,PAUS,4
        DB NCRD,11,105
        DB LINK
        DW TR8

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR8

        DB BOLD,PAUS,4
        DB NCRD,12,105
        DB LINK
        DW TR9

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR9

        DB BOLD,PAUS,4
        DB NCRD,13,105
        DB LINK
        DW TR10

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR10

        DB BOLD,PAUS,4
        DB NCRD,14,105
        DB LINK
        DW TR11

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR11

        DB BOLD,PAUS,4
        DB NCRD,15,105
        DB LINK
        DW TR12

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR12

        DB LINE,64+7,16
        DB BOLD
        DB NCRD,16,107
        DB LINK
        DW TR0

        DB NORM
        DB PAUS,4
        DB LINK
        DW TR0

        DB PAUS,0
        DB PAUS,0
        DB CLS,24,32,0,0

        DB NCRD,5,68
        DB "Enter - игровые настройки",13
        DB "  Space - перейти в игру"

        DB PAUS,100

        DB LINE,68,23 ;атрибутная полоса
        DB NCRD,23,83
        DB "www.vera.retropc.ru"

        DB PAUS,0
        DB CLS,24,32,0,0

        DB PAUS,50

        DB LINE,64+6,2
        DB LINE,64+6,5
        DB LINE,64+6,10
        DB LINE,64+6,16
        DB LINE,64+7,22

        DB BOLD
        DB NCRD,2,48
        DB LINK
        DW TR14
        DB PAUS,4
        DB NORM
        DB NCRD,2,48
        DB LINK
        DW TR14

        DB NCRD,3,72
        DB PAUS,30
        DB "Кирилл Каган (Surfin Bird)"

        DB PAUS,40
        DB BOLD
        DB NCRD,5,48
        DB LINK
        DW TR15
        DB NORM
        DB PAUS,4
        DB NCRD,5,48
        DB LINK
        DW TR15

        DB NCRD,6,72
        DB PAUS,30
        DB "Дмитрий Жемков (C-jeff)",13
        DB PAUS,30
        DB "Андрей Пеунов (Bedjamen)",13
        DB PAUS,30
        DB "n1k-o"

        DB PAUS,40
        DB BOLD
        DB NCRD,10,48
        DB LINK
        DW TR16
        DB NORM
        DB PAUS,4
        DB NCRD,10,48
        DB LINK
        DW TR16

        DB NCRD,11,72
        DB PAUS,30
        DB "Александр Шушков (Axor)",13
        DB PAUS,30
        DB "Александр Синяков (SAM style)",13
        DB PAUS,30
        DB "Сергей Бульба",13
        DB PAUS,30
        DB "Дмитрий Быстров (Alone Coder)"

        DB PAUS,40
        DB BOLD
        DB NCRD,16,48
        DB LINK
        DW TR17
        DB NORM
        DB PAUS,4
        DB NCRD,16,48
        DB LINK
        DW TR17

        DB NCRD,17,72
        DB PAUS,30
        DB "Владимир Сивов",13
        DB PAUS,30
        DB "Александр Разумов"

        DB PAUS,40
        DB BOLD
        DB NCRD,22,70
        DB LINK
        DW TR18
        DB NORM
        DB PAUS,4
        DB NCRD,22,70
        DB LINK
        DW TR18

        DB PAUS,0
        DB PAUS,0
        DB PAUS,0

        DB CLS,24,32,0,0

        DB PAUS,100
        DB NCRD,10,97
        DB LINE,64+7,10
        DB "Верьте в добро"
        DB PAUS,0
        DB PAUS,0
        DB CLS,24,32,0,0
        DB PAUS,0
        DB 0

TEXT0   DB "                  Клавиши в игре:",13
        DB "1 - вкл/выкл музыки",13
        DB "2 - вкл/выкл звуков",13
        DB "3 - вкл/выкл мыши",13
        DB "CS/SS/правая клавиша мыши - выкладывание вещи",13
        DB "C - центровка героя на экране",13
        DB "CS+3, CS+4 - листание вещей в мешке",13
        DB "Колесо мыши (ZXMC) - листание вещей в мешке",13
;       DB "Клавиши управления курсором + М - скролл карты",13
        DB "Удержание \"Fire\" + направление - скролл карты"
        DB 13
;       DB "Enter/клик в окне диалога - продолжение общения",13
        DB "Enter/клик во время диалога - следующая реплика",13
        DB "CS+1 - пропустить диалог",13
        DB 13
        DB "             "
TR18    DB "(c) 2003-2008, Perspective",0

TEXT1   DB "      Игровые настройки",13
        DB "Кемпстон мышь",13
        DB "Колесо мыши",13
        DB "Sinclair-джойстик",13
        DB "Клавиатура (Q,A,O,P,Sp)",13
        DB "Ускорение курсора",13
        DB "Музыка",13
        DB "Звуки",13
        DB "Сохранить и выйти",13
        DB "Выйти без изменений",0

TEXT2   DB "  ",13
        DB "  ",13
        DB "  ",13
        DB "  ",13
        DB "  ",13
        DB "  ",13
        DB "  ",0

TEXT3   DB "v.1.02",0 ;Версия сборки игры
       
;Установки
;Формат: 1-й байт 0 - значит меняется значение только 0/1
;                 1 - значит меняется в диапазоне
;                    второй байт - мин. значение
;                    третий байт - макс. значен.
;                 2 - значит меняется местами с
;                     тригером по адресу 3,4 байтов
; если байт=255 - значений нет
; Само значение во 2-м байте

SETUP
        DB 0,0,0,0    ;мышь
        DB 0,0,0,0    ;колесо
STJ     DB 2,0        ;синклер
        DW STK+1
STK     DB 2,0        ;клавиатура
        DW STJ+1
        DB 1,0,-4,4   ;ускорение курсора
        DB 0,0,0,0    ;музыка
        DB 0,0,0,0    ;звуки
        DB #FF,0,0,0
        DB #FF,0,0,0

NUMLINE DB 0     ;Номер пункта
COORD   DW #0701 ;Координаты вывода пункта

font    INCBIN "Fontix4.C"

;SCR    INCBIN "C:VeraTitl.C"

IMVEC   EQU ($/256+1)*256;вектор вторых прерываний

BUFER   EQU IMVEC+257

        ENT
end

        ORG INTRO

        DISPLAY "LEN=",(font+1664)-IM2
        DISPLAY "Старт интро ",INTRO
        ;ORG BUFER
        savebin "intro.c",begin,end-begin