Subversion Repositories Kolibri OS

Rev

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

Rev 1522 Rev 1566
Line 1... Line 1...
1
;;===Level_mode================================================================================================================
1
;;===Level_mode================================================================================================================
Line 2... Line 2...
2
 
2
 
Line 3... Line -...
3
Level_begin:
-
 
4
 
-
 
5
    mov  [score],   0
3
Level_begin:
6
    mov  [action],  0
-
 
7
    mov  eax,   [gw_mul_gh]
-
 
8
    sub  eax, 3
-
 
9
    mov  [number_of_free_dots], ax
-
 
10
 
-
 
11
      invoke  ini.get_str, cur_dir_path, aScore, aChampion_name, champion_name, 15, champion_name
-
 
12
      invoke  ini.get_int, cur_dir_path, aScore, aHiscore, 0
-
 
13
      
-
 
14
    test eax, eax
-
 
15
     jz  @f
-
 
16
    mov  dword  [hi_score],    eax
-
 
17
  @@:
-
 
18
 
-
 
19
    mov  esi, start_map
-
 
20
    mov  edi, field_map
-
 
21
    mov  ecx, [gw_mul_gh]
-
 
22
    shr  ecx, 2
-
 
23
    rep  movsd
4
 
Line 24... Line 5...
24
 
5
      call      Load_level
25
      call      Get_eat
6
      call      Get_eat
Line -... Line 7...
-
 
7
 
26
 
8
Level_body:
27
Level_body:
9
    ;;===Level_body========================================================================================================
28
    ;;===Level_body========================================================================================================
10
 
29
 
11
      call      Hide_cursor
Line 41... Line 23...
41
    shl  ecx, 16
23
    shl  ecx, 16
42
    add  ecx, dword[window_height]
24
    add  ecx, dword[window_height]
43
      mcall     0, , ,[window_style], ,window_title
25
      mcall     0, , ,[window_style], ,window_title
Line 44... Line 26...
44
    
26
    
-
 
27
      call      Draw_decorations
45
      call      Draw_decorations
28
      call      Draw_stones
46
      call      Draw_snake
29
      call      Draw_snake
47
      call      Draw_eat
30
      call      Draw_eat
Line 48... Line 31...
48
      call      Draw_level_strings
31
      call      Draw_level_strings
Line 80... Line 63...
80
         jz  .key                               ; 
63
         jz  .key                               ; 
81
        dec  al                                 ; was a button pressed?
64
        dec  al                                 ; was a button pressed?
82
         jz  .button                            ; 
65
         jz  .button                            ; 
Line -... Line 66...
-
 
66
 
-
 
67
 
-
 
68
  .button:                                      ; ¯à®æ¥¤ãà  ®¡à ¡®ª¨ ª­®¯®ª ¢ ¯à®£à ¬¬¥
-
 
69
      mcall     17                              ; äã­ªæ¨ï 17: ¯®«ãç¨âì ­®¬¥à ­ ¦ â®© ª­®¯ª¨
-
 
70
 
-
 
71
    shr  eax, 8                                 ; ᤢ¨£ ¥¬ ॣ¨áâà eax ­  8 ¡¨â ¢¯à ¢®, çâ®¡ë ¯®«ãç¨âì ­®¬¥à ­ ¦ â®© ª­®¯ª¨
-
 
72
    cmp  eax, 1
-
 
73
     je  Save_do_smth_else_and_exit             ; ¥á«¨ íâ® ­¥ ª­®¯ª  1 (§ à¥§¥à¢¨à®¢ ­  á¨á⥬®© ª ª ª­®¯ª  § ªàëâ¨ï ¯à®£à ¬¬ë), ¯à®¯ã᪠¥¬ 2 á«¥¤ãî騥 áâà®çª¨ ª®¤ 
-
 
74
 
-
 
75
     jmp .still
83
 
76
 
84
 
77
 
Line 85... Line 78...
85
  .key:
78
  .key:
86
      mcall     2                               ; get keycode
79
      mcall     2                               ; get keycode
Line 99... Line 92...
99
     je  .key.right
92
     je  .key.right
Line 100... Line 93...
100
    
93
    
Line 101... Line -...
101
     jmp .still                                 ; jump to wait for another event
-
 
102
 
-
 
103
 
-
 
104
  .button:                                       ; ¯à®æ¥¤ãà  ®¡à ¡®ª¨ ª­®¯®ª ¢ ¯à®£à ¬¬¥
