Haven't checked the actual equations but your switching zones in the comments are incorrect:Here's an extract of the Verilog code. I wonder if there's an issue with the '(!nRDS && GenBankSel[10]) || !bbc_nRST' code that is being used to run the logic. I can't remember where that came from. Having said that, the equivalent WEQST & CC64K code seems to be working fine - and WEQST even uses the same 8k switching mechanism as TED, with the ConQuest & QuestPaint ROMS built in a similar manner. Can anyone see anything wrong with my logic, or the way I have built the ROM images?
Thanks!Code:
// Combined code for 32k Watford Electronic PALPROM & 64k Computer Concepts PALPROM // Use Jumper RamPALSel[6] to select PALPROM Type. Logic '0': CC64K, Logic '1': WEQST // And Jumper RamPALSel[7] to deselect CC64K / WEQST, and select WETED instead // Both use RAM banks 10 & 22..24 // wire cc4Clk = (!nRDS && GenBankSel[10]) || !bbc_nRST; always @(posedge cc4Clk) begin if (RamPALSel[2] || !bbc_nRST) pp4Bank = 4'b0001; //Disable PALPROM// if (RamPALSel[2]) pp4Bank = 4'b0001; //Disable PALPROM else if ((RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1001_0011_010)) //h9340..h935F (WEQST) || (!RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1011_1111_100)) //hBF80..hBF9F (CC64K) || (!RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1001_1111_100))) pp4Bank = 4'b0001; //h9F80..h9F9F (WETED) else if ((RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1001_0001_111)) //h91E0..h91FF (WEQST) || (!RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1011_1111_101)) //hBFA0..hBFBF (CC64K) || (!RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1001_1111_101))) pp4Bank = 4'b0010; //h9FA0..h9FAF (WETED) else if ((RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1000_1000_001)) //h8820..h883F (WEQST) || (!RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1011_1111_110)) //hBFC0..hBFDF (CC64K) || (!RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1001_1111_110))) pp4Bank = 4'b0100; //h9FC0..h9FCF (WETED) else if ((RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1001_0010_110)) //h92C0..h92DF (WEQST) || (!RamPALSel[6] && RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1011_1111_111)) //hBFE0..hBFFF (CC64K) || (!RamPALSel[7] && (bbc_ADDRESS[15:5] == 11'b1001_1111_111))) pp4Bank = 4'b1000; //h9FF0..h9FFF (WETED)end
//h9F80..h9F9F (WETED)
//h9FA0..h9FAF (WETED) ... 9FA0-9FBF
//h9FC0..h9FCF (WETED) ... 9FC0-9FDF
//h9FF0..h9FFF (WETED) ... 9FE0-9FFF
Edit: Zones look correct, just mismatched comments, but are you missing RamPALSel[6] in the WETED tests?
Statistics: Posted by Pernod — Fri Aug 09, 2024 12:56 pm