47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
|
#include "old_hardware_setup.h"
|
||
|
|
||
|
void oldHardware_takeOver(struct OldHardwareSetup *oldHardwareSetup) {
|
||
|
oldHardwareSetup->OldView = ((struct GfxBase *)GfxBase)->ActiView;
|
||
|
oldHardwareSetup->OldCopper = (ULONG)((struct GfxBase *)GfxBase)->copinit;
|
||
|
|
||
|
oldHardwareSetup->OldDMACON = custom.dmaconr | 0x8000;
|
||
|
oldHardwareSetup->OldINTENA = custom.intenar | 0x8000;
|
||
|
oldHardwareSetup->OldINTREQ = custom.intreqr | 0x8000;
|
||
|
oldHardwareSetup->OldADKCON = custom.adkconr | 0x8000;
|
||
|
|
||
|
// disable interrupts
|
||
|
custom.intena = 0xc000;
|
||
|
custom.intena = 0x3fff;
|
||
|
|
||
|
LoadView(NULL);
|
||
|
WaitTOF();
|
||
|
WaitTOF();
|
||
|
OwnBlitter();
|
||
|
WaitBlit();
|
||
|
|
||
|
Forbid();
|
||
|
}
|
||
|
|
||
|
void oldHardware_giveBack(struct OldHardwareSetup *oldHardwareSetup) {
|
||
|
custom.cop1lc = oldHardwareSetup->OldCopper;
|
||
|
LoadView(oldHardwareSetup->OldView);
|
||
|
|
||
|
custom.dmacon = 0x7FFF;
|
||
|
custom.dmacon = oldHardwareSetup->OldDMACON;
|
||
|
|
||
|
custom.intena = 0x7FFF;
|
||
|
custom.intena = oldHardwareSetup->OldINTENA;
|
||
|
|
||
|
custom.intreq = 0x7FFF;
|
||
|
custom.intreq = oldHardwareSetup->OldINTREQ;
|
||
|
|
||
|
custom.adkcon = 0x7FFF;
|
||
|
custom.adkcon = oldHardwareSetup->OldADKCON;
|
||
|
|
||
|
WaitTOF();
|
||
|
WaitTOF();
|
||
|
WaitBlit();
|
||
|
DisownBlitter();
|
||
|
Permit();
|
||
|
}
|