Subversion Repositories NedoOS

Rev

Rev 647 | Blame | Last modification | View Log | Download

  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
  10.         call prdword_de_withspaces
  11.         pop hl
  12.         ld de,10
  13.         jp cmdprNchars
  14. prdword_de_withspaces
  15.         ld a,0x12 ;"ld (de),a"
  16.         jr prdword_de_a
  17. prdword_de
  18. ;hl'hl=num
  19. ;de=buf
  20.         xor a
  21. prdword_de_a
  22.         ld (prnumdwordcmd_zero_lddea),a
  23.         ld a,' '
  24.         ld (prnumdwordcmd_zero_sym),a
  25.         exx
  26.         ld a,h
  27.         or l
  28.         jr z,prdword_skiphsw
  29.         ld bc,1000000000/65536
  30.         exx
  31.         ld bc,1000000000&0xffff
  32.         call prnumdwordcmdbcbc0
  33.         exx
  34.         ld bc,100000000/65536
  35.         exx
  36.         ld bc,100000000&0xffff
  37.         call prnumdwordcmdbcbc0
  38.         exx
  39.         ld bc,10000000/65536
  40.         exx
  41.         ld bc,10000000&0xffff
  42.         call prnumdwordcmdbcbc0
  43.         exx
  44.         ld bc,1000000/65536
  45.         exx
  46.         ld bc,1000000&0xffff
  47.         call prnumdwordcmdbcbc0
  48.         exx
  49.         ld bc,100000/65536
  50.         exx
  51.         ld bc,100000&0xffff
  52.         call prnumdwordcmdbcbc0
  53.         jp prdword_skiphswq
  54. prdword_skiphsw
  55.         exx
  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
  63.         ld bc,0
  64.         exx
  65.         ld bc,10000
  66.         call prnumdwordcmdbcbc0
  67.         ld bc,1000
  68.         call prnumdwordcmd0
  69.         ld bc,100
  70.         call prnumdwordcmd0
  71.         ld  c,10
  72.         call prnumdwordcmd0
  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
  81. prnumdwordcmd0
  82. ;bc=digit weight
  83.         ld a,'0'-1
  84.         or a
  85. prnumdwordcmd1
  86.         inc a
  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
  110.         or a
  111. prnumdwordcmdbcbc1
  112.         inc a
  113.         sbc hl,bc
  114.         exx
  115.         sbc hl,bc
  116.         exx
  117.         jp nc,prnumdwordcmdbcbc1
  118.         add hl,bc
  119.         exx
  120.         adc hl,bc
  121.         exx
  122.         jp prnumdwordcmd_digok
  123.  
  124. prdwordbuf
  125.         db "1234567890"