Subversion Repositories Kolibri OS

Rev

Rev 2075 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1806 yogev_ezra 1
IDA equ 1 ; We're running debugida.exe
2
 
3
STRIP  equ 40
4
LEVNUM equ 500
5
 XFOFS equ 10
6
 YFOFS equ 55
7
 MSGXO equ 32
8
GAMES_ALL equ 12
9
WNDCOLOR equ 0x03c0c0c0;0x03f6f6f6;
10
MINCS equ 40
11
MAXCS equ 80
12
macro icall lbl
13
{
14
	call [lbl+ebp*4]
15
}
16
 
17
  use32
18
  org	  0x0
19
 
20
  db	 'MENUET01'		 ; 8 byte id
21
  dd	 0x01			 ; header version
22
  dd	 run			 ; start of code
23
  dd	 I_END			 ; size of image
24
  dd	 end_mem		 ; memory for app
25
  dd	 stack_end		  ; esp
26
  dd	 0x0 , 0x0		 ; I_Param , I_Icon
27
lang fix ru
28
include "MACROS.INC"
29
purge mov
30
;include "DEBUG.INC"
31
COLOR_ORDER equ MENUETOS
32
 
33
include 'gif_lite.inc'
34
 
35
include 'tam.inc'
36
include 'smz.inc'
37
include 'tilt.inc'
38
include 'tilt2.inc'
39
include 'fhouse.inc'
40
include 'loops.inc'
41
include 'wriggle.inc'
42
include 'blackbox.inc'
43
include 'marble.inc'
44
include 'cstep.inc'
45
include 'orient.inc'
46
include 'nolt.inc'
47
include 'colzone.inc'
48
 
49
run:
50
		mov  [Ces],STRIP;20
51
    mcall 3
52
    mov  cl,16
53
    ror  eax,cl
54
    mov  [generator],eax    ; random generator from Tetris
55
 
56
		and [mpress_flag],0
57
		and [gif_unp],0
58
    xor  ebp,ebp ; game_t
59
;    mov  ebp,10
60
    mcall 64,1,end_mem
61
    mov  [pause_time],40
62
    call resize
63
  .game1:
64
    mov  [levnum],LEVNUM
65
  .game:
66
    and  [win_flag],0
67
    and  [drag_flag],0
68
    mov  ecx,[levnum]
69
    mov  esi,[levels+ebp*4]
70
    jecxz .skip
71
  .nxt:
72
    movzx eax,byte[esi]
73
    add  esi,eax
74
    xor  eax,eax
75
    cmp  al,byte[esi]
76
    jne  .noz
77
    mov  esi,LEVNUM;500
78
    sub  esi,ecx
79
    mov  [levcount],esi
80
    and  [levnum],0
81
    jmp  .game
82
  .noz:
83
    loop .nxt
84
  .skip:
85
		mcall 40,111b
86
	  mov  [mouse_processed],1
87
    xor  eax,eax
88
    icall prepare_level
89
wnd_size:
90
  	mov  eax,[Ces]
91
	  shr  eax,2
92
	  sub  eax,2
93
    mov  [sq_size],eax
94
  if ~ IDA eq 1
95
    mov   edx,[fx]
96
    imul  edx,[Ces]
97
    add   edx,XFOFS*2+20
98
    mov   esi,[fy]
99
    imul  esi,[Ces]
100
    add   esi,YFOFS+30
101
    mov   ecx,-1
102
    mcall 67,ecx
103
  end if
104
red:
105
    call  draw_window
106
 
107
drw:
108
		call  drwfld
109
 
110
still:
111
    mcall 2
112
    test al,al
113
    jz	 still
114
    mcall 10
115
    cmp  eax,2
116
    je	 key
117
    cmp  eax,1			; redraw request ?
118
    je	 red
119
    cmp  eax,3			; button in buffer ?
120
    je	 button
121
    cmp  eax,6			; mouse event ?
122
    je	 mouse
123
key:
124
    mcall 2
125
;    movzx ebx,ah
126
;    dpd  ebx
127
		cmp  ebp,10
128
		je   .noplus
129
    mov  ebx,5
130
    cmp  ah,184
131
    jne  .nomin
132
    cmp  [Ces],MINCS
133
    je	 still
134
  .ces:
135
    sub  [Ces],ebx
136
    call resize
137
    jmp  wnd_size
138
  .nomin:
139
    cmp  ah,183
140
    jne  .noplus
141
    cmp  [Ces],MAXCS
142
    je	 still
