Added all changes into the new Main structure

This commit is contained in:
Philip Smart
2020-05-01 13:52:30 +01:00
parent da693b0bc4
commit 6e2849d541
2 changed files with 869 additions and 359 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -7,12 +7,13 @@
// This module is an extension to the MiSTer control program. It adds extensions to
// the menu system and additional I/O control specific to the Sharp MZ series
// emulation.
//
// Credits:
//
// Credits:
// Copyright: (c) 2018 Philip Smart <philip.smart@net2net.org>
//
// History: July 2018 - Initial module written.
// Sept 2018 - Synchronised with main MiSTer codebase.
// Dec 2018 - Additional updates for the MZ80B
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// This source file is free software: you can redistribute it and/or modify
@@ -33,12 +34,16 @@
#include "../../file_io.h"
// Enable following define for debug code.
#define __SHARPMZ_DEBUG__ 1
//#define __SHARPMZ_DEBUG_EXTRA__ 1
// Defaults.
//
#define MZ_TAPE_HEADER_STACK_ADDR 0x10f0
#define MZ_TAPE_HEADER_SIZE 128
#define MEMORY_DUMP_FILE "cmp/lastload"
#define MAX_FILENAME_SIZE 1024
#define MAX_TAPE_QUEUE 5
// HPS commands to fpga block.
//
@@ -57,15 +62,15 @@
// Memory blocks within the Emulator.
//
#define SHARPMZ_MEMBANK_ALL 0xff
#define SHARPMZ_MEMBANK_SYSROM 0x00
#define SHARPMZ_MEMBANK_SYSRAM 0x02
#define SHARPMZ_MEMBANK_KEYMAP 0x03
#define SHARPMZ_MEMBANK_VRAM 0x04
#define SHARPMZ_MEMBANK_CMT_HDR 0x05
#define SHARPMZ_MEMBANK_CMT_DATA 0x06
#define SHARPMZ_MEMBANK_CGROM 0x07
#define SHARPMZ_MEMBANK_CGRAM 0x08
#define SHARPMZ_MEMBANK_MAXBANKS 9
#define SHARPMZ_MEMBANK_SYSROM 0
#define SHARPMZ_MEMBANK_SYSRAM 1
#define SHARPMZ_MEMBANK_KEYMAP 2
#define SHARPMZ_MEMBANK_VRAM 3
#define SHARPMZ_MEMBANK_CMT_HDR 4
#define SHARPMZ_MEMBANK_CMT_DATA 5
#define SHARPMZ_MEMBANK_CGROM 6
#define SHARPMZ_MEMBANK_CGRAM 7
#define SHARPMZ_MEMBANK_MAXBANKS 8
// Name of the configuration file.
//
@@ -125,24 +130,39 @@
#define SHARPMZ_CMT_700DATA 4 // MZ-700 data file.
#define SHARPMZ_CMT_700BASIC 5 // MZ700 Basic program.
// Tape(CMT) Register bits.
//
#define REGISTER_CMT_PLAY_READY 0x01
#define REGISTER_CMT_PLAYING 0x02
#define REGISTER_CMT_RECORD_READY 0x04
#define REGISTER_CMT_RECORDING 0x08
#define REGISTER_CMT_ACTIVE 0x10
#define REGISTER_CMT_SENSE 0x20
#define REGISTER_CMT_WRITEBIT 0x40
#define REGISTER_CMT2_APSS 0x01
#define REGISTER_CMT2_DIRECTION 0x02
#define REGISTER_CMT2_EJECT 0x04
#define REGISTER_CMT2_PLAY 0x08
#define REGISTER_CMT2_STOP 0x10
// Numeric id of system registers.
//
#define REGISTER_MODEL 0
#define REGISTER_DISPLAY 1
#define REGISTER_CPU 2
#define REGISTER_AUDIO 3
#define REGISTER_CMT 4
#define REGISTER_CMT2 5
#define REGISTER_USERROM 6
#define REGISTER_FDCROM 7
#define REGISTER_8 8
#define REGISTER_9 9
#define REGISTER_10 10
#define REGISTER_11 11
#define REGISTER_12 12
#define REGISTER_13 13
#define REGISTER_DISPLAY2 2
#define REGISTER_DISPLAY3 3
#define REGISTER_CPU 4
#define REGISTER_AUDIO 5
#define REGISTER_CMT 6
#define REGISTER_CMT2 7
#define REGISTER_USERROM 8
#define REGISTER_FDCROM 9
#define REGISTER_10 10
#define REGISTER_11 11
#define REGISTER_12 12
#define REGISTER_SETUP 13
#define REGISTER_DEBUG 14
#define REGISTER_DEBUG2 15
#define REGISTER_DEBUG2 15
#define MAX_REGISTERS 16
// Numeric id of bit for a given CMT register flag.
@@ -161,17 +181,17 @@
//
static const unsigned int MZLOADADDR[MAX_IMAGE_TYPES][MAX_MZMACHINES] =
{
{ 0x00000, 0x03800, 0x07000, 0x0A800, 0x0E000, 0x11800, 0x15000, 0x17800 }, // MROM
{ 0x01000, 0x04800, 0x08000, 0x0B800, 0x0F000, 0x12800, 0x15800, 0x18000 }, // MROM 80C
{ 0x70000, 0x71000, 0x72000, 0x73000, 0x74000, 0x75000, 0x76000, 0x77000 }, // CGROM
{ 0x30000, 0x30100, 0x30200, 0x30300, 0x30400, 0x30500, 0x30600, 0x30700 }, // KEYMAP
{ 0x02000, 0x05800, 0x09000, 0x0C800, 0x10000, 0x13800, 0x16000, 0x18800 }, // USERROM
{ 0x02800, 0x06000, 0x09800, 0x0D000, 0x10800, 0x14000, 0x16800, 0x19000 } // FDCROM
{ 0x000000, 0x003800, 0x007000, 0x00A800, 0x00E000, 0x011800, 0x015000, 0x017800 }, // MROM
{ 0x001000, 0x004800, 0x008000, 0x00B800, 0x00F000, 0x012800, 0x015800, 0x018000 }, // MROM 80C
{ 0x500000, 0x501000, 0x502000, 0x503000, 0x504000, 0x505000, 0x506000, 0x507000 }, // CGROM
{ 0x200000, 0x200100, 0x200200, 0x200300, 0x200400, 0x200500, 0x200600, 0x200700 }, // KEYMAP
{ 0x002000, 0x005800, 0x009000, 0x00C800, 0x010000, 0x013800, 0x016000, 0x018800 }, // USERROM
{ 0x002800, 0x006000, 0x009800, 0x00D000, 0x010800, 0x014000, 0x016800, 0x019000 } // FDCROM
};
// Default size of roms.
//
static const unsigned int MZLOADSIZE[MAX_IMAGE_TYPES][MAX_MZMACHINES] =
static const unsigned int MZLOADSIZE[MAX_IMAGE_TYPES][MAX_MZMACHINES] =
{
{ 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0800, 0x0800 }, // MROM
{ 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0800, 0x0800 }, // MROM 80C
@@ -181,7 +201,8 @@ static const unsigned int MZLOADSIZE[MAX_IMAGE_TYPES][MAX_MZMACHINES] =
{ 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000 } // FDCROM
};
static const unsigned int MZBANKSIZE[SHARPMZ_MEMBANK_MAXBANKS] = { 0x20000, 0x0000, 0x10000, 0x00800, 0x04000, 0x00080, 0x10000, 0x08000, 0x08000 };
static const unsigned char MZBANKADDR[SHARPMZ_MEMBANK_MAXBANKS] = { 0x00, 0x10, 0x20, 0x30, 0x40, 0x41, 0x50, 0x60 };
static const unsigned int MZBANKSIZE[SHARPMZ_MEMBANK_MAXBANKS] = { 0x20000, 0x10000, 0x00800, 0x04000, 0x00080, 0x10000, 0x08000, 0x08000 };
#if !defined(MENU_H) && !defined(USER_IO_H)
// Lookup tables for menu entries.
@@ -191,39 +212,42 @@ const char *SHARPMZ_FAST_TAPE[] = { "Off", "2x", "4x", "8x", "16x", "32
"Off", "2x", "4x", "8x", "16x", "Off", "Off", "Off"
};
const char *SHARPMZ_CPU_SPEED[] = { "2MHz", "4MHz", "8MHz", "16MHz", "32MHz", "64MHz", "2MHz", "2MHz",
"3.5MHz", "7MHz", "14MHz", "28MHz", "56MHz", "112MHz", "3.5MHz", "3.5MHz",
"3.5MHz", "7MHz", "14MHz", "28MHz", "56MHz", "3.5MHz", "3.5MHz", "3.5MHz",
"4MHz", "8MHz", "16MHz", "32MHz", "64MHz", "4MHz", "4MHz", "4MHz"
};
const char *SHARPMZ_TAPE_BUTTONS[] = { "Off", "Play", "Record", "Auto" };
const char *SHARPMZ_ASCII_MAPPING[] = { "Off", "Record", "Play", "Both" };
const char *SHARPMZ_AUDIO_SOURCE[] = { "Sound", "Tape" };
const char *SHARPMZ_AUDIO_VOLUME[] = { "Max", "14", "13", "12", "11", "10", "9", "8", "7", "6", "5", "4", "3", "2", "1", "Min" };
const char *SHARPMZ_AUDIO_MUTE[] = { "Off", "Mute" };
const char *SHARPMZ_USERROM_ENABLED[] = { "Disabled", "Enabled" };
const char *SHARPMZ_FDCROM_ENABLED[] = { "Disabled", "Enabled" };
const char *SHARPMZ_ROM_ENABLED[] = { "Disabled", "Enabled" };
const char *SHARPMZ_AUTO_SAVE_ENABLED[] = { "No", "Yes" };
const char *SHARPMZ_DISPLAY_TYPE[] = { "Mono 40x25", "Mono 80x25 ", "Colour 40x25", "Colour 80x25", "tbd3", "tbd4", "tbd5", "tbd6" };
const char *SHARPMZ_ASPECT_RATIO[] = { "4:3", "16:9" };
const char *SHARPMZ_SCANDOUBLER_FX[] = { "None", "HQ2x", "CRT 25%", "CRT 50%", "CRT 75%", "tbd1", "tbd2", "tbd3" };
const char *SHARPMZ_VRAMWAIT_MODE[] = { "Off", "On" };
const char *SHARPMZ_VRAMDISABLE_MODE[] = { "Enabled", "Disabled" };
const char *SHARPMZ_GRAMDISABLE_MODE[] = { "Enabled", "Disabled" };
const char *SHARPMZ_GRAM_BASEADDR[] = { "0x00", "0x08", "0x10", "0x18", "0x20", "0x28", "0x30", "0x38", "0x40", "0x48", "0x50", "0x58", "0x60", "0x68", "0x70", "0x78",
"0x80", "0x88", "0x90", "0x98", "0xA0", "0xA8", "0xB0", "0xB8", "0xC0", "0xC8", "0xD0", "0xD8", "0xE0", "0xE8", "0xF0", "0xF8" };
const char *SHARPMZ_PCG_MODE[] = { "ROM", "RAM" };
const char *SHARPMZ_VGA_MODE[] = { "640x480@60Hz", "640x480@60Hz", "640x480@72Hz", "Off" };
const char *SHARPMZ_MACHINE_MODEL[] = { "MZ80K", "MZ80C", "MZ1200", "MZ80A", "MZ700", "MZ800", "MZ80B", "MZ2000" };
const char *SHARPMZ_DEBUG_ENABLE[] = { "Off", "On" };
const char *SHARPMZ_DEBUG_LEDS[] = { "Off", "On" };
const char *SHARPMZ_DEBUG_LEDS_BANK[] = { "T80", "I/O", "IOCTL", "Config", "MZ80C I", "MZ80C II", "MZ80B I", "MZ80B II" };
const char *SHARPMZ_DEBUG_LEDS_SUBBANK[] = { "Auto", "A7-0", "A15-8", "DI", "Signals", "", "", "",
"Auto", "Video", "PS2Key", "Signals", "", "", "", "",
const char *SHARPMZ_DEBUG_LEDS_SUBBANK[] = { "Auto", "A7-0", "A15-8", "DI", "Signals", "", "", "",
"Auto", "Video", "PS2Key", "Signals", "CMT 1", "CMT 2", "CMT 3", "CMT 4",
"Auto", "A23-16", "A15-8", "A7-0", "Signals", "", "", "",
"Auto", "Config 1", "Config 2", "Config 3", "Config 4", "Config 5", "", "",
"Auto", "CS 1", "CS 2", "CS 3", "INT/RE", "Clk", "", "",
"Auto", "CMT 1", "CMT 2", "CMT 3", "", "", "", "",
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"Auto", "", "", "", "", "", "", "",
"Auto", "CS 1", "CS 2", "MEM EN", "INT", "KEYB", "PPIA", "PPIB",
"Auto", "PPIC", "", "", "", "", "", "",
};
const char *SHARPMZ_DEBUG_CPUFREQ[] = { "CPU/CMT", "1MHz", "100KHz", "10KHz", "5KHz", "1KHz", "500Hz", "100Hz", "50Hz", "10Hz", "5Hz", "2Hz", "1Hz", "0.5Hz", "0.2Hz", "0.1Hz" };
const char *SHARPMZ_DEBUG_LEDS_SMPFREQ[] = { "CPU/CMT", "1MHz", "100KHz", "10KHz", "5KHz", "1KHz", "500Hz", "100Hz", "50Hz", "10Hz", "5Hz", "2Hz", "1Hz", "0.5Hz", "0.2Hz", "0.1Hz" };
const char *SHARPMZ_DEBUG_CPUFREQ[] = { "Normal", "1MHz", "100KHz", "10KHz", "5KHz", "1KHz", "500Hz", "100Hz", "50Hz", "10Hz", "5Hz", "2Hz", "1Hz", "0.5Hz", "0.2Hz", "0.1Hz" };
const char *SHARPMZ_DEBUG_LEDS_SMPFREQ[] = { "CPU", "1MHz", "100KHz", "10KHz", "5KHz", "1KHz", "500Hz", "100Hz", "50Hz", "10Hz", "5Hz", "2Hz", "1Hz", "0.5Hz", "0.2Hz", "0.1Hz" };
const char *SHARPMZ_MEMORY_BANK[] = { "SysROM", "SysRAM", "KeyMap", "VRAM", "CMTHDR", "CMTDATA", "CGROM", "CGRAM", "All" };
const char *SHARPMZ_MEMORY_BANK_FILE[] = { "sysrom.dump", "sysram.dump", "keymap.dump", "vram.dump", "cmt_hdr.dump", "cmt_data.dump", "cgrom.dump", "cgram.dump", "all_memory.dump" };
const char *SHARPMZ_TAPE_TYPE[] = { "N/A", "M/code", "MZ80 Basic", "MZ80 Data", "MZ700 Data", "MZ700 Basic", "N/A" };
@@ -234,20 +258,22 @@ const char *SHARPMZ_HELPTEXT[] = { "Welcome to the Sharp MZ Series! U
// External definitions.
extern const char *SHARPMZ_FAST_TAPE[];
extern const char *SHARPMZ_TAPE_BUTTONS[];
extern const char *SHARPMZ_ASCII_MAPPING[];
extern const char *SHARPMZ_AUDIO_SOURCE[];
extern const char *SHARPMZ_AUDIO_VOLUME[];
extern const char *SHARPMZ_AUDIO_MUTE[];
extern const char *SHARPMZ_USERROM_ENABLED[];
extern const char *SHARPMZ_FDCROM_ENABLED[];
extern const char *SHARPMZ_ROM_ENABLED[];
extern const char *SHARPMZ_AUTO_SAVE_ENABLED[];
extern const char *SHARPMZ_DISPLAY_TYPE[];
extern const char *SHARPMZ_ASPECT_RATIO[];
extern const char *SHARPMZ_SCANDOUBLER_FX[];
extern const char *SHARPMZ_VRAMWAIT_MODE[];
extern const char *SHARPMZ_VRAMDISABLE_MODE[];
extern const char *SHARPMZ_GRAMDISABLE_MODE[];
extern const char *SHARPMZ_GRAM_BASEADDR[];
extern const char *SHARPMZ_PCG_MODE[];
extern const char *SHARPMZ_VGA_MODE[];
extern const char *SHARPMZ_MACHINE_MODEL[];
extern const char *SHARPMZ_CPU_SPEED[];
extern const char *SHARPMZ_DEBUG_ENABLE[];
@@ -277,7 +303,6 @@ typedef struct
{
unsigned long system_ctrl; // Original MiSTer system control register.
unsigned char system_reg[MAX_REGISTERS]; // Emulator control register bank.
unsigned char autoSave; // Automatically save tape file if RECORD_READY becomes active. Use filename in header.
unsigned char volume; // Volume setting, using the MiSTer DAC level control. BIt 0-3 = Attenuation, bit 4 = Mute.
romData_t romMonitor[MAX_MZMACHINES][MAX_MROMOPTIONS]; // Details of rom monitor images to upload.
romData_t romCG[MAX_MZMACHINES]; // Details of rom character generator images to upload.
@@ -288,18 +313,12 @@ typedef struct
// Structures to store the tape file queue.
//
typedef struct tape_queue_node tape_queue_node_t;
struct tape_queue_node
{
char fileName[MAX_FILENAME_SIZE];
tape_queue_node_t *next;
};
//
typedef struct
{
struct tape_queue_node *top;
struct tape_queue_node *bottom;
unsigned short elements;
char *queue[MAX_TAPE_QUEUE];
char fileName[MAX_FILENAME_SIZE];
unsigned short tapePos;
unsigned short elements;
} tape_queue_t;
// MZ Series Tape header structure - 128 bytes.
@@ -344,7 +363,7 @@ enum SHARPMZ_MENU
MENU_SHARPMZ_ROMS2 = 0xb5,
MENU_SHARPMZ_ROM_FILE_SELECTED = 0xb6,
MENU_SHARPMZ_DEBUG1 = 0xb7,
MENU_SHARPMZ_DEBUG2 = 0xb8
MENU_SHARPMZ_DEBUG2 = 0xb8
};
// Prototypes.
@@ -361,7 +380,6 @@ void sharpmz_send_file(romData_t &, char *);
void sharpmz_set_rom(romData_t *);
int sharpmz_FileRead(fileTYPE *file, void *pBuffer, int nSize);
short sharpmz_get_machine_group(void);
unsigned char sharpmz_get_auto_save_enabled(void);
int sharpmz_get_fasttape(void);
int sharpmz_get_display_type(void);
int sharpmz_get_aspect_ratio(void);
@@ -369,21 +387,17 @@ int sharpmz_get_scandoubler_fx(void);
int sharpmz_get_vram_wait_mode(void);
int sharpmz_get_vram_disable_mode(void);
int sharpmz_get_gram_disable_mode(void);
int sharpmz_get_gram_base_addr(void);
int sharpmz_get_pcg_mode(void);
int sharpmz_get_vga_mode(void);
int sharpmz_get_machine_model(void);
int sharpmz_get_cpu_speed(void);
int sharpmz_get_audio_source(void);
int sharpmz_get_audio_volume(void);
int sharpmz_get_audio_mute(void);
int sharpmz_get_debug_enable(void);
int sharpmz_get_debug_leds(void);
int sharpmz_get_tape_buttons(void);
int sharpmz_get_cmt_ascii_mapping(void);
short sharpmz_get_next_memory_bank(void);
short sharpmz_get_next_debug_leds_bank(void);
short sharpmz_get_next_debug_leds_subbank(unsigned char);
short sharpmz_get_next_debug_cpufreq(void);
short sharpmz_get_next_debug_leds_smpfreq(void);
void sharpmz_set_auto_save_enabled(unsigned char);
void sharpmz_set_fasttape(short, short);
void sharpmz_set_display_type(short, short);
void sharpmz_set_aspect_ratio(short, short);
@@ -391,19 +405,17 @@ void sharpmz_set_scandoubler_fx(short, short);
void sharpmz_set_vram_wait_mode(short, short);
void sharpmz_set_vram_disable_mode(short, short);
void sharpmz_set_gram_disable_mode(short, short);
void sharpmz_set_gram_base_addr(short, short);
void sharpmz_set_pcg_mode(short, short);
void sharpmz_set_vga_mode(short on, short setStatus);
void sharpmz_set_machine_model(short, short);
void sharpmz_set_cpu_speed(short, short);
void sharpmz_set_audio_source(short, short);
void sharpmz_set_audio_volume(short, short);
void sharpmz_set_audio_mute(short, short);
void sharpmz_set_debug_enable(short, short);
void sharpmz_set_debug_leds(short, short);
void sharpmz_set_debug_leds_bank(short, short);
void sharpmz_set_debug_leds_subbank(short, short);
void sharpmz_set_debug_cpufreq(short, short);
void sharpmz_set_debug_leds_smpfreq(short, short);
void sharpmz_set_boot_reset(short, short);
void sharpmz_set_tape_buttons(short, short);
void sharpmz_set_cmt_ascii_mapping(short, short);
int sharpmz_save_config(void);
int sharpmz_reset_config(short);
int sharpmz_reload_config(short);
@@ -420,7 +432,6 @@ short sharpmz_read_tape_header(const char *);
short sharpmz_load_tape_to_ram(const char *, unsigned char);
short sharpmz_save_tape_from_cmt(const char *);
sharpmz_tape_header_t *sharpmz_get_tape_header(void);
const char *sharpmz_get_auto_save_enabled_string(void);
const char *sharpmz_get_fasttape_string(void);
const char *sharpmz_get_display_type_string(void);
const char *sharpmz_get_aspect_ratio_string(void);
@@ -428,18 +439,14 @@ const char *sharpmz_get_scandoubler_fx_string(void);
const char *sharpmz_get_vram_wait_mode_string(void);
const char *sharpmz_get_vram_disable_mode_string(void);
const char *sharpmz_get_gram_disable_mode_string(void);
const char *sharpmz_get_gram_base_addr_string(void);
const char *sharpmz_get_pcg_mode_string(void);
const char *sharpmz_get_vga_mode_string(void);
const char *sharpmz_get_machine_model_string(void);
const char *sharpmz_get_cpu_speed_string(void);
const char *sharpmz_get_audio_source_string(void);
const char *sharpmz_get_audio_volume_string(void);
const char *sharpmz_get_audio_mute_string(void);
const char *sharpmz_get_debug_enable_string(void);
const char *sharpmz_get_debug_leds_string(void);
const char *sharpmz_get_debug_leds_bank_string(void);
const char *sharpmz_get_debug_leds_subbank_string(void);
const char *sharpmz_get_debug_cpufreq_string(void);
const char *sharpmz_get_debug_leds_smpfreq_string(void);
const char *sharpmz_get_machine_model_string(short machineModel);
const char *sharpmz_get_machine_model_string(void);
const char *sharpmz_get_user_rom_enabled_string(short);
@@ -447,11 +454,13 @@ const char *sharpmz_get_fdc_rom_enabled_string(short);
const char *sharpmz_get_custom_rom_enabled_string(short romEnabled);
const char *sharpmz_get_tape_type_string(void);
const char *sharpmz_get_tape_buttons_string(void);
const char *sharpmz_get_cmt_ascii_mapping_string(void);
const char *sharpmz_get_memory_bank_string(short);
const char *sharpmz_get_memory_bank_file(short);
void sharpmz_push_filename(char *);
char *sharpmz_pop_filename(void);
char *sharpmz_get_next_filename(char);
char *sharpmz_apss_search(char);
void sharpmz_clear_filelist(void);
void sharpmz_select_file(const char*, unsigned char, char *, char, char *);
int sharpmz_default_ui_state(void);
@@ -462,4 +471,25 @@ void sharpmz_ui(int idleState, int idle2State, int system
char *fs_pFileExt,
unsigned char menu, unsigned char select, unsigned char up, unsigned char down,
unsigned char left, unsigned char right, unsigned char plus, unsigned char minus);
#ifdef __SHARPMZ_DEBUG__
int sharpmz_get_debug_enable(void);
int sharpmz_get_debug_leds(void);
short sharpmz_get_next_debug_leds_bank(void);
short sharpmz_get_next_debug_leds_subbank(unsigned char);
short sharpmz_get_next_debug_cpufreq(void);
short sharpmz_get_next_debug_leds_smpfreq(void);
void sharpmz_set_debug_enable(short, short);
void sharpmz_set_debug_leds(short, short);
void sharpmz_set_debug_leds_bank(short, short);
void sharpmz_set_debug_leds_subbank(short, short);
void sharpmz_set_debug_cpufreq(short, short);
void sharpmz_set_debug_leds_smpfreq(short, short);
const char *sharpmz_get_debug_enable_string(void);
const char *sharpmz_get_debug_leds_string(void);
const char *sharpmz_get_debug_leds_bank_string(void);
const char *sharpmz_get_debug_leds_subbank_string(void);
const char *sharpmz_get_debug_cpufreq_string(void);
const char *sharpmz_get_debug_leds_smpfreq_string(void);
#endif
#endif // SHARPMZ_H