Subversion Repositories Kolibri OS

Rev

Rev 2023 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2023 Rev 7134
1
;   SQ_game for MenuetOS
1
;   SQ_game for MenuetOS
2
;   Author:    Alexei Ershov aka ealex
2
;   Author:    Alexei Ershov aka ealex
3
;   E-mail:    e-al[at]yandex[dot]ru
3
;   E-mail:    e-al[at]yandex[dot]ru
4
;   Fidonet:   2:469/335.38
4
;   Fidonet:   2:469/335.38
5
; slightly optimized by diamond
5
; slightly optimized by diamond
6
; english translation by diamond (two strings in end of source)
6
; english translation by diamond (two strings in end of source)
7
 
7
 
8
 
8
 
9
	BtnSize     equ 32	; à §¬¥à ª­®¯ª¨
9
	BtnSize     equ 32	; à §¬¥à ª­®¯ª¨
10
	BtnSpace    equ 10	; ¯à®¬¥¦ã⮪ ¬¥¦¤ã ª­®¯ª ¬¨
10
	BtnSpace    equ 10	; ¯à®¬¥¦ã⮪ ¬¥¦¤ã ª­®¯ª ¬¨
11
	NofBtn	    equ 4   ; à §¬¥à ¯®«ï (3-15)
11
	NofBtn	    equ 4   ; à §¬¥à ¯®«ï (3-15)
12
	Color1	    equ 0xcc0000
12
	Color1	    equ 0xcc0000
13
	Color2	    equ 0x00cc00
13
	Color2	    equ 0x00cc00
14
 
14
 
15
	FieldSize   = (BtnSize+BtnSpace)*NofBtn + BtnSpace*3
15
	FieldSize   = (BtnSize+BtnSpace)*NofBtn + BtnSpace*3
16
	center	    = FieldSize / 2
16
	center	    = FieldSize / 2
17
 
17
 
18
 
18
 
19
  use32 	     ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
19
  use32 	     ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
20
  org	 0x0	     ;  ¤à¥á æ¨ï á ­ã«ï
20
  org	 0x0	     ;  ¤à¥á æ¨ï á ­ã«ï
21
 
21
 
22
  db	 'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
22
  db	 'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
23
  dd	 0x01	     ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
23
  dd	 0x01	     ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
24
  dd	 START	     ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
24
  dd	 START	     ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
25
  dd	 I_END	     ; à §¬¥à ¯à®£à ¬¬ë
25
  dd	 I_END	     ; à §¬¥à ¯à®£à ¬¬ë
26
  dd	 0x1000      ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
26
  dd	 0x1000      ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
27
  dd	 0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
27
  dd	 0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
28
  dd	 0x0	     ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
28
  dd	 0x0	     ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
29
  dd	 0x0	     ; § à¥§¥à¢¨à®¢ ­®
29
  dd	 0x0	     ; § à¥§¥à¢¨à®¢ ­®
30
 
-
 
31
include 'lang.inc'
30
 
32
include 'MACROS.INC' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
31
include 'macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
33
 
32
 
34
 
33
 
35
START:
34
START:
36
    call Game_Init
35
    call Game_Init
37
red:
36
red:
38
    call Draw_Window
37
    call Draw_Window
39
 
38
 
40
still:
39
still:
41
    mcall 10		; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
40
    mcall 10		; äã­ªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï
42
	dec	eax
41
	dec	eax
43
	jz	red
42
	jz	red
44
	dec	eax
43
	dec	eax
45
	jnz	button
44
	jnz	button
46
 
45
 
47
 key:		       ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
46
 key:		       ; ­ ¦ â  ª« ¢¨è  ­  ª« ¢¨ âãà¥
48
	mov	al, 2
47
	mov	al, 2
49
	int	0x40
48
	int	0x40
50
	jmp	still
49
	jmp	still
51
;---------------------------------------------------------------------
50
;---------------------------------------------------------------------
52
 
51
 
53
button:
52
button:
54
	mov	al, 17	; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
