home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD2.bin / bbs / util / appvm-0.9.lha / AppVM / read.s < prev    next >
Text File  |  1992-03-28  |  931b  |  54 lines

  1.  
  2.         include    std
  3.  
  4. START:        move.l    4.w,a6
  5.         lea    dosname,a1
  6.         moveq    #0,d0
  7.         EXEC    OpenLibrary        ;get DOS
  8.         move.l    d0,DOS_LIB_PTR
  9.  
  10.         move.l    #1000000,d0
  11.         move.l    #0,d1
  12.         EXEC    AllocMem        ;get buffer
  13.         move.l    d0,a4
  14.  
  15.         move.l    DOS_LIB_PTR,a6
  16.  
  17.         move.l    #fname,d1
  18.         move.l    #MODE_OLDFILE,d2    ;open file to checksum
  19.         DOS    Open
  20.         move.l    d0,fhandle
  21.  
  22.         moveq    #0,d4            ;clear accum.
  23.         bra    wh_data
  24. ;---------------
  25. accum_longs    move.l    a4,a3            ;reset chunk ptr
  26.         lsr.l    #2,d1            ;bytes-> longs counter
  27.  
  28. accu        add.l    (a3)+,d4        ;add 'em up
  29.         subq.l    #1,d1
  30.         bne    accu
  31.  
  32. wh_data        move.l    fhandle,d1
  33.         move.l    a4,d2
  34.         move.l    #1000000,d3        ;read a chunk in.
  35.         DOS    Read
  36.         move.l    d0,d1            ;while not EOF, go sum all longs
  37.         bne    accum_longs
  38. ;---------------
  39.         move.l    fhandle,d1        ;close file
  40.         DOS    Close
  41.  
  42.         move.l    4.w,a6
  43.         move.l    #1000000,d0
  44.         move.l    a4,a1
  45.         EXEC    FreeMem            ;release buffer
  46.         rts
  47.  
  48. DOS_LIB_PTR    ds.l    1
  49. fhandle        ds.l    1
  50.  
  51. dosname        DOSNAME
  52.  
  53. fname        dc.b    "WORK:HUGE",0
  54.