143
    neg  ebx
144
    jmp  .ces
145
	.noplus:
146
    cmp  ah,'h'
147
    jne  .nohlp
148
;  if IDA eq 1
149
;    cmp  [child],0
150
;    jne  still
151
;  else
152
    call kill_help
153
;  end if
154
    mov  [pack],ebp
155
    mcall 51,1,show_help,chs_end
156
;    dpd  eax
157
    mov  [child],eax
158
    jmp  still
159
  .nohlp:
160
    cmp  [win_flag],10
161
    je	 .levover
162
    cmp  [win_flag],2
163
    je	 .no_win
164
    cmp  [win_flag],1
165
    jne  .now
166
  .levover:
167
    call lev_next
168
  .no_win:
169
    and  [win_flag],al
170
    jmp  run.game
171
  .now:
172
    shr  eax,8
173
    mov  [jump],drw;red
174
    cmp  eax,13
175
    je	 run.game
176
    icall key_handler
177
    jmp  [jump]
178
 
179
button:
180
    mcall 17
181
    cmp  ah,1
182
    je	 close
183
    cmp  ah,2
184
    je	 .game_type
185
    cmp  ah,4
186
    je	 .inclev
187
    cmp  ah,3
188
    je	 .declev
189
    jmp  still
190
  .declev:
191
    dec  [levnum]
192
    cmp  [levnum],0
193
    jge  run.game
194
    push [levcount]
195
    pop  [levnum]
196
    jmp  run.game
197
  .inclev:
198
    call lev_next
199
    jmp  run.game
200
  .game_type:
201
    inc  ebp
202
    cmp  ebp,GAMES_ALL
203
    jbe  run.game1
204
    xor  ebp,ebp
205
    jmp  run.game1
206
  close:
207
  if ~ IDA eq 1
208
    call kill_help
209
  end if
210
    mcall -1
211
 
212
;if ~ IDA eq 1
213
 
214
kill_help:
215
		mcall 9,prc_info2,-1
216
		mov  edx,[child]
217
		mov  ecx,eax
218
	.lp:
219
		mcall 9
220
		cmp  edx,[ebx+30]
221
		jne   .nochild
222
		mcall 18,2
223
    and  [child],0
224
		ret
225
	.nochild:
226
		loop .lp
227
		ret
228
 
229
;end if
230
 
231
mouse:
232
		cmp  [mouse_processed],1
233
		jne  .ex
234
		mcall 37,1
235
		sub  eax,XFOFS shl 16+YFOFS
236
		xor  edx,edx
237
		mov  ebx,[Ces]
238
		mov  ecx,eax
239
		and  eax,0xffff
240
		div  ebx
241
		xor  edx,edx
242
		mov  [mouse_y],eax
243
		cmp  eax,[fy]
244
		jae  .ex
245
		mov  eax,ecx
246
		shr  eax,16
247
		div  ebx
248
		mov  [mouse_x],eax
249
		cmp  eax,[fx]
250
		jae  .ex
251
		mcall 37,2 ; get buttons
252
		cmp  [drag_flag],0
253
		je   .nodrag
254
		mov  ebx,eax
255
		cmp  eax,[mpress_flag]
256
		mov  eax,-1
257
		je   .nochg
258
		dec  eax
259
	.nochg:
260
		mov  [mpress_flag],ebx
261
		jmp  .call_hnd
262
	.nodrag:
263
		test eax,eax
264
		jz  .ex1
265
		cmp  eax,[mpress_flag]
266
		je   .ex
267
		mov  [mpress_flag],eax
268
		mov  eax,-1
269
	.call_hnd:
270
		mov  [mouse_processed],0
271
		icall key_handler
272
		jmp  [jump]
273
	.ex1:
274
		mov  [mpress_flag],0
275
	.ex:
276
		jmp  still
277
 
278
lev_next:
279
    push eax
280
    inc  [levnum]
281
    mov  eax,[levnum]
282
    cmp  eax,[levcount]
283
    jbe  .ex
284
    and  [levnum],0
285
  .ex:
286
    pop  eax
287
    ret
288
 
289
;   *********************************************
290
;   *******  WINDOW DEFINITIONS AND DRAW ********
291
;   *********************************************
292
draw_window:
293
    pusha
294
    mcall 12,1
295
    mov   ebx,[fx]
296
    imul  ebx,[Ces]
297
    push  ebx
298
    add   ebx,50 shl 16+XFOFS*2+20
299
    mov   ecx,[fy]
