Projects icon indicating copy to clipboard operation
Projects copied to clipboard

Internal_RAM fixed to 256K for MCL86+?

Open HeathenUK opened this issue 1 year ago • 5 comments

Hi Ted,

Great work on all of these projects.

With the Teensy having 1024KB of RAM (albeit only 512KB tightly coupled) and with relatively mild RAM usage in the main accelerator, is there any reason we couldn't have Internal_RAM be 0x80000 or even 0xA0000? The latter would bust the tightly coupled RAM but should still fit?

Regards,

Greg

HeathenUK avatar Jun 26 '23 10:06 HeathenUK

Definitely could mirror address ranges in the Teensy 4.1 - I have done so. Just need to be cautious of ranges which DOS DMA's data to and from. When this happens the RAM you are mirroring is no longer coherent with motherboard RAM.


From: HeathenUK @.> Sent: Monday, June 26, 2023 3:29 AM To: MicroCoreLabs/Projects @.> Cc: Subscribed @.***> Subject: [MicroCoreLabs/Projects] Internal_RAM fixed to 256K for MCL86+? (Issue #20)

Hi Ted,

Great work on all of these projects.

With the Teensy having 1024KB of RAM (albeit only 512KB tightly coupled) and with relatively mild RAM usage in the main accelerator, is there any reason we couldn't have Internal_RAM be 0x80000 or even 0xA0000? The latter would bust the tightly coupled RAM but should still fit?

Regards,

Greg

— Reply to this email directly, view it on GitHubhttps://github.com/MicroCoreLabs/Projects/issues/20, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AM4AVENYQBKVW7GHO25YTJDXNFQB7ANCNFSM6AAAAAAZT6QVPQ. You are receiving this because you are subscribed to this thread.Message ID: @.***>

MicroCoreLabs avatar Jun 26 '23 17:06 MicroCoreLabs

I wonder if there's any way to track DMA calls. Of course part of the point is that the 8088 is out of the loop...

In any case, I don't currently have any inbound DMA to worry about!

G

HeathenUK avatar Jun 26 '23 20:06 HeathenUK

  • I wonder if there's any way to track DMA calls. Of course part of the point is that the 8088 is out of the loop...

Well, the MCL86+ can see every bus transaction so wouldnt be hard to sense when a DMA is being queued. Then after the DMA completes it could perform its own DMA which would copy the modified DRAM into the mirrored RAM in the Teensy.


From: HeathenUK @.> Sent: Monday, June 26, 2023 1:10 PM To: MicroCoreLabs/Projects @.> Cc: MicroCore Labs @.>; Comment @.> Subject: Re: [MicroCoreLabs/Projects] Internal_RAM fixed to 256K for MCL86+? (Issue #20)

I wonder if there's any way to track DMA calls. Of course part of the point is that the 8088 is out of the loop...

In any case, I don't currently have any inbound DMA to worry about!

G

— Reply to this email directly, view it on GitHubhttps://github.com/MicroCoreLabs/Projects/issues/20#issuecomment-1608172530, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AM4AVENKYYELPD3XKC56GYLXNHUFFANCNFSM6AAAAAAZT6QVPQ. You are receiving this because you commented.Message ID: @.***>

MicroCoreLabs avatar Jun 26 '23 21:06 MicroCoreLabs

I suppose without access to the ISA bus signals not tapped by the 8088 you'd need to trap writes to the I/O ports for DMA control registers and channels 1 and 3 (and maybe 2, for compatibility with floppy drives)?

This is just me being slow but I hadn't actually realised how simple the 8237 DMA controller actually is in that regard: https://www.lo-tech.co.uk/wiki/8237_DMA_Controller

G

HeathenUK avatar Jun 26 '23 21:06 HeathenUK

Related - I've just clocked that the various bits of runtime (mode==1) conditional code in the accelerated version are commented out. It looks like most of that is about ROM and RAM shadowing though?

I gather from this that the intended function now is to hard set mode = 1 at compile time rather than via serial at runtime? That makes sense especially re. ROM mirroring.

The only piece of code I'm less clear on which is now commented out is //if ( mode==1) clock_counter=0;, which I think is intended to drain the pseudo op cycle counter to maximise the acceleration?

HeathenUK avatar Jun 29 '23 07:06 HeathenUK