Subversion Repositories Kolibri OS

Rev

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

Rev 748 Rev 1203
Line 18... Line 18...
18
  dd     0x0 , 0x0               ; I_Param , I_Icon
18
  dd     0x0 , 0x0               ; I_Param , I_Icon
Line 19... Line 19...
19
 
19
 
20
include 'lang.inc'
20
include 'lang.inc'
21
include '..\..\..\macros.inc'
21
include '..\..\..\macros.inc'
-
 
22
display_processes=32            ; number of processes to show
22
display_processes=32            ; number of processes to show
23
align 4
23
START:                          ; start of execution
24
START:                          ; start of execution
24
; calculate window position
25
; calculate window position
25
; at the center of the screen
26
; at the center of the screen
Line 26... Line 27...
26
    call calculate_window_pos
27
    call calculate_window_pos
-
 
28
    
27
    
29
;main loop when process name isn't edited.    
-
 
30
align 4
-
 
31
red:    
28
;main loop when process name isn't edited.    
32
	xor	ebp,ebp
29
red:    
33
	inc	ebp
-
 
34
;    mov  ebp,1
30
    mov  ebp,1
35
    call draw_window            ; redraw all window
31
    call draw_window            ; redraw all window
36
align 4
32
still:
37
still:
33
    mov  eax,23                 ; wait here for event
38
    mov  eax,23                 ; wait here for event
Line 34... Line 39...
34
    mov  ebx,100                ; 1 sec.
39
    mov  ebx,200                ; 2 sec.
35
    int  0x40
40
    mcall
36
 
41
 
37
    cmp  eax,1                  ; redraw request ?
42
    dec  eax                  ; redraw request ?
38
    je   red
43
    jz   red
39
    cmp  eax,2                  ; key in buffer ?
44
    dec  eax                  ; key in buffer ?
-
 
45
    jz   key
40
    je   key
46
    dec  eax                  ; button in buffer ?
41
    cmp  eax,3                  ; button in buffer ?
47
    jz   button
42
    je   button
48
align 4
43
still_end:    
49
still_end:    
Line 44... Line 50...
44
    xor  ebp,ebp                ; draw new state of processes
50
    xor  ebp,ebp                ; draw new state of processes
45
    call draw_window
51
    call draw_window
46
    jmp  still
52
    jmp  still
47
 
53
 
48
 
54
align 4
49
  key:                          ; key
55
  key:                          ; key
50
    mov  eax,2                  
56
    mov  eax,2                  
51
    int  0x40
57
    mcall
52
    cmp  ah,184                 ; PageUp
58
    cmp  ah,184                 ; PageUp
53
    je   pgdn
59
    je   pgdn
54
    cmp  ah,183
60
    cmp  ah,183
55
    je   pgup                   ; PageDown
61
    je   pgup                   ; PageDown
56
    cmp  ah,27
62
    cmp  ah,27
57
    je   close                  ; Esc
63
    je   close                  ; Esc
58
    jmp  still_end
64
    jmp  still_end
59
 
65
align 4
60
  button:                       
66
  button:                       
Line 61... Line 67...
61
; get button id  
67
; get button id  
62
    mov  eax,17                 
68
    mov  eax,17                 
63
    int  0x40
69
    mcall
Line 79... Line 85...
79
    test ecx,ecx
85
    test ecx,ecx
80
    jle  still_end
86
    jle  still_end
81
;terminate application    
87
;terminate application    
82
    mov  eax,18
88
    mov  eax,18
83
    mov  ebx,2
89
    mov  ebx,2
84
    int  0x40
90
    mcall
85
    jmp  still_end 
91
    jmp  still_end 
-
 
92
align 4
86
  noterm:
93
  noterm:
Line 87... Line 94...
87
 
94
 
-
 
95
;special buttons
-
 
96
    dec  eax
-
 
97
    jz   close
88
;special buttons
98
 
89
    cmp  eax,51