300
    imul  ecx,[Ces]
301
    add   ecx,10 shl 16+YFOFS+30
302
    mcall 0,,,WNDCOLOR
303
    mov   esi,edx
304
    and   esi,0xffffff
305
    mcall 9,prc_info,-1
306
    mov   ebx,[esp]
307
    pop   ebx
308
    add   ebx,XFOFS shl 16+XFOFS*2
309
 
310
    mcall 8,,<25,12>,2
311
 
312
    mcall 8,,<40,12>,3
313
    add   ebx,14 shl 16
314
    inc   edx
315
    mcall
316
    mcall 4,<8,8>,0x10ffffff,header,header.size
317
    mov   ecx,ebp
318
    mov   edx,game_names+4
319
    call  get_mstr
320
    mcall ,,0x8000
321
    imul  esi,6
322
    add   esi,3
323
    shl   esi,16
324
    lea   edx,[ebx+esi]
325
    mcall 47,0x020001,levnum,,0x8000
326
 
327
    mcall 4,,0x108000,next_msg,3
328
    mcall 12,2
329
    popa
330
    ret
331
 
332
unpack_level:
333
    mov   ecx,[cell_count]
334
    mov   edi,field
335
  .lp:
336
    movzx eax,byte[esi]
337
    inc   esi
338
    shl   ax,4
339
    shr   al,4
340
    stosw
341
    loop  .lp
342
    ret
343
 
344
get_xy:
345
; eax-coord
346
; out: [lx]-[x+2][CS-4],[ly]-[y+2][CS-4]
347
    pusha
348
    xor   edx,edx
349
    mov   esi,[sq_size]
350
    lea   edi,[esi*2]
351
    neg   edi
352
    add   edi,[Ces]
353
    mov   [lx],edi
354
    mov   [ly],edi
355
    mov   ebx,[fx]
356
    div   bx
357
    imul  eax,[Ces]
358
    imul  edx,[Ces]
359
    lea   edx,[edx+XFOFS+esi]
360
    lea   eax,[eax+YFOFS+esi]
361
    mov   word[ly+2],ax
362
    mov   word[lx+2],dx
363
    popa
364
    ret
365
 
366
check_move:
367
; eax-coord, ebx-direction
368
; CF=0 if move is valid
369
    bt	 dword[field+eax],ebx
370
    ret
371
 
372
delay:
373
    pusha
374
    mcall 5,[pause_time]
375
    popa
376
    ret
377
 
378
get_mstr:
379
; in:  edx,ecx
380
; out: edx,esi
381
    mov   esi,[edx-4]
382
    jecxz .ex
383
    lea   edx,[edx+esi+4]
384
    dec   ecx
385
    jmp   get_mstr
386
  .ex:
387
    ret
388
 
389
maze_field:
390
    mov   edi,field
391
    mov   [ly],YFOFS shl 16+YFOFS
392
    mov   eax,38
393
    mov   ecx,[fy]
394
  .lp1:
395
    push  ecx
396
    mov   [lx],XFOFS shl 16+XFOFS
397
    mov   ecx,[fx]
398
  .lp2:
399
    push  ecx
400
    xor   esi,esi
401
  .lp3:
402
    mov   edx,0xd0d0d0
403
    bt	  dword[edi],esi
404
    jnc   .gray
405
    mov   edx,0
406
  .gray:
407
    mov   ebx,[lx]
408
    add   ebx,[dir_ofs+esi*4]
409
    mov   ecx,[ly]
410
    add   ecx,[dir_ofs+esi*4+8]
411
    mcall
412
    inc   esi
413
    cmp   esi,4
414
    jb	  .lp3
415
    inc   edi
416
    mov   ecx,[Ces]
417
    add   word[lx],cx
418
    add   word[lx+2],cx
419
    pop   ecx
420
    loop  .lp2
421
    mov   ecx,[Ces]
422
    add   word[ly],cx
423
    add   word[ly+2],cx
424
    pop   ecx
425
    loop  .lp1
426
    ret
427
 
428
grid_field:
429
    mov   edx,0xa0a0a0
430
    mov   eax,38
431
 
432
    mov   ecx,[fy]
433
    mov   ebx,[fx]
434
    imul  ebx,[Ces]
435
    add   ebx,XFOFS shl 16+XFOFS
436
    mov   esi,YFOFS shl 16+YFOFS
437
    inc   ecx
438
  .lp1:
439
    push  ecx
440
    mov   ecx,esi
441
    mcall
