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 / CPM / TURBODSG / USRSTAT.MQC / USRSTAT.MAC
Text File  |  2000-06-30  |  2KB  |  160 lines

  1. ; USRSTAT.MAC by ESKAY - v1.00 of 05/31/85
  2. ;
  3. ; this program finds all empty user areas on the current
  4. ; drive and displays them. turbodos only.
  5. ;
  6. cr    equ    0dh
  7. lf    equ    0ah
  8. ;
  9.     cseg
  10. ;
  11. .z80
  12. .request syslib
  13. ;
  14. start:    ld    sp,stack
  15.     call    print##
  16.     cr,lf
  17.     '                          USRSTAT v1.00 by ESKAY',cr,lf,lf
  18.     'User area usage display. This program displays the total number',cr,lf
  19.     'of directory entries used in each user area ---- please wait...',0
  20.     ld    de,fcb
  21.     call    f$open##
  22. ..lp:    ld    de,fcb
  23.     call    f$read##
  24.     jp    nz,done
  25.     ld    ix,80h
  26.     ld    hl,usrs
  27.     ld    a,(ix+0)
  28.     call    zeru
  29.     ld    a,(ix+20h)
  30.     call    zeru
  31.     ld    a,(ix+40h)
  32.     call    zeru
  33.     ld    a,(ix+60h)
  34.     call    zeru
  35.     jr    ..lp
  36. ;
  37. done:    call    print
  38.     cr,lf,lf,lf
  39.     ' USR    FILES      USR    FILES      USR    FILES',cr,lf
  40.     '-------------------------------------------------',cr,lf,0
  41.     ld    b,32            ; users 0..31
  42.     ld    hl,usrs
  43.     ld    de,0
  44. loop:    call    pute
  45.     call    print##
  46.     '  :',0
  47.     push    de
  48.     ld    e,(hl)
  49.     inc    hl
  50.     ld    d,(hl)
  51.     inc    hl
  52.     ex    de,hl
  53.     call    phldc##
  54.     ex    de,hl
  55.     push    hl
  56.     ld    hl,(tot)
  57.     add    hl,de
  58.     ld    (tot),hl
  59.     pop    hl
  60.     pop    de
  61.     inc    de
  62.     ld    a,(div)
  63.     dec    a
  64.     ld    (div),a
  65.     jr    z,..odd
  66.     call    print##
  67.     '      ',0
  68.     jr    ..evn
  69. ;
  70. ..odd:    call    crlf##
  71.     ld    a,3
  72.     ld    (div),a
  73. ..evn:    djnz    loop
  74.     call    print##
  75.     cr,lf,lf
  76.     'Total directory entries used : ',0
  77.     ld    c,25
  78.     call    5
  79.     ld    c,19
  80.     ld    e,a
  81.     call    50h
  82.     ld    hl,8
  83.     and    0fh
  84.     dec    a
  85. lp1:    add    hl,hl
  86.     dec    a
  87.     jr    nz,lp1
  88.     ex    de,hl
  89.     ld    hl,0
  90. lp2:    add    hl,de
  91.     dec    c
  92.     jr    nz,lp2
  93.     ex    de,hl    
  94.     ld    hl,(tot)
  95.     call    phlfdc##
  96.     call    print##
  97.     ' of ',0
  98.     ex    de,hl
  99.     call    phlfdc##
  100.     call    print##
  101.     ' (',0
  102.     or    a
  103.     sbc    hl,de
  104.     call    phlfdc##
  105.     call    print##
  106.     ' free)',0
  107.     call    crlf##
  108.     rst    0
  109. ;
  110. pute:    ld    a,e
  111.     push    af
  112.     call    print##
  113.     '  ',0
  114.     cp    10
  115.     jr    nc,..g10
  116.     ld    a,' '
  117.     call    cout##
  118. ..g10:    pop    af
  119.     jp    pafdc##
  120. ;
  121. zeru:    cp    0e5h
  122.     jr    nz,..ne5
  123.     ld    a,32
  124. ..ne5:    ld    e,a
  125.     ld    d,0
  126.     push    hl
  127.     add    hl,de
  128.     add    hl,de
  129.     ld    e,(hl)
  130.     inc    hl
  131.     ld    d,(hl)
  132.     inc    de
  133.     ld    (hl),d
  134.     dec    hl
  135.     ld    (hl),e
  136.     pop    hl
  137.     ret
  138. ;
  139.     dseg
  140. ;
  141. div:    db    3
  142. tot:    dw    0
  143. fcb:    db    0,'$       DIR',0,0,0,0
  144.     ds    22
  145. ;
  146. usrs:    dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  147.     dw    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  148.     ds    100
  149. stack    equ    $
  150.     end
  151.   ',0
  152.     jr    ..evn
  153. ;
  154. ..odd:    call    crlf##
  155.     ld    a,3
  156.     ld    (div),a
  157. ..evn:    djnz    loop
  158.     call    print##
  159.     cr,lf,lf
  160.     'Total d