#include #include #include #include #include #include #include "blitter.h" #include "copper.h" #include "screen.h" #include "types.h" #include "system.h" extern struct Custom far custom; void writeSomethingToScreen(struct ScreenSetup *screenSetup) { *(screenSetup->memoryStart) = 255; *(screenSetup->memoryStart + 8) = 0xAA; *(screenSetup->memoryStart + 16) = 0xF0; *(screenSetup->memoryStart + SCREEN_WIDTH * SCREEN_HEIGHT / 8 + 4) = 255; } int main(void) { struct ScreenSetup screenSetup; uint16_t *copperlist, *currentCopperlist; int i, result; color_t colors[16]; struct BlitDrawLineSetup setup; struct BlitAreaDetails blitAreaDetails, sourceBlitCopyDetails; unsigned char *polygonScratchArea; colors[0] = 0x0200; colors[1] = 0x0f00; colors[2] = 0x0f0f; colors[3] = 0x000f; prepareScreen(&screenSetup, SCREEN_WIDTH, SCREEN_HEIGHT, 4); allocateScreenMemory(&screenSetup); blit_fillAreaDetailsFromScreenSetup( &screenSetup, &blitAreaDetails ); blit_fillAreaDetailsFromScreenSetup( &screenSetup, &sourceBlitCopyDetails ); polygonScratchArea = AllocMem(SCREEN_WIDTH * SCREEN_HEIGHT / 8, MEMF_CHIP | MEMF_CLEAR); // blitter copy the first bitplane row down to the second copperlist = prepareNewCopperlist(); takeOverSystem(); setCopperlist(copperlist); setUpDisplay(&screenSetup); currentCopperlist = addDisplayToCopperlist(copperlist, &screenSetup); currentCopperlist = addColorsToCopperlist(currentCopperlist, colors, 16); endCopperlist(currentCopperlist); // blit a line to the scratch area // blit the scratch area over /* blit_drawLine(&blitAreaDetails, &setup, 0, 0, 0, 40, 1); blit_drawLine(&blitAreaDetails, &setup, 1, 0, 1, 40, 3); blit_drawLine(&blitAreaDetails, &setup, 15, 0, 15, 40, 3); */ //blit_drawLine(&blitAreaDetails, &setup, 16, 10, 16, 40, 3); //blit_drawLine(&blitAreaDetails, &setup, 50, 10, 50, 40, 1); //blit_drawLine(&blitAreaDetails, &setup, 79, 80, 79, 120, 3); blit_howDoesFWMandLWMWork(&blitAreaDetails); WaitBlit(); /* blit_copyOneToOne( &blitAreaDetails, &blitAreaDetails, 1, 0, 24, 16, 80, 80 ); */ for (i = 0; i < 200; ++i) { WaitTOF(); } giveBackSystem(); freeScreenMemory(&screenSetup); freeCopperlist(copperlist); FreeMem(polygonScratchArea, SCREEN_WIDTH * SCREEN_HEIGHT / 8); printf("Hello from C\n"); printf("%d %d\n", setup.dx, setup.dy); printf("%d %d %d\n", setup.sud, setup.sul, setup.aul); printf("%d %d\n", setup.accumulator, setup.sign); return 0; }