; a program that will open the libraries and hopefully open a lo-res screen 
; enabling me to see how the libraries work???

execbase	= 4
openlib	= -408
closelib	= -414
ioerr	= -132
forbid	= -132

initview	= -$168
initvport	= -$cc
getcolourmap	= -$23a
loadrgb4	= -$c0
	
	opt c+,d+
	
	bra openlibs

doneopening:	
	move.l graphicsbase(pc),a6	
	lea view(pc),a5
	lea viewport(pc),a4
	move.l a5,a1
	jsr initview(a6)
	
	move.l a4,a0
	move.l graphicsbase(pc),a6
	jsr initvport(a6)
	
	move.l a4,0(a5)
	moveq #$10,d0
	move.l graphicsbase(pc),a6
	jsr getcolourmap(a6)
	tst.l d0
	beq error

	bra error
		
	
openlibs:
	move.l execbase,a6 ; prevents task rescheduling
	jsr forbid(a6) 	;  and multi tasking
	
	lea bases(pc),a5	
	moveq #0,d0
	lea graphicsname(pc),a1	; open graphics library
	move.l execbase,a6
	jsr openlib(a6)
	tst.l d0
	beq error
	move.l d0,(a5)+	; store graphicsbase
	
	moveq #0,d0
	lea dosname(pc),a1
	move.l execbase,a6
	jsr openlib(a6)		; open dos library
	tst.l d0
	beq error
	move.l d0,(a5)+ ; store dosbase
	
	moveq #0,d0
	lea intuitionname(pc),a1
	move.l execbase,a6
	jsr openlib(a6)
	tst.l d0
	beq error
	move.l d0,(a5)+	; store intuitionbase
	bra doneopening

error:
	moveq #-1,d0
	rts
	
	
graphicsname:	dc.b 'graphics.library',0,0
	even
dosname:	dc.b 'dos.library',0,0
	even
intuitionname:	dc.b 'intuition.library',0,0
	even
bases:	
graphicsbase:	dc.l 0
dosbase:	dc.l 0
intuitionbase:	dc.l 0
view:	ds.b $330
viewport	= view+$12
