Hello Everyone,
While I have developed the beginning of an SPI interface (principally for an SD card), I have also developed a schematic for a 2 Mega byte memory expansion (See PDF attachment).
This schematic makes use of the LYONTEK 1 MB SRAM chip (PDF attached) which allows for 5V TTL voltages and its speed is similar to the existing DRAM. The SRAM chip is an SMD meaning that its surface mounted and so no sockets can be used :( .
The PAL which goes with the memory expansion is similar to what i posted before in that it will simply add a 3-6 ns delay to the memory read/write functions. It performs a simple decode of the configuration to determine how to manage the A15/A14 address lines. It should support all Dk'Tronics memory modes. With no need for memory refresh the PAL should be simple to implement.
The combination program for the PAL should be easy to produce in hex so that others can implement the memory expansion.
A check on the farnell website (as of 24Dec16) for the current availability of the RAM chips shows that it is available and the chips are about $21 (AUS) to buy.
I recently purchased a Universal programmer which can now program EPROMS and PAL/GAL chips (along with other programmable devices). So the memory expansion should not be a problem to complete.
Once the board is checked and built to work as expected, I will put up the PCB as well to let others build the board or I can make one with less parts the users can purchase and source the rest for themselves. I will also look at making it MX4 usable as well.
With both of these boards it makes it possible to further complete my development for the web browser which is consuming more memory as development expands.
rpalmer
hello everyone,
I have been working to get the PAL program sorted out and here it is.
I am in the process of checking to see if all is okay and will update as and when it is required.
The expansion wont entirely work for configuration #3 as it requires direct influence of the Z80 address. It does work on 6128's as this is internal whereas for the 464/664 it is not possible unless there is some modifications to the motherboard to allow for this (which I would not advise at all!). Also this mode does not seem to be very useful to me, since the re-mapping of base memory addresses from &c000 to &4000 seems like a defect rather than intentional, although I guess someone has found a use for it.
The GAL equations are configured for the memory expansion having 2 x 1Mb SRAM chips. There is a possibility of an expansion to 4Mb using 2 x 2Mb SRAM chips, however these are more expensive and harder to come by at 5V.
rpalmer
Quote from: rpalmer on 00:20, 01 January 17
Also this mode does not seem to be very useful to me, since the re-mapping of base memory addresses from &c000 to &4000 seems like a defect rather than intentional, although I guess someone has found a use for it.
RAM configurations 1, 2 & 3 make the most sense when you realise they are meant to be used together, with a static code block in page 7. This allows easier access to the full memory range than the more "usual" configurations 4, 5, 6 & 7 where you can only ever access a single page of banked memory at any one time. It might have been nicer if page 7 had ended up sitting at #0000 instead of #C000, because then you could have more easily used IM 1 without having to worry about paging the routine out, but thems the breaks I guess.
I'd hazard a guess than configurations 1 & 3, in particular, were very carefully selected so that you can have a screen display at #4000 that is double buffered and switch between them without having to worry about address changes between frames.
Quote from: rpalmer on 00:20, 01 January 17Also this mode does not seem to be very useful to me, since the re-mapping of base memory addresses from &c000 to &4000 seems like a defect rather than intentional, although I guess someone has found a use for it.
Some programs like FutureOS, Pac-Man emulator and Phortem use the "C3" mode for a nice double buffer result.
If I remember well, CP/M test it to run. If yes, it is intentionnal and not a defect. Sure, you don't require it for your own usage.
hello Toto,
What is Phortem?
It would interesting to know how this "double" buffer works. I suspect that SymbOS makes use of this mode too.
rpalmer
Screen 1:
Gate array fetching screen from page 1 (i.e. bits 4&5 of CRTC R12 = 01), ram combination C3
Screen 2:
Gate array fetching screen from page 3 (i.e. bits 4&5 of CRTC R12 = 11), ram combination C1
This allows you to write to the next frame at #4000 without having to worry about which of the screens it is. Then when you're ready, flip both the GA screen source and the ram paging and you're all set up to start drawing the next frame.
Quote from: rpalmer on 00:20, 01 January 17The expansion wont entirely work for configuration #3 as it requires direct influence of the Z80 address. It does work on 6128's as this is internal whereas for the 464/664 it is not possible unless there is some modifications to the motherboard to allow for this (which I would not advise at all!). Also this mode does not seem to be very useful to me, since the re-mapping of base memory addresses from &c000 to &4000 seems like a defect rather than intentional, although I guess someone has found a use for it.
IIRC the #C3 mode was used for enabling upper ROMs to access (read) the usual screen ram located at #C000.
Quote from: rpalmer on 22:19, 01 January 17I suspect that SymbOS makes use of this mode too.
No, SymbOS is only using #C1,#C2 and #C4-#C7. Fortunately I don't need #C3 (SymbOS is not ROM-based) as #C3 is not supported by the 464/664 and several memory expansions.
thanks andycadley and prodatron to explain some things.
Hello everyone,
I have just completed checks for the expansion PAL using WinCUPL and find that the attached updates appear to work as expected.
All I now need to do is build and test the expansion board in real life (here hoping all is okay too!).
Included is the simulation test inputs to WinSIM that were used to verify the PAL equations
To use in WinCUPL remove the '.txt' extension.
WinCUPL is a free to download just google it.
rpalmer
Hello everyone,
Attached is the updated 2 Mbyte memory expansion schematic to work the previously released PAL code.
The changes from the previous version were to separate the CE1/CE2 lines so that the PAL can select the correct SRAM chip.
The construction of the board will be MX4 capable (which I am currently checking). The PCB from eagle will also be published once all is checked, built and tested.
rpalmer
@rpalmer (http://www.cpcwiki.eu/forum/index.php?action=profile;u=379) this is great, so nice to have an open memory upgrade available! About the 3-6ns delay, is this normal for RAM expansions? Is it due to the RAM speed? Or the PAL? Does it affect all the memory?
Cheers!
Munchausen,
The delay is due solely to the propagation delays in the PAL to minimize any impact to timings to access the SRAM. As there is no feed back to the PAL the configuration setting is fixed and only handling a small number of control lines make the whole process simple.
The internal DRAM is 50-75 ns and the LYONTEK is about 55ns which is the ball park of the speed of the DRAM.
rpalmer
Quote from: Munchausen on 11:56, 03 January 17this is great, so nice to have an open memory upgrade available!
All my boards should be "open" to save my soldering days...
Sadly, we know that will made malicious peoples using those schematics to sell them up to four times the expected price.
Now, as nobody really use the 512K RAM I don't see the need to release more only to sell boards ; It is not my goal.
I like the rpalmer idea to build all his boards himself for his project. Congratulations! 8)
Quote from: TotO on 13:43, 03 January 17
Now, as nobody really use the 512K RAM
I don't agree with you: I'm quite sure that 99% of the users of your boards don't give you any feedback on how they are using it...ie: From my side, I use the 512 Ko to store several pictures for mockup trials and it is very nice.
I'm confident that other people are using those 512Ko in differents cases; in addition, there are already some minors production that use 512Ko and more (a-ha Demo from Markus; games cracked by Chany that are loaded in 1 pass into the RAM....)
Quote from: TotO on 13:43, 03 January 17Now, as nobody really use the 512K RAM
I am using the expanded RAM every time I turn on my CPC and boot SymbOS :D
Quote from: Kris on 13:54, 03 January 17I don't agree with you: I'm quite sure that 99% of the users of your boards don't give you any feedback on how they are using it...
That is wrong... When peoples order my boards, they mostly explain to me their expected usage to know if the board will be appropriated.
About the X-MEM, they mainly want a ROM board. Next, a RAM expansion to allow to run 6128 programs on 464/664.
By the way, when I said "nobody really use the 512K RAM", I was more speaking about new programs taking part of this memory amount.
Only one new program was released these last 3 years: Orgams. IMHO, it is really few to think that users require more. (except dedicated usages)
Sorry for the unintentional off topic.
Quote from: TotO on 16:18, 03 January 17
That is wrong... When peoples order my boards, they mostly explain to me their expected usage to know if the board will be appropriated.
About the X-MEM, they mainly want a ROM board. Next, a RAM expansion to allow to run 6128 programs on 464/664.
By the way, when I said "nobody really use the 512K RAM", I was more speaking about new programs taking part of this memory amount.
Only one new program was released these last 3 years: Orgams. IMHO, it is really few to think that users require more. (except dedicated usages)
There are some more, which appeared during the last few years and require more than 128K: UnZip, syMIRC, WGet, Telnet, Columns, BattleShip etc. etc. They won't run without X-MEM or another standard memory expansion. Yes, it's all SymbOS stuff and sometimes people don't seem to feel that it can be counted as "CPC software" (which is wrong of course, as it is CPC software indeed).
That makes me wonder, what
released software ever supported/used >128K in CPC history.
This is what I know:
- RAM discs (several ones for Amsdos and CP/M)
- disc copy tools (Discology, Crime, Disc'o'Magic etc.?)
- SymbOS + all apps (currently ~40)
- Orgams
- my old crappy CPC Word
- some movies by Devilmarkus and TFM
(without the cracks mentioned by Kris)
What else?
The problem is, that the CPC-OS never supported the management of the memory beyond 64K. That's probably one reason why memory expansions were mainly used as ram discs but not as extended data/code memory for applications, which is sad as it can be used in a great way for additional code etc.
MSX-DOS (MSX2 etc.) and EXOS (Enterprise 64/128) include full extended memory management, and so much more people here use(d) RAM expansions up to 4GB.
Not enough new programs, because many peoples (users and coders) continue to think that must run on a 64K or 128K stock machine.
We have patched the existing original protected Discology 5.1 and 6.0 to support a 512K buffer. (allow to copy a 3"1/2 80 tracks side in one pass)
We have patched the existing CP/M ROM to allow to support the same RAM Drive capacity (256K or 448K) than BASIC or Disc'o'Magic.
For me, the nice SymbOS applications was mostly already existing before the X-MEM, with the Symbiface II.
Cracked games are existing programs too... We should stop here and continue by PM if required. ;D
The Parados file manager will use the extra RAM for 1-pass disc copy too. I'm not sure if it detects 512K or stops at 256K, but it's easy to check.
hello everyone,
I have ordered 10 boards to be made via www.pcb-pool.com as suggested by bryce.
Hopefully they will be available soon.
Attached is the PCB from eagle for those more adventurous to do the build themselves.
rpalmer
Quote from: rpalmer on 02:47, 25 December 16
With both of these boards it makes it possible to further complete my development for the web browser which is consuming more memory as development expands.
rpalmer
Web browser :) you might like to visit my site at 8bitology.com which I am also working on a CPC web browser among other things. Here is my JS prototype responsive browser rendering logic https://jsfiddle.net/zhulien/dw1zpgs2/ (https://jsfiddle.net/zhulien/dw1zpgs2/) . So pages render correctly in any resolution.
http://8bitology.com/example.php (http://8bitology.com/example.php) is an example 8bml page rendered in html (for inefficient computers)
http://8bitology.com/8bitmarkup.php?8bml= (http://8bitology.com/8bitmarkup.php?8bml=) (and again in raw 8bml for more efficient computers)
http://8bitology.com/8bitmarkup.php?8bml=&rendersize= (http://8bitology.com/8bitmarkup.php?8bml=&rendersize=) (and again with stats)
PHP libraries are already completed to allow anyone to make their websites CPC/8BML friendly, and i 'hope' that some sites will adopt it such as CPC and other 8bit software repositories so we can easily download software on the actual machines themselves.
Also, please PM me with a quote on qty 4 and qty 8 of these 2mb boards. Thanks
zhulien,
The last 2 link only display text in firefox.
Is that the intended behavior?
Do note the for CPC web browser there is going to be a lot of effort to get more than HTML as stuff like Java, PHP, etc are going to take way more effort than the HTML itself and require standard to be met.
rpalmer
Quote from: rpalmer on 12:18, 19 January 17
zhulien,
The last 2 link only display text in firefox.
Is that the intended behavior?
Do note the for CPC web browser there is going to be a lot of effort to get more than HTML as stuff like Java, PHP, etc are going to take way more effort than the HTML itself and require standard to be met.
rpalmer
Remove the bits from the "?" onwards in the links and they work.
Bryce.
Quote from: rpalmer on 12:18, 19 January 17
zhulien,
The last 2 link only display text in firefox.
Is that the intended behavior?
Do note the for CPC web browser there is going to be a lot of effort to get more than HTML as stuff like Java, PHP, etc are going to take way more effort than the HTML itself and require standard to be met.
rpalmer
That is the correct behaviour. it is showing in 8bml so the websites created using the PHP libraries on the site will render in html on PCs and 8bml on CPCs... the JS link is a POC in JSFiddle that is parsing 8bml in different resolutions.
The 3 links above... the first rendered in html on your PC. The 2nd and 3rd are raw 8bml of the same html page, firstly as the CPC will receive it before rendering, secondly the same but with the byte count at the end so you know how much ram it will take when you develop the page.
Full documentation of the 8bml is here: http://8bitology.com/files/8bmlref.txt (http://8bitology.com/files/8bmlref.txt)
The 8bml PHP utils are here also: http://8bitology.com/8bitmarkup.php (http://8bitology.com/8bitmarkup.php)
In fact the whole 8bitology site is coded in PHP and will supply either html or 8bml (if the 8bml parameters is provided on the URL).
Another sample page:
http://8bitology.com/example.php
http://8bitology.com/example.php?8bml=
I have just received a note from DHL to redeliver some of the bits for the board and will soon get the PCBs to begin building and testing.
good news, the PCBs arrived today.
All I need now are the chips I had order as well and then get the sockets to build the test board and start to debug/test.
rpalmer
Can I put my name down for 2 of these by any chance?
Once I have built and tested the first board I will begin costing them and taking orders. I dont expect any issues, but I like to walk before I run... ;D
So for now I will post updates and progress status as time goes on. Hopefully I can get the first built quickly once the main IC's are delivered from overseas.
rpalmer
Good news, I have just received the PALs and memory SMDs so I can now soon build the first board to debug/test.
Lets hope all goes to plan.
rpalmer
Hello everyone,
I have good news and some not so good news.
The good news is i have nearly completed the first board for testing.
The not so good news is that the TL866 minpro device wont program the Atmel ATF22V10 PALs I purchased. The TL866 will program a Lattice version, just not the Atmel version.... >:(
The other bad news I have to wait for more stuff (namely the Card Edge connectors for the 50-way cable I was going to connect the board to. These have been order and I hope to get them real soon.
I have found a web site (http://www.bhabbott.net.nz/atfblast.html) which has developed such a programmer and I have used it as a basis to create a PCB to build the PAL programmer to get the memory expansion board finished for testing.
If anyone is also interested in building the programmer I attached the Eagle schematic and Board for those eager to give it a try. The ".brd" file is a modified version from that generated by auto-routing in that the tracks are thicker and some of the top/bottom tracks were optimised to allow for single sided PCB production with wires for the top layer instead of a series of tracks produced. I hope there are no issues with this board ;D
Rpalmer
How much are those Lyontek chips? I've seen some 5V compatible 512Kx8 SRAMs for around AU$9 (AS6C8008-55ZIN).
There are already a number of memory expansions designed for the CPC, nothing providing the full 4MB as per the Yarek internal. 4MB plus 32 upper ROMs plus lower ROM would be nice, all in one board.
Executioner,
The memory chips were from www.reichelt.de. They cost about 4 euros each (purchased 20 for 72 euros).
The reason I did not go to 4 Mbyte is that Yarek used A10 as well to get 8 I/O address (8 I/O addresses x 512K = 4 MByte) and my IDE interface uses A10 alone meaning Yareks is not compatible with my IDE interface.
I have been looking at some how making a memory expansion to include the lower 7 address lines. There are SRAM chips for larger memory expansion and again these require voltage level converters and would make that board very crowded and complex.
As for an inclusion of a ROM board, that can be included in future as the current version has room on one side for the chips (only as SMD variety). This would take the form of a NVRAM chip rather than flash as the NVRAM has a nominal retention of 10 years (as per documentation) and would possible be easier than flash updates. The 10 year retention although less than flash is acceptable, since the board only needs to be powered up for it the "reset" the 10 years retention period clock.
rpalmer
At 4 euros a piece, you could easily put 6 on a board. I'm surprised you only decode A10 on the IDE interface, but what would be nice is to include an alternative method (eg. write to an 8 bit buffer) to select alternative banks of memory, or set up a mapping scheme. In theory you could select up to 256 banks of 512K or something similar (I know it wouldn't be compatible with Yarek interface). If you were going down the voltage converter route, you could create an interface that used old PC SRAM memory modules and get access to GBs for cheap.
Executioner,
I don't think any PC has SRAM, they had SDRAM which is what you might be mistaking for. The SDRAM came in EDO and non-EDO variants and I have some in my Amiga 1200 accelerator card giving me 64Mb.
As for Gbytes of RAM that is only possible via a 8255 to setup the upper address lines to the memory address space. While possible, it does adds a lot to a larger memory expansion (board organization) and I don't think that would be taken up by many as 2Mbyte is already a substantial increase from current 512K expansion like the MX RAM/ROM board, however it does present an opportunity to see how far I could go ;D .
Then there is the complexity of having to use DRAM memory modules (namely DDR2/3/4 RAM modules) to in the GB range, which requires a high speed interface chip to do the refreshing while capable of handling Z80 memory actions and timing. Also the memory modules themselves such as DDR2/3/4 is much wider than what EAGLE (Free version) allows for.
I can see the need for 4Mb as SymbOS/FutureOS seem to cater for such, but for now small steps before I start sprinting to the finish line.
rpalmer
well I have replyed to the 64K memory expansion issue about the 2 MB memory expansion progress.
So attached is the first prototype build (sorry about focus I am not the good a photographer and I also had just dusted my computer space and much of it fell on to the PCB.
People will see I did not solder the grey PCB connector as I may have to directly solder a cable instead with the other end being a cable version for Card Edge Connector for my classic CPC. However the picture is what the eventual expansion will look once all of the issue are "ironed" out and production begins.
I expect to get the next PCB this week so that I can build a GAL/ATF programmer for the AFT22V10 chips that are going to handle the memory mapping side of things.
Rpalmer
Very nice board :)
I'm very curious how it goes on!
Hi !! .. do you have plans to sell it in the future ?
Why not 4 MB, that would be nice :)
XeNoMoRPH (http://www.cpcwiki.eu/forum/profile/?u=1952),I do intend to make the available these real soon, but I have yet to get all of the bits to complete even the 1st build for testing (the Card Edge Connector being the most difficult to get as i have none to connect to my classic cpc).
I could do a "quick and dirty" adapter board to get further along, but I prefer to have all of the bits available to make a clean test without introducing other unknowns to complicate things. However, that being said I might have to make the adapter board for the first first to iron out any issues with the first build while the remaining items are waiting for delivery.
Rpalmer
Quote from: rpalmer on 12:39, 16 March 17
XeNoMoRPH (http://www.cpcwiki.eu/forum/profile/?u=1952),I do intend to make the available these real soon, but I have yet to get all of the bits to complete even the 1st build for testing (the Card Edge Connector being the most difficult to get as i have none to connect to my classic cpc).
I'm really looking forward to you completing this.
I ordered these edge connectors recently for a project: http://www.ebay.co.uk/itm/5pc-Industrial-Card-Edge-Slot-Socket-Connector-25x2P-50P-2-54mm-0-1-3A-240-50-/140888533934?hash=item20cd9c6bae:m:mfmCIEHuZTPOfxiRH9vooiw#shpCntId (http://www.ebay.co.uk/itm/5pc-Industrial-Card-Edge-Slot-Socket-Connector-25x2P-50P-2-54mm-0-1-3A-240-50-/140888533934?hash=item20cd9c6bae:m:mfmCIEHuZTPOfxiRH9vooiw#shpCntId)
They ship to Oz.
The only problem is that the PCB pins are short and if you needed to solder a male edge connector to it through a PCB it will be difficult. There is a right angle version but one row of pins is still too short. I guess that's not a problem for your project though.
I am having issues obtaining a male PCB edge connector for my project..
Quote from: simondo on 12:53, 17 March 17
I am having issues obtaining a male PCB edge connector for my project..
Male edge is part of the PCB, you just lay it out and order some PCBs with your main PCB order.
Bryce.
I have created an adapter board to build which will allow me to connect the memory expansion to cpc without the need for the cable version of the card edge connector.
The adapter board is just a standard solder version of the connector and a pin header. The pin header allows for IDC cables to be made as they are more readily available now.
[attach=2]
rpalmer
I have now just about completed a built of a ATF22V10 programmer that can program GALs (or Atmel ATF equivalents). All I need now is a heat sink, I cant believe how hard they are to come by. The shop I normally go to only has the very bulky one which are way to big to put on the regulators.
I might have to build one using some scrap metal somehow.
rpalmer
Quote from: rpalmer on 13:29, 02 April 17
I have now just about completed a built of a ATF22V10 programmer that can program GALs (or Atmel ATF equivalents). All I need now is a heat sink, I cant believe how hard they are to come by. The shop I normally go to only has the very bulky one which are way to big to put on the regulators.
I might have to build one using some scrap metal somehow.
rpalmer
I doubt either of those would get hot enough to need a heatsink. Have you tried running it like that? And the holes in the PCB suggest that it was designed to just have them lying flat without a heatsink.
Bryce.
Even inthe worst case,a simple screw with a nut and several layers of aluminium foil would make a simple but good enough heatsink :)
bryce,
The original board suggested it for the regulators since they assumed a 15V input. I have found one that is 12V, but the 5V regulator may get hot if connected for some time.
I suspect it could get by for a short time, but i rather follow the same build as what was stated and see where i go from there.
rpalmer
The heat will mainly depend on the current the PCB is pulling. I can't imagine that the circuit needs very much current though.
Bryce.
Í would like to buy one board ;)
Gesendet von meinem Passport mit Tapatalk
OK I have been away for a while, How is the testing process going?? I think I might be selling some kit as soon as I can buy 2 of these. :)
Hi craigsbar,
The past two weeks have not kind to me as i had to attend to a funeral and so had my attention elsewhere.
I also have not done any testing of the expansion in that time as I have been getting my classic CPC up and running with a 3.5 inch floppy. This was something that was easier to do given the events of the past 2 weeks.
I have etched a PCB to convert the internal floppy connection to that for the PC floppy interface.
The PCB has a series of jumpers which can control side selection and ready lines and also converts the power supply to proper alignment for PC floppy use.
While many have simply "cut" cables and re-connected them to match the PC floppy interface, the PCB I created makes it easier to just simply connect cables and set jumpers.
I will put more information into the process in another thread for others to have the opportunity to do this themselves if they feel less confident in cable cutting.
On the memory expansion I have found that the PAL programmer has a voltage regulator the wrong way around (my fault I should have known better on that one) and I also found heat sinks which will complete the build.
As for any orders, the original PCBs did not have un-used gates tied to ground and these will be hard-wired in the prototype and if all goes to plan I will get another set of PCBs with any corrections made to ensure all of the builds work as expected.
rpalmer
Sorry to hear you had a funeral to attend. They tend to grab attention from everything else. No pressure, this is just a retro hobby after all.
Sounds like a great update, your floppy adaptor sound like a much neater (and reversible) solution.
Sent from my ONEPLUS 3t using Tapatalk
hello People,
I have just completed the first COMPLETE build of the 2 MegaByte RAM card and connected it to the bus extension board.
I will soon build the cable and begin testing it, along with the soon to be built SD card adapter for the SPI interface.
Lets hope all goes as expected and then I can build more for those who want it.... ;D
Attached is a close up of the card.
rpalmer
This is so great, I am really looking forward to this expansion! :D
Any chance to upgrade it to 4 MB?
I have no intention yet to upgrade to 4 MB.
However you can never discount the possibility ;D
rpalmer
Oh, no problem. There is somebody else making the 4 MB ones. :)
Hello people,
I have tested my first complete build and it appears to work as expected.
I will do a few more tests to put it through its paces and should not find any problems at this stage.
hopefully, my next post should then be one in which costs are determined and orders can be taken.
rpalmer