99
    sub  eax,50
90
    jz   pgdn
100
    jz   pgdn
91
    cmp  eax,52
101
    dec  eax
92
    jz   pgup
102
    jz   pgup
93
    cmp  eax,53
103
    dec  eax
94
    jz   read_string
104
    jz   read_string
95
    cmp  eax,54
105
    dec  eax
96
    jz   program_start
106
    jz   program_start
97
    cmp  eax,55
107
    dec  eax
98
    jz   reboot
-
 
99
    cmp  eax,1
-
 
100
    jz   close
108
    jz   reboot
Line 101... Line 109...
101
    jmp  still_end
109
    jmp  still_end
-
 
110
    
102
    
111
;buttons handlers    
103
;buttons handlers    
112
align 4
104
  pgdn:
113
  pgdn:
105
    sub  [list_start],display_processes
114
    sub  [list_start],display_processes
106
;    cmp  [list_start],0
115
;    cmp  [list_start],0
107
    jge  still_end  
116
    jge  still_end  
108
    mov  [list_start],0
117
    mov  [list_start],0
109
    jmp  still_end  
118
    jmp  still_end  
110
 
119
align 4
111
  pgup:
120
  pgup:
112
    mov  eax,[list_add]  ;maximal displayed process slot
121
    mov  eax,[list_add]  ;maximal displayed process slot
113
    mov  [list_start],eax
122
    mov  [list_start],eax
114
    jmp  still_end  
123
    jmp  still_end  
115
    
124
align 4    
116
  program_start:    
125
  program_start:    
117
    mov  eax,70
126
    mov  eax,70
118
    mov  ebx,file_start
127
    mov  ebx,file_start
119
    int  0x40
128
    mcall
120
    jmp  still_end
129
    jmp  still_end
121
    
130
align 4    
122
  reboot:    
131
  reboot:    
123
    mov  eax,70
132
    mov  eax,70
124
    mov  ebx,sys_reboot
133
    mov  ebx,sys_reboot
125
    int  0x40
134
    mcall
126
;close program if we going to reboot
135
;close program if we going to reboot
127
 
136
align 4
128
  close:
137
  close:
129
    or   eax,-1                 ; close this program
138
    or   eax,-1                 ; close this program
130
    int  0x40
139
    mcall
131
 
140
align 4
132
draw_next_process:
141
draw_next_process:
133
;input:
142
;input:
134
;  edi - current slot
143
;  edi - current slot
Line 142... Line 151...
142
    jnz   .nodelete
151
    jnz   .nodelete
143
;delete old button
152
;delete old button
144
    mov   eax,8
153
    mov   eax,8
145
    mov   edx,[index]
154
    mov   edx,[index]
146
    add   edx,(1 shl 31)+11
155
    add   edx,(1 shl 31)+11
147
    int   0x40
156
    mcall
-
 
157
align 4
148
.nodelete:
158
.nodelete:
149
;create terminate process button
159
;create terminate process button
150
    mov   eax,8
160
    mov   eax,8
151
    mov   ebx,15*65536+100
161
    mov   ebx,15*65536+100
152
    mov   ecx,[curposy]
162
    mov   ecx,[curposy]
Line 157... Line 167...
157
    mov   esi,0xaabbcc
167
    mov   esi,0xaabbcc
158
;contrast    
168
;contrast    
159
    test  dword [index],1
169
    test  dword [index],1
160
    jz    .change_color_button
170
    jz    .change_color_button
161
    mov   esi,0x8899aa
171
    mov   esi,0x8899aa
-
 
172
align 4
162
.change_color_button:
173
.change_color_button:
163
    int   0x40
174
    mcall
Line 164... Line 175...
164
    
175
    
165
;draw background for proccess information
176
;draw background for proccess information
166
    mov   eax,13
177
    mov   eax,13
167
    mov   ebx,115*65536+395
178
    mov   ebx,115*65536+395