53
	mov	al, 17	; 17 - ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
55
	int	0x40
54
	int	0x40
56
    cmp   ah, 1 	; ¥á«¨ ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1, ¢ë室¨¬
55
    cmp   ah, 1 	; ¥á«¨ ­ ¦ â  ª­®¯ª  á ­®¬¥à®¬ 1, ¢ë室¨¬
57
    je	  .exit
56
    je	  .exit
58
 
57
 
59
    cmp   ah, 2 	; ¥á«¨ ­ ¦ â  ª­®¯ª  2, ­ ç¨­ ¥¬ ­®¢ãî ¨£àã
58
    cmp   ah, 2 	; ¥á«¨ ­ ¦ â  ª­®¯ª  2, ­ ç¨­ ¥¬ ­®¢ãî ¨£àã
60
    je	  START
59
    je	  START
61
 
60
 
62
      ;  ¦  ª­®¯ª  ­  ¯®«¥
61
      ;  ¦  ª­®¯ª  ­  ¯®«¥
63
	inc	dword [moves]	  ; 㢥«¨ç¨¢ ¥¬ ç¨á«® 室®¢
62
	inc	dword [moves]	  ; 㢥«¨ç¨¢ ¥¬ ç¨á«® 室®¢
64
 
63
 
65
	shr	eax, 8		  ; ¢ eax ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
64
	shr	eax, 8		  ; ¢ eax ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
66
 
65
 
67
	mov	dh, NofBtn
66
	mov	dh, NofBtn
68
	div	dh	      ; al = ax(­®¬¥à ª­®¯ª¨) / NofBtn
67
	div	dh	      ; al = ax(­®¬¥à ª­®¯ª¨) / NofBtn
69
			      ; ah = ®áâ â®ª  (á¬. à¨áã­®ª)
68
			      ; ah = ®áâ â®ª  (á¬. à¨áã­®ª)
70
	mov	ebx, eax      ; á®åà ­¨¬ ç áâ­®¥ ¨ ®áâ â®ª ¢ ebx
69
	mov	ebx, eax      ; á®åà ­¨¬ ç áâ­®¥ ¨ ®áâ â®ª ¢ ebx
71
 
70
 
72
      ; al\ah 0   1    2    3
71
      ; al\ah 0   1    2    3
73
      ;     +-+  +-+  +-+  +-+
72
      ;     +-+  +-+  +-+  +-+
74
      ;  1  |4|  |5|  |6|  |7|
73
      ;  1  |4|  |5|  |6|  |7|
75
      ;     +-+  +-+  +-+  +-+
74
      ;     +-+  +-+  +-+  +-+
76
 
75
 
77
      ;     +-+  +-+  +-+  +-+
76
      ;     +-+  +-+  +-+  +-+
78
      ;  2  |8|  |9|  |10  |11
77
      ;  2  |8|  |9|  |10  |11
79
      ;     +-+  +-+  +-+  +-+
78
      ;     +-+  +-+  +-+  +-+
80
 
79
 
81
      ;     +-+  +-+  +-+  +-+
80
      ;     +-+  +-+  +-+  +-+
82
      ;  3  |12  |13  |14  |15
81
      ;  3  |12  |13  |14  |15
83
      ;     +-+  +-+  +-+  +-+
82
      ;     +-+  +-+  +-+  +-+
84
 
83
 
85
      ;     +-+  +-+  +-+  +-+
84
      ;     +-+  +-+  +-+  +-+
86
      ;  4  |16  |17  |18  |19
85
      ;  4  |16  |17  |18  |19
87
      ;     +-+  +-+  +-+  +-+
86
      ;     +-+  +-+  +-+  +-+
88
 
87
 
89
; Œ¥­ï¥¬ 梥â á⮫¡¨ª 
88
; Œ¥­ï¥¬ 梥â á⮫¡¨ª 
90
	shr	eax, 8	      ; eax = ah
