Login

Subversion Repositories NedoOS

Rev

Rev 358 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

;******* ВСПОМОГАТЕЛЬНЫЕ ПОДПРОГРАММЫ ****** page6

TIMER   LD A,(TIC) ;таймер
        CP 97
        RET NZ
        LD HL,TIC_UP
        INC (HL)
        LD A,(LEVEL)
        ADD A,(HL)
        CP 53 ;_____= время на апгрейд - Nlev
        JR C,timU
        LD (HL),0
        CALL UP_TIM
timU    LD HL,RESULT+5
        CALL time
        LD HL,LEVRES+5
        ;
time    ;HL-указ на младш. цифру 999:59
        INC (HL)
        LD A,(HL)
        CP 10
        RET C
        LD (HL),0  ;
        DEC HL
        INC (HL)
        LD A,(HL)
        CP 6
        RET C
        LD (HL),0   ;
        DEC HL
        DEC HL
        INC (HL)
        LD A,(HL)
        CP 10
        RET C
        LD (HL),0   ;;
        DEC HL
        INC (HL)
        LD A,(HL)
        CP 10
        RET C
        LD (HL),0  ;;
        DEC HL
        INC (HL)
        RET

XY1st   ;первонач X0,Y0
        LD HL,(HUMAN)
        LD A,L
        SUB 6
        JR C,xys1
        LD L,A
xys1    LD A,H
        SUB 6
        JR C,xys2
        LD H,A
xys2    LD (X0),HL
        RET

RNDcrr  LD A,R ;увеличение случайности
        LD HL,RNB
        XOR (HL)
        LD (HL),A
        RET

;-------расчёт параметров после исследов

HvFrc   DEFB 3,4, 4,6, 5,8 ;воин/конник
cBLADE  ;расчёт силы удара
        LD A,(kBLADE)
        EX AF,AF
        LD A,(MASTER)
        OR A
        LD A,(hBLADE)
        JR Z,cBB1
        EX AF,AF
cBB1    LD HL,HvFrc
        PUSH HL
        CALL WA
        LD (FORCE+4),A
        INC HL
        LD A,(HL)
        LD (FORCE+8),A
        POP HL
        EX AF,AF
        CALL BA
        LD (FORCE+13),A
        INC HL
        LD A,(HL)
        LD (FORCE+17),A
        RET

cSHILD  ;расчёт величина защиты
        LD A,(kSHILD)
        EX AF,AF
        LD A,(MASTER)
        OR A
        LD A,(hSHILD)
        JR Z,cSS1
        EX AF,AF
cSS1    LD HL,DEFENC+3
        CALL cSS2
        EX AF,AF
        LD HL,DEFENC+12
cSS2    LD (HL),A ;лу
        INC HL
        LD (HL),A ;во
        INC HL
        INC HL
        INC HL
        INC HL
        LD (HL),A ;ко
        RET

cTIC    ;расчёт TIC,TIC3 и параметров
        LD HL,TIC3 ;трёхфазный счётчик 0-2
        INC (HL)
        LD A,(HL)
        CP 3
        JR C,ctt1
        LD (HL),0
ctt1    INC HL  ;TIC cчётчик 0-255
        INC (HL)
        LD A,(HL)
        RRA
        JR NC,cTT0
        RRA
        JR C,cHORSE
        JR cBLADE
cTT0    RRA
        JR C,cSHILD
        ;
cARC    ;расчёт видимости/дальности стрельбы из лука
        LD A,(kARC)
        EX AF,AF
        LD A,(MASTER)
        OR A
        LD A,(hARC)
        JR Z,cAA1
        EX AF,AF
cAA1    LD HL,tARChu
        CALL WA
        LD (sRANGE+3),A
        ADD A,2
        LD (sSCAN+3),A
        INC HL
        LD A,(HL)
        LD (BFORCE+0),A
        EX AF,AF
        LD HL,tARCkg
        CALL WA
        LD (sRANGE+12),A
        ADD A,2
        LD (sSCAN+12),A
        INC HL
        LD A,(HL)
        LD (BFORCE+1),A
        RET

tARChu  DEFB 2,3, 2,4, 2,5 ;дальность+2/сила
tARCkg  DEFB 1,4, 1,6, 2,6


HvThor  DEFB 2,2, 3,2, 3,3, 4,4 ;скорость лошади 0-3

