Subversion Repositories NedoOS

Rev

Rev 1000 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
930 alone 1
        DEVICE ZXSPECTRUM1024
2
        include "../../_sdk/sys_h.asm"  
3
 
1000 alone 4
        include "settings.ast"
5
 
930 alone 6
        SLOT 0
7
        page 8
8
        SLOT 3
9
 
10
EGA=1
11
FREESCROLL=1;TODO 0
12
PRFULLMAP=0
13
 
966 alone 14
MEGALZ=1 ;⥪    Hrust2
15
 
930 alone 16
STACK=0x4000;0x61a8
17
GAMESTACK=0x3f80;0xFFFF 
18
 
19
INT_IM2=0
20
SETIM2_TWICE=0
21
INT_USE_BC=1-EGA
22
 
23
scrbase=0x4000+4
24
iconsscraddr=scrbase+25+(32*40)
25
faceiconsscraddr=scrbase+(17*8*40)+1
26
sprmaxwid=48;32
27
sprmaxhgt=32
28
scrwid=128+8;160 ;double pixels
29
scrhgt=192;200
30
INTSTACK=0x3f00
31
tempsp=0x3f06 ;6 bytes for prspr 
32
 
33
FIXMOUSE=0 ;⠪  VERAENGN,  1  室
34
 
35
FILAT   EQU 8*6+64  ;ਡ. 
36
FILAT2  EQU 8*6+1+64 ;ਡ. 
37
 
38
PGTILES0=0x20
39
PGTILES1=0x21
40
PGTILES2=0x22
41
PGTILES3=0x23
42
PGICONS=0x24
43
PGSPRITES0=0x25
44
PGSPRITES1=0x26
45
PGSPRTRAN0=0x27
46
PGSPRTRAN1=0x28
47
PGHUD=0x29
48
PGDAYNIGHT=0x2a
49
 
50
szARROWS=45*32
51
 
52
;25.08.08
53
;६  
54
;IM2     EQU #6666 ;ᯮ  뢠
55
SHADSCR EQU #4000 ; ࠭ ()
56
SCR     EQU #C000 ;᭮ ࠭
57
SCRWD   EQU 24    ;ਭ  ࠭  
58
SCRHG   EQU 24    ;  ࠭  -/-
59
FRAME   EQU 2     ;- ३  ﬨ ࠭
60
MAX_X   EQU 245   ;।    X
61
MAX_Y   EQU 181   ;।    Y
62
QVESH   EQU 18 ;- 饩  誥
63
SPD_HERO EQU 1 ;V ६饭  ( ᫮ -  V)
64
ROTSPD  EQU 2 ;᪮    ⨨ ।⮢
65
STEPS   EQU 2 ;- ᥫ  . ६. ன  1 蠣
66
STEP1   EQU (16/STEPS)-1
67
STEP2   EQU (8/STEPS)-1
68
DSTV    EQU 1 ; ᪮쪮   室.   
69
DSTP    EQU 2 ; ᪮쪮   室. ᮭ  
70
FR      EQU 16 ;  
71
SCMOD   EQU 20 ;প । 室  ० ஫ 
72
FRM     EQU 25 ; (३)    
73
FRM2    EQU 6 ;- ३  . 뢠  
74
PERS    EQU 10 ;- ᮭ    .  ࠧ.
75
TOKEN   EQU 7 ;- ࠢ  (⮪)  ⥪-1
76
MAXTASK EQU 5 ;. - 
77
SPD_NGT EQU 1200 ;- ३, १ . ஫. ࠩ 
78
                 ;   ஢ ᮬ
79
VIDSPD  EQU 3 ;᪮.  (MAX 2)
80
COUNT   EQU 26 ;-  
81
 
82
;࠭
83
PG_SPR  EQU 0 ;6912:ࠩ 2*2 512 , EGA:cursors
84
PG_MAP  EQU 1 ;,ᨢ,,ਯ,㪨
85
PG_EXCH=2 ;   0x9000 (VIDEOS)
86
PG_MISC EQU 3 ;ᯠ. ⥪,祢 , 㯠.,ᨢ
87
PG_HERO EQU 4 ;ࠩ 
88
PG_MUZ  EQU 6 ;,몠
89
PG_VIEW EQU 7 ;㯠. ࠭
90
 
91
        ;slot 3
92
        ;page 0
93
        org PROGSTART
94
begin
95
        jp begin2 ;/prsprqwid (sprites in file are made so that they return here)
96
begin2
97
        ld sp,STACK
98
        OS_HIDEFROMPARENT
99
 
100
        ld e,3+0x80 ;6912+keep
101
        OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
102
 
103
        ;ld e,1
104
        ;OS_SETSCREEN
105
        ld e,0 ;color byte
106
        OS_CLS
107
        ;ld e,0
108
        ;OS_SETSCREEN
109
        ;ld e,0 ;color byte
110
        ;OS_CLS
111
 
112
        OS_GETMAINPAGES
113
;dehl=pages in 0000,4000,8000,c000 
114
        ld a,e
115
        ld (pggfx),a
116
        ld a,h
117
        ld (pgcode8000),a
118
        ld a,l
119
        ld (pgcodec000),a
120
        ;OS_NEWPAGE
121
        ;ld a,e
122
        ld (tpgs+0),a
123
 
124
        OS_NEWPAGE
125
        ld a,e
126
        ld (tpgs+PG_EXCH),a
127
 
128
        OS_NEWPAGE
129
        ld a,e
130
        ld (pgfake),a ; ࠭  㤥 뢠  ᮢ ࠩ⮢  ஢
131
        ld (pgfake2),a
132
        ;OS_NEWPAGE
133
        ;ld a,e
134
        ;ld (pgmain4000),a 
135
 
136
        ld de,res_path
137
        OS_CHDIR
138
        ;ld de,muzfilename
139
        ;call openstream_file
140
        ;ld a,7
141
        ;call setpg
142
        ;ld de,music
143
        ;ld hl,music_sz
144
        ;call readstream_file
145
        ;call closestream_file
146
 
147
        ld hl,levelfilenames
148
loadlevels0
149
        ld a,(hl) ;pg
150
        inc hl
151
        cp -1
152
        jr z,loadlevels0q
153
       or a
154
       jr z,loadlevels0_nonewpg
155
       push hl
156
       ld h,tpgs/256
157
       ld l,a
158
       push hl
159
       OS_NEWPAGE
160
       pop hl
161
       ld (hl),e
162
       ld a,l
163
       pop hl
164
loadlevels0_nonewpg
165
        call setpg
166
        ld e,(hl)
167
        inc hl
168
        ld d,(hl)
169
        inc hl
170
        push hl
171
        push de ;addr
172
        ex de,hl
173
        call openstream_file
174
        pop de
175
        ld hl,0x4000
176
        call readstream_file
177
        call closestream_file
178
        pop hl
179
        xor a
180
        ld b,a
181
        ld c,a
182
        cpir ;hl=after #0
183
        jr loadlevels0
184
loadlevels0q
185
 
186
        if !EGA
187
        ld a,(user_scr1_high) ;ok
188
        SETPG16K
189
        ld a,PG_VIEW
190
        call PAGE
191
        ld hl,0xc000
192
        ld de,0x4000
193
        ld bc,0x4000
194
        ldir
195
        ld a,(user_scr0_high) ;ok
196
        SETPG16K
197
        call setpggfxc000
198
        ld hl,0xc000
199
        ld de,0x4000
200
        ld bc,0x4000
201
        ldir
202
        call setpgcodec000
203
        endif
204
 
205
        ;call PAGE_PG_VIEW
206
        ;ld hl,wasARROWS
207
        ;ld de,ARROWS
208
        ;ld bc,szARROWS
209
        ;ldir ;TODO recode for EGA
210
 
211
        ld a,PGDAYNIGHT
212
        call setpg
213
        ld hl,0xc000
214
        ld de,0xc000+(152*32/2)
215
        ld bc,48*32/2
216
        ldir
217
        ld hl,0xc000+(200*32/2)
218
        ld de,0xc000+(200*32/2)+(152*32/2)
219
        ld bc,48*32/2
220
        ldir
221
 
222
        call changescrpg_current
223
       ;ld (curscrnum_int),a
224
 
225
        xor a
226
        call setpg
227
 
228
        ld hl,prsprqwid
229
        ld (0x0101),hl ;ࠩ  䠩 ⮢ ⠪,  室  0x0100
230
 
231
        jp MMENU
232
 
1001 alone 233
       if RUS
930 alone 234
varsfn
235
        db "vars.bin",0
236
savefn
237
        db "vera.ini",0
1001 alone 238
       else
239
varsfn
240
        db "varseng.bin",0
241
savefn
242
        db "veraeng.ini",0
243
       endif
930 alone 244
 
245
        align 256
246
tpgs
247
        ds 64;256
248
 
249
        include "palev.ast" ;verapalevening
250
        include "palnight.ast" ;verapalnight
251
        include "paldawn.ast" ;verapaldawn
252
        include "palday.ast" ;verapalday
253
standardpal
254
        STANDARDPAL
255
pal
256
        ds 32,0xff
257
emptypal
258
        ds 32,0xff
259
 
260
egaon
937 alone 261
        db 0 ;/1
930 alone 262
 
263
quiter
264
        if 1==0
265
        halt
266
pgmuznum=$+1
267
        ld a,0
268
        SETPG32KHIGH
269
          ld hl,muz
270
          OS_SETMUSIC
271
        halt
272
        endif
273
        call swapimer
274
        im 1
275
        call killmuz ;because we played music not by OS
276
        QUIT
277
 
278
killmuz
279
        ld a,0xfe
280
        call shut1ay
281
        ld a,0xff
282
shut1ay
283
        ld bc,0xfffd
284
        out (c),a
285
        ld de,0x0e00
286
shutay0
287
        dec d
288
        ld b,0xff
289
        out (c),d
290
        ld b,0xbf
291
        out (c),e
292
        jr nz,shutay0
293
        ret
294
 
295
redattr_killable2b
296
        dw 0
297
 
298
       if EGA
299
prtileega
300
; ⠩ 2*2   ⥭ ࠭
301
;DE=  ⥭ ࠭ (D=2*Y+SHADSCR, E=2*X)
302
;HL= ⠩ (0xc000,0xc020...)
303
; EGA   㬭  4
304
        add hl,hl
305
        add hl,hl
306
        ld a,h
307
        rlca
308
        rlca
309
        and 3
310
        add a,PGTILES0
311
        call setpg
312
        ld a,h
313
        or 0xc0
314
        ld h,a
315
        ex de,hl
316
        res 6,h ;2*Y
317
        ld a,l ;2*X
318
        ld l,h
319
        ld h,0
320
        ld b,h
321
        ld c,l ;hl=bc=2*Y
322
        add hl,hl
323
        add hl,hl
324
        add hl,bc ;10*Y
325
        add hl,hl
326
        add hl,hl ;40*Y
327
        add hl,hl
328
        add hl,hl
329
        add hl,hl
330
        add hl,hl ;16*40*Y
331
       add a,scrbase&0xff
332
        ld c,a ;2*X
333
        ld b,0x40
334
        add hl,bc
335
       call setpgsscr40008000_current ;shadow
336
        ld bc,0x1008
337
;b=hgt,c=wid (/2)
338
;de=gfx
339
;hl=scr
340
        ld a,55 ;"scf"
341
        ld (wasdrawimg),a
342
        jp primgega_onescreen_setpgsmain40008000
343
        ;jp primgega
344
 
345
;  3*3   ᭮ ࠭ (FIXME - ᥩ  ! 뢠  IM2)
346
;HL- ࠩ
347
;DE-  ࠭ (  न    D-X, E-Y)
348
BLOCK33
349
        ld a,PGICONS
350
        call setpg
351
        ex de,hl
352
        ;ld hl,0x4000+24 ;TODO
353
        ld bc,0x180c
354
;b=hgt,c=wid (/2)
355
;de=gfx
356
;hl=scr
932 alone 357
primgega
930 alone 358
        push bc
359
        call setpgsscr40008000;_current ;visible
360
        pop bc
361
        push bc
362
        push de
363
        push hl
364
        call primgega_onescreen
365
        call setpgsscr40008000_current ;shadow
366
        pop hl
367
        pop de
368
        pop bc
369
        jp primgega_onescreen_setpgsmain40008000
370
       endif
371
 
372
       if 1;!EGA
373
setpggfxc000
374
pggfx=$+1
375
        ld a,0
376
        SETPG32KHIGH
377
        ret
378
       endif
379
setpgcodec000
380
pgcodec000=$+1
381
        ld a,0
382
        SETPG32KHIGH
383
        ret
384
 
385
setcurscr1
386
        call setcurscr0
387
        jr setcurscr_change
388
 
389
; ࠭, ⥪騬  0-
390
BLACK
391
        ld a,(user_scr0_high) ;ok
392
        SETPG4000
393
 
