Subversion Repositories NedoOS

Rev

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

Rev Author Line No. Line
992 alone 1
MENUC   ;�� ���� � �����
2
        CALL MENU
3
        CALL MEM7
4
        JP COPYAT
5
 
6
SETPER  ;��⠭����� ������
7
        LD C,4
8
        LD A,(DAT+13)
9
        CP 8
10
        JR NC,SPER
11
        LD A,(DAT+14)
12
        LD C,0
13
        CP 2
14
        JR C,SPER
15
        INC C ;1
16
        CP 3
17
        JR C,SPER
18
        INC C ;2
19
        CP 5
20
        JR C,SPER
21
        INC C ;3
22
        CP 8
23
        JR C,SPER
24
        INC C ;4
25
SPER    LD A,(RS+49)
26
        OR A
27
        JR NZ,SPE2
28
        LD C,5
29
        LD A,(RS+58)
30
        OR A
31
        JR NZ,SPE2
32
        INC C
33
SPE2    LD A,C
34
        LD (PERIOD),A
35
        RET
36
 
37
T50     DEFB 5
38
TIM50   LD HL,T50 ;Z-sec
39
        DEC (HL)
40
        RET NZ
41
TIM50_  LD (HL),50
42
        RET
43
 
44
TIMS    LD      HL,TIM+7 ;���� �६��� (NC-���室 � ��砫�)
45
        INC     (HL)
46
        LD      A,(HL)
47
        CP      10
48
        RET     C
49
        LD      (HL),0
50
        DEC     HL
51
        INC     (HL)
52
        LD      A,(HL)
53
        CP      6
54
        RET     C
55
        LD      (HL),0
56
        RET
57
TIMM    LD      HL,TIM+4
58
        INC     (HL)
59
        LD      A,(HL)
60
        CP      10
61
        RET     C
62
        LD      (HL),0
63
        DEC     HL
64
        INC     (HL)
65
        LD      A,(HL)
66
        CP      6
67
        RET     C
68
        LD      (HL),0
69
        RET
70
TIMH    LD      HL,TIM+1
71
        INC     (HL)
72
        LD      A,(HL)
73
        CP      4
74
        JR      NZ,T2
75
        DEC     HL
76
        LD      A,(HL)
77
        CP      2
78
        RET     C
79
        XOR     A
80
        LD      (HL),A
81
        INC     HL
82
        LD      (HL),A
83
        RET
84
T2      CP      10
85
        RET     C
86
        LD      (HL),0
87
        DEC     HL
88
        INC     (HL)
89
        SCF
90
        RET
91
 
92
DATE    LD HL,nDAT
93
        INC (HL)
94
        JR NZ,DM4
95
        INC HL
96
        INC (HL)
97
DM4     LD HL,MNT
98
        LD A,(DAT+14)
99
        CALL WA
100
        LD E,A
101
        INC HL
102
        LD D,(HL)
103
        LD HL,(DAT)
104
        PUSH HL
105
        OR A
106
        SBC HL,DE
107
        POP HL
108
        JR NZ,DM1
109
        LD HL,#100
110
DM2     LD (DAT),HL
111
        RET
112
DM1     INC H
113
        LD A,H
114
        CP 10
115
        JR C,DM2
116
        INC L
117
        LD H,255
118
        JR DM1
119
 
120
MONTH   LD HL,DAT+14
121
        INC (HL)
122
        LD A,(HL)
123
        CP 12
124
        JR C,DM3
125
        XOR A
126
        LD (HL),A
127
DM3     PUSH AF
128
        ADD A,A
129
        LD HL,MNAME
130
        CALL DD
131
        LD DE,DAT+2
132
        LD BC,8
133
        LDIR
134
        POP AF
135
        RET
136
 
137
YEAR    LD HL,DAT+13
138
        INC (HL)
139
        LD A,(HL)
140
        CP 10
141
        RET ;>2019-end
142
 
143
 
144
PD4     CALL PD2
145
PD2     CALL PDD
146
PDD     PUSH HL
147
        LD L,(HL)
148
        LD H,0
149
        ADD HL,HL
150
        ADD HL,HL
151
        ADD HL,HL
152
        LD BC,FONT+1
153
        ADD HL,BC
154
        LD B,6
155
        PUSH DE
156
PD0     LD A,(HL)
157
        LD (DE),A
158
        INC HL
159
        INC D
160
        DJNZ PD0
161
        POP DE
162
        POP HL
163
        INC E
164
        INC HL
165
        RET
166
 
167
PUTDAT   ;�뢮� �६���
168
        LD DE,SCR+24
169
PDDS    LD HL,TIM
170
        CALL PD4
171
        CALL PD4
172
        LD E,32+27
173
        CALL PD2
174
        LD E,64+24
175
        CALL PD4
176
        CALL PD4
177
        LD E,96+26
178
        CALL PD4
179
        RET
180
 
181
;�뢮� �����
182
XEARTH  Ms 3+#80
183
        XOR A
184
        LD (T_M),A
185
        CALL STD
186
        CALL OFFD
187
        LD A,(C_ONOF)
188
        OR A
189
        LD HL,#6960
190
        JR Z,XE7
191
        LD HL,#6838
192
XE7     PUSH HL
193
        LD A,L
194
        LD BC,#1809 ;������
195
        LD HL,#F00
196
        CALL ATRBAR
197
        LD DE,xEARTH
198
        LD HL,0
199
        LD BC,#180F
200
        CALL PUTSIM
201
        POP AF;梥� �����
202
        CALL ATRBAR
203
        LD L,24
204
        LD BC,#804
205
        LD A,#68;梥� �ᮢ
206
        CALL ATRBAR
207
        LD H,4
208
        LD C,20
209
        LD A,#30;������
210
        CALL ATRBAR
211
XEART2  LD DE,xLABEL+128
212
        LD C,5
213
XE0     LD B,2
214
        LD L,24
215
XE1     PUSH BC
216
        PUSH HL
217
        PUSH DE
218
        LD DE,xBUTTON
219
        LD BC,#404
220
        CALL PUTSIM
221
        POP DE
222
        LD BC,#202
223
        INC H
224
        INC L
225
        CALL PUTSIM
226
        LD HL,32
227
        ADD  HL,DE
228
        EX DE,HL
229
        POP HL
230
        LD L,28
231
        POP BC
232
        DJNZ XE1
233
        LD A,4
234
        ADD A,H
235
        LD H,A
236
        DEC C
237
        JR NZ,XE0
238
;;              CALL OUTPER
239
        JP MEM7
240
 
241
OUTPER  CALL STD ;�� ��ਮ�� ����� []
242
        LD HL,#115
243
        LD (SX),HL
244
        LD A,(PERIOD)  
245
        JP WB
246
 
247
TARBUT  Ms 3
248
        LD DE,xLABEL+416;������ 楫��
249
        LD BC,#202
250
        LD HL,#1519
251
        CALL STD
252
        CALL PUTSIM
253
        LD DE,xLABEL+448
254
        LD L,#1D
255
        CALL PUTSIM
256
        LD HL,#519
257
        LD DE,xLABEL+480
258
        EXX
259
        LD B,4
260
        LD HL,T_UFO
261
TB0     LD C,2
262
TB1     LD A,(HL)
263
        INC HL
264
        EXX
265
        EX AF,AF
266
        CALL PUTSIM
267
        EX AF,AF
268
        XOR #FF
269
        CALL Z,SIMBAR
270
        LD A,32
271
        ADD A,E
272
        LD E,A
273
        JR NC,TB3
274
        INC D
275
TB3     LD L,#1D
276
        EXX
277
        DEC C
278
        JR NZ,TB1
279
        EXX
280
        LD A,4
281
        ADD A,H
282
        LD H,A
283
        LD L,#19
284
        EXX
285
        DJNZ TB0
286
        LD L,#38
287
TARBU2  CALL MEM7
288
        CALL STS
289
        LD A,L
290
        LD HL,#418
291
        LD BC,#814
292
        CALL ATRBAR
293
        LD HL,DSCR+25
294
        LD DE,SCR+25
295
        LD A,192
296
TB5     LDI
297
        LDI
298
        INC L
299
        INC L
300
        INC E
301
        INC E
302
        LDI
303
        LDI
304
        LD BC,26
305
        ADD HL,BC
306
        EX DE,HL
307
        ADD HL,BC
308
        EX DE,HL
309
        DEC A
310
        JR NZ,TB5
311
        RET
312
 
313
PMAP    INC L ;��४���� 楫�(HL)
314
        INC H
315
        LD B,8
316
Pmp     PUSH BC
317
        PUSH HL
318
        CALL STS
319
        CHNs XOR_
320
        LD D,H
321
        LD L,1
322
        LD E,190
323
        CALL LINE
324
        POP HL
325
        PUSH HL
326
        LD E,L
327
        LD H,1
328
        LD D,118
329
        CALL LINE
330
        CALL E_I
331
        CALL INT0
332
        POP HL
333
        POP BC
334
        DJNZ Pmp
335
        RET
336
 
337
T_M     DEFB    0 ;0/1-���/���� ����
338
T_D     DEFB    0 ;0/1-���/���� ���
339
T_SW    DEFB    0
340
INT0    LD A,(T_SW) ;��. ��ꥪ⮢
341
        INC A
342
        LD (T_SW),A
343
        RRCA
344
        JR C,I0
345
        CALL PUTDAT
346
        LD A,(T_D)
347
        XOR 1
348
        LD (T_D),A
349
        JP SHOWD
350
I0      AND 3 ;flash
351
        RET NZ
352
        LD A,(T_M)
353
        XOR 1
354
        LD (T_M),A
355
        CALL SHOWT
356
SHOWS     ;�뢮� ���
357
        LD A,SCR/256
358
        CALL SELSCR
359
        CHNs XOR_
360
        LD DE,SPM+4
361
        LD BC,#103
362
        EXX
363
        LD B,8
364
        LD HL,XBASE
365
        LD DE,BASE
366
SWS0    LD A,(DE)
367
        INC DE
368
        CP 100
369
        EX AF,AF
370
        LD A,(HL)
371
        EX AF,AF
372
        INC HL
373
        LD A,(HL)
374
        INC HL
375
        JR NC,SWS2
376
        EXX
377
        LD H,A
378
        EX AF,AF
379
        LD L,A
380
        CALL PUTSPR
381
        EXX
382
SWS2    DJNZ SWS0
383
        RET
384
 
385
SHOWD    ;�뢮� ����. � ���
386
        LD A,SCR/256
387
        CALL SELSCR
388
        CHNs XOR_
389
        LD A,(T_INTR)
390
        LD DE,SPM
391
        LD BC,#103
392
        LD HL,(INTR)
393
        CP 255
394
        CALL NZ,PUTSPR
395
        LD DE,SPM+8
396
        LD A,(T_UFO)
397
        CP 255
398
        RET Z
399
        LD A,(UFOV)
400
        OR A
401
        LD HL,(UFO)
402
        CALL Z,PUTSPR
403
        RET
404
 
405
SHOWT    ;�뢮� 楫��
406
        LD A,SCR/256
407
        CALL SELSCR
408
        CHNs XOR_
409
        LD IY,SWST
410
        LD IX,T_SHP
411
        LD DE,SPM+12