cHORSE  ;расчёт скорости лошадей
        LD A,(kHORSE)
        EX AF,AF
        LD A,(MASTER)
        OR A
        LD A,(hHORSE)
        JR Z,cHH1
        EX AF,AF
cHH1    LD HL,HvThor
        PUSH HL
        CALL WA
        LD (HvTHs+8),A
        INC HL
        LD A,(HL)
        LD (HvTDs+8),A
        POP HL
        EX AF,AF
        CALL WA
        LD (HvTHs+17),A
        INC HL
        LD A,(HL)
        LD (HvTDs+17),A
        RET

dMAGIC  ;--изменение маны (ix+6) для 16и героев
        LD HL,mag_TM
        LD A,(HL)
        DEC (HL)
        OR A
        JR NZ,dMG6
        LD (HL),5 ;к-во блоков -1
dMG6    ADD A,A
        ADD A,A
        ADD A,A
        ADD A,A ;x16
        CALL N_IX
        LD DE,16
        LD B,16 ;число героев в блоке
dMG0    LD A,(IX+0)
        OR A
        JR Z,dMGe
        LD A,(IX+4)
        LD HL,HEALTH+1
        CALL WA
        OR A
        JR Z,dMGe
        CP #80
        LD A,(IX+6)
        JR C,dMG1
        ;креатуры
        OR A
        JR Z,dMG2
        DEC (IX+6) ;dec маны
        JR dMGe
dMG2    LD A,(IX+5)
        SUB 6 ;dec здоровья
        JR NC,dMG3
        XOR A
dMG3    LD (IX+5),A
        JR dMGe
dMG1    ;маги
        CP MANA
        JR NC,dMGe
        INC (IX+6)
dMGe    ADD IX,DE
        DJNZ dMG0
        RET

;-----скука/повороты
SPLIN   CALL RND
        AND 127
        CP 102
        RET NC
        CALL C,N_IX
        LD A,(IX+8)
        INC A
        RET NZ
        LD A,(IX+4)
        CP 9
        JR C,spli1
        SUB 9
spli1   CP 7
        RET NC
        LD A,R
        RRCA
        LD A,(IX+2)
        JR C,spli2
        INC A
        JR spli3
spli2   DEC A
spli3   AND 7
        LD (IX+2),A
        RET

;----воcст крестьян----

peonN   ;подсчёт пеонов
        LD HL,0 ;(L/H - лес/золт)
        CALL loop_K
pen0    LD A,(IX+0)
        OR A
        JR Z,pen1
        LD A,(IX+13)
        CP 7
        JR Z,penG
        CP 6
        JR NZ,pen1
        INC L ;лес
        JR pen1
penG    INC H ;золото
pen1    ADD IX,DE
        DJNZ pen0
        RET ;HL

REpeon  ;восст пеонов
        LD A,(TIC)
        AND %111111
        CP %110101
        RET NZ
        CALL peonN
        LD DE,(peon_W)
        LD A,L
        CP E
        JR C,reoW
        LD A,H
        CP D
        RET NC
        LD C,7;золото
        JR reo1
reoW    LD C,6;лес
reo1    ;поиск любой базы
        PUSH BC
        LD B,16
reo2    CALL RND
        AND #1F
        ADD A,#28
        CALL B_IX
        LD A,(IX+0)
        OR A
        JR Z,reo3
        LD A,(IX+2)
        OR A
        JR Z,reobz
        CP 10
        JR Z,reobz
reo3    DJNZ reo2
        POP BC
        RET ;база не найдена
reobz   ;произв крестьянина
        CALL HL_IX0
        CALL stayON
        LD A,(MASTER)
        OR A
        LD A,9
        JR Z,reo5
        XOR A
reo5    EX AF,AF
        LD A,1
        CALL NEWHER
        POP BC
        RET NZ ;mem?
        LD (IX+13),C ;тип
        ;затормозить сборы отряда
        LD A,(pntDEL)
        ADD A,20 ;delay
        LD (pntDEL),A
        RET
;*L+
WMUSIC  EQU 60535
        ds WMUSIC-$

        DISP DSCR ;???
        DEFS 6,#C9
        JP outSND
