OSDN Git Service

[VM][MC6809] Remove dirty CLR insn hack.Related to before commit.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 30 Jul 2018 19:41:21 +0000 (04:41 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 30 Jul 2018 19:41:21 +0000 (04:41 +0900)
source/src/vm/mc6809.h
source/src/vm/mc6809_base.cpp

index 478d108..26465f3 100644 (file)
@@ -48,10 +48,8 @@ protected:
        DEVICE *d_mem_stored;
        int dasm_ptr;
 
-       outputs_t outputs_bus_clr; // If clr() insn used, write "1" or "2".
        outputs_t outputs_bus_ba; // Bus available.
        outputs_t outputs_bus_bs; // Bus status.
-       bool clr_used;
 
        // registers
        pair_t pc;      /* Program counter */
@@ -539,7 +537,6 @@ public:
                cycles_tmp_count = 0;
                insns_count = 0;
                __USE_DEBUGGER = false;
-               initialize_output_signals(&outputs_bus_clr);
                initialize_output_signals(&outputs_bus_ba);
                initialize_output_signals(&outputs_bus_bs);
                set_device_name(_T("MC6809 MPU"));
@@ -675,10 +672,6 @@ public:
        {
                d_mem = device;
        }
-       void set_context_bus_clr(DEVICE* device, int id, uint32_t mask)
-       {
-               register_output_signal(&outputs_bus_clr, device, id, mask);
-       }
        void set_context_bus_ba(DEVICE* device, int id, uint32_t mask)
        {
                register_output_signal(&outputs_bus_ba, device, id, mask);
index 87b7755..96bef76 100644 (file)
@@ -163,9 +163,7 @@ void MC6809_BASE::reset()
        S = 0;
        EA = 0;
 //#if defined(_FM7) || defined(_FM8) || defined(_FM77_VARIANTS) || defined(_FM77AV_VARIANTS)
-       clr_used = false;
 
-       write_signals(&outputs_bus_clr, 0x00000000);
        if((req_halt_on) && !(req_halt_off)) {
                int_state |= MC6809_HALT_BIT;
        } else {
@@ -615,17 +613,6 @@ void MC6809_BASE::run_one_opecode()
 
 void MC6809_BASE::op(uint8_t ireg)
 {
-       if(ireg == 0x0f) { // clr_di()
-               write_signals(&outputs_bus_clr, 0x00000001);
-               clr_used = true;
-       } else if((ireg == 0x6f) || (ireg == 0x7f)){ //clr_ex() clr_ix()
-               write_signals(&outputs_bus_clr, 0x00000002);
-               clr_used = true;
-       } else {
-               if(clr_used) write_signals(&outputs_bus_clr, 0x00000000);
-               clr_used = false;
-       }
-//#endif
        //printf("CPU(%08x) PC=%04x OP=%02x %02x %02x %02x %02x\n", (void *)this, PC, ireg, RM(PC), RM(PC + 1), RM(PC + 2), RM(PC + 3));
 
        (this->*m6809_main[ireg])();