	OPT c+,l-,o+

*****************************************************************************
*                                                                           *
* Programma ............  PAL 1.0                                           *
*                                                                           *
* Autore ...............  Nico François                                     *
*                                                                           *
* Sistema .............. Amiga 500/2500, Kickbench V1.2/1.3, Devpac V2.14   *
*                                                                           *
*****************************************************************************

	incdir "dh1:includedevpac/" ; Modificare in base alla propria

	include "exec/types.i"
	include "exec/execbase.i"
	include "exec/memory.i"
	include "exec/resident.i"
	include "exec/exec_lib.i"
	include "graphics/gfxbase.i"
	include "graphics/graphics_lib.i"
	include "libraries/dos_lib.i"

	move.l ($4).w,a6
	lea DosName(PC),a1
	jsr _LVOOldOpenLibrary(a6)          ; Apre DOS.library
	move.l d0,a6
	jsr _LVOOutput(a6)
	move.l d0,d7
	move.l d0,d1
	lea header.txt(PC),a0
	move.l a0,d2
	move.l #header.len,d3
	jsr _LVOWrite(a6)

	move.w $DFF004,d0                   ; Verifica nuovo Fat Agnus
	and.w #$2000,d0
	bne.s ok1MbAgnus
	lea oldagnus.txt(PC),a0             ; Se non disponibile, stampa msg.
	move.l a0,d2
	move.l #oldagnus.len,d3
	move.l d7,d1
	jsr _LVOWrite(a6)
	move.l a6,a1
	move.l ($4).w,a6
	jsr _LVOCloseLibrary(a6)
	bra.s exit

ok1MbAgnus:
	move.l a6,a1
	move.l ($4).w,a6
	jsr _LVOCloseLibrary(a6)
	lea GfxName(PC),a1
	jsr _LVOOldOpenLibrary(a6)    ; Apre graphics.library
	move.l d0,a1
	move.w gb_DisplayFlags(a1),d0
	and.b #%11111110,d0           ; Azzera flag NTSC
	or.b  #%00000100,d0           ; Attiva flag PAL
	move.w d0,gb_DisplayFlags(a1)
	move.w #256,gb_NormalDisplayRows(a1)   ; WorkBench alto 256 pixels
	or.b #LIBF_CHANGED,LIB_FLAGS(a1)
	move.l a1,a2
	jsr _LVOSumLibrary(a6)        ; Ricalcola checksum
	move.l a2,a1
	jsr _LVOCloseLibrary(a6)
	move.b #50,VBlankFrequency(a6)   ; Cambia VBLANK
	or.b #LIBF_CHANGED,LIB_FLAGS(a6)
	jsr _LVOSumLibrary(a6)        ; Ricalcola checksum
	move.w #32,$dff1dc            ; Questo fa tutta la magia
exit:
	moveq #0,d0
	rts

header.txt:
	dc.b $9b,'1mPAL 1.0 ',$9b,'0m',$9b,'33mby Nico François',$9b,'0m',10
header.len equ *-header.txt
oldagnus.txt:
	dc.b 'You haven''t got the ECS 1Mb Agnus, so run out and buy one !',10,0
oldagnus.len equ *-oldagnus.txt
DosName:	dc.b 'dos.library',0
GfxName:	dc.b 'graphics.library',0
	cnop 0,4

	END
