Subversion Repositories Kolibri OS

Rev

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

Rev 551 Rev 1802
Line 1... Line 1...
1
;
1
;
2
;    PONG for MENUET v1.0
2
;    PONG for MENUET v1.1
3
;    2001 by Mario Birkner, Germany
3
;    2001 by Mario Birkner, Germany
4
;    cyflexx@digitalrice.com
4
;    cyflexx@digitalrice.com
5
;
5
;
6
;    PONG for MENUET is
6
;    PONG for MENUET is
7
;    a small PONG-clone for MenuetOS
7
;    a small PONG-clone for MenuetOS/KolibriOS
8
;
8
;
-
 
9
;
9
; HINT: If the Paddle moves too slow,increase the
10
;    improved by Oleksandr Bogomaz aka Albom
10
;       typematic Rate in your BIOS
11
;    albom85@yandex.ru
-
 
12
;    11.07.2008
11
;
13
;
Line 12... Line 14...
12
 
14
 
Line 13... Line 15...
13
include '..\..\..\macros.inc'
15
include '../../../macros.inc'
14
 
16
 
15
CK_UP1 equ 113
17
CK_UP1 equ 16
16
CK_DOWN1 equ 97
18
CK_DOWN1 equ 30
Line 17... Line 19...
17
CK_UP2 equ 130+48
19
CK_UP2 equ 72
Line 18... Line 20...
18
CK_DOWN2 equ 129+48
20
CK_DOWN2 equ 80
Line 31... Line 33...
31
 
33
 
Line -... Line 34...
-
 
34
 
-
 
35
 
-
 
36
START:
-
 
37
 
-
 
38
    mov  eax, 66
32
 
39
    mov  ebx, 1
Line 33... Line 40...
33
 
40
    mov  ecx, 1
Line 52... Line 59...
52
 
59
 
53
    mov  eax,5
60
    mov  eax,5
54
    mov  ebx,[delay]
61
    mov  ebx,[delay]
Line -... Line 62...
-
 
62
    mcall
-
 
63
 
-
 
64
    ; â ñîîòâåòñòâèè ñ íàæàòûìè êëàâèøàìè ïåðåìåùàåì ïëîæàäêè
-
 
65
    cmp  [is_up1], 1
-
 
66
    jne  _next_key1
-
 
67
    cmp  [posya],52*65536+64
-
 
68
    je   _next_key2
-
 
69
    sub  [posya],4*65536
-
 
70
 _next_key1:
-
 
71
    cmp  [is_dn1], 1
-
 
72
    jne  _next_key2
-
 
73
    cmp  [posya],140*65536+64
-
 
74
    je   _next_key2
-
 
75
    add  [posya],4*65536
-
 
76
 _next_key2:
-
 
77
    cmp  [is_up2], 1
-
 
78
    jne  _next_key3
-
 
79
    cmp  [posyb],52*65536+64
-
 
80
    je   keys_ok
-
 
81
    sub  [posyb],4*65536
-
 
82
 _next_key3:
-
 
83
    cmp  [is_dn2], 1
-
 
84
    jne  _next_key4
-
 
85
    cmp  [posyb],140*65536+64
-
 
86
    je   keys_ok
-
 
87
    add  [posyb],4*65536
-
 
88
 _next_key4:
-
 
89
 
-
 
90
 
-
 
91
 keys_ok:
-
 
92
 
-
 
93
    ; ñòèðàåì ïëîùàäêè
-
 
94
    call cl1
-
 
95
    call cl0
-
 
96
    ; ðèñóåì ïëîùàäêè
55
    mcall
97
    call drawpad
Line 56... Line 98...
56
 
98
 
57
    jmp  move
99
    jmp  move
58
 
100
 
Line 68... Line 110...
68
    mcall
110
    mcall
69
    cmp  [control],1
111
    cmp  [control],1
70
    jne  still
112
    jne  still
Line 71... Line 113...
71
 
113
 
72
   up1:
114
   up1:
73
    cmp  ah,CK_UP1
115
    cmp  ah,CK_UP1 ; îáðàáîòêà íàæàòèÿ êëàâèøè
74
    jne  dn1
-
 
75
    cmp  [posya],52*65536+64
116
    jne  dn1
76
    je   still
117
    mov  [is_up1], 1
77
    sub  [posya],4*65536
-
 
78
    call cl0
-
 
79
    call drawpad
118
    mov  [is_dn1], 0
80
    jmp  still
