home *** CD-ROM | disk | FTP | other *** search
-
- * Maxon C++ Projekt:
- * Library-Modul "tmpfile"
- * Jens Gelhar 25.10.91
-
- xdef _tmpfile,tmpfile_
- xdef _EXIT_1_Tmp_File_Hooka_hey_
-
- xref fopen__PCcPCc,fclose__P06stream,remove__PCc
- xref tmpnam__Pc
-
- ExecBase = 4
-
- AllocMem = -198
- FreeMem = -210
-
- tf_File = 4
- tf_Name = 8
- tf_SizeOf = 48
-
-
- _tmpfile:
- tmpfile_:
- movem.l d1-d7/a0-a6,-(a7)
- move.l ExecBase.w,a6
- moveq #tf_SizeOf,d0
- move.l #$10000,d1
- jsr AllocMem(a6)
- tst.l d0
- beq.b tferr
- move.l d0,a4
- move.l tfilelist(pc),(a4)
- move.l d0,tfilelist
- pea tf_Name(a4)
- jsr tmpnam__Pc
- addq.l #4,a7
- pea accmode(pc)
- move.l d0,-(a7)
- jsr fopen__PCcPCc
- addq.l #8,a7
- tst.l d0
- beq.b tferr
- move.l d0,tf_File(a4)
- bra.b tfend
- tferr moveq #0,d0
- tfend movem.l (a7)+,d1-d7/a0-a6
- rts
-
- closeTF: ; Tmp-File a0 schließen,löschen und deallozieren, nicht aushängen
- move.l tf_File(a0),-(a7)
- jsr fclose__P06stream
- addq.l #4,a7
- pea tf_Name(a0)
- jsr remove__PCc
- addq.l #4,a7
- move.l a0,a1
- moveq #tf_SizeOf,d0
- move.l ExecBase.w,a6
- jmp FreeMem(a6)
-
- _EXIT_1_Tmp_File_Hooka_hey_:
- move.l tfilelist(pc),d0
- beq.b ex1
- move.l d0,a0
- move.l (a0),tfilelist
- bsr.b closeTF
- bra.b _EXIT_1_Tmp_File_Hooka_hey_
- ex1 rts
-
- accmode: dc.b 'wb+',0
- tfilelist: dc.l 0
-
- end
-