412
        LD BC,#104
413
        EXX
414
        LD B,7
415
SWS1    EXX
416
        LD A,(IX)
417
        CP 255
418
        JR Z,SWS3
419
        LD L,(IY)
420
        LD H,(IY+1)
421
        CALL WT
422
        CALL PUTSPR
423
SWS3    INC DE
424
        INC DE
425
        INC DE
426
        INC DE
427
        INC IX
428
        INC IY
429
        INC IY
430
        EXX
431
        DJNZ SWS1
432
        RET
433
SWST    DEFW SHIP,PORT,ISLN,XBASE,UCOLON,UBASE,TLETH
434
 
435
NBUTT   LD HL,(MX);N ������ (0-9)
436
        LD A,L
437
        CP #E0
438
        LD B,0
439
        JR C,NUI
440
        INC B
441
NUI     LD A,H
442
        SUB 32
443
        RRCA
444
        RRCA
445
        RRCA
446
        RRCA
447
        AND #E
448
        ADD A,B
449
        RET
450
 
451
T_COOR  LD B,A
452
        LD HL,(UFO) ;A-n,HL-coord
453
        OR A
454
        RET Z
455
        LD HL,T_UFO
456
        CALL BA
457
        LD C,A
458
        LD A,B
459
        LD HL,SWST-2
460
        CALL WT
461
        LD A,C
462
        JP WT
463
 
464
SELTAR  LD A,(T_INTR)
465
        RLA
466
        JR NC,NQY
467
        LD A,27
468
NQ_NO   CALL DISPL
469
        JR NQR4
470
NQY     LD A,(AQU)
471
        OR A
472
        JR NZ,NQW
473
        LD A,41
474
        JR NQ_NO
475
NQW     LD HL,T_UFO
476
        LD B,8
477
NQQ     LD A,(HL)
478
        INC HL
479
        RLA
480
        JR NC,NQS
481
        DJNZ NQQ
482
        LD A,17
483
        CALL DISPL
484
        JR NQR4
485
NQS     CALL TARBUT
486
NQR0    CALL INT0
487
        CALL MARK_
488
        JR C,NQR0
489
NQR1    CALL INT0
490
        CALL MARK_
491
        JR NC,NQR1
492
        CALL NBUTT
493
        CP 8
494
        JR Z,NQI
495
        JR NC,NQR4
496
        LD B,A
497
        LD HL,T_UFO
498
        CALL BA
499
        CP 255
500
        JR Z,NQR1
501
        LD A,B
502
        CP 7
503
        JR NZ,NQR11
504
        LD A,(T_INTR)
505
        CP 2
506
        JR Z,NQR11
507
        LD A,31
508
        CALL DISPL
509
        JR NQR1
510
NQR11   LD A,B
511
        LD (T_TYPE),A
512
        CALL T_COOR
513
        LD (INTR_T),HL
514
        CALL PMAP
515
        LD A,(T_TYPE)
516
        ADD A,145
517
        LD (DSDAT),A
518
        LD A,21
519
        CALL DISPLX
520
NQR4    CALL INT0
521
        CALL MARK_
522
        JR C,NQR4
523
        Ms 3+#40
524
        LD HL,#418
525
        CALL XEART2
526
        LD L,#30
527
        CALL TARBU2
528
        JP T_SLOW
529
NQI     LD A,18
530
        CALL DISPLX
531
        LD B,145
532
        LD HL,T_UFO
533
NQI1    pushs
534
        LD A,(HL)
535
        CP 255
536
        JR Z,NQI2
537
        LD A,B
538
        LD (DSDAT),A
539
        CP 147
540
        LD A,19
541
        JR C,NQI3
542
        LD A,B
543
        CP 150
544
        LD A,19
545
        JR NC,NQI3
546
        LD A,B
547
        LD C,216
548
        CP 148
549
        JR Z,NQI4
550
        LD C,192
551
        JR NC,NQI4
552
        LD C,200
553
NQI4    LD A,(HL)
554
        ADD A,C
555
        LD (DSDAT+1),A
556
        LD A,20
557
NQI3    CALL DISPLX
558
        pops
559
        pushs
560
        LD A,B
561
        SUB 145
562
        CALL T_COOR
563
        CALL PMAP
564
NQI2    pops
565
        INC HL
566
        INC B
567
        LD A,B
568
        CP 153
569
        JR C,NQI1
570
        JP NQR1
571
 
572
       if PROTECT
573
CHK_2   LD A,#80 ;[] check CRC2
574
        CALL MEM
575
        LD HL,SCR
576
        PUSH HL
577
        LD BC,#2000
578
        ADD HL,BC
579
        POP DE
580
Crt1    LD A,(DE)
581
        CP (HL)
582
        JR Z,Crt1_
583
        DEC C
584
        ADD A,B
585
        ADD A,(HL)
586
        LD B,A
587
Crt1_   INC HL
588
        INC DE
589
        LD A,H
590
        OR L
591
        JR NZ,Crt1
592
        RET
593
       endif
594
 
595
I_RET   LD A,255
596
        LD (T_TYPE),A
597
        LD A,(T_INTR)
598
        RLA
599
        LD A,27
600
        JR C,I_RE2
601
        LD HL,(XBASE)
602
        LD DE,(INTR)
603
        PUSH HL
604
        SBC HL,DE
605
        POP HL
606
        LD A,42
607
        JP Z,I_RE2
608
        LD (INTR_T),HL
609
        LD A,3
610
I_RE2   CALL DISPL
611
        JR T_SLOW
612
 
613
GOhome  LD A,255
614
        LD (T_TYPE),A
615
        LD HL,(XBASE)
616
        LD (INTR_T),HL
617
        RET
618
 
619
STOP_T  XOR A
620
        INC A
621
        LD (ST_TIM),A
622
        RET
623
 
624
ST_TIM  DEFB 0 ;�� 0 -�맮� �_SLOW
625
T_SLOW  LD HL,#400+50
626
        LD DE,LNXT
627
        JR FMS
628
 
629
T_MID   LD HL,#800+1
630
        LD DE,LNXT
631
        JR FMS
632
 
633
T_FAST  LD HL,#C00+1
634
        LD DE,LLF2
635
FMS     XOR A
636
        LD (ST_TIM),A
637
        LD (LLF1+1),DE
638
        LD A,L
639
        LD (TIM50_+1),A
640
        LD (T50),A
641
        LD L,28
642
        PUSH HL
643
        CALL STS
644
        ATRs #41C,#40C,#30
645
        POP HL
646
        LD C,4
647
        LD A,#68
648
        CALL ATRBAR
649
        JR LOOP
650
 
651
LOOPT   DEFW XMENUS,T_SLOW,I_RET,T_MID,SELTAR
652
        DEFW T_FAST,UPEDIA,OPTION,FINANS,INFO
653
 
1623 alone 654
       if MUSIC
655
SETMENUMUSIC
656
       halt
657
       ld a,19
658
       call setpg
659
       call 0xc000
660
       ld hl,0xc005
661
       OS_SETMUSIC
662
        ret
663
       endif
664
 
992 alone 665
XMR     CALL NOKEYw
1623 alone 666
       if MUSIC
667
       call SETMENUMUSIC
668
       endif
992 alone 669
MLOOP   LD SP,#403E
670
        CALL MEM7
671
        CALL XEARTH;*******������ 横�
672
        LD DE,DSCR+24
673
        CALL PDDS
674
        CALL LODMON
675
        LD A,(SYSINI)
676
        OR A
677
        JR Z,M_LOOP
678
        CALL DISPL
679
        XOR A
680
        LD (SYSINI),A
681
M_LOOP  CALL INIBUT
682
        CALL RECRUT
683
        CALL CALC
684
        CALL RS254
685
        CALL SETPER
686
        XOR A
687
        LD (T_D),A
688
        CALL isTLEF
689
        JP T_SLOW
690
LOOP    CALL STDCFG
691
        CALL INT0
692
        CALL TIM50
693
        JR NZ,LNXT
694
        CALL TIMS
695
LLF1    JP C,LNXT
696
LLF2    CALL ACTM
697
        CALL TIMM
698
        JR C,LNXT
699
        CALL ACTH
700
        CALL TARh
701
        CALL TIMH
702
        JR C,LNXT
703
        CALL DATE
704
        PUSH AF
705
        CALL ACTD
706
        POP AF
707
        JR C,LNXT
708
        CALL Mn_FIN
709
        CALL MONTH
710
        JR C,LNXT
711
        CALL YEAR
712
        JR C,LNXT
713
        CALL SMERT
714
LNXT    LD BC,#FDFE
715
        IN A,(C)
716
        CPL
717
        AND %1110
718
        JR Z,ML2
719
        RRA
720
        PUSH AF
721
        CALL MARK_
722
        POP AF
723
        RRA
724
        JP C,T_SLOW
725
        RRA
726
        JP C,T_MID
727
        RRA
728
        JP C,T_FAST
729
ML2     LD A,(ST_TIM)
730
        OR A
731
        JP NZ,T_SLOW
732
        CALL MARK_
733
        JR NC,LOOP
734
        CALL NBUTT
735
        LD HL,LOOPT
736
        CALL WT
737
        JP (HL)
738
 
739
MU00    DEFW    #301,#001C,T+89
740
        DEFB    8
741
MU01    DEFW    #204,#117,T+1,12,RS
742
        DEFW    #903,#118,T+13,3,RS+12
743
        DEFW    #A04,#118,T+16,3,RS+15
744
        DEFW    #906,#118,T+19,3,RS+18
745
        DEFW    #203,#113,T+22,12,RS+21
746
        DEFW    #707,#115,T+34,9,RS+33
747
        DEFW    #504,#118,T+43,9,RS+42
748
        DEFW    #604,#118,T+52,9,RS+51
749
 
750
 
751
LODMON  CALL MEM7
752
        LD HL,MONINI
753
        LD A,(HL)
754
        OR A
755
        JR NZ,LDM1
756
        INC (HL)
757
        CALL    STD
758
        LD      HL,#F00 ;����� ��ᯫ
759
        LD      DE,ScrBU
760
        LD      BC,#1809
761
        CALL    PUTSIM
762
LDM1    CALL    COPYAT
763
        LD      A,255
764
        LD      BC,#1801
765
        LD      HL,#1700
766
        CALL      SIMBAR
767
        LD      HL,#FFFF
768
        LD      (MBEG),HL
769
        RET
770
 
771
SAVMON  CALL MRK2
772
        XOR A
773
        LD (MONINI),A
774
        CALL    STS
775
        LD      HL,#F00 ;��� ��ᯫ
776
        LD      DE,ScrBU
777
        LD      BC,#1809
778
        JP      GETSIM
779
 
780
optN    DEFW op1,op2,op3,opOK
781
optD    DEFB 1,1,1,171
782
XMopt   LD HL,(KEYS)
783
        LD (_KEYS),HL
784
        LD HL,(KEYJOY)
785
        LD (_KEYJ),HL
786
XMooo   ;��樨
787
        LD DE,optD
788
        LD A,(C_ONOF)
789
        ADD A,174
790
        LD (DE),A
791
        INC DE
792
        LD A,(KEYN)
793
        ADD A,176
794
        LD (DE),A
795
        INC DE
796
        LD A,(_KEYJ+1)
