home *** CD-ROM | disk | FTP | other *** search
- OPT c+,l-,o+
-
- *********************
- * *
- * NTSC 1.0 *
- * *
- * by Nico François *
- *********************
-
- incdir "INCLUDE:"
- 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) ; open DOS
- 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 ; check for new 1Mb Agnus
- and.w #$2000,d0
- bne.s ok1MbAgnus
- lea oldagnus.txt(PC),a0 ; if not available print
- move.l a0,d2
- move.l #oldagnus.len,d3 ; message
- 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) ; open graphics.library
- move.l d0,a1
- move.w gb_DisplayFlags(a1),d0
- and.b #%11111011,d0 ; clear PAL flag
- or.b #%00000001,d0 ; set NTSC flag
- move.w d0,gb_DisplayFlags(a1)
- move.w #200,gb_NormalDisplayRows(a1) ; WorkBench 200 pixels high
- or.b #LIBF_CHANGED,LIB_FLAGS(a1)
- move.l a1,a2
- jsr _LVOSumLibrary(a6) ; recalculate checksum
- move.l a2,a1
- jsr _LVOCloseLibrary(a6)
- move.b #60,VBlankFrequency(a6) ; change VBLANK
- or.b #LIBF_CHANGED,LIB_FLAGS(a6)
- jsr _LVOSumLibrary(a6) ; recalculate checksum
- move.w #0,$dff1dc ; this one does all the magic
- exit:
- moveq #0,d0
- rts
-
- header.txt:
- dc.b $9b,'1mNTSC 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
- EVEN
-
- END
-