From d0119b88dadb277848861ec8952ce27d05d9ebdb Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 15 Aug 2021 18:00:08 +0300 Subject: [PATCH] CIA B-data/direction was not reset. --- cia.cpp | 74 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/cia.cpp b/cia.cpp index 76dafc61..d7fc0c20 100644 --- a/cia.cpp +++ b/cia.cpp @@ -1891,46 +1891,48 @@ void CIA_reset (void) tod_hack_enabled = TOD_HACK_TIME; #endif -kblostsynccnt = 0; -serbits = 0; -resetwarning_phase = resetwarning_timer = 0; -heartbeat_cnt = 0; -ciab_tod_event_state = 0; - -if (!savestate_state) { - oldovl = true; - kbstate = 0; - ciaatlatch = ciabtlatch = 0; - ciaapra = 0; ciaadra = 0; - ciaatod = ciabtod = 0; ciaatodon = ciabtodon = 0; - ciaaicr = ciabicr = ciaaimask = ciabimask = 0; - ciaacra = ciaacrb = ciabcra = ciabcrb = 0; - ciaala = ciaalb = ciabla = ciablb = ciaata = ciaatb = ciabta = ciabtb = 0xFFFF; - ciaaalarm = ciabalarm = 0; - ciabpra = 0x8C; ciabdra = 0; - div10 = 0; - ciaasdr_cnt = 0; ciaasdr = 0; ciaasdr_load = 0; - ciabsdr_cnt = 0; ciabsdr = 0; ciabsdr_buf = 0; ciabsdr_load = 0; - ciaata_passed = ciaatb_passed = ciabta_passed = ciabtb_passed = 0; - CIA_calctimers(); - DISK_select_set(ciabprb); -} -map_overlay(0); -check_led(); + kblostsynccnt = 0; + serbits = 0; + resetwarning_phase = resetwarning_timer = 0; + heartbeat_cnt = 0; + ciab_tod_event_state = 0; + + if (!savestate_state) { + oldovl = true; + kbstate = 0; + ciaatlatch = ciabtlatch = 0; + ciaapra = 0; ciaadra = 0; + ciaaprb = 0; ciaadrb = 0; + ciaatod = ciabtod = 0; ciaatodon = ciabtodon = 0; + ciaaicr = ciabicr = ciaaimask = ciabimask = 0; + ciaacra = ciaacrb = ciabcra = ciabcrb = 0; + ciaala = ciaalb = ciabla = ciablb = ciaata = ciaatb = ciabta = ciabtb = 0xFFFF; + ciaaalarm = ciabalarm = 0; + ciabpra = 0x8C; ciabdra = 0; + ciabprb = 0; ciabdrb = 0; + div10 = 0; + ciaasdr_cnt = 0; ciaasdr = 0; ciaasdr_load = 0; + ciabsdr_cnt = 0; ciabsdr = 0; ciabsdr_buf = 0; ciabsdr_load = 0; + ciaata_passed = ciaatb_passed = ciabta_passed = ciabtb_passed = 0; + CIA_calctimers(); + DISK_select_set(ciabprb); + } + map_overlay(0); + check_led(); #ifdef SERIAL_PORT -if (currprefs.use_serial && !savestate_state) -serial_dtr_off(); /* Drop DTR at reset */ + if (currprefs.use_serial && !savestate_state) + serial_dtr_off(); /* Drop DTR at reset */ #endif -if (savestate_state) { - if (currprefs.cs_ciaoverlay) { - oldovl = true; - } - bfe001_change(); - if (!currprefs.cs_ciaoverlay) { - map_overlay(oldovl ? 0 : 1); + if (savestate_state) { + if (currprefs.cs_ciaoverlay) { + oldovl = true; + } + bfe001_change(); + if (!currprefs.cs_ciaoverlay) { + map_overlay(oldovl ? 0 : 1); + } } } -} void dumpcia(void) { -- 2.47.3