
; -------------->  Setup Shell Code  <-----------

	SECTION	shell,code_c
	
	opt	o+,c-
	
	include	INCLUDE:libs.i
	include	INCLUDE:dmmacros.i

; --------------> Main Routines


	bra.s	OpenLibraries
back1	bsr	OpenScreen1

	move.l	#150,d1
	DOS 	Delay

	bsr	CloseScreen1
	bra.s	CloseLibraries
back2	rts
	
; --------------> Open Libraries

OpenLibraries
	lea	INTname(pc),a1
	bsr	openLIB
	move.l	d0,INTbase
	beq	noINT
	lea	GADname(pc),a1
	bsr	openLIB
	move.l	d0,GADbase
	beq	noGAD
	lea	GFXname(pc),a1
	bsr	openLIB
	move.l	d0,GFXbase
	beq	noGFX
	lea	DOSname(pc),a1
	bsr	openLIB
	move.l	d0,DOSbase
	beq	noDOS
	bra.s	back1

openLIB
	moveq.l	#0,d0
	SYS	OpenLibrary
	rts

; --------------> Close Libraries

CloseLibraries
	move.l	INTbase,a1
	SYS	CloseLibrary
	move.l	GADbase,a1
	SYS	CloseLibrary
	move.l	GFXbase,a1
	SYS	CloseLibrary
	move.l	DOSbase,a1
	SYS	CloseLibrary
	bra	back2

	
; --------------> Error Routines

noINT
noGAD
noGFX
noDOS
	
; --------------> Routines
OpenScreen1
	sub.l	a0,a0
	lea	Screen1Tags(pc),a1
	INT 	OpenScreenTagList
	move.l	d0,Screen1HD
	rts

CloseScreen1
	move.l	Screen1HD,a0
	INT	CloseScreen
	rts

; --------------> Data
	
INTname		dc.b	'intuition.library',0
GADname		dc.b	'gadtools.library',0
GFXname		dc.b	'graphics.library',0
DOSname		dc.b	'dos.library',0
	
INTbase		dc.l	0
GADbase		dc.l	0
GFXbase		dc.l	0
DOSbase		dc.l	0

Screen1HD	dc.l	0
Screen1Title	dc.b	'Demo Screen',0

Screen1Tags
	dc.l	SA_Title,Screen1Title
	dc.l	SA_Left,0
	dc.l	SA_Top,0
	dc.l	SA_Width,640
	dc.l	SA_Height,256
	dc.l	SA_Depth,2
	dc.l	SA_DisplayID,$00029000
	dc.l	SA_Pens,DriPen
	dc.l	TAG_DONE

DriPen		dc.w    $FFFF

topaz8
    	dc.l    topazFName8
    	dc.w    8
    	dc.b    $00,$01

topazFName8	dc.b    'topaz.font',0


	end
	
	
	