797
        ADD A,180
798
        LD (DE),A
799
        LD IX,MUopt
800
        CALL SELM
801
        JR NC,XORT
802
        LD HL,optN
803
        CALL WT
804
        LD (XMO+1),HL
805
XMO     CALL #38
806
        JR XMooo
807
 
808
op1     LD HL,C_ONOF
809
op31    LD A,(HL)
810
        XOR 1
811
        LD (HL),A
812
        RET
813
op3     LD HL,_KEYJ+1
814
        JR op31
815
op2     LD HL,KEYN
816
        LD A,(HL)
817
        DEC (HL)
818
        OR A
819
        JR NZ,op21
820
        LD (HL),3
821
        LD A,1
822
op22    LD (_KEYJ),A
823
        RET
824
op21    LD L,(HL)
825
        LD E,10
826
        CALL MULB
827
        LD HL,KBR
828
        ADD HL,DE
829
        LD (_KEYS),HL
830
        XOR A
831
        JR op22
832
opOK    POP DE
833
XORT    LD HL,(_KEYS)
834
        LD (KEYS),HL
835
        LD HL,(_KEYJ)
836
        LD (KEYJOY),HL
837
        RET
838
 
839
_KEYS   DEFW #202
840
_KEYJ   DEFW #202
841
 
842
MUopt   DEFW #C00,#471B,optD
843
        DEFB 4
844
 
845
STDCFG  LD BC,#FEFE ;�⠭� �FG
846
        IN A,(C)
847
        AND %1100 ;C
848
        RET NZ
849
        XOR A
850
        LD (KEYJOY),A
851
        LD (PMOUSE),A
852
        LD (KEYN),A
853
        LD HL,KBR
854
        LD (KEYS),HL
855
        LD A,#48
856
        JP DISPLX
857
 
858
UPEDIA  CALL    SAVMON
859
        CALL    RESNUM
860
        LD      HL,(R_NUM-1)
861
        CP      H
862
        CALL    NZ,OFFNUM
863
        CALL    BACK
864
UP_XX   LD      IX,MU00
865
        CALL    SELM
866
        JR      NC,UP9
867
        LD      IX,MU01-10
868
        LD      DE,10
869
        INC     A
870
        LD      B,A
871
UP8     ADD     IX,DE
872
        DJNZ    UP8
873
        CALL    SELM
874
        JR      NC,UP_XX
875
        LD      L,(IX+4)
876
        LD      H,(IX+5)
877
        LD      DE,T
878
        OR      A
879
        SBC     HL,DE
880
        ADD     A,L
881
        DEC     A
882
        LD      (USN),A
883
        XOR     A
884
        LD      (UST),A
885
        CALL    UP
886
        CALL    MEM7
887
UP9     CALL    MARK_
888
        JR      C,UP9
889
        JP      MLOOP
890
 
891
;---------------------ࠡ�� � ��થ஬
892
 
893
OFLINE  LD HL,MTMP  ;�몫.�㭪�
894
        LD A,(HL)
895
        DEC HL
896
        LD D,(HL)
897
        LD (HL),A
898
        INC HL
899
        CP D
900
        RET Z
901
        INC D
902
        RET Z
903
        DEC D
904
        INC HL
905
ONOFL   INC HL
906
        LD E,(HL)
907
        INC HL
908
        LD B,(HL)
909
        CALL SCOORD
910
        LD C,8
911
        LD E,L
912
        LD D,B
913
ONOF1   LD A,(HL)
914
        CPL
915
        LD (HL),A
916
        INC L
917
        DJNZ ONOF1
918
        LD B,D
919
        LD L,E
920
        INC H
921
        DEC C
922
        JR NZ,ONOF1
923
        RET
924
 
925
ONLINE  LD DE,(MXSH)   ;���.�㭪�
926
        LD A,L
927
        SUB E
928
        JR C,NOLINE
929
        CP D
930
        JR NC,NOLINE
931
        LD DE,(MBEG)
932
        LD A,H
933
        CP E
934
        JR C,NOLINE
935
        CP D
936
        JR Z,ONL1
937
        JR C,ONL1
938
NOLINE  LD HL,MTMP
939
        LD (HL),255
940
        INC HL
941
        LD (HL),255
942
        RET
943
ONL1    LD HL,MOLD
944
        CP (HL)
945
        RET Z
946
        INC HL
947
        LD (HL),A
948
        LD D,A
949
        INC HL
950
        SUB E
951
        LD (HL),A
952
        XOR A
953
        LD (NEW_M),A
954
        JR ONOFL
955
 
956
;��࠭��� ����ࠦ���� ��� ��५���
957
GETBUF  LD A,D  ;DE-YX
958
        CP 176
959
        JR C,M112
960
        LD D,176
961
M112    LD A,E
962
        CP 232
963
        JR C,M115
964
        LD E,232
965
M115    CALL PCOORD
966
        LD DE,MBU
967
        LD B,16
968
M110    PUSH BC
969
        PUSH HL
970
        LDI
971
        LDI
972
        LDI
973
        POP HL
974
        INC H
975
        LD A,H
976
        AND %111
977
        JR NZ,M114
978
        LD A,H
979
        SUB 8
980
        LD H,A
981
        LD A,L
982
        ADD A,32
983
        LD  L,A
984
        JR NC,M114
985
        LD A,8
986
        ADD A,H
987
        LD H,A
988
M114    POP BC
989
        DJNZ M110
990
        RET
991
 
992
;����⠭����� ����ࠦ���� ��� ��५���
993
PUTBUF  LD A,D ;de-xy
994
        CP 176
995
        JR C,M192
996
        LD D,176
997
M192    LD A,E
998
        CP 232
999
        JR C,M195
1000
        LD E,232
1001
M195    CALL PCOORD
1002
        LD DE,MBU
1003
        EX DE,HL
1004
        LD B,16
1005
M190    PUSH BC
1006
        PUSH DE
1007
        LDI
1008
        LDI
1009
        LDI
1010
        POP DE
1011
        INC D
1012
        LD A,D
1013
        AND %111
1014
        JR NZ,M194
1015
        LD A,D
1016
        SUB 8
1017
        LD D,A
1018
        LD A,E
1019
        ADD A,32
1020
        LD  E,A
1021
        JR NC,M194
1022
        LD A,8
1023
        ADD A,D
1024
        LD D,A
1025
M194    POP BC
1026
        DJNZ M190
1027
        RET
1028
 
1029
;�뢮� ��५�� � DSCR
1030
ARROW   PUSH DE      ;de-xy
1031
        LD A,176
1032
        LD C,16
1033
        SUB D
1034
        JR NC,M17W
1035
        ADD A,C
1036
        LD C,A
1037
M17W    CALL PCOORD
1038
        POP DE
1039
        LD A,E
1040
        AND %110
1041
        RRCA
1042
        ADD A,MBU2/256
1043
        LD D,A
1044
        LD E,0
1045
        LD A,L
1046
        AND #1F
1047
        SUB 30
1048
        CPL
1049
        JR NC,M179
1050
        XOR A
1051
M179    ADD A,3
1052
        LD (ARW+1),A
1053
ARW     LD B,3
1054
        PUSH HL
1055
        PUSH DE
1056
ARW0    LD A,(DE)
1057
        INC E
1058
        OR (HL)
1059
        LD (HL),A
1060
        LD A,(DE)
1061
        INC E
1062
        XOR (HL)
1063
        LD (HL),A
1064
        INC L
1065
        DJNZ ARW0
1066
        POP DE
1067
        POP HL
1068
        LD A,E
1069
        ADD A,6
1070
        LD E,A
1071
        INC H
1072
        LD A,H
1073
        AND %111
1074
        JR NZ,M174
1075
        LD A,H
1076
        SUB 8
1077
        LD H,A
1078
        LD A,L
1079
        ADD A,32
1080
        LD  L,A
1081
        JR NC,M174
1082
        LD A,8
1083
        ADD A,H
1084
        LD H,A
1085
M174    DEC C
1086
        JR NZ,ARW
1087
        RET
1088
 
1089
;���樠������ �� �室� � ����
1090
ARRINI  LD DE,MRK
1091
        LD HL,MBU2
1092
        CALL ARIS
1093
        LD DE,MRK+32
1094
        LD HL,MBU2+1
1095
ARIS    LD C,0
1096
ARIS0   LD B,16
1097
        PUSH HL
1098
        PUSH DE
1099
A0IS0   PUSH BC
1100
        CALL RRCB
1101
        LD (HL),A
1102
        INC L
1103
        INC L
1104
        LD (HL),B
1105
        CALL RRCB
1106
        OR (HL)
1107
        LD (HL),A
1108
        INC L
1109
        INC L
1110
        LD (HL),B
1111
        INC L
1112
        INC L
1113
        POP BC
1114
        DJNZ A0IS0
1115
        POP DE
1116
        POP HL
1117
        INC H
1118
        INC C
1119
        LD A,C
1120
        CP 4
1121
        JR NZ,ARIS0
1122
        RET
1123
RRCB    LD A,C
1124
        OR A
1125
        LD A,(DE)
1126
        LD B,C
1127
        INC DE
1128
        RET Z
1129
        LD B,0
1130
        EX AF,AF
1131
        LD A,C
1132
RRC1    EX AF,AF
1133
        SRL A
1134
        RR B
1135
        SRL A
1136
        RR B
1137
        EX AF,AF
1138
        DEC A
1139
        JR NZ,RRC1
1140
        EX AF,AF
1141
        RET
1142
 
1143
;����: �⮡ࠦ���� ��५�� � ���ᢥ祭���� �㭪� � SCR
1144
w_band  EQU 29
1145
MRK1    CALL E_I
1146
        LD A,(PMOUSE)
1147
        OR A
1148
        JR Z,MRK1N
1149
        LD A,(MYOLD)
1150
        CALL MRK1_
1151
MRK1N   LD A,(MY)
1152
        LD (MYOLD),A
1153
MRK1_   AND #FE
1154
        SUB 11
1155
        JR NC,M11
1156
        XOR A
1157
        JR M10
1158
M11     CP 192-w_band
1159
        JR C,M10
1160
        LD A,192-w_band
1161
M10     LD D,A
1162
        LD E,0
1163
        CALL BCOORD
1164
        PUSH HL
1165
        LD BC,SCR-DSCR
1166
        ADD HL,BC
1167
        POP DE
1168
        EX DE,HL
1169
        LD B,w_band
1170
M12     PUSHs
1171
        LD BC,32
1172
        LDIR
1173
        POPs
1174
        INC D
1175
        INC H
1176
        LD A,H
1177
        AND %111
1178
        JR NZ,M14
1179
        LD A,H
1180
        SUB 8
1181
        LD H,A
1182
        LD A,L
1183
        ADD A,32
1184
        LD  L,A
1185
        LD  E,A
1186
        JR NC,M15
1187
        LD A,8
1188
        ADD A,H
1189
        LD H,A
1190
M15     LD A,+(SCR-DSCR)/256
1191
        ADD A,H
1192
        LD D,A
1193
M14     DJNZ M12
1194
        RET
1195
 
1196
;������: �⮡ࠦ���� ��५�� � SCR
1197
wB_band EQU 20
1198
MYOLD   DEFB 0
1199
MRK2    CALL E_I
1200
        CALL STD
