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" |