442
    mov   ecx,[Ces]
443
    add   esi,ecx
444
    shl   ecx,16
445
    add   esi,ecx
446
    pop   ecx
447
    loop  .lp1
448
 
449
    mov   ecx,[fx]
450
    mov   esi,[fy]
451
    imul  esi,[Ces]
452
    add   esi,YFOFS shl 16+YFOFS
453
    mov   ebx,XFOFS shl 16+XFOFS
454
    inc   ecx
455
  .lp2:
456
    push  ecx
457
    mov   ecx,esi
458
    mcall
459
    mov   ecx,[Ces]
460
    add   ebx,ecx
461
    shl   ecx,16
462
    add   ebx,ecx
463
    pop   ecx
464
    loop  .lp2
465
    ret
466
 
467
get_xy_sf:
468
		xor  eax,eax
469
		and  [player],eax
470
    mov  [fx],eax
471
    mov  [fy],eax
472
    lodsb
473
    lodsb
474
    mov  ah,al
475
    shr  ah,4
476
    and  al,0xf
477
    mov  byte[fx],ah
478
    mov  byte[fy],al
479
    lodsb
480
    mov  byte[player],al
481
    lodsb
482
    mov  byte[finish],al
483
  .count:
484
    mov  eax,[fx]
485
    mov  [dirs+4],eax
486
    neg  eax
487
    mov  [dirs+8],eax
488
    mov  eax,[fx]
489
    imul eax,[fy]
490
    mov  [cell_count],eax
491
 
492
    ret
493
 
494
get_last_mclick:
495
; out - eax=0 no click or outside field
496
;                               eax>0 button pressed, ebx=[xy]
497
		mov  [mouse_processed],1
498
		mov  eax,[mpress_flag]
499
		mov  ebx,[mouse_y]
500
		imul ebx,[fx]
501
		add  ebx,[mouse_x]
502
		ret
503
 
504
erase_field:
505
		pusha
506
		mov  ecx,[cell_count]
507
		xor  eax,eax
508
		mov  edi,field
509
		rep  stosb
510
		popa
511
		ret
512
 
513
get_pxy:
514
; in: [pack] - cell#, out: word[pack] - packed  [xy]
515
		pusha
516
		mov  eax,[pack]
517
		cdq
518
		mov  ebx,[fx]
519
		div  ebx
520
		shl edx,8
521
		add  eax,edx
522
		mov  [pack],eax
523
		popa
524
		ret
525
 
526
check_bounds:
527
; in: eax - cell, ebx - dir
528
; out: ebx=-1 if bounds crossed
529
		push eax ecx
530
		mov  ecx,eax
531
		add  ecx,[dirs+ebx*4]
532
		mov  ebx,ecx
533
		call get_offset
534
		mov  ebx,eax
535
		pop  ecx eax
536
    cmp  ebx,-1
537
		ret
538
 
539
get_offset:
540
; in: eax - start, ebx-end
541
; out: eax - dir or -1 if not straight
542
;      ebx - distance
543
		push ecx edx
544
		mov  ecx,-1
545
		mov  edx,[cell_count]
546
		cmp  eax,edx
547
		jae  .ex
548
		cmp  ebx,edx
549
		jae  .ex
550
		mov  [pack],eax
551
		call get_pxy
552
		mov  eax,[pack]
553
		mov  [pack],ebx
554
		call get_pxy
555
		mov  ebx,[pack]
556
		cmp  ah,bh ; compare X
557
		jne  .noX
558
		mov  ecx,1
559
		sub  bl,al
560
		ja   .ok
561
		inc  ecx
562
	.ok2:
563
		neg  bl
564
		jmp  .ok
565
	.noX:
566
		cmp  al,bl ; compare Y
567
		jne  .ex
568
		inc  ecx
569
		sub  bh,ah
570
		mov  bl,bh
571
		jb   .ok2
572
		add  ecx,3
573
	.ok:
574
		movzx ebx,bl
575
	.ex:
576
		mov  eax,ecx
577
		pop edx ecx
578
		ret
579
 
580
show_help:
581
		mov   ebp,[pack]
582
	.red:
583
    mcall 12,1
584
    mov   ebx,[prc_info.x_start]
585
    add   ebx,[prc_info.x_size]
586
    shl   ebx,16
587
    add   ebx,310
588
    mov   ecx,[prc_info.y_start]
589
    shl   ecx,16
590
    add   ecx,220
591
    mcall 0,,,0x03c0c0c0
