SGDK
A free and open development kit for the Sega Mega Drive
Loading...
Searching...
No Matches
minimus.h
1#ifndef MINIMUS_H_
2#define MINIMUS_H_
3
4// SGDK replacement for stdint.h
5#include "types.h"
6
7#define MINIMUSIC_MEMORY_BARRIER() asm volatile ("" : : : "memory")
8
9static inline void MINIMUSIC_Z80_GUARD_BEGIN() {
10 volatile uint16_t *port = (uint16_t*)(0xA11100);
11 MINIMUSIC_MEMORY_BARRIER();
12 *port = 0x100;
13 MINIMUSIC_MEMORY_BARRIER();
14}
15
16static inline void MINIMUSIC_Z80_GUARD_END() {
17 volatile uint16_t *port = (uint16_t*)(0xA11100);
18 MINIMUSIC_MEMORY_BARRIER();
19 *port = 0x000;
20 MINIMUSIC_MEMORY_BARRIER();
21}
22
23#define MINIMUSIC_STATUS_BGM 0x01
24
25void minimusic_init(const void *, uint16_t);
26void minimusic_sendcmd(uint8_t);
27uint8_t minimusic_get_status(void);
28
29#endif
Types definition.