;*B ..\BOBOV\CROW_B1.MUS ;0!
;*B ..\BOBOV\CROW_B2.MUS ;1
;*B ..\BOBOV\CROW_A2.MUS ;2
;*B ..\BOBOV\CROW_3.MUS  ;3
;*B ..\BOBOV\CROW_4.MUS  ;4
;*B ..\BOBOV\CROW_5.MUS  ;5
;*B ..\BOBOV\OSEN.MUS    ;6
;*B ..\BOBOV\X_TXY.MUS   ;7

;---------начальный опрос пользователя------
;---эти п/п будут удалены

ITX01   DEFB 1,10,109,10, 25,62,50,48,79,10, 56,51,64,48,10
        DEFB 55,48,10, 59,78,52,53,57, 127 ;нов.люд
ITX02   DEFB 2,10,109,10, 25,62,50,48,79,10, 56,51,64,48,10
        DEFB 55,48,10, 58,67,61,51,62,50, 127 ;нов.кунг
ITX04   DEFB 4,10,109,10, 14,53,64,61,67,66,74,65,79,10
        DEFB 50,10, 30,82,91,102,26,83, 127 ;exit
ITX03   DEFB 3,10,109,10, 14,62,65,65,66,48,61,62,50,56,66,74,10
        DEFB 56,51,64,67, 127 ;load

        macro ATRRs _hl,_bc,_e
        LD HL,_hl
        LD BC,_bc
        LD E,_e
        CALL ATRRBR
        ENDM

ATRRBR  PUSHs
        INC H
        INC L
        LD E,#40
        CALL ATRBAR
        POPs
        JP ATRBAR


NO_NUM  LD BC,#7000
nnU0    DEC BC
        LD A,C
        OR B
        JR NZ,nnU0
        ;
        LD BC,#F7FE
        IN A,(C)
        CPL
        AND %11111
        JR NZ,NO_NUM
        LD B,#EF
        IN A,(C)
        CPL
        AND %11111
        JR NZ,NO_NUM
        RET

NUMBER  LD BC,#F7FE
        IN A,(C)
        CPL
        AND %11111
        JR NZ,nmr1
        LD B,#EF
        IN A,(C)
        CPL
        AND %11110
        JR Z,NUMBER
        ;6-9
        LD E,A
        LD A,9
        RR E
        RR E
        RET C
        DEC A
        RR E
        RET C
        DEC A
        RR E
        RET C
        DEC A
        RET
        ;
nmr1    LD E,A
        LD A,1
        RR E
        RET C
        INC A
        RR E
        RET C
        INC A
        RR E
        RET C
        INC A
        RR E
        RET C
        INC A
        RET

INIprn  CALL INIpr1
        INC D
        RET

INIpr1  PUSH DE
        CALL PRINTS
        POP DE
        INC D
        RET

INImg1  CALL STS
        LD DE,#703
        LD BC,#1C0B
        CALL MU_BOX
        ATRRs #703,#0B1C,#71
        LD DE,#905
        PUSH DE
        LD HL,ITX01
        CALL INIprn
        LD HL,ITX02
        CALL INIprn
        LD HL,ITX03
        CALL INIprn
        LD HL,ITX04
        CALL INIprn
        POP HL
        RET

INImg2  PUSH AF
        DEC A
        ADD A,A
        ADD A,H
        LD H,A
        LD BC,#118
        LD E,#72
        CALL ATRBAR
        POP AF
        RET

INI123  DI
        LD SP,STACK;#403E
        CALL MEM6
        CALL invTAB
        CALL outSND
        CALL MEM7
        CALL INImg1
ipp0    CALL NUMBER ;(1-4)
        CP 5
        JR NC,ipp00 ;секретная комбинация
        CALL INImg2
        CP 3
        JP Z,INIlod ;загрузка отгрузки
        JR C,INInew ;новая игра (1/2)
        ;exit
        CALL NO_NUM
        LD DE,#808
        LD BC,#0C05
        CALL MU_BOX
        ATRRs #808,#050C,#72
        LD DE,#A0A
        LD HL,ITX4
        CALL PRINTS

        if 1==1
;NedoOS
quitnedoos
        call swapimer
        im 1
        ei
        GET_KEY ;вычитать кнопку Y
        QUIT
       
        else
       
        EI
        LD B,120
EEE     HALT
        DJNZ EEE
        ;exit
        DI
        IM 0
        LD HL,#4000
        LD DE,#4001
        LD (HL),#44
        LD B,#20
        LDIR
        XOR A
        LD BC,#7FFD
        OUT (C),A
        JP 0
        endif