394
        LD HL,#4000
395
        LD DE,#4001
396
        LD BC,6911
397
        LD (HL),L
398
        LDIR
399
;        LD A,16
400
;CURSCR  LD (PG_+1),A
401
setcurscr0
402
        ld a,(curscrnum)
403
        or a
404
        jr z,PAGE_PG_VIEW ;nz???
405
setcurscr_change
406
        call changescrpg_current
407
       ld (curscrnum_int),a
408
        ;ld e,a
409
        ;OS_SETSCREEN
410
 
411
PAGE_PG_VIEW
412
       if EGA
413
        LD A,PG_VIEW
414
       else
415
        push bc
416
        ld a,(user_scr1_high) ;ok
417
        SETPGC000
418
        pop bc
419
        ret
420
       endif
421
 
422
;ࠩ ४祭 ࠭  128-
423
;A- 㦭 ࠭
424
PAGE
425
setpg
426
        push bc
427
        ;and 0xe7
428
         ;cp 2
429
         ;jr z,$
430
         ;cp 5
431
         ;jr z,$
432
        ;ld ($+4),a
433
        ;ld a,(tpgs) ;⠪ ॥ࠡ쭮 , .. ᯮ   ࠡ稪 뢠!
434
        ld c,a
435
        ld b,tpgs/256
436
        ld a,(bc)
437
        SETPGC000
438
        pop bc
439
        ret
440
 
441
;        PUSH BC
442
;        LD (NUMPAGE),A
443
;PG_     OR 16+8
444
;        LD BC,#7FFD
445
;        OUT (C),A
446
;        POP BC
447
;        RET 
448
;NUMPAGE DB 0
449
 
450
setpgscr7
451
        push bc
452
        ld a,(user_scr1_high) ;ok
453
        SETPGC000
454
        pop bc
455
        ret
456
 
457
       if EGA
458
swapre
459
arroffega_scraddr2=$+1
460
        ld de,0
461
        ld hl,(arroffega_scraddr)
462
        ld (arroffega_scraddr),de
463
        ld (arroffega_scraddr2),hl
464
arroffega_bufaddr2=$+1
465
        LD de,mouse_buf2
466
        ld hl,(arroffega_bufaddr)
467
        ld (arroffega_bufaddr),de
468
        ld (arroffega_bufaddr2),hl
469
        ret
470
       endif
471
 
472
FMCNT2  DB SCMOD ;稪
473
 
474
;  ஬ 誨
475
;(   ᭮ ࠭  ⥭)
476
mouse_buf
477
       if EGA
478
        ds 16*16/2
479
mouse_buf2
480
        ds 16*16/2
481
       else
482
        DS 48
483
       endif
484
;ࠩ 
485
ARROW   DS 64
486
; ⠥ ⠩  ⥭ ࠭
487
A_TILE  DS 40*2 ;max 144*2
488
        DB 0
489
 
490
reter
491
        ret
492
 
493
setpgmain4000
494
        ld a,(user_scr0_high) ;ok
495
        SETPG4000
496
        ret
497
 
498
setpgsmain40008000
499
;pgmain4000=$+1
500
        ;ld a,0
501
        ld a,(user_scr0_high) ;ok
502
        SETPG4000
503
pgcode8000=$+1
504
        ld a,0
505
        SETPG8000
506
        ret
507
 
508
setpgscr4000;_current
509
        call getuser_scr_high_cur
510
        SETPG4000
511
        ret
512
 
513
setpgscr4000_scr2
514
        call getuser_scr_high
515
        SETPG4000
516
        ret
517
 
518
setpgsscr40008000;_current
519
        call getuser_scr_low_cur
520
        SETPG4000
521
        call getuser_scr_high_cur
522
        SETPG8000
523
        ret
524
 
525
setpgsscr40008000_current
526
        call getuser_scr_low
527
        SETPG4000
528
        call getuser_scr_high
529
        SETPG8000
530
        ret
531
 
532
setpgc000_shadowscr
533
        call getuser_scr_high
534
        SETPGC000
535
        ret
536
 
537
setpgc000_curscr
538
        call getuser_scr_high_cur
539
        SETPGC000
540
        ret
541
 
542
getuser_scr_low
543
getuser_scr_low_patch=$+1
544
getuser_scr_low_patchN=0xff&(user_scr0_low^user_scr1_low)
545
        ld a,(user_scr1_low) ;ok
546
        ret
547
 
548
getuser_scr_high
549
getuser_scr_high_patch=$+1
550
getuser_scr_high_patchN=0xff&(user_scr0_high^user_scr1_high)
551
        ld a,(user_scr1_high) ;ok
552
        ret
553
 
554
getuser_scr_low_cur
555
getuser_scr_low_cur_patch=$+1
556
getuser_scr_low_cur_patchN=0xff&(user_scr0_low^user_scr1_low)
557
        ld a,(user_scr0_low) ;ok
558
        ret
559
 
560
getuser_scr_high_cur
561
getuser_scr_high_cur_patch=$+1
562
getuser_scr_high_cur_patchN=0xff&(user_scr0_high^user_scr1_high)
563
        ld a,(user_scr0_high) ;ok
564
        ret
565
 
566
changescrpg_current
567
        ld hl,getuser_scr_low_patch
568
        ld a,(hl)
569
        xor getuser_scr_low_patchN
570
        ld (hl),a
571
        ld hl,getuser_scr_high_patch
572
        ld a,(hl)
573
        xor getuser_scr_high_patchN
574
        ld (hl),a
575
        ld hl,getuser_scr_low_cur_patch
576
        ld a,(hl)
577
        xor getuser_scr_low_cur_patchN
578
        ld (hl),a
579
        ld hl,getuser_scr_high_cur_patch
580
        ld a,(hl)
581
        xor getuser_scr_high_cur_patchN
582
        ld (hl),a
583
 
584
        ld a,1
585
curscrnum=$+1
586
        xor 0
587
        ld ($-1),a
588
        ret
589
 
590
        if 1==0
591
changescrpg
592
        call changescrpg_current
593
        ld (curscrnum_int),a
594
        ret
595
        endif
596
 
936 alone 597
primgega_pgdaynight
598
       ld a,PGDAYNIGHT
599
        jr primgega_pga
930 alone 600
primgega_pghud
601
       ld a,PGHUD
602
primgega_pga
603
;a=pg
604
;b=hgt,c=wid (/2)
605
;de=gfx
606
;hl=scr
607
        push bc
608
        push de
609
        push hl
610
       push af
611
       ld a,55
612
       ld (im_arroff),a
613
       call ARROFF
614
       pop af
615
       ld (primgega_pg),a
616
       ;ld a,PGHUD
617
       call setpg
618
        call setpgsscr40008000;_current ;visible
619
        pop hl
620
        pop de
621
        pop bc
622
        push bc
623
        push de
624
        push hl
625
        call primgega_onescreen
626
       call ARRON
627
       ld a,55+128 ;"or a"
628
       ld (im_arroff),a
629
primgega_pg=$+1
630
       ld a,PGHUD
631
       call setpg
632
        call setpgsscr40008000_current ;shadow
633
        pop hl
634
        pop de
635
        pop bc
636
        ld a,55 ;"scf"
637
        ld (wasdrawimg),a
638
primgega_onescreen_setpgsmain40008000
639
        call primgega_onescreen
640
        jp setpgsmain40008000
641
primgega_onescreen
642
;b=hgt,c=wid (/2)
643
;de=gfx
644
;hl=scr
645
;call from DAY_NGT
646
primgega0
647
        push bc
648
        ld hx,b
649
        push hl
650
        ld bc,40
651
primgegacolumn0
652
        ld a,(de)
653
        inc de
654
        ld (hl),a
655
        add hl,bc
656
        dec hx
657
        jr nz,primgegacolumn0
658
        pop hl
659
        ld a,0x9f;0xa0
660
        cp h
661
        ld bc,0x4000
662
        adc hl,bc
663
        jp pe,primgegacolumn0q ;  砥
664
;8000->000 ( 6000)  a000->e001 ( 4001)
665
         inc a
666
        xor h
667
        ld h,a
668
primgegacolumn0q
669
        pop bc
670
        dec c
671
        jr nz,primgega0
672
        ret
673
 
674
getimgega_onescreen
675
;b=hgt,c=wid (/2)
676
;de=gfx
677
;hl=scr
678
;call from DAY_NGT
679
getimgega0
680
        push bc
681
        ld hx,b
682
        push hl
683
        ld bc,40
684
getimgegacolumn0
685
        ld a,(hl)
686
        ld (de),a
687
        inc de
688
        add hl,bc
689
        dec hx
690
        jr nz,getimgegacolumn0
691
        pop hl
692
        ld a,0x9f;0xa0
693
        cp h
694
        ld bc,0x4000
695
        adc hl,bc
696
        jp pe,getimgegacolumn0q ;  砥
697
;8000->000 ( 6000)  a000->e001 ( 4001)
698
         inc a
699
        xor h
700
        ld h,a
701
getimgegacolumn0q
702
        pop bc
703
        dec c
704
        jr nz,getimgega0
705
        ret
706
 
707
climgega
708
;in IM2
709
        ;ld a,55 ;"scf"
710
        ;ld (wasdrawimg),a
711
        push bc
712
        push de
713
        push hl
714
       ;ld a,55
715
       ;ld (im_arroff),a
716
       ;call ARROFF
717
        call setpgsscr40008000;_current ;visible
718
        pop hl
719
        pop de
720
        pop bc
721
        push bc
722
        push de
723
        push hl
724
        call climgega_onescreen
725
       ;call ARRON
726
       ;ld a,55+128 ;"or a"
727
       ;ld (im_arroff),a
728
        call setpgsscr40008000_current ;shadow
729
        pop hl
730
        pop de
731
        pop bc
732
        ;ld a,55 ;"scf"
733
        ;ld (wasdrawimg),a
734
climgega_onescreen
735
;b=hgt,c=wid (/2)
736
;e=gfx byte
737
;hl=scr
738
climgega0
739
        push bc
740
        ld hx,b
741
        push hl
742
       ld a,e
743
        ld bc,40
744
climgegacolumn0
745
        ld (hl),a
746
        add hl,bc
747
        dec hx
748
        jr nz,climgegacolumn0
749
        pop hl
750
        ld a,0x9f;0xa0
751
        cp h
752
        ld bc,0x4000
753
        adc hl,bc
754
        jp pe,climgegacolumn0q ;  砥
755
;8000->000 ( 6000)  a000->e001 ( 4001)
756
         inc a
757
        xor h
758
        ld h,a
759
climgegacolumn0q
760
        pop bc
761
        dec c
762
        jr nz,climgega0
763
        ;call setpgcodec000
764
        jp setpgsmain40008000
765
 
766
clsega
767
        call changescrpg_current
768
        call clsega_onescreen
769
        call changescrpg_current
770
clsega_onescreen
771
        call setpgsscr40008000
772
        ld hl,0x4000
773
        ld de,0x4001
774
        ld bc,0x7fff
775
        ld (hl),l;0
776
        ldir
777
        jp setpgsmain40008000
778
 
779
;   IM2
780
IM2MEN
781
        LD HL,IM2MC
782
        INC (HL)
783
        LD A,(HL)
784
        CP VIDSPD
785
        JR NZ,IM2M1
786
        LD E,0
787
 
788
;. . .
789
        ;LD A,(PG_+1)
790
        ;BIT 3,A
791
        ;LD A,7
792
        ;JR Z,$+4
793
        ;LD A,5
794
        ;PUSH AF
795
        ;CALL PAGE
796
       call setpgc000_shadowscr
797
 
798
        LD HL,(VIDEO_SP)
799
        LD (MMENU2_1),HL
800
        CALL VIDEO_2
801
 
802
        LD HL,mouse_buf
803
        LD DE,A_TILE
804
        LD BC,48
805
        LDIR
806
        LD HL,(ARRTO+1)
807
        LD (MMN2+1),HL
808
 
809
;.  
810
        ;POP AF
811
        ;CALL PAGE
812
       call setpgc000_shadowscr ;???
813
        ;LD A,(PG_+1)
814
        ;XOR 8
815
        ;LD (PG_+1),A
816
       call changescrpg_current
817
       ld (curscrnum_int),a
818
       ld e,a
819
       OS_SETSCREEN
820
        JR IM2M2
821
 
822
IM2M1
823
;. . .
824
        ;LD A,(PG_+1)
825
        ;BIT 3,A
826
        ;LD A,5
827
        ;JR Z,$+4
828
        ;LD A,7
829
        ;CALL PAGE
830
       call setpgc000_curscr
831
 
832
        CALL ARROFF
833
IM2M2   CALL ARRON
834
        JP MUS
835
 
836
MMENU2
837
MMENU2_1=$+1
838
        LD HL,VIDEOS
839
        LD A,0 ;稪 ३
840
IM2MC   EQU $-1
841
        CP VIDSPD+1