168
    ;ecx was already set
179
    ;ecx was already set
169
    mov   edx,0x88ff88
180
    mov   edx,0x88ff88
170
;contrast
181
;contrast
171
    test  dword [index],1
182
    test  dword [index],1
172
    jz    .change_color_info
183
    jz    .change_color_info
-
 
184
    mov   edx,0xddffdd
173
    mov   edx,0xddffdd
185
align 4
174
.change_color_info:
186
.change_color_info:
Line 175... Line 187...
175
    int   0x40
187
    mcall
176
    
188
    
177
;nothing else should be done
189
;nothing else should be done
178
;if there is no process for this button    
190
;if there is no process for this button    
Line 185... Line 197...
185
    mov   ecx,edi
197
    mov   ecx,edi
186
;precacluate pointer to process buffer    
198
;precacluate pointer to process buffer    
187
    mov   ebx,process_info_buffer
199
    mov   ebx,process_info_buffer
Line 188... Line 200...
188
    
200
    
-
 
201
;find process loop
189
;find process loop
202
align 4
190
.find_loop:
203
.find_loop:
191
    cmp   ecx,256
204
    cmp   ecx,256
Line 192... Line 205...
192
    jge   .no_processes
205
    jge   .no_processes
193
    
206
    
194
;load process information in buffer
207
;load process information in buffer
195
    mov   eax,9
208
    mov   eax,9
Line 196... Line 209...
196
;    mov   ebx,process_info_buffer
209
;    mov   ebx,process_info_buffer
197
    int   0x40
210
    mcall
198
    
211
    
199
;if current slot greater than maximal slot,
212
;if current slot greater than maximal slot,
Line 205... Line 218...
205
    cmp   [process_info_buffer+process_information.slot_state],9
218
    cmp   [process_info_buffer+process_information.slot_state],9
206
    jnz   .process_found
219
    jnz   .process_found
Line 207... Line 220...
207
    
220
    
208
    inc   ecx
221
    inc   ecx
209
    jmp   .find_loop
222
    jmp   .find_loop
210
    
223
align 4    
211
.no_processes:
224
.no_processes:
212
    mov   edi,-1
225
    mov   edi,-1
213
    ret
226
    ret
214
    
227
align 4    
215
.process_found:
228
.process_found:
216
    mov  edi,ecx
229
    mov  edi,ecx
Line 217... Line 230...
217
    mov  [list_add],ecx
230
    mov  [list_add],ecx
218
    
231
    
219
;get processor cpeed    
232
;get processor cpeed    
220
;for percent calculating
233
;for percent calculating
221
    mov  eax,18
234
    mov  eax,18
Line 222... Line 235...
222
    mov  ebx,5
235
    mov  ebx,5
223
    int  0x40
236
    mcall
224
    
237
    
Line 243... Line 256...
243
;81-100% : red
256
;81-100% : red
244
    test eax,eax
257
    test eax,eax
245
    jg   .no_black
258
    jg   .no_black
246
    mov  [tcolor],eax
259
    mov  [tcolor],eax
247
    jmp  .color_set
260
    jmp  .color_set
-
 
261
align 4
248
.no_black:   
262
.no_black:   
249
    cmp  eax,80
263
    cmp  eax,80
250
    ja   .no_green
264
    ja   .no_green
251
    mov  dword [tcolor],0x107a30
265
    mov  dword [tcolor],0x107a30
252
    jmp  .color_set
266
    jmp  .color_set
-
 
267
align 4
253
.no_green:
268
.no_green:
254
    mov  dword [tcolor],0xac0000
269
    mov  dword [tcolor],0xac0000
255
.color_set:
270
.color_set:
Line 256... Line 271...
256
 
271
 
Line 260... Line 275...
260
;ecx haven't changed since .process_found    
275
;ecx haven't changed since .process_found    
261
;    mov  ecx,edi
276
;    mov  ecx,edi
262
    mov  edx,[curposy]