1201
        LD A,(PMOUSE)
1202
        OR A
1203
        JR Z,MRK2N
1204
        LD A,(MYOLD)
1205
        CALL MRK2_
1206
MRK2N   LD A,(MY)
1207
        LD (MYOLD),A
1208
MRK2_   AND #FE
1209
        SUB 2
1210
        CP 191-wB_band
1211
        JR C,M210
1212
        LD A,191-wB_band
1213
M210    LD D,A
1214
        LD E,0
1215
        CALL BCOORD
1216
        PUSH HL
1217
        LD BC,SCR-DSCR
1218
        ADD HL,BC
1219
        POP DE
1220
        EX DE,HL
1221
        LD B,wB_band
1222
M212    PUSHs
1223
        LD A,E
1224
        ADD A,24
1225
        LD E,A
1226
        LD L,A
1227
        LDI
1228
        LDI
1229
        LDI
1230
        LDI
1231
        LDI
1232
        LDI
1233
        LDI
1234
        LDI
1235
        POPs
1236
        INC D
1237
        INC H
1238
        LD A,H
1239
        AND %111
1240
        JR NZ,M214
1241
        LD A,H
1242
        SUB 8
1243
        LD H,A
1244
        LD A,L
1245
        ADD A,32
1246
        LD  L,A
1247
        LD  E,A
1248
        JR NC,M215
1249
        LD A,8
1250
        ADD A,H
1251
        LD H,A
1252
M215    LD A,+(SCR-DSCR)/256
1253
        ADD A,H
1254
        LD D,A
1255
M214    DJNZ M212
1256
        RET
1257
 
1258
;*************ࠡ�� � ��५���
1259
NEW_M   DEFB 2 ;0 -ᬥ�� �㭪�
1260
MARK    XOR     A;C �뢮��� ���� ������ ��ப
1261
mark_0  CALL    mark_
1262
        JR      C,mark_1
1263
        LD A,(NEW_M)
1264
        OR A
1265
        JR NZ,mark_0
1266
        CPL
1267
        LD (NEW_M),A
1268
mark_1  LD A,(MPOS)
1269
        RET
1270
MARK_   LD      A,1     ;��� �뢮�� ���� ������ ��ப
1271
mark_   LD      (MC21),A
1272
        CALL    STD
1273
        CALL    MMOV
1274
        JR      C,MMV1 ;���� �ࠢ ������ ���
1275
        RR      C
1276
MMV1    PUSH    AF
1277
        LD      HL,(MX)
1278
        RES     0,L
1279
        RES     0,H
1280
        PUSH    HL
1281
        SRL     H
1282
        SRL     H
1283
        SRL     H
1284
        SRL     L
1285
        SRL     L
1286
        SRL     L
1287
        CALL    ONLINE
1288
        CALL    OFLINE
1289
        POP     DE
1290
        PUSH    DE
1291
        CALL    GETBUF
1292
        POP     DE
1293
        PUSH    DE
1294
        CALL    ARROW
1295
MRKN    CALL    MRK1
1296
        POP     DE
1297
        CALL    PUTBUF
1298
        CALL    COPY21
1299
        POP     AF
1300
        RET;���:C/NC-����� ��� ��� FIRE, A-����� �㭪� ��� 255 (��� ����)
1301
 
1302
INIMNU  LD DE,MRK1  ;���� ��� ࠡ��� � ����
1303
        LD HL,#101
1304
IniMB   LD (MRKN+1),DE
1305
        LD (MWINX),HL
1306
        LD A,(MY)
1307
        LD (MYOLD),A
1308
        LD (NEW_M),A
1309
        JP ARRINI
1310
INIBUT  LD HL,#FFFF  ;���� ��� ࠡ��� � ���⮩
1311
        LD (MOLD),HL
1312
        LD (MBEG),HL
1313
        LD HL,(MX)
1314
        LD A,#22
1315
        CP H
1316
        JR C,IB1
1317
        LD H,A
1318
IB1     LD A,#C4
1319
        CP L
1320
        JR C,IB2
1321
        LD L,A
1322
IB2     LD (MX),HL
1323
        LD DE,MRK2
1324
        LD HL,#21C3
1325
        JR IniMB
1326
 
1327
COPY21  LD      HL,MC21
1328
        LD      A,(HL)
1329
        OR      A
1330
        RET     NZ
1331
        INC     (HL)
1332
        LD      HL,DSCR+#10A0
1333
        LD      DE,SCR+#10A0
1334
        LD      B,8
1335
C210    PUSHs
1336
        LD      BC,#60
1337
        LDIR
1338
        POPs
1339
        INC H
1340
        INC D
1341
        DJNZ C210
1342
        RET
1343
 
1344
;----------------- ��᫥�������
1345
RS254   LD      B,0 ;���� ���.
1346
        LD      DE,RS
1347
RS21    LD      A,(DE)
1348
        CP      255
1349
        JR      NZ,RS22
1350
        LD      A,B
1351
        PUSH    BC
1352
        LD      BC,RSCH
1353
        LD      L,A
1354
        LD      H,0
1355
        ADD     HL,HL
1356
        ADD     HL,HL
1357
        ADD     HL,BC
1358
        POP     BC
1359
        LD      A,(HL)
1360
        OR      A
1361
        JR      Z,RS25
1362
        PUSH    HL
1363
        LD      HL,S_GUN
1364
        CALL    WA
1365
        OR      A
1366
        POP     HL
1367
        JR      Z,RS22
1368
        INC     HL
1369
        LD      A,(HL)
1370
        OR      A
1371
        JR      Z,RS23
1372
        DEC     HL
1373
RS25    INC     HL
1374
        LD      C,(HL)
1375
        INC     HL
1376
        LD      A,(HL)
1377
        INC     HL
1378
        LD      H,(HL)
1379
        LD      L,A
1380
RS24    PUSH    HL
1381
        LD      A,(HL)
1382
        LD      HL,RS
1383
        CALL    BT
1384
        POP     HL
1385
        OR      A
1386
        JR      NZ,RS22
1387
        INC     HL
1388
        DEC     C
1389
        JR      NZ,RS24
1390
RS23    EXX
1391
        LD      BC,80*256
1392
        LD      HL,RS
1393
RSEX    LD A,(HL) ;�� ����� 17 ���
1394
        INC HL
1395
        CP 254
1396
        JR NZ,RSE1
1397
        INC C
1398
RSE1    DJNZ RSEX
1399
        LD A,C
1400
        CP 17
1401
        RET NC
1402
        EXX
1403
        LD      A,254
1404
        LD      (DE),A
1405
        LD      A,B
1406
        INC     A
1407
        LD      (DSDAT),A
1408
        LD      A,51
1409
        CALL    DISPLX
1410
        CALL    STOP_T
1411
        JR      RS254
1412
RS22    INC     DE
1413
        INC     B
1414
        LD      A,B
1415
        CP      80
1416
        RET     NC
1417
        JR      C,RS21
1418
 
1419
;����������� ��᫥�������
1420
RSCH    DEFW 0,0
1421
        DEFW 0,0
1422
        DEFW    #302,_R2
1423
        DEFW    #103,_R3
1424
        DEFW 0,0
1425
        DEFW    #105,_R5
1426
        DEFW    #200,_R6
1427
        DEFW    #300,_R7
1428
        DEFW    #108,_R8
1429
        DEFW    #109,_R9
1430
        DEFW    #10A,_R10
1431
        DEFW 0,0
1432
        DEFW    #30C,_R12
1433
        DEFW 0,0
1434
        DEFW 0,0
1435
        DEFW    #300,_R15
1436
        DEFW    #300+33,_R16
1437
        DEFW    #300,_R17
1438
        DEFW 0,0
1439
        DEFW    #300,_R19
1440
        DEFW    #200,_R20
1441
        DEFW    55,0
1442
        DEFW    #100,_R22
1443
        DEFW    57,0
1444
        DEFW    #100+58,_R24
1445
        DEFW    59,0
1446
        DEFW    60,0
1447
        DEFW    #100+61,_R27
1448
        DEFW    63,0
1449
        DEFW    #200,_R29
1450
        DEFW    #100,_R30
1451
        DEFW    #100,_R31
1452
        DEFW    #100,_R32
1453
        DEFW    19,0
1454
        DEFW    20,0
1455
        DEFW    21,0
1456
        DEFW    22,0
1457
        DEFW    23,0
1458
        DEFW    24,0
1459
        DEFW    #400,_R39
1460
        DEFW    #400,_R40
1461
        DEFW    #300,_R41
1462
        DEFW    #300+33,_R42
1463
        DEFW    #100+25,_R43
1464
        DEFW    26,0
1465
        DEFW    27,0
1466
        DEFW    28,0
1467
        DEFW    29,0
1468
        DEFW    30,0
1469
        DEFW    #300+31,_R49
1470
        DEFW    32,0
1471
        DEFW    #100,_R51
1472
        DEFW    #200,_R52
1473
        DEFW    #200,_R53
1474
        DEFW    #100,_R54
1475
        DEFW    #100,_R55
1476
        DEFW    #300,_R56
1477
        DEFW    #100,_R57
1478
        DEFW    #300+62,_R58
1479
        DEFW 0,0
1480
        DEFW    #200+35,_R60;
1481
        DEFW    #100+36,_R61
1482
        DEFW    #100+37,_R62
1483
        DEFW    #100+38,_R63
1484
        DEFW    #100+39,_R64;
1485
        DEFW    #100+40,_R65
1486
        DEFW    #100+41,_R66
1487
        DEFW    #100+42,_R67
1488
        DEFW    #100+43,_R68;
1489
        DEFW    #100+44,_R69
1490
        DEFW    #100+45,_R70
1491
        DEFW    #100+46,_R71
1492
        DEFW    #100+47,_R72;
1493
        DEFW    #100+48,_R73
1494
        DEFW    #100+49,_R74
1495
        DEFW    #100+50,_R75
1496
        DEFW    #100+51,_R76
1497
        DEFW    #200+52,_R77
1498
        DEFW    #100+53,_R78
1499
        DEFW    #200+54,_R79
1500
 
1501
_R2     DEFB    3,9,16
1502
_R3     DEFB    10
1503
_R5     DEFB    8
1504
_R6     DEFB    9,5
1505
_R7     DEFB    6,10,19
1506
_R8     DEFB    50
1507
_R9     DEFB    8
1508
_R10    DEFB    8
1509
_R12    DEFB    2,48,79
1510
_R15    DEFB    11,13,14
1511
_R16    DEFB    15,23,63
1512
_R17    DEFB    16,20,69
1513
_R19    DEFB    43,44,50
1514
_R20    DEFB    19,42
1515
_R22    DEFB    60
1516
_R24    DEFB    47
1517
_R27    DEFB    78
1518
_R29    DEFB    50,64
1519
_R30    DEFB    67
1520
_R31    DEFB    77
1521
_R32    DEFB    62
1522
_R39    DEFB    61,33,35,37
1523
_R40    DEFB    74,34,36,38
1524
_R41    DEFB    76,39,40
1525
_R42    DEFB    41,43,44
1526
_R43    DEFB    50
1527
_R49    DEFB    52,53,55
1528
_R51    DEFB    75
1529
_R52    DEFB    69,51
1530
_R53    DEFB    66,54
1531
_R54    DEFB    68
1532
_R55    DEFB    73
1533
_R56    DEFB    70,45,46
1534
_R57    DEFB    65
1535
_R58    DEFB    71,56,49
1536
_R60    DEFB    62,63
1537
_R61    DEFB    21
1538
_R62    DEFB    61
1539
_R63    DEFB    61
1540
_R64
1541
_R65    DEFB    22
1542
_R66    DEFB    64
1543
_R67    DEFB    65
1544
_R68
1545
_R69    DEFB    23
1546
_R70
1547
_R71    DEFB    69
1548
_R72
1549
_R74    DEFB    24
1550
_R73
1551
_R75    DEFB    72
1552
_R76
1553
_R78    DEFB    25
1554
_R77
1555
_R79    DEFB    76,78
1556
 
