Re: Difference between R65C02 and original 6502 (wrt 6509 emulation)

From: Jim Brain <brain_at_jbrain.com>
Date: Mon, 15 Apr 2019 11:28:43 -0500
Message-ID: <ffb7f18b-bbe8-753b-46f4-e190b64cceb5_at_jbrain.com>
On 4/15/2019 10:32 AM, Mia Magnusson wrote:
> Den Sun, 14 Apr 2019 21:43:28 -0500 skrev Jim Brain <brain_at_jbrain.com>:
>> Thanks Michał for the testing.
>>
>> I have updated the github repository with the v4 code here:
> Cool, nice work!
>
>>    * I have also added support for the 65C816S in native mode, in which
>>      the bank register is driven directly by the 'C816. Placing the CPU
>>      into native mode will also switch into this mode, which means care
>>      must be practiced to set up the '816 bank to match the current
>> 6509 'Execution Bank' before switching into this mode.  Location $0
>> and $1 will still be visible while in native mode in the current HDL.
> Something that Michal and you might want conteplate: Would there be any
> benefit for the new 8088 support software if it were possible to hide
> the $0/$1 registers in '816 native mode?

I apologize.  I misread my code last night, and the behavior you note is 
indeed in place:

always _at_(*)

begin
    if(oe_bank & !flag_ext & !flag_full) // accessing bank register 
lower 4 bits and we're not in '816 mode
       data_6502_out = {4'b0000, data_bank[3:0]};
    else if(oe_bank & !flag_ext & flag_full) // accessing bank register 
8 bits and we're not in '816 mode
       data_6502_out = data_bank;
    else if(r_w & _rdy & phi2_6509) // read data from bus and ready is 
high and phi2 is high
       data_6502_out = data_6509;
    else // there is no option to read bank register in 816 mode.
       data_6502_out = 8'bz;
end

However, I did not hide the writes to the $0/$1 registers.  I assume 
writing to those registers should also be prevented, but that means that 
one must remember what bank one was in before one went into '816 mode.



-- 
Jim Brain
brain_at_jbrain.com
www.jbrain.com
Received on 2020-05-29 21:34:35

Archive generated by hypermail 2.3.0.