Subversion Repositories Kolibri OS

Rev

Rev 1803 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1803 Rev 2734
Line 5... Line 5...
5
cW     equ cWHITE
5
cW     equ cWHITE
Line 6... Line 6...
6
 
6
 
7
macro main_loop
7
macro main_loop
Line -... Line 8...
-
 
8
{
-
 
9
 
-
 
10
; ®«ãç¨âì áâ ­¤ àâ­ë¥ æ¢¥â  ®ª®­
-
 
11
;========================================
-
 
12
mov eax, 48
-
 
13
mov ebx, 3
-
 
14
mov ecx, colors
-
 
15
mov edx, 40
-
 
16
int 0x40
-
 
17
 
8
{
18
 
9
 
19
 
10
; äã­ªæ¨ï ®âà¨á®¢ª¨ ®ª­ 
20
; äã­ªæ¨ï ®âà¨á®¢ª¨ ®ª­ 
11
;========================================
21
;========================================
12
draw_window:
22
draw_window:
13
        mov     eax,12                ; äã­ªæ¨ï 12:     á®®¡é¨âì á¨á⥬¥
23
        mov     eax,12                ; äã­ªæ¨ï 12:     á®®¡é¨âì á¨á⥬¥
14
        mov     ebx,1                 ; ¯®¤äã­ªæ¨ï 1,  ­ ç «® ¯¥à¥à¨á®¢ª¨
24
        mov     ebx,1                 ; ¯®¤äã­ªæ¨ï 1,  ­ ç «® ¯¥à¥à¨á®¢ª¨
15
        int     0x40
25
        int     0x40
16
                                      ; =====  ŽŠŽ !!!
26
                                      ; =====  ŽŠŽ !!!
17
        mov     eax,0                 ; äã­ªæ¨ï 0: ®¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠®ª­®
27
        mov     eax,0                 ; äã­ªæ¨ï 0: ®¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠®ª­®
18
        mov     ebx,100*65536+250     ; [x ­ ç «ì­ë©] *65536 + [x à §¬¥à]
28
        mov     ebx,100*65536+250     ; [x ­ ç «ì­ë©] *65536 + [x à §¬¥à]
Line 19... Line 29...
19
        mov     ecx,ebx  ;,100*65536+250     ; [y ­ ç «ì­ë©] *65536 + [y à §¬¥à]
29
        mov     ecx,ebx  ;,100*65536+250     ; [y ­ ç «ì­ë©] *65536 + [y à §¬¥à]
20
        mov     edx,0x02FFFFFF
30
        mov     edx, 0x34FFFFFF
21
 
-
 
22
        mov     esi,0x808899AA        ; 梥⠧ £®«®¢ª  RRGGBB
-
 
23
        mov     edi,0xFFAAcc          ; 梥â à ¬ª¨ RRGGBB
-
 
24
        int     0x40
-
 
25
                                      ; €„ˆ‘œ ¢ § £®«®¢ª¥ KOX v0.001
-
 
26
        mov     eax,4                 ; äã­ªæ¨ï 4: ­ ¯¨á âì ⥪áâ ¢ ®ª­¥
-
 
27
        mov     ebx,8*65536+8         ; [x ­ ç «ì­ë©] *65536 + [y ­ ç «ì­ë©]
-
 
28
        mov     ecx,0x00224422        ; 梥â ⥪áâ  RRGGBB
31
 
-
 
32
        mov     esi, 0x808899AA       ; 梥⠧ £®«®¢ª  RRGGBB
29
        mov     edx,text              ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
33
        mov     edi, caption          ; § £®«®¢®ª
30
        mov     esi,texts-text        ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
34
        int     0x40
31
        int     0x40
35
 
32
;-----------------------------------#-----------------------------------------
36
;-----------------------------------#-----------------------------------------
33
; SCENE OF GAME - PLAY YARD - BOARD - DESK - PLAYING FIELD
37
; SCENE OF GAME - PLAY YARD - BOARD - DESK - PLAYING FIELD
34
;---------------
38
;---------------
35
 playing_field                        ;macro in macs.inc
39
 playing_field                        ;macro in macs.inc
36
;-------------------------------------------------------------------------------
40
;-------------------------------------------------------------------------------
37
;                              ----ŠŽŠˆ----
-
 
38
;-------------------------------------------------------------------------------
-
 
39
;buttons:
-
 
40
        mov     eax,8                 ; äã­ªæ¨ï 8: ®¯à¥¤¥«¨âì ¨ ¢ë¢¥á⨠ª­®¯ªã
-
 
41
        mov     ebx,230*65536+12      ; [x ­ ç «ì­ë©] *65536 + [x à §¬¥à]
-
 
42
        mov     ecx,5*65536+12        ; [y ­ ç «ì­ë©] *65536 + [y à §¬¥à]
-
 
43
        mov     edx,100               ; ¨¤¥­â¨ä¨ª â®à ª­®¯ª¨  =100
-
 
44
        mov     esi,0xFF6611          ; 梥⠪­®¯ª¨ RRGGBB
41
;                              ----ŠŽŠˆ----
45
        int     0x40                  ; ===ŠŽŠ€ ‡€Š›’ˆŸ ŽŠ€===
42
;-------------------------------------------------------------------------------
46
;--------------------------------------------
43
;buttons:
47
        mov     eax,8                 ;
44
        mov     eax,8                 ;
48
        mov     ebx,200*65536+35 ;    ;
45
        mov     ebx,200*65536+35      ;
49
        mov     ecx,25*65536+20       ;
46
        mov     ecx,15*65536+20       ;
50
        mov     edx,200               ;== NEW GAME ==
47
        mov     edx,200               ;== NEW GAME ==
51
        mov     esi,0xCC66CC
48
        mov     esi, [colors+0x18]
52
        int     0x40
49
        int     0x40
53
;--------------------------------------------
50
;--------------------------------------------
54
        mov     eax,4                 ;  ­ ¯¨á âì ⥪áâ ­  ª­®¯ª¥ NEW
51
        mov     eax,4                 ;  ­ ¯¨á âì ⥪áâ ­  ª­®¯ª¥ NEW
55
        mov     ebx,210*65536+30
52
        mov     ebx,210*65536+20
56
        mov     ecx,cB
53
        mov     ecx,[colors+0x1C]
57
        mov     edx,textend
54
        mov     edx,textend
58
        mov     esi,3
55
        mov     esi,3
Line 86... Line 83...
86
        call    draw_window  ; ¢ë§ë¢ ¥¬ äã­ªæ¨î draw_window ¨
83
        call    draw_window  ; ¢ë§ë¢ ¥¬ äã­ªæ¨î draw_window ¨
87
        jmp     event_wait   ; ¢®§¢à é ¥¬áï ­ § ¤ ª 横«ã ®¦¨¤ ­¨ï
84
        jmp     event_wait   ; ¢®§¢à é ¥¬áï ­ § ¤ ª 横«ã ®¦¨¤ ­¨ï
88
key:
85
key:
89
        mov     eax,2        ; áç¨â뢠¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨. ‚®§¢à é¥­ ¢ ah.
86
        mov     eax,2        ; áç¨â뢠¥¬ ª®¤ ­ ¦ â®© ª« ¢¨è¨. ‚®§¢à é¥­ ¢ ah.
90
        int     0x40         ; Š« ¢¨è  ¤®«¦­  ¡ëâì ¯à®ç¨â ­  ¤«ï ®ç¨á⪨
87
        int     0x40         ; Š« ¢¨è  ¤®«¦­  ¡ëâì ¯à®ç¨â ­  ¤«ï ®ç¨á⪨
91
        cmp     ah,27
-
 
92
        je      clos0        ; exit on ESC
-
 
93
        jmp     event_wait   ; ¢®§¢à â ª event_wait
88
        jmp     event_wait   ; ¢®§¢à â ª event_wait
94
button:
89
button:
95
        mov     eax,17       ; áç¨â뢠¥¬ ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
90
        mov     eax,17       ; áç¨â뢠¥¬ ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
96
        int     0x40         ; ¢®§¢à é¥­ ¢ ah.
91
        int     0x40         ; ¢®§¢à é¥­ ¢ ah.
97
;-------------------------------------------------------------------------------
92
;-------------------------------------------------------------------------------
98
; ᬮâਬ, ª ª ï ª­®¯ª  ¡ë«  ­ ¦ â  ¨ ᮮ⢥âáâ¢ãî騬 ®¡à §®¬ ॠ£¨à㥬.
93
; ᬮâਬ, ª ª ï ª­®¯ª  ¡ë«  ­ ¦ â  ¨ ᮮ⢥âáâ¢ãî騬 ®¡à §®¬ ॠ£¨à㥬.
99
;-------------------------------------------------------------------------------
94
;-------------------------------------------------------------------------------
100
        cmp     ah,100         ; ª­®¯ª  á id=100("§ ªàëâì")?
95
        cmp     ah, 1          ; ª­®¯ª  á id=1 ("§ ªàëâì")?
101
        jne     noclose        ;
96
        jne     noclose        ;
102
  clos0:                       ;
97
  clos0:                       ;
103
        mov     eax,-1         ; äã­ªæ¨ï -1: § ¢¥àè¨âì ¯à®£à ¬¬ã
98
        mov     eax,-1         ; äã­ªæ¨ï -1: § ¢¥àè¨âì ¯à®£à ¬¬ã
104
        int     0x40           ;
99
        int     0x40           ;
105
  noclose:                     ; ª­®¯ª  id=200( "New" )
100
  noclose:                     ; ª­®¯ª  id=200( "New" )
Line 218... Line 213...
218
          cmp byte[xwin],1          ;ä« £ ¯®¡¥¤ë ãáâ ­®¢«¥­?
213
          cmp byte[xwin],1          ;ä« £ ¯®¡¥¤ë ãáâ ­®¢«¥­?
219
          jne del5                  ;­¥â - ¯¥à¥áª®ª ­  delay
214
          jne del5                  ;­¥â - ¯¥à¥áª®ª ­  delay
Line 220... Line 215...
220
 
215
 
221
        mov     eax,4                 ; äã­ª 4: ­ ¯¨á âì ⥪áâ 'WINNER!'
216
        mov     eax,4                 ; äã­ª 4: ­ ¯¨á âì ⥪áâ 'WINNER!'
222
        mov     ebx,18*65536+215      ; [x ­ ç] *65536 + [y ­ ç]
217
        mov     ebx,18*65536+215      ; [x ­ ç] *65536 + [y ­ ç]
223
        mov     ecx,0x10FF22FF        ; 梥â ⥪áâ  RRGGBB
218
        mov     ecx, [colors+0x20]    ; 梥â ⥪áâ  RRGGBB
224
        mov     edx,texts             ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
219
        mov     edx,texts             ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
225
        mov     esi,textend-texts     ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
220
        mov     esi,textend-texts     ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
226
        int     0x40                  ;
221
        int     0x40                  ;
Line 249... Line 244...
249
          jne @F                    ;­¥â - á«ãç ©­ë© 室 (㦥 ¢ esi)
244
          jne @F                    ;­¥â - á«ãç ©­ë© 室 (㦥 ¢ esi)
250
          mov esi,4                 ;¤   - 室¨¬ ¢ 業âà (4) ¢¬¥áâ® á«ãç.
245
          mov esi,4                 ;¤   - 室¨¬ ¢ 業âà (4) ¢¬¥áâ® á«ãç.
251
     @@:
246
     @@:
252
          mov dword[idx],esi        ;á®åà ­¨¬ ¢ idx
247
          mov dword[idx],esi        ;á®åà ­¨¬ ¢ idx
253
                                    ;esi=0..8 - index
248
                                    ;esi=0..8 - index
254
          call o_com                ;¯à®¢¥àª  24åê ª®¬¡¨­ æ¨© XX0
249
          call o_com                ;¯à®¢¥àª  24å ª®¬¡¨­ æ¨© XX0
255
          call x_com                ;¯à®¢¥àª  24åê ª®¬¡¨­ æ¨© 00*
250
          call x_com                ;¯à®¢¥àª  24å ª®¬¡¨­ æ¨© 00*
Line 256... Line 251...
256
 
251
 
257
          mov esi,dword[idx]        ;idx-¨­¤¥ªá ª«¥âª¨(0..8) ªã¤  室
252
          mov esi,dword[idx]        ;idx-¨­¤¥ªá ª«¥âª¨(0..8) ªã¤  室
258
          shl esi,2                 ; esi*4 - ¯®«¥ á®á⮨⠨§ § ¯¨á¥© ¯® dword
253
          shl esi,2                 ; esi*4 - ¯®«¥ á®á⮨⠨§ § ¯¨á¥© ¯® dword
259
          mov eax,dword[pole+esi]     ;
254
          mov eax,dword[pole+esi]     ;
Line 276... Line 271...
276
          cmp byte[owin],1
271
          cmp byte[owin],1
277
          jne event_wait
272
          jne event_wait
Line 278... Line 273...
278
 
273
 
279
        mov     eax,4                 ; äã­ª 4: ­ ¯¨á âì ⥪áâ 'LOOSER!'
274
        mov     eax,4                 ; äã­ª 4: ­ ¯¨á âì ⥪áâ 'LOOSER!'
280
        mov     ebx,48*65536+215      ; [x ­ ç] *65536 + [y ­ ç]
275
        mov     ebx,48*65536+215      ; [x ­ ç] *65536 + [y ­ ç]
281
        mov     ecx,0x10FF22FF        ; 梥â ⥪áâ  RRGGBB
276
        mov     ecx, [colors+0x20]    ; 梥â ⥪áâ  RRGGBB
282
        mov     edx,lootxt            ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
277
        mov     edx,lootxt            ; 㪠§ â¥«ì ­  ­ ç «® ⥪áâ 
283
        mov     esi,text-lootxt       ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
278
        mov     esi,text-lootxt       ; ¤«¨­  ⥪áâ  ¢ ¡ ©â å
284
        int     0x40                  ;
279
        int     0x40                  ;
285
        jmp   event_wait              ; ¢®§¢à é ¥¬áï ­ § ¤ ª 横«ã ®¦¨¤ ­¨ï
280
        jmp   event_wait              ; ¢®§¢à é ¥¬áï ­ § ¤ ª 横«ã ®¦¨¤ ­¨ï