592
    mcall 4,<8,8>,0x00ffffff,help_hdr,help_hdr.size
593
    mov   ecx,ebp
594
    mov   edx,game_names+4
595
    call  get_mstr
596
    sub   esi,2
597
    mcall 4,<6*help_hdr.size+15,8>,0x00ffffff
598
 
599
    mov   edx,[help_msg+ebp*4]
600
    add   edx,4
601
    xor   ecx,ecx
602
    mov   ebx,10 shl 16+30
603
  .nxt:
604
    mov   esi,[edx-4]
605
    jecxz .drw
606
    dec   ecx
607
    lea   edx,[edx+esi+4]
608
    jmp   .nxt
609
  .drw:
610
    cmp   esi,-1
611
    je	  .edraw
612
    mcall ,,0x000000ff
613
    mov   ecx,1
614
    add   ebx,12
615
    jmp    .nxt
616
  .edraw:
617
    mcall 12,2
618
	.still:
619
    mcall 10
620
    cmp  eax,2
621
    jne  .nokey
622
    mcall
623
    jmp  .close
624
  .nokey:
625
    cmp  eax,1			; redraw request ?
626
    je	 .red
627
    cmp  eax,3			; button in buffer ?
628
    jne  .still
629
    mcall 17
630
    cmp  ah,1
631
    jne  .still
632
  .close:
633
    and  [child],0
634
    mcall -1
635
 
636
getline:
637
; in: esi,edi
638
		pusha
639
    mov  eax,esi
640
    call get_xy
641
    mov  ebx,[lx]
642
    mov  ecx,[ly]
643
    mov  eax,edi
644
    call get_xy
645
    mov  bx,word[lx+2]
646
    mov  cx,word[ly+2]
647
    mov  eax,[Ces]
648
    shr  eax,1
649
    sub  eax,[sq_size]
650
    add  ebx,eax
651
    add  ecx,eax
652
    shl  eax,16
653
    add  ebx,eax
654
    add  ecx,eax
655
    mov  [lx],ebx
656
    mov  [ly],ecx
657
		mcall 38
658
		popa
659
		ret
660
 
661
bold_line:
662
  WGSPC equ 1
663
    pusha
664
		mov  edi,WGSPC shl 16+WGSPC
665
    add  [lx],edi
666
    add  [ly],edi
667
		mcall 38,[lx],[ly]
668
		shl  edi,1
669
    sub  ebx,edi
670
    sub  ecx,edi
671
		mcall
672
		popa
673
		ret
674
 
675
get_rnd:
676
		mov  eax, [generator]
677
    sub  eax,0x43ab45b5    ; next random number
678
    ror  eax,1
679
    xor  eax,0x32c4324f
680
    ror  eax,1
681
    mov  [generator],eax
682
    ret
683
 
684
drwfld:
685
		pusha
686
    mov   ebx,[fx]
687
    imul  ebx,[Ces]
688
    add   ebx,XFOFS shl 16
689
    mov   ecx,[fy]
690
    imul  ecx,[Ces]
691
    add   ecx,YFOFS shl 16
692
    mcall 13,,,WNDCOLOR
693
    add   ebx,26 shl 16-26
694
    sub   ecx,16 shl 16
695
    mov   cx,16
696
    mcall
697
    icall draw_field
698
    icall draw_more
699
    cmp   [win_flag],0
700
    jz	  .edraw
701
    movzx ecx,[win_flag]
702
    mov   edx,msgs+4
703
    call  get_mstr
704
    mcall 4,,0x100000ff
705
  .edraw:
706
    popa
707
    ret
708
 
709
resize:
710
    mov  eax,[Ces]
711
    mov  edi,dir_ofs+4
712
    stosd
713
    stosd
714
    stosw
715
    stosw
716
    mov  [edi+4],eax
717
		ret
718
 
719
need_image:
720
; in: eax - gif pointer
721
		cmp  [gif_unp],0
722
		jne  .skip
723
		push esi edi
724
		mov  esi,eax
725
		mov  eax,field
726
		mov  edi,raw_area
727
		call ReadGIF
728
		mov  [gif_unp],1
729
		pop  edi esi
730
	.skip:
731
		ret
732
 
733
out_image:
734
; in: eax - coord, ebx - image #
735
 
736
STRIP2 = STRIP-2
737
	pusha
738
  call get_xy
739
  mov  edx,[lx]
740
  mov  dx,word[ly+2]
741
  add  edx,1 shl 16+1
