       Idnt    _Write
       Section _FWrite,Code
       xref    IoResult
       Xref    IoCheck
       Xref    Error
       Xref    Dosbase
	Xref	TstTab
       Xdef FWrite

	; -------------------------------------
	; - Fwrite.lib
	; - 07-aug-93
	;
	; - D7 : Filehandle
	; - D3 : Anzahl Bytes zum Schreiben
	; - Stack : RTS.l Daten zum Schreiben


FWrite:Clr.l   IoResult		; Ergebnis = ok
       MOVE.L  D7,D1          	; Handle der Datei
       jsr     TstTab		; Testen ob Handle ok
       Tst.l   D0
       Bne.s	FWok		; Ist ok
       Adda.l  d3,a7		; Stack aufräumen
       Jmp     (a4)   
FWok   Move.l  (sp)+,a4
       MOVE.L  A7,D2          	; Adresse Puffer
       MOVEA.L Dosbase,A6
       JSR     -$30(A6)
       ADDA.L  D3,A7
       CLR.L   IoResult
       TST.L   D0
       BPL.S   FWlab	      ; D0 >= 0  dann alles ok
       TST.L   IoCheck	      ; Fehler, ausgeben und exit ?
       BEQ.S   FWskip	      ; Nein, weiter
       Move.l  a4,-(sp)
       JMP     Error
FWskip:JSR     -$84(A6)	      ; IOResult aufrufen
       MOVE.L  D0,IoResult    ; Und in Variable abspeichern
FWlab: jmp (a4)
       End
