Subversion Repositories NedoOS

Rev

Details | Last modification | View Log

Rev Author Line No. Line
574 alone 1
prword
2
;hl=num
3
        exx
4
        ld hl,0
5
        exx
6
prdword
7
;hl'hl=num
8
        ld de,prdwordbuf
9
        push de
658 alone 10
        call prdword_de_withspaces
574 alone 11
        pop hl
12
        ld de,10
13
        jp cmdprNchars
658 alone 14
prdword_de_withspaces
15
        ld a,0x12 ;"ld (de),a"
16
        jr prdword_de_a
574 alone 17
prdword_de
18
;hl'hl=num
19
;de=buf
658 alone 20
        xor a
21
prdword_de_a
22
        ld (prnumdwordcmd_zero_lddea),a
23
        ld a,' '
24
        ld (prnumdwordcmd_zero_sym),a
574 alone 25
        exx
658 alone 26
        ld a,h
27
        or l
28
        jr z,prdword_skiphsw
574 alone 29
        ld bc,1000000000/65536
30
        exx
31
        ld bc,1000000000&0xffff
658 alone 32
        call prnumdwordcmdbcbc0
574 alone 33
        exx
34
        ld bc,100000000/65536
35
        exx
36
        ld bc,100000000&0xffff
658 alone 37
        call prnumdwordcmdbcbc0
574 alone 38
        exx
39
        ld bc,10000000/65536
40
        exx
41
        ld bc,10000000&0xffff
658 alone 42
        call prnumdwordcmdbcbc0
574 alone 43
        exx
44
        ld bc,1000000/65536
45
        exx
46
        ld bc,1000000&0xffff
658 alone 47
        call prnumdwordcmdbcbc0
574 alone 48
        exx
49
        ld bc,100000/65536
50
        exx
51
        ld bc,100000&0xffff
658 alone 52
        call prnumdwordcmdbcbc0
53
        jp prdword_skiphswq
54
prdword_skiphsw
574 alone 55
        exx
658 alone 56
        call prnumdwordcmd_azero
57
        call prnumdwordcmd_azero
58
        call prnumdwordcmd_azero
59
        call prnumdwordcmd_azero
60
        call prnumdwordcmd_azero
61
prdword_skiphswq
62
        exx
574 alone 63
        ld bc,0
64
        exx
65
        ld bc,10000
658 alone 66
        call prnumdwordcmdbcbc0
574 alone 67
        ld bc,1000
68
        call prnumdwordcmd0
69
        ld bc,100
70
        call prnumdwordcmd0
658 alone 71
        ld  c,10
574 alone 72
        call prnumdwordcmd0
658 alone 73
        ld a,l
74
        add a,'0'
75
        ld (de),a
76
        inc de
77
        ret
78
        ;ld a,0x12 ;"ld (de),a"
79
        ;ld (prnumdwordcmd_zero_lddea),a
80
        ;ld bc,1
574 alone 81
prnumdwordcmd0
658 alone 82
;bc=digit weight
574 alone 83
        ld a,'0'-1
658 alone 84
        or a
574 alone 85
prnumdwordcmd1
86
        inc a
658 alone 87
        sbc hl,bc
88
        jp nc,prnumdwordcmd1
89
        add hl,bc
90
prnumdwordcmd_digok
91
        cp '0'
92
        jr z,prnumdwordcmd_azero
93
        ld (de),a
94
        inc de
95
        ld a,0x12 ;"ld (de),a"
96
        ld (prnumdwordcmd_zero_lddea),a
97
        ld a,'0'
98
        ld (prnumdwordcmd_zero_sym),a
99
        ret
100
prnumdwordcmd_azero
101
prnumdwordcmd_zero_sym=$+1
102
        ld a,' '
103
prnumdwordcmd_zero_lddea=$
104
        ld (de),a
105
        inc de
106
        ret  
107
prnumdwordcmdbcbc0
108
;bc'bc=digit weight
109
        ld a,'0'-1
574 alone 110
        or a
658 alone 111
prnumdwordcmdbcbc1
112
        inc a
574 alone 113
        sbc hl,bc
114
        exx
115
        sbc hl,bc
116
        exx
658 alone 117
        jp nc,prnumdwordcmdbcbc1
574 alone 118
        add hl,bc
119
        exx
120
        adc hl,bc
121
        exx
658 alone 122
        jp prnumdwordcmd_digok
574 alone 123
 
124
prdwordbuf
125
        db "1234567890"