ITX4    DEFB  25,67,10,56,10, 55,64,79,47,127
ipp00   CP 8
        JR C,ipp0
         ;jr $
        JP NC,NoDoIt

ITX1z   DEFB  29,59,62,54,61,62,65,66,74,10, 56,51,64,75,43,127;diff
ITX11   DEFB  1,10,109,10, 26,49,75,71,61,48,79, 127;norm
ITX12   DEFB  2,10,109,10, 27,62,50,75,72,53,61,61,48,79,127;high

INInew  ;нов
        DEC A
        LD (MASTER),A
        CALL NO_NUM
        LD DE,#D08
        LD BC,#1309
        CALL MU_BOX
        ATRRs #D08,#0913,#60
        LD DE,#F0A
        PUSH DE
        LD HL,ITX1z
        CALL INIprn
        LD HL,ITX11
        CALL INIprn
        LD HL,ITX12
        CALL INIprn
ipp1    CALL NUMBER
        CP 3
        JR NC,ipp1
        POP HL
        PUSH AF
        ADD A,A
        ADD A,H
        LD H,A
        LD BC,#10F
        LD E,#7B
        CALL ATRBAR
        POP AF
        DEC A
        LD (DIFFIC),A
        CALL NO_NUM
        JP LODnew

ITX3z   DEFB 31,58,48,54,56,66,53,10, 61,62,60,53,64,127
ITX3x   DEFB 62,66,59,62,54,53,61,61,62,57,10, 56,51,64,75,43,10,127

ndi0    LD A,(LEVEL);1/2-(+/-Level);3-(on/off) убить всех;  6-выход
        INC A
        CP 10
        LD L,0
        JR C,ndi1
        LD L,1
        SUB 10
ndi1    LD H,A
        LD (NDIstr+2),HL
        LD A,(MORTE)
        LD (NDIstr+7),A
        LD HL,NDIstr
        LD DE,#0
        CALL PRINTS
        ;----изм парам
        CALL NO_NUM
        CALL NUMBER
        CP 6
        RET Z ;вых
        LD HL,LEVEL
        CP 2
        JR Z,ndiLP
        JR C,ndiLM
        CP 3
        JR NZ,ndi0
        LD A,(MORTE)
        XOR 86
        LD (MORTE),A
        JR ndi0
ndiLM   LD A,(HL)
        DEC (HL)
        OR A
        JR NZ,ndi0
        LD (HL),16
        JR ndi0
ndiLP   LD A,(HL)
        INC (HL)
        CP 16
        JR C,ndi0
        LD (HL),0
        JR ndi0

INIlod  ;загр. сост
        CALL NO_NUM
        LD DE,#F01   ;номер отгр
        LD BC,#1606
        CALL MU_BOX
        ATRRs #F01,#0616,#68
        LD DE,#1103
        LD HL,ITX3z
        CALL INIprn
        DEC D
        LD HL,ITX3x
        CALL PRINTS
        PUSH DE
        LD A,%11000101
        LD HL,ATR+596
        LD (HL),A
        PUSH HL
ppi4    CALL NUMBER
        CP 9
        JR NC,ppi4
        POP HL
        LD (HL),#70
        POP DE
        PUSH AF
        CALL PRINT
        CALL NO_NUM
       
        if 1==0
       
        LD DE,#407  ;дисковод  отгр
        LD BC,#1608
        CALL MU_BOX
        ATRRs #407,#0816,#69
        LD DE,#609
        LD HL,TXdsT1
        CALL INIpr1
        LD HL,TXdsT2
        CALL INIpr1
        LD HL,TXdsk2
        CALL INIpr1
        LD HL,TXdsk3
        CALL PRINTS
        PUSH DE
        LD HL,ATR+314
        LD (HL),#69+#80
        PUSH HL
        CALL A_or_B
        LD (DISK_T),A
        POP HL
        LD (HL),#71
        ADD A,12
        POP DE
        CALL PRINT
       
        endif
       
        CALL MEM6
        POP AF
        DEC A
        JP LODgam

        if 1==0

TXdsT1  DEFB 14,65,66,48,50,74,66,53,10, 30,82,91,102,26,83, 127 ;вст.ТР-ДОС
TXdsT2  DEFB 52,56,65,58,10, 65,10, 62,66,51,64,67,55,58,48,60,56, 127 ;д с отгр

