3#ifndef __LIBWW_SYS_BANK_H__
4#define __LIBWW_SYS_BANK_H__
21#define sram_get_map() bank_get_map(BANK_SRAM)
22#define sram_set_map(bank_id) bank_get_map(BANK_SRAM, bank_id)
23#define rom0_get_map() bank_get_map(BANK_ROM0)
24#define rom0_set_map(bank_id) bank_get_map(BANK_ROM0, bank_id)
25#define rom1_get_map() bank_get_map(BANK_ROM1)
26#define rom1_set_map(bank_id) bank_get_map(BANK_ROM1, bank_id)
32static inline void bank_set_map(uint16_t bank_type, uint16_t bank) {
37 :
"b" (bank_type),
"c" (bank),
"Rah" ((uint8_t) 0x00)
51 :
"b" (bank_type),
"Rah" ((uint8_t) 0x01)
67 :
"b" (bank_id),
"d" (offset),
"Rah" ((uint8_t) 0x02)
78static inline void bank_write_byte(uint16_t bank_id, uint16_t offset, uint8_t value) {
83 :
"b" (bank_id),
"d" (offset),
"c" (value),
"Rah" ((uint8_t) 0x03)
98 :
"b" (bank_id),
"d" (offset),
"Rah" ((uint8_t) 0x04)
109static inline void bank_write_word(uint16_t bank_id, uint16_t offset, uint16_t value) {
114 :
"b" (bank_id),
"d" (offset),
"c" (value),
"Rah" ((uint8_t) 0x05)
125void bank_read_block(uint16_t bank_id, uint16_t offset,
void __far* data, uint16_t length);
133void bank_write_block(uint16_t bank_id, uint16_t offset,
const void __far* data, uint16_t length);
141static inline void bank_fill_block(uint16_t bank_id, uint16_t offset, uint16_t length, uint8_t value) {
146 :
"a" ((uint16_t) (((0x08) << 8) | (value & 0xFF))),
"b" (bank_id),
"d" (offset),
"c" (length)
159 :
"b" (bank_id),
"Rah" ((uint8_t) 0x09)
static void bank_write_word(uint16_t bank_id, uint16_t offset, uint16_t value)
static uint8_t bank_read_byte(uint16_t bank_id, uint16_t offset)
static void bank_set_map(uint16_t bank_type, uint16_t bank)
static void bank_fill_block(uint16_t bank_id, uint16_t offset, uint16_t length, uint8_t value)
static void bank_erase_flash(uint16_t bank_id)
static uint8_t bank_read_word(uint16_t bank_id, uint16_t offset)
static void bank_write_byte(uint16_t bank_id, uint16_t offset, uint8_t value)
void bank_read_block(uint16_t bank_id, uint16_t offset, void __far *data, uint16_t length)
static uint16_t bank_get_map(uint16_t bank_type)
void bank_write_block(uint16_t bank_id, uint16_t offset, const void __far *data, uint16_t length)