File:  [Isaki's NoNo m68k/m88k emulator] / nono / hd64180 / hd64180acc.h
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs
Wed Apr 29 17:05:34 2026 UTC (3 months ago) by root
Branches: MAIN, Isaki
CVS tags: v027, v026, v025, v024, v023, v022, v021, HEAD
nono 1.1.0

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

//
// HD64180 演算部分
//

#pragma once

#include "hd64180.h"

class hd64180acc : public hd64180flag
{
 public:
	uint32 ld_ir8(uint32 src);

	uint32 add_8(uint32 dst, uint32 src, bool save_c = false);
	uint32 sub_8(uint32 dst, uint32 src, bool save_c = false);
	uint32 inc_8(uint32 src) { return add_8(src, 1, true); }
	uint32 dec_8(uint32 src) { return sub_8(src, 1, true); }
	uint32 adc_8(uint32 dst, uint32 src);
	uint32 sbc_8(uint32 dst, uint32 src);

	uint32 add_16(uint32 dst, uint32 src);
	uint32 adc_16(uint32 dst, uint32 src);
	uint32 sbc_16(uint32 dst, uint32 src);

	void bit_8(uint b, uint32 src);
	uint32 in_8(uint32 src);
	uint32 outm_8(uint32 src, uint32 creg);

	uint32 and_8(uint32 dst, uint32 src);
	uint32 or_8(uint32 dst, uint32 src);
	uint32 xor_8(uint32 dst, uint32 src);
	void tst_8(uint32 dst, uint32 src);

	uint32 sla_8(uint32 src);
	uint32 sra_8(uint32 src);
	uint32 sll_8(uint32 src);
	uint32 srl_8(uint32 src);
	uint32 rl_8(uint32 src);
	uint32 rlc_8(uint32 src);
	uint32 rr_8(uint32 src);
	uint32 rrc_8(uint32 src);

	uint32 daa_8(uint32 src);

 private:
	static inline uint32 vflag_add(uint32 dst, uint32 src, uint32 res);
	static inline uint32 vflag_sub(uint32 dst, uint32 src, uint32 res);
	static inline uint32 hflag_add(uint32 dst, uint32 src);
	static inline uint32 hflag_sub(uint32 dst, uint32 src);
};

unix.superglobalmegacorp.com

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