update to ida 7.6, add builds
This commit is contained in:
80
idasdk76/module/pdp11/pdp.hpp
Normal file
80
idasdk76/module/pdp11/pdp.hpp
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Interactive disassembler (IDA)
|
||||
* Copyright (c) 1990-98 by Ilfak Guilfanov.
|
||||
* E-mail: ig@datarescue.com
|
||||
* PDP11 module.
|
||||
* Copyright (c) 1995-2006 by Iouri Kharon.
|
||||
* E-mail: yjh@styx.cabel.net
|
||||
*
|
||||
* ALL RIGHTS RESERVED.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _PDP_HPP
|
||||
#define _PDP_HPP
|
||||
|
||||
#include "../idaidp.hpp"
|
||||
#include "ins.hpp"
|
||||
#include "pdp_ml.h"
|
||||
//-V::536 octal
|
||||
|
||||
#define UAS_SECT 0x0001 // Segments are named .SECTION
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// Redefine temporary names
|
||||
//
|
||||
#define bytecmd auxpref_u8[0]
|
||||
|
||||
#define segval specval_shorts.low
|
||||
#define addr16 addr_shorts.low
|
||||
#define ill_imm specflag1
|
||||
|
||||
#define o_fpreg o_idpspec0
|
||||
#define o_number o_idpspec1
|
||||
//------------------------------------------------------------------------
|
||||
enum pdp_registers
|
||||
{
|
||||
rR0, rR1, rR2, rR3, rR4, rR5, rSP, rPC,
|
||||
rAC0, rAC1, rAC2, rAC3, rAC4, rAC5,
|
||||
rVcs, rVds
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
void idaapi pdp_header(outctx_t &ctx);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
struct pdp11_t : public procmod_t
|
||||
{
|
||||
netnode ovrtrans;
|
||||
pdp_ml_t ml = { uint32(BADADDR), 0, 0, 0 };
|
||||
bool flow = false;
|
||||
ushort emuR0 = 0xFFFF;
|
||||
//lint -e708 'union initialization'
|
||||
union
|
||||
{
|
||||
ushort w;
|
||||
uchar b[2];
|
||||
} emuR0data = { 0xFFFF };
|
||||
|
||||
virtual ssize_t idaapi on_event(ssize_t msgid, va_list va) override;
|
||||
|
||||
void jmpoper(insn_t &insn, op_t *Op, uint16 nibble);
|
||||
int ana(insn_t *_insn);
|
||||
|
||||
void pdp_segstart(outctx_t &ctx, segment_t *seg);
|
||||
|
||||
void loadR0data(const insn_t &insn, const op_t *x, int sme);
|
||||
void handle_operand(const insn_t &insn, const op_t &x, bool is_forced, bool isload);
|
||||
int emu(const insn_t &insn);
|
||||
|
||||
void pdp_footer(outctx_t &ctx) const;
|
||||
bool out_equ(outctx_t &ctx, ea_t ea) const;
|
||||
void pdp_data(outctx_t &ctx, bool analyze_only) const;
|
||||
|
||||
void load_from_idb();
|
||||
};
|
||||
|
||||
extern int data_id;
|
||||
#define PROCMOD_NODE_NAME "$ pdp-11 overlay translations"
|
||||
#define PROCMOD_NAME pdp11
|
||||
#endif
|
||||
Reference in New Issue
Block a user