lignite 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,690 @@
1
+ appv = "Performance V1.02"
2
+
3
+ TIMES = 100_000
4
+ MS = 1
5
+
6
+ data32 :Ref
7
+
8
+ data32 :Counter
9
+ data32 :Start
10
+ data32 :Stop
11
+ data32 :Time
12
+ dataf :DataF
13
+ data32 :Data32
14
+ data32 :Data32_1
15
+ data32 :Data32_2
16
+ data32 :Data32_3
17
+ data32 :Data32_4
18
+ data16 :hData8
19
+ data8 :Data8
20
+ array8 :DataS, 10
21
+ array8 :Text, 36
22
+
23
+ vmthread :MAIN do
24
+ data8 :ShowVersion
25
+
26
+ ui_button_pressed(RIGHT_BUTTON, :ShowVersion)
27
+
28
+ self.if :ShowVersion do
29
+ ui_draw_fillrect(BG_COLOR, 4, 50, 170, 28)
30
+ ui_draw_rect(FG_COLOR, 6, 52, 166, 24)
31
+ ui_draw_text(FG_COLOR, 13, 60, appv)
32
+ ui_draw_update
33
+
34
+ loop_while_postcond(:ShowVersion) do
35
+ ui_button_pressed(RIGHT_BUTTON, :ShowVersion)
36
+ end
37
+
38
+ ui_button_flush
39
+ end
40
+
41
+ ui_draw_restore(0)
42
+ ui_draw_topline(0)
43
+ ui_write_led(LED_GREEN)
44
+
45
+ move32_f(TIMES, :DataF)
46
+ ui_draw_fillwindow(BG_COLOR, 0, 0)
47
+
48
+ ui_draw(SELECT_FONT, TINY_FONT)
49
+ ui_draw(TEXT, FG_COLOR, 0, 120, "-----------------------------------")
50
+ ui_draw(UPDATE)
51
+
52
+ ui_draw(SCROLL, 8)
53
+ ui_draw(SELECT_FONT, TINY_FONT)
54
+ ui_draw(TEXT, FG_COLOR, 0, 120, "Performance Test (avr.")
55
+ ui_draw(VALUE, FG_COLOR, 110, 120, :DataF, 7, 0)
56
+ ui_draw(TEXT, FG_COLOR, 145, 120, "instr)")
57
+ ui_draw(UPDATE)
58
+
59
+ ui_draw(SCROLL, 8)
60
+ ui_draw(SELECT_FONT, TINY_FONT)
61
+ ui_draw(TEXT, FG_COLOR, 0, 120, "-----------------------------------")
62
+ ui_draw(UPDATE)
63
+
64
+ ui_draw(SCROLL, 8)
65
+ ui_draw(SELECT_FONT, TINY_FONT)
66
+ ui_draw(TEXT, FG_COLOR, 0, 120, "Byte Code [uS]")
67
+ ui_draw(UPDATE)
68
+
69
+ ui_draw(SCROLL, 8)
70
+
71
+ ui_write(PUT_STRING, "\r\n ---------------------------------------------")
72
+ ui_write(PUT_STRING, "\r\n Performance test (average over ")
73
+ ui_write(VALUE32, TIMES)
74
+ ui_write(PUT_STRING, " inst.)")
75
+ ui_write(PUT_STRING, "\r\n ---------------------------------------------")
76
+ ui_write(PUT_STRING, "\r\n Byte code Time [uS]\r\n\n")
77
+ ui_flush
78
+
79
+ call(:Test_REF)
80
+ call(:Test_CALL)
81
+
82
+ call(:Test_CALL_4x32)
83
+ call(:Test_MOVEF_32)
84
+ call(:Test_MOVE32_F)
85
+ call(:Test_MOVEF_F)
86
+ call(:Test_ADD32)
87
+ call(:Test_ADDF)
88
+ call(:Test_INPUT_READ)
89
+ # call(:Test_INPUT_DEVICE_READY_PCT)
90
+ call(:Test_ARRAY_READ)
91
+ call(:Test_READ8)
92
+ call(:Test_UI_BUTTON_SHORTPRESS)
93
+ call(:Test_JR)
94
+ call(:Test_NOP)
95
+
96
+ # call(:Test_UI_DRAW_CLEAN)
97
+ # call(:Test_UI_DRAW_TEXT_10_aligned)
98
+ # call(:Test_UI_DRAW_TEXT_10_not_aligned)
99
+ # call(:Test_UI_DRAW_ICON)
100
+ # call(:Test_UI_DRAW_BMPFILE)
101
+ # call(:Test_UI_DRAW_RECT)
102
+ # call(:Test_UI_DRAW_PIXEL)
103
+ # call(:Test_UI_DRAW_UPDATE)
104
+ call(:Test_SLEEP)
105
+
106
+ ui_write(PUT_STRING, "\r\n ---------------------------------------------\r\n")
107
+ ui_flush
108
+
109
+ self.loop do
110
+ # endless
111
+ end
112
+ end
113
+
114
+ sub :Test_REF do
115
+ move32_32(0, :Counter)
116
+ timer_read_us(:Start)
117
+
118
+ loop_while lambda {
119
+ add32(1, :Counter, :Counter)
120
+ }, Lt32.new(:Counter, TIMES)
121
+
122
+ timer_read_us(:Stop)
123
+ sub32(:Stop, :Start, :Ref)
124
+ end
125
+
126
+ sub :Test_CALL do
127
+ ui_draw(SCROLL, 8)
128
+ ui_draw(SELECT_FONT, TINY_FONT)
129
+ ui_draw(TEXT, FG_COLOR, 0, 120, "CALL() . . . . . . . . . . . ")
130
+ ui_draw(UPDATE)
131
+
132
+ ui_write(PUT_STRING, " CALL().......................... ")
133
+ ui_flush
134
+ move32_32(0, :Counter)
135
+ timer_read_us(:Start)
136
+
137
+ loop_while lambda {
138
+ # TEST ***********************************************
139
+ call(:CallNoPar)
140
+ # ****************************************************
141
+ add32(1, :Counter, :Counter)
142
+ }, Lt32.new(:Counter, TIMES)
143
+
144
+ timer_read_us(:Stop)
145
+ sub32(:Stop, :Start, :Time)
146
+ sub32(:Time, :Ref, :Time)
147
+
148
+ call(:ShowResult, :Time)
149
+ end
150
+
151
+ sub :Test_CALL_4x32 do
152
+ ui_draw(SCROLL, 8)
153
+ ui_draw(SELECT_FONT, TINY_FONT)
154
+ ui_draw(TEXT, FG_COLOR, 0, 120, "CALL(4xDATA32...) . . . . . ")
155
+ ui_draw(UPDATE)
156
+
157
+ ui_write(PUT_STRING, " CALL(4xDATA32...)............... ")
158
+ ui_flush
159
+ move32_32(0, :Counter)
160
+ timer_read_us(:Start)
161
+
162
+ loop_while lambda {
163
+ # TEST ***********************************************
164
+ call(:Call4Par, :Data32_1, :Data32_2, :Data32_3, :Data32_4)
165
+ # ****************************************************
166
+ add32(1, :Counter, :Counter)
167
+ }, Lt32.new(:Counter, TIMES)
168
+
169
+ timer_read_us(:Stop)
170
+ sub32(:Stop, :Start, :Time)
171
+ sub32(:Time, :Ref, :Time)
172
+
173
+ call(:ShowResult, :Time)
174
+ end
175
+
176
+ sub :Test_MOVEF_32 do
177
+ ui_draw(SCROLL, 8)
178
+ ui_draw(SELECT_FONT, TINY_FONT)
179
+ ui_draw(TEXT, FG_COLOR, 0, 120, "MOVEF_32 . . . . . . . . . . ")
180
+ ui_draw(UPDATE)
181
+
182
+ ui_write(PUT_STRING, " MOVEF_32........................ ")
183
+ ui_flush
184
+ move32_32(0, :Counter)
185
+ timer_read_us(:Start)
186
+
187
+ loop_while lambda {
188
+ # TEST ***********************************************
189
+ movef_32(:DataF, :Data32)
190
+ # ****************************************************
191
+ add32(1, :Counter, :Counter)
192
+ }, Lt32.new(:Counter, TIMES)
193
+
194
+ timer_read_us(:Stop)
195
+ sub32(:Stop, :Start, :Time)
196
+ sub32(:Time, :Ref, :Time)
197
+
198
+ call(:ShowResult, :Time)
199
+ end
200
+
201
+ sub :Test_MOVE32_F do
202
+ ui_draw(SCROLL, 8)
203
+ ui_draw(SELECT_FONT, TINY_FONT)
204
+ ui_draw(TEXT, FG_COLOR, 0, 120, "MOVE32_F. . . . . . . . . . ")
205
+ ui_draw(UPDATE)
206
+
207
+ ui_write(PUT_STRING, " MOVE32_F........................ ")
208
+ ui_flush
209
+ move32_32(0, :Counter)
210
+ timer_read_us(:Start)
211
+
212
+ loop_while lambda {
213
+ # TEST ***********************************************
214
+ move32_f(:Data32, :DataF)
215
+ # ****************************************************
216
+ add32(1, :Counter, :Counter)
217
+ }, Lt32.new(:Counter, TIMES)
218
+
219
+ timer_read_us(:Stop)
220
+ sub32(:Stop, :Start, :Time)
221
+ sub32(:Time, :Ref, :Time)
222
+
223
+ call(:ShowResult, :Time)
224
+ end
225
+
226
+ sub :Test_MOVEF_F do
227
+ ui_draw(SCROLL, 8)
228
+ ui_draw(SELECT_FONT, TINY_FONT)
229
+ ui_draw(TEXT, FG_COLOR, 0, 120, "MOVEF_F. . . . . . . . . . . ")
230
+ ui_draw(UPDATE)
231
+
232
+ ui_write(PUT_STRING, " MOVEF_F......................... ")
233
+ ui_flush
234
+ move32_32(0, :Counter)
235
+ timer_read_us(:Start)
236
+
237
+ loop_while lambda {
238
+ # TEST ***********************************************
239
+ movef_f(:DataF, :DataF)
240
+ # ****************************************************
241
+ add32(1, :Counter, :Counter)
242
+ }, Lt32.new(:Counter, TIMES)
243
+
244
+ timer_read_us(:Stop)
245
+ sub32(:Stop, :Start, :Time)
246
+ sub32(:Time, :Ref, :Time)
247
+
248
+ call(:ShowResult, :Time)
249
+ end
250
+
251
+ sub :Test_ADD32 do
252
+ ui_draw(SCROLL, 8)
253
+ ui_draw(SELECT_FONT, TINY_FONT)
254
+ ui_draw(TEXT, FG_COLOR, 0, 120, "ADD32 . . . . . . . . . . . ")
255
+ ui_draw(UPDATE)
256
+
257
+ ui_write(PUT_STRING, " ADD32........................... ")
258
+ ui_flush
259
+ move32_32(0, :Counter)
260
+ timer_read_us(:Start)
261
+
262
+ loop_while lambda {
263
+ # TEST ***********************************************
264
+ add32(1, :Data32, :Data32)
265
+ # ****************************************************
266
+ add32(1, :Counter, :Counter)
267
+ }, Lt32.new(:Counter, TIMES)
268
+
269
+ timer_read_us(:Stop)
270
+ sub32(:Stop, :Start, :Time)
271
+ sub32(:Time, :Ref, :Time)
272
+
273
+ call(:ShowResult, :Time)
274
+ end
275
+
276
+ sub :Test_ADDF do
277
+ ui_draw(SCROLL, 8)
278
+ ui_draw(SELECT_FONT, TINY_FONT)
279
+ ui_draw(TEXT, FG_COLOR, 0, 120, "ADDF . . . . . . . . . . . . ")
280
+ ui_draw(UPDATE)
281
+
282
+ ui_write(PUT_STRING, " ADDF............................ ")
283
+ ui_flush
284
+ move32_32(0, :Counter)
285
+ timer_read_us(:Start)
286
+
287
+ loop_while lambda {
288
+ # TEST ***********************************************
289
+ addf(1.0, :DataF, :DataF)
290
+ # ****************************************************
291
+ add32(1, :Counter, :Counter)
292
+ }, Lt32.new(:Counter, TIMES)
293
+
294
+ timer_read_us(:Stop)
295
+ sub32(:Stop, :Start, :Time)
296
+ sub32(:Time, :Ref, :Time)
297
+
298
+ call(:ShowResult, :Time)
299
+ end
300
+
301
+ sub :Test_INPUT_READ do
302
+ ui_draw(SCROLL, 8)
303
+ ui_draw(SELECT_FONT, TINY_FONT)
304
+ ui_draw(TEXT, FG_COLOR, 0, 120, "INPUT_READ. . . . . . . . . ")
305
+ ui_draw(UPDATE)
306
+
307
+ ui_write(PUT_STRING, " INPUT_READ...................... ")
308
+ ui_flush
309
+ move32_32(0, :Counter)
310
+ timer_read_us(:Start)
311
+
312
+ loop_while lambda {
313
+ # TEST ***********************************************
314
+ input_read(0, 0, 0, -1, :Data8)
315
+ # ****************************************************
316
+ add32(1, :Counter, :Counter)
317
+ }, Lt32.new(:Counter, TIMES)
318
+
319
+ timer_read_us(:Stop)
320
+ sub32(:Stop, :Start, :Time)
321
+ sub32(:Time, :Ref, :Time)
322
+
323
+ call(:ShowResult, :Time)
324
+ end
325
+
326
+ sub :Test_INPUT_DEVICE_READY_PCT do
327
+ ui_draw(SCROLL, 8)
328
+ ui_draw(SELECT_FONT, TINY_FONT)
329
+ ui_draw(TEXT, FG_COLOR, 0, 120, "INPUT_DEVICE(READY_PCT...) . ")
330
+ ui_draw(UPDATE)
331
+
332
+ ui_write(PUT_STRING, " INPUT_DEVICE(READY_PCT...)...... ")
333
+ ui_flush
334
+ move32_32(0, :Counter)
335
+ timer_read_us(:Start)
336
+
337
+ loop_while lambda {
338
+ # TEST ***********************************************
339
+ input_device(READY_PCT, 0, 0, 0, -1, :Data8)
340
+ # ****************************************************
341
+ add32(1, :Counter, :Counter)
342
+ }, Lt32.new(:Counter, TIMES)
343
+
344
+ timer_read_us(:Stop)
345
+ sub32(:Stop, :Start, :Time)
346
+ sub32(:Time, :Ref, :Time)
347
+
348
+ call(:ShowResult, :Time)
349
+ end
350
+
351
+ sub :Test_ARRAY_READ do
352
+ ui_draw(SCROLL, 8)
353
+ ui_draw(SELECT_FONT, TINY_FONT)
354
+ ui_draw(TEXT, FG_COLOR, 0, 120, "ARRAY_READ(...) . . . . . . ")
355
+ ui_draw(UPDATE)
356
+
357
+ ui_write(PUT_STRING, " ARRAY_READ(...)................. ")
358
+ ui_flush
359
+ array(CREATE8, 10, :hData8)
360
+ move32_32(0, :Counter)
361
+ timer_read_us(:Start)
362
+
363
+ loop_while lambda {
364
+ # TEST ***********************************************
365
+ array_read(:hData8, 5, :Data8)
366
+ # ****************************************************
367
+ add32(1, :Counter, :Counter)
368
+ }, Lt32.new(:Counter, TIMES)
369
+
370
+ timer_read_us(:Stop)
371
+ sub32(:Stop, :Start, :Time)
372
+ sub32(:Time, :Ref, :Time)
373
+
374
+ call(:ShowResult, :Time)
375
+ end
376
+
377
+ sub :Test_READ8 do
378
+ ui_draw(SCROLL, 8)
379
+ ui_draw(SELECT_FONT, TINY_FONT)
380
+ ui_draw(TEXT, FG_COLOR, 0, 120, "READ8(...) . . . . . . . . . ")
381
+ ui_draw(UPDATE)
382
+
383
+ ui_write(PUT_STRING, " READ8(...)...................... ")
384
+ ui_flush
385
+ move32_32(0, :Counter)
386
+ timer_read_us(:Start)
387
+
388
+ loop_while lambda {
389
+ # TEST ***********************************************
390
+ read8(:DataS, 5, :Data8)
391
+ # ****************************************************
392
+ add32(1, :Counter, :Counter)
393
+ }, Lt32.new(:Counter, TIMES)
394
+
395
+ timer_read_us(:Stop)
396
+ sub32(:Stop, :Start, :Time)
397
+ sub32(:Time, :Ref, :Time)
398
+
399
+ call(:ShowResult, :Time)
400
+ end
401
+
402
+ sub :Test_UI_BUTTON_SHORTPRESS do
403
+ ui_draw(SCROLL, 8)
404
+ ui_draw(SELECT_FONT, TINY_FONT)
405
+ ui_draw(TEXT, FG_COLOR, 0, 120, "UI_BUTTON(SHORTPRESS...). . ")
406
+ ui_draw(UPDATE)
407
+
408
+ ui_write(PUT_STRING, " UI_BUTTON(SHORTPRESS...)........ ")
409
+ ui_flush
410
+ move32_32(0, :Counter)
411
+ timer_read_us(:Start)
412
+
413
+ loop_while lambda {
414
+ # TEST ***********************************************
415
+ ui_button(SHORTPRESS, ENTER_BUTTON, :Data8)
416
+ # ****************************************************
417
+ add32(1, :Counter, :Counter)
418
+ }, Lt32.new(:Counter, TIMES)
419
+
420
+ timer_read_us(:Stop)
421
+ sub32(:Stop, :Start, :Time)
422
+ sub32(:Time, :Ref, :Time)
423
+
424
+ call(:ShowResult, :Time)
425
+ end
426
+
427
+ sub :Test_JR do
428
+ ui_draw(SCROLL, 8)
429
+ ui_draw(SELECT_FONT, TINY_FONT)
430
+ ui_draw(TEXT, FG_COLOR, 0, 120, "JR(...). . . . . . . . . . . ")
431
+ ui_draw(UPDATE)
432
+
433
+ ui_write(PUT_STRING, " JR(...)......................... ")
434
+ ui_flush
435
+ move32_32(0, :Counter)
436
+ timer_read_us(:Start)
437
+
438
+ loop_while lambda {
439
+ # TEST ***********************************************
440
+ jr(Complex(0, 2))
441
+ # ****************************************************
442
+ add32(1, :Counter, :Counter)
443
+ }, Lt32.new(:Counter, TIMES)
444
+
445
+ timer_read_us(:Stop)
446
+ sub32(:Stop, :Start, :Time)
447
+ sub32(:Time, :Ref, :Time)
448
+
449
+ call(:ShowResult, :Time)
450
+ end
451
+
452
+ sub :Test_NOP do
453
+ ui_draw(SCROLL, 8)
454
+ ui_draw(SELECT_FONT, TINY_FONT)
455
+ ui_draw(TEXT, FG_COLOR, 0, 120, "NOP . . . . . . . . . . . . ")
456
+ ui_draw(UPDATE)
457
+
458
+ ui_write(PUT_STRING, " NOP ............................ ")
459
+ ui_flush
460
+ move32_32(0, :Counter)
461
+ timer_read_us(:Start)
462
+
463
+ loop_while lambda {
464
+ # TEST ***********************************************
465
+ nop
466
+ # ****************************************************
467
+ add32(1, :Counter, :Counter)
468
+ }, Lt32.new(:Counter, TIMES)
469
+
470
+ timer_read_us(:Stop)
471
+ sub32(:Stop, :Start, :Time)
472
+ sub32(:Time, :Ref, :Time)
473
+
474
+ call(:ShowResult, :Time)
475
+ end
476
+
477
+ sub :Test_SLEEP do
478
+ ui_draw(SCROLL, 8)
479
+ ui_draw(SELECT_FONT, TINY_FONT)
480
+ ui_draw(TEXT, FG_COLOR, 0, 120, "SLEEP() . . . . . . . . . . ")
481
+ ui_draw(UPDATE)
482
+
483
+ ui_write(PUT_STRING, " SLEEP()......................... ")
484
+ ui_flush
485
+ move32_32(0, :Counter)
486
+ timer_read_us(:Start)
487
+
488
+ loop_while lambda {
489
+ # TEST ***********************************************
490
+ self.sleep
491
+ # ****************************************************
492
+ add32(1, :Counter, :Counter)
493
+ }, Lt32.new(:Counter, TIMES)
494
+
495
+ timer_read_us(:Stop)
496
+ sub32(:Stop, :Start, :Time)
497
+ sub32(:Time, :Ref, :Time)
498
+
499
+ call(:ShowResult, :Time)
500
+ end
501
+
502
+ sub :Test_ui_draw_CLEAN do
503
+ ui_write(PUT_STRING, " UI_DRAW(FILLWINDOW,0,0,0)....... ")
504
+ ui_flush
505
+ move32_32(0, :Counter)
506
+ timer_read_us(:Start)
507
+
508
+ loop_while lambda {
509
+ # TEST ***********************************************
510
+ ui_draw(FILLWINDOW, 0, 0, 0)
511
+ # ****************************************************
512
+ add32(1, :Counter, :Counter)
513
+ }, Lt32.new(:Counter, TIMES)
514
+
515
+ timer_read_us(:Stop)
516
+ sub32(:Stop, :Start, :Time)
517
+ sub32(:Time, :Ref, :Time)
518
+
519
+ call(:ShowResult, :Time)
520
+ end
521
+
522
+ sub :Test_ui_draw_TEXT_10_aligned do
523
+ ui_write(PUT_STRING, " UI_DRAW(TEXT,1,0,0,\"0123456789\") ")
524
+ ui_flush
525
+ move32_32(0, :Counter)
526
+ timer_read_us(:Start)
527
+
528
+ loop_while lambda {
529
+ # TEST ***********************************************
530
+ ui_draw(TEXT, FG_COLOR, 0, 0, "0123456789")
531
+ # ****************************************************
532
+ add32(1, :Counter, :Counter)
533
+ }, Lt32.new(:Counter, TIMES)
534
+
535
+ timer_read_us(:Stop)
536
+ sub32(:Stop, :Start, :Time)
537
+ sub32(:Time, :Ref, :Time)
538
+
539
+ call(:ShowResult, :Time)
540
+ end
541
+
542
+ sub :Test_ui_draw_TEXT_10_not_aligned do
543
+ ui_write(PUT_STRING, " UI_DRAW(TEXT,1,3,0,\"0123456789\") ")
544
+ ui_flush
545
+ move32_32(0, :Counter)
546
+ timer_read_us(:Start)
547
+
548
+ loop_while lambda {
549
+ # TEST ***********************************************
550
+ ui_draw(TEXT, FG_COLOR, 3, 16, "0123456789")
551
+ # ****************************************************
552
+ add32(1, :Counter, :Counter)
553
+ }, Lt32.new(:Counter, TIMES)
554
+
555
+ timer_read_us(:Stop)
556
+ sub32(:Stop, :Start, :Time)
557
+ sub32(:Time, :Ref, :Time)
558
+
559
+ call(:ShowResult, :Time)
560
+ end
561
+
562
+ sub :Test_ui_draw_ICON do
563
+ ui_write(PUT_STRING, " UI_DRAW(ICON...)................ ")
564
+ ui_flush
565
+ move32_32(0, :Counter)
566
+ timer_read_us(:Start)
567
+
568
+ loop_while lambda {
569
+ # TEST ***********************************************
570
+ ui_draw(ICON, FG_COLOR, 0, 28, LARGE_ICON, WARNSIGN)
571
+ # ****************************************************
572
+ add32(1, :Counter, :Counter)
573
+ }, Lt32.new(:Counter, TIMES)
574
+
575
+ timer_read_us(:Stop)
576
+ sub32(:Stop, :Start, :Time)
577
+ sub32(:Time, :Ref, :Time)
578
+
579
+ call(:ShowResult, :Time)
580
+ end
581
+
582
+ sub :Test_ui_draw_BMPFILE do
583
+ ui_write(PUT_STRING, " UI_DRAW(BMPFILE...)............. ")
584
+ ui_flush
585
+ move32_32(0, :Counter)
586
+ timer_read_us(:Start)
587
+
588
+ loop_while lambda {
589
+ # TEST ***********************************************
590
+ ui_draw(BMPFILE, FG_COLOR, 16, 50, "144x65_POP3")
591
+ # ****************************************************
592
+ add32(1, :Counter, :Counter)
593
+ }, Lt32.new(:Counter, TIMES)
594
+
595
+ timer_read_us(:Stop)
596
+ sub32(:Stop, :Start, :Time)
597
+ sub32(:Time, :Ref, :Time)
598
+
599
+ call(:ShowResult, :Time)
600
+ end
601
+
602
+ sub :Test_ui_draw_RECT do
603
+ ui_write(PUT_STRING, " UI_DRAW(RECT...)................ ")
604
+ ui_flush
605
+ move32_32(0, :Counter)
606
+ timer_read_us(:Start)
607
+
608
+ loop_while lambda {
609
+ # TEST ***********************************************
610
+ ui_draw(RECT, FG_COLOR, 15, 49, 146, 67)
611
+ # ****************************************************
612
+ add32(1, :Counter, :Counter)
613
+ }, Lt32.new(:Counter, TIMES)
614
+
615
+ timer_read_us(:Stop)
616
+ sub32(:Stop, :Start, :Time)
617
+ sub32(:Time, :Ref, :Time)
618
+
619
+ call(:ShowResult, :Time)
620
+ end
621
+
622
+ sub :Test_ui_draw_PIXEL do
623
+ ui_write(PUT_STRING, " UI_DRAW(PIXEL...)............... ")
624
+ ui_flush
625
+ move32_32(0, :Counter)
626
+ timer_read_us(:Start)
627
+
628
+ loop_while lambda {
629
+ # TEST ***********************************************
630
+ ui_draw(PIXEL, FG_COLOR, 0, 120)
631
+ # ****************************************************
632
+ add32(1, :Counter, :Counter)
633
+ }, Lt32.new(:Counter, TIMES)
634
+
635
+ timer_read_us(:Stop)
636
+ sub32(:Stop, :Start, :Time)
637
+ sub32(:Time, :Ref, :Time)
638
+
639
+ call(:ShowResult, :Time)
640
+ end
641
+
642
+ sub :Test_ui_draw_UPDATE do
643
+ ui_write(PUT_STRING, " UI_DRAW(UPDATE)................. ")
644
+ ui_flush
645
+ move32_32(0, :Counter)
646
+ timer_read_us(:Start)
647
+
648
+ loop_while lambda {
649
+ # TEST ***********************************************
650
+ ui_draw(UPDATE)
651
+ # ****************************************************
652
+ add32(1, :Counter, :Counter)
653
+ }, Lt32.new(:Counter, TIMES)
654
+
655
+ timer_read_us(:Stop)
656
+ sub32(:Stop, :Start, :Time)
657
+ sub32(:Time, :Ref, :Time)
658
+
659
+ call(:ShowResult, :Time)
660
+ end
661
+
662
+ sub :ShowResult do
663
+ in32 :Timer
664
+
665
+ dataf :Tmp1
666
+ dataf :Tmp2
667
+
668
+ move32_f(:Timer, :Tmp1)
669
+ move32_f(MS, :Tmp2)
670
+ mulf(:Tmp1, :Tmp2, :Tmp1)
671
+ move32_f(TIMES, :Tmp2)
672
+ divf(:Tmp1, :Tmp2, :Tmp1)
673
+ ui_write(FLOATVALUE, :Tmp1, 6, 0)
674
+ ui_write(PUT_STRING, "\r\n")
675
+ ui_flush
676
+
677
+ ui_draw(SELECT_FONT, TINY_FONT)
678
+ ui_draw(VALUE, FG_COLOR, 145, 120, :Tmp1, 6, 0)
679
+ ui_draw(UPDATE)
680
+ end
681
+
682
+ sub :CallNoPar do
683
+ end
684
+
685
+ sub :Call4Par do
686
+ in32 :Data32_1
687
+ in32 :Data32_2
688
+ out32 :Data32_3
689
+ out32 :Data32_4
690
+ end