277
    mov  edx,[curposy]
263
    add  edx,20*65536+1
278
    add  edx,20*65536+1
264
    mov  esi,[tcolor]
279
    mov  esi,[tcolor]
265
    int  0x40
280
    mcall
Line 266... Line 281...
266
    
281
    
267
;show process name
282
;show process name
268
    mov  eax,4
283
    mov  eax,4
269
    mov  ebx,[curposy]
284
    mov  ebx,[curposy]
270
    add  ebx,50*65536+1
285
    add  ebx,50*65536+1
271
    mov  ecx,[tcolor]
286
    mov  ecx,[tcolor]
272
    mov  edx,process_info_buffer.process_name
287
    mov  edx,process_info_buffer.process_name
273
    mov  esi,11
288
    mov  esi,11
Line 274... Line 289...
274
    int  0x40
289
    mcall
275
    
290
    
276
;show pid
291
;show pid
277
    mov  eax,47
292
    mov  eax,47
278
    mov  ebx,8*65536+1*256
293
    mov  ebx,8*65536+1*256
279
    mov  ecx,[process_info_buffer.PID]
294
    mov  ecx,[process_info_buffer.PID]
280
    mov  edx,[curposy]
295
    mov  edx,[curposy]
281
    add  edx,130*65536+1
296
    add  edx,130*65536+1
Line 282... Line 297...
282
    mov  esi,[tcolor]
297
    mov  esi,[tcolor]
283
    int  0x40
298
    mcall
284
    
299
    
285
;show cpu usage
300
;show cpu usage
Line 286... Line 301...
286
    mov  ecx,[process_info_buffer.cpu_usage]
301
    mov  ecx,[process_info_buffer.cpu_usage]
287
    add  edx,60*65536
302
    add  edx,60*65536
288
    int  0x40
303
    mcall
289
    
304
    
290
;show cpu percent
305
;show cpu percent
Line 291... Line 306...
291
    mov  ebx,3*65536+0*256
306
    mov  ebx,3*65536+0*256
292
    mov  ecx,[cpu_percent]
307
    mov  ecx,[cpu_percent]
293
    add  edx,60*65536
308
    add  edx,60*65536
294
    int  0x40
309
    mcall
295
    
310
    
Line 296... Line 311...
296
;show memory start - obsolete
311
;show memory start - obsolete
297
    mov  ebx,8*65536+1*256
312
    mov  ebx,8*65536+1*256
298
    mov  ecx,[process_info_buffer.memory_start]
313
    mov  ecx,[process_info_buffer.memory_start]
299
    add  edx,30*65536
314
    add  edx,30*65536
300
    int  0x40
315
    mcall
Line 301... Line 316...
301
    
316
    
302
;show memory usage
317
;show memory usage
303
    mov  ecx,[process_info_buffer.used_memory]
318
    mov  ecx,[process_info_buffer.used_memory]
304
    inc  ecx
319
    inc  ecx
Line 305... Line 320...
305
    add  edx,60*65536
320
    add  edx,60*65536
306
    int  0x40
321
    mcall
307
    
322
    
308
;show window stack and value
323
;show window stack and value
309
    mov  ecx,dword [process_info_buffer.window_stack_position]
324
    mov  ecx,dword [process_info_buffer.window_stack_position]
310
    add  edx,60*65536
325
    add  edx,60*65536
311
    int  0x40
326
    mcall
312
    
327
    
313
;show window xy size
328
;show window xy size
314
    mov  ecx,[process_info_buffer.box.left]
329
    mov  ecx,[process_info_buffer.box.left]
315
    shl  ecx,16
330
    shl  ecx,16
316
    add  ecx,[process_info_buffer.box.top]
331
    add  ecx,[process_info_buffer.box.top]
317
    add  edx,60*65536
332
    add  edx,60*65536
318
    int  0x40    
333
    mcall    
