Subversion Repositories Kolibri OS

Rev

Rev 950 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
950 leency 1
use32
2
    org    0x0
3
    db	   'MENUET01'						  ; 8 byte id
4
    dd	   0x01 						  ; header version
5
    dd	   START						  ; start of code
6
    dd	   IM_END						  ; size of image
7
    dd	   I_END+1000						       ; memory for app
8
    dd	   I_END+1000						       ; esp
9
    dd	   0x0 , 0x0						  ; I_Param , I_Icon
10
 
11
 
12
KEY_RIGHT equ 179
13
KEY_LEFT equ 176
14
KEY_UP equ 178
15
KEY_P equ 'p'
16
KEY_DOWN equ 177
17
KEY_ENTER equ 13
18
KEY_ESC equ 27
19
 
20
START:
21
   mov	[drawroutine], draw_picture_kolibri
22
   call draw_window
23
   jmp	decodegif
24
 
25
draw_picture_kolibri:
26
 
27
    mov  eax,7							  ; Draw buffer to screen
28
    mov  ebx,vscreen+8
29
    mov  ecx,SCREEN_X*65536+SCREEN_Y
30
    mov  edx,SCREEN_X_POS*65536+SCREEN_Y_POS
31
    int  0x40
32
 
33
ret
34
 
35
waitandgetkey:
36
 
37
    mov  eax, 5
38
    mov  ebx, 1
39
    int  0x40
40
 
41
    mov  eax, 11						   ; check for event (no wait)
42
    int  0x40
43
 
44
    cmp  eax,1							  ; redraw request ?
45
    je	 red
46
    cmp  eax,2							  ; key in buffer ?
47
    je	 key
48
    cmp  eax,3							  ; button in buffer ?
49
    je	 button
50
 
51
    xor  ax,ax
52
 
53
    ret
54
 
55
  red:								  ; redraw
56
    call draw_window
57
 
58
    jmp  waitandgetkey
59
 
60
  key:								  ; key
61
    mov  eax,2							  ; read it
62
    int  0x40
63
 
64
    mov  al, ah
65
 
66
    ret
67
 
68
  button:							  ; button
69
    mov  eax,17 						  ; get id
70
    int  0x40
71
 
72
    cmp  ah,1							  ; button id=1 ?
73
    jne  noclose
74
 
75
  exit:
76
    mov  eax,-1 						  ; close this program
77
    int  0x40
78
  noclose:
79
 
80
    jmp  waitandgetkey
81
 
82
 
83
draw_window:
84
    mov  eax,12 						  ; function 12:tell os about windowdraw
85
    mov  ebx,1							  ; 1, start of draw
86
    int  0x40
87
								  ; DRAW WINDOW
88
    mov  eax,0							  ; function 0 : define and draw window
89
    mov  ebx,WINDOW_X*65536+10+SCREEN_X 			  ; [x start] *65536 + [x size]
90
    mov  ecx,WINDOW_Y*65536+30+SCREEN_Y 			  ; [y start] *65536 + [y size]
91
    mov  edx,0x04000000 					  ; color of work area RRGGBB,8->color gl
92
    mov  esi,0x805080d0 					  ; color of grab bar  RRGGBB,8->color gl
962 leency 93
    mov  edi,0x005080d0						  ; color of frames    RRGGBB
950 leency 94
    int  0x40
95
 
962 leency 96
    mov  eax,71
97
    mov  ebx,1
98
    mov  ecx,header
99
    int  0x40
100
 
950 leency 101
    call [drawroutine]
102
 
103
    mov  eax,12 						  ; function 12:tell os about windowdraw
104
    mov  ebx,2							  ; 2, end of draw
105
    int  0x40
106
 
107
ret
108
 
109
load_highscores:
110
ret
111
 
112
save_highscores:
962 leency 113
ret
114
 
115
header          db 'Invaders',0