89
	shr	eax, 8	      ; eax = ah
91
	mov	edi, field
90
	mov	edi, field
92
	add	edi, eax    ; edi 㪠§¢ë¥â ­  ¯¥à¢ãî ª­®¯ªã ¨ ¨áª®¬®¬ áâ«¡æ¥
91
	add	edi, eax    ; edi 㪠§¢ë¥â ­  ¯¥à¢ãî ª­®¯ªã ¨ ¨áª®¬®¬ áâ«¡æ¥
93
	mov	ecx, NofBtn
92
	mov	ecx, NofBtn
94
@@:
93
@@:
95
	not	byte[edi]    ; ¬¥­ï¥¬ 梥⠢® ¢á¥¬ á⮫¡¨ª¥
94
	not	byte[edi]    ; ¬¥­ï¥¬ 梥⠢® ¢á¥¬ á⮫¡¨ª¥
96
	dec	ecx
95
	dec	ecx
97
	add	edi, NofBtn
96
	add	edi, NofBtn
98
	test	ecx, ecx
97
	test	ecx, ecx
99
	jnz	@r
98
	jnz	@r
100
 
99
 
101
; Œ¥­ï¥¬ 梥â áâப¨
100
; Œ¥­ï¥¬ 梥â áâப¨
102
	mov	eax, ebx      ; ¢®ááâ ­ ¢«¨¢ ¥¬ eax
101
	mov	eax, ebx      ; ¢®ááâ ­ ¢«¨¢ ¥¬ eax
103
	dec	eax
102
	dec	eax
104
	mov	dl, NofBtn
103
	mov	dl, NofBtn
105
	mul	dl	      ; ax = al * NofBtn
104
	mul	dl	      ; ax = al * NofBtn
106
	mov	edi, field
105
	mov	edi, field
107
	add	edi, eax     ; edi 㪠§¢ë¥â ­  ¯¥à¢ãî ª­®¯ªã ¢ ¨áª®¬®© áâப¥
106
	add	edi, eax     ; edi 㪠§¢ë¥â ­  ¯¥à¢ãî ª­®¯ªã ¢ ¨áª®¬®© áâப¥
108
	mov	ecx, NofBtn
107
	mov	ecx, NofBtn
109
@@:
108
@@:
110
	not	byte [edi]    ; ¬¥­ï¥¬ 梥⠢® ¢á¥© áâப¥
109
	not	byte [edi]    ; ¬¥­ï¥¬ 梥⠢® ¢á¥© áâப¥
111
	dec	ecx
110
	dec	ecx
112
	inc	edi
111
	inc	edi
113
	test	ecx, ecx
112
	test	ecx, ecx
114
	jnz	@r
113
	jnz	@r
115
; –¢¥â ­ ¦ â®© ª­®¯ª¨ ¬¥­ï«áï 2 à §  (ª®£¤  ®¡à ¡ â뢠«¨ áâப㠨 á⮫¡¥æ),
114
; –¢¥â ­ ¦ â®© ª­®¯ª¨ ¬¥­ï«áï 2 à §  (ª®£¤  ®¡à ¡ â뢠«¨ áâப㠨 á⮫¡¥æ),
116
; â.¥. ®áâ «áï ¯¥à¢®­ ç «­ë¬
115
; â.¥. ®áâ «áï ¯¥à¢®­ ç «­ë¬
117
; Œ¥­ï¥¬ 梥⠭ ¦ â®© ª­®¯ª¨
116
; Œ¥­ï¥¬ 梥⠭ ¦ â®© ª­®¯ª¨
118
	shr	ebx, 8	      ; ebx = ®áâ â®ª (ah ­  à¨áã­ª¥)
117
	shr	ebx, 8	      ; ebx = ®áâ â®ª (ah ­  à¨áã­ª¥)
119
	not	byte [field+eax+ebx]
118
	not	byte [field+eax+ebx]
120
	jmp	red
119
	jmp	red
121
 
120
 