-
 
105
      mcall     17                              ; äã­ªæ¨ï 17: ¯®«ãç¨âì ­®¬¥à ­ ¦ â®© ª­®¯ª¨
-
 
106
 
-
 
107
    shr  eax, 8                                 ; ᤢ¨£ ¥¬ ॣ¨áâà eax ­  8 ¡¨â ¢¯à ¢®, çâ®¡ë ¯®«ãç¨âì ­®¬¥à ­ ¦ â®© ª­®¯ª¨
-
 
108
    cmp  eax, 1
-
 
109
     je  Exit                                   ; ¥á«¨ íâ® ­¥ ª­®¯ª  1 (§ à¥§¥à¢¨à®¢ ­  á¨á⥬®© ª ª ª­®¯ª  § ªàëâ¨ï ¯à®£à ¬¬ë), ¯à®¯ã᪠¥¬ 2 á«¥¤ãî騥 áâà®çª¨ ª®¤ 
-
 
110
 
-
 
111
     jmp .still
94
     jmp .still                                 ; jump to wait for another event
112
 
95
 
113
 
96
 
114
  .key.left:
97
  .key.left:
115
    bts  dword[action], 0
98
    bts  [action],  0
116
     jc  @f
99
     jc  @f
117
    mov  [time_to_wait],    0
100
    mov  [time_to_wait],    0
Line 118... Line 101...
118
  @@:
101
  @@:
119
    mov  [snake_napravlenie_next],  LEFT
102
    mov  [snake_direction_next],    LEFT
120
     jmp .still
103
     jmp .still
121
            
104
            
122
  .key.down:
105
  .key.down:
123
    bts  dword[action], 0
106
    bts  [action],  0
124
     jc  @f
107
     jc  @f
Line 125... Line 108...
125
    mov  [time_to_wait],    0
108
    mov  [time_to_wait],    0
126
  @@:
109
  @@:
127
    mov  [snake_napravlenie_next],  DOWN
110
    mov  [snake_direction_next],    DOWN
128
     jmp .still
111
     jmp .still
129
            
112
            
130
  .key.up:
113
  .key.up:
131
    bts  dword[action], 0
114
    bts  [action],  0
Line 132... Line 115...
132
     jc  @f
115
     jc  @f
133
    mov  [time_to_wait],    0
116
    mov  [time_to_wait],    0
134
  @@:
117
  @@:
135
    mov  [snake_napravlenie_next],  UP
118
    mov  [snake_direction_next],    UP
136
     jmp .still
119
     jmp .still
137
            
120
            
138
  .key.right:
121
  .key.right:
Line 139... Line 122...
139
    bts  dword[action], 0
122
    bts  [action],  0
Line 140... Line 123...
140
     jc  @f
123
     jc  @f
141
    mov  [time_to_wait],    0
124
    mov  [time_to_wait],    0
142
  @@:
125
  @@:
143
    mov  [snake_napravlenie_next],  RIGHT
126
    mov  [snake_direction_next],    RIGHT
144
     jmp .still
127
     jmp .still
145
 
128
 
146
 
129
 
Line 147... Line 130...
147
  Game_step:
130
  Game_step:
148
 
131
 
149
    cmp  [snake_napravlenie],   LEFT            ; are we moving to left?
132
    cmp  [snake_direction], LEFT                ; are we moving to left?
150
     jz  .left
133
     jz  .left
Line 151... Line 134...
151
    cmp  [snake_napravlenie],   DOWN            ; ... down?
134
    cmp  [snake_direction], DOWN                ; ... down?
152
     jz  .down
135
     jz  .down
153
    cmp  [snake_napravlenie],   UP              ; ... up?
136
    cmp  [snake_direction], UP                  ; ... up?
154
     jz  .up
137
     jz  .up
Line 155... Line 138...
155
     jmp .right                                 ; then right
138
     jmp .right                                 ; then right
156
     
139
     
157
  .left:
140
  .left:
158
    cmp  [snake_napravlenie_next],  RIGHT       ; next step is to right?
141
    cmp  [snake_direction_next],    RIGHT       ; next step is to right?
Line 159... Line 142...
159
     jz  .with_rewerse
142
     jz  .with_reverse
160
     jmp .without_rewerse
143
     jmp .without_reverse
161
  
144
  
162
  .down:
145
  .down:
Line 163... Line 146...
163
    cmp  [snake_napravlenie_next],  UP          ; next step is to up?
146
    cmp  [snake_direction_next],    UP          ; next step is to up?
164
     jz  .with_rewerse
147
     jz  .with_reverse
165
     jmp .without_rewerse
148
     jmp .without_reverse
Line 166... Line 149...
166
     
149
     
167
  .up:
-
 
168
    cmp  [snake_napravlenie_next],  DOWN        ; next step is to bottom?
150
  .up:
169
     jz  .with_rewerse
151
    cmp  [snake_direction_next],    DOWN        ; next step is to bottom?
Line 170... Line 152...
170
     jmp .without_rewerse
152
     jz  .with_reverse
171
 
153
     jmp .without_reverse
172
  .right:
154
 
173
    cmp  [snake_napravlenie_next],  LEFT        ; next step is to left?
155
  .right:
174
     jz  .with_rewerse
156
    cmp  [snake_direction_next],    LEFT        ; next step is to left?
175
     jmp .without_rewerse
157
     jz  .with_reverse
176
 
158
     jmp .without_reverse
177
 
159
 
Line 178... Line 160...
178
  .with_rewerse:
160
 
179
      call      Set_reverse_napravlenie
161
  .with_reverse:
180
      call      Reverse
162
      call      Set_reverse_direction
181
        
163
      call      Reverse
182
  .without_rewerse:
164
        
183
;    mov  [time_to_wait],   0
165
  .without_reverse:
184
    mov  edx, snake_dots-2
166
    mov  edx, snake_dots-2
185
    add  edx, [snake_length_x2]
167
    add  edx, [snake_length_x2]
186
        
168
        
187
    cmp  [snake_napravlenie_next],  LEFT
169
    cmp  [snake_direction_next],    LEFT
Line 188... Line 170...
188
     je  .to_left
170
     je  .to_left
189
    cmp  [snake_napravlenie_next],  DOWN
171
    cmp  [snake_direction_next],    DOWN
190
     je  .to_down 
172
     je  .to_down 
191
    cmp  [snake_napravlenie_next],  UP
173
    cmp  [snake_direction_next],    UP
192
     je  .to_up
174
     je  .to_up
193
    cmp  [snake_napravlenie_next],  RIGHT
175
    cmp  [snake_direction_next],    RIGHT
194
     je  .to_right    
176
     je  .to_right    
195
        
177
        
196
      .to_left:
178
      .to_left:
Line 197... Line 179...
197
        mov  [snake_napravlenie],   LEFT
179
        mov  [snake_direction], LEFT
198
        mov  ax,  [edx]
180
        mov  ax,  [edx]
199
        dec  al
181
        dec  al
200
        cmp  al,  -1
182
        cmp  al,  -1
201
         jne @f
183
         jne @f
202
        mov  al,  byte[g_w]
184
        mov  al,  GRID_WIDTH
203
        dec  al
185
        dec  al
204
      @@:
186
      @@:
205
         jmp Snake_move
187
         jmp Snake_move
206
 
188
 
Line 207... Line 189...
207
      .to_down:
189
      .to_down:
208
        mov  [snake_napravlenie],   DOWN
190
        mov  [snake_direction], DOWN
209
        mov  ax,  [edx]
191
        mov  ax,  [edx]
210
        inc  ah
192
        inc  ah
211
        cmp  ah,  byte[g_h]
193
        cmp  ah,  GRID_HEIGHT
212
         jne @f
194
         jne @f
213
        mov  ah,  0
195
        mov  ah,  0
214
      @@:
196
      @@:
215
         jmp Snake_move
197
         jmp Snake_move
Line 283... Line 265...
283
Draw_level_strings:
265
Draw_level_strings:
284
    ;;===Draw_level_strings================================================================================================
266
    ;;===Draw_level_strings================================================================================================
Line 285... Line 267...
285
 
267
 
286
    mov  ebx, [window_width]
268
    mov  ebx, [window_width]
287
    shr  ebx, 1
269
    shr  ebx, 1
288
    sub  ebx, (string_resume_space-string_pause_space-1)*3+6
270
    sub  ebx, string_pause_space.size*3+6
289
    shl  ebx, 16
271
    shl  ebx, 16
290
    add  ebx, [top_strings]
272
    add  ebx, [top_strings]
Line 291... Line 273...
291
      mcall     4, ,[navigation_strings_color],string_pause_space ; Draw 'PAUSE - SPACE' string
273
      mcall     4, ,[navigation_strings_color],string_pause_space ; Draw 'PAUSE - SPACE' string
Line 296... Line 278...
296
    call    Draw_champion_string
278
    call    Draw_champion_string
297
    call    Draw_champion_name
279
    call    Draw_champion_name
298
    call    Draw_hiscore_string
280
    call    Draw_hiscore_string
299
    call    Draw_hiscore_number
281
    call    Draw_hiscore_number
Line -... Line 282...
-
 
282
 
-
 
283
    cmp  [play_mode],   LEVELS_MODE
-
 
284
     jne @f
-
 
285
 
-
 
286
    mov  ebx, [window_width]
-
 
287
    shr  ebx, 3
-
 
288
    sub  ebx, 5
-
 
289
    shl  ebx, 16
-
 
290
    add  ebx, [bottom_bottom_strings]
-
 
291
      mcall     4, ,[level_string_color],string_level
-
 
292
 
-
 
293
    mov  edx, [window_width]
-
 
294
    shr  edx, 3
-
 
295
    sub  edx, 5+1
-
 
296
    add  edx, string_level.size*6
-
 
297
    shl  edx, 16
-
 
298
    add  edx, [bottom_bottom_strings]
-
 
299
      mcall     47,0x00020000,[cur_level_number], ,[level_number_color],[background_color]
-
 
300
 
-
 
301
  @@:
300
 
302
 
Line 301... Line 303...
301
    ret
303
    ret
Line 366... Line 368...
366
     jmp .loop
368
     jmp .loop
Line 367... Line 369...
367
     
369
     
368
  .place_found:
370
  .place_found:
369
    sub  ebx, field_map
371
    sub  ebx, field_map
370
    mov  eax, ebx
372
    mov  eax, ebx
371
    mov  bl,  byte[g_w]
373
    mov  bl,  GRID_WIDTH
372
    div  bl
374
    div  bl
Line 373... Line 375...
373
    xchg al,  ah
375
    xchg al,  ah
Line 393... Line 395...
393
    ret
395
    ret
Line 394... Line 396...
394
 
396
 
Line 395... Line 397...
395
    ;;---Sdvig-------------------------------------------------------------------------------------------------------------
397
    ;;---Sdvig-------------------------------------------------------------------------------------------------------------
396
 
398
 
Line 397... Line 399...
397
 
399
 
398
Set_reverse_napravlenie:
400
Set_reverse_direction:
Line 399... Line 401...
399
    ;;===Set_reverse_napravlenie===========================================================================================
401
    ;;===Set_reverse_direction==================================================================================================
Line 408... Line 410...
408
     je  .X_ravny
410
     je  .X_ravny
Line 409... Line 411...
409
    
411
    
410
    cmp  cl,  0
412
    cmp  cl,  0
Line 411... Line 413...
411
     jne .skip2
413
     jne .skip2
412
    
414
    
413
    mov  dl,  byte[g_w]
415
    mov  dl,  GRID_WIDTH
414
    dec  dl
416
    dec  dl
415
    cmp  ch,  dl
417
    cmp  ch,  dl
416
     jne .Normal_y_ravny
418
     jne .Normal_y_ravny
Line 417... Line 419...
417
    mov  [snake_napravlenie_next],  RIGHT
419
    mov  [snake_direction_next],    RIGHT
418
    ret
420
    ret
419
        
421
        
420
  .skip2:
422
  .skip2:
421
    mov  dl,  byte[g_w]
423
    mov  dl,  GRID_WIDTH
422
    dec  dl
424
    dec  dl
423
    cmp  cl,  dl
425
    cmp  cl,  dl
424
     jne .Normal_y_ravny
426
     jne .Normal_y_ravny
425
    cmp  ch,  0
427
    cmp  ch,  0
Line 426... Line 428...
426
     jne .Normal_y_ravny
428
     jne .Normal_y_ravny
Line 427... Line 429...
427
    mov  [snake_napravlenie_next],  LEFT
429
    mov  [snake_direction_next],    LEFT
428
    ret
430
    ret
429
    
431
    
430
  .Normal_y_ravny:
432
  .Normal_y_ravny:
Line 431... Line 433...
431
 
433
 
432
    cmp  cl,  ch
434
    cmp  cl,  ch
433
     jg  .Napravlenie_to_right
435
     jg  .Napravlenie_to_right
Line 434... Line 436...
434
    mov  [snake_napravlenie_next],  LEFT
436
    mov  [snake_direction_next],    LEFT
435
    ret
437
    ret
436
 
438
 
Line 445... Line 447...
445
    mov  ch,  [ebx]
447
    mov  ch,  [ebx]
Line 446... Line 448...
446
    
448
    
447
    cmp  cl,  0
449
    cmp  cl,  0
Line 448... Line 450...
448
     jne .skip3
450
     jne .skip3
449
    
451
    
450
    mov  dl,  byte[g_h]
452
    mov  dl,  GRID_HEIGHT
451
    dec  dl
453
    dec  dl
452
    cmp  ch,  dl
454
    cmp  ch,  dl
453
     jne .Normal_x_ravny
455
     jne .Normal_x_ravny
Line 454... Line 456...
454
    mov  [snake_napravlenie_next],  DOWN
456
    mov  [snake_direction_next],    DOWN
455
    ret
457
    ret
456
        
458
        
457
  .skip3:
459
  .skip3:
458
    mov  dl,  byte[g_h]
460
    mov  dl,  GRID_HEIGHT
459
    dec  dl
461
    dec  dl
460
    cmp  ch,  dl
462
    cmp  ch,  dl
461
     jne .Normal_x_ravny
463
     jne .Normal_x_ravny
462
    cmp  ch,  0
464
    cmp  ch,  0
Line 463... Line 465...
463
     jne .Normal_x_ravny
465
     jne .Normal_x_ravny
Line 464... Line 466...
464
    mov  [snake_napravlenie_next],  UP
466
    mov  [snake_direction_next],    UP
465
    ret
467
    ret
466
    
468
    
467
  .Normal_x_ravny:
469
  .Normal_x_ravny:
468
 
470
 
469
    cmp  cl,  ch                                ; !!!
471
    cmp  cl,  ch                                ; !!!
470
     jg  .Napravlenie_to_down                   ; 0 1 2 ...
472
     jg  .Napravlenie_to_down                   ; 0 1 2 ...
Line 471... Line 473...
471
    mov  [snake_napravlenie_next],  UP          ; 1
473
    mov  [snake_direction_next],    UP          ; 1
Line 472... Line 474...
472
    ret                                         ; 2
474
    ret                                         ; 2
Line 473... Line 475...
473
                                                ; .
475
                                                ; .
474
  .Napravlenie_to_down:                         ; .
476
  .Napravlenie_to_down:                         ; .
475
    mov  [snake_napravlenie_next],  DOWN        ; .
477
    mov  [snake_direction_next],    DOWN        ; .
476
 
478
 
477
    ret
479
    ret
478
 
480
 
Line 491... Line 493...
491
    cmp  ax,  word[eat]
493
    cmp  ax,  word[eat]
492
     jne .eat_and_new_head_are_different
494
     jne .eat_and_new_head_are_different
Line 493... Line 495...
493
 
495
 
494
    add  [snake_length_x2], 2
496
    add  [snake_length_x2], 2
495
    add  [score],   SCORE_EAT
497
    add  [score],   SCORE_EAT
496
    dec  word[number_of_free_dots]
498
    dec  [number_of_free_dots]
497
    cmp  word[number_of_free_dots], 0
499
    cmp  [number_of_free_dots], 0
498
     je  Game_over
500
     je  Game_over
499
    mov  ax,  word[eat]
501
    mov  ax,  word[eat]
500
    mov  cl,  1
502
    mov  cl,  1
501
      call      Draw_on_map
503
      call      Draw_on_map
Line 537... Line 539...
537
    cmp  [score],   0
539
    cmp  [score],   0
538
     je  @f
540
     je  @f
539
    dec  [score]
541
    dec  [score]
540
      call      Draw_score_number
542
      call      Draw_score_number
541
  @@:
543
  @@:
-
 
544
 
-
 
545
    cmp  [play_mode],   LEVELS_MODE
-
 
546
     jne @f
-
 
547
    cmp  [snake_length_x2], (EAT_TO_END_LEVEL+3)*2
-
 
548
     je  Do_smth_between_levels
-
 
549
  @@:
-
 
550
 
542
      mcall     26, 9
551
      mcall     26, 9
543
    mov  [time_before_waiting], eax
552
    mov  [time_before_waiting], eax
544
    mov  eax, [time_wait_limit]
553
    mov  eax, [time_wait_limit]
545
    mov  [time_to_wait],    eax
554
    mov  [time_to_wait],    eax
546
     jmp Level_body.still
555
     jmp Level_body.still
Line 547... Line 556...
547
 
556
 
Line -... Line 557...
-
 
557
    ;;---Snake_move------------------------------------------------------------------------------------------------------------
-
 
558
 
-
 
559
 
-
 
560
Do_smth_between_levels:
-
 
561
    ;;===Do_smth_between_levels================================================================================================
-
 
562
 
-
 
563
    inc  [cur_level_number]
-
 
564
    cmp  [cur_level_number],    LAST_LEVEL_NUMBER+1
-
 
565
     jne @f
-
 
566
    mov  [cur_level_number],    LEVELS_MODE_FIRST_LEVEL
-
 
567
  @@:
-
 
568
 
-
 
569
      call      Draw_splash
-
 
570
 
-
 
571
  @@:
-
 
572
      mcall     2
-
 
573
    cmp  eax, 1
-
 
574
     jne @b
-
 
575
 
-
 
576
     jmp Level_begin
-
 
577
 
-
 
578
    ;;---Do_smth_between_levels------------------------------------------------------------------------------------------------
-
 
579
 
-
 
580
 
-
 
581
Draw_splash:
-
 
582
    ;;===Draw_splash===========================================================================================================
-
 
583
 
-
 
584
    mov  al,  0
-
 
585
    mov  cl,  GRID_WIDTH-1
-
 
586
    mov  edx, [splash_background_color]
-
 
587
 
-
 
588
  .draw:
-
 
589
    mov  bh,  GRID_HEIGHT-1
-
 
590
    mov  bl,  al
-
 
591
  @@:
-
 
592
      call      Draw_square
-
 
593
    sub  bh,  2
-
 
594
    cmp  bh,  0
-
 
595
     jg  @b
-
 
596
    
-
 
597
    inc  al
-
 
598
    
-
 
599
    mov  bh,  GRID_HEIGHT-2
-
 
600
    mov  bl,  cl
-
 
601
  @@:
-
 
602
      call      Draw_square
-
 
603
    sub  bh,  2
-
 
604
    cmp  bh,  0
-
 
605
     jnl @b
-
 
606
 
-
 
607
    dec  cl
-
 
608
    cmp  cl,  0
-
 
609
     jl  @f
-
 
610
 
-
 
611
    push eax ebx
-
 
612
      mcall     5,PAUSE_WHILE_DRAWING_SPLASH
-
 
613
    pop  ebx eax
-
 
614
 
-
 
615
     jmp .draw
-
 
616
  @@:
-
 
617
 
-
 
618
    
-
 
619
 
-
 
620
    mov  ax,  2*0x100+24
-
 
621
    mov  cx,  1*0x100+5
-
 
622
    mov  edx, [splash_level_string_color]
-
 
623
    mov  esi, picture_level
-
 
624
      call      Draw_picture
-
 
625
 
-
 
626
    mov  eax, [cur_level_number]
-
 
627
    mov  dl,  10
-
 
628
    div  dl
-
 
629
    push ax
-
 
630
    
-
 
631
    mov  esi, digits_font
-
 
632
  @@:
-
 
633
    test al,  al
-
 
634
     jz  @f
-
 
635
    add  esi, 20
-
 
636
    dec  al
-
 
637
     jmp @b
-
 
638
  @@:
-
 
639
    
-
 
640
    mov  ax,  9*0x100+4
-
 
641
    mov  cx,  8*0x100+5
-
 
642
    mov  edx, [splash_level_number_color]
-
 
643
      call      Draw_picture
-
 
644
    
-
 
645
    pop  ax
-
 
646
    mov  esi, digits_font
-
 
647
  @@:
-
 
648
    test ah,  ah
-
 
649
     jz  @f
-
 
650
    add  esi, 20
-
 
651
    dec  ah
-
 
652
     jmp @b
-
 
653
  @@:
-
 
654
 
-
 
655
    mov  ax,  15*0x100+4
-
 
656
    mov  cx,  8*0x100+5
-
 
657
    mov  edx, [splash_level_number_color]
-
 
658
      call      Draw_picture
-
 
659
 
-
 
660
      mcall     5,PAUSE_BETWEEN_LEVELS
-
 
661
 
-
 
662
    ret
-
 
663
 
-
 
664
    ;;---Draw_splash-----------------------------------------------------------------------------------------------------------
548
    ;;---Snake_move------------------------------------------------------------------------------------------------------------
665
 
549
 
666