***
*** $VER: ABoot V2.0 by Mauro Panigada
***
*** PURPOSE: reads and executes the df0: bootblock.
***
*** Shorter than v1.0, uses OS2.04 os function... Better! FREEWARE.
***

		incdir	"dh0:progr/assem/include/"
		include	"exec/types.i"
		include	"exec/exec.i"
		include	"exec/exec_lib.i"
		include	"devices/trackdisk.i"
		include	"dos/dos.i"
		include	"dos/dos_lib.i"


CALL		MACRO
		jsr	_LVO\1(a6)
		ENDM


		bra.s	main

		dc.b	"$VER: ABoot V2.0 by Mauro Panigada",0
		even

main		movea.l	4.w,a6
		lea	dosname(pc),a1
		moveq	#37,d0
		CALL	OpenLibrary
		tst.l	d0
		bne.s	dosok
		moveq	#20,d0
		rts

dosok		move.l	d0,a6
		move.l	#message,d1
		CALL	PutStr
		move.l	a6,a1
		movea.l	4.w,a6
		CALL	CloseLibrary

busy_loop	btst.b	#6,$bfe001
		bne.s	busy_loop

		CALL	CreateMsgPort
		move.l	d0,a0
		move.l	#IOSTD_SIZE,d0
		CALL	CreateIORequest
		move.l	d0,a5
		move.l	d0,a1
		moveq	#0,d0
		moveq	#0,d1
		lea	trackname(pc),a0
		CALL	OpenDevice
		move.l	#1024,d0
		move.l	#MEMF_CHIP,d1
		CALL	AllocMem
		move.l	a5,a1
		move.l	d0,IO_DATA(a1)
		move.l	d0,a4
		move.w	#CMD_READ,IO_COMMAND(a1)
		clr.l	IO_OFFSET(a1)
		move.l	#1024,IO_LENGTH(a1)
		CALL	DoIO

		move.l	a5,a1
		jmp	12(a4)


dosname		dc.b	"dos.library",0
		even
trackname	dc.b	"trackdisk.device",0
		even
message		dc.b	"Insert a disk in DF0: and press left mouse"
		dc.b	" button.",10,0


		END