[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [N8VEM-S100:5968] Bank Select Logic



There is a non-banked CPM3 system somewhere on the web site Bob, do a search, am not at my computer right now.

John

 

 

From: n8vem...@googlegroups.com [mailto:n8vem...@googlegroups.com] On Behalf Of Bob Bell
Sent: Saturday, January 3, 2015 1:24 PM
To: n8vem...@googlegroups.com
Subject: RE: [N8VEM-S100:5968] Bank Select Logic

 

Hi John.  I went to the link that you provided below and the first thing I saw that gave me the willies was that the process requires an IDE hard disk based system.  I have the N8VEM IDE/CF card for my computer.  It’s built and works with the MyIDE program to read and write the CF card.  However, I have not had the time to complete BIOS modifications to make it work in CPM2.2.  So, what is the possibility you know of a similar guide for working up a CPM3 non-banked, then banked system in a floppy environment?  My CCS 2422 disk controller lets me put nearly 600K on a SSDD 8” disk, so I typically have plenty of room for such projects.

 

Thanks for your help.

 

Bob Bell

 

From: n8vem...@googlegroups.com [mailto:n8vem...@googlegroups.com] On Behalf Of John Monahan
Sent: Friday, January 02, 2015 7:00 PM
To: n8vem...@googlegroups.com
Subject: RE: [N8VEM-S100:5960] Bank Select Logic

 

2 banks of 16K is fine, 32 K better.  More than that if you have many drives.

No practical upper limit. The CPM Bios does not know/care RAM has switched

Most of the bank switching code actually does not have to be in the common area, but you MUST have the actual switching code in the common area.  The CPM3 BIOS has most of this stuff documented in the listings. See for example:

http://s100computers.com/Software%20Folder/CPM3%20BIOS%20Installation/CPM3%20HDISK%20BIOS%20Software.htm

 

Good luck.

 

 

 

From: n8vem...@googlegroups.com [mailto:n8vem...@googlegroups.com] On Behalf Of Bob Bell
Sent: Friday, January 2, 2015 2:30 PM
To: n8vem...@googlegroups.com
Subject: Re: [N8VEM-S100:5960] Bank Select Logic

 

I think I have figured out the very basics of the bank select logic I need to make two 64K boards work in a banked scheme that have nothing more in regards to memory management than 24-bit addressing.  I have attached a PDF showing how I think this could work.  The first diagram is showing, essentially, the Z80 CPU, the  two 64K memory boards with A16-A23 capability, and then the rest is a macro of the MMU/Bank-Select Logic.  The second diagram is a much simplified circuit showing how just a single bank-select bit would be implemented, good enough for two banks.  This could easily be extrapolated out to use more than one Bank select bit from the Bank Select register and output more than just A16.  And I am currently only using A14 and A15 to select 16K chunks, good enough to implement, as shown, a 48K / 16K split.  However, I already anticipated, on the first diagram, the need for finer granularity and brought A12 and A13 in.  Additional address lines below A12 could also be used.  I think I saw somewhere that someone said CPM3 allows the common area to be changed in 256 byte increments.  So, perhaps down to A8.  The logic to implement this, at this point, is rather simple, so I expect I'll be able to check this out in the not too distant future.  (But I have to bring up a CPM3 system first.)  I envision it being easily implemented right on the memory board, and with any luck, using just one GAL.  I also think this will work on boards with more than 64K, as long as they can be addressed properly by the upper address lines.

And now some new questions:

1.  How many banks can CPM3 work with?

2.  What is the practical number of banks most users have in their banked CPM3 system?

3.  I assume the bank switching code is in the common memory area - can someone confirm this?

Bob Bell

 



On Friday, January 2, 2015 12:22:19 AM UTC-5, Max Scane wrote:

The size of common memory is dependent on your driver requirements (common vs banked), CP/M's requirements as well as the capability of the hardware.

 

For each disk added to the system a certain amount of common memory is required, along with the non-banked portion of BDOS and the BIOS.

 

From memory, gencpm allows you to specify the common base address on a 256 by page basis.

 

Depending on how your MMU/banking CCT and disk hardware works, you may need to buffer your disk data transfers in common memory which will also use up memory.

 

Realistically, I doubt you will be able to get much smaller than a 16KB common area so it is really dependent on hardware capability and driver complexity I think.

 

Cheers!

 

Max  

 

 

 

On Fri, Jan 2, 2015 at 2:05 PM, Bob Bell <bbe...@gmail.com> wrote:

Thanks for your thoughts, Roger.  I’ll have to do some thinking on your ideas and see how this chip might be used in the ideas I am formulating.

BTW – the LS670 has Tri-State outputs, so no need to be concerned with pull-ups using this one.

 

Another question on this topic for those who have already implemented banked CPM3:

 

The 32K/32K and 48K/16K split has been mentioned several times.  Obviously I would think the 48K/16K split would be best from the standpoint of the largest TPA.

But does this put any serious restrictions on the OS?

And is there any practicality to splitting it to say, 44K/20K if there are serious restrictions and more room is needed for the OS in the common area?

Or are odd-ball splits (i.e. not on major memory boundaries) not possible?

 

Bob Bell

 

 

From: n8ve...@googlegroups.com [mailto:n8ve...@googlegroups.com]
Sent: Thursday, January 01, 2015 5:02 PM
To: n8ve...@googlegroups.com
Subject: Re: [N8VEM-S100:5950] Bank Select Logic

 

Hi Bob --

You might be able to fake an MMU for the 64k address space of the Z80, and do bank select without jumping into the extended addresses of the S-100 bus.  Take a look at the 74LS170 or the 74LS670.  These are chips that look like four 4-bit registers.  You could use one of them to address 16k or 32k chunks of a 128k x 8 SRAM or a 512 x 8 SRAM, and have them appear within the Z80's 64k.  Just remember that both these chips are open collector, so you will need to put pull-ups on the Q outputs in order to see the bit patterns that you expect to see.

I've often wondered about building an S-100 card with one of these chips onboard to provide an extended address space.  Maybe use a 74LS682 (or similar) to decode the MS 6 bits for access to the registers of the LS[1,6]70, and have various parts of an SRAM chip much larger than the Z80's addressing capabilities show up in the "normal" Z80 address range?  One of those 512 x 8 SRAM chips could supply sixteen (aha ... 4 bits!) 32k x 8 pages.  You could move 32k pages in and out by writing to the registers in the LS[1,6]70?  I'm no electronics whiz, but maybe somebody else could work out the details?

But then you are in the realm of segmented architectures.  Why not go with an 8x86 CPU, and give yourself headaches that way?

Roger

 

 

 

 

 

--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

 

--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s100+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s100+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem-s100+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.