
; Storm C Compiler
; Sonne:Ablage/AND/Dev1.3/Extras/Development/Example_Code_v37/Libraries/ASL/asltest.c


	XREF	_printf
	XREF	_exit
	XREF	_AslRequest
	XREF	_FreeAslRequest
	XREF	_AllocAslRequest
	XREF	_RequestFile
	XREF	_FreeFileRequest
	XREF	_AllocFileRequest
	XREF	_OpenDiskFont
	XREF	_ActivateWindow
	XREF	_OpenWindow
	XREF	_OpenScreen
	XREF	_CloseWindow
	XREF	_CloseScreen
	XREF	_SetDrMd
	XREF	_SetBPen
	XREF	_SetAPen
	XREF	_Move
	XREF	_SetSoftStyle
	XREF	_CloseFont
	XREF	_OpenFont
	XREF	_SetFont
	XREF	_Text
	XREF	_OpenLibrary
	XREF	_CloseLibrary
	XREF	_WaitPort
	XREF	_ReplyMsg
	XREF	_GetMsg

	SECTION ":0",CODE


;main(argc,argv)
	XDEF	_main
_main
L155	EQU	-$14
	link	a5,#L155
	movem.l	d2/d3/a2,-(a7)
	move.l	$8(a5),d3
L97
;IntuitionBase = OpenLibrary("intuition.library",36);
	pea	$24.w
	move.l	#L73,-(a7)
	jsr	_OpenLibrary
	addq.w	#$8,a7
	move.l	d0,_IntuitionBase
;if ( IntuitionBase == NULL ) 
	move.l	_IntuitionBase,a0
	cmp.w	#0,a0
	bne.b	L99
L98
;if ( IntuitionBase == NULL ) 
;	punt(30);
	pea	$1E.w
	jsr	_punt
	addq.w	#4,a7
L99
;GfxBase = OpenLibrary("graphics.library",36);
	pea	$24.w
	move.l	#L74,-(a7)
	jsr	_OpenLibrary
	addq.w	#$8,a7
	move.l	d0,_GfxBase
;if ( GfxBase == NULL ) 
	move.l	_GfxBase,a0
	cmp.w	#0,a0
	bne.b	L101
L100
;if ( GfxBase == NULL ) 
;	punt(31);
	pea	$1F.w
	jsr	_punt
	addq.w	#4,a7
L101
;if ( (DiskfontBase = OpenLibrary("diskfont.library",36)) == 0 ) 
	pea	$24.w
	move.l	#L75,-(a7)
	jsr	_OpenLibrary
	addq.w	#$8,a7
	move.l	d0,_DiskfontBase
	move.l	_DiskfontBase,a0
	cmp.w	#0,a0
	bne.b	L103
L102
;tBase = OpenLibra
;	printf("Can't open diskfont.library\n");
	move.l	#L76,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(32);
	pea	$20.w
	jsr	_punt
	addq.w	#4,a7
L103
;if ( (AslBase = OpenLibrary(AslName,36)) == 0 ) 
	pea	$24.w
	move.l	#L77,-(a7)
	jsr	_OpenLibrary
	addq.w	#$8,a7
	move.l	d0,_AslBase
	move.l	_AslBase,a0
	cmp.w	#0,a0
	bne.b	L105