1557
RSDAY   LD      B,0     ;������� ���.
1558
        LD      HL,RS
1559
RY1     LD      A,(HL)
1560
        OR      A
1561
        JR      Z,RY2
1562
        CP      254
1563
        JR      NC,RY2
1564
        LD      A,(RSN)
1565
        ADD     A,4
1566
        SRL     A
1567
        SRL     A
1568
        SRL     A
1569
        LD      D,A
1570
        LD      A,(HL)
1571
        SUB     D
1572
        JR      NC,RY3
1573
        XOR     A
1574
RY3     LD      (HL),A
1575
        OR      A
1576
        RET     NZ
1577
        INC     B
1578
        LD      A,B
1579
        LD      (DSDAT),A
1580
        LD      A,5
1581
        CALL    DISPLX
1582
        LD      A,(DSDAT)
1583
        CP      19
1584
        LD      A,6
1585
        CALL    C,DISPL
1586
        CALL    STOP_T
1587
        LD      HL,R_NUM
1588
        INC     (HL)
1589
        JP      RS254
1590
RY2     INC     HL
1591
        INC     B
1592
        LD      A,B
1593
        CP      80
1594
        JR      C,RY1
1595
        RET     NC
1596
RY4     CALL    RESNUM
1597
        LD      HL,R_NUM
1598
        CP      A
1599
        RET
1600
 
1601
;----Program Data
1602
;��� � �����
1603
MNT     DEFB    3,1, 2,8, 3,1, 3,0, 3,1, 3,0, 3,1, 3,1, 3,0, 3,1, 3,0, 3,1
1604
;�������� ����楢
1605
MNAME   DEFB    15,47,30,18,16,33,47,15
1606
        DEFB    37,21,18,33,16,28,47,15
1607
        DEFB    15,29,16,33,35,16,15,15
1608
        DEFB    15,16,32,33,21,28,47,15
1609
        DEFB    15,15,29,16,47,15,15,15
1610
        DEFB    15,15,25,46,30,47,15,15
1611
        DEFB    15,15,25,46,28,47,15,15
1612
        DEFB    16,18,19,36,34,35,16,15
1613
        DEFB    34,21,30,35,47,17,33,47
1614
        DEFB    31,27,35,47,17,33,47,15
1615
        DEFB    15,30,31,47,17,33,47,15
1616
        DEFB    20,21,27,16,17,33,47,15
1617
;�����-��५�窠
1618
MRK     DEFW    #C0,#E0,#F0,#F8,#FC,#FE,#FF,#80FF,#C0FF,#E0FF
1619
        DEFW    #F0FF,#F0FF,#F8,#F0,#E0,#C0
1620
        DEFW    #00,#40,#60,#50,#48,#44,#42,#0041,#8040,#4040
1621
        DEFW    #E047,#0048,#50,#60,#40,#00
1622
;�᫮��� �����
1623
SPM     DEFB    #40,#E0,#40,0 ;����
1624
        DEFB    #E0,#A0,#E0,0 ;����
1625
        DEFB    #A0,#40,#A0,0 ;���
1626
        DEFB    #50,#F8,#78,0
1627
        DEFB    #E0,#E0,#E0,0
1628
        DEFB    #C0,#C0,0,0
1629
        DEFB    #04,#0C,#04,0
1630
        DEFB    #60,#90,#90,#60
1631
        DEFB    #60,#F0,#F0,#60
1632
        DEFB    #F0,#90,#90,#F0
1633
 
1634
;���न����: -���
1635
XBASE   DEFB    95,19, 123,54, 56,37, 81,64
1636
        DEFB    22,87, 75,110, 135,105, 171,28
1637
;-���⮢
1638
PORT    DEFB    98,20, 102,32, 11,20, 28,40
1639
        DEFB    169,96, 102,12, 161,18, 112,30
1640
        DEFB    80,23, 92,86, 140,48, 45,95
1641
        DEFB    24,74, 46,28, 166,53, 74,33
1642
;-���஢��
1643
ISLN    DEFB    183,101,111,78,51,25,2,35
1644
        DEFB    161,45,69,68,79,77,84,34
1645
        DEFB    165,37,90,36,12,96,2,86
1646
        DEFB    187,45,129,102,136,58,68,40
1647
;-�������
1648
UCOLON  DEFB    154,4,99,7,68,20,168,72
1649
        DEFB    27,3,133,79,9,65,45,49
1650
        DEFB    107,107,67,112,177,37,71,80
1651
        DEFB    11,54,57,9,162,105,113,66
1652
;-���� �ࠣ��
1653
UBASE   DEFB    56,90,173,110,107,98,180,20
1654
        DEFB    60,33,120,60,29,106,152,100
1655
        DEFB    7,2,78,100,82,13,62,62
1656
        DEFB    139,85,39,36,155,59,178,55
1657
;-��ࠡ��
1658
SHIP    DEFB    70,88,129,67,64,54,97,39
1659
        DEFB    25,53,152,77,168,45,12,82
1660
        DEFB    93,105,71,29,117,83,119,5
1661
        DEFB    51,57,31,95,186,83,89,9
1662
;-����
1663
TLETH   DEFB    42,40
1664
 
1665
;------------------------------------------
1666
SEA_T   DEFW    SEA0,SEA1,SEA2,SEA3,SEA4
1667
 
1668
SEABAT  ;��� ��� �����
1669
        CALL SAVMON
1670
SEB     CALL LODALX
1671
        CALL ALEX
1672
        PUSH AF
1673
        CALL LDASM1
1674
        POP AF
1675
        JR NC,SEB
1676
        PUSH AF
1677
        ADD A,#3B
1678
        LD (MUsea+3),A
1679
        CALL BACK
1680
        LD IX,MUsea
1681
        CALL MENUC
1682
        POP AF
1683
        LD HL,SEA_T
1684
        CALL WT
1685
        JP (HL)
1686
 
1687
MUsea   DEFW #404,#FF16
1688
SEA0    ;������ ufo
1689
SEA3    ;������� intr (��� ����)
1690
        CALL TMOF
1691
SEA3_   LD A,255
1692
        LD (TARlst),A
1693
        LD (T_UFO),A
1694
        JR SEA2_
1695
SEA4    XOR A
1696
        LD (AQU),A
1697
        DEC A
1698
        LD (T_INTR),A ;������ intr
1699
        LD B,10
1700
        LD HL,AQNAVT
1701
SEA4_   LD (HL),0
1702
        LD DE,16
1703
        ADD HL,DE
1704
        DJNZ SEA4_
1705
 
1706
SEA2    CALL TMOF ;�����
1707
SEA2_   CALL OFFS
1708
        CALL GOhome
1709
        JP XMR
1710
 
1711
SEA1    CALL YES_NO
1712
        JR NZ,SEA3_
1713
        LD A,1
1714
        LD (MONINI),A
1715
        JP BATTL1
1716
 
1717
MU55    DEFW #201,#3717
1718
        DEFW 0
1719
        DEFW MNY1
1720
        DEFW MNY2
1721
        DEFW MNY3
1722
        DEFW DOLG
1723
        DEFW ITOGO
1724
        DEFW MONEY
1725
 
1726
MNY1    EQU MXDM
1727
MNY2    EQU MNY1+4
1728
MNY3    EQU MNY1+8
1729
ITOGO   EQU MNY1+12
1730
 
1731
FINANS  ;䨭.���
1732
        LD HL,#BDBC
1733
        CALL F_O
1734
        CALL XMR
1735
 
1736
F_O     LD (MU55+4),HL
1737
        CALL MARK_
1738
        CALL SAVMON
1739
        CALL BACK
1740
        LD HL,MNY1
1741
        LD DE,MNY1+1
1742
        LD (HL),0
1743
        LD BC,16
1744
        LDIR
1745
        LD HL,ITOGO
1746
        PUSH HL
1747
        LD A,(RSN)
1748
        OR A
1749
        JR Z,FA1
1750
        LD IX,MNY1
1751
        LD B,A
1752
FA0     LD HL,(ZP)
1753
        PUSH HL
1754
        CALL INCR
1755
        POP HL
1756
        EX (SP),IX
1757
        CALL INCR
1758
        EX (SP),IX
1759
        DJNZ FA0
1760
FA1     LD A,(ENG)
1761
        OR A
1762
        JR Z,FA2
1763
        LD IX,MNY2
1764
        LD B,A
1765
FA3     LD HL,(ZP+2)
1766
        PUSH HL
1767
        CALL INCR
1768
        POP HL
1769
        EX (SP),IX
1770
        CALL INCR
1771
        EX (SP),IX
1772
        DJNZ FA3
1773
FA2     LD A,(AQU)
1774
        OR A
1775
        JR Z,FA6
1776
        LD IX,MNY3
1777
        LD B,A
1778
FA5     LD HL,(ZP+4)
1779
        PUSH HL
1780
        CALL INCR
1781
        POP HL
1782
        EX (SP),IX
1783
        CALL INCR
1784
        EX (SP),IX
1785
        DJNZ FA5
1786
FA6     POP AF
1787
        LD HL,(ITOGO)
1788
        LD DE,(DOLG)
1789
        ADD HL,DE
1790
        LD (ITOGO),HL
1791
        LD HL,(ITOGO+2)
1792
        LD DE,(DOLG+2)
1793
        ADC HL,DE
1794
        LD (ITOGO+2),HL
1795
        LD IX,MU55
1796
        JP MNU
1797
 
1798
MU56    DEFW 0,#381e
1799
SMERT   LD IX,MU56
1800
        CALL MNU
1801
        CALL TMOF
1802
        JP EX__
1803
 
1804
Mn_FIN  ;�⮣� �� ��� ���
1805
        LD A,(RNB)
1806
        LD (RNAgen),A
1807
        LD HL,#BFBE
1808
        CALL F_O
1809
        ;�����?
1810
        LD HL,0
1811
        LD (DOLG),HL
1812
        LD (DOLG+2),HL
1813
        LD DE,(ITOGO)
1814
        LD HL,(MONEY)
1815
        XOR A
1816
        SBC HL,DE
1817
        LD (MONEY),HL
1818
        LD DE,(ITOGO+2)
1819
        LD HL,(MONEY+2)
1820
        SBC HL,DE
1821
        LD (MONEY+2),HL
1822
        JR C,BAD_M
1823
        ;३⨭�
1824
        LD HL,REYTING
1825
        LD A,(HL)