742
  imul ebx,STRIP2*STRIP2*3
743
	add  ebx,raw_area+12
744
  mcall 7,,STRIP2 shl 16+STRIP2
745
  popa
746
	ret
747
 
748
OR_strip:
749
;file 'orient2.gif'
750
file 'orientg2.gif'
751
	rd 2
752
	gif_unp dd 0
753
 
754
; DATA AREA
755
help_hdr db 'MegaMaze Help -'
756
	.size=$-help_hdr
757
 
758
dirs dd -1,0,0,1
759
dir_ofs dd 0, 1, 1, 1 shl 16+1, 0, 1
760
 
761
dir_rotate db 2,0,3,1,1,3,0,2
762
 
763
w_colors dd 0x0404CA,0xCC0404,0x00CC00
764
f_colors dd 0x9494FC,0xFC9494,0x99FF99,0xFFFF00
765
 
766
levnum	 dd LEVNUM
767
 
768
prepare_level dd TM_levelp,SMZ_levelp,TILT_levelp,TILT2_levelp,FH_levelp,\
769
	 LP_levelp,WG_levelp,BB_levelp,MAR_levelp,TM_levelp,OR_levelp,NLT_levelp,\
770
	 CZ_levelp
771
key_handler   dd TM_key,SMZ_key,TILT_key,TILT2_key,FH_key,LP_key,WG_key,BB_key,\
772
	 MAR_key,CSTEP_key,OR_key,NLT_key,CZ_key
773
draw_more     dd TM_drawm,SMZ_drawm,TILT_drawm,TILT2_drawm,FH_drawm,LP_drawm,\
774
	 WG_drawm,BB_drawm,MAR_drawm,CSTEP_drawm,OR_drawm,NLT_drawm,CZ_drawm
775
draw_field    dd maze_field,maze_field,maze_field,maze_field,grid_field,\
776
	 grid_field,grid_field,grid_field,maze_field,maze_field,OR_drawf,maze_field,\
777
	 grid_field
778
levels	      dd TM_level,SMZ_level,TILT_level,TILT2_level,FH_level,LP_level,\
779
	 WG_level,BB_level,MAR_level,CSTEP_level,OR_level,NLT_level,CZ_level
780
help_msg      dd TM_help,SMZ_help,TILT_help,TILT2_help,FH_help,LP_help,WG_help,\
781
	 BB_help,MAR_help,CSTEP_help,OR_help,NLT_help,CZ_help
782
 
783
if lang eq ru
784
  header db 'Mega Maze'
785
else
786
  header db 'Mega Maze'
787
end if
788
   .size = $ - header
789
 
790
next_msg db '< >'
791
 
792
game_names mstr \
793
	'Teseus & Minotaur #',\
794
	'1-2-3 Maze #',\
795
	'Tilt Maze #',\
796
	'Double Tilt #',\
797
	'Full-house #',\
798
	'Loops #',\
799
	'Wriggle #',\
800
	'BlackBox #',\
801
	'Marble #',\
802
	'Counter Step #',\
803
	'Orientation #',\
804
	'No left turn #',\
805
	'Colour-zone #'
806
 
807
msgs mstr ' ','You win!!!','Game over.','Start cell?','Dead end!',\
808
	"  atoms hidden.",'Ray emerged.','Ray absorbed.','Ray reflected.',\
809
	'Mark exactly    guesses','Your score is','Guess mark toggled'
810
 
811
I_END:
812
main_pid dd ?
813
child_stack rb 256
814
	chs_end:
815
drag_flag db ?
816
sq_size dd ?
817
mouse_processed dd ?
818
mpress_flag dd ?
819
mouse_x dd ?
820
mouse_y dd ?
821
 
822
Ces dd ?
823
pack dd ?
824
fy dd ?
825
fx dd ?
826
lx dd ?
827
ly dd ?
828
generator dd ?
829
cell_count dd ?
830
levptr	 dd ?
831
levcount dd ?
832
 
833
score	 dd ?
834
player:
835
teseus	 dd ?
836
finish:
837
minotaur dd ?
838
 
839
stepptr  dd ?
840
cur_step dd ?
841
 
842
win_flag db ?
843
jump	 dd ?
844
pause_time dd ?
845
child	 dd ?
846
area rb 1024
847
stak rb 1024
848
stack_end:
849
prc_info process_information
850
prc_info2 process_information
851
field:
852
    rb 128*128
853
raw_area:
854
		rb STRIP*STRIP*12*3+16
855
end_mem: