Subversion Repositories Kolibri OS

Rev

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

Rev 2752 Rev 9971
Line 6... Line 6...
6
   
6
   
Line 7... Line 7...
7
use32
7
use32
Line 8... Line 8...
8
   
8
   
9
           org     0x0
9
           org     0x0
10
   
10
 
11
           db      'MENUET00'           ; 8 byte id
11
           db     'MENUET01'             ; header
12
           dd      38                   ; required os
12
           dd     1                      ; version
13
           dd      START                ; program start
13
           dd     START                  ; program start
-
 
14
           dd     I_END                  ; image size
-
 
15
           dd     MEM                    ; size memory program
14
           dd      I_END                ; image size
16
           dd     STACKTOP               ; pointer to begin stack pos
-
 
17
           dd     0
-
 
18
           dd     0
-
 
19
   
-
 
20
res_base        = loadp + 0x36 ; offset on array pixel in BMP file
-
 
21
res_width_px    = 150
15
           dd      0x100000             ; reguired amount of memory
22
res_height_px   = 35
-
 
23
res_line_size   = (res_width_px*3 + 11b) and not 11b ; 150*3 + 2
16
           dd      0x00000000           ; reserved=no extended header
24
 
17
   
25
 
18
   
26
block_width     = 40
-
 
27
block_height    = 40
19
empty        equ    0x80000  + 0*3*40*40
28
block_line_size = block_width * 3
20
build_1      equ    0x80000  + 1*3*40*40
29
block_img_size  = block_width * block_height * 3
21
build_2      equ    0x80000  + 2*3*40*40
30
block_draw_size = (block_width shl 16) + block_height ; for sysfn 7
22
build_3      equ    0x80000  + 3*3*40*40
31
block_count_pixel = block_width * block_height
23
   
32
 
24
mario_1      equ    0x90000  + 0*3*70*51
33
mario_width     = 50
25
mario_2      equ    0x90000  + 1*3*70*51
34
mario_height    = 70
26
mario_3      equ    0x90000  + 2*3*70*51
35
mario_line_size = mario_width * 3
-
 
36
mario_img_size  = mario_width * mario_height * 3
-
 
37
mario_draw_size = (mario_width shl 16) + mario_height
-
 
38
mario_count_pixel = mario_width * mario_height
-
 
39
 
-
 
40
 
-
 
41
wnd_pos_x       = 80
27
mario_4      equ    0x90000  + 3*3*70*51
42
wnd_pos_y       = 20
28
mario_5      equ    0x90000  + 4*3*70*51
43
 
Line 29... Line 44...
29
mario_6      equ    0x90000  + 5*3*70*51
44
wnd_header_size = 0x16
Line 44... Line 59...
44
   
59
   
Line 45... Line 60...
45
   
60
   
46
sta:
-
 
47
   
61
sta:
Line 48... Line 62...
48
    mov  eax,field
62
   
Line 49... Line 63...
49
    mov  edx,1*65526+30
63
    mov  eax,field
50
    mov  [xxyy],dword 1*65536+22
64
    mov  dword[xxyy], 1*65536 + wnd_header_size
51
   
65
   
52
  stl:
66
  stl:
Line 53... Line 67...
53
   
67
   
54
    cmp  [eax],byte ' '
68
    cmp  byte[eax], ' '
55
    jnz  noempty
69
    jnz  @f
56
    mov  ebx,empty
70
    mov  ebx,empty
Line 57... Line 71...
57
  noempty:
71
  @@:
58
   
72
   
59
    cmp  [eax],byte '1'
73
    cmp  byte[eax], '1'
60
    jnz  no1
74
    jnz  @f
Line 61... Line 75...
61
    mov  ebx,build_1
75
    mov  ebx,build_1
62
  no1:
76
  @@:
63
   
77
   
64
    cmp  [eax],byte '2'
78
    cmp  byte[eax], '2'
Line 65... Line 79...
65
    jnz  no2
79
    jnz  @f
Line 66... Line 80...
66
    mov  ebx,build_2
80
    mov  ebx,build_2
Line 67... Line 81...
67
  no2:
81
  @@:
68
   
82
   
69
    cmp  [eax],byte '3'
83
    cmp  byte[eax], '3'
Line 70... Line 84...
70
    jnz  no3
84
    jnz  @f
Line 71... Line 85...
71
    mov  ebx,build_3
85
    mov  ebx,build_3
72
  no3:
86
  @@:
73
   
87
   
74
    pusha
-
 
75
   
-
 
76
    mov  edx,[xxyy]
-
 
77
   
-
 
78
    mov  eax,7           ; display image
-
 
79
    mov  ecx,40*65536+40
-
 
80
    int  0x40
-
 
81
   
-
 
Line -... Line 88...
-
 
88
    pusha
-
 
89
   
82
    popa
90
    mov  edx,[xxyy]
Line -... Line 91...
-
 
91
   
-
 
92
    mov  eax,7           ; display image
-
 
93
    mov  ecx, block_draw_size
Line 83... Line 94...
83
   
94
    int  0x40
Line 84... Line 95...
84
    add  word [xxyy+2],word 40
95
   
Line 85... Line 96...
85
    cmp  word [xxyy+2],word 40*12+1
96
    popa
Line 86... Line 97...
86
    jnz  nonewline
97
   
87
    mov  word [xxyy+2],word 1
98
    add  word [xxyy+2], block_width
-
 
99
    cmp  word [xxyy+2], block_width*12+1
88
    add  word [xxyy+0],word 40
100
    jnz  .nonewline
89
  nonewline:
101
 
90
   
102
    mov  word [xxyy+2], 1
91
    add  eax,1
103
    add  word [xxyy+0], block_height
92
    cmp  eax,field+12*9
104
  .nonewline:
93
    jz   nodraw
105
   
Line -... Line 106...
-
 
106
    add  eax,1
94
    jmp  stl
107
    cmp  eax, field.end
Line 95... Line 108...
95
   
108
    jnz   stl
Line 96... Line 109...
96
  nodraw:
109
   
Line 126... Line 139...
126
    mov  [mariomem],dword 0x0
139
    mov  [mariomem],dword 0x0
Line 127... Line 140...
127
 
140
 
128
    mov  eax,2   ; ah <- key
141
    mov  eax,2   ; ah <- key
Line 129... Line 142...
129
    int  0x40
142
    int  0x40
130
   
143
   
131
    cmp  ah,176
144
    cmp  ah,176   ; 'left'
132
    jnz  key1
145
    jnz  key1
Line 133... Line 146...
133
    mov  byte [leftright],byte 1
146
    mov  byte [leftright],byte 1
134
  key1:
147
  key1:
135
   
148
   
136
    cmp  ah,179
149
    cmp  ah,179   ; 'right'
Line 137... Line 150...
137
    jnz  key2
150
    jnz  key2
138
    mov  byte [leftright],byte 4
151
    mov  byte [leftright],byte 4
139
  key2:
152
  key2:
140
   
153
   
141
    cmp  ah,177
154
    cmp  ah,177   ; 'down'
142
    jnz  key3
155
    jnz  key3
Line 151... Line 164...
151
    mov  bl,3
164
    mov  bl,3
152
  key32:
165
  key32:
153
    mov  byte [leftright],bl
166
    mov  byte [leftright],bl
154
  key3:
167
  key3:
Line 155... Line 168...
155
   
168
   
156
    cmp  ah,178
169
    cmp  ah,178   ; 'up'
157
    jnz  key4
170
    jnz  key4
158
    cmp  [velocity],dword 0xff
171
    cmp  [velocity],dword 0xff
159
    jnz  key4
172
    jnz  key4
160
    mov  [velocity],dword 0x110
173
    mov  [velocity],dword 0x110
Line -... Line 174...
-
 
174
  key4:
161
  key4:
175
        
162
   
176
        ; this code using for fix defects drawing(draw in caption area)
163
	mov eax,71					;draw caption
177
        mov eax,71                                  ;draw caption
164
	mov ebx,1
178
        mov ebx,1
Line 165... Line 179...
165
	mov ecx,title
179
        mov ecx,title
Line 166... Line 180...
166
	int 0x40
180
        int 0x40
Line 167... Line -...
167
	
-
 
168
	jmp sta						;draw field
-
 
169
	
-
 
170
    ;jmp  wait_for_event
-
 
171
   
-
 
172
  button:
-
 
173
   
181
 
Line 174... Line 182...
174
    mov  eax,0xffffffff          ; close this program
182
    jmp sta                                         ;draw field
Line 175... Line -...
175
    int  0x40
-
 
176
   
-
 
177
   
-
 
178
load_graph:
-
 
179
   
-
 
180
    pusha
183
        
181
   
-
 
