amiga_cyberspace
annotate src/copper.h @ 3:200e512488e4
reduced sky copperlist, works on emulator only apparently
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 27 Jul 2017 10:42:36 +0300 |
parents | b5d609c7161d |
children |
rev | line source |
---|---|
nuclear@1 | 1 #ifndef COPPER_H_ |
nuclear@1 | 2 #define COPPER_H_ |
nuclear@1 | 3 |
nuclear@1 | 4 #include "inttypes.h" |
nuclear@1 | 5 |
nuclear@2 | 6 #define COPPER_MOVE(reg, data) (((uint32_t)(reg) << 16) | ((uint32_t)(data) & 0xffff)) |
nuclear@1 | 7 #define COPPER_WAIT(x, y) \ |
nuclear@1 | 8 (0x0001fffe | ((uint32_t)((x) + 0x81) << 16) | ((uint32_t)((y) + 0x2c) << 24)) |
nuclear@1 | 9 #define COPPER_WAIT_OVERSCAN(x, y) \ |
nuclear@1 | 10 (0x0001fffe | ((uint32_t)(x) << 16) | ((uint32_t)(y) << 24)) |
nuclear@1 | 11 #define COPPER_VWAIT(s) (0x0001ff00 | ((uint32_t)((s) + 0x2c) << 24)) |
nuclear@1 | 12 #define COPPER_VWAIT_OVERSCAN(s) \ |
nuclear@1 | 13 (0x0001ff00 | ((uint32_t)(s) << 24)) |
nuclear@1 | 14 #define COPPER_END 0xfffffffe |
nuclear@1 | 15 |
nuclear@2 | 16 extern uint32_t *copperlist, *copperlist_end; |
nuclear@1 | 17 |
nuclear@1 | 18 enum { |
nuclear@1 | 19 COPPER_SINGLE = 1, |
nuclear@1 | 20 COPPER_DOUBLE = 2 |
nuclear@1 | 21 }; |
nuclear@1 | 22 |
nuclear@1 | 23 int init_copper(int maxlist, int nlists); |
nuclear@1 | 24 void cleanup_copper(void); |
nuclear@1 | 25 |
nuclear@1 | 26 /* enables copper DMA */ |
nuclear@1 | 27 void enable_copper(void); |
nuclear@1 | 28 /* disables copper DMA */ |
nuclear@1 | 29 void disable_copper(void); |
nuclear@1 | 30 |
nuclear@1 | 31 void clear_copper(void); |
nuclear@1 | 32 void add_copper(uint32_t cmd); |
nuclear@1 | 33 void sort_copper(void); /* TODO */ |
nuclear@1 | 34 |
nuclear@1 | 35 void swap_copper(void); |
nuclear@1 | 36 |
nuclear@1 | 37 |
nuclear@1 | 38 #endif /* COPPER_H_ */ |