Specifically to your question, bank 0 a.k.a. "(00,8B,00)" says the memory between 0000 and 8B00 (8AFF) is available (OS resides 8B00-C000), and bank 2 "(0D,B3,02)" says that memory between 0D00 and C000 is available (C000-0D00=B300), and bank 3 "(00,C0,03)" means 0000-C000 is available. I believe that GENCPM never uses 0000-0100 in any bank, though. Just a guess, but I would think that 0100-0D00 in bank 2 is reserved for the CCP.COM image (size is right for that).
I can't access your picture, perhaps it is not set to "public"?
So what is not explained by DR is that CCP resident essentially requirement in bank 2. I assume I can always assume then that it will occupy bank 2 and never be more than 0D00H. Is this correct.
Can I also assume nothing more will (ever) be required above 0D00H in bank 2.
John
So, the reason the example was confusing was that the BIOS is reserving space in bank 2 to store CCP.COM so that warm-boot is faster (not loading it off disk each time). I'm not sure where that was communicated to GENCPM, and you'd have to check yourBIOS to see if you need that space and it is still in bank 2. Assuming "yes", then in your "common 80" case you'd want "(0d,73,02)" because 0000-0D00 is reserved for the CCP, then 0D00-8000 is left for GENCPM to allocate. 8000-0D00=7300. If your BIOS is
On Saturday, October 23, 2021 at 1:19:21 PM UTC-7, Douglas Miller wrote:BIOS to see if you need that space and it is still in bank 2. Assuming "yes", then in your "common 80" case you'd want "(0d,73,02)" because 0000-0D00 is reserved for the CCP, then 0D00-8000 is left for GENCPM to allocate. 8000-0D00=7300. If your BIOS is
So, the reason the example was confusing was that the BIOS is reserving space in bank 2 to store CCP.COM so that warm-boot is faster (not loading it off disk each time). I'm not sure where that was communicated to GENCPM, and you'd have to check your
OK I think I got it Douglas. Definitely I'm not reloading the CCP each time. I can rename it, work with files OK (of course renaming it back before a reboot).Douglas I'm still stuck! In the DR example above with the page boundary at C0 and the CP/M 3 Base,size,bank (8B, 35, 00)
So what is not explained by DR is that CCP resident essentially requirement in bank 2. I assume I can always assume then that it will occupy bank 2 and never be more than 0D00H. Is this correct.
Can I also assume nothing more will (ever) be required above 0D00H in bank 2.
John
Douglas I'm still stuck! In the DR example above with the page boundary at C0
and the CP/M 3 Base,size,bank (8B, 35, 00)
where or what is the 35 used for?
You use the 8B for bank 0
you assume 0D00H for bank 2
where is the 35 used?
On Saturday, October 23, 2021 at 4:06:02 PM UTC-5, monah...@gmail.com wrote: >...sure GENCPM computes that (8B,35,00) for you, right? When you enter 80 for the common memory page, you should get numbers that are relative to 80.
Douglas I'm still stuck! In the DR example above with the page boundary at C0The 35 is the size (in pages) of the banked OS (in bank 0). The 8B is the starting page of the OS (in bank 0). So, 35+8B=C0 which is the common page boundary in that example. The OS in bank 0 runs from 8B00-C000, which is 3500 bytes (hex). I'm pretty
and the CP/M 3 Base,size,bank (8B, 35, 00)
where or what is the 35 used for?
You use the 8B for bank 0
you assume 0D00H for bank 2
where is the 35 used?
Indulge me one last time Douglas. Want to check I have it right....
From the GENCPM submit file with the switching RAM boundary at 8000H
......
Number of memory segments (#3) 3
CPM/ 3 base,size,bank (3F, 41,00) <-- provide by GENCPM
Enter memory segment table:
Base, size,bank (00,80,00) ? 00, 3F, 00
Base, size,bank (00,C0,02) ? 0E, 72, 02
Base, size,bank (00,C0,00) ? 00,80,03
CP/M 3 Sys 3F00H 4100H Bank 00
Memseg No, 00 0000H 3F00H bank 00
Memseg No, 01 0E00H 7200H bank 02
Memseg No, 02 0000H 8000H bank 03
It's interesting that in spite of the fact that I set the RAM boundary at 8000H GENCPM always defaults to C000H.
On Saturday, October 23, 2021 at 4:32:17 PM UTC-5, monah...@gmail.com wrote: >...
Indulge me one last time Douglas. Want to check I have it right....
From the GENCPM submit file with the switching RAM boundary at 8000H ......
Number of memory segments (#3) 3
CPM/ 3 base,size,bank (3F, 41,00) <-- provide by GENCPM
Enter memory segment table:
Base, size,bank (00,80,00) ? 00, 3F, 00
Base, size,bank (00,C0,02) ? 0E, 72, 02
Base, size,bank (00,C0,00) ? 00,80,03
CP/M 3 Sys 3F00H 4100H Bank 00
Memseg No, 00 0000H 3F00H bank 00
Memseg No, 01 0E00H 7200H bank 02
Memseg No, 02 0000H 8000H bank 03
asking any questions. I suspect other combinations of command options will do something like read defaults from the .DAT file. There should be something on that in the HELP data on GENCPM.It's interesting that in spite of the fact that I set the RAM boundary at 8000H GENCPM always defaults to C000H.Sorry, for the delay, I got side-tracked and wasn't reading e-mail.
Yes, what you have there looks correct to me, assuming you are reserving 14 pages for the CCP in bank 2.
As far as GENCPM defaults, I believe you have the option to have GENCPM read defaults from the .DAT file, although I forget exactly how that is done. You can invoke it as "GENCPM A D" to automatically generate CPM3.SYS from the .DAT file, without
It's years ago since I made CPM3.SYS files for my hardware. I now need to relearn the build process for a new Disk Controller board BIOS.
The Digital Research supplied GENCPM submit file is great for taking all the drudgery out of building a CPM3 BIOS.
I'm stuck however at one point in the process for a banked system for
the "Enter memory segment table".....
I have Common memory base page C0
Number of memory segments 3
Gencpm comes back with (8B, 35, 00)
Enter memory segment table:
Base, size, bank (00,8B,00)?
Base, size, bank (0D,B3,02)?
Base, size, bank (00,C0,03)?
My question is where did the D3 and B3 come from
This user group does not allow me to post a picture but one can be seen here:-
https://groups.google.com/g/s100computers/c/KKAeRhJwQII
John
Am 23.10.2021 um 18:46 schrieb John Monahan:
It's years ago since I made CPM3.SYS files for my hardware. I now need to relearn the build process for a new Disk Controller board BIOS.
The Digital Research supplied GENCPM submit file is great for taking all the drudgery out of building a CPM3 BIOS.
I'm stuck however at one point in the process for a banked system for
the "Enter memory segment table".....
I have Common memory base page C0
Number of memory segments 3
Gencpm comes back with (8B, 35, 00)
Enter memory segment table:
Base, size, bank (00,8B,00)?
Base, size, bank (0D,B3,02)?
Base, size, bank (00,C0,03)?
My question is where did the D3 and B3 come from
This user group does not allow me to post a picture but one can be seen here:-
https://groups.google.com/g/s100computers/c/KKAeRhJwQII
John
This is an interesting question and as my mothers language is german the
DRI manuals are not easy to read. I'm not a programmer...
I let GENCPM calculate the segment table.
Example from my conitec Prof180
*** Bank 1 and Common are not included ***
*** in the memory segment table. ***
Number of memory segments (#2) ?
CP/M 3 Base,size,bank (9A,56,00)
Enter memory segment table:
Base,size,bank (10,87,00) ?
Base,size,bank (00,F0,02) ?
CP/M 3 Sys 9A00H 5600H Bank 00
Memseg No. 00 1000H 8700H Bank 00
Memseg No. 01 0000H F000H Bank 02
Accept new memory segment table entries (Y) ? n
Enter memory segment table:
######################################
### false table entry 10,99,00
######################################
Base,size,bank (10,87,00) ? 10,99,00
ERROR: Memory conflict - segment trimmed.
Base,size,bank (10,8A,00) ?
Base,size,bank (00,F0,02) ?
CP/M 3 Sys 9A00H 5600H Bank 00
Memseg No. 00 1000H 8A00H Bank 00
Memseg No. 01 0000H F000H Bank 02
Accept new memory segment table entries (Y) ?
--In my hands Fritz you need to subtract 0E from the size of bank 2. By default GENCPM assumes it is present. See Douglas Miller posting above. The above 00,F0,02 would not work.
-- Fritz
In my hands Fritz you need to subtract 0E from the size of bank 2. By default GENCPM assumes it is present. See Douglas Miller posting above. The above 00,F0,02 would not work.
monah...@gmail.com schrieb am Sonntag, 24. Oktober 2021 um 19:52:49 UTC+2:
In my hands Fritz you need to subtract 0E from the size of bank 2. By default GENCPM assumes it is present. See Douglas Miller posting above. The above 00,F0,02 would not work.
That will work fine, CP/M 3 will not store the CCP in bank 2 or anywhere by itself. If you want to
load the CCP from memory instead from disk this must be implemented in the BIOS, and then
the memory used to hold a copy of the CCP must be reserved in the memory map of course.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 292 |
Nodes: | 16 (2 / 14) |
Uptime: | 199:55:14 |
Calls: | 6,617 |
Calls today: | 1 |
Files: | 12,168 |
Messages: | 5,315,976 |