Line 319... Line 334...
319
            
334
align 4            
320
.ret:
335
.ret:
321
;build index->slot map for terminating processes.
336
;build index->slot map for terminating processes.
Line 336... Line 351...
336
    mov  edi,start_application
351
    mov  edi,start_application
337
;edi now contains pointer to last symbol       
352
;edi now contains pointer to last symbol       
338
    jmp  still1
353
    jmp  still1
Line 339... Line 354...
339
 
354
 
-
 
355
;read string main loop
340
;read string main loop
356
align 4
341
  f11:
357
  f11:
342
;full update  
358
;full update  
343
    push edi
359
    push edi
344
    mov  ebp,1
360
    mov  ebp,1
345
    call draw_window
361
    call draw_window
-
 
362
    pop  edi
346
    pop  edi
363
align 4
347
  still1:  
364
  still1:  
348
;wait for message  
365
;wait for message  
349
    mov  eax,23
366
    mov  eax,23
350
    mov  ebx,100
367
    mov  ebx,100
351
    int  0x40
368
    mcall
352
    cmp  eax,1
369
    cmp  eax,1
353
    je   f11
370
    je   f11
354
;if no message - update process information    
371
;if no message - update process information    
355
    cmp  eax,0
372
    cmp  eax,0
356
    jnz  .message_received
373
    jnz  .message_received
357
    push edi                ;edi should be saved since draw_window
374
    push edi                ;edi should be saved since draw_window
358
    xor  ebp,ebp            ;corrupt registers
375
    xor  ebp,ebp            ;corrupt registers
359
    call draw_window
376
    call draw_window
360
    pop  edi
377
    pop  edi
361
    jmp  still1
378
    jmp  still1
362
    
379
align 4    
363
.message_received:
380
.message_received:
364
    cmp  eax,2
381
    cmp  eax,2
365
    jne  read_done          ;buttons message
382
    jne  read_done          ;buttons message
366
;read char    
383
;read char    
367
    mov  eax,2
384
    mov  eax,2
368
    int  0x40
385
    mcall
Line 369... Line 386...
369
    shr  eax,8
386
    shr  eax,8
370
    
387
    
371
;if enter pressed, exit read string loop    
388
;if enter pressed, exit read string loop    
Line 381... Line 398...
381
;fill last symbol with space because
398
;fill last symbol with space because
382
;print_text show all symbols    
399
;print_text show all symbols    
383
    mov  [edi],byte 32
400
    mov  [edi],byte 32
384
    call print_text
401
    call print_text
385
    jmp  still1
402
    jmp  still1
386
    
403
align 4    
387
  nobsl:
404
  nobsl:
388
;write new symbol  
405
;write new symbol  
389
    mov  [edi],al
406
    mov  [edi],al
390
;display new text
407
;display new text
391
    call print_text
408
    call print_text
Line 396... Line 413...
396
    add  esi,60
413
    add  esi,60
397
    cmp  esi,edi
414
    cmp  esi,edi
398
    jnz  still1
415
    jnz  still1
Line 399... Line 416...
399
 
416
 
-
 
417
;exiting from read string loop
400
;exiting from read string loop
418
align 4
401
  read_done:
419
  read_done:
402
;terminate string for file functions
420
;terminate string for file functions
Line 403... Line 421...
403
    mov  [edi],byte 0
421
    mov  [edi],byte 0
404
 
422
 
Line 405... Line 423...
405
    call print_text
423
    call print_text
406
    jmp  still
424
    jmp  still
407
 
425
 
Line 408... Line 426...
408
 
426
align 4
Line 409... Line 427...
409
print_text:
427
print_text:
410
;display start_application string
428
;display start_application string
411
 
429
 
412
    pushad
430
    pushad
413
    
431
    
414
;display text background
432
;display text background
Line 415... Line 433...
415
    mov  eax,13
433
    mov  eax,13
416
    mov  ebx,64*65536+62*6