A_or_B  ;возвр: 0/1 - A/B
        NOP
        LD BC,#7FFE
        IN A,(C)
        AND %10000
        LD A,1
        RET Z
        LD B,#FD
        IN A,(C)
        AND %1
        RET Z
        JR NZ,A_or_B

TXdsk1  DEFB 14,65,66,48,50,74,66,53,10, 52,56,65,58,10, 2,127 ;insert d2
TXdsk2  DEFB 56,10, 67,58,48,54,56,66,53,10, 56,60,79,127 ;и укажите имя
TXdsk3  DEFB 52,56,65,58,62,50,62,52,48,10, 87,12,90,13,88,43,10,127 ;д-ва

INI_D2  CALL MEM7
        CALL STS
        LD DE,#105  ;дисковод c диском 2
        LD BC,#1607
        CALL MU_BOX
        ATRRs #105,#0716,#7A
        LD DE,#307
        LD HL,TXdsk1
        CALL INIpr1
        LD HL,TXdsk2
        CALL INIpr1
        LD HL,TXdsk3
        CALL PRINTS
        PUSH DE
        LD HL,ATR+184
        LD (HL),#7A;+#80
        PUSH HL
        CALL A_or_B
        LD (DISK_2),A
        POP HL
        LD (HL),#72
        ADD A,12
        POP DE
        CALL PRINT
        RET

        endif

        db " *    THIS IS A SOME OF TEXT.   "
        db " *    GENS4 RULEZ FOREVER :-)   "
        db " *    AMIGA - SUXX & MUSTDIE!   "
        db " *    COMING SOON NEW LEVELS!   "
        db " * WHY DON'T WE DO IT IN A ROAD?"
        db " *    MY PHONE IS 812-1433303   "
        db " * "

BF_256  DEFS 1024,#BF
LOD1st  ;первичн загр

        if 1==0

        CALL selD_2
        CALL TR000
        LD DE,#09
        LD B,1
        LD HL,BF_256
        PUSH HL
        CALL D_READ ;загр. табл.ф-лов
        POP HL
        JR C,LOD1st
        ;проверка метки диска D2,F1
        LD A,(HL)
        CP #D2
        JR NZ,LOD1st
        INC HL
        LD A,(HL)
        CP #F1
        JR NZ,LOD1st
        INC HL
        ;перенос тб.ф-лов
        LD DE,WX_LEN
        LD BC,numFL
        LDIR
       
        endif
       
        ;выбрать: князь или гризольда?
        LD A,(MASTER) ;в зависимости от того, за кого играем
        OR A
        RET Z
        CALL MEM6
        LD HL,WGRIZ
        LD DE,#DC00
        LD BC,1024
        LDIR
        RET

INXbad  DEFB 26,72,56,49,58,48,10, 71,66,53,61,56,79,10, 56,90,56,59,56, 127
INXba2  DEFB 62,66,51,64,67,55,58,48,10, 61,53,10, 61,48,57,52,53,61,48, 127

LODbad  DI
        CALL MEM7
        CALL STS
        LD HL,WFONT
        LD (FONT),HL
        LD DE,#204  ;ошибка чтения
        LD BC,#1706
        CALL MU_BOX
        ATRRs #204,#0617,#F2
        LD DE,#406
        LD HL,INXbad
        CALL INIpr1
        LD HL,INXba2
        CALL PRINTS
        ;
lggB    LD BC,#7FFE
        IN A,(C)
        AND %1
        JR NZ,lggB
        ;
        LD HL,ATR
        LD DE,ATR+1
        LD BC,767
        LD A,%00110110
        LD (HL),A
        OUT (254),A
        LDIR
        CALL INImg1
        LD A,3
        CALL INImg2
       
        if 1==1
        jp quitnedoos
        else
        JP INIlod
        endif

invTAB  ;постр табл инв байтов для монстров 6:#C300
        LD HL,#C300
        XOR A
itq0    PUSH AF
        LD C,0
        RRCA
        RL C
        RRCA
        RL C
        RRCA
        RL C
        RRCA
        RL C
        RRCA
        RL C
        RRCA
        RL C
        RRCA
        RL C
        RRCA
        RL C
        LD (HL),C
        POP AF
        INC HL
        INC A
        JR NZ,itq0
        RET