1826
        LD (HL),0
1827
        PUSH AF
1828
        ADD A,191
1829
        LD (MU79+6),A
1830
        LD IX,MU79
1831
        CALL MNU
1832
        POP AF
1833
        CP 2
1834
        JR NC,RIP
1835
        ;���>=4
1836
        LD HL,BASE
1837
        LD BC,#800
1838
F_BS    LD A,(HL)
1839
        INC HL
1840
        CP 100
1841
        JR NC,F_BS2
1842
        INC C
1843
F_BS2   DJNZ F_BS
1844
        LD A,C
1845
        CP 4
1846
        JR C,BAD_B
1847
        CALL XEARTH
1848
        CALL LODMON
1849
        CALL INIBUT
1850
        JP STOP_T
1851
 
1852
MU81    DEFW 0,#511E
1853
MU80    DEFW #602,#501A
1854
MU79    DEFW #1400,#4F1E,MONEY
1855
        DEFB 192
1856
 
1857
BAD_B   LD IX,MU82
1858
        JR BAD_
1859
BAD_M   LD IX,MU80
1860
BAD_    CALL MNU
1861
RIP     LD IX,MU81
1862
        CALL MENUC
1863
        CALL TMOF
1864
        CALL NW_GE
1623 alone 1865
       if MUSIC
1866
       call SETMENUMUSIC
1867
       endif
992 alone 1868
        CALL MLOOP
1869
MU82    DEFW #802,#5218
1870
 
1871
ACTD    ;����⢨� ��� ����
1872
        CALL baseUP
1873
        CALL hlthUP
1874
        LD A,(DAT+14)
1875
        LD HL,MNT
1876
        CALL WT
1877
        EX DE,HL
1878
        XOR A
1879
        LD HL,(DAT)
1880
        PUSH HL
1881
        SBC HL,DE
1882
        POP HL
1883
        JR Z,LST_D
1884
        XOR A
1885
        LD DE,#201
1886
        SBC HL,DE
1887
        RET NZ
1888
        LD A,(DAT+14)
1889
        CP 4
1890
        RET NZ
1891
        CALL STOP_T
1892
        LD A,30
1893
        JR B_D
1894
LST_D   LD A,57
1895
B_D     JP DISPL
1896
 
1897
baseUP  LD B,8
1898
        LD HL,BASE
1899
BUP0    LD A,(HL)
1900
        OR A
1901
        JR Z,BUP1
1902
        CP 100
1903
        JR NC,BUP1
1904
        CP 9
1905
        JR C,BUP2
1906
        SUB 4
1907
BUP2    DEC A
1908
        LD (HL),A
1909
BUP1    INC HL
1910
        DJNZ BUP0
1911
        RET
1912
 
1913
hlthUP  LD A,(DAT+1)
1914
        OR A
1915
        JR Z,HUP1
1916
        CP 6
1917
        RET NZ
1918
HUP1    LD DE,AQNAVT
1919
        LD HL,AQNAVT+6
1920
        LD B,10
1921
HUP0    PUSH BC
1922
        LD A,(HL)
1923
        OR A
1924
        JR Z,HUP2
1925
        LD A,(DE)
1926
        OR A
1927
        JR Z,HUP2
1928
        DEC (HL)
1929
        JR NZ,HUP2
1930
        PUSH HL
1931
        PUSH DE
1932
        DEC A
1933
        LD (DSDAT),A
1934
        LD A,83
1935
        CALL DISPLX
1936
        POP DE
1937
        POP HL
1938
HUP2    LD BC,16
1939
        ADD HL,BC
1940
        EX DE,HL
1941
        ADD HL,BC
1942
        EX DE,HL
1943
        POP BC
1944
        DJNZ HUP0
1945
        RET
1946
 
1947
;================= ������� 楫�� ==============
1948
AN_UFO  DEFB 6,9,8,5,7,9,11,13,17 ;���� �-�� �� ���
1949
AN_OBJ  DEFB 18,19,14,19,17,14,20,21,22,16 ;���� �-�� �� ��ꥪ��
1950
 
1951
PREBAT  ;�।��⠭���� ���
1952
        CALL SET_U
1953
        CALL SET_AR
1954
        CALL SET_AN
1955
        RET
1956
 
1957
SET_U   LD A,(T_UFO) ;⨯ ��� (0..8) T_UFO->L_UFO
1958
        CP 1
1959
        JR C,SEU0
1960
        JR Z,SEU1
1961
        LD A,8
1962
        JR SEU
1963
SEU1    CALL RND
1964
        AND 1
1965
        ADD A,6
1966
        JR SEU
1967
SEU0    CALL RND
1968
        AND 7
1969
        CP 6
1970
        JR NC,SEU0
1971
SEU     LD (L_UFO),A
1972
        RET
1973
 
1974
SET_AR  ;SET �� (1..5)
1975
        LD A,(L_LAND)
1976
        CP 9
1977
        JR NZ,SER1
1978
        LD A,3
1979
SER0    LD (A_RASA),A
1980
        RET
1981
SER1    LD A,(PERIOD)
1982
        LD HL,W_RASA
1983
        CALL DD
1984
        LD C,1
1985
        CALL R100
1986
        LD B,A
1987
        XOR A
1988
SER2    ADD A,(HL)
1989
        INC HL
1990
        CP B
1991
        JR NC,SER3
1992
        INC C
1993
        LD E,A
1994
        LD A,C
1995
        CP 5
1996
        LD A,E
1997
        JR C,SER2
1998
SER3    LD A,C
1999
        JR SER0
2000
 
2001
SET_AN  LD A,(L_LAND) ;�_�� �ࠣ��
2002
        OR A
2003
        LD HL,AN_OBJ-1
2004
        JR NZ,SEN0
2005
        LD A,(L_UFO)
2006
        LD HL,AN_UFO
2007
SEN0    CALL BT
2008
        LD (A_NUM),A
2009
       if PROTECT
2010
        CALL CHK_3
2011
        LD HL,(TX)
2012
        LD A,(CRC3)
2013
        CP L
2014
        CALL NZ,OFFS
2015
       endif
2016
        JP MEM7
2017
 
2018
;6 ��ਮ��� ������� �����
2019
;�� �ࠣ�� � %
2020
W_RASA  DEFB 97,1,0,1;1
2021
        DEFB 50,5,0,5;40
2022
        DEFB 25,22,5,23;25
2023
        DEFB 10,20,20,25;25
2024
        DEFB 1,15,40,14;30
2025
        DEFB 0,10,70,10;10
2026
        DEFB 0,2,90,2;6
2027
;�� ��� � %
2028
W_UFO   DEFB 95,95+5;0
2029
        DEFB 83,83+15;2
2030
        DEFB 75,75+17;8
2031
        DEFB 55,55+30;15
2032
        DEFB 40,40+35;25
2033
        DEFB 10,10+55;35
2034
        DEFB 10,10+30;60
2035
;�� 楫�� � % (UFO,sh,port,isl,Xb,Uc;Ub)
2036
W_OBJ   DEFB 90,02,04,05,00,00;00 ;
2037
        DEFB 80,04,10,07,00,00;00 ; ��� Xb,Uc,Ub!
2038
        DEFB 70,07,08,10,00,06;00
2039
        DEFB 60,08,09,05,03,10;05
2040
        DEFB 49,11,02,05,08,10;15
2041
        DEFB 20,05,09,01,25,15;25
2042
        DEFB 10,05,02,03,70,02;03
2043
 
2044
OBJ_N   DEFB 1  ;(⨯ 0..6)
2045
OBJ_MOD DEFB 1  ;(����䨪���)
2046
NEWOBJ  ;������� ���.��ꥪ�
2047
        LD A,(PERIOD)
2048
        ADD A,A
2049
        LD B,A
2050
        ADD A,A
2051
        ADD A,B;x6
2052
        LD HL,W_OBJ
2053
        CALL BA
2054
        LD C,0
2055
        CALL R100
2056
        LD B,A
2057
        XOR A
2058
NJ2     ADD A,(HL)
2059
        INC HL
2060
        CP B
2061
        JR NC,NJ3
2062
        INC C
2063
        LD E,A
2064
        LD A,C
2065
        CP 6
2066
        LD A,E
2067
        JR C,NJ2
2068
NJ3     LD A,C
1374 alone 2069
       ;ld a,2 ;FIXME 2=���� (ࠡ�⠥�)
2070
       ;ld a,0 ;FIXME 0=���?
2071
       ;ld a,1 ;FIXME 1=��ࠡ��?
2072
       ld a,3 ;FIXME 3=���஢?
2073
        LD (OBJ_N),A ;(⨯ 0..6)
992 alone 2074
        OR A
1374 alone 2075
        JR Z,NJ0 ;0=���
992 alone 2076
        CP 4
1374 alone 2077
        JR Z,NJ4 ;4=����?
992 alone 2078
        CALL RNDG ;���,����,����,Ub,Uc (0..15)
1374 alone 2079
       ld a,2 ;FIXME 2=�� �ᥣ�� ���� (��� ���஢� ���� ���室��)
2080
       ;ld a,3 ;FIXME 3=��???
992 alone 2081
        AND #F
2082
        JR NJR
2083
NJ4     LD B,80
2084
NJ4_    CALL RND  ;Xb (1..7)
2085
        AND 7
2086
        JR Z,NJ4_
2087
        LD C,A
2088
        LD HL,BASE
2089
        CALL BA
2090
        CP 100
2091
        LD A,C
2092
        JR C,NJR
2093
        DJNZ NJ4_
2094
        JR NEWOBJ ;��� ����� Xb
2095
NJ0     LD A,(PERIOD) ;ufo (0..2)
2096
        LD HL,W_UFO
2097
        CALL WA
2098
        CALL R100
2099
        LD C,0
2100
        CP (HL)
2101
        JR C,NJ00
2102
        INC C
2103
        INC HL
2104
        CP (HL)
2105
        JR C,NJ00
2106
        INC C
2107
NJ00    LD A,C
2108
NJR     LD (OBJ_MOD),A
2109
        RET
2110
 
2111
RNDG    PUSH    HL ;���� ��� ���
2112
        LD      HL,(RNAgen)
2113
        INC     HL
2114
        LD      A,H ;;;
2115
        AND     #1F
2116
        LD      H,A
2117
        LD      A,(RNBgen)
2118
        RRCA
2119
        RRCA
2120
        RRCA
2121
        XOR     (HL)
2122
        SUB     L
2123
        ADD     A,%11101
2124
        LD      (RNAgen),HL
2125
        LD      (RNBgen),A
2126
        POP     HL
2127
        RET
2128
 
2129
R100    CALL RNDG ; (rnd 1..100)
2130
        AND #7F
2131
        CP 100
2132
        JR NC,R100
2133
        INC A
2134
        RET
2135
 
2136
TR_N1   DEFB 198-2,0,202-1,218-1,194-1;��� ����
2137
TARh    ;������� 楫��
2138
        LD HL,TARoff
2139
        LD A,(HL)
2140
        OR A
2141
        JR Z,TRon
2142
        DEC (HL)
2143
        RET NZ
2144
        INC HL   ;���
2145
        CALL RNDG
2146
        AND #1F
2147
        ADD A,4
2148
; LD A,6;---------
2149
        LD (HL),A ;�६� ����� (4..19)
