amiga-hardware-examples/old_hardware_setup.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();
}