122
 
121
 
123
 
122
 
124
  .exit:
123
  .exit:
125
    mcall -1		; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
124
    mcall -1		; ¨­ ç¥ ª®­¥æ ¯à®£à ¬¬ë
126
 
125
 
127
 
126
 
128
;----------------------------------------------------------------------------
127
;----------------------------------------------------------------------------
129
;               Draw_Window
128
;               Draw_Window
130
;----------------------------------------------------------------------------
129
;----------------------------------------------------------------------------
131
Draw_Window:
130
Draw_Window:
132
 
131
 
133
    mcall 12, 1
132
    mcall 12, 1
134
    mcall 0, 200*65536+FieldSize,\
133
    mcall 0, 200*65536+FieldSize,\
135
	     200*65536+FieldSize+20+20+20,\
134
	     200*65536+FieldSize+20+20+20,\
136
	     0x14AABBCC, 0x805080D0, header
135
	     0x14AABBCC, 0x805080D0, header
137
 
136
 
138
    mcall 8, BtnSpace*2*65536 + 83,\
137
    mcall 8, BtnSpace*2*65536 + 83,\
139
	     (FieldSize+BtnSpace+20)*65536+ 15, 2
138
	     (FieldSize+BtnSpace+20)*65536+ 15, 2
140
    mcall 4, (BtnSpace*2+3)*65536+(BtnSize+BtnSpace)*NofBtn+BtnSpace*4+20+4,\
139
    mcall 4, (BtnSpace*2+3)*65536+(BtnSize+BtnSpace)*NofBtn+BtnSpace*4+20+4,\
141
	     0x10DDEEFF, strNew, strNew_e - strNew
140
	     0x10DDEEFF, strNew, strNew_e - strNew
142
    mcall 4, (center - 25) * 65536 + 30, 0, strMovs, strMovs_e - strMovs
141
    mcall 4, (center - 25) * 65536 + 30, 0, strMovs, strMovs_e - strMovs
143
    mcall 47, 4*65536+1, moves, (center + 2 ) * 65536 + 30, 0
142
    mcall 47, 4*65536+1, moves, (center + 2 ) * 65536 + 30, 0
144
 
143
 
145
 
144
 
146
 
145
 
147
	mov	ecx, (20+20+BtnSpace-BtnSize)*65536+BtnSize
146
	mov	ecx, (20+20+BtnSpace-BtnSize)*65536+BtnSize
148
	mov	edx, NofBtn	      ; ¨¤¥­â¨ä¨ª â®à ¯¥à¢®© ª­®¯ª¨ ­  ¯®«¥
147
	mov	edx, NofBtn	      ; ¨¤¥­â¨ä¨ª â®à ¯¥à¢®© ª­®¯ª¨ ­  ¯®«¥
149
				      ; ᬠà¨áã­®ª
148
				      ; ᬠà¨áã­®ª
150
 
149
 
151
buttons:			      ; à¨á㥬 ª­®¯®çª¨
150
buttons:			      ; à¨á㥬 ª­®¯®çª¨
152
	mov	eax, edx
151
	mov	eax, edx
153
	mov	dh, NofBtn
152
	mov	dh, NofBtn
154
	div	dh	     ; al = ax / dh, ah - ®áâ â®ª
153
	div	dh	     ; al = ax / dh, ah - ®áâ â®ª
155
	mov	dh, 0
154
	mov	dh, 0
156
	test	ah, ah	     ; ¥á«¨ ah = 0, ­ ç¨­ ¥¬ ­®¢ë© àï¤
155
	test	ah, ah	     ; ¥á«¨ ah = 0, ­ ç¨­ ¥¬ ­®¢ë© àï¤
157
	jnz	@f
156
	jnz	@f
158
	add	ecx, (BtnSize+BtnSpace)*65536
157
	add	ecx, (BtnSize+BtnSpace)*65536
159
	mov	ebx, BtnSpace*2*65536+BtnSize
