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) |