File:  [Isaki's NoNo m68k/m88k emulator] / nono / m88xx0 / m88100disasm.h
Revision 1.1.1.8 (vendor branch): download - view: text, annotated - select for diffs
Wed Apr 29 17:05:15 2026 UTC (2 months, 3 weeks ago) by root
Branches: MAIN, Isaki
CVS tags: v027, v026, v025, v024, v023, v022, v021, v020, v019, v018, v017, HEAD
nono 0.5.0

//
// nono
// Copyright (C) 2020 nono project
// Licensed under nono-license.txt
//

#pragma once

#include "disasm.h"

class m88100disasm final : public DisasmLine
{
	using inherited = DisasmLine;
 public:
	m88100disasm();
	~m88100disasm() override;

	// 逆アセンブルを実行
	bool Exec(DebuggerMemoryStream *mem_) override;

	// 別ニーモニックを使うなら true (グローバル)
	static bool use_altname;

 private:
	uint32 xip {};

	uint32 opX  {};
	std::string name {};
	std::string arg0 {};
	std::string arg1 {};
	std::string arg2 {};
	// 別名用
	std::string altname {};
	std::string altarg0 {};
	std::string altarg1 {};
	std::string altarg2 {};

	std::string rd();
	std::string rs1();
	std::string rs2();
	std::string imm16();
	std::string d16();
	std::string d26();
	std::string crs();
	std::string fcrs();
	std::string fsize(uint32 t);
	std::string fsize();
	std::string wo5();
	uint32      wo5mask();
	std::string cio();
	std::string b5();
	std::string m5();
	std::string alt_m5();
	std::string vec9();

	void ops_bb(std::string namebase);
	void ops_bcnd(std::string n);
	void ops_tb(std::string namebase);
	void ops_ldst_imm(const std::string& namebase);
	void ops_ldst_reg(const std::string& namebase, std::string suffix);

	void op_unimpl();

#define OP_PROTO(name)	void __CONCAT(op_,name)()
#include "m88100ops.h"
#undef OP_PROTO
};

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.