182
    mov  eax,6        ; 6 = open file
-
 
183
    mov  ebx,filename
-
 
184
    mov  ecx,0
-
 
185
    mov  edx,0xFFFFFF
184
    ;jmp  wait_for_event
186
    mov  esi,loadp
185
   
187
    mov  edi,0                     ; floppy
186
load_graph:
188
    int  0x40
187
   
189
   
188
    pusha
190
    ; empty
189
   
191
   
190
    ; empty block init  - set in 0x00500f color
192
    mov  edi,empty
191
    mov  edi,empty
Line 193... Line 192...
193
    mov  ecx,40*40
192
    mov  ecx, block_count_pixel
194
    mov  eax,0x00500f
193
    mov  eax,0x00500f
195
    cld
194
    cld
196
  emptyl:
-
 
197
    mov  [edi],eax
195
  @@:
198
    add  edi,3
196
    mov  [edi],eax
Line 199... Line 197...
199
    loop emptyl
197
    add  edi, 3
200
   
198
    loop @b
201
    mov  [width],40*3
199
   
Line 214... Line 212...
214
    call convert
212
    call convert
Line 215... Line 213...
215
   
213
   
216
   
-
 
217
   
214
   
218
    ; build_3
215
   
219
   
216
    ; build_3
220
    mov  edi,build_3
217
    mov  edi,build_3
221
    mov  esi,loadp+18*3+230*3+3*300*69
218
    mov  esi, res_base + 230*3+3*300*69
222
    mov  ecx,40
219
    mov  ecx, block_height
223
  build_3l:
220
  build_3l:
224
    pusha
221
    pusha
225
    mov  ecx,3*40
222
    mov  ecx, block_line_size
226
    cld
223
    cld
227
    rep  movsb
224
    rep  movsb
228
    popa
225
    popa
Line 229... Line 226...
229
    sub  esi,300*3
226
    sub  esi,300*3
230
    add  edi,40*3
227
    add  edi, block_line_size
231
    loop build_3l
228
    loop build_3l
232
   
-
 
233
    mov  [width],50*3
229
   
234
    mov  [width_move],25
230
    mov  [width], mario_line_size
Line 235... Line 231...
235
    mov  [sub_esi],150*3+2
231
    mov  [width_move], mario_width/2
236
    mov  [add_edi],50*3*2
232
    mov  [height_move], mario_height/2
237
    mov  [imul_esi],25*3
233
    mov  [imul_esi],25*3
Line 250... Line 246...
250
    call convert
246
    call convert
Line 251... Line 247...
251
   
247
   
Line -... Line 248...
-
 
248
    jmp  mario_mirror
252
    jmp  mario_mirror
249
   
Line 253... Line 250...
253
   
250
   
254
   
251
; copy in [edi], image x2
Line 255... Line 252...
255
convert:
252
convert:
-
 
253
   
-
 
254
    imul esi,[imul_esi]
-
 
255
    add  esi,[base] ; loadp+18*3+3*150*34+68
256
   
256
   
257
    imul esi,[imul_esi]
257
    mov  eax, [width]
258
    add  esi,[base] ; loadp+18*3+3*150*34+68
258
    shl  eax, 1 ; *2
259
   
259
    mov  ecx, [height_move]      ;?
-
 
260
 
260
    mov  ecx,70
261
  .new_line:
261
  mario_1l:
262
    pusha
262
    pusha
263
    mov  ecx,[width_move]
263
    mov  ecx,[width_move]
264
 
264
  putpix:
265
  .putpix: ; set 4 pixel: edi, edi+3, edi+width, edi+width+3
Line 276... Line 277...
276
    mov  [edi+05],al
277
    mov  [edi+05],al
277
    add  ebx,3
278
    add  ebx,3
278
    mov  [edi+ebx],al
279
    mov  [edi+ebx],al
279
    add  esi,3
280
    add  esi,3
280
    add  edi,6
281
    add  edi,6
281
    loop putpix
282
    loop .putpix
282
    popa
283
    popa
-
 
284
 
283
    sub  esi,[sub_esi]
285
    sub  esi,res_line_size
284
    add  edi,[add_edi]
286
    add  edi, eax
285
    loop mario_1l
287
    loop .new_line
Line 286... Line 288...
286
   
288
   
Line 287... Line 289...
287
    ret
289
    ret
288
   
290
 
289
sub_esi  dd 0x0
-
 
290
add_edi  dd 0x0
291
imul_esi        dd 0
291
imul_esi dd 0x0
292
base            dd 0
292
base     dd 0x0
293
width           dd 0
Line 293... Line 294...
293
width    dd 0x0
294
width_move      dd 0
Line 294... Line -...
294
width_move dd 0x0
-
 
295
   
295
height_move     dd 0
296
   
-
 
297
   
296
   
298
mario_mirror:
297
   
299
   
298
   
300
   
299
mario_mirror:
301
    ; mario_green
300
 
302
   
301
    ; mario_green
303
    mov  edi,mario_green
-
 
304
    mov  ecx,70*50
-
 
Line 305... Line 302...
305
  mario_greenl:
302
    mov  edi,mario_green
Line 306... Line 303...
306
    mov  [edi],dword 0x00500f
303
    mov  ecx, mario_count_pixel
307
    add  edi,3
304
  @@:
308
    loop mario_greenl
305
    mov  [edi],dword 0x00500f
309
   
306
    add  edi, 3
310
   
307
    loop @b
311
   
308
   
312
    ; mario_4
309
    ; mario_4 - reverse mario_1
313
   
310
   
314
    mov  edi,mario_4
311
    mov  edi, mario_4
315
    mov  esi,mario_1+49*3
312
    mov  esi, mario_1 + (mario_width - 1)*3
316
    mov  ecx,70
313
    mov  ecx, mario_height
317
  m4l1:
314
  m4l1:
318
    pusha
315
    pusha
319
    mov  ecx,50
316
    mov  ecx, mario_width
320
  m4l2:
317
  m4l2:
-
 
318
    mov  eax,[esi]
321
    mov  eax,[esi]
319
    mov  [edi],ax
322
    mov  [edi],ax
320
    shr  eax,16
323
    shr  eax,16
321
    mov  [edi+2],al
Line 324... Line 322...
324
    mov  [edi+2],al
322
    add  edi,3
Line 325... Line 323...
325
    add  edi,3
323
    sub  esi,3
326
    sub  esi,3
324
    loop m4l2
327
    loop m4l2
325
    popa
328
    popa
326
 
329
    add  esi,50*3
327
    add  esi, mario_width*3
330
    add  edi,50*3
328
    add  edi, mario_width*3
331
    loop m4l1
329
    loop m4l1
332
   
330
   
333
   
331
   
334
    ; mario_5
332
    ; mario_5 - reverse mario_2
335
   
333
   
336
    mov  edi,mario_5
334
    mov  edi, mario_5
337
    mov  esi,mario_2+49*3
335
    mov  esi, mario_2 + (mario_width - 1)*3
338
    mov  ecx,70
336
    mov  ecx, mario_height
339
  m5l1:
337
  m5l1:
-
 
338
    pusha
340
    pusha
339
    mov  ecx, mario_width
341
    mov  ecx,50
340
  m5l2:
342
  m5l2:
341
    mov  eax,[esi]
Line 343... Line 342...
343
    mov  eax,[esi]
342
    mov  [edi],ax
Line 344... Line 343...
344
    mov  [edi],ax
343
    shr  eax,16
345
    shr  eax,16
344
    mov  [edi+2],al
346
    mov  [edi+2],al
345
    add  edi,3
347
    add  edi,3
346
    sub  esi,3
348
    sub  esi,3
347
    loop m5l2
349
    loop m5l2
348
    popa
350
    popa
349
 
351
    add  esi,50*3
350
    add  esi, mario_width*3
352
    add  edi,50*3
351
    add  edi, mario_width*3
353
    loop m5l1
352
    loop m5l1
354
   
353
   
355
   
354
   
356
    ; mario_6
355
    ; mario_6 - reverse mario_3
357
   
356
   
358
    mov  edi,mario_6
357
    mov  edi, mario_6
-
 
358
    mov  esi, mario_3 + (mario_width - 1)*3
359
    mov  esi,mario_3+49*3
359
    mov  ecx, mario_height
360
    mov  ecx,70
360
  m6l1:
361
  m6l1:
361
    pusha
Line 362... Line 362...
362
    pusha
362
    mov  ecx, mario_width
363
    mov  ecx,50
-
 
364
  m6l2:
363
  m6l2:
Line 365... Line 364...
365
    mov  eax,[esi]
364
    mov  eax,[esi]
Line 545... Line 544...
545
   
544
   
Line 546... Line 545...
546
    pusha
545
    pusha
547
   
546
   
548
    mov  eax,[mariomem]
547
    mov  eax,[mariomem]
Line 549... Line 548...
549
    cmp  eax,[marioxy]
548
    cmp  eax,[marioxy]
Line 550... Line 549...
550
    jnz  dm1
549
    jnz  @f
551
	
-
 
552
    call mario_delay
550
        
Line 553... Line 551...
553
 
551
    call mario_delay
554
    popa
-
 
555
   
552
 
556
    ret
553
    popa
Line 557... Line 554...
557
   
554
    ret
558
  dm1:
-
 
559
   
555
 
560
    mov  eax,[marioxy]
-
 
Line 561... Line 556...
561
    mov  [mariomem],eax
556
@@:
562
   
-
 
563
   
557
    mov  eax,[marioxy]
564
    cmp  byte [leftright],byte 1   ; go left
-
 
Line 565... Line 558...
565
    jnz  no_m_left
558
    mov  [mariomem],eax
566
    jmp  m_left
559
   
-
 
560
   
567
  no_m_left:
561
    cmp  byte [leftright], 1   ; go left
568
   
562
    jz   m_left
569
    cmp  byte [leftright],byte 4   ; go right
563
   
570
    jnz  no_m_right
564
    cmp  byte [leftright], 4   ; go right
571
    jmp  m_right
565
    jz   m_right
-
 
566
   
572
  no_m_right:
567
    cmp  byte [leftright], 2   ; stand left
573
   
568
    jnz  no_r_still
574
    cmp  byte [leftright],byte 2   ; stand left
569
 
575
    jnz  no_r_still
570
    mov  eax,7
576
    mov  eax,7
571
    mov  ebx,mario_green
577
    mov  ebx,mario_green
572
    mov  ecx, mario_draw_size
-
 
573
    mov  edx,[marioxy]
578
    mov  ecx,50*65536+70
574
    int  0x40
-
 
575
 
579
    mov  edx,[marioxy]
576
    call advance_mario
580
    int  0x40
577
    mov  eax,7
581
    call advance_mario
-
 
Line -... Line 578...
-
 
578
    mov  ebx,mario_1
582
    mov  eax,7
579
    mov  ecx, mario_draw_size
583
    mov  ebx,mario_1
580
    mov  edx,[marioxy]
-
 
581
    int  0x40
584
    mov  ecx,50*65536+70
582
 
585
    mov  edx,[marioxy]
583
    call mario_delay
586
    int  0x40
584
 
587
    call mario_delay
585
    popa
588
    popa
586
    ret
-
 
587
 
589
    ret
588
  no_r_still:
590
  no_r_still:
589
    cmp  byte [leftright],byte 3   ; stand right
591
   
590
    jnz  no_l_still
592
    cmp  byte [leftright],byte 3   ; stand right
591
 
593
    jnz  no_l_still
592
    mov  eax,7
594
    mov  eax,7
593
    mov  ebx,mario_green
-
 
594
    mov  ecx, mario_draw_size
595
    mov  ebx,mario_green
595
    mov  edx,[marioxy]
Line 596... Line -...
596
    mov  ecx,50*65536+70
-
 
597
    mov  edx,[marioxy]
-
 
598
    int  0x40
596
    int  0x40
Line 599... Line 597...
599
    call advance_mario
597
 
600
    mov  eax,7
598
    call advance_mario
Line 601... Line -...
601
    mov  ebx,mario_4
-
 
602
    mov  ecx,50*65536+70
-
 
603
    mov  edx,[marioxy]
-
 
604
    int  0x40
599
    mov  eax,7
Line 605... Line 600...
605
    call mario_delay
600
    mov  ebx,mario_4
606
   
601
    mov  ecx, mario_draw_size
607
    popa
602
    mov  edx,[marioxy]
608
    ret
603
    int  0x40
609
  no_l_still:
604
 
-
 
605
    call mario_delay
610
   
606
 
611
    popa
607
  no_l_still:
612
    ret
608
   
613
   
609
    popa
614
   
610
    ret
615
   
611
 
-
 
612
  m_left:
616
   
613
   
Line 617... Line 614...
617
  m_left:
614
    mov  eax,7
618
   
615
    mov  ebx,mario_green
619
    mov  eax,7
616
    mov  ecx, mario_draw_size
620
    mov  ebx,mario_green
617
    mov  edx,[marioxy]
621
    mov  ecx,50*65536+70
618
    int  0x40
-
 
619
 
622
    mov  edx,[marioxy]
620
    call advance_mario
623
    int  0x40
621
    mov  eax,7
624
    call advance_mario
622
    mov  ebx,mario_1
625
    mov  eax,7
623
    mov  ecx, mario_draw_size
626
    mov  ebx,mario_1
624
    mov  edx,[marioxy]
627
    mov  ecx,50*65536+70
625
    int  0x40
-
 
626
 
628
    mov  edx,[marioxy]
627
    call mario_delay
Line 629... Line 628...
629
    int  0x40
628
   
630
    call mario_delay
629
    mov  eax,7
631
   
630
    mov  ebx,mario_green
632
    mov  eax,7
631
    mov  ecx, mario_draw_size
633
    mov  ebx,mario_green
632
    mov  edx,[marioxy]
-
 
633
    int  0x40
634
    mov  ecx,50*65536+70
634
 
635
    mov  edx,[marioxy]
635
    call advance_mario
636
    int  0x40
636
    mov  eax,7
637
    call advance_mario
637
    mov  ebx,mario_2
638
    mov  eax,7
638
    mov  ecx, mario_draw_size
639
    mov  ebx,mario_2
639
    mov  edx,[marioxy]
-
 
640
    int  0x40
640
    mov  ecx,50*65536+70
641
 
Line 641... Line 642...
641
    mov  edx,[marioxy]
642
    call mario_delay
642
    int  0x40
643
   
643
    call mario_delay
644
    mov  eax,7
644
   
645
    mov  ebx,mario_green
645
    mov  eax,7
646
    mov  ecx, mario_draw_size
-
 
647
    mov  edx,[marioxy]
646
    mov  ebx,mario_green
648
    int  0x40
647
    mov  ecx,50*65536+70
649
 
648
    mov  edx,[marioxy]
650
    call advance_mario
649
    int  0x40
651
    mov  eax,7
650
    call advance_mario
652
    mov  ebx,mario_3
651
    mov  eax,7
653
    mov  ecx, mario_draw_size
-
 
654
    mov  edx,[marioxy]
652
    mov  ebx,mario_3
655
    int  0x40
Line 653... Line 656...
653
    mov  ecx,50*65536+70
656
 
654
    mov  edx,[marioxy]
-
 
655
    int  0x40
657
    call mario_delay
Line 656... Line 658...
656
    call mario_delay
658
   
Line 657... Line 659...
657
   
659
    mov  eax,7
658
    mov  eax,7
660
    mov  ebx,mario_green
659
    mov  ebx,mario_green
661
    mov  ecx, mario_draw_size
660
    mov  ecx,50*65536+70
662
    mov  edx,[marioxy]
661
    mov  edx,[marioxy]
663
    int  0x40
-
 
664
 
662
    int  0x40
665
    call advance_mario
663
    call advance_mario
666
    mov  eax,7
664
    mov  eax,7
667
    mov  ebx,mario_2
665
    mov  ebx,mario_2
668
    mov  ecx, mario_draw_size
666
    mov  ecx,50*65536+70
669
    mov  edx,[marioxy]
667
    mov  edx,[marioxy]
670
    int  0x40
-
 
671
 
668
    int  0x40
672
    call mario_delay
Line 669... Line 673...
669
    call mario_delay
673
   
670
   
674
    popa
671
    popa
675
    ret
672
   
676
   
673
    ret
677
  m_right:
-
 
678
   
674
   
679
   
675
  m_right:
680
    mov  eax,7
676
   
681
    mov  ebx,mario_green
677
   
682
    mov  ecx, mario_draw_size
678
    mov  eax,7
683
    mov  edx,[marioxy]
679
    mov  ebx,mario_green
684
    int  0x40
-
 
685
 
680
    mov  ecx,50*65536+70
686
    call advance_mario
Line 681... Line 687...
681
    mov  edx,[marioxy]
687
    mov  eax,7
682
    int  0x40
688
    mov  ebx,mario_4
683
    call advance_mario
689
    mov  ecx, mario_draw_size
684
    mov  eax,7
690
    mov  edx,[marioxy]
685
    mov  ebx,mario_4
691
    int  0x40
-
 
692
 
686
    mov  ecx,50*65536+70
693
    call mario_delay
687
    mov  edx,[marioxy]
694
   
688
    int  0x40
695
    mov  eax,7
689
    call mario_delay
696
    mov  ebx,mario_green
690
   
697
    mov  ecx, mario_draw_size
691
    mov  eax,7
698
    mov  edx,[marioxy]
-
 
699
    int  0x40
692
    mov  ebx,mario_green
700
 
Line 693... Line 701...
693
    mov  ecx,50*65536+70
701
    call advance_mario
694
    mov  edx,[marioxy]
702
    mov  eax,7
695
    int  0x40
703
    mov  ebx,mario_5
696
    call advance_mario
704
    mov  ecx, mario_draw_size
697
    mov  eax,7
705
    mov  edx,[marioxy]
-
 
706
    int  0x40
698
    mov  ebx,mario_5
707
 
699
    mov  ecx,50*65536+70
708
    call mario_delay
700
    mov  edx,[marioxy]
709
   
701
    int  0x40
710
    mov  eax,7
702
    call mario_delay
711
    mov  ebx,mario_green
703
   
712
    mov  ecx, mario_draw_size
-
 
713
    mov  edx,[marioxy]
704
    mov  eax,7
714
    int  0x40
Line 705... Line 715...
705
    mov  ebx,mario_green
715
 
706
    mov  ecx,50*65536+70
-
 
707
    mov  edx,[marioxy]
716
    call advance_mario
Line 708... Line -...
708
    int  0x40
-
 
709
    call advance_mario
-
 
710
    mov  eax,7
-
 
711
    mov  ebx,mario_6
-
 
712
    mov  ecx,50*65536+70
717
    mov  eax,7
Line 713... Line 718...
713
    mov  edx,[marioxy]
718
    mov  ebx,mario_6
Line 714... Line 719...
714
    int  0x40
719
    mov  ecx, mario_draw_size
715
    call mario_delay
720
    mov  edx,[marioxy]
716
   
721
    int  0x40
Line 717... Line 722...
717
    mov  eax,7
722
 
718
    mov  ebx,mario_green
723
    call mario_delay
719
    mov  ecx,50*65536+70
724
   
720
    mov  edx,[marioxy]
725
    mov  eax,7
721
    int  0x40
726
    mov  ebx,mario_green
722
    call advance_mario
727
    mov  ecx, mario_draw_size
Line 723... Line 728...
723
    mov  eax,7
728
    mov  edx,[marioxy]
724
    mov  ebx,mario_5
729
    int  0x40
Line 759... Line 764...
759
    ret
764
    ret
Line 760... Line 765...
760
   
765
   
Line 761... Line -...
761
   
-
 
762
; DATA SECTION
-
 
763
   
-
 
764
filename:
766
   
765
    db  'MARIOALLBMP'
767
; DATA SECTION
Line 766... Line 768...
766
   
768
   
Line 776... Line 778...
776
    db  '1          1'
778
    db  '1          1'
777
    db  '1  111111  1'
779
    db  '1  111111  1'
778
    db  '1          1'
780
    db  '1          1'
779
    db  '1          1'
781
    db  '1          1'
780
    db  '222222222222'
782
    db  '222222222222'
-
 
783
.end:
Line 781... Line 784...
781
   
784
   
Line 782... Line 785...
782
xxyy        dd 0x0
785
xxyy        dd 0x0
Line 787... Line 790...
787
   
790
   
Line 788... Line 791...
788
leftright   dd 0x0
791
leftright   dd 0x0
Line -... Line 792...
-
 
792
   
-
 
793
velocity    dd 0x0
-
 
794
   
Line 789... Line 795...
789
   
795
align 16
Line -... Line 796...
-
 
796
loadp:
-
 
797
        file 'MARIOALL.BMP'
-
 
798
 
-
 
799
I_END:
-
 
800
 
-
 
801
align 0x1000
-
 
802
 
-
 
803
empty:          rb block_img_size
-
 
804
build_1:        rb block_img_size
-
 
805
build_2:        rb block_img_size
-
 
806
build_3:        rb block_img_size
-
 
807
 
-
 
808
align 0x1000
-
 
809
 
-
 
810
mario_1:        rb mario_img_size
-
 
811
mario_2:        rb mario_img_size
-
 
812
mario_3:        rb mario_img_size
-
 
813
mario_4:        rb mario_img_size
-
 
814
mario_5:        rb mario_img_size
-
 
815
mario_6:        rb mario_img_size
-
 
816
mario_green:    rb mario_img_size