Rev 205 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 205 | Rev 223 | ||
---|---|---|---|
1 | ; struc DiagramData size,color |
1 | ; struc DiagramData size,color |
2 | ; { |
2 | ; { |
3 | ; .color dd color |
3 | ; .color dd color |
4 | ; times size db 0 ;;change to value > 100 |
4 | ; times size db 0 ;;change to value > 100 |
5 | ; } |
5 | ; } |
6 | 6 | ||
7 | ;------------------------------------------------------ |
7 | ;------------------------------------------------------ |
8 | d_show: |
8 | d_show: |
9 | ; esi - pointer to struct |
9 | ; esi - pointer to struct |
10 | ; åñëè öâåò ôîíà, òî íå ðèñóåì |
10 | ; åñëè öâåò ôîíà, òî íå ðèñóåì |
11 | cmp dword[esi], tcol |
11 | cmp dword[esi], tcol |
12 | jne @f |
12 | jne @f |
13 | ret |
13 | ret |
14 | @@: pusha |
14 | @@: pusha |
15 | 15 | ||
16 | mov edx, [esi] |
16 | mov edx, [esi] |
17 | add esi, 4 |
17 | add esi, 4 |
18 | mov edi, esi |
18 | mov edi, esi |
19 | add edi, 285 |
19 | add edi, 285 |
20 | 20 | ||
21 | mov ebx, 12 * 65536 + 13 |
21 | mov ebx, 12 * 65536 + 13 |
22 | xor eax, eax |
22 | xor eax, eax |
23 | lodsb |
23 | lodsb |
24 | mov cx, 220 |
24 | mov cx, 240 |
25 | sub ecx, eax |
25 | sub ecx, eax |
26 | 26 | ||
27 | @@: shl ecx, 16 |
27 | @@: shl ecx, 16 |
28 | mov cx, 220 |
28 | mov cx, 240 |
29 | lodsb |
29 | lodsb |
30 | sub ecx, eax |
30 | sub ecx, eax |
31 | mov eax, 38 |
31 | mov eax, 38 |
32 | int 0x40 |
32 | int 0x40 |
33 | add ebx, 0x10001 |
33 | add ebx, 0x10001 |
34 | cmp esi, edi |
34 | cmp esi, edi |
35 | jle @b |
35 | jle @b |
36 | 36 | ||
37 | popa |
37 | popa |
38 | ret |
38 | ret |
39 | ;------------------------------------------------------ |
39 | ;------------------------------------------------------ |
40 | d_add: |
40 | d_add: |
41 | ; esi - pointer to struct |
41 | ; esi - pointer to struct |
42 | ; al - value |
42 | ; al - value |
43 | pusha |
43 | pusha |
44 | cmp byte [diag_add_v], 0 ; äîáàâëÿåì òîëüêî ïî òàéìåðó |
44 | cmp byte [diag_add_v], 0 ; äîáàâëÿåì òîëüêî ïî òàéìåðó |
45 | je d_add_end |
45 | je d_add_end |
46 | cld |
46 | cld |
47 | mov ecx, 285 |
47 | mov ecx, 285 |
48 | add esi, 4 |
48 | add esi, 4 |
49 | mov edi, esi |
49 | mov edi, esi |
50 | inc esi |
50 | inc esi |
51 | rep movsb |
51 | rep movsb |
52 | cmp al, 100 |
52 | cmp al, 100 |
53 | jbe @f |
53 | jbe @f |
54 | mov al, 100 |
54 | mov al, 100 |
55 | @@: mov [edi], al |
55 | @@: mov [edi], al |
56 | d_add_end: |
56 | d_add_end: |
57 | popa |
57 | popa |
58 | ret |
58 | ret |