2150
        CALL NEWOBJ
2151
        LD E,A
2152
        LD A,(OBJ_N)
2153
        LD (TARlst),A
2154
        PUSH AF
2155
        LD HL,TR_N1
2156
        CALL BA
2157
        ADD A,E
2158
        LD (DSDAT),A
2159
        POP AF
2160
        PUSH AF
2161
        OR A
2162
        CALL Z,UFOst
2163
        POP AF
2164
        PUSH AF
2165
        LD HL,T_UFO
2166
        CALL BA
2167
        LD (HL),E
2168
        LD A,84
2169
        CALL DISPL
2170
        POP AF
2171
        ADD A,85
2172
        CALL DISPLX
2173
        CALL STOP_T
2174
        JP REMAP
2175
 
2176
TRon    INC HL
2177
        DEC (HL)
2178
        RET NZ
2179
        DEC HL
2180
        CALL RNDG
2181
        AND #1F
2182
        ADD A,2;�६� ���� 楫ﬨ (2..33)
2183
        LD (HL),A
2184
; LD (HL),1 ;-----------
2185
        ;���� ��� 楫�
2186
        LD A,(TARlst)
2187
        CP 200
2188
        RET NC
2189
        LD E,A
2190
        LD HL,T_UFO ;楫� �뫠 㭨�⮦���
2191
        CALL BA
2192
        LD A,(HL)
2193
        CP 200
2194
        RET NC
2195
        LD A,E
2196
        PUSH AF
2197
        CP 4
2198
        JR Z,TRxb
2199
        JR NC,TRubc ;��� Ub,Uc
2200
        OR A
2201
        JR Z,TRufo
2202
        LD HL,REYTING ;��� ���,����,���
2203
        LD A,(HL)
2204
        CP 2
2205
        JR NC,TR_
2206
        INC (HL)
2207
        JR TR_
2208
TRxb    LD A,(T_BAS);��� XB
2209
        LD HL,BASE
2210
        CALL BA
2211
        LD (HL),255
2212
        JR TR_
2213
TRufo   LD A,(T_UFO)
2214
        CP 3
2215
        LD A,92    ;��� ufo
2216
        CALL C,DISPL
2217
TR_     POP AF
2218
        PUSH AF
2219
        LD HL,T_UFO
2220
        CALL BA
2221
        LD (HL),255
2222
TRubc   POP AF
2223
        LD HL,T_TYPE
2224
        CP (HL)
2225
        CALL Z,GOhome ;楫� ����ﭠ
2226
        LD A,255
2227
        LD (TARlst),A
2228
        JP REMAP
2229
 
2230
UFOst   ;���� ���� ���
2231
        PUSH DE
2232
Ust     CALL UFORND
2233
        CALL isSEA
2234
        JR Z,Ust
2235
        LD (UFO),HL
2236
        CALL UFORND
2237
        LD (UFO_T),HL
2238
        POP DE
2239
        RET
2240
 
2241
UFORND  CALL RND ;��� ����
2242
        AND #7F
2243
        CP 116
2244
        JR NC,UFORND
2245
        LD H,A
2246
UC1     CALL RND
2247
        CP 190
2248
        JR NC,UC1
2249
        LD L,A
2250
        RET
2251
 
2252
 
2253
REMAP   ;����� �����
2254
        XOR A
2255
        LD (T_D),A
2256
        LD (T_SW),A
2257
        LD HL,DSCR
2258
        LD DE,SCR
2259
        LD C,8
2260
        CALL RE_64
2261
        LD HL,DSCR+#800
2262
        LD DE,SCR+#800
2263
        LD C,7
2264
RE_64   LD B,8
2265
        PUSH DE
2266
        PUSH HL
2267
RE_8    PUSHs
2268
        LDI
2269
        LDI
2270
        LDI
2271
        LDI;4
2272
        LDI
2273
        LDI
2274
        LDI
2275
        LDI;8
2276
        LDI
2277
        LDI
2278
        LDI
2279
        LDI;12
2280
        LDI
2281
        LDI
2282
        LDI
2283
        LDI;16
2284
        LDI
2285
        LDI
2286
        LDI
2287
        LDI;20
2288
        LDI
2289
        LDI
2290
        LDI
2291
        LDI;24
2292
        POPs
2293
        INC H
2294
        INC D
2295
        DJNZ RE_8
2296
        POP HL
2297
        POP DE
2298
        LD A,L
2299
        ADD A,32
2300
        LD L,A
2301
        LD A,E
2302
        ADD A,32
2303
        LD E,A
2304
        DEC C
2305
        JR NZ,RE_64
2306
        RET
2307
 
2308
 
2309
isSEA   ;HL - �� ����� ? NZ-��, Z-���
2310
        PUSH HL
2311
        EX DE,HL
2312
        LD IX,DATA01
2313
        LD A,E
2314
        AND %111
2315
        LD (ISE0+2),A
2316
        CALL STD
2317
        CALL PCOORD
2318
ISE0    LD A,(IX+0)
2319
        AND (HL)
2320
        POP HL
2321
        RET
2322
 
2323
ACTM    LD A,(T_D)
2324
        AND 1
2325
        LD A,1
2326
        LD (T_D),A
2327
        JR Z,AKM0
2328
        CALL SHOWD
2329
AKM0    LD HL,(UFO_T) ;UFO move
2330
        PUSH HL
2331
        LD DE,(UFO)
2332
        CALL LINini
2333
        CALL LINnx_
2334
        LD (UFO),DE
2335
        POP HL
2336
        XOR A
2337
        SBC HL,DE
2338
        JR NZ,AKM1
2339
        CALL UFORND
2340
        LD (UFO_T),HL
2341
AKM1    LD HL,(UFO) ;intr move
2342
        LD A,(T_TYPE)
2343
        OR A
2344
        JR Z,AKM2
2345
        LD HL,(INTR_T)
2346
AKM2    PUSH HL
2347
        LD DE,(INTR)
2348
        XOR A
2349
        SBC HL,DE
2350
        POP HL
2351
        JR Z,AKM4
2352
        PUSH HL
2353
        CALL LINini
2354
        CALL LINnx_
2355
        LD (INTR),DE
2356
        POP HL
2357
        XOR A
2358
        SBC HL,DE
2359
        JP NZ,SHOWD
2360
AKM4    LD A,(T_TYPE)
2361
        CP 100
2362
        JP NC,SHOWD
2363
        OR A
2364
        JR NZ,AKM3
2365
        LD HL,(UFO)
2366
        CALL isSEA
2367
        JP Z,SHOWD
2368
        LD A,(xHAC2)
2369
        CP #D6
2370
        JP Z,SEA1
2371
        CALL BATTLE
2372
AKM3    ;�맮� ���
2373
        CALL BATTL1
2374
 
2375
isTLEF  LD A,(RS+58)
2376
        OR A
2377
        RET NZ
2378
        LD (Tleth),A
2379
        RET
2380
 
2381
EVAC    ;�������
2382
        CALL BADDER
2383
        JP SEA2_
2384
 
2385
ALLDIE  ;�� �������
2386
        CALL MEM7
2387
        CALL BACK
2388
        LD IX,MU93
2389
        CALL MENUC
2390
        CALL TMOF
2391
        CALL BADDER
2392
        JP SEA4
2393
 
2394
MU93    DEFW #A02,#5D1A
2395
 
2396
TARRES  LD A,(T_TYPE) ;�⪫ 楫�
2397
        PUSH AF
2398
        LD HL,T_UFO
2399
        CALL BA
2400
        LD B,(HL)
2401
        LD (HL),255
2402
        POP AF
2403
        OR A
2404
        RET
2405
BADDER  ;���娥 १-��
2406
        CALL TARRES
2407
        RET Z ;��� ���
2408
        CP 4
2409
        JR Z,BDxb
2410
        RET NC ;��� Ub,Uc
2411
        LD HL,REYTING ;��� ���,����,���
2412
        LD A,(HL)
2413
        CP 2
2414
        RET NC
2415
        INC (HL)
2416
        RET
2417
BDxb    LD A,B;��� XB
2418
        LD HL,BASE
2419
        CALL BA
2420
        LD (HL),255
2421
        RET
2422
 
2423
POSTBAT ;�⮣� ��᫥ ���
2424
       if PROTECT
2425
        CALL CHECK4
2426
       endif
2427
        CALL TARRES
2428
        CALL PICKER
2429
        JP U2S
2430
 
2431
CLEAR   ;���⪠ �६ �࠭
2432
        LD HL,U_GUN
2433
        LD B,U_len
2434
CLE0    LD (HL),0
2435
        INC HL
2436
        DJNZ CLE0
2437
        RET
2438
 
2439
PICKER  CALL STD ;ᮮ�饭�� � ᮡ�
2440
        CALL OFFD
2441
        LD HL,#5
2442
        LD (SX),HL
2443
        LD A,199
2444
        CALL NWRDM
2445
        LD B,0
2446
        LD HL,#201
2447
        LD (SX),HL
2448
PK1     PUSH BC
2449
        LD A,B
2450
        LD HL,U_GUN
2451
        CALL BA
2452
        OR A
2453
        JR Z,PK4
2454
        PUSH AF
2455
        LD A,B
2456
        CP 15
2457
        JR C,PK2
2458
        ADD A,43-15
2459
        CP 51
2460
        JR C,PK2
2461
        ADD A,111-51
2462
PK2     CALL NWRDM
2463
        POP AF
2464
        LD HL,SX
2465
        LD (HL),22
2466
        PUSH HL
2467
        CALL WB
2468
        POP HL
2469
        LD (HL),1
2470
        INC HL
2471
        INC (HL)
2472
PK4     POP BC
2473
        INC B
2474
        LD A,B
2475
        CP U_len
2476
        JR C,PK1
2477
        CALL STS
2478
        CALL OFFS
2479
        CALL COPY
2480
        ATRs #0,#1618,#70
2481
        LD L,22
2482
        LD B,6
2483
        LD A,#68
2484
        CALL ATRBAR
2485
        CALL PT128
2486
        JP TMOF
2487
 
2488
UplusS  LD A,(DE)
2489
        INC DE
2490
        ADD A,(HL)
2491
        LD (HL),A
2492
        INC HL
2493
        JR NC,UpS
2494
        INC (HL)
2495
UpS     INC HL
2496
        DJNZ UplusS
2497
        RET
2498
 
2499
U2S     ;�� U_XXX � S_XXX
2500
        LD B,5  ;�����-����ᨮ����
2501
        LD HL,U_LIV
2502
        LD DE,S_PROF
2503
U2S30   LD C,(HL)
2504
U2S3    LD A,C
2505
        OR A
2506
        JR Z,U2S4
2507
        DEC C
2508
        CALL RND
2509
        AND %1000 ;⮫쪮 1 �� 2�
2510
        JR Z,U2S7
2511
        LD A,(S_ART+18)
2512
        INC A
2513
        LD (S_ART+18),A
2514
        JR U2S3
2515
U2S7    PUSH HL
2516
        CALL RND
2517
        AND 3
2518
        LD L,A
2519
        LD H,0
2520
        ADD HL,HL
2521
        ADD HL,DE
2522
        INC (HL)
2523
        POP HL
