From dd43d25a77ae93d7e9b677bdeadaf242e693f9e1 Mon Sep 17 00:00:00 2001 From: Lephe Date: Sun, 19 Jul 2020 17:13:17 +0200 Subject: [PATCH] add INTC display and system context --- assets-fx/img/opt_switch_ctx.png | Bin 3077 -> 3456 bytes assets-fx/img/opt_switch_ctx_sh3.png | Bin 2614 -> 3032 bytes src/gint/switch.c | 20 ++++++++++++++ src/regs/regs.c | 40 ++++++++++++++++++--------- 4 files changed, 47 insertions(+), 13 deletions(-) diff --git a/assets-fx/img/opt_switch_ctx.png b/assets-fx/img/opt_switch_ctx.png index 138baac26a84a831e3fcd109309b9a8d96a3371c..ad1e6064f34ce9e282661559692c00e3d8b69c3d 100644 GIT binary patch delta 3424 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%0AT8&~2LQEM`$RX9 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 O0000 +#include #include #include #include @@ -7,26 +8,39 @@ void gintctl_regs(void) { - if(isSH3()) return; - - #ifdef FX9860G - #warning gintctl_regs not implemented on SH3 - #endif - - #define IPR(X) SH7305_INTC._->IPR##X.word - #define IMR(X) SH7305_INTC.MSK->IMR##X - dclear(C_WHITE); row_title("Register browser"); - row_print(2, 1, "A:%04x B:%04x C:%04x", IPR(A), IPR(B), IPR(C)); - row_print(3, 1, "D:%04x E:%04x F:%04x", IPR(D), IPR(E), IPR(F)); - row_print(4, 1, "G:%04x H:%04x I:%04x", IPR(G), IPR(H), IPR(I)); - row_print(5, 1, "J:%04x K:%04x L:%04x", IPR(J), IPR(K), IPR(L)); + if(isSH3()) + { + #define IPR(X) (*SH7705_INTC._.IPR##X).word + row_print(2,1, "A:%04x B:%04x C:%04x", IPR(A), IPR(B), IPR(C)); + row_print(3,1, "D:%04x E:%04x F:%04x", IPR(D), IPR(E), IPR(F)); + row_print(4,1, "G:%04x H:%04x", IPR(G), IPR(H)); + + row_print(6, 1, "RCR1:%02x RCR2:%02x", + SH7705_RTC.RCR1.byte, + SH7705_RTC.RCR2.byte + ); + #undef IPR + } + else + { + #define IPR(X) SH7305_INTC._->IPR##X.word + row_print(2,1, "A:%04x B:%04x C:%04x", IPR(A), IPR(B), IPR(C)); + row_print(3,1, "D:%04x E:%04x F:%04x", IPR(D), IPR(E), IPR(F)); + row_print(4,1, "G:%04x H:%04x I:%04x", IPR(G), IPR(H), IPR(I)); + row_print(5,1, "J:%04x K:%04x L:%04x", IPR(J), IPR(K), IPR(L)); + #undef IPR + } dupdate(); getkey(); + if(isSH3()) return; + + #define IMR(X) SH7305_INTC.MSK->IMR##X + dclear(C_WHITE); row_title("Register browser");