Repository URL to install this package:
|
Version:
9.0~240925-3.fc42 ▾
|
/*
* Interactive disassembler (IDA).
* Version 3.05
* Copyright (c) 1990-95 by Ilfak Guilfanov.
* ALL RIGHTS RESERVED.
* FIDO: 2:5020/209
* E-mail: ig@estar.msk.su
*
*/
#ifndef _M65_HPP
#define _M65_HPP
#include "../idaidp.hpp"
#include "ins.hpp"
struct m6502_t : public procmod_t
{
bool is_cmos = false; // is CMOS (otherwise, NMOS)
virtual ssize_t idaapi on_event(ssize_t msgid, va_list va) override;
int ana(insn_t *_insn);
int emu(const insn_t &insn) const;
void handle_operand(const op_t &x, bool isload, const insn_t &insn, bool *flow) const;
void header(outctx_t &ctx) const;
void segstart(outctx_t &ctx, segment_t *seg) const;
void footer(outctx_t &ctx) const;
};
extern int data_id;
// Is indirect memory reference?
#define indirect auxpref
#define UAS_SECT 0x0002 // Segments are named .SECTION
#define UAS_NOSEG 0x0004 // No 'segment' directives
#define UAS_SELSG 0x0010 // Segment should be selected by its name
#define UAS_CDSEG 0x0080 // Only DSEG, CSEG, XSEG
#define UAS_NOENS 0x0200 // don't specify start addr in the .end directive
//------------------------------------------------------------------------
enum M65_registers { rA, rX, rY, rVcs, rVds, riX, riY, zX, zY };
//------------------------------------------------------------------------
int idaapi ana(insn_t *insn);
int idaapi emu(const insn_t &insn);
void idaapi assumes(outctx_t &ctx, ea_t ea);
int m65_opflags(const op_t &x);
#endif