oscar64/include/c64/rasterirq.h

55 lines
915 B
C

#ifndef C64_RASTERIRQ_H
#define C64_RASTERIRQ_H
#include "types.h"
#define NUM_IRQS 16
enum RIRQCodeIndex
{
RIRQ_DATA_0 = 1,
RIRQ_DATA_1 = 3,
RIRQ_ADDR_0 = 10,
RIRQ_ADDR_1 = 13,
RIRQ_DATA_2 = 16,
RIRQ_ADDR_2 = 18,
RIRQ_DATA_3 = 21,
RIRQ_ADDR_3 = 23,
RIRQ_DATA_4 = 26,
RIRQ_ADDR_4 = 28,
RIRQ_SIZE = 31
};
struct RIRQCode
{
byte size;
byte code[RIRQ_SIZE];
};
void rirq_build(RIRQCode * ic, byte size);
inline void rirq_write(RIRQCode * ic, byte n, void * addr, byte data);
inline void rirq_addr(RIRQCode * ic, byte n, void * addr);
inline void rirq_data(RIRQCode * ic, byte n, byte data);
inline void rirq_set(byte n, byte row, RIRQCode * write);
inline void rirq_clear(byte n)
inline void rirq_move(byte n, byte row);
void rirq_init(bool kernalIRQ);
void rirq_start(void);
void rirq_stop(void);
void rirq_sort(void);
void rirq_wait(void);
#pragma compile("rasterirq.c")
#endif