;  (c) 1990 S.Hawtin.
;  Permission is granted to copy this file provided
;   1) It is not used for commercial gain
;   2) This notice is included in all copies
;   3) Altered copies are marked as such
;
;  No liability is accepted for the contents of the file.
;
;
;  Minimal startup routine for NorthC programs, does not support 
; memory allocation, command line arguments, Amiga Libraries, and 
; is very prone to falling over in an untidy heap.  Start from 
; "crt0.asm" if you want to do any real messing with startup 
; routines.
;
	INCLUDE	clibs:clibdefs.i

	section ONE,CODE

	XREF	__main
	XREF	dosLib
;
;        Define entry point
;
   	XDEF	start
start:
;
;        Open DOS library
;
	move.l	#dosname,a1
	clr   	d0
	call	exec,OpenLibrary
	move.l	d0,dosLib
	beq	error_exit
;
;	Set up file handles
;
	call	dos,Input
	move.l	d0,__stdin
	beq	error_exit
	call	dos,Output
	move.l	d0,__stdout
	beq	error_exit
	jsr	__main
;
;	If _main returns fall through to a normal (0) exit
;
	move.l	#0,a0

a0_exit:
	move.l	a0,-(sp)		; Hide the return code

	move.l	dosLib,a1		; Close the exec library
	call	exec,CloseLibrary

        move.l	(sp)+,a0		; Send the return to the caller
	rts

error_exit:
	move.l	#0,a0
	bra	a0_exit
;
	section  TWO,data
;
;	DOS Library name

dosname dc.b	'dos.library',0

     	section	THREE,bss

	xdef	__stdin,__stdout
__stdin  ds.l     1     ;input file handle
__stdout ds.l     1     ;output file handle

	END