842
        RET NZ
843
        XOR A
844
        LD (IM2MC),A
845
 
846
        LD (VIDEO_SP),HL
847
        ;LD A,(PG_+1)
848
        ;BIT 3,A   ;. . .
849
        ;LD A,7
850
        ;JR Z,$+4
851
        ;LD A,5
852
        ;CALL PAGE
853
       call setpgc000_shadowscr
854
 
855
        LD IX,A_TILE
856
MMN2    LD HL,0
857
        CALL ARRTO+3
858
 
859
;뢮 1  
860
VIDEO
861
        LD E,1
862
VIDEO_2
863
        LD (VIDSP+1),SP
864
VIDEO_SP=$+1
865
VID1m2=$+1
866
        LD SP,VIDEOS
867
       jp VID1go
868
VID1
869
        LD (HL),C ;   0x01xx
870
VID1go
871
        POP HL
872
 
873
;᫨ 楤 뢠  
874
;뢠,  POP HL 㦭  
875
;POP BC:LD H,B:LD L,C
876
 
877
        POP BC      ;1 
878
        LD (HL),C
879
        INC H
880
        LD (HL),B
881
        INC H
882
 
883
        POP BC
884
        LD (HL),C
885
        INC H
886
        LD (HL),B
887
        INC H
888
 
889
        POP BC
890
        LD (HL),C
891
        INC H
892
        LD (HL),B
893
        INC H
894
 
895
        POP BC
896
        LD (HL),C
897
        INC H
898
        LD (HL),B
899
 
900
        POP BC      ;ਡ
901
        LD H,B
902
        ;LD (HL),C
903
        DJNZ VID1
904
        LD (VIDEO_SP),SP
905
 
906
VIDSP   LD SP,0
907
 
908
VID2_1=$+1
909
        LD A,0      ;. ஢
910
        ADD A,E
911
        CP 5        ;- ஢
912
        JR C,VID4
913
VID3    XOR A
914
        LD HL,VIDEOS
915
        LD (VIDEO_SP),HL
916
VID4    LD (VID2_1),A
917
        RET
918
 
919
; "1,2,3,4,5"
920
DIGKp1
921
        db 0
922
 
923
KEYSp1
924
        db 0
925
 
926
; +
927
MKEYSp1
928
        db 0
929
 
930
        include "int.asm"
931
        include "prspr.asm"
932
        include "saveload.asm" ;㧪/ ﭨ 
933
        include "IM2.asm"
934
        INCLUDE "PRINT.asm" ; ࠩ⮢, ⥪  ..
935
        INCLUDE "TALK.asm"  ;㦨 
1001 alone 936
        include "talktext.asm"
930 alone 937
 
938
;砫 ࠭塞 ६
939
VARS    INCLUDE "VARS.asm" ;ॠ쭮    ᯠ뢠
940
ENDVARS
941
LEN_S   EQU (256*6)-(ENDVARS-VARS)
1001 alone 942
        display "VARS=",VARS
943
        display "LEN_S=",LEN_S
930 alone 944
daynightphase
945
        db 0
946
       if EGA
947
gamemenucolorline;=#DAD9
948
        ds 6
949
       else
950
gamemenucolorline=#DAD9
951
       endif
952
 
953
       if EGA
954
NEV1
955
        xor d
956
NEV2
957
        xor h
958
NEV3
959
        xor l ;᫨   祩 0 - ᮢ ⮫쪮 ᨫ
960
       endif
961
        DS LEN_S;-3 ;ࠥ  6- ᥪ஢
962
endvars
963
 
964
ABOT
965
        ;DISP #4000
966
        include "about.asm"
967
;        ENT 
968
;LENPR   EQU $-ABOT
969
        ;DISPLAY "ABOUT=",ABOT,LENPR
970
 
971
       display "=",$
972
res_path
973
        db "vera",0
974
 
975
levelfilenames
976
        db 0
977
        dw SPR;0xc000
978
        db "0_page.bin",0
979
        db 1
980
        ;dw DNPK
981
        dw 0xc000;DNPK
982
mapfn
1001 alone 983
       if RUS
930 alone 984
        db "1_page.bin",0
1001 alone 985
       else
986
        db "1_pageng.bin",0
987
       endif
930 alone 988
        db 3
989
        dw 0xc000
1001 alone 990
       if RUS
930 alone 991
        db "3_page.bin",0
1001 alone 992
       else
993
        db "3_pageng.bin",0
994
       endif
930 alone 995
        db 4
996
        dw 0xc000
997
        db "4_page.bin",0
998
        db 6
999
        dw 0xc000
1000
        db "6_page.bin",0
1001
        db 7
1002
        dw 0xdb00
1003
        db "7_page.bin",0
1004
        db PGTILES0;8
1005
        dw 0xc000
1006
        db "tiles0.bin",0
1007
        db PGTILES1;9
1008
        dw 0xc000
1009
        db "tiles1.bin",0
1010
        db PGTILES2;10
1011
        dw 0xc000
1012
        db "tiles2.bin",0
1013
        db PGTILES3;11
1014
        dw 0xc000
1015
        db "tiles3.bin",0
1016
        db PGICONS;12
1017
        dw 0xc000
1018
        db "icons.bin",0
1019
        db PGSPRITES0;13
1020
        dw 0xc000
1021
        db "sprites0.bin",0
1022
        db PGSPRITES1;14
1023
        dw 0xc000
1024
        db "sprites1.bin",0
1025
        db PGSPRTRAN0;15
1026
        dw 0xc000
1027
        db "sprtran0.bin",0
1028
        db PGSPRTRAN1;16
1029
        dw 0xc000
1030
        db "sprtran1.bin",0
1031
        db PGHUD;17
1032
        dw 0xc000
1033
        db "hud.bin",0
1034
hudmsg=0xc000+6144
1035
        db PGDAYNIGHT;18
1036
        dw 0xc000
1037
        db "daynight.bin",0
1038
        db -1
1039
 
1040
        include "../../_sdk/file.asm"
1041
 
1042
ARROWS
1043
        INCBIN "spr2x2x.C" ;1440 ;५ 㦭  
1044
;        ds szARROWS
1045
REZULT  ds 192 ;EQU #5802 ; 192   ᪨   
1046
; ਣ ࠭ #4000 -  
1047
 
1048
        display "-----",$
1049
;=============================================================
1050
;=================== 0x6000+
1051
 
1052
        ds 0x8000-$;IM2-1536-$;ORG IM2-1536
1053
        ;INCLUDE "IM2.asm"
1054
;IMVEC   EQU ($/256+1)*256;  뢠
1055
;START   EQU IMVEC+257 ; ᭮ ணࠬ
1056
 
1057
;᭮ ணࠬ
1058
GAME
1059
 
1060
        LD HL,MUS
1061
        LD (IM2Nm2),HL ;  ᮢ 
1062
        LD HL,1
1063
        LD (SPN+1),HL
1064
       if SETIM2_TWICE
1065
        CALL SETIM2
1066
       endif
1067
 
1068
       if !EGA
1069
        CALL BLACK
1070
       endif
1071
        CALL EXCH ;뫮 ﭮ 9000<->c000  ६ 
1072
 
1073
        ;LD HL,MUSNUM
1074
        ;DEC (HL) ;???
1075
 
1076
NEW_OLDp1=$+1
1077
        LD A,0
1078
        AND A
1079
        PUSH AF
1080
        JR NZ,OLD
1081
 
1082
        LD A,PG_MUZ
1083
        CALL PAGE
1084
        ;LD HL,VARSPK
1085
        ;LD DE,VARS
1086
        ;CALL DEHRUST ;⥯ 㧨  GAMEOVER_MMENU
1087
 
1088
        LD DE,#4000
1089
        PUSH DE,DE
1090
       if 1==0
1091
        LD A,PG_MISC
1092
        CALL PAGE
1093
        ld hl,#c000
1094
        PUSH DE
1095
        LD BC,KSCR-MAPMAS
1096
        LDIR
1097
        POP HL
1098
        LD DE,#C000
1099
        LD A,PG_MAP
1100
        CALL PAGE
1101
        CALL DEHRUST
1102
       else
1103
        LD A,PG_MAP
1104
        CALL PAGE
1105
       endif      
1106
 
1107
        POP DE
1108
        LD HL,DNPK
1109
        CALL DEHRUST
1110
 
1111
        ;LD A,PG_VIEW
1112
        CALL PAGE_PG_VIEW
1113
        POP HL
1114
        LD DE,NG
1115
        LD BC,608
1116
        LDIR
1117
 
1118
OLD     LD A,PG_MAP
1119
        CALL PAGE
1120
 
1121
        CALL INIGAME
1122
        LD (FLASH+1),A  ;A<>0
1123
 
1124
       if EGA
1125
        ld a,255 ; ५
1126
        ld (curarrowtype),a
1127
        ld de,emptypal
1128
        OS_SETPAL
1129
        ld e,0+0x80 ;EGA+keep
1130
        OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
1131
        ld a,1
1132
        ld (egaon),a
1133
        call clsega ;ࠡ稪 뢠 㦥 뢠 ᮢ ५!
1134
        ;ld de,verapalevening
1135
        ;ld de,verapalnight
1136
        ;ld de,verapaldawn
1137
        ld de,verapalday
1138
        OS_SETPAL
1139
       endif
1140
 
1141
        ;LD A,PG_VIEW
1142
        CALL PAGE_PG_VIEW
1143
       if !EGA
1144
        LD HL,VIEW
1145
        CALL LC5   ;ᯠ. . ࠭
1146
       endif
1147
 
1148
        LD A,(KARM)
1149
        CALL MSK
1150
 
1151
       if EGA
1152
       ;draw HUD
1153
        ;ld a,PGHUD
1154
        ;call setpg
1155
        ld bc,0xc020
1156
        ld de,0xc000
1157
        ld hl,scrbase+24
1158
;b=hgt,c=wid (/2)
1159
;de=gfx
1160
;hl=scr
1161
        call primgega_pghud
1162
        ;jr $
1163
       ;else
1164
       endif
1165
        CALL FONE
1166
        CALL PRMAP ;     ⥭ .
1167
        CALL MOVE  ;. ᭮. ࠭
1168
 
1169
        LD A,R
1170
        LD (RND+1),A
1171
 
1172
        CALL MUSNXT
1173
 
1174
        LD HL,IM2N
1175
        LD (IM2Nm2),HL
1176
 
1177
       if !EGA
1178
        ;LD A,16+8
1179
        ;CALL CURSCR
1180
        call setcurscr1
1181
       endif
1182
 
1183
        POP AF ;NEW_OLDp1
1184
        LD A,1
1185
        CALL Z,TALK
1186
 
1187
;᭮ 横
1188
MAPING
1189
       if EGA
1190
        ld a,55
1191
        ld (im_swapscr),a
1192
       endif
1193
MAPINGwait
1194
        HALT
1195
MAPINGp2=$+1
1196
        LD A,0 ;timer
1197
MAPINGp4=$+1
1198
        CP FRAME
1199
        JR C,MAPINGwait
1200
        XOR A
1201
        LD (MAPINGp2),A
1202
 
1203
MAPS    CALL MOVE  ;. ᭮. ࠭
1204
        CALL PRMAP ;     ⥭ .
1205
 
1206
SPDHERO LD A,SPD_HERO
1207
        DEC A
1208
        LD (SPDHERO+1),A
1209
        JR NZ,CrdHero
1210
SPH     LD A,SPD_HERO
1211
        LD (SPDHERO+1),A
1212
RunHero LD A,0     ;६頥  ன?
1213
        AND A
1214
        CALL NZ,RUNING
1215
CrdHero LD DE,0    ;騥 न   ᥫ
1216
        ;D-Y, E-X
1217
SprHero LD HL,hero ;騩 ࠩ 
1218
 
1219
        LD A,PG_HERO
1220
        CALL PAGE
1221
CLR_MAPm2=$+1
1222
        CALL HERO ;/HERO2  ;   ⥭ ࠭
1223
CLR_MAPp1=$+1
1224
        LD A,0
1225
        DEC A
1226
        CALL Z,CLMAP ;⠭  ᫥  (᪠ )
1227
MAINLOOP
1228
        LD HL,(mouse_crd)
1229
        CALL CALC
1230
;KEYS
1231
        LD A,(KEYSp1)
1232
        BIT 5,A
1233
        JP NZ,STEAL ; ० (SS+CS)
1234
        BIT 7,A
1235
        CALL NZ,TLKNG ;⠭  (Enter)
1236
 
1237
        CALL MOVMAP
1238
 
1239
        LD A,(DIGKp1) ; "1,2,3,4,5"
1240
        CP 31
1241
        JR NZ,CHG
1242
        XOR A
1243
        LD (CHANGE),A
1244
CHG     CALL NZ,CHANGE
1245
 
1246
        LD A,PG_MAP
1247
        CALL PAGE
1248
        LD A,#FE  ;"C"
