starting on horizontal copper stuff
This commit is contained in:
commit
adc1e73777
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
.vamosrc
|
||||
*.o
|
||||
*.uaem
|
||||
*.lnk
|
||||
*.info
|
||||
bin/
|
3
build_horizontal_copper.sh
Executable file
3
build_horizontal_copper.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
vamos sc horizontal_copper.c old_hardware_setup.c link to bin/horizontal_copper
|
27
horizontal_copper.c
Normal file
27
horizontal_copper.c
Normal file
@ -0,0 +1,27 @@
|
||||
#include <clib/exec_protos.h>
|
||||
#include <clib/intuition_protos.h>
|
||||
#include <clib/graphics_protos.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <hardware/custom.h>
|
||||
#include <hardware/dmabits.h>
|
||||
|
||||
#include "old_hardware_setup.h"
|
||||
|
||||
extern struct GfxBase *GfxBase;
|
||||
extern far struct Custom custom;
|
||||
|
||||
int main(void) {
|
||||
struct OldHardwareSetup oldHardwareSetup;
|
||||
|
||||
oldHardware_takeOver(&oldHardwareSetup);
|
||||
|
||||
custom.dmacon = DMAF_SETCLR | DMAF_COPPER | DMAF_RASTER;
|
||||
custom.dmacon = DMAF_AUDIO | DMAF_DISK | DMAF_SPRITE | DMAF_BLITTER;
|
||||
|
||||
// set up a two bitplane display
|
||||
// create a copperlist
|
||||
// how do you write fonts to a bitpane?
|
||||
|
||||
|
||||
oldHardware_giveBack(&oldHardwareSetup);
|
||||
}
|
46
old_hardware_setup.c
Normal file
46
old_hardware_setup.c
Normal file
@ -0,0 +1,46 @@
|
||||
#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();
|
||||
}
|
25
old_hardware_setup.h
Normal file
25
old_hardware_setup.h
Normal file
@ -0,0 +1,25 @@
|
||||
#include <clib/exec_protos.h>
|
||||
#include <clib/intuition_protos.h>
|
||||
#include <clib/graphics_protos.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <hardware/custom.h>
|
||||
|
||||
#ifndef OLD_HARDWARE_SETUP_H
|
||||
#define OLD_HARDWARE_SETUP_H
|
||||
|
||||
extern struct GfxBase *GfxBase;
|
||||
extern far struct Custom custom;
|
||||
|
||||
struct OldHardwareSetup {
|
||||
struct View *OldView;
|
||||
ULONG OldCopper;
|
||||
UWORD OldDMACON;
|
||||
UWORD OldINTENA;
|
||||
UWORD OldINTREQ;
|
||||
UWORD OldADKCON;
|
||||
};
|
||||
|
||||
void oldHardware_takeOver(struct OldHardwareSetup *oldHardwareSetup);
|
||||
void oldHardware_giveBack(struct OldHardwareSetup *oldHardwareSetup);
|
||||
|
||||
#endif /* OLD_HARDWARE_SETUP_H */
|
Loading…
Reference in New Issue
Block a user