From 08e1ff861e8d95f514e29d12eb3a012072387da2 Mon Sep 17 00:00:00 2001 From: Michel Pollet Date: Sat, 28 Oct 2023 16:58:02 +0100 Subject: [PATCH] Sorted muu_sw.h Also added a cycle-count test Signed-off-by: Michel Pollet --- src/mii_sw.h | 46 +++++++++++++++++++++++++-------------------- test/mii_cpu_test.c | 19 +++++++++++++++++++ 2 files changed, 45 insertions(+), 20 deletions(-) diff --git a/src/mii_sw.h b/src/mii_sw.h index e69591e..a0727c1 100644 --- a/src/mii_sw.h +++ b/src/mii_sw.h @@ -1,5 +1,10 @@ - - +/* + * mii_sw.h + * + * Copyright (C) 2023 Michel Pollet + * + * SPDX-License-Identifier: MIT + */ #pragma once enum { @@ -59,27 +64,29 @@ enum { }; +/* + * This is for a bitfield in mii_t that keeps track of the state of the + * softswitches used for memory mapping and video. + */ enum { B_SW80STORE = ( 0), -// B_SWVBL = ( 1), - B_SWALTCHARSET = ( 2), - B_SW80COL = ( 3), - B_SWTEXT = ( 4), - B_SWMIXED = ( 5), - B_SWPAGE2 = ( 6), - B_SWHIRES = ( 7), - B_SWRAMRD = ( 8), - B_SWRAMWRT = ( 9), - B_SWINTCXROM = (10), - B_SWALTPZ = (11), - B_SWSLOTC3ROM = (12), - B_BSRWRITE = (13), - B_BSRREAD = (14), - B_BSRPAGE2 = (15), - B_SWDHIRES = (16), + B_SWALTCHARSET = ( 1), + B_SW80COL = ( 2), + B_SWTEXT = ( 3), + B_SWMIXED = ( 4), + B_SWPAGE2 = ( 5), + B_SWHIRES = ( 6), + B_SWRAMRD = ( 7), + B_SWRAMWRT = ( 8), + B_SWINTCXROM = ( 9), + B_SWALTPZ = (10), + B_SWSLOTC3ROM = (11), + B_BSRWRITE = (12), + B_BSRREAD = (13), + B_BSRPAGE2 = (14), + B_SWDHIRES = (15), M_SW80STORE = (1 << B_SW80STORE), -// M_SWVBL = (1 << B_SWVBL), M_SWALTCHARSET = (1 << B_SWALTCHARSET), M_SW80COL = (1 << B_SW80COL), M_SWTEXT = (1 << B_SWTEXT), @@ -100,7 +107,6 @@ enum { // unused is to prevent the stupid warnings about unused static stuff static const char __attribute__((unused)) *mii_sw_names[] = { "80STORE", - "VBL", "ALTCHARSET", "80COL", "TEXT", diff --git a/test/mii_cpu_test.c b/test/mii_cpu_test.c index 5145ca9..0a8626d 100644 --- a/test/mii_cpu_test.c +++ b/test/mii_cpu_test.c @@ -439,6 +439,25 @@ int main() _run_this("SED ADC 99", doSED_ADC(0x99, 0), 0x99, N | D, 0); _run_this("SED ADC 99", doSED_ADC(0x99, 1), 0x00, C | D, 0); _run_this("SED ADC BD", doSED_ADC(0xBD, 0), 0x23, C | D, 0); + + _run_this("LDA ($aa)", + " LDA #$00\n" + " TAY\n" + " TYA\n" + " STA $c064\n" + " LDX #$00\n" + " LDA $c070\n" + " LDY #$00\n" + " NOP\n" + " NOP\n" + "l LDA $c064,X\n" + " BPL end\n" + " INY \n" + " BNE l\n" + " DEY \n" + "end BRK\n", + 0xAA, N, 1); + #if 0 // _run_this("SED ADC FF", doSED_ADC(0xFF, 0), 0x65, C | D | N, 0);