home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC6.DMS / in.adf / libsrc.lha / LIBSRC / tmpfile.asm < prev    next >
Encoding:
Assembly Source File  |  1994-04-16  |  1.2 KB  |  74 lines

  1.  
  2. * Maxon C++ Projekt:
  3. * Library-Modul "tmpfile"
  4. * Jens Gelhar 25.10.91
  5.  
  6.     xdef    _tmpfile,tmpfile_
  7.     xdef    _EXIT_1_Tmp_File_Hooka_hey_
  8.  
  9.     xref    fopen__PCcPCc,fclose__P06stream,remove__PCc
  10.     xref    tmpnam__Pc
  11.  
  12. ExecBase    = 4
  13.  
  14. AllocMem    = -198
  15. FreeMem    = -210
  16.  
  17. tf_File    = 4
  18. tf_Name    = 8
  19. tf_SizeOf    = 48
  20.  
  21.  
  22. _tmpfile:
  23. tmpfile_:
  24.     movem.l d1-d7/a0-a6,-(a7)
  25.     move.l ExecBase.w,a6
  26.     moveq #tf_SizeOf,d0
  27.     move.l #$10000,d1
  28.     jsr AllocMem(a6)
  29.     tst.l d0
  30.     beq.b tferr
  31.     move.l d0,a4
  32.     move.l tfilelist(pc),(a4)
  33.     move.l d0,tfilelist
  34.     pea tf_Name(a4)
  35.     jsr tmpnam__Pc
  36.     addq.l #4,a7
  37.     pea accmode(pc)
  38.     move.l d0,-(a7)
  39.     jsr fopen__PCcPCc
  40.     addq.l #8,a7
  41.     tst.l d0
  42.     beq.b tferr
  43.     move.l d0,tf_File(a4)
  44.     bra.b tfend
  45. tferr    moveq #0,d0
  46. tfend    movem.l (a7)+,d1-d7/a0-a6
  47.     rts
  48.  
  49. closeTF:    ; Tmp-File a0 schließen,löschen und deallozieren, nicht aushängen
  50.     move.l tf_File(a0),-(a7)
  51.     jsr fclose__P06stream
  52.     addq.l #4,a7
  53.     pea tf_Name(a0)
  54.     jsr remove__PCc
  55.     addq.l #4,a7
  56.     move.l a0,a1
  57.     moveq #tf_SizeOf,d0
  58.     move.l ExecBase.w,a6
  59.     jmp FreeMem(a6)
  60.  
  61. _EXIT_1_Tmp_File_Hooka_hey_:
  62.     move.l tfilelist(pc),d0
  63.     beq.b ex1
  64.     move.l d0,a0
  65.     move.l (a0),tfilelist
  66.     bsr.b closeTF
  67.     bra.b _EXIT_1_Tmp_File_Hooka_hey_
  68. ex1    rts
  69.  
  70. accmode:    dc.b 'wb+',0
  71. tfilelist:    dc.l 0
  72.  
  73.     end
  74.