NDIstr  DEFB 112,109,0,0,10,60,109,0,127
NoDoIt
        if 1==1
        ;8-вход в режим отладки
        CALL ndi0
        JP INI123
        else
        ;86275-вход в режим отладки
        LD A,44
        CALL hexPRN
        CALL hexDIG
        LD H,A
        PUSH HL
        CALL hexDIG
        POP HL
        LD L,A
        LD DE,ndi0-#6275
        ADD HL,DE
        CALL ndiS
        JP INI123
ndiS    JP (HL)
        endif

hexDIG  CALL NO_NUM ;ввод #XX
        CALL NUMBER
        CALL hexPRN
        ADD A,A
        ADD A,A
        ADD A,A
        ADD A,A
        PUSH AF
        CALL NO_NUM
        CALL NUMBER
        CALL hexPRN
        POP BC
        ADD A,B
        RET
        ;
hexPRN  PUSH AF
        LD DE,#17
        CALL PRINT
        POP AF
        RET

WGRIZ
        incbin "data/wgrizold.dat"
;-------------------
        ent ;ENDD
;----исполняются отседа

lggTRY  DEFB 50

LODgam  ;восст игры A=0-7

        if 1==1
        add a,'1'
        ld (savgamletter),a
       
        call swapimer
        ;im 1
       
        ld de,savgamfilename
        OS_OPENHANDLE
        or a
        jr nz,badbad
        push bc
        LD de,G_DATA ;отгрузка идёт с #7700
        ld hl,0x4900 ;size
        OS_READHANDLE
        pop bc
        OS_CLOSEHANDLE
       
        call swapimer
        ;im 2
       
        CALL DECODE
badbad
        push af
        CALL LDItmp
        pop af
        JP nz,LODbad ;ошибка загрузки/нет данных об игре
       
        else

        ADD A,A
        ADD A,A
        ADD A,A
        ADD A,4 ;тр:4,12,20,28,36,44,52,60
        LD D,A ;трек
        LD A,5 ;к_во ретрай-попыток
        LD (lggTRY),A
        LD A,(DISK_T)
        LD (tDRIVE),A
        PUSH DE
        CALL TR000
        POP DE
        LD HL,G_DATA
        LD A,5
lgg0    LD SP,#403E
        PUSH AF
        CP 1
        LD B,16
        JR NZ,lgg1
        LD B,9
lgg1    LD E,1
lgg11t  PUSH DE
        CALL POS
        POP DE
lgg11   PUSHs  ;чтение отгрузки
        XOR A
        LD (SIDE),A
        LD B,1
        PUSH DE
        DI
        CALL d_rea_
        DI
        POP DE
        JR NC,SEC_ok
          CALL TR000 ;обр. ошибки
          POPs
          LD A,(lggTRY)
          DEC A
          LD (lggTRY),A
          OR A
          JR NZ,lgg11t
          POP AF
badbad    CALL LDItmp
          JP LODbad
SEC_ok  POPs
        INC E
        INC H
        DJNZ lgg11
        INC D
        POP AF
        DEC A
        JR NZ,lgg0
        CALL DECODE
        JR NZ,badbad;ошибка загрузки/нет данных об игре
lgg_OK 
        endif
        CALL LDItmp
        LD A,(DISK_T)
        LD (SAVDSK),A
        JP CONTgm  ;перейти к диску 2

LDItmp  ;загр временного кода
        DI
        ;
        CALL outSND
        ;
        LD HL,WMUSIC
        LD DE,DSCR
        LD BC,#1800
        LDIR
        ;
        DI
        LD A,2
        LD (V_FLAG),A
        RET

outSND  ;выруби AY
        LD B,16
oss0    PUSH BC
        LD A,B
        DEC A
        LD BC,#FFFD
        OUT (C),A
        LD B,#BF
        CP 7
        LD A,0
        JR NZ,oss7
        CPL
oss7    OUT (C),A
        POP BC
        DJNZ oss0
        RET

LDI123  CALL LDItmp
        CALL INI123 ;->>
;???
;относятся к загрузке игры
;*L+
        DEFS #FE00-$,98
        ;старт #fe00
        DI
        LD HL,#4000
        LD DE,#8000
swp5_2  LD C,(HL) ;обмен страниц 5 и 2
        LD A,(DE)
        LD (HL),A
        LD A,C
        LD (DE),A
        INC HL
        INC DE
        LD A,D
        CP #C0
        JR C,swp5_2
        JP JP_ST ;на старт игры