158
	mov	ebx, BtnSpace*2*65536+BtnSize
160
@@:
159
@@:
161
	mov	esi, Color1		       ; ¡ ©â ¯®  ¤à¥áã
160
	mov	esi, Color1		       ; ¡ ©â ¯®  ¤à¥áã
162
	cmp	byte [field-NofBtn+edx], 0	; field-NofBtn+­®¬¥à_ª­®¯ª¨
161
	cmp	byte [field-NofBtn+edx], 0	; field-NofBtn+­®¬¥à_ª­®¯ª¨
163
	jz	@f				; £®¢®à¨â ® ¥¥ 梥â¥
162
	jz	@f				; £®¢®à¨â ® ¥¥ 梥â¥
164
	mov	esi, Color2
163
	mov	esi, Color2
165
@@:
164
@@:
166
	mcall 8,
165
	mcall 8,
167
	add	ebx, (BtnSize+BtnSpace)*65536
166
	add	ebx, (BtnSize+BtnSpace)*65536
168
	inc	edx			   ; ¯¥à¥å®¤¨¬ ª á«¥¤ãî饩 ª­®¯ª¥
167
	inc	edx			   ; ¯¥à¥å®¤¨¬ ª á«¥¤ãî饩 ª­®¯ª¥
169
	cmp	edx, NofBtn*(NofBtn+1)
168
	cmp	edx, NofBtn*(NofBtn+1)
170
	jb	buttons
169
	jb	buttons
171
 
170
 
172
    mcall 12, 2 		   ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
171
    mcall 12, 2 		   ; äã­ªæ¨ï 12: á®®¡é¨âì Ž‘ ®¡ ®âà¨á®¢ª¥ ®ª­ 
173
 
172
 
174
ret
173
ret
175
 
174
 
176
;----------------------------------------------------------------------------
175
;----------------------------------------------------------------------------
177
;               Game_Init
176
;               Game_Init
178
;----------------------------------------------------------------------------
177
;----------------------------------------------------------------------------
179
Game_Init:
178
Game_Init:
180
	and	[moves], 0	       ; ®¡­ã«¨¬ ª®«¨ç¥á⢮ 室®¢
179
	and	[moves], 0	       ; ®¡­ã«¨¬ ª®«¨ç¥á⢮ 室®¢
181
 
180
 
182
	call	random		       ; ¢ eax á«ãç ©­®¥ ç¨á«®
181
	call	random		       ; ¢ eax á«ãç ©­®¥ ç¨á«®
183
	mov	ecx, NofBtn * NofBtn   ; ¢ ecx ª®«-¢® ª­®¯®ª ­  ¯®«¥
182
	mov	ecx, NofBtn * NofBtn   ; ¢ ecx ª®«-¢® ª­®¯®ª ­  ¯®«¥
184
	mov	bh, 0		       ; ¤«ï ª ¦¤®© ª­®¯ª¨ ¡ã¤¥¬ ¡à âì
183
	mov	bh, 0		       ; ¤«ï ª ¦¤®© ª­®¯ª¨ ¡ã¤¥¬ ¡à âì
185
				       ; 1 ¡¨â ¨§ eax, bh - ᪮«ìª®
184
				       ; 1 ¡¨â ¨§ eax, bh - ᪮«ìª®
186
button_init:			       ; ¡¨â 㦥 ¨á¯®«ì§®¢ «¨
185
button_init:			       ; ¡¨â 㦥 ¨á¯®«ì§®¢ «¨
187
	shr	eax, 1		 ; ¬« ¤è¨© ¡¨â ¯®¯ ¤ ¥â ¢ ä« £ CF
186
	shr	eax, 1		 ; ¬« ¤è¨© ¡¨â ¯®¯ ¤ ¥â ¢ ä« £ CF
188
				 ; ¢ § ¢¨á¨¬®á⨠®â ¥£® §­ ç¥­¨ï
187
				 ; ¢ § ¢¨á¨¬®á⨠®â ¥£® §­ ç¥­¨ï
