Subversion Repositories NedoOS

Rev

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

Rev Author Line No. Line
228 demige 1
        DEVICE ZXSPECTRUM1024
2
        include "../../_sdk/sys_h.asm"
3
_128=PROGSTART+3
4
swapimer=PROGSTART+6
5
ttexpgs=PROGSTART+0x100
6
 
7
LEVDAT  EQU     #79C0 ;���. ��� ������ �஢��
8
        ORG     LEVDAT
9
begin
10
DSCR    EQU 0xc000;#4000
11
 
12
;*D-
13
;********* ������ �� ****************
14
 
15
isRUNC  ; ������ ����
16
         nop
17
         ;jr $
230 alone 18
        ;LD A,0  ;�
228 demige 19
        LD A,1 ;�㭣�
20
        JP F_CUTh
21
 
230 alone 22
;--------�ࠪ���⨪� ��஭-------(0)-������� ���砫�
23
 
24
;��ࠬ���� ����饣�
25
;hTOWER DEFB 4 ;���.�᫮ ⨯�� ����� (1-4)
26
;hARC   DEFB 0 ;0-2 (0)
27
hHORSE  DEFB 1 ;0-3 (0)
28
hSHILD  DEFB 0 ;0-2 (0)
29
hBLADE  DEFB 1 ;0-2 (0)
30
hmaxC   DEFB 3 ;1-3 �c�� ������� �cc� ���� ���
31
hmaxW   DEFB 3 ;1-3 �᫮  --"-- ���� ����
32
 
33
;�������⥫�� ��ࠬ���� ����饣�
34
hmaxB1  DEFB 2 ;���� �᫮ �⠭���� ������ (0 ��� 1-2)
35
hmaxB2  DEFB 4 ;ma�c �᫮ ��� ������ (0, 1-4)
36
hWALL   DEFB 17 ;0/17 - �����/����� ��ந�� �⥭�
37
 
38
;��ࠬ���� ��������
39
kTOWER  DEFB 4 ;1-4
40
kARC    DEFB 0 ;0-2
41
kHORSE  DEFB 2 ;0-3
42
kSHILD  DEFB 1 ;0-2
43
kBLADE  DEFB 1 ;0-2
44
kmaxC   DEFB 3 ;1,3 �c�� �cc� ���� (0-��� ���)
45
kmaxW   DEFB 3 ;1..3 �c�� �cc� ���� (0-��� ����)
46
 
47
;----------- ��ࠬ���� ���⥣�� �ࠣ� ----------------
48
;/wSTRATEG  (1.��.��� - 8⨪)
49
levMAX  DEFB 8   ;���� �᫮ ��த� � ��㯯� (��� �஢��) = 1..10
50
levDEL  DEFB 41  ;�।� ����প� ���� ᡮࠬ� (��� �஢��) = 1..X
51
lev1ST  DEFB 221 ;��� ����প� ��ࢮ�� ᡮ� = 1..
52
 ;��� �஢�� 0 ;�����
53
 ;��� �஢�� 1 ;�⠪����� ��࠭��� �⠭������ �⠪��騬
54
 ;��� �஢�� 2 ;�. ⨯ 1 + ��࠭���� ������ ���� � �⠪�
55
levTYP  DEFB 0   ;⨯ �஢�� (0-�����)
56
;-------- 梥⮢� ����ன�� -------
57
COLOR   DEFB #28 ;梥� ����
58
 
59
;-------- ��騥 ��ࠬ���� �஢�� -----
60
MASTER  DEFB 0  ; �� ��ࠥ� 0/1 - �?�㭣�
61
LEVEL   DEFB 15  ; ����� �஢��
62
MONEY   DEFB 0,0,3,0,0,0 ;���죨
63
WOOD    DEFB 0,0,0,5,0,0 ;��c
64
TASK_M  ;�������: 3 ��ப� �� 20+1 ᨬ����� = 63
231 alone 65
        ds 63 ;*B ..\TASK\w115.tsk
230 alone 66
LEVRES  DEFB 0,0,0,43,0,0,127 ;⥪�饥 �६� ��宦�����
67
 
68
;------- �ᯮ��㥬� 䠩�� -------
69
 
70
fsLAND  DEFB 2; 1-4
71
fsMUS   DEFB 0; 0-7
72
 
73
 
74
;****************** ���樠�����㥬� ��६���� ****************
75
;--------------- (�室�� � ���ᠭ�� ������� �஢��) ------------
76
;/��࠭� ��ந
77
SEL_T DEFB 0 ;0-none;1-����;2-6-group;7-�㭣,8-������
78
SEL_N DEFB 0,0,0,0,0,0 ;����� 6 ��� ���/��
79
 
80
sel_en DEFB #FF ;��࠭�� �ࠣ-楫�
81
sel_ti DEFB 0 ;�६� �⮡ࠦ���� 楫�
82
 
83
;/outLED
84
LED DEFB 4,3,4,3,4,3
85
 
86
;/putTX
87
_msg    DEFB #FF
88
pTX_AD  DEFW 0;WNAMES
89
TX_AD   DEFW 0;WNAMES
90
pTXdel  DEFB 0 ;t ����প� �� �� ��c�� c����
91
 
92
;/M_PLAT
93
isPLAT  DEFB 0; 0/1-����/��� ���頤��
94
szPLAT  DEFB 0; ࠧ��� ���頤�� ��� ���-�� (1..3, 0-���)
95
bcPLAT  DEFW 0; ࠧ����
96
adPLAT  DEFW 0; ������ in ATR
97
waPLAT  DEFB 0; �᫨ �⥭� - 1
98
 
99
;/PAUSE
100
onPAUS  DEFB 1 ;0-������� ����
101
 
102
;/SOUNDn
103
NOTA    DEFW se ;⥪�� ��� <---- ���������� ����� ����
104
se      DEFW #FFFF ;�����
105
levSND  DEFB 0 ;0-���� �஬�����
106
sIY56   DEFW 0 ;���न���� ᭠�冷�
107
priv_S  DEFB 0 ;⥪�� �ਮ��� (0-��� �������)
108
NOTA2   DEFW se ;��� ����� �������
109
priv_2  DEFB 0  ;��� �ਮ�
110
 
111
;/STRATEG - variables
112
pntX    DEFB 32  ;-���� �.ᡮ�
113
pntY    DEFB 31  ;-/
114
pntNUM  DEFB 0   ;-�᫮ ��⠢���� �� ���� ᡮ� ������ (0-����� ᡮ�, 255-��� ᡮ�)
115
pntDEL  DEFB 22  ;-�६� �� ���.᫥� ᡮ�/����প� �� ��-�� �����
116
pntTAR  DEFB #FF ;-��ꥪ� �⠪� (0-101 - �����, #80.. -������, #FF-���)
117
pntUNI  DEFB 0   ;-���� ࠧ��த��/����த�� (0/member typ)
118
pntEN   DEFB 0,0,0,0,0,0
119
                 ;-ࠧ�� ��-�� ���� (3..8) (0-���)
120
pntMAN  DEFB 0   ;⨯ ��ࠦ������� �����
121
 
122
;/isEND
123
END_1   DEFB 0  ;0/1/2-none/��� �ࠣ��/��� ��
124
END_2   DEFB 0  ;��0-���� ���� � �����
125
TheEND  DEFB 0  ;0/1/2-none/������ ��/������ �ࠣ�� (��⠭��� � _cLOOP)
126
 
228 demige 127
        if 1==1
128
;���� ����㧨�� brfinal.dat � ��࠭�窨
129
;*P0;
130
;        ORG #C000
131
;*B ..\INTRO\FLICK.LPZ\WANIu_0.LPZ
132
;*P1;
133
;        ORG #C000
134
;*B ..\INTRO\FLICK.LPZ\WANIu_1.LPZ
135
;*P3;
136
;        ORG #C000
137
;*B ..\INTRO\FLICK.LPZ\WANIv_0.LPZ
138
;*P4;
139
;        ORG #C000
140
;*B ..\INTRO\FLICK.LPZ\WANIv_1.LPZ
141
;*P6;
142
;        ORG #C000
143
;*B ..\INTRO\FLICK.LPZ\WANIw_0.LPZ
144
;*P7;
145
;        ORG #C000
146
;*B ..\INTRO\FLICK.LPZ\WANIw_1.LPZ
147
loader
148
 
149
        ld hl,texfilename
150
        ld de,0x8000 ;addr
151
        ld b,7
152
getttexpgs0
153
        push bc
154
         ld a,(hl)
155
         call _128
156
        inc hl
157
        push hl
158
        push de ;addr
159
        ex de,hl
160
        OS_OPENHANDLE
161
        pop de ;addr
162
        push bc
163
        ;ld de,0xc000 ;addr
164
        ld hl,0x4000 ;size
165
        OS_READHANDLE
166
        pop bc
167
        OS_CLOSEHANDLE
168
 
169
        pop hl
170
        ld b,1
171
        xor a
172
        cpir ;after 0
173
        pop bc
174
        ld de,0xc000 ;addr
175
        djnz getttexpgs0
176
 
177
        call swapimer
230 alone 178
        ;im 2
228 demige 179
 
180
        pop af
181
        ld (0x8000),a
182
 
183
        jp 0x8001
184
 
185
texfilename
186
        db 0,"brfinal.dat",0
187
        db 0,"branix_0.dat",0
188
        db 1,"branix_1.dat",0
189
        db 3,"braniy_0.dat",0
190
        db 4,"braniy_1.dat",0
191
        db 6,"braniz_0.dat",0
192
        db 7,"braniz_1.dat",0
193
 
194
        endif
195
 
196
Sc1
197
        incbin "../barkov/w_end_k.scr"
198
Sc2
199
        incbin "../barkov/w_end2.scr"
200
 
201
F_CUTh  ;DI
202
        ;IM 1
203
        LD SP,LEVDAT-2
204
        LD B,A
205
        PUSH BC
206
        CALL OFFD
207
         xor a
208
        CALL _128
209
 
210
        if 1==1
211
        call swapimer
230 alone 212
        ;im 1
278 alone 213
        ld e,3
214
        OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
228 demige 215
        ld e,0
216
        OS_SETSCREEN
278 alone 217
        ld de,RSTPAL
218
        OS_SETPAL
544 alone 219
        ;OS_GETSCREENPAGES
228 demige 220
;de=��࠭��� 0-�� ��࠭� (d=�����), hl=��࠭��� 1-�� ��࠭� (h=�����)
555 alone 221
        ld a,(user_scr0_high) ;ok
228 demige 222
        SETPG32KHIGH
223
        endif
224
 
225
        LD HL,Sc1
226
        CALL COPYAT
227
 
228
        ;�஡��?
229
lggP    LD BC,#7FFE
230
        IN A,(C)
231
        AND %1
232
        JR NZ,lggP
233
 
234
        CALL OFFD
235
 
236
        LD HL,Sc2
237
        CALL COPYAT
238
 
239
        if 1==1
240
        jp loader
278 alone 241
RSTPAL
242
        STANDARDPAL
228 demige 243
 
244
        else
245
 
246
        CALL A_or_B
247
        LD (tDRIVE),A
248
        CALL OFFD
249
        ;�⥭�� �४ 0, ᥪ 9 �� 23845
250
A009    EQU     23845
251
L1st    CALL TR000
252
        LD DE,#09
253
        LD B,1
254
        LD HL,A009
255
        PUSH HL
256
        CALL D_READ ;����. ⠡�.�-���
257
        POP HL
258
        JR C,L1st
259
        ;�஢�ઠ ��⪨ ��᪠ D1,BB
260
        LD A,(HL)
261
        CP #D1
262
        JR NZ,L1st
263
        INC HL
264
        LD A,(HL)
265
        CP #BB
266
        JR NZ,L1st
267
        ;��७�� �.�-���
268
        POP BC
269
        LD A,(tDRIVE)
270
        JP A009+2
271
        endif
272
 
273
        if 1==0
274
;------------------- �ᯮ� �/�
275
 
276
A_or_B  ;�����: 0/1 - A/B
277
        NOP
278
        LD BC,#7FFE
279
        IN A,(C)
280
        AND %10000
281
        LD A,1
282
        RET Z
283
        LD B,#FD
284
        IN A,(C)
285
        AND %1
286
        RET Z
287
        JR NZ,A_or_B
288
        endif
289
 
290
        if 1==0
291
;TODO fix
292
_128    LD A,%10000
293
        LD      BC,#7FFD
294
        OUT     (C),A
295
        RET
296
        endif
297
 
298
OFFD    LD      DE,DSCR+#1AFE
299
        PUSH DE
300
        POP HL
301
        INC HL
302
        LD      BC,768
303
        LD      (HL),0
304
        LDDR
305
        LD      BC,6143
306
        LD      (HL),255
307
        LDDR
308
        RET
309
 
310
COPYAT  ;�� HL
311
        LD      BC,6912
312
        LD      DE,DSCR
313
        LDIR
314
        RET
315
 
316
        if 1==0
317
;-------tr/dos
318
RG_DOS  LD      IX,#2A53 ;�� � ॣ TRDOS (out (C),A:ret)
319
        JR      DOS
320
 
321
DOS     PUSH    IX
322
        JP      #3D2E
323
 
324
POS     ;����樮��� �४
325
        LD C,#3C
326
        LD A,(SIDE)
327
        OR A
328
        JR      Z,DW_SID
329
        RES     4,C
330
DW_SID  LD A,(tDRIVE)
331
        OR C
332
        LD      C,#FF
333
        CALL    RG_DOS
334
        LD      A,D
335
        LD      C,#7F
336
        CALL    RG_DOS
337
        LD      A,#18
338
        LD      IX,#2F57 ;�� ��� TRDOS
339
        JP DOS
340
 
341
RD_SCT  LD      BC,RD_SCT ;�� �⮬� ����� = 1
342
        PUSH    BC
343
        LD      BC,#17F
344
        LD      IX,#2090  ;�⥭�� ᥪ�� �� �/� �ଠ�஢����(�����#5cd6)
345
        JR      DOS
346
 
347
TR000   CALL TR00 ;���� ��᪮���� + ����প�
348
        CALL TR00
349
        CALL TR00
350
TR00    DI
351
        LD      D,0
352
        CALL    POS
353
        LD      IX,#2F65 ;ld a,8:jr 2f57
354
        JR      DOS
355
 
356
tDRIVE  DEFB 0
357
SIDE    DEFB 0
358
 
359
D_READ  DI ;E-sec,D-trk,B-sec.num,HL-mem.adr
360
        CALL    POS
361
        LD      A,(#5CD6)
362
        EX      AF,AF'
363
NXT_S   DEFB    #DD
364
        LD      L,#3 ;retry.num
365
NXT_SC  PUSH    HL
366
        PUSH    BC
367
NXC_C1  PUSH    IX
368
        LD      C,#5F
369
        LD      A,E
370
        CALL    RG_DOS
371
        CALL    RD_SCT
372
        DI
373
        LD      HL,#5CD6
374
        EX      AF,AF'
375
        CP      (HL)
376
        POP     IX
377
        JR      Z,GOOD
378
        LD      (HL),A
379
        DEFB    #DD
380
        DEC     L
381
        POP     BC
382
        POP     HL
383
        JR      Z,ERR_RW
384
        EX      AF,AF'
385
        JR      NXT_SC
386
GOOD    POP     BC
387
        POP     HL
388
        EX      AF,AF'
389
GOOD1   INC     E
390
        LD      A,E
391
        CP      #F9
392
        JR      C,OLD_TR
393
        LD      E,#F4
394
        INC     D
395
        CALL    POS
396
OLD_TR  INC     H
397
        INC     H
398
        INC     H
399
        INC     H
400
        DJNZ    NXT_S
401
        XOR     A
402
        RET
403
 
404
ERR_RW  SCF
405
        RET
406
 
407
        endif
408
end
930 alone 409
        savebin "br/br217.dat",begin,end-begin ;in current dir (not in dir of this source)