home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / A / ARC20.ARC / ARCMACS.ARC / DATESTR.MAC < prev    next >
Text File  |  1989-11-03  |  1KB  |  57 lines

  1. ; DATESTR for Turbo-ARC, TR 031189
  2.     .z80
  3.     extrn    eingabe,output,default
  4.  
  5.     xor    a
  6.     ld    de,eingabe
  7.     inc    de
  8.     ld    hl,(eingabe)
  9.     ld    h,a
  10.     add    hl,de        ; Point behind last Char of String
  11.     ld    (hl),a        ; NUL Char identifies End of String
  12.     ld    ix,(output)    ; Point to Output Array
  13.     ld    (ix),a
  14.     ld    (ix+1),a
  15.     ld    (ix+2),a    ; Clear Output Array
  16.     ex    de,hl
  17.     ld    e,3        ; max. 3 Codes
  18. loop:    ld    c,0        ; Output Code
  19. inloop:    ld    a,(hl)
  20.     inc    hl
  21.     or    a
  22.     jr    z,final        ; NUL Char: all done!
  23.     sub    '0'
  24.     cp    10
  25.     jr    nc,ready    ; Delimiter: Value ready
  26.     ld    b,a
  27.     ld    a,c
  28.     add    a,a
  29.     add    a,a
  30.     add    a,c
  31.     add    a,a        ; last value *10
  32.     add    a,b        ; + new digit
  33.     ld    c,a
  34.     jr    inloop
  35.  
  36. ready:    ld    (ix),c
  37.     inc    ix        ; store Output Code
  38.     dec    e
  39.     jr    nz,loop        ; get next Code
  40.     ret            ; after 3 Codes: Exit
  41.  
  42. final:    ld    (ix),c        ; store last value
  43.     ld    hl,(output)
  44.     ld    a,(hl)
  45.     or    a
  46.     ret    z        ; first value zero: ok (date=0)
  47.     ld    bc,(default)    ; default value in C
  48.     ld    b,3
  49. floop:    ld    a,(hl)
  50.     or    a        ; value of zero ?
  51.     jr    nz,floop1
  52.     ld    (hl),c        ; set to default
  53. floop1:    inc    hl
  54.     djnz    floop        ; all checked: exit
  55.  
  56.     end
  57.