119
    jmp  still
-
 
120
   dn1:
-
 
121
    cmp  ah,CK_DOWN1 ; îáðàáîòêà íàæàòèÿ êëàâèøè
-
 
122
    jne  up1u
81
   dn1:
123
    mov  [is_up1], 0
-
 
124
    mov  [is_dn1], 1
-
 
125
    jmp  still
-
 
126
   up1u:
-
 
127
    cmp  ah,CK_UP1+128 ; îáðàáîòêà îòïóñêàíèÿ êëàâèøè
-
 
128
    jne  dn1u
-
 
129
    mov  [is_up1], 0
-
 
130
    mov  [is_dn1], 0
-
 
131
    jmp  still
-
 
132
   dn1u:
82
    cmp  ah,CK_DOWN1
133
    cmp  ah,CK_DOWN1+128 ; îáðàáîòêà îòïóñêàíèÿ êëàâèøè
83
    jne  up2
-
 
84
    cmp  [posya],140*65536+64
134
    jne  up2
85
    je   still
135
    mov  [is_up1], 0
86
    add  [posya],4*65536
-
 
87
    call cl0
-
 
88
    call drawpad
136
    mov  [is_dn1], 0
-
 
137
    jmp  still
89
    jmp  still
138
 
90
   up2:
139
   up2:
91
    cmp  ah,CK_UP2
140
    cmp  ah,CK_UP2 ; îáðàáîòêà íàæàòèÿ êëàâèøè
92
    jne  dn2
-
 
93
    cmp  [posyb],52*65536+64
141
    jne  dn2
94
    je   still
142
    mov  [is_up2], 1
95
    sub  [posyb],4*65536
-
 
96
    call cl1
-
 
97
    call drawpad
143
    mov  [is_dn2], 0
98
    jmp  still
144
    jmp  still
-
 
145
   dn2:
-
 
146
    cmp  ah,CK_DOWN2 ; îáðàáîòêà íàæàòèÿ êëàâèøè
-
 
147
    jne  up2u
-
 
148
    mov  [is_up2], 0
99
   dn2:
149
    mov  [is_dn2], 1
-
 
150
    jmp  still
-
 
151
   up2u:
-
 
152
    cmp  ah,CK_UP2+128 ; îáðàáîòêà îòïóñêàíèÿ êëàâèøè
-
 
153
    jne  dn2u
-
 
154
    mov  [is_up2], 0
-
 
155
    mov  [is_dn2], 0
-
 
156
    jmp  still
-
 
157
   dn2u:
100
    cmp  ah,CK_DOWN2
158
    cmp  ah,CK_DOWN2+128 ; îáðàáîòêà îòïóñêàíèÿ êëàâèøè
101
    jne  still
-
 
102
    cmp  [posyb],140*65536+64
159
    jne  still
103
    je   still
160
    mov  [is_up2], 0
104
    add  [posyb],4*65536
-
 
105
    call cl1
-
 
106
    call drawpad
161
    mov  [is_dn2], 0
Line 107... Line 162...
107
    jmp  still
162
    jmp  still
108
 
163
 
109
  button:
164
  button:
Line 393... Line 448...
393
control dd 0x0
448
control dd 0x0
394
delay   dd 0x1          ;delay betw. frames
449
delay   dd 0x1          ;delay betw. frames
395
scp1    dd 0x0
450
scp1    dd 0x0
396
scp2    dd 0x0
451
scp2    dd 0x0
Line -... Line 452...
-
 
452
 
-
 
453
is_up1	dd 0x0 ; \
-
 
454
is_dn1	dd 0x0 ; | êàêèå êëàâèøè íàæàòû
-
 
455
is_up2	dd 0x0 ; |
Line 397... Line -...
397
 
-
 
398
 
-
 
399
scotext:
-
 
400
     db  'SCORE:    :'
-
 
401
welcome:
-
 
402
     db  'PLAYER1: Q , A            PLAYER2:  , '
-
 
403
b0lab:
-
 
404
     db  'NEW GAME'
-
 
405
labelt:
-
 
406
     db  'PONG FOR MENUET v1.0',0
-
 
407
w1:
-
 
408
     db  'Player 1 wins!'
456
is_dn2	dd 0x0 ; /
409
w2:
-
 
410
     db  'Player 2 wins!'
-
 
Line 411... Line 457...
411
clsign:
457
 
412
     db   'x'
458
include "lang.inc"
Line 413... Line 459...
413
 
459