434
    mov  ebx,64*65536+62*6
417
    mov  ecx,400*65536+12
435
    mov  ecx,400*65536+12
418
    mov  edx,0xffffcc  ;0xeeeeee
436
    mov  edx,0xffffcc  ;0xeeeeee
419
    int  0x40
437
    mcall
420
    
438
    
421
;display text    
439
;display text    
Line 422... Line 440...
422
    mov  eax,4                  
440
    mov  eax,4                  
423
    mov  edx,start_application  ;from start_application string
441
    mov  edx,start_application  ;from start_application string
Line 424... Line 442...
424
    mov  ebx,70*65536+402       ;text center-aligned
442
    mov  ebx,70*65536+402       ;text center-aligned
425
    xor  ecx,ecx                ;black text
443
    xor  ecx,ecx                ;black text
-
 
444
    mov  esi,60                 ;60 symbols
426
    mov  esi,60                 ;60 symbols
445
    mcall
427
    int  0x40
446
 
428
 
447
    popad
Line 429... Line 448...
429
    popad
448
    ret
430
    ret
449
 
431
 
450
window_x_size=524
432
window_x_size=524
451
window_y_size=430
Line 433... Line 452...
433
window_y_size=430
452
align 4
434
calculate_window_pos:
453
calculate_window_pos:
435
;set window size and position for 0 function
454
;set window size and position for 0 function
Line 461... Line 480...
461
 
480
 
462
;   *********************************************
481
;   *********************************************
463
;   *******  WINDOW DEFINITIONS AND DRAW ********
482
;   *******  WINDOW DEFINITIONS AND DRAW ********
Line 464... Line 483...
464
;   *********************************************
483
;   *********************************************
465
 
484
 
466
 
485
align 4
467
draw_window:
486
draw_window:
Line 468... Line 487...
468
;ebp=1 - redraw all
487
;ebp=1 - redraw all
469
;ebp=0 - redraw only process information
488
;ebp=0 - redraw only process information
Line 470... Line 489...
470
 
489
 
471
    test ebp,ebp
490
    test ebp,ebp
-
 
491
    jz   .show_process_info
472
    jz   .show_process_info
492
    
-
 
493
    mov  eax,12                    ; function 12:tell os about windowdraw
Line 473... Line 494...
473
    
494
;    mov  ebx,1                     ; 1, start of draw
474
    mov  eax,12                    ; function 12:tell os about windowdraw
495
    xor	 ebx,ebx
475
    mov  ebx,1                     ; 1, start of draw
496
    inc  ebx
476
    int  0x40                      
497
    mcall                      
477
 
498
 
478
                                   ; DRAW WINDOW
499
                                   ; DRAW WINDOW
479
    xor  eax,eax                   ; function 0 : define and draw window
500
    xor  eax,eax                   ; function 0 : define and draw window
Line 480... Line 501...
480
    mov  ebx,[winxpos]             ; [x start] *65536 + [x size]
501
    mov  ebx,[winxpos]             ; [x start] *65536 + [x size]
481
    mov  ecx,[winypos]             ; [y start] *65536 + [y size]
502
    mov  ecx,[winypos]             ; [y start] *65536 + [y size]
482
    mov  edx,0x14ddffdd  ;ffffff   ; color of work area RRGGBB,8->color
503
    mov  edx,0x14ddffdd  ;ffffff   ; color of work area RRGGBB,8->color
483
    mov  edi,title                ; WINDOW CAPTION;
504
    mov  edi,title                ; WINDOW CAPTION;
484
    int  0x40
505
    mcall
485
 
506
 
486
                                   
507
                                   
487
    mov  eax,4                     ; function 4 : write text to window
-
 
488
    mov  ebx,22*65536+35           ; draw info text with function 4
508
    mov  eax,4                     ; function 4 : write text to window
489
    xor  ecx,ecx
509
    mov  ebx,22*65536+35           ; draw info text with function 4