189
				 ; ¢ bl § ¯¨á뢠¥âáï -1 ¨«¨ 0
188
				 ; ¢ bl § ¯¨á뢠¥âáï -1 ¨«¨ 0
190
	sbb	bl, bl
189
	sbb	bl, bl
191
	mov	[field + ecx - 1], bl
190
	mov	[field + ecx - 1], bl
192
 
191
 
193
	inc	bh
192
	inc	bh
194
	cmp	bh, 32		 ; ¥á«¨ ¨á¯®«ì§®¢ ­ë ¢á¥ 32 ¡¨â  ¨§ eax
193
	cmp	bh, 32		 ; ¥á«¨ ¨á¯®«ì§®¢ ­ë ¢á¥ 32 ¡¨â  ¨§ eax
195
	jb	@f		 ; ­ ® ¯®«ãç¨âì ­®¢®¥ á«ãç ©­®¥ ç¨á«®
194
	jb	@f		 ; ­ ® ¯®«ãç¨âì ­®¢®¥ á«ãç ©­®¥ ç¨á«®
196
	call	random
195
	call	random
197
	mov	bh, 0
196
	mov	bh, 0
198
@@:
197
@@:
199
	loop	button_init
198
	loop	button_init
200
 
199
 
201
ret
200
ret
202
 
201
 
203
;----------------------------------------------------------------------------
202
;----------------------------------------------------------------------------
204
;     random - ¢§ïâ  ¨§ â¥âà¨á 
203
;     random - ¢§ïâ  ¨§ â¥âà¨á 
205
;----------------------------------------------------------------------------
204
;----------------------------------------------------------------------------
206
random: 	mov eax,[generator]
205
random: 	mov eax,[generator]
207
		add eax,-43ab45b5h
206
		add eax,-43ab45b5h
208
		ror eax,1
207
		ror eax,1
209
		xor eax,32c4324fh
208
		xor eax,32c4324fh
210
		ror eax,1
209
		ror eax,1
211
		mov [generator],eax
210
		mov [generator],eax
212
		; --- IVAN ---
211
		; --- IVAN ---
213
		mov eax,26
212
		mov eax,26
214
		mov ebx,9
213
		mov ebx,9
215
		int 0x40
214
		int 0x40
216
		xor eax,0xdeadbeef
215
		xor eax,0xdeadbeef
217
		add eax,[generator]
216
		add eax,[generator]
218
		; --- IVAN ---
217
		; --- IVAN ---
219
		ret
218
		ret
220
 
219
 
221
;============================================================================
220
;============================================================================
222
 
221
 
223
field		db NofBtn * NofBtn dup(0)
222
field		db NofBtn * NofBtn dup(0)
224
moves		dd 0
223
moves		dd 0
225
generator	dd 0
224
generator	dd 0
226
 
225
 
227
if lang eq ru
226
if lang eq ru
228
header		db 'CQ game',0
227
header		db 'CQ game',0
229
header_e:
228
header_e:
230
strMovs 	db '•Ž„'	; '•Ž„'
229
strMovs 	db '•Ž„'	; '•Ž„'
231
strMovs_e:
230
strMovs_e:
232
strNew		db '®¢ ï ¨£à ' ; '®¢ ï ¨£à '
231
strNew		db '®¢ ï ¨£à ' ; '®¢ ï ¨£à '
233
strNew_e:
232
strNew_e:
234
else
233
else
235
header		db 'CQ game',0
234
header		db 'CQ game',0
236
header_e:
235
header_e:
237
strMovs 	db 'MOVE'
236
strMovs 	db 'MOVE'
238
strMovs_e:
237
strMovs_e:
239
strNew		db ' New game'
238
strNew		db ' New game'
240
strNew_e:
239
strNew_e:
241
end if
240
end if
242
 
241
 
243
 
242
 
244
 
243
 
245
I_END:				   ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
244
I_END:				   ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë