BizHawk/waterbox/ngp/TLCS-900h/TLCS900h_disassemble.h

78 lines
2.4 KiB
C++

//---------------------------------------------------------------------------
// NEOPOP : Emulator as in Dreamland
//
// Copyright (c) 2001-2002 by neopop_uk
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version. See also the license.txt file for
// additional informations.
//---------------------------------------------------------------------------
/*
//---------------------------------------------------------------------------
//=========================================================================
TLCS900h_disassemble.h
//=========================================================================
//---------------------------------------------------------------------------
History of changes:
===================
20 JUL 2002 - neopop_uk
=======================================
- Cleaned and tidied up for the source release
//---------------------------------------------------------------------------
*/
#ifndef __TLCS900H_DISASSEMBLE__
#define __TLCS900H_DISASSEMBLE__
namespace TLCS900H
{
//=============================================================================
//Disassembles a single instruction from 'pc',
//pc is incremented to the start of the next instruction.
char* TLCS900h_disassemble(void);
//Print to this string the disassembled instruction
extern char instr[128];
//Print the mnemonic for the addressing mode / reg code.
extern char extra[256];
//=============================================================================
extern char str_R[8]; //Big R
extern char str_r[8]; //Little R
//Translate an rr or RR value for MUL/MULS/DIV/DIVS
void get_rr_Name(void);
void get_RR_Name(void);
extern uint8 bytes[16]; //Stores the bytes used
extern uint8 bcnt; //Byte Counter for above
extern const char* gprName[8][3]; //8 regs * 3 names (byte, word, long)
extern const char* regCodeName[3][256];
extern const char* crName[3][0x40];
extern const char* ccName[];
uint8 get8_dis(void);
uint16 get16_dis(void);
uint32 get24_dis(void);
uint32 get32_dis(void);
};
//=============================================================================
#endif