|
|
|
|
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3936 is a reply to message #3934] |
Wed, 13 December 2017 01:39   |
b1ackmai1er
Messages: 396 Registered: November 2017
|
Senior Member |
|
|
I think if I change this
n_externalRam1CS<= not(n_RomCS and n_internalRam1CS and not physicaladdr(19));
n_externalRam2CS<= not(n_RomCS and n_internalRam1CS and physicaladdr(19));
to this:
n_externalRam1CS<= not(n_RomCS and n_internalRam1CS and not physicaladdr(17));
n_externalRam2CS<= not(n_RomCS and n_internalRam1CS and physicaladdr(17));
the chip select will change from switching between 512k banks to switching between 128k banks.
I think I if I set the following jumpers:
A16 "2-3" -- connect PIN25_A16 to CHIP 1 A16 then both chips will be connect with A0..A16 so see the full 128k addressing.
A18 "2-3" -- connect PIN32_A18 to CHIP 1 A18 then both chips will be connected to A18 which is inconsequential since this pin is NC
The problem for me is how to set both pin 30's to high for the secondary chip enable.
A17 "1-2" will set CHIP 1 high but CHIP 2 will still be driven by PIN31_A17 which will probably be low. In hardware I could pull pin 30 out of the second chip and connect it to 3.3v.
I don't know how to set PIN31_A17 high permanently in code.
Any suggestions?
Also, how would I actually do a ram test on this?
Regards Phil
[Updated on: Wed, 13 December 2017 02:10] Report message to a moderator
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3937 is a reply to message #3936] |
Wed, 13 December 2017 03:44   |
b1ackmai1er
Messages: 396 Registered: November 2017
|
Senior Member |
|
|
Since this post I have been playing around with this:
n_externalRam1CS<= not(n_RomCS and n_internalRam1CS and not physicaladdr(17));
n_externalRam2CS<= not(n_RomCS and n_internalRam1CS and physicaladdr(17));
Jumper A16 "2-3"
Jumper A18 "2-3"
Jumper A17 "1-2"
And this boots and will load CP/M which is something. Both RAM #1 & #2 are reported ok but there is still just 1 RAM chip installed. But it runs.
I had an idea to overcome the Jumper A17 - PIN31_A17 inconsistency:
I have defined a new output in the CycloneIIc entity code
CHIPOE : out std_logic:='1';
Then I have disabled the sramAddress[17] in the pin Assignment editor and then added a new pin
CHIPOE Location PIN_31 Enabled = Yes
So now I think PIN_31 is always giving a high output so I reset Jumper A17 "2-3" so both chip pin 30 (second chip enable) are connect to a high input.
I have recompiled and the board still boots to CP/M with one chip so it might be working.
Any other ideas, better ways to do or see any flaws in this approach?
How could I test I have full 256K of contiguous ram?
Thanks.
(Edit: now realize this is what Rienk suggested regarding editing pins.
[Updated on: Wed, 13 December 2017 04:47] Report message to a moderator
|
|
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3939 is a reply to message #3937] |
Wed, 13 December 2017 04:04   |
b1ackmai1er
Messages: 396 Registered: November 2017
|
Senior Member |
|
|
More progress of sorts ...
I have plugged my second ram chip in and still boots ok to CP/M.
The only way I could think of testing was to try CP/M 3.
So I have imaged CP/M 3 onto the next partition.
It booted with the following output:
TT1 OK
CPU OK -- Cyclone II C SoC
RAM #1 OK
RAM #2 OK
SD Card OK
Boot load completed
Multicomp Loader 0.1
Extended Z80 Debug Monitor Version 0.8i by Max Scane September 2015
Booting CP/M 3
LDRBIOS3 V0.1 for the Multicomp SBC by Max Scane May 2014
CP/M V3.0 Loader
Copyright (C) 1982, Digital Research
BNKBIOS3 SPR E900 0E00
BNKBIOS3 SPR B500 0B00
RESBDOS3 SPR E300 0600
BNKBDOS3 SPR 8700 2E00
56K TPA
CP/M Version 3.0, for the Multicomp SBC (Banked)
MD Driver assigned to drive A:
System partition is : HSA
LD Driver assigned to drive C:
LD Driver assigned to drive D:
LD Driver assigned to drive E:
LD Driver assigned to drive F:
C>
So I don't know what that i really telling me and I am still unsure how I can test the memory.
Regards Phil
[Updated on: Wed, 13 December 2017 04:38] Report message to a moderator
|
|
|
|
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3942 is a reply to message #3941] |
Wed, 13 December 2017 05:41   |
b1ackmai1er
Messages: 396 Registered: November 2017
|
Senior Member |
|
|
Thank you but STAT is not available on the CPM3 disk.
From reading past threads I think CPM3 is preconfigured for a fixed memory size/banks and does not do a memory check to determine number of memory banks available.
Not even sure how to get the file size on CPM3 
Sorry I missed your earlier post about the code changes.
Thanks.
[Updated on: Wed, 13 December 2017 05:46] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3961 is a reply to message #3952] |
Fri, 15 December 2017 04:00   |
b1ackmai1er
Messages: 396 Registered: November 2017
|
Senior Member |
|
|
Thanks Max,
Do you mean (0-0xC000) ?
Also do I need to avoid writing below 0x100 to avoid rom being switched in?
I gather that the rom is copied to ram block 3?
I hooked up the LED to the chip select outputs.
Selecting Bank 0 light chip select 1 LED only
Selecting Bank 1 light chip select 1 LED only
Selecting Bank 2 light chip select 1 LED only
Selecting Bank 3 light chip select 1 & 2 LED. Chip select 1 LED is brighter.
Selecting Bank 4 light chip select 1 & 2 LED. Chip select 1 LED is brighter.
I have copied:
00's to bank 0, 0x100-0xc000
11's to bank 1, 0x100-0xc000
22's to bank 2, 0x100-0xc000
33's to bank 3, 0x100-0xc000
44's to bank 4, 0x100-0xc000
and then gone back and checked that they are still there and not overwritten and it all looks ok.
So as far as I can see the chip select change is working and it is mapping the 256k correctly ???
Edit: 0-0x100 can be modified, I was getting I/O space for bank selection mixed up with address space.
[Updated on: Fri, 15 December 2017 21:57] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3979 is a reply to message #3978] |
Tue, 19 December 2017 05:51   |
b1ackmai1er
Messages: 396 Registered: November 2017
|
Senior Member |
|
|
Hi Rienk,
I feel like Alice in wonderland.
Things are starting to come together. You've documented so much which is fantastic, thank you.
I've been stuck for the last couple of hours trying to get the download.com to work in cp/m.
I think it is failing due to input buffer overrun. Is there some sort of flow control for the serial line that should be set?
It especiialy likes to get in an endless loop in zsid download
Thanks Phil
[Updated on: Tue, 19 December 2017 05:52] Report message to a moderator
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3980 is a reply to message #3979] |
Tue, 19 December 2017 06:33   |
rhkoolstar
Messages: 276 Registered: October 2015
|
Senior Member |
|
|
Hi Phil,
It needs RTS to work (CTS on your terminal). If your terminal software is configured with 'no handshake' or no 'hardware flow control' you will have problems.
Maybe first try the 'easy install' method (just copy the system18.img file to your SD card) to see if all is working correctly
Rienk
[Updated on: Tue, 19 December 2017 06:33] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3986 is a reply to message #3985] |
Thu, 21 December 2017 04:50   |
b1ackmai1er
Messages: 396 Registered: November 2017
|
Senior Member |
|
|
Hi Rienk,
I am having a bit of trouble understanding the default dpb for the 1024kb. Are you able to explain?
The number of reserved tracks is set to 8 (MOFF) and each track is 16Kb, so the reserved track is 8x16kb = 128kb.
I dont understand why we have 128Kb reserved instead of 64Kb
Thankyou.
Edit: Ahhhh, from your comments it looks like you have reserve 64Kb in case cpm 3 is being loaded. So cp/m gets 64kb for runtime, 896kb for ram disk, 65kb unused. cp/m 3 gets 64kb runtime, 64kb ramdisk and the rest for bank switched memory? So for my case for cpm I can just have 4 tracks reserves and allocate 512kb-64kb for ram disk?
[Updated on: Thu, 21 December 2017 05:25] Report message to a moderator
|
|
|
|
| Re: multicomp IIc AS6C1008 [message #3987 is a reply to message #3986] |
Thu, 21 December 2017 05:12   |
rhkoolstar
Messages: 276 Registered: October 2015
|
Senior Member |
|
|
Ah, I wanted to have the same RAM disk available to CP/M 2 and CP/M 3 variants.
CP/M 3 uses 128 kBytes system space.
Once initalized the RAM disk will stay unaffected when switched between these variants.
MP/M destroys the RAM disk
with 512 or 1024 kBytes to waste, 64 kBytes was a small price to pay.
In your case I would allocate all available space tough.
Rienk
[Updated on: Thu, 21 December 2017 05:23] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|