Rev 1509 | Details | Compare with Previous | Last modification | View Log
Rev | Author | Line No. | Line |
---|---|---|---|
1518 | alone | 1 | prdword_dehl ;для печати на экран |
2 | ;dehl=num |
||
3 | ld bc,prdwordbuf |
||
4 | push bc |
||
5 | call prdword_dehl_tobc |
||
1509 | alone | 6 | pop de |
7 | ld hl,10 |
||
8 | jp sendchars |
||
9 | |||
1518 | alone | 10 | prdword_dehl_tobc ;для печати в буфер |
11 | ;dehl=num |
||
12 | ;bc=buf |
||
13 | push de |
||
1509 | alone | 14 | push hl |
1518 | alone | 15 | exx |
1509 | alone | 16 | pop iy |
1518 | alone | 17 | pop hl ;hliy=num ;bc'=buf addr |
1509 | alone | 18 | ld a,' ' |
19 | ld (prnumdwordcmd_zero_sym),a |
||
20 | ld a,h |
||
21 | or l |
||
22 | jr z,prdword_skiphsw |
||
23 | ld bc,+(-1000000000>>16) |
||
24 | ld de,+(-1000000000&0xffff) |
||
25 | call prdig32bit |
||
26 | ld bc,+(-100000000>>16) |
||
27 | ld de,+(-100000000&0xffff) |
||
28 | call prdig32bit |
||
29 | ld bc,+(-10000000>>16) |
||
30 | ld de,+(-10000000&0xffff) |
||
31 | call prdig32bit |
||
32 | ld c,+(-1000000>>16) |
||
33 | ld de,+(-1000000&0xffff) |
||
34 | call prdig32bit |
||
35 | ld c,+(-100000>>16) |
||
36 | ld de,+(-100000&0xffff) |
||
37 | call prdig32bit |
||
1518 | alone | 38 | jp _prword_hliy |
39 | |||
40 | prword_hl_tobc ;для печати в буфер |
||
41 | ;hl=num |
||
42 | ;bc=buf |
||
43 | push hl |
||
44 | exx |
||
45 | pop iy |
||
46 | ld a,' ' |
||
47 | ld (prnumdwordcmd_zero_sym),a |
||
48 | ld hl,0 |
||
49 | jr _prword_hliy ;hliy=num ;bc'=buf addr |
||
1509 | alone | 50 | prdword_skiphsw |
51 | call prnumdwordcmd_azero |
||
52 | call prnumdwordcmd_azero_a |
||
53 | call prnumdwordcmd_azero_a |
||
54 | call prnumdwordcmd_azero_a |
||
55 | call prnumdwordcmd_azero_a |
||
1518 | alone | 56 | _prword_hliy ;hliy=num ;bc'=buf addr |
1509 | alone | 57 | ld bc,+(-10000>>16) |
58 | ld de,+(-10000&0xffff) |
||
59 | call prdig32bit |
||
60 | push iy |
||
61 | pop hl |
||
62 | ;hl=num |
||
1518 | alone | 63 | ;bc'=buf addr |
1509 | alone | 64 | ld bc,+(-1000&0xffff) |
65 | call prdig16bit |
||
66 | ld bc,+(-100&0xffff) |
||
67 | call prdig16bit |
||
68 | ld c,+(-10&0xff) |
||
69 | call prdig16bit |
||
70 | ld a,l |
||
71 | add a,'0' |
||
72 | exx |
||
1518 | alone | 73 | ld (bc),a |
74 | inc bc |
||
1509 | alone | 75 | ret |
76 | prdig16bit |
||
77 | ;hl=num |
||
78 | ;bc=-divisor |
||
1518 | alone | 79 | ;bc'=buf addr |
1509 | alone | 80 | ld a,'0'-1 |
81 | prdig16bit0 |
||
82 | inc a |
||
83 | add hl,bc |
||
84 | jp c,prdig16bit0 |
||
85 | sbc hl,bc |
||
86 | prdword_digok |
||
87 | cp '0' |
||
88 | jr z,prnumdwordcmd_azero |
||
89 | exx |
||
1518 | alone | 90 | ld (bc),a |
91 | inc bc |
||
1509 | alone | 92 | exx |
1518 | alone | 93 | ld a,0x02 ;"ld (bc),a" |
94 | ld (prnumdwordcmd_zero_ldbca),a ;все последующие нули видимые |
||
1509 | alone | 95 | ld a,'0' |
96 | ld (prnumdwordcmd_zero_sym),a ;все последующие нули печатаем не пробелом, а нулём |
||
97 | ret |
||
98 | prnumdwordcmd_azero ;печать нуля |
||
99 | prnumdwordcmd_zero_sym=$+1 |
||
100 | ld a,' ' |
||
101 | prnumdwordcmd_azero_a |
||
102 | exx |
||
1518 | alone | 103 | prnumdwordcmd_zero_ldbca=$ ;0: для вывода размера файла (не портит содержимое буфера под незначащими нулями) ;0x02 "ld (bc),a": для вывода files, size |
104 | ld (bc),a |
||
105 | inc bc |
||
1509 | alone | 106 | exx |
107 | ret |
||
108 | prdig32bit |
||
109 | ;hliy=num |
||
110 | ;bcde=-divisor |
||
1518 | alone | 111 | ;bc'=buf addr |
1509 | alone | 112 | ld a,'0'-1 |
113 | prdig32bit0 |
||
114 | inc a |
||
115 | add iy,de |
||
116 | adc hl,bc |
||
117 | jp c,prdig32bit0 |
||
118 | ex af,af' ;' |
||
119 | ld a,ly |
||
120 | sub e |
||
121 | ld ly,a |
||
122 | ld a,hy |
||
123 | sbc a,d |
||
124 | ld hy,a |
||
125 | sbc hl,bc |
||
126 | ex af,af' ;' |
||
127 | jp prdword_digok |
||
128 | |||
129 | prdwordbuf |
||
130 | db "1234567890" |