L104
;if ( (AslBase = Open
;	printf("Can't open asl.library\n");
	move.l	#L78,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(33);
	pea	$21.w
	jsr	_punt
	addq.w	#4,a7
L105
;FileRequester = AllocFileRequest();
	jsr	_AllocFileRequest
	move.l	d0,_FileRequester
;if ( FileRequester == NULL ) 
	move.l	_FileRequester,a0
	cmp.w	#0,a0
	bne.b	L107
L106
;if ( FileRequester == NULL ) 
;	printf("Failed to allocate file request\n");
	move.l	#L79,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(34);
	pea	$22.w
	jsr	_punt
	addq.w	#4,a7
L107
;if ( RequestFile(FileRequester) )
	move.l	_FileRequester,-(a7)
	jsr	_RequestFile
	addq.w	#4,a7
	tst.w	d0
	beq.b	L109
L108
;	printf("User requested dir (%s) file (%s)\n",FileRequester->rf_Dir
	move.l	_FileRequester,a0
	move.l	4(a0),-(a7)
	move.l	_FileRequester,a0
	move.l	$8(a0),-(a7)
	move.l	#L80,-(a7)
	jsr	_printf
	add.w	#$C,a7
	bra.b	L110
L109
;	printf("User cancelled filerequest\n");
	move.l	#L81,-(a7)
	jsr	_printf
	addq.w	#4,a7
L110
;FreeFileRequest( FileRequester );
	move.l	_FileRequester,-(a7)
	jsr	_FreeFileRequest
	addq.w	#4,a7
;FileRequester = AllocAslRequest(ASL_FileRequest, NULL);
	clr.l	-(a7)
	clr.l	-(a7)
	jsr	_AllocAslRequest
	addq.w	#$8,a7
	move.l	d0,_FileRequester
;if ( FileRequester == NULL ) 
	move.l	_FileRequester,a0
	cmp.w	#0,a0
	bne.b	L112
L111
;if ( FileRequester == NULL ) 
;	printf("Failed to allocate file request\n");
	move.l	#L79,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(34);
	pea	$22.w
	jsr	_punt
	addq.w	#4,a7
L112
;if (AslRequest(FileRequester,MultiTags)) 
	move.l	#_MultiTags,-(a7)
	move.l	_FileRequester,-(a7)
	jsr	_AslRequest
	addq.w	#$8,a7
	tst.w	d0
	beq.b	L120
L113
;if (AslRequest(FileRequeste
;	if ( i = FileRequester->rf_NumArgs ) 
	move.l	_FileRequester,a0
	move.l	$20(a0),d2
	beq.b	L118
L114
;	if ( i = FileRequester->rf_Nu
;		printf("Selected %d multiargs\n",i);
	move.l	d2,-(a7)
	move.l	#L82,-(a7)
	jsr	_printf
	addq.w	#$8,a7
;		p_wbargs = FileRequester->rf_ArgList;
	move.l	_FileRequester,a0
	move.l	$24(a0),a2
;		while ( i-- ) 
	bra.b	L116
L115
;		while ( i-- ) 
;			printf("MultiSel lock $%lx name %s\n",p_wbargs->wa_Lock,p_wbar
	move.l	4(a2),-(a7)
	move.l	(a2),-(a7)
	move.l	#L83,-(a7)
	jsr	_printf
	add.w	#$C,a7
;			p_wbargs++;
	addq.w	#$8,a2
L116
	move.l	d2,d0
	subq.l	#1,d2
	tst.l	d0
	bne.b	L115
L117
	bra.b	L121
L118
;	else	printf("No multiarg - dir (%s) file (%s)\n",FileRequeste
	move.l	_FileRequester,a0
	move.l	4(a0),-(a7)
	move.l	_FileRequester,a0
	move.l	$8(a0),-(a7)
	move.l	#L84,-(a7)
	jsr	_printf
	add.w	#$C,a7
L119
	bra.b	L121
L120
;	printf("User canned file request\n");
	move.l	#L85,-(a7)
	jsr	_printf
	addq.w	#4,a7
L121
;if ( AslRequest( FileRequester, SaveTags ) )
	move.l	#_SaveTags,-(a7)
	move.l	_FileRequester,-(a7)
	jsr	_AslRequest
	addq.w	#$8,a7
	tst.w	d0
	beq.b	L123
L122
;	printf("User requested dir (%s) file (%s)\n",FileRequester->rf_Dir
	move.l	_FileRequester,a0
	move.l	4(a0),-(a7)
	move.l	_FileRequester,a0
	move.l	$8(a0),-(a7)
	move.l	#L80,-(a7)
	jsr	_printf
	add.w	#$C,a7
	bra.b	L124
L123
;	printf("User cancelled filerequest\n");
	move.l	#L81,-(a7)
	jsr	_printf
	addq.w	#4,a7
L124
;if ( argc > 1 )	
	cmp.l	#1,d3
	ble.b	L126
L125
;if ( argc > 1 )	punt( 0 );
	clr.l	-(a7)
	jsr	_punt
	addq.w	#4,a7
L126
;FontRequester = (struct FontRequester *)AllocAslRequest(ASL_FontRequ
	move.l	#_FontTags,-(a7)
	pea	1.w
	jsr	_AllocAslRequest
	addq.w	#$8,a7
	move.l	d0,_FontRequester
;if ( FontRequester == NULL ) 
	move.l	_FontRequester,a0
	cmp.w	#0,a0
	bne.b	L128
L127
;if ( FontRequester == NULL ) 
;	printf("Failed to allocate font request\n");
	move.l	#L86,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(35);
	pea	$23.w
	jsr	_punt
	addq.w	#4,a7
L128
;if ( AslRequest(FontRequester, NULL) )
	clr.l	-(a7)
	move.l	_FontRequester,-(a7)
	jsr	_AslRequest
	addq.w	#$8,a7
	tst.w	d0
	beq.b	L130
L129
;	printf("User requested font (%s) size %d style %x flags %x\n	Front
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$12(a0),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$11(a0),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$10(a0),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	moveq	#0,d0
	move.b	$F(a1),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	moveq	#0,d0
	move.b	$E(a1),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	moveq	#0,d0
	move.w	$C(a1),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	move.l	$8(a1),-(a7)
	move.l	#L87,-(a7)
	jsr	_printf
	add.w	#$20,a7
	bra.b	L131
L130
;else	printf("CANCELLED:     ");
	move.l	#L88,-(a7)
	jsr	_printf
	addq.w	#4,a7
L131
;MyScreen = OpenScreen(&MyNewScreen);
	move.l	#_MyNewScreen,-(a7)
	jsr	_OpenScreen
	addq.w	#4,a7
	move.l	d0,_MyScreen
;if ( MyScreen == 0L )
	move.l	_MyScreen,a0
	cmp.w	#0,a0
	bne.b	L133
L132
;	
;	printf("Can't open custom screen, Oh No!!!!\n");
	move.l	#L89,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(1);
	pea	1.w
	jsr	_punt
	addq.w	#4,a7
L133
;MyNewWindow.Screen = MyScreen;
	move.l	_MyScreen,_MyNewWindow+$1E
;MyWindow = OpenWindow(&MyNewWindow);
	move.l	#_MyNewWindow,-(a7)
	jsr	_OpenWindow
	addq.w	#4,a7
	move.l	d0,_MyWindow
;if ( MyWindow == 0L )
	move.l	_MyWindow,a0
	cmp.w	#0,a0
	bne.b	L135
L134
;	
;	printf("Can't open custom window, Oh Doubleno!!!\n");
	move.l	#L90,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(2);
	pea	2.w
	jsr	_punt
	addq.w	#4,a7
L135
;OldFont = MyWindow->RPort->Font;
	move.l	_MyWindow,a0
	move.l	$32(a0),a0
	move.l	$34(a0),_OldFont
;FileTags2[0].ti_Data = (ULONG)MyWindow;
	move.l	#_FileTags2,a0
	move.l	_MyWindow,4(a0)
;if ( AslRequest( FileRequester, FileTags2 ) )
	move.l	#_FileTags2,-(a7)
	move.l	_FileRequester,-(a7)
	jsr	_AslRequest
	addq.w	#$8,a7
	tst.w	d0
	beq.b	L137
L136
;	printf("User requested dir (%s) file (%s)\n",FileRequester->rf_Dir
	move.l	_FileRequester,a0
	move.l	4(a0),-(a7)
	move.l	_FileRequester,a0
	move.l	$8(a0),-(a7)
	move.l	#L80,-(a7)
	jsr	_printf
	add.w	#$C,a7
	bra.b	L138
L137
;	printf("User cancelled filerequest\n");
	move.l	#L81,-(a7)
	jsr	_printf
	addq.w	#4,a7
L138
;FontTags2[0].ti_Data = (ULONG)MyWindow;
	move.l	#_FontTags2,a0
	move.l	_MyWindow,4(a0)
;if ( ! AslRequest(FontRequester, FontTags2) ) 
	move.l	#_FontTags2,-(a7)
	move.l	_FontRequester,-(a7)
	jsr	_AslRequest
	addq.w	#$8,a7
	tst.w	d0
	bne.b	L140
L139
;if ( ! AslRequest(Font
;	printf("CANCELLED Font Request\n");
	move.l	#L91,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	punt(0);
	clr.l	-(a7)
	jsr	_punt
	addq.w	#4,a7
L140
;printf("User requested font (%s) size %d style %x flags %x\n	FrontPe
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$12(a0),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$11(a0),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$10(a0),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	moveq	#0,d0
	move.b	$F(a1),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	moveq	#0,d0
	move.b	$E(a1),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	moveq	#0,d0
	move.w	$C(a1),d0
	move.l	d0,-(a7)
	move.l	_FontRequester,a1
	move.l	$8(a1),-(a7)
	move.l	#L87,-(a7)
	jsr	_printf
	add.w	#$20,a7
;ActivateWindow(MyWindow);
	move.l	_MyWindow,-(a7)
	jsr	_ActivateWindow
	addq.w	#4,a7
;MyFont = (struct TextFont *)OpenFont(&FontRequester->fo_Attr);
	move.l	_FontRequester,a1
	pea	$8(a1)
	jsr	_OpenFont
	addq.w	#4,a7
	move.l	d0,_MyFont
;if ( MyFont == NULL ) 
	move.l	_MyFont,a0
	cmp.w	#0,a0
	bne.b	L142
L141
;if ( MyFont == NULL ) 
;	printf("Font not in memory, checking disk...\n");
	move.l	#L92,-(a7)
	jsr	_printf
	addq.w	#4,a7
	bra.b	L144
L142
;else if ( MyFont->tf_YSize != FontRequester->fo_Attr.ta_YSize )
	move.l	_MyFont,a0
	move.w	$14(a0),d1
	move.l	_FontRequester,a1
	cmp.w	$C(a1),d1
	beq.b	L144
L143
;	
;	printf("Font not of requested size - reopening via disk!!!\n");
	move.l	#L93,-(a7)
	jsr	_printf
	addq.w	#4,a7
;	CloseFont(MyFont);
	move.l	_MyFont,-(a7)
	jsr	_CloseFont
	addq.w	#4,a7
;	MyFont = NULL;
	clr.l	_MyFont
L144
;if ( MyFont == NULL ) 
	move.l	_MyFont,a0
	cmp.w	#0,a0
	bne.b	L147
L145
;if ( MyFont == NULL ) 
;	MyFont = (struct TextFont *)OpenDiskFont(&FontRequester->fo_Attr);
	move.l	_FontRequester,a1
	pea	$8(a1)
	jsr	_OpenDiskFont
	addq.w	#4,a7
	move.l	d0,_MyFont
;	if ( MyFont == NULL ) 
	move.l	_MyFont,a0
	cmp.w	#0,a0
	bne.b	L147
L146
;	if ( MyFont == NULL ) 
;		printf("Not on disk either.  Wieird\n");
	move.l	#L94,-(a7)
	jsr	_printf
	addq.w	#4,a7
;		punt(51);
	pea	$33.w
	jsr	_punt
	addq.w	#4,a7
L147
;printf("Got font!\n");
	move.l	#L95,-(a7)
	jsr	_printf
	addq.w	#4,a7
;Move(MyWindow->RPort,100,100);
	pea	$64.w
	pea	$64.w
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_Move
	add.w	#$C,a7
;SetFont(MyWindow->RPort,MyFont);
	move.l	_MyFont,-(a7)
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_SetFont
	addq.w	#$8,a7
;SetSoftStyle(MyWindow->RPort,FontRequester->fo_Attr.ta_Style,-1);
	move.l	#-1,-(a7)
	move.l	_FontRequester,a1
	moveq	#0,d0
	move.b	$E(a1),d0
	move.l	d0,-(a7)
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_SetSoftStyle
	add.w	#$C,a7
;SetAPen(MyWindow->RPort,FontRequester->fo_FrontPen);
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$10(a0),d0
	move.l	d0,-(a7)
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_SetAPen
	addq.w	#$8,a7
;SetBPen(MyWindow->RPort,FontRequester->fo_BackPen);
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$11(a0),d0
	move.l	d0,-(a7)
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_SetBPen
	addq.w	#$8,a7
;SetDrMd(MyWindow->RPort,FontRequester->fo_DrawMode);
	move.l	_FontRequester,a0
	moveq	#0,d0
	move.b	$12(a0),d0
	move.l	d0,-(a7)
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_SetDrMd
	addq.w	#$8,a7
;Text(MyWindow->RPort,"Abcdefg!!!12345",15);
	pea	$F.w
	move.l	#L96,-(a7)
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_Text
	add.w	#$C,a7
;CloseFont(MyFont);
	move.l	_MyFont,-(a7)
	jsr	_CloseFont
	addq.w	#4,a7
;MyFont = NULL;
	clr.l	_MyFont
;while ( TRUE ) 
L148
;while ( TRUE ) 
;	WaitPort( MyWindow->UserPort );
	move.l	_MyWindow,a0
	move.l	$56(a0),-(a7)
	jsr	_WaitPort
	addq.w	#4,a7
;	msg = (struct IntuiMessage *) GetMsg(MyWindow->UserPort);
	move.l	_MyWindow,a0
	move.l	$56(a0),-(a7)
	jsr	_GetMsg
	addq.w	#4,a7
	move.l	d0,a0
;	class = msg->Class;
	move.l	$14(a0),d2
;	code = msg->Code;
	moveq	#0,d3
	move.w	$18(a0),d3
;	ReplyMsg((struct Message *)msg);
	move.l	a0,-(a7)
	jsr	_ReplyMsg
	addq.w	#4,a7
;	if ( class == CLOSEWINDOW )
	cmp.l	#$200,d2
	bne.b	L150
L149
;		punt( 0 );
	clr.l	-(a7)
	jsr	_punt
	addq.w	#4,a7
L150
;	if ( class == VANILLAKEY ) 
	cmp.l	#$200000,d2
	bne.b	L148
L151
;	if ( class == VANILLAKEY ) 
;		if ( code == 'Q' ) 
	cmp.l	#$51,d3
	bne	L138
L152
;		if ( code == 'Q' ) punt(0);
	clr.l	-(a7)
	jsr	_punt
	addq.w	#4,a7
	bra.b	L148
L153
;		else goto	
	bra	L138
L154
	bra.b	L148

;ULONG FontHook( Type, Object, fr )
	XDEF	_FontHook
_FontHook
L163	EQU	0
	link	a5,#L163
	move.l	d2,-(a7)
	movem.l	$8(a5),d0/d2
L159
;switch ( Type )
	move.l	d0,d1
	cmp.l	#$40,d1
	beq.b	L160
	cmp.l	#$80,d1
	beq.b	L161
	bra.b	L162
;switch ( Type ) 
;	
L160
;		printf("Font domsgfunc: IDCMP class $%lx\n",((struct IntuiMessag
	move.l	d2,a0
	move.l	$14(a0),-(a7)
	move.l	#L156,-(a7)
	jsr	_printf
	addq.w	#$8,a7
;		return( (ULONG) Object );
	move.l	d2,d0
	move.l	(a7)+,d2
	unlk	a5
	rts
L161
;		printf( "Font dowildfunc: %s %ld\n",
	move.l	d2,a0
	moveq	#0,d0
	move.w	4(a0),d0
	move.l	d0,-(a7)
	move.l	d2,a1
	move.l	(a1),-(a7)
	move.l	#L157,-(a7)
	jsr	_printf
	add.w	#$C,a7
;		return( (ULONG) FontSelectToggle );
	move.w	_FontSelectToggle,d0
	ext.l	d0
	move.l	(a7)+,d2
	unlk	a5
	rts
L162
;		printf( "Font hook %ld\n",Type);
	move.l	d0,-(a7)
	move.l	#L158,-(a7)
	jsr	_printf
	addq.w	#$8,a7
	move.l	(a7)+,d2
	unlk	a5
	rts

;ULONG FileHook( Type, Object, fr )
	XDEF	_FileHook
_FileHook
L171	EQU	0
	link	a5,#L171
	move.l	d2,-(a7)
	movem.l	$8(a5),d0/d2
L167
;switch ( Type )
	move.l	d0,d1
	cmp.l	#$40,d1
	beq.b	L168
	cmp.l	#$80,d1
	beq.b	L169
	bra.b	L170
;switch ( Type ) 
;	
L168
;		printf("File domsgfunc: IDCMP class $%lx\n",((struct IntuiMessag
	move.l	d2,a0
	move.l	$14(a0),-(a7)
	move.l	#L164,-(a7)
	jsr	_printf
	addq.w	#$8,a7
;		return( (ULONG) Object );
	move.l	d2,d0
	move.l	(a7)+,d2
	unlk	a5
	rts
L169
;		printf( "File dowildfunc: %s\n",
	move.l	d2,a1
	pea	$1C(a1)
	move.l	#L165,-(a7)
	jsr	_printf
	addq.w	#$8,a7
;		return(NULL);
	moveq	#0,d0
	move.l	(a7)+,d2
	unlk	a5
	rts
L170
;		printf( "File hook %ld\n",Type);
	move.l	d0,-(a7)
	move.l	#L166,-(a7)
	jsr	_printf
	addq.w	#$8,a7
	move.l	(a7)+,d2
	unlk	a5
	rts

;void punt(rc)
	XDEF	_punt
_punt
L193	EQU	0
	link	a5,#L193
	move.l	d2,-(a7)
	move.l	$8(a5),d2
L174
;if ( FileRequester ) 
	tst.l	_FileRequester
	beq.b	L176
L175
;if ( FileRequester ) 
;	FreeAslRequest(FileRequester);
	move.l	_FileRequester,-(a7)
	jsr	_FreeAslRequest
	addq.w	#4,a7
;	printf("Freed File Request!\n");
	move.l	#L172,-(a7)
	jsr	_printf
	addq.w	#4,a7
L176
;if ( FontRequester ) 
	tst.l	_FontRequester
	beq.b	L178
L177
;if ( FontRequester ) 
;	FreeAslRequest(FontRequester);
	move.l	_FontRequester,-(a7)
	jsr	_FreeAslRequest
	addq.w	#4,a7
;	printf("Freed Font Request!\n");
	move.l	#L173,-(a7)
	jsr	_printf
	addq.w	#4,a7
L178
;if (MyFont)	
	tst.l	_MyFont
	beq.b	L180
L179
;if (MyFont)	CloseFont(MyFont);
	move.l	_MyFont,-(a7)
	jsr	_CloseFont
	addq.w	#4,a7
L180
;if (MyWindow) 
	tst.l	_MyWindow
	beq.b	L182
L181
;if (MyWindow) 
;	SetFont(MyWindow->RPort,OldFont);
	move.l	_OldFont,-(a7)
	move.l	_MyWindow,a0
	move.l	$32(a0),-(a7)
	jsr	_SetFont
	addq.w	#$8,a7
;	CloseWindow(MyWindow);
	move.l	_MyWindow,-(a7)
	jsr	_CloseWindow
	addq.w	#4,a7
L182
;if (MyScreen)	
	tst.l	_MyScreen
	beq.b	L184
L183
;if (MyScreen)	CloseScreen(MyScreen);
	move.l	_MyScreen,-(a7)
	jsr	_CloseScreen
	addq.w	#4,a7
L184
;if (DiskfontBase)	
	tst.l	_DiskfontBase
	beq.b	L186
L185
;if (DiskfontBase)	CloseLibrary(DiskfontBase);
	move.l	_DiskfontBase,-(a7)
	jsr	_CloseLibrary
	addq.w	#4,a7
L186
;if (AslBase)		
	tst.l	_AslBase
	beq.b	L188
L187
;if (AslBase)		CloseLibrary(AslBase);
	move.l	_AslBase,-(a7)
	jsr	_CloseLibrary
	addq.w	#4,a7
L188
;if (GfxBase)		
	tst.l	_GfxBase
	beq.b	L190
L189
;if (GfxBase)		CloseLibrary(GfxBase);
	move.l	_GfxBase,-(a7)
	jsr	_CloseLibrary
	addq.w	#4,a7
L190
;if (IntuitionBase)	
	tst.l	_IntuitionBase
	beq.b	L192
L191
;if (IntuitionBase)	CloseLibrary(IntuitionBase);
	move.l	_IntuitionBase,-(a7)
	jsr	_CloseLibrary
	addq.w	#4,a7
L192
;exit (rc);
	move.l	d2,-(a7)
	jsr	_exit
	addq.w	#4,a7
	move.l	(a7)+,d2
	unlk	a5
	rts

L58
	dc.b	'#?',0
L69
	dc.b	'ASLib Font Test',0
L96
	dc.b	'Abcdefg!!!12345',0
L91
	dc.b	'CANCELLED Font Request',$A,0
L88
	dc.b	'CANCELLED:     ',0
L78
	dc.b	'Can't open asl.library',$A,0
L89
	dc.b	'Can't open custom screen, Oh No!!!!',$A,0
L90
	dc.b	'Can't open custom window, Oh Doubleno!!!',$A,0
L76
	dc.b	'Can't open diskfont.library',$A,0
L62
	dc.b	'CustomScreen test',0
L79
	dc.b	'Failed to allocate file request',$A,0
L86
	dc.b	'Failed to allocate font request',$A,0
L164
	dc.b	'File domsgfunc: IDCMP class $%lx',$A,0
L165
	dc.b	'File dowildfunc: %s',$A,0
L166
	dc.b	'File hook %ld',$A,0
L156
	dc.b	'Font domsgfunc: IDCMP class $%lx',$A,0
L157
	dc.b	'Font dowildfunc: %s %ld',$A,0
L158
	dc.b	'Font hook %ld',$A,0
L92
	dc.b	'Font not in memory, checking disk...',$A,0
L93
	dc.b	'Font not of requested size - reopening via disk!!!',$A,0
L172
	dc.b	'Freed File Request!',$A,0
L173
	dc.b	'Freed Font Request!',$A,0
L95
	dc.b	'Got font!',$A,0
L83
	dc.b	'MultiSel lock $%lx name %s',$A,0
L59
	dc.b	'MultiSelect',0
L56
	dc.b	'My Custom Screen',0
L57
	dc.b	'My Window',0
L66
	dc.b	'MyComp',0
L67
	dc.b	'MyInverse1',0
L68
	dc.b	'MyInverse2',0
L64
	dc.b	'MyJam1',0
L65
	dc.b	'MyJam2',0
L63
	dc.b	'MyModes',0
L70
	dc.b	'MyOK',0
L84
	dc.b	'No multiarg - dir (%s) file (%s)',$A,0
L94
	dc.b	'Not on disk either.  Wieird',$A,0
L60
	dc.b	'Save test',0
L61
	dc.b	'Saveit',0
L82
	dc.b	'Selected %d multiargs',$A,0
L81
	dc.b	'User cancelled filerequest',$A,0
L85
	dc.b	'User canned file request',$A,0
L80
	dc.b	'User requested dir (%s) file (%s)',$A,0
L87
	dc.b	'User requested font (%s) size %d style %x flags %x',$A,$9,'Fron'
	dc.b	'tPen: %d BackPen: %d Mode %d',$A,0
L77
	dc.b	'asl.library',0
L75
	dc.b	'diskfont.library',0
L74
	dc.b	'graphics.library',0
L73
	dc.b	'intuition.library',0
L55
	dc.b	'topaz.font',0

	SECTION ":1",DATA

	XDEF	_VERSTAG
_VERSTAG
	dc.b	0,'$VER: asltest 37.2',0
	XDEF	_MyTextAttr
_MyTextAttr
	dc.l	L55
	dc.w	$8
	dc.b	0,0
	XDEF	_MyNewScreen
_MyNewScreen
	dc.w	0,$32,$140,$C8,5
	dc.b	1,2
	dc.w	0,$F
	dc.l	_MyTextAttr,L148111416,0,0
	XDEF	_MyNewWindow
_MyNewWindow
	dc.w	$A,$A,$12C,$96
	dc.b	1,2
	dc.l	$240206,$100F,0,0,L57,0,0
	dc.w	$14,$14,$3E8,$3E8,$F
	XDEF	_MultiTags
_MultiTags
	dc.l	$80080014,$9,$8008000A,L58,$80080001,L59,0
	ds.b	4
	XDEF	_SaveTags
_SaveTags
	dc.l	$80080001,L60,$80080014,$21,$80080012,L61,0
	ds.b	4
	XDEF	_FileTags2
_FileTags2
	dc.l	$80080002,0,$80080007,_FileHook,$80080014,$C0,$80080001,L62,0
	ds.b	4
	XDEF	_FontTags
_FontTags
	dc.l	$80080014,$50,$80080010,$8,$80080011,$9,$80080007,_FontHook,0
	ds.b	4
	XDEF	_ModeList
_ModeList
	dc.l	L63,L64,L65,L66,L67,L68,0
	XDEF	_FontTags2
_FontTags2
	dc.l	$80080002,0,$80080001,L69,$80080012,L70,$80080011,$1E,$80080014,$CF,$80080015
	dc.l	_ModeList,0
	ds.b	4
	XDEF	_FontSelectToggle
_FontSelectToggle
	dc.w	1

	SECTION ":2",BSS

	XDEF	_AslBase
_AslBase
	ds.l	1
	XDEF	_IntuitionBase
_IntuitionBase
	ds.l	1
	XDEF	_GfxBase
_GfxBase
	ds.l	1
	XDEF	_DiskfontBase
_DiskfontBase
	ds.l	1
	XDEF	_MyScreen
_MyScreen
	ds.l	1
	XDEF	_MyWindow
_MyWindow
	ds.l	1
	XDEF	_MyFont
_MyFont
	ds.l	1
	XDEF	_OldFont
_OldFont
	ds.l	1
	XDEF	_FileRequester
_FileRequester
	ds.l	1
	XDEF	_FontRequester
_FontRequester
	ds.l	1

	END