2524
        JR U2S3
2525
U2S4    INC HL
2526
        PUSH HL
2527
        LD HL,8
2528
        ADD HL,DE
2529
        EX DE,HL
2530
        POP HL
2531
        DJNZ U2S30
2532
        ;���� � ���
2533
        LD B,15
2534
        LD DE,U_GUN
2535
        LD HL,S_GUN
2536
        CALL UplusS
2537
        LD HL,S_ART
2538
        LD B,10
2539
        CALL UplusS
2540
        LD HL,S_LIV
2541
        LD B,7
2542
        CALL UplusS
2543
        LD A,(S_ART+12)
2544
        CP 5
2545
        JR C,U2S1
2546
        LD (S_TMP),A ;5 ��-�����
2547
U2S1    LD A,(L_LAND)
2548
        OR A
2549
        RET NZ
2550
        LD A,(L_UFO) ;⨯ ���
2551
        LD HL,S_UFO
2552
        CALL WA
2553
        INC (HL)
2554
        RET
2555
 
2556
OFFNUM  LD HL,RS-55 ;�⪫ ���
2557
        LD BC,#80FF
2558
OFNU    LD (HL),C
2559
        INC HL
2560
        DJNZ OFNU
2561
        RET
2562
 
2563
DEMBEL  ;������������
2564
        CALL RNDG
2565
        AND %00011111
2566
        CP 10
2567
        RET NC
2568
        ADD A,A
2569
        ADD A,A
2570
        LD HL,AQNAVT
2571
        CALL DD
2572
        LD A,(HL)
2573
        LD (DSDAT),A
2574
        OR A
2575
        RET Z
2576
        INC HL
2577
        LD A,(HL)
2578
        CP 7
2579
        RET C
2580
        DEC HL
2581
        LD (HL),0
2582
        LD HL,AQU
2583
        DEC (HL)
2584
        LD A,96
2585
        CALL DISPLX
2586
        JP STOP_T
2587
 
2588
;��樨 =================================================
2589
MUL480  LD L,A
2590
        LD H,0
2591
        LD DE,480
2592
        CALL MUL
2593
        LD HL,ALLDAT
2594
        ADD HL,DE
2595
        RET
2596
 
2597
GAMs    DEFB 25,51,65,48,15,0
2598
        DEFB 15,15,15,0,0,15,0,0,15,0,0,15
2599
        DEFB 0,0,99,0,0,99,2,0,0,0,#7F
2600
 
2601
GM_DAT  ;��ப� ���� (A=1..5)
2602
        LD (GAMs+5),A
2603
        DEC A
2604
        CALL MUL480
2605
        LD DE,TIM-DATA
2606
        ADD HL,DE
2607
        Ms 3+#C0
2608
        LD DE,GAMs+9
2609
        LD BC,8
2610
        LDIR
2611
        INC DE
2612
        LDI
2613
        LDI
2614
        INC DE
2615
        PUSH DE
2616
        LD BC,10
2617
        ADD HL,BC
2618
        LD DE,GAMs+26
2619
        LDI
2620
        LDI
2621
        LD A,(HL)
2622
        INC A
2623
        CALL WTRB
2624
        LD HL,DCS+8
2625
        POP DE
2626
        LDI
2627
        LDI
2628
        LD HL,GAMs+21
2629
        LD A,(HL)
2630
        CP 15
2631
        JP NZ,MEM7
2632
        LD (HL),0
2633
        JP MEM7
2634
 
2635
MU_4CD  DEFW #400,#4C1E,T+138
2636
        DEFB 5
2637
 
2638
GAMLST  LD IX,MU_4CD
2639
        LD (MU_4CD+3),A
2640
        CALL MENU
2641
        LD HL,#E02
2642
        LD B,5
2643
GAL     pushs
2644
        LD A,B
2645
        LD (SX),HL
2646
        CALL GM_DAT
2647
        LD HL,GAMs
2648
        LD (TXT),HL
2649
        CALL WORD
2650
        pops
2651
        DEC H
2652
        DJNZ GAL
2653
        CALL INIMNU
2654
        LD HL,SELmr
2655
        LD (sx1+1),HL ;HL-Sub.ADR
2656
        LD (sx2+1),HL
2657
        JP COPYAT
2658
 
2659
LD_M    LD A,#4D
2660
        CALL GAMLST
2661
        CALL SELTN
2662
        RET NC
2663
        CALL MUL480
2664
        LD DE,DATA
2665
OP_M    Ms 3
2666
        LD BC,DATLEN
2667
        LDIR
2668
        JP MEM7
2669
 
2670
SV_M    LD A,#4C
2671
        CALL GAMLST
2672
        CALL SELTN
2673
        RET NC
2674
        CALL MUL480
2675
        LD DE,DATA
2676
        EX DE,HL
2677
        JR OP_M
2678
 
2679
MU_4A   DEFW #503,#4A16,T+182
2680
        DEFB 6
2681
DO_T    DEFW SV_M,LD_M,NW_G,SV_D,LD_D,EX_G
2682
MU_4B   DEFW #B00,#4B18
2683
 
2684
OPTION  ;���.����樨
2685
        CALL SAVMON
2686
        CALL    BACK
2687
        LD      IX,MU_4A
2688
        CALL    SELM
2689
        JP      NC,UP9
2690
        LD      HL,DO_T
2691
        CALL    WT
2692
        LD      DE,OPTR
2693
        PUSH    DE
2694
        JP (HL)
2695
OPTR    JP MLOOP
2696
 
2697
EX_G    LD IX,MU_4B
2698
        CALL MENUC
2699
        CALL YES_NO
2700
        RET NZ
2701
EX__    LD HL,#4000
2702
        LD DE,#4001
2703
        LD (HL),E
2704
        LD BC,#2000
2705
        LDIR
2706
        ;LD BC,#7FFD
2707
        ;XOR A
2708
        ;OUT (C),A
2709
        ;CALL 0
2710
        jp quit
2711
 
2712
MU_4E   DEFW #301,#4E1A
2713
NW_G    LD IX,MU_4E
2714
        CALL MENUC
2715
        CALL YES_NO
2716
        RET NZ
2717
NW_GE   Ms 3+#C0
2718
        LD HL,NEWDAT
2719
        LD DE,DATA
2720
        LD BC,DATLEN
2721
        LDIR
2722
        CALL MEM7
2723
NGG     CALL RND
2724
        CP 192
2725
        JR NC,NGG
2726
        INC A
2727
        LD (N_AQU),A
2728
        LD A,R
2729
        LD (RNBgen+1),A
2730
        LD HL,(RNA)
2731
        LD (RNAgen),HL
2732
        LD A,28
2733
        LD (SYSINI),A
2734
        RET
2735
 
2736
SV_D    LD IX,MU53
2737
        LD A,194
2738
        LD (MU53+4),A
2739
        CALL MENUC
2740
        CALL YES_NO
2741
        RET NZ
2742
       if PROTECT
2743
        CALL CHK_2 ;[]
2744
        LD HL,(CRC2)
2745
        OR A
2746
        SBC HL,BC
2747
        JR NZ,LD_RTN
2748
       endif
2749
LD_RTR  Ms 3+#80
2750
LD_RTN  LD DE,DSCR+1
2751
        LD HL,ALLDAT
2752
        LD BC,480*5
2753
        LDIR
2754
        LD HL,C_ONOF
2755
        LD C,CFGLEN
2756
        LDIR
2757
        LD HL,DATA
2758
        LD BC,600
2759
        LDIR
2760
       if PROTECT
2761
        CALL XORDAT
2762
        LD (DSCR),A
2763
       endif
2764
        CALL MEM7
2765
        ;save DSCR,4k
2766
        CALL S_DSCR
2767
        CALL OFFD
2768
        ;load DSCR,4k
2769
        CALL L_DSCR
2770
        Ms 3+#80
2771
       if PROTECT
2772
        CALL XORDAT
2773
        CALL XORDAT
2774
        LD HL,DSCR
2775
        CP (HL)
2776
        JR NZ,LD_RTR
2777
       endif
2778
        JP MEM7
2779
 
2780
MU53    DEFW #901,#351A
2781
        DEFB 196
2782
 
2783
LD_D    LD IX,MU53
2784
        LD A,195
2785
        LD (MU53+4),A
2786
        CALL MENUC
2787
        CALL YES_NO
2788
        RET NZ
2789
        ;load DSCR,4k
2790
        CALL L_DSCR
2791
        Ms 3+#40
2792
       if PROTECT
2793
        CALL XORDAT
2794
        CALL XORDAT
2795
        LD HL,DSCR
2796
        CP (HL)
2797
        JP NZ,LD_ER
2798
        CALL XORDAT
2799
       endif
2800
        LD HL,DSCR+1
2801
        LD DE,ALLDAT
2802
        LD BC,480*5
2803
        LDIR
2804
        LD DE,C_ONOF
2805
        LD C,CFGLEN
2806
        LDIR
2807
        LD DE,DATA
2808
        LD BC,DATLEN
2809
        LDIR
2810
        JP MEM7
2811
 
2812
SET_LS  XOR A
2813
        LD (SIDE),A
2814
        LD HL,DSCR
2815
        LD B,16
2816
        LD DE,#201
2817
        RET
2818
 
2819
L_DSCR  CALL LDASM3
2820
        LD B,3
2821
L_DS    PUSH BC
2822
        CALL TR000
2823
        CALL SET_LS
2824
L_D1    PUSH BC
2825
        LD B,1
2826
        CALL D_READ
2827
        POP BC
2828
        JR C,L_D_ER
2829
        DEC H
2830
        DEC H
2831
        DEC H
2832
        DJNZ L_D1
2833
        POP BC
2834
        JP LDASM2
2835
L_D_ER  POP BC
2836
        DJNZ L_DS
2837
        JP LDASM2
2838
 
2839
S_DSCR  CALL LDASM3
2840
        CALL TR000
2841
        CALL SET_LS
2842
        CALL D_WRITE
2843
        JP LDASM2
2844
 
2845
       if PROTECT
2846
XORDAT  ;xor DSCR+1,len=3000 CRC->A
2847
        LD A,#A9
2848
        EX AF,AF
2849
        LD HL,DSCR+1
2850
        LD DE,SCR+200
2851
        LD BC,3000
2852
XD0     LD A,(DE)
2853
        XOR (HL)
2854
        LD (HL),A
2855
        EX AF,AF
2856
        XOR (HL)
2857
        EX AF,AF
2858
        INC DE
2859
        INC HL
2860
        DEC BC
2861
        LD A,C
2862
        OR B
2863
        JR NZ,XD0
2864
        EX AF,AF
2865
        RET
2866
 
2867
        PUSH AF
2868
CHECK4  ; []#4
2869
        LD A,70
2870
        LD HL,TAB100+7
2871
        CALL BT
2872
        RRCA
2873
        RRCA
2874
        LD C,A
2875
        LD A,22
2876
        CALL BA
2877
        CP C
2878
        RET Z
2879
        POP AF
2880
        JP B_LOOP
2881
       endif
2882
 
2883
LD_ER   CALL XEARTH
2884
        CALL COPYAT
2885
        LD IX,MU54
2886
        CALL BEEP
2887
        JP MNU
2888
MU54    DEFW #307,#3610
2889