; Hardware hacking screenmodes on the Amiga for PAL, NTSC, DBLPAL (VGA) etc. ; by Fabio "Maverick" Bizzetti sync_mode=0 ; 0=pal ; 1=ntsc ; 2=dblpal ; 3=dblntsc ; 4=1942 SetSyncMode: lea $dff000,a0 move.l #sync_mode,d0 jmp ([.jmptab,pc,d0.l*4]) .jmptab dc.l .pal dc.l .ntsc dc.l .dblpal dc.l .dblntsc dc.l .1942 .pal move.w #$0020,$1DC(a0) ;BEAMCON0 move.w #$0038,$092(a0) ;DDFSTRT move.w #$00D8,$094(a0) ;DDFSTOP move.w #$0003,$1FC(a0) ;FMODE move.w #$4481,$08E(a0) ;DIWSTRT move.w #$0CC1,$090(a0) ;DIWSTOP move.w #$0211,$100(a0) ;BPLCON0 move.w #$0000,$108(a0) ;BPL1MOD move.w #$0000,$10A(a0) ;BPL2MOD bra.w .exit .ntsc move.w #$0000,$1DC(a0) ;BEAMCON0 move.w #$0038,$092(a0) ;DDFSTRT move.w #$00D8,$094(a0) ;DDFSTOP move.w #$0003,$1FC(a0) ;FMODE move.w #$2C81,$08E(a0) ;DIWSTRT move.w #$F4C1,$090(a0) ;DIWSTOP move.w #$0211,$100(a0) ;BPLCON0 move.w #$0000,$108(a0) ;BPL1MOD move.w #$0000,$10A(a0) ;BPL2MOD bra.w .exit .dblpal move.w #$0005,$1C4(a0) ;HBSTRT move.w #$000F,$1DE(a0) ;HSSTRT move.w #$001B,$1C2(a0) ;HSSTOP move.w #$0021,$1C6(a0) ;HBSTOP move.w #$0073,$1C0(a0) ;HTOTAL move.w #$0000,$1CC(a0) ;VBSTRT move.w #$0003,$1E0(a0) ;VSSTRT move.w #$0005,$1CA(a0) ;VSSTOP move.w #$001D,$1CE(a0) ;VBSTOP move.w #$026D,$1C8(a0) ;VTOTAL move.w #$0B88,$1DC(a0) ;BEAMCON0 move.w #$0018,$092(a0) ;DDFSTRT move.w #$0068,$094(a0) ;DDFSTOP move.w #$0003,$1FC(a0) ;FMODE move.w #$8046,$08E(a0) ;DIWSTRT move.w #$10E6,$090(a0) ;DIWSTOP move.w #$0200,$1E4(a0) ;DIWHIGH move.w #$8211,$100(a0) ;BPLCON0 move.w #$0000,$108(a0) ;BPL1MOD move.w #$0000,$10A(a0) ;BPL2MOD bra.w .exit .dblntsc move.w #$0005,$1C4(a0) ;HBSTRT move.w #$000E,$1DE(a0) ;HSSTRT move.w #$001B,$1C2(a0) ;HSSTOP move.w #$0021,$1C6(a0) ;HBSTOP move.w #$0072,$1C0(a0) ;HTOTAL move.w #$0000,$1CC(a0) ;VBSTRT move.w #$0003,$1E0(a0) ;VSSTRT move.w #$0005,$1CA(a0) ;VSSTOP move.w #$001D,$1CE(a0) ;VBSTOP move.w #$020E,$1C8(a0) ;VTOTAL move.w #$0B88,$1DC(a0) ;BEAMCON0 move.w #$0018,$092(a0) ;DDFSTRT move.w #$0068,$094(a0) ;DDFSTOP move.w #$0003,$1FC(a0) ;FMODE move.w #$5046,$08E(a0) ;DIWSTRT move.w #$E0E6,$090(a0) ;DIWSTOP move.w #$0100,$1E4(a0) ;DIWHIGH move.w #$8211,$100(a0) ;BPLCON0 move.w #$0000,$108(a0) ;BPL1MOD move.w #$0000,$10A(a0) ;BPL2MOD bra.b .exit .1942 move.w #$0005,$1C4(a0) ;HBSTRT move.w #$000F,$1DE(a0) ;HSSTRT move.w #$001B,$1C2(a0) ;HSSTOP move.w #$0021,$1C6(a0) ;HBSTOP move.w #$0072,$1C0(a0) ;HTOTAL move.w #$0000,$1CC(a0) ;VBSTRT move.w #$0005,$1E0(a0) ;VSSTRT move.w #$0001,$1CA(a0) ;VSSTOP move.w #$001D,$1CE(a0) ;VBSTOP move.w #$020E,$1C8(a0) ;VTOTAL move.w #$0B88,$1DC(a0) ;BEAMCON0 move.w #$0018,$092(a0) ;DDFSTRT move.w #$0068,$094(a0) ;DDFSTOP move.w #$0003,$1FC(a0) ;FMODE move.w #$5046,$08E(a0) ;DIWSTRT move.w #$E0E6,$090(a0) ;DIWSTOP move.w #$0100,$1E4(a0) ;DIWHIGH move.w #$8211,$100(a0) ;BPLCON0 move.w #$0000,$108(a0) ;BPL1MOD move.w #$0000,$10A(a0) ;BPL2MOD .exit move.w #$0082,$096(a0) ;DMACON - disable cop/spr move.w #$8300,$096(a0) ;DMACON - enable mast/bpl rts