1249
        IN A,(#FE)
1250
        BIT 3,A
1251
        CALL Z,CENTR ;ன  業
1252
 
1253
; +
1254
MKEYS
1255
        LD A,(MKEYSp1)
1256
MKEYSp2
1257
        LD H,28
1258
        RLA
1259
        PUSH AF
1260
        CALL C,VLIST ;DWN
1261
        DEC H
1262
        POP AF
1263
        RLA
1264
        PUSH AF
1265
        CALL C,VLIST ;UP
1266
        POP AF
1267
        RLA
1268
        PUSH AF
1269
        CALL C,VUSE1 ;ࠢ 
1270
        POP AF
1271
        RLA
1272
        CALL C,FIRE  ; 
1273
 
1274
MKY     ;LD A,PG_VIEW
1275
        CALL PAGE_PG_VIEW
1276
 
1277
;  ?
1278
        CALL SCRLMAP
1279
DIALOG  LD A,0
1280
        DEC A
1281
        JP Z,CURS1
1282
 
1283
;  誮
1284
        LD HL,(mouse_crd) ;H-X,L-Y
935 alone 1285
        CALL BOX ;뤥  
930 alone 1286
        CALL VMESH
1287
        JP NZ,CCURS
1288
 
1289
;஫ .࠭  
1290
;  ࠭栬 ࠭
1291
        LD BC,#0000
1292
        LD D,B
1293
        LD E,B
1294
;
1295
;       LD BC,#00FF
1296
;       LD DE,#0010
1297
 
1298
        LD A,H      ;X
1299
        AND A
1300
        JR NZ,SR
1301
        DEC C  ;-1
1302
        LD E,16
1303
 
1304
;ࠢ
1305
;       LD BC,#0001
1306
;       LD DE,#00F0
1307
 
1308
SR      CP MAX_X    ;240
1309
        JR C,SD
1310
        LD C,1
1311
        LD E,-16
1312
 
1313
;
1314
;       LD BC,#0100
1315
;       LD DE,#F000
1316
 
1317
SD      LD A,L      ;Y
1318
        CP MAX_Y
1319
        JR C,SU
1320
        INC B     ;1
1321
        LD D,-16
1322
 
1323
;
1324
;       LD BC,#FF00
1325
;       LD DE,#1000
1326
 
1327
SU      AND A
1328
        JR NZ,SRUN
1329
        LD B,-1
1330
        LD D,16
1331
 
1332
SRUN    LD A,B
1333
        OR C
1334
        JP Z,CCURS ;࠭  
1335
        LD A,2           ; ஫ 
1336
 
1337
; ᨬ  ⮣   ஭
1338
;ﭥ , 塞 ᬥ饭   . 
1339
 
1340
;஢ઠ  ࠭   ஫
1341
;஢ઠ ࠡ뢠   0
1342
;..  㬥襭 0 砥 255
1343
 
1344
SCROLL
1345
        EXA
1346
        LD HL,(DispMapX) ;H-Y, L-X
1347
        LD A,H
1348
        ADD A,B
1349
        CP 64-(SCRHG/2-1)
1350
        JR C,SL1 ; 諨  । 
1351
        LD B,0
1352
        LD D,B
1353
        LD A,H
1354
SL1     LD H,A
1355
        LD A,L
1356
        ADD A,C
1357
        CP 64-(SCRWD/2-1)
1358
        JR C,SL2
1359
        LD C,0
1360
        LD E,C
1361
        LD A,L
1362
SL2     LD L,A
1363
        PUSH HL
1364
 
1365
        LD HL,(CrdHero+1)
1366
        LD A,H
1367
        ADD A,D
1368
        LD H,A
1369
        LD A,L
1370
        ADD A,E
1371
        LD L,A
1372
        POP DE
1373
        EX DE,HL
1374
 
1375
; -   ன 室   
1376
;1-,0-
1377
MODscrl LD A,0
1378
       if FREESCROLL
1379
       ld a,1
1380
       endif
1381
        AND A
1382
        JR NZ,NOBOUND
1383
 
1384
;஢ઠ  室    
1385
; ஫ 
1386
 
1387
        LD A,(HEROCRD+1) ;Y 
1388
        DEC A
1389
        SUB H
1390
        JR C,NOSCRL1
1391
        CP SCRHG/2-1
1392
        JR C,K4
1393
        BIT 7,B
1394
        JR Z,K4
1395
        LD B,0
1396
NOSCRL1 BIT 7,B
1397
        JR NZ,K4
1398
        LD B,0
1399
 
1400
K4      LD A,(HEROCRD)   ;X 
1401
        SUB L
1402
        JR C,NOSCRL2
1403
        CP SCRWD/2
1404
        JR C,K3
1405
        BIT 7,C
1406
        JR Z,K3
1407
        LD C,0
1408
NOSCRL2 BIT 7,C
1409
        JR NZ,K3
1410
        LD C,0
1411
 
1412
K3      LD A,C
1413
        OR B
1414
        JR Z,CURSR ;  ࠭
1415
 
1416
        LD A,B
1417
        AND A
1418
        JR NZ,K5
1419
        LD A,(DispMapX+1) ;Y
1420
        LD H,A
1421
        LD A,(CrdHero+2)
1422
        LD D,A
1423
 
1424
K5      LD A,C
1425
        AND A
1426
        JR NZ,NOBOUND
1427
        LD A,(DispMapX)   ;X
1428
        LD L,A
1429
        LD A,(CrdHero+1)
1430
        LD E,A
1431
 
1432
NOBOUND
1433
        LD (DispMapX),HL ;H-Y, L-X
1434
        LD (CrdHero+1),DE
1435
       if EGA
1436
       ld a,3 ;3,2 - ⠥, 1 -  ⠥ (஬   ஥)
1437
       else
1438
        XOR A
1439
       endif
1440
        LD (MAPFLAG+1),A ;  ࠭
1441
 
1442
        EXA
1443
        CP 2
1444
        JR Z,CURS1p1
1445
CURSR   CALL SCRLMAP
1446
        JR C,CURS1
1447
CCURS   LD A,0      ;騩 
1448
        LD B,A
1449
        LD A,(F3+1) ; 誥  ?
1450
        AND A
1451
        LD A,(KARM)
1452
        JR Z,CURS0  ;
1453
        LD B,6      ; 㪨
1454
CURS0   AND A
1455
        JR NZ,CURS1p1
1456
        LD A,(UNDER+1)
1457
        AND A
1458
        LD A,6      ;㪠 (६ ।)
1459
        JR NZ,CURS1p1
1460
CURS01  LD A,(DISTP)
1461
        AND A
1462
        JR Z,CURS1
1463
        LD B,5      ; 
1464
CURS1   LD A,B
1465
CURS1p1
1466
        CALL MASK   ;  ࠩ , ᫨ 㦭
1467
 
1468
        CALL FTASK
1469
 
1470
; 
1471
END_G_1=$+1
1472
        LD A,1
1473
        DEC A
1474
        JP NZ,ENDGAME
1475
       ;jp ENDGAME
1476
        CALL DAY_NGT
1477
        CALL VOLCH ; -/+ ஬ 
1478
REMAP   LD A,0    ; ਭ㤨⥫쭮  ࠭
1479
        DEC A
1480
        JP NZ,MAPING
1481
        LD (REMAP+1),A
1482
       if EGA
1483
       ld a,3 ;3,2 - ⠥, 1 -  ⠥ (஬   ஥)
1484
       endif
1485
        LD (MAPFLAG+1),A
1486
        JP MAPING
1487
 
1488
;   (쭨)
1489
GAMEOVER_MMENU
1490
        ld hl,gamemenucolorline
1491
        ld (hl),0 ;   ⨢
1492
 
1493
        call SETIM1 ;⮡   2 ࠧ SETIM2
1494
       if EGA
1495
        ld de,emptypal
1496
        OS_SETPAL
1497
 
1498
        ld de,varsfn
1499
        OS_OPENHANDLE
1500
        push bc
1501
        ld de,VARS
1502
        LD hl,0x600
1503
        OS_READHANDLE
1504
        pop bc ;b=handle
1505
        OS_CLOSEHANDLE
1506
 
1507
        ld a,PG_MAP
1508
        call setpg
1509
        ld de,mapfn
1510
        OS_OPENHANDLE
1511
        push bc
1512
        ld de,0xc000
1513
        LD hl,0x4000
1514
        OS_READHANDLE
1515
        pop bc ;b=handle
1516
        OS_CLOSEHANDLE      
1517
 
1518
        xor a
1519
        ld (curscrnum_int),a
1520
        ld e,a
1521
        OS_SETSCREEN
1522
 
1523
        ld e,3+0x80 ;6912+keep
1524
        OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
1525
        call BLACK
1526
        ld de,standardpal
1527
        OS_SETPAL
1528
        xor a
1529
        ld (egaon),a
1530
       endif
1531
MMENU
1532
        DI
1533
;       LD (backsp+1),SP
1534
        LD SP,GAMESTACK;#5FFF
1535
        LD HL,MUS
1536
        LD (IM2Nm2),HL
1537
        CALL INIMOUS ;樠 誨
1538
        CALL BLACK
1539
        LD A,255
1540
        CALL MUSNXT+3
1541
        CALL SETIM2 ; ஬ ࠧ  !!!
1542
        CALL EXCH ; 9000<->c000
1543
 
1544
        LD A,PG_HERO
1545
        CALL PAGE
1546
        LD HL,VIDS
1547
        LD DE,VIDEOS
1548
        CALL DEHRUST ; 9000
1549
SKPMN
1550
        CALL VID3 ;樠 ?
1551
        LD (MMENU2_1),HL
1552
        LD (IM2MC),A ;६  
1553
        DEC A
1554
        LD (MCM+1),A
1555
 
1556
        call setpgscr4000
1557
 
1558
        LD A,PG_MISC
1559
        CALL PAGE
1560
        LD HL,KSCR
1561
        LD DE,#4000
1562
        PUSH DE,DE
1563
        LD BC,3673
1564
        LDIR
1565
 
1566
      ;LD A,PG_VIEW
1567
        CALL PAGE_PG_VIEW
1568
        ;call setpgscr7
1569
        ;call setpgc000_shadowscr
1570
 
1571
        POP HL
1572
        CALL LC5
1573
 
1574
       if EGA
1575
        ;ld a,(tpgs+PG_VIEW)
1576
        ;SETPG4000
1577
        call setpgscr4000_scr2
1578
        ld hl,0xc000
1579
        ld de,0x4000
1580
        ld bc,6912
1581
        ldir
1582
 
1583
        call setpgscr4000
1584
       endif
1585
 
1586
        HALT
1587
        DI
1588
        LD B,5
1589
MMLP    PUSH BC
1590
        CALL VIDEO
1591
        POP BC
1592
        DJNZ MMLP
1593
        EI
1594
 
1595
        LD HL,#C000
1596
        POP DE
1597
        LD BC,6912
1598
        LDIR
1599
 
1600
        call setpgmain4000
1601
 
1602
        XOR A
1603
        CALL MSK
1604
        CALL ARRON
1605
 
1606
        ;LD A,16+8
1607
MMENUS  ;CALL CURSCR
1608
        call setcurscr1
1609
 
1610
        LD HL,IM2MEN
1611
        LD (IM2Nm2),HL
1612
 
1613
        LD IX,MNKEYS2
1614
        LD DE,#0905
1615
        LD HL,#5878
1616
        LD BC,#0B15
1617
        LD A,E
1618
 
1619
        CALL MCYCL ;横 ࠡ , 室  enter
1620
 
1621
        LD HL,NEW_OLDp1
1622
        DEC C
1623
        LD (HL),C
1624
        JP Z,GAME ; 
1625
        DEC C
1626
        JR Z,OGM  ; 
1627
        DEC C
1628
        JR Z,ABOUT; 
1629
        DEC C,C
1630
        JP Z,EXIT
1631
 
1632
ABOUT
1633
        PUSH BC
1634
 
1635
        LD HL,MUS
1636
        LD (IM2Nm2),HL
1637
 
1638
        ;LD A,16+8
1639
        ;CALL CURSCR
1640
        call setcurscr1
1641
        ;LD A,PG_MISC
1642
        ;CALL PAGE
1643
        ;LD HL,ABOUTS
1644
        ;LD DE,#4000
1645
        ;CALL DEHRUST
1646
        POP BC
1647
        LD D,1
1648
        CALL PRINTER;#4000
1649
        CALL BLACK
1650
        JP SKPMN
1651
 
1652
OGM     ;CALL SETIM1
1653
        JP LOAD ;-> GAME
1654
 
1655
; ப   ࠭ 䠩
1656
LINE_HL INC     H
1657
        LD      A,H
1658
        AND     7
1659
        RET     NZ
1660
        LD      A,L
1661
        ADD     A,32
1662
        LD      L,A
1663
        RET     C
1664
        LD      A,H
1665
        SUB     8
1666
        LD      H,A
1667
        RET
1668
 
1669
DIV32   SRL H,L
1670
DIV16   SRL H,L
1671
DIV8    SRL H
1672
        SRL H
1673
        SRL H
1674
        SRL L
1675
        SRL L
1676
        SRL L
1677
        RET
1678
 
1679
;⠭  IM2
1680
       if INT_IM2
1681
SETIM2
1682
        DI
1683
        LD HL,IMVEC ;  뢠
1684
        LD BC,256
1685
        LD D,H
1686
        LD E,B
1687
        LD (HL),IM2/256
1688
        LD A,H
1689
        LDIR
1690
        LD I,A
1691
        IM 2
1692
        EI
1693
        RET
1694
       else
1695
SETIM2=swapimer
1696
       endif
1697
 
1698
SETIM1
1699
        DI
1700
        ;LD A,(PG_+1)
1701
        ;LD (SCRNUM+1),A ;???
1702
        LD A,PG_MUZ
1703
        CALL PAGE
1704
        CALL MUTE
1705
        ;LD A,16+8
1706
        ;CALL CURSCR
1707
        call setcurscr1
1708
        LD A,PG_MISC
1709
        CALL PAGE
1710
       if INT_IM2
1711
        LD IY,23610
1712
        LD A,63
1713
        LD I,A
1714
        IM 1
1715
       else
1716
        call swapimer
1717
       endif
1718
        EI
1719
        ;LD HL,LODSAV
1720
        ;LD DE,LOAD
1721
        ;LD BC,LENLS
1722
        ;LDIR 
1723
        RET
1724
 
1725
;஢ 
1726
GMEN
1727
       if EGA
1728
        LD A,(gamemenucolorline);(#DAD9) ;-  ਡ
1729
        CP 56+64
1730
        RET NZ
1731
 
1732
        xor a
1733
        ld (curarrowtype),a
1734
 
1735
        LD HL,SND_SPK
1736
        LD (SAMPLE+1),HL
1737
 
1738
        POP HL ; ४樨 SP
1739
        POP HL
1740
 
936 alone 1741
        ld bc,0x0834
1742
        ld de,hudmenuofft
930 alone 1743
        ld hl,scrbase+(5*8*40)+6
1744
;b=hgt,c=wid (/2)
1745
;de=gfx
1746
;hl=scr
936 alone 1747
        call primgega_pgdaynight
1748
 
1749
        ld de,hudmenuoff0
1750
        ld hl,scrbase+(6*8*40)+6
1751
        ld bc,0x1834
1752
        call primgega_pgdaynight
937 alone 1753
        ld de,hudmenu0
1754
        ld hl,scrbase+(6*8*40)+7
1755
        ld bc,0x182c
1756
        call primgega_pgdaynight
936 alone 1757
        ld de,hudmenuoff1
1758
        ld hl,scrbase+(9*8*40)+6
1759
        ld bc,0x1834
1760
        call primgega_pgdaynight
1761
        ld de,hudmenuoff2
1762
        ld hl,scrbase+(12*8*40)+6
1763
        ld bc,0x1834
1764
        call primgega_pgdaynight
1765
 
1766
        ld bc,0x1034
1767
        ld de,hudmenuoffb
1768
        ld hl,scrbase+(15*8*40)+6
1769
        call primgega_pgdaynight
930 alone 1770
 
1771
       else
1772
;      LD A,PG_VIEW
1773
        CALL PAGE_PG_VIEW
1774
        LD A,(gamemenucolorline);(#DAD9) ;-  ਡ
1775
        CP 56+64
1776
        RET NZ
1777
 
1778
        LD HL,SND_SPK
1779
        LD (SAMPLE+1),HL
1780
 
1781
        POP HL ; ४樨 SP
1782
        POP HL
1783
 
1784
        XOR A
1785
        CALL MASK
1786
 
1787
;뢮 
1788
        LD HL,SPRMENU
1789
        LD DE,#C0A6
1790
        LD A,12*8 ;
1791
MN2     EX AF,AF' ;'
1792
        PUSH DE
1793
        LD C,13   ;ਭ
1794
        LDI
1795
        JP PE,$-2
1796
        POP DE
1797
        EX DE,HL
1798
        CALL LINE_HL
1799
        EX DE,HL
1800
        EX AF,AF' ;'
1801
        DEC A
1802
        JR NZ,MN2
1803
 
1804
;訢
1805
 
1806
        LD HL,#D8A6
1807
        LD E,12
1808
        LD A,FILAT
1809
        LD C,19
1810
FIL     LD B,13
1811
        LD (HL),A
1812
        INC L
1813
        DJNZ $-2
1814
        ADD HL,BC
1815
        DEC E
1816
        JR NZ,FIL
1817
 
1818
        LD A,#68
1819
        LD H,A
1820
        LD L,A
1821
        LD (#D8A6),HL
1822
        LD (#D8B1),HL
1823
        LD (#DA0B),HL
1824
        LD (#DA0D),A
1825
        LD (#DA06),A
1826
        LD (#DA12),A
1827
       endif
1828
 
1829
        XOR A
1830
        LD (MCM+1),A
1831
 
1832
        LD IX,MNKEYS ; 뤥 㭪⮢
1833
        LD DE,#0B04
1834
        LD HL,FILAT2+(FILAT*256)
1835
        LD BC,#0B15
1836
        LD A,3
1837
        CALL MCYCL
1838
        DEC C
1839
        JR Z,GAM
1840
        DEC C
1841
        JP NZ,GAMEOVER_MMENU
1842
SAV     ;CALL SETIM1
1843
        JP SAVE
1844
 
1845
       if 1==0
1846
ERROR
1847
        CALL ERR
1848
      ;LD A,PG_VIEW
1849
        CALL PAGE_PG_VIEW
1850
        LD HL,#D800
1851
        LD DE,#5800
1852
        LD BC,768
1853
        LDIR
1854
        CALL SETIM2
1855
;SCRNUM  LD A,0
1856
        JP MMENUS
1857
 
1858
ERROR2
1859
        CALL ERR
1860
       endif
1861
 
1862
SAVE_OK ;CALL SETIM2
1863
;      LD A,PG_VIEW
1864
        CALL PAGE_PG_VIEW
1865
 
1866
GAM     CALL FONE
1867
        XOR A
1868
        LD H,A
1869
        LD L,A
935 alone 1870
        CALL BOX ;뤥  
930 alone 1871
        JP REMAP+6
1872
 
1873
;  
1874
;OUT: C- ࠭ 㭪  (1-X)
1875
MCYCL
1876
;a=⢮ 㭪⮢
1877
;l=ਡ 
1878
;h=ਡ 
1879
;b=ਭ 㭪
1880
;c=饭  室  ᫥ ப
1881
        LD (MENLP-1),A  ;- 㭪⮢
1882
        LD (SCANMOD+1),A
1883
        LD A,L
1884
        LD (MN_V1+1),A  ;ਡ. 
1885
        LD A,H
1886
        LD (MN_V2+1),A  ;ਡ. 
1887
        LD A,B
1888
        LD (MN_V3+1),A  ;ਭ 㭪
1889
        LD A,C
1890
        LD (MN_V4+1),A  ;饭
1891
 
937 alone 1892
       if EGA
1893
       xor a ;騩 㭪
1894
       ld (oldmenuoption),a
1895
       endif
930 alone 1896
        LD A,1
937 alone 1897
        LD (SETCURp1),A ;⥪騩 㭪  - 孨
930 alone 1898
 
1899
;  
1900
MNLOOP  PUSH IX,IX,DE
1901
        HALT
1902
MCM     LD A,0
1903
        AND A
1904
        DI
1905
        CALL NZ,MMENU2 ;show anim and arrow
1906
        EI
1907
        POP DE,IX
1908
        CALL PUNKT
937 alone 1909
       if EGA
1910
        ld hl,(egaon)
1911
        dec l
1912
        jr nz,MNLOOPnoega
1913
oldmenuoption=$+1
1914
       cp 0 ;訩 ⥪騩 㭪 
1915
       jr z,MNLOOPnodraw ; ᮢ뢠, ᫨ ⥪騩 㭪  
1916
       ld (oldmenuoption),a
1917
MNLOOPnoega
1918
       endif
930 alone 1919
        EXA
1920
        LD C,1
1921
        LD A,3      ;- 㭪⮢  
1922
MENLP   EXA
1923
        SUB 3
1924
        CALL MNLOCK
1925
        INC C
1926
        EXA
1927
        DEC A
1928
        JR NZ,MENLP
937 alone 1929
MNLOOPnodraw
930 alone 1930
        POP IX
1931
        DEC C
1932
        LD HL,MKEYSp1
1933
 
1934
        LD A,(HL)
1935
        AND %00010000
1936
        LD B,A
1937
        LD A,(HL)
1938
        AND %11000000 ; 誨
1939
 
1940
        BIT 5,(HL)    ;ࠢ  誨
1941
        JR Z,$+3      ; 
1942
        SCF           ;ENTER
1943
 
1944
        RRA
1945
        OR B
1946
        LD B,A
1947
        LD A,(KEYSp1)
1948
        AND %11100000
1949
        OR B
1950
 
1951
        LD (HL),0
1952
 
1953
        ADD A,A     ;7-  (ENTER)
1954
        JR C,FIR_K
1955
        LD B,1
1956
        ADD A,A     ;6-  
1957
        JR C,CDWN
1958
        ADD A,A     ;5-  
1959
        JR C,CDWN-3
1960
        ADD A,A     ;4-  
1961
        JR C,FIR_M
1962
        LD A,FRM
1963
        JR CDU
1964
        LD BC,#FF01
1965
;/  
1966
CDWN    LD A,FRM
1967
        DEC A
1968
        JR Z,CDWUP
1969
CDU     CP FRM-1
1970
        LD (CDWN+1),A
1971
        JR NZ,MNLOOP
1972
CDWUP   LD HL,SETCURp1
1973
        LD A,(HL)
1974
        CP C
1975
        JR Z,MNLOOP
1976
        ADD A,B
1977
        LD (HL),A
1978
        JR MNLOOP
1979
 
1980
;OUT: B-⥪騩 㭪
1981
;     CY-   㭪
1982
;    NC- 㭪
1983
PUNKT
1984
        LD HL,(mouse_crd)
1985
        CALL DIV8
1986
        LD A,H      ;X
1987
        SUB 7
1988
        CP D        ;D=ਭ 
1989
        JP NC,SETCUR
1990
PN1     LD BC,0
1991
        LD (PN1+1),HL
1992
        XOR A
1993
        SBC HL,BC
1994
        JP Z,SETCUR
1995
        ADD HL,BC
1996
        LD A,L      ;Y
1997
        SUB E
1998
        JP DIV3
1999
 
2000
;    誮/஬
2001
FIR_M   ;XOR A
2002
        ;LD (HL),A
2003
        LD (PN1+1),HL ;ᯥ樠쭮 ਭ㦤 ࠢ⢮
2004
       ;jr $
2005
        CALL PUNKT ;OUT: B-⥪騩 㭪
2006
        JP C,MNLOOP ;᫨    㭪 ,  MNLOOP
2007
        LD A,(SETCURp1)
2008
        CP B
2009
        JP NZ,MNLOOP
2010
 
2011
; ࠭ (Enter)
2012
FIR_K   LD HL,SND_NXT
2013
        LD (SAMPLE+1),HL
2014
        LD A,(SETCURp1)
2015
        LD C,A
2016
        XOR A
2017
        LD (SCANMOD+1),A
2018
        RET
2019
 
2020
;뤥 㭪⮢
2021
MNLOCK
2022
        PUSH AF
2023
        PUSH BC
2024
        PUSH DE
2025
        PUSH IX
2026
MN_V2   LD B,FILAT ;ਡ. 뤥 㭪
2027
        JR NZ,MN_V1_ok
2028
        LD A,C
937 alone 2029
        LD (SETCURp1),A ;⥪騩 㭪  - 뤥 㥬
930 alone 2030
 
2031
MN_V1   LD B,FILAT2 ;ਡ. 뤥
2032
MN_V1_ok
2033
       if EGA
2034
        ld a,(egaon)
2035
        rrca
936 alone 2036
        jr nc,MN_noega;MNEND
937 alone 2037
 
936 alone 2038
        ld a,b
2039
        cp FILAT ;ਡ. 뤥 㭪
2040
        jr z,MN_unselect
937 alone 2041
 
936 alone 2042
        ld de,hudmenu2
2043
        ld hl,scrbase+(12*8*40)+7
2044
       dec c
2045
       jr nz,$+5+3
2046
        ld de,hudmenu0
2047
        ld hl,scrbase+(6*8*40)+7
2048
       dec c
2049
       jr nz,$+5+3
2050
        ld de,hudmenu1
2051
        ld hl,scrbase+(9*8*40)+7
2052
        ld bc,0x182c
2053
;b=hgt,c=wid (/2)
2054
;de=gfx
2055
;hl=scr
2056
        call primgega_pgdaynight
937 alone 2057
        jr MNEND
936 alone 2058
MN_unselect
2059
        ld de,hudmenuoff2
2060
        ld hl,scrbase+(12*8*40)+6
2061
       dec c
2062
       jr nz,$+5+3
2063
        ld de,hudmenuoff0
2064
        ld hl,scrbase+(6*8*40)+6
2065
       dec c
2066
       jr nz,$+5+3
2067
        ld de,hudmenuoff1
2068
        ld hl,scrbase+(9*8*40)+6
2069
        ld bc,0x1834
2070
;b=hgt,c=wid (/2)
2071
;de=gfx
2072
;hl=scr
2073
        call primgega_pgdaynight
937 alone 2074
        jr MNEND
936 alone 2075
MN_noega
930 alone 2076
       endif
2077
        LD E,(IX)
2078
        LD D,(IX+1)
2079
        LD A,(DE)  ;᫨  㦥 襭,   ᨬ
2080
        CP B
2081
        JR Z,MNEND
2082
        LD A,B
2083
        LD C,3    ; ப 뤥
2084
MNLP0   LD H,(IX+2)
2085
        LD L,(IX+3)
2086
MN_V3   LD B,11
2087
MNLP1   ADD HL,HL
2088
        JR NC,MNLP
2089
        LD (DE),A
2090
MNLP    INC DE
2091
        DJNZ MNLP1
2092
MN_V4   LD HL,21
2093
        ADD HL,DE
2094
        EX DE,HL
2095
        INC IX,IX
2096
        DEC C
2097
        JR NZ,MNLP0
2098
MNEND   POP IX
2099
        LD BC,8
2100
        ADD IX,BC
2101
        POP DE
2102
        POP BC
2103
        POP AF
2104
        RET
2105
 
2106
;뤥  
2107
BOX
2108
        PUSH HL
2109
        CALL DIV8
2110
        LD BC,#0638
2111
        LD A,L
2112
        CP 22
2113
        JR NZ,BX1
2114
        LD A,H
2115
        CP 25
2116
        JR C,BX1
2117
        LD C,56+64
935 alone 2118
BX1
2119
        LD HL,gamemenucolorline;#DAD9
930 alone 2120
        LD A,(HL)
2121
        CP C
2122
        JR Z,BX2
2123
        LD (HL),C
2124
        INC L
2125
        DJNZ $-2
935 alone 2126
       if EGA
2127
        ;ld a,(egaon)
2128
        ;or a
2129
        ;ret nz ;TODO?
2130
        ld a,c
2131
        cp 56+64
2132
        ld de,menuline0
2133
        jr nz,$+5
2134
        ld de,menuline1
2135
        ld hl,scrbase+(176*40)+25
2136
        ld bc,0x0818
2137
;b=hgt,c=wid (/2)
2138
;de=gfx
2139
;hl=scr
2140
        call primgega_pghud
2141
 
2142
       endif
930 alone 2143
BX2     POP HL
2144
        RET
2145
 
2146
MNKEYS  DW #D8C7
2147
        DB %11100001,%10000000
2148
        DB %11111111,%11100000
2149
        DB %11000000,%01100000
2150
 
2151
        DW #D927
2152
        DB %11000001,0
2153
        DB %11111111,%11100000
2154
        DB %00110000,%11100000
2155
 
2156
        DW #D987
2157
        DB %11100001,0
2158
        DB %11111111,%11100000
2159
        DB %00010000,%11100000
2160
 
2161
MNKEYS2
2162
        DW #D8E8
2163
        DB %11101100,0
2164
        DB %11111111,0
2165
        DB %00110010,0
2166
 
2167
        DW #D947
2168
        DB %11000110,0
2169
        DB %11111111,128
2170
        DB %00111001,0
2171
 
2172
        DW #D9A8
2173
        DB %11111000,0
2174
        DB %11111110,0
2175
        DB %00000100,0
2176
 
2177
        DW #DA07
2178
        DB %11111100,0
2179
        DB %11111111,#C0
2180
        DB %00000011,0
2181
 
2182
        DW #DA6A
2183
        DB %10011000,0
2184
        DB %11111000,0,0,0
2185
 
2186
; 
2187
ENDGAME
2188
       if EGA
2189
        ld e,3+0x80 ;6912+keep
2190
        OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
2191
        ld de,emptypal;standardpal
2192
        OS_SETPAL
2193
        xor a
2194
        ld (egaon),a
2195
        inc a
2196
        ld (curscrnum_int),a
2197
        ld e,a
2198
        OS_SETSCREEN
2199
       endif
2200
        DI
2201
        LD A,PG_MUZ
2202
        CALL PAGE
2203
        CALL MUTE
2204
;       CALL BLACK
2205
        xor a
2206
        ld (MUSONp1),a ;fix (Sergio)
2207
 
2208
        LD A,PG_MISC
2209
        CALL PAGE
2210
        LD HL,FINAL
2211
        LD DE,#4000
2212
        PUSH DE
2213
        LD BC,FINLEN
2214
        LDIR
2215
        RET
2216
 
2217
;室  ᥬ/ᨪ
2218
EXIT
2219
        EI
2220
        HALT
2221
        DI
2222
         call swapimer
2223
        ;LD A,16
2224
        ;LD (PG_+1),A ;???
2225
        LD A,PG_MUZ
2226
        CALL PAGE
2227
        CALL MUTE
2228
        IM 1
2229
        EI
2230
        ld hl,0 ;result
2231
        QUIT
2232
 
2233
;ன ६頥  .
2234
;⠭   ஭.
2235
RUNING
2236
        JR COUNT1 ;JR ROTATE     
2237
COUNT1  LD A,0  ;稪 蠣 
2238
        INC A
2239
        CP 4
2240
        JR C,RH1
2241
        XOR A
2242
RH1     LD (COUNT1+1),A
2243
        EX AF,AF' ;'
2244
 
2245
VUS     LD A,0
2246
        AND A
2247
        JP NZ,VUSE3     ;
2248
 
2249
COUNT2  LD A,0  ; 稪  ६饭
2250
                ;  ⪨   (=16 .. 
2251
                ;஥  ⮪ 2*2 )
2252
        INC A
2253
        CP 16/STEPS
2254
        JR C,RH2
2255
        XOR A
2256
RH2     LD (COUNT2+1),A
2257
        CALL Z,NxtStep
2258
        LD HL,(CrdHero+1) ;H-Y, L-X
2259
NAPRAVL LD BC,0 ;饭  ࠢ
2260
        LD A,H
2261
        DUP STEPS
2262
        SUB B   ; न  ।. - ᥫ
2263
        EDUP
2264
        LD H,A
2265
        LD A,L  ;  न
2266
        DUP STEPS
2267
        SUB C   ; ᨬ
2268
        EDUP
2269
        LD L,A  ; ࠢ  
2270
        LD (CrdHero+1),HL ;H-Y, L-X
2271
 
2272
; 㯯  ࠢ  (ࢫ ᥣ 8)
2273
;롨ࠥ 1  4 ࠩ⮢  ᨬ  1- 稪 蠣
2274
SPRHERO LD HL,Right
2275
        INC HL
2276
        EX AF,AF' ;'
2277
        ADD A,A
2278
        LD C,A
2279
        LD B,0
2280
        ADD HL,BC
2281
SH1     LD C,(HL)          ;BC= 㦭 ࠩ
2282
        INC HL
2283
        LD B,(HL)
2284
        LD (SprHero+1),BC
2285
        RET
2286
 
2287
; , .. ᬥ  ࠢ
2288
ROTATE  LD A,2 ;  ࠢ, ᭠砫  ⮨ ࠢ
2289
Prev    LD B,2 ;  ࠢ 㦭 ਤ
2290
RotMod  NOP    ;  ஭ ⨬ (INC A/DEC A)
2291
        CP 255
2292
        JR NZ,R1
2293
        LD A,7
2294
R1      CP 8
2295
        JR C,R2
2296
        XOR A
2297
R2      LD (ROTATE+1),A
2298
        CP B
2299
        LD B,A
2300
        JR NZ,R3
2301
        XOR A            ;᫨ ।. 祭 ࠢ
2302
        LD (RUNING+1),A  ; 饥 ⠫ ࠢ,
2303
R3      LD A,B           ;  祭
2304
        ADD A,A
2305
;롨ࠥ  ⠡窨 㦭 ࠩ  ⠥ 
2306
        LD HL,RotTabl
2307
        LD C,A
2308
        LD B,0
2309
        ADD HL,BC
2310
        JR SH1
2311
;H-y, L-x
2312
;뢠 ᫥騩 蠣,  ⠪  ࠢ 
2313
NxtStep
2314
        LD A,PG_MAP
2315
        CALL PAGE
2316
 
2317
PATHadr LD HL,0    ; ᮤন ࠢ
2318
                   ;  ६頥 ன
2319
        LD A,(HL)  ;ࠢ
2320
        LD B,A
2321
        INC A
2322
        JP Z,EndStep      ;᫨ A=255,  ன ⨣ 楫!
2323
        DEC HL
2324
        LD (PATHadr+1),HL ;  ᫥. ࠢ.
2325
        LD A,(HL)
2326
        LD (OLDpath),A
2327
 
2328
        LD A,B
2329
        LD D,B
2330
        CALL NAPR
2331
        LD (NAPRAVL+1),BC ;࠭塞 饭  ࠢ
2332
        LD HL,(HEROCRD)
2333
        LD A,H
2334
        SUB B
2335
        LD B,D
2336
        LD D,A
2337
        LD A,L  ;  न
2338
        SUB C   ; ᨬ
2339
        LD E,A  ; ࠢ  
2340
 
2341
        LD A,B
2342
ROTAT   LD HL,VeraTab
2343
        ADD A,A     ;A=A*9
2344
        ADD A,A
2345
        ADD A,A
2346
        ADD A,B
2347
        LD C,A
2348
        LD B,0
2349
        ADD HL,BC ;HL= ⠡ 㯯 ࠩ⮢
2350
        LD B,(HL)
2351
 
2352
        LD A,(ROTATE+1) ;।饥 ࠢ 
2353
        LD C,A
2354
        CP B
2355
        JR NZ,ROT
2356
INIT    LD (SPRHERO+1),HL
2357
        LD (HEROCRD),DE
2358
        RET
2359
 
2360
;  ஭ 
2361
ROT     AND A
2362
        LD A,B
2363
        JR Z,P1
2364
        LD A,C
2365
        SUB B
2366
        JR NC,P2
2367
        NEG
2368
 
2369
P1      CP 5
2370
        JR C,P0-2
2371
        LD E,#3D ;DEC A
2372
        JR P0
2373
 
2374
P2      CP 5
2375
        LD E,#3D ;DEC A
2376
        JR C,P0
2377
        LD E,#3C ;INC A
2378
 
2379
P0      LD A,ROTATE-RUNING-2 ;塞  JR
2380
        LD (RUNING+1),A
2381
;        LD A,E
2382
;P3      XOR 0       ;0/1  ⢠ ⮬
2383
       ld a,(P3p1) ;0/1  ⢠ ⮬
2384
       xor e
2385
        LD (RotMod),A
2386
 
2387
        LD A,B
2388
        LD (Prev+1),A
2389
 
2390
        LD HL,(PATHadr+1)
2391
        INC HL
2392
        CALL ES2
2393
        POP HL  ;譨 POP  室  NextStep
2394
        JP ROTATE
2395
 
2396
;  ᫥ 蠣. ன ⨣ 楫!
2397
EndStep
2398
        POP AF ;譨 POP  室  楤 NxtStep
2399
        XOR A
2400
        LD (RunHero+1),A
2401
        LD (FTASK),A
2402
ES2     LD (PATHadr+1),HL
2403
        LD A,STEP1
2404
        LD (COUNT2+1),A
2405
        LD A,STEP2
2406
        LD (COUNT1+1),A
2407
        RET   ;室  楤 RUNING
2408
 
2409
;ਢ ᮫ न 
2410
; ᥫ    ࠭
2411
;H-Y, L-X
2412
Abs_Pix LD HL,(HEROCRD) ;न    
2413
        LD A,H
2414
        ADD A,A ;A=A*16
2415
        ADD A,A
2416
        ADD A,A
2417
        ADD A,A
2418
        SUB 16  ;..  㦭  न  
2419
        LD H,A
2420
 
2421
        LD A,L
2422
        ADD A,A ;A=A*16
2423
        ADD A,A
2424
        ADD A,A
2425
        ADD A,A
2426
        LD L,A
2427
        RET
2428
 
2429
;  誠
2430
VNE     LD A,(F3+1)
2431
        AND A
2432
        RET Z
2433
        XOR A
2434
        LD (F3+1),A
2435
VNE2    LD A,(PRTIME+1)
2436
        AND A
2437
        RET NZ
2438
        LD (CLT+1),A
2439
        CPL
2440
        LD (SVER+1),A
2441
        RET
2442
 
2443
;롮  ஬  誠
2444
VMESH
2445
        LD A,H      ;X
2446
        CP MAX_X
2447
        JR NC,VNE
2448
        SUB 200
2449
        JR C,VNE
2450
        CALL DIV24 ;b=A/24
2451
        LD A,B
2452
        CP 2
2453
        JR NC,VNE
2454
        LD D,A ;X
2455
        LD A,L      ;Y
2456
        CP 30
2457
        JR C,VNE
2458
        CP 94
2459
        JR NC,VNE
2460
        SUB 28
2461
        JR C,VNE
2462
        CALL DIV24 ;b=A/24
2463
        LD A,B
2464
        CP 3
2465
        JR NC,VNE
2466
 
2467
        ADD A,A;Y
2468
        ADD A,D
2469
        LD E,A
2470
        LD D,0
2471
 
2472
        LD HL,(MSTRT+2)
2473
        ADD HL,DE
2474
        LD (VADR+1),HL;   ன ⮨ 
2475
        LD A,1
2476
        LD (F3+1),A   ;  誥!
2477
 
2478
        LD B,(HL);   誠  . ⮨ 
2479
 
2480
;  :A- 
2481
PRVESH
2482
        LD A,(PRTIME+1)
2483
        AND A
2484
        RET NZ
2485
 
2486
;⮡   ⮦   ⠫ 
2487
SVER    LD A,255 ;।.   .  
2488
        CP B
2489
        JR Z,SV2
2490
        LD A,B
2491
        LD (SVER+1),A
2492
 
2493
        ADD A,A
2494
        LD E,A
2495
        LD D,0
2496
        LD HL,V
2497
        ADD HL,DE
2498
        LD E,(HL)
2499
        INC HL
2500
        LD D,(HL) ;DE- 
2501
        LD (PRT+3),DE
2502
        XOR A
2503
        LD (CLT+1),A
2504
        LD (PRT+1),A
2505
SV2     INC A
2506
        RET
2507
 
2508
;࠭   ⥪⮬
2509
CLADR=#C8D9
2510
CLADR2=#C8F9
2511
 
2512
CLTXT
2513
;in IM2
2514
       if EGA
2515
        ld hl,scrbase+(40*112)+#19
2516
        ld bc,0x1018
2517
        ld e,0x3f ;color 7 ;0xc9 ;color 9
2518
;b=hgt,c=wid (/2)
2519
;de=gfx
2520
;hl=scr
2521
        jp climgega
2522
       else
2523
        LD HL,0
2524
        DUP 8
2525
        LD (CLADR),HL
2526
        LD (CLADR+2),HL
2527
        LD (CLADR+4),HL
2528
CLADR=CLADR+256
2529
        EDUP
2530
 
2531
        DUP 8
2532
        LD (CLADR2),HL
2533
        LD (CLADR2+2),HL
2534
        LD (CLADR2+4),HL
2535
CLADR2=CLADR2+256
2536
        EDUP
2537
        RET
2538
       endif
2539
 
2540
;祭 ᪮  ࠭
2541
;⭮   ० ࡮ 
2542
TURBO
2543
        LD HL,MAPINGp4
2544
        LD A,FRAME
2545
        DEC (HL)
2546
        JR Z,$+4
2547
        LD A,1
2548
        LD (HL),A
2549
        JR KOF
2550
 
2551
; ०
2552
STEAL
2553
        LD A,(CHANGE)
2554
        AND A
2555
        JP NZ,KOF
2556
 
2557
        LD A,#FB
2558
        IN A,(#FE) ;SS/CS+T
2559
        BIT 4,A
2560
        JR Z,TURBO
2561
 
2562
        LD H,27
2563
        LD A,#F7
2564
        IN A,(#FE) ;SS/CS+3/4-⠭ /
2565
        BIT 2,A
2566
        JR Z,VLST
2567
        INC H
2568
        BIT 3,A
2569
        JR Z,VLST
2570
        BIT 0,A
2571
        JP Z,SKIP  ;஬⪠ 
2572
 
2573
        LD A,#BF
2574
        IN A,(#FE)  ;SS/CS+J/K - ५  - J
2575
                    ;࠭ ஫ - K
2576
        AND 12
2577
        CP 12
2578
        JR Z,RMOUS
2579
        BIT 2,A
2580
        JR Z,BORDER
2581
 
2582
        LD A,(RunHero+1)
2583
        AND A
2584
        JR NZ,RMOUS
2585
 
2586
STPIN   LD A,0
2587
        INC A
2588
        CP 8
2589
        JR C,STN1
2590
        XOR A
2591
STN1    LD (STPIN+1),A
2592
        ADD A,A
2593
        LD HL,CRDJP
2594
        LD E,A
2595
        LD D,0
2596
        ADD HL,DE
2597
        LD E,(HL)
2598
        INC HL
2599
        LD D,(HL)
2600
        LD (HEROCRD),DE
2601
STN2    LD A,PG_MAP
2602
        CALL PAGE
2603
        CALL CENTR2
2604
        JR KOF
2605
RMOUS   LD A,32    ;. ࠢ.  
2606
        JP MKEYSp2
2607
 
2608
CRDJP   DW #3906 ;
2609
        DW #0537 ; 
2610
        DW #2F1B ; 誥
2611
        DW #3236 ; 
2612
        DW #2807 ; 
2613
        DW #1908 ; 㧭
2614
        DW #0407 ; ;
2615
        DW #1E32 ; ⥪
2616
 
2617
; ࠭ ஫.  (ன  室  ࠭)
2618
BORDER  LD A,(MODscrl+1)
2619
        XOR 1
2620
        LD (MODscrl+1),A
2621
        JR KOF
2622
 
2623
;⠭ 饩  
2624
VLST
2625
        CALL VLIST
2626
KOF     LD A,201
2627
        LD (CHANGE),A
2628
        JP MKY
2629
 
2630
; - ࠬ஢  
2631
CHANGE
2632
        NOP ;RET
2633
        EX AF,AF' ;'
2634
        LD A,201
2635
        LD (CHANGE),A
2636
        EX AF,AF' ;'
2637
        RRA
2638
        JR NC,MUS_ONOF ;"1"
2639
        RRA
2640
        JR NC,SNDONOF  ;"2"
2641
        RRA
2642
        RET C
2643
;/⪫ 誨 -  "3"
2644
MS_ONOF LD HL,mouse+1
2645
        LD A,(HL)
2646
        CPL
2647
        LD (HL),A
2648
        RET
2649
 
2650
;/⪫ 㪮
2651
SNDONOF LD A,PG_MAP
2652
        CALL PAGE
2653
        LD HL,SOUND
2654
        LD A,201
2655
        XOR (HL)
2656
        LD (HL),A
2657
        LD HL,SND_TSK
2658
        LD (SAMPLE+1),HL
2659
        CALL NZ,AY_OFF
2660
        RET
2661
 
2662
;/⪫ 모
2663
MUS_ONOF
2664
        HALT
2665
        LD A,(MUSONp1)
2666
        XOR 1
2667
        LD (MUSONp1),A
2668
        DI
2669
        LD A,PG_MUZ
2670
        CALL PAGE
2671
        CALL MUTE
2672
        EI
2673
        RET
2674
 
2675
; ஬ 
2676
VOLCH
2677
        LD B,#FF
2678
        NOP
2679
        LD A,PG_MUZ
2680
        CALL PAGE
2681
        LD HL,VOLUME
2682
        LD A,(HL)
2683
        ADD A,B
2684
        CP -16
2685
        JR Z,MUSNXT
2686
        CP 1
2687
        JR Z,STPVOL
2688
        LD (HL),A
2689
        RET
2690
 
2691
STPVOL  LD HL,#C9FF
2692
        LD (VOLCH+1),HL
2693
        RET
2694
 
2695
MUSNXT2 XOR A
2696
        LD (VOLCH+2),A
2697
        RET
2698
 
2699
;室  ᫥. 
2700
MUSNXT
2701
        LD A,(MUSNUM)
2702
        LD B,A
2703
        LD A,PG_MUZ
2704
        CALL PAGE
2705
        LD A,B
2706
        INC A
2707
        CP 6   ;- 
2708
        JR C,$+3
2709
        XOR A
2710
        LD (MUSNUM),A
2711
        LD HL,MUSTAB
2712
        ADD A,A
2713
        LD E,A
2714
        LD D,0
2715
        ADD HL,DE
2716
        LD E,(HL)
2717
        INC HL
2718
        LD D,(HL)
2719
        EX DE,HL
2720
        LD DE,MUSIC
2721
        CP 10
2722
        JR NZ,$+5
2723
        LD DE,#C000
2724
        PUSH DE
2725
        EI
2726
        HALT
2727
        CALL DEHRUST
2728
        POP HL
2729
        LD DE,100
2730
        AND A
2731
        SBC HL,DE
2732
        DI
2733
        CALL PLAY ;樠. .
2734
        EI
2735
        LD HL,#0001
2736
        JR STPVOL+3
2737
 
2738
MUSTAB  DW MUSM,MUS0,MUS1,MUS2,MUS3,MUSF
2739
 
2740
CLRMK   XOR A
2741
        LD (MKEYSp1),A
2742
        RET
2743
FIRE
2744
        CALL CLRMK
2745
        CALL GMEN
2746
        LD A,(DIALOG+1) ;   ?
2747
        AND A
2748
        JP NZ,TALKING
2749
 
2750
;ᯮ짮 饩
2751
F3      LD A,0      ;᫨  ,    誥
2752
        AND A
2753
        JR Z,F4
2754
VADR    LD HL,0
2755
        LD A,(KARM) ;᫨ 饩  㪥 ,  ६
2756
        LD D,(HL)
2757
        AND A
2758
        JR NZ,VA1
2759
        OR D
2760
        RET Z
2761
        XOR A
2762
        JR F32      ;६ 
2763
VA1     SUB 7
2764
        DEC D
2765
        INC D
2766
        JR Z,F31    ;
2767
 
2768
;ਬ塞     誥
2769
        PUSH HL
2770
        CALL SVOYST
2771
        POP HL
2772
        INC BC
2773
        LD A,(BC)
2774
        CP D
2775
        JP NZ,NOTUSE ; ਬ
2776
        INC BC
2777
        LD A,(BC)
2778
        CALL F31
2779
        XOR A
2780
        LD (F3+1),A
2781
        INC BC
2782
        LD A,(BC)
2783
 
2784
        LD HL,SND_OBJ
2785
        LD (SAMPLE+1),HL
2786
        JP TLSN
2787
 
2788
F31     LD D,-7
2789
F32     LD (HL),A
2790
        LD A,D
2791
        ADD A,7
2792
        LD (KARM),A
2793
        LD (CCURS+1),A
2794
        LD HL,INV+1 ;. ࠩ 3*3
2795
        INC (HL)
2796
        LD HL,SND_TK
2797
        LD (SAMPLE+1),HL
2798
        RET
2799
 
2800
F4      LD A,(VUS+1)
2801
        AND A
2802
        RET NZ
2803
 
2804
        CALL MANAGE
2805
        LD A,B
2806
        AND A
2807
        JR Z,F41
2808
        CP 5
2809
        JP NZ,VUSE2
2810
 
2811
F41     LD HL,(mouse_crd);L-y,H-x
2812
        CALL DIV8
2813
        LD A,H ;X
2814
        CP 24
2815
        JR C,F5
2816
        LD A,L ;Y  ;⠭ 饩  誥
2817
        CP 3
2818
        RET NZ
2819
VLIST
2820
        CALL CLRMK
2821
        LD A,H
2822
        LD HL,(MSTRT+2)
2823
        LD DE,6       ;蠣 ⠭ 饩: 1 -1 
2824
        LD BC,MESHOK
2825
        SUB 27
2826
        JR Z,VESHUP ;
2827
        DEC A
2828
        JP Z,VESHDW ;
2829
;reter
2830
        RET
2831
 
2832
jpix
2833
        jp (ix)
2834
 
2835
;   ஢ 
2836
PATH
2837
F5      SRL H ;X
2838
        SRL L ;Y
2839
 
2840
        LD (FTSK+1),HL
2841
 
2842
;MG1     CALL MAG2-1   ; 
2843
        ld ix,(curmagic)
2844
        call jpix
2845
 
2846
        LD A,(curarrowtype) ;᫨ 㦥 - ࠩ  ᤥ
2847
        AND A ;???   ஢  255!!! TODO
2848
        JR NZ,F6
2849
 
2850
;      LD A,PG_VIEW
2851
        CALL PAGE_PG_VIEW
2852
 
2853
        PUSH HL
2854
        CALL NP
2855
        CALL Z,MASK
2856
        POP HL
2857
 
2858
F6      LD D,L
2859
        LD E,H
2860
        LD HL,(DispMapX) ;H-Y, L-X
2861
        ADD HL,DE
2862
OLDC    LD DE,0
2863
        LD (OLDC+1),HL
2864
        EX DE,HL
2865
        AND A
2866
        SBC HL,DE
2867
        RET Z      ; 㦥  몠
2868
        LD HL,(HEROCRD)  ;H-Y, L-X
2869
 
2870
;᫨ ன ६頥,  ⠭ 
2871
        LD A,(RunHero+1)
2872
        AND A
2873
        JR Z,NEWpath
2874
        LD BC,OLDpath
2875
        LD (PATHadr+1),BC
2876
 
2877
NEWpath LD A,PG_MAP
2878
;A=1
2879
        LD (CLR_MAPp1),A ; ⠭ 
2880
        CALL PAGE
2881
;HL=(HEROCRD) ;H=Y,L=X
2882
;de=㤠 ;D=Y,E=X
2883
        CALL SRCH_PATH
2884
        LD A,(HL)
2885
        INC A
2886
        RET Z ; 
2887
        LD (RunHero+1),A
2888
        LD (PATHadr+1),HL
2889
F7
2890
        LD A,201
2891
        LD (FTASK),A
2892
        RET
2893
 
2894
VESHUP  AND A
2895
        SBC HL,DE
2896
        SBC HL,BC
2897
        RET C
2898
VSH_    ADD HL,BC
2899
        LD (MSTRT+2),HL
2900
        LD HL,INV+1
2901
        INC (HL)
2902
 
2903
        LD HL,SND_LST
2904
        LD (SAMPLE+1),HL
2905
NP
2906
        LD A,(KARM)
2907
        AND A
2908
        RET NZ
2909
NP2     LD A,1       ;㠫쭮 ⨥ ஬
2910
        LD (CCURS+1),A
2911
        RET
2912
 
2913
VESHDW  ADD HL,DE
2914
        AND A
2915
        SBC HL,BC
2916
        LD A,L
2917
        CP QVESH-4
2918
        RET NC
2919
        JR VSH_
2920
 
2921
;. ⥪ 
966 alone 2922
       if MEGALZ
2923
        include "unmegalz.asm" ;DEC40
2924
 
2925
GL      INCBIN "gleb.mlz"
2926
ZL      INCBIN "zlovet.mlz"
2927
HV      INCBIN "hevor.mlz"
2928
BK_     INCBIN "bukvin.mlz"
2929
JO      INCBIN "jora.mlz"
2930
PT      INCBIN "petro.mlz"
2931
AL      INCBIN "alena.mlz"
2932
FK      INCBIN "fekla.mlz"
2933
ZD_     INCBIN "zadolb.mlz"
2934
RP      INCBIN "replic.mlz"
2935
       else ;HRUST2
930 alone 2936
GL      INCBIN "GLEB.p"
2937
ZL      INCBIN "ZLOVET.p"
2938
HV      INCBIN "HEVOR.p"
2939
BK_     INCBIN "BUKVIN.p"
2940
JO      INCBIN "JORA.p"
2941
PT      INCBIN "PETRO.p"
2942
AL      INCBIN "ALENA.p"
2943
FK      INCBIN "FEKLA.p"
2944
ZD_     INCBIN "ZADOLB.p"
2945
RP      INCBIN "REPLIC.p"
966 alone 2946
       endif
930 alone 2947
 
2948
SPRMENU
2949
       INCBIN "GAMEMEN4.C" ;ࠩ 
2950
 
2951
ENDPROG ;EQU SPRMENU+1248
2952
 
2953
        page PG_MAP
2954
MAP     EQU #C000
2955
       if 1==1
2956
        org 0xc000
2957
       if EGA
2958
        incbin "map.dat"
2959
       else
2960
        incbin "map6912.dat"
2961
       endif
2962
        incbin "mapflags.dat"
2963
       endif
2964
MASSIVE EQU MAP+8192
2965
        ORG MASSIVE+4096;,PG_MAP
2966
DNPK
2967
       INCBIN "Day_nght.p" ;467 . ࠩ   
2968
        ;page PG_MAP
2969
        ;ORG DNPK+467;,PG_MAP
2970
        INCLUDE "SCRIPTS.asm" ;ਯ
2971
 
2972
SRCH_PATH
2973
        INCLUDE "PATH-48H.asm" ;  531 
2974
stack   DS 4*(DX_MAP+DY_MAP)   ;+ 512  
2975
                               ;⮣ 1043 
2976
 
2977
        ;DISPLAY /H,/T,MMENU
2978
        ;DISPLAY /H,/T,mouse+1
2979
        ;DISPLAY /H,/T,ROLL
2980
        ;DISPLAY /H,/T,SCANTYP+1
2981
        ;DISPLAY /H,/T,MSPEED+1
2982
        ;DISPLAY /H,/T,MUSONp1
2983
        ;DISPLAY /H,/T,SOUND
2984
 
2985
LN_MISC EQU $-#C000
2986
MISCFRE EQU #FFFF-$
2987
LN_MAP  EQU stack-DNPK
2988
 
2989
        DISPLAY "PG_MISC FREE=",MISCFRE
2990
        DISPLAY "PG_MAP FREE = ",#FFFF-stack-512
2991
        ;DISPLAY " = ",IM2
2992
        ;DISPLAY ". = ",ENDPROG-IM2
2993
;       DISPLAY ". ⥪⮢ = ",NOTUSE-GL
2994
;       DISPLAY ". ਯ⮢ = ",SND-RUN_Q
2995
        DISPLAY " = ",#C000-ENDPROG
2996
        ;DISPLAY "६ = ",IM2-VARS
2997
 
2998
MAPMAS  EQU #C000
2999
KSCR    EQU MAPMAS+4053
3000
BKEY    EQU KSCR+3673
3001
ABOUTS  EQU BKEY+4267  ; ,
3002
FINPACK EQU ABOUTS+1781
3003
;LODSAV  EQU FINPACK+1787
3004
        page PG_MISC
3005
        ORG #C000;,PG_MISC
3006
TEXT    ;㤠 ᯠ. ⥪
3007
       INCBIN "MapMass.p"  ;4053 ;㯠  (ᯠ뢠  PG_MAP), ⮬ 뢠 ⥪⮬ ⥪饣 
3008
       INCBIN "KeyScr4.plc"  ;3673
3009
       INCBIN "BELLKEY4.plc" ;4267
3010
       INCBIN "ABOUTY.p"   ;1781
3011
       INCBIN "BVssVMft.p" ;1787 ; 䨭
3012
        ;DISP #5800
3013
        ;INCLUDE "saveload.asm" ;㧪/ ﭨ 
3014
        ;ENT 
3015
;LENLS   EQU $-LODSAV
3016
FINAL   INCLUDE "FINAL.asm" ; 
3017
 
3018
        page PG_SPR
3019
        ORG #C000;,PG_SPR
3020
       if EGA
3021
       include "cursors.ast" ;276 (0x114)   
3022
       ;include "hud.ast"
3023
SPR=0xc000 ;  ᫥  ⠩ (⮬  뢮 뢠)
3024
       else
3025
SPR
3026
       INCBIN "SPRITEMh.C" ;16384
3027
       endif
3028
 
3029
        page PG_HERO
3030
        ORG #C000;,PG_HERO
3031
       if !EGA
3032
hero
3033
VIDS    EQU hero+6144
3034
       INCBIN "HeroSprX.C" ;6144
3035
       else
3036
hero=0;0x8000/4
3037
VIDS
3038
       endif
3039
       INCBIN "VIDEO.p" ;㯠. =10202, ᯠ.=12132
3040
 
3041
        page PG_MUZ
3042
        ORG #C000+5782;,PG_MUZ
3043
PLAY
3044
MUTE    EQU PLAY+5
3045
VOLUME  EQU PLAY+10
3046
MUSM    EQU PLAY+2139
3047
MUS0    EQU MUSM+912
3048
MUS1    EQU MUS0+722
3049
MUS2    EQU MUS1+413
3050
MUS3    EQU MUS2+1074
3051
MUSF    EQU MUS3+1161
3052
VARSPK  EQU MUSF+3099
3053
MUSIC   EQU #C000+3222
3054
 
3055
        page PG_MUZ
3056
        ;ORG MUSIC
3057
        ;incbin "Menu.m--"
3058
        ORG PLAY-824;,PG_MUZ
3059
INTRO
3060
       INCBIN "B1_otrez.m--";  
3061
       INCBIN "PLAYERX.C" ; 모
3062
       INCBIN "Menu.p"
3063
       INCBIN "vera_00.p"
3064
       INCBIN "vera_01.p"
3065
       INCBIN "vera_02.p"
3066
       INCBIN "vera_03.p"
3067
       INCBIN "russia80.p"
3068
       ;INCBIN "VARS_PAK.p" ;1020
3069
 
3070
LN_MUZ  EQU VARSPK+1020-INTRO
3071
LN_HERO EQU 6144+10202
3072
 
3073
        page PG_VIEW
3074
        ORG #C000+6912;,PG_VIEW
3075
FNT
3076
SPR33   EQU FNT+2048
3077
wasARROWS  EQU SPR33+3456
3078
VIEW    EQU wasARROWS+szARROWS
3079
NG_MASK EQU VIEW+1039
3080
WIN_SPR EQU NG_MASK+384 ; 192 
3081
NG      EQU WIN_SPR+496 ; ᯠ. ࠩ   
3082
;REZULT  EQU #5802 ; 192 
3083
       INCBIN "4AXORFIX.F" ;2048 䮭 Pulsar'
3084
      if EGA
3085
       ds 3456
3086
      else
3087
       INCBIN "spr3x3.C"  ;3456 ;TODO 㡨  EGA
3088
      endif
3089
       ds 1440 ;INCBIN "spr2x2x.C" ;1440 ;५ 㦭  
3090
      if EGA
3091
       ds 1039+384+496
3092
      else
3093
       INCBIN "IFACE.plc"   ;1039 ;TODO 㡨  EGA
3094
       INCBIN "Ngh_arr3.C" ;384 ࠩ ᪨  ५  OR ;TODO 㡨  EGA
3095
       INCBIN "WIN_SPR.C" ;496 ࠩ   ;TODO 㡨  EGA
3096
      endif
3097
 
3098
LN_VIEW EQU NG-FNT
3099
 
3100
        page PGHUD
3101
        org 0xc000
3102
        include "hud.ast"
3103
szhud=$-0xc000
3104
 
3105
        page PGDAYNIGHT
3106
        org 0xc000
3107
        include "daynight.ast"
3108
;hudmenu
3109
        include "hudmenu.ast"
3110
szdaynight=$-0xc000
3111
 
3112
; ࠭ ᮤন  ࠭
3113
;᪮஢  :RUN SOBJ
3114
;       ORG SPRMENU
3115
;SOBJ   INCLUDE "SAVEOBJ"
3116
 
3117
        ;ORG MMENU ;start here
3118
 
3119
        ;savebin "VERAVARS.C",VARS,endvars-VARS
3120
 
1001 alone 3121
       if RUS
930 alone 3122
        savebin "vera.com",begin,ENDPROG-begin
3123
        savebin "vera/vars.bin",VARS,0x600
1001 alone 3124
       else
3125
        savebin "veraeng.com",begin,ENDPROG-begin
3126
        savebin "vera/varseng.bin",VARS,0x600
3127
       endif
930 alone 3128
 
3129
        page PG_SPR
3130
        savebin "vera/0_page.bin",SPR,16384
3131
        page PG_MAP
1001 alone 3132
       if RUS
930 alone 3133
        savebin "vera/1_page.bin",0xc000,LN_MAP+0x3000;,DNPK,LN_MAP
1001 alone 3134
       else
3135
        savebin "vera/1_pageng.bin",0xc000,LN_MAP+0x3000;,DNPK,LN_MAP
3136
       endif
930 alone 3137
        ;savebin "vera/1_page.bin",DNPK,LN_MAP
3138
        page PG_MISC
1001 alone 3139
       if RUS
930 alone 3140
        savebin "vera/3_page.bin",0xc000,LN_MISC
1001 alone 3141
       else
3142
        savebin "vera/3_pageng.bin",0xc000,LN_MISC
3143
       endif
930 alone 3144
        page PG_HERO
3145
        savebin "vera/4_page.bin",0xc000,LN_HERO
3146
        page PG_MUZ
3147
        savebin "vera/6_page.bin",0xc000,0x4000;INTRO,LN_MUZ
3148
        page PG_VIEW
3149
        savebin "vera/7_page.bin",FNT,LN_VIEW
3150
        page PGHUD
3151
        savebin "vera/hud.bin",0xc000,szhud
3152
        page PGDAYNIGHT
3153
        savebin "vera/daynight.bin",0xc000,szdaynight
3154
 
3155
        LABELSLIST "../../../us/user.l"
1001 alone 3156
 
3157
       display "HEROCRD=",HEROCRD
3158