490
    mov  edx,text
510
    xor  ecx,ecx
491
    mov  esi,text_len
511
    mov  edx,text
492
    mov  eax,4
512
    mov  esi,text_len
-
 
513
    mcall
493
    int  0x40
514
align 4
494
 
515
.show_process_info:
495
.show_process_info:
516
    mov  edi,[list_start]
496
    mov  edi,[list_start]
517
    mov  [list_add],edi
497
    mov  [list_add],edi
518
    mov  dword [index],0
Line 511... Line 532...
511
                                    
532
                                    
512
; previous page button
533
; previous page button
513
    mov  ebx,30*65536+96
534
    mov  ebx,30*65536+96
514
    mov  ecx,380*65536+10
535
    mov  ecx,380*65536+10
515
    mov  edx,51
536
    mov  edx,51
Line 516... Line 537...
516
    int  0x40
537
    mcall
517
                                    
538
                                    
518
; next page button
539
; next page button
519
    mov  ebx,130*65536+96
540
    mov  ebx,130*65536+96
Line 520... Line 541...
520
    inc  edx
541
    inc  edx
521
    int  0x40
542
    mcall
522
                              
543
                              
523
; ">" (text enter) button
544
; ">" (text enter) button
524
    mov  ebx,30*65536+20
545
    mov  ebx,30*65536+20
Line 525... Line 546...
525
    add  ecx,20 shl 16
546
    add  ecx,20 shl 16
526
    inc  edx
547
    inc  edx
527
    int  0x40
548
    mcall
528
                                    
549
                                    
Line 529... Line 550...
529
; run button
550
; run button
530
    mov  ebx,456*65536+50
551
    mov  ebx,456*65536+50
531
    inc  edx
552
    inc  edx
532
    int  0x40
553
    mcall
533
 
554
 
534
; reboot button    
555
; reboot button    
Line 535... Line 556...
535
    sub  ebx,120*65536              
556
    sub  ebx,120*65536              
536
    add  ebx,60
557
    add  ebx,60
537
    sub  ecx,20 shl 16
558
    sub  ecx,20 shl 16
538
    inc  edx
559
    inc  edx
539
    int  0x40
560
    mcall
540
    
561
    
541
;"PREV PAGE", "NEXT PAGE" and "REBOOT" labels
562
;"PREV PAGE", "NEXT PAGE" and "REBOOT" labels
Line 542... Line 563...
542
    mov  eax,4
563
    mov  eax,4
543
    mov  ebx,50*65536+382
564
    mov  ebx,50*65536+382
544
    xor  ecx,ecx
565
    xor  ecx,ecx
545
    mov  edx,tbts
566
    mov  edx,tbts
546
    mov  esi,tbte-tbts
567
    mov  esi,tbte-tbts
547
    int  0x40
568
    mcall
548
 
569
 
Line 549... Line 570...
549
;">" labels
570
;">" labels
550
    mov  eax,4
571
    mov  eax,4
551
    mov  ebx,40*65536+402
572
    mov  ebx,40*65536+402
552
    xor  ecx,ecx
573
    xor  ecx,ecx
553
    mov  edx,tbts_2
574
    mov  edx,tbts_2
554
    mov  esi,1
575
    mov  esi,1
555
    int  0x40
576
    mcall
Line 556... Line 577...
556
 
577
 
557
;"RUN" labels
578
;"RUN" labels
Line 558... Line 579...
558
    mov  eax,4
579
    mov  eax,4
559
    mov  ebx,475*65536+402
580
    mov  ebx,475*65536+402
560
    xor  ecx,ecx
581
    xor  ecx,ecx
561
    mov  edx,tbts_3
582
    mov  edx,tbts_3
562
    mov  esi,tbte_2-tbts_3
583
    mov  esi,tbte_2-tbts_3
563
    int  0x40
584
    mcall
Line 564... Line 585...
564
 
585