;==================================================================
;===
;===	Name:	Hello
;===
;===	Author:	Bjørn Reese
;===
;===	This source is Public Domain.
;===
;==================================================================

;--- Comment ------------------------------------------------------
;
; TAB = 8	;	POINTER = ^
;
; A simple example of how to use "con.library".
;
;------------------------------------------------------------------


;--- System -------------------------------------------------------

	INCDIR	INCLUDE:

;--- Include ------------------------------------------------------

	INCLUDE	exec/exec_lib.i
	INCLUDE	intuition/intuition.i
	INCLUDE	work/con_lib.i		;or whereever you keep them.
	INCLUDE	work/con.i

;--- Macro --------------------------------------------------------

CALL:	MACRO
	jsr	_LVO\1(a6)
	ENDM


;==================================================================
;===
;===	CODE AREA
;===
;==================================================================

	SECTION	Reese,CODE

start:

;--- Open Con Library

	move.l	(_SysBase).w,a6
	moveq	#0,d0
	lea	sConName(pc),a1
	CALL	OpenLibrary
	move.l	d0,pConBase

;--- Open ConWindow (with cursor off)

	move.l	pConBase(pc),a6
	lea	dMyWindow(pc),a0
	move.w	#CURSOROFF,d0
	CALL	OpenCon
	move.l	d0,pConHandle

;--- Place the cursor

	move.l	pConHandle(pc),a0
	moveq	#30,d0
	moveq	#12,d1
	CALL	GotoXY

;--- Write a text

	moveq	#-1,d0
	move.l	pConHandle(pc),a0
	lea	sHello(pc),a1
	CALL	DisplayRaw

;--- Wait for keypressed

	move.l	pConHandle(pc),a0
	move.l	#ACCF_WAIT!ACCF_ECHO!ACCF_ERASE,d0
	lea	dKeypress(pc),a1
	CALL	Accept

;--- Close ConWindow

	move.l	pConBase(pc),a6
	move.l	pConHandle(pc),a0
	CALL	CloseCon

;--- Close Con Library

	move.l	(_SysBase).w,a6
	move.l	pConBase(pc),a1
	CALL	CloseLibrary
	moveq	#0,d0
	rts


;==================================================================
;===
;===	DATA AREA
;===
;==================================================================

DataArea:

;--- Variable -----------------------------------------------------

pConBase	dc.l	0
pConHandle	dc.l	0

;--- Text ---------------------------------------------------------

sConName	dc.b	'con.library',0
sWindowTitle	dc.b	'- Press any key -',0

sHello		dc.b	'Hello Amiga dudes.',0
	EVEN


;--- Table --------------------------------------------------------

cMyIDCMP	SET CLOSEWINDOW
cMyFlags	SET WINDOWSIZING!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE
cMyFlags	SET cMyFlags!SMART_REFRESH!ACTIVATE!NOCAREREFRESH

;--- Intuition NewWindow Structure

dMyWindow:
	dc.w	0,11		;LeftEdge, TopEdge
	dc.w	640,245		;Width, Height
	dc.b	0,1		;DetailPen, BlockPen
	dc.l	cMyIDCMP	;IDCMPFlags
	dc.l	cMyFlags	;Flags
	dc.l	0,0		;FirstGadget, CheckMark
	dc.l	sWindowTitle	;Title
	dc.l	0		;Screen
	dc.l	0		;BitMap
	dc.w	30,30		;MinWidth, MinHeight
	dc.w	-1,-1		;MaxWidth, MaxHeight
	dc.w	WBENCHSCREEN	;Type

;--- AcceptStruct

dKeypress:
	dc.w	-1,-1			;XStart,YStart
	dc.w	-1,-1,-1		;Styles,FgCol,BgCol
	dc.l	CLOSEWINDOW		;ExitFlags
	dcb.l	7,0			;Message stuff
	dc.b	0,0			;Char,Pad001
	dcb.b	CHARDEFSIZE,-1		;ValidTable
	dcb.b	CHARDEFSIZE,-1		;ExitTable
	dcb.l	4,0			;Reserved
