Skip to main content
Home Forums 68kMLA Designing a portable RAM card
Thread

Designing a portable RAM card

68kMLA Hardware 204 posts Oct 4, 2014 to Nov 21, 2018
There's a store nearby and I think I can get a single 1.25 ghz daughter card from a MDD fairly cheap. I have a Dual 1.00 ghz MDD with a burnt out processor. I've googled and found articles going from a Single to Dualie but not the other way around. Anyone have an idea?
_________________
More macs than I can shake a stick at
I decided to spin this off from my other thread. There seems to be some interest in this, so i decided to move on with the project. 

Here is my progress so far: 

progress 1.png

Still alot to go, but so far so good. Got the busses done, just need to get all the signal/enable/CPLD lines ran. 

Turns out the apple guide to the family hardware is the correct one. the developer note is incorrect in pin numbering on the socket but the number to signal table figure appears right, and the designing cards and drivers for macintosh is completely wrong. pins and all. 

If you're curious, yes it does, it does very well!
_________________
More macs than I can shake a stick at
Gotta love it, supposed "reliable" sources of information turn out to be anything but.

Yea, i bet that caused some havok for RAM card makers back in the day. lol. 

Anyway, more progress. Pretty much complete to operate as stock. 

Just have to add a couple jumpers, extra connection points for the DTACK and /AS line for full 9MB extended addressing. Then of course i need to add the decoupling caps, and route the board. 

progress 2.png

Cool.

Generally, processor daughtercards designed for the same motherboards are interchangeable no matter the speed or CPU count. That was true as far back as the PCI-class Macs where you could swap dual processor cards for singles and vice versa. A few G4s in the Sawtooth era couldn't take a dual processor card in place of the stock single CPU because Apple firmware got in the way somehow. That's the only case I'm aware of where that general statement above doesn't hold true.

Peace,
Drew
_________________
Power to the PowerPC!
No thoughts? hmm... Guess its a monologue

Anyway, board routing time!

progress 3.png

one word for you sir,  awesome!

So again this will work with the 5120 or 5126?

both. In theory, it should be universal. 

the difference between the two models, the Backlit has a Refresh line, whilst the original does not. And the backlit /AS becomes /RAMCS, meaning its stuck at a 5MB ceiling, which is why I will have a pin to allow a wire to branch off to the next slot to pick up /AS for the full 9MB. 

I will also have a DTACK pin as well, that will connect to the CPU DTACK line to allow the remaining 4MB of address space to be mapped to RAM without throwing bus errors. 

In a nutshell, if you want all 9MB, you will have 2 plug-in wires coming of the board going to the ROM slot. or maybe PDS. If you dont want wires, your stuck at 5MB. 

took 3 hours just to get this far. Routing is FUN!!! Not... its anything BUT that.... 

progress 4.png

Not a monologue as much as a rapt audience waiting for each piece to appear as you make them.

I'm a liberal arts major.  I could provide some useful input on how pretty those pictures are, if that helps. :)

speaking of pretty pictures.Staring at those trace lines and routing new ones after several hours, its screwing with my vision. :(

Well my 5120 ram causes chimes in my 5126 and vise versa.

If your design will work in both is the incorrect information why the originals don't?

Going to call it quits for today. Starting to get a headache. However, All the data/address lines are ran between TSOPs. 

progress 5.png

because as I mentioned before, two lines are switched and changed between the two models. the Backlit model has a Refresh signal, portable model does not. 

Here is an apple doc explaining why:

http://24.52.155.15/dissport/Port_Dev_Blit.pdf

My setup, it should not matter. 

Couldnt help myself, once I am on a roll, I tend to keep going. After taking a break, Made more progress... 

progress 6.png

once I am on a roll, I tend to keep going
I'm the same way.

lol you beast.

little bit more routing done before I hit the sack. 

progress 7.png

No thoughts? hmm... Guess its a monologue

Anyway, board routing time!
You're doing great. We'll jump in if you screw up. :)

Plus, I don't access the internet much on the weekends, when you're likely to be making progress on this.

Well if I screw up, its going to be how I am using the CPLD and its assigned pins. This my first time ever doing a custom CPLD thingy. 

More progress. its all routed! Just have to draw the ground planes and clean up those airwires. 

progress 8.png

Ground planes are done. In the process of Via stitching the layers. 

All done. ground planes are routed, VIA stitching is done, and then the JTAG header installed. Along with some diagnostic LEDs. 

Now is finding a PCB service that can run that board, the traces and vias are kinda tight. 

progress 9.png

What color do you think I should run the boards with?

I like Blue PCB's best, White and Black ones also look pretty good too

How about green? It would match the Portable logic board.

What ever is cheapest, I suppose.

c

Green is always the cheapest :)

I think that most services will do 6 mil traces and spacing as standard service these days.

It looks great. I'm looking forward to reading about the actual product.

hot pink   :)  

Lolol.. ur funny

Purple. A nice professional yet slightly stand-out type shade. It is a little flare of colour, yet nice and dark to maintain a clean look. I am not sure how to describe it better tbh.

Orange is good for something nice and bright though. :p

Hmm. Purple. Sonnet style. Nice that actually doesn't sound bad.

Here is the finished schematic. 

If anyone isnt already lost enough to double check my work, please do. 

RAM.pdf

Already found a problem. Got my upper/lower data strobes backwards on the buffer IC. Whoopsiepoo. 

RAM.pdf

went ahead and asked for a quote for 5 pcs prototyping run, just to gauge an idea what each PCB is going to cost roughly. Then i get a bill of materials together, price of RAM from trag, and then assembly/test labor which at that point I can get a per piece price. 

I make a poll to see whos interested in buying, so then I can justify the cost of running the boards. 

of course, the PCBs might be cheaper if I order a larger number of them, or if I actually panelized the layout, but eh.. thats alot of work. 

Count me in! I need this and a new ribbon cable (plus a hard drive) to get my Portable 100%.

Money is something I don't have in abundance at the moment, however, so it'll probably be awhile.

But I'm definitely interested!

c

Yup, hopefully itll be cheap enough to hold interest. Otherwise i designed it all for nothing haha. 

my next goal is to design an asyncronouse memory-mapped I/O PDS card. 

So i can read/write specific addresses to read/write the card. 

I dont really want to mess with DeclROMs, slot manager, slots, all that jaz that most cards do. Id rather just have simple peripheral cards that are directly addressed via drivers. 

The next step toward a ARM co-processor/raspberry pi PDS card. 

awesome man… yeah purple is should be pretty cool...

count me in for 2.

I vote for Red

Well, I got quoted for 5 boards, at $62.50. This is basic green. different colors cost more. 

$37 for the boards, and another 25 for shipping from china. sheesh. all the board houses are in china these days. Even imagineering is, which is who I used for our production boards for Major Display LLC. 

Yeah, dealing with China can be expensive in shipping costs and shipping time (up to 6 weeks or more to go through customs? Sheesh!) But they are cheap otherwise.

TechKnight, copyright your design (send 2-self addressed mailed planes to yourself and open one up to see it and keep the other sealed until a "judge needs to see it," and keep both together) and then get an application to send a copy to the Copyright Office at the Library of Congress. Last time I had something copyrighted by the LoC was in the 1990s and cost $14, I don't know what it is now. I understand that you are doing this for the community and all, but its best to protect your ideas. It's nice to have that "by © year" with your name on it on what you put out.

I can't even wait!!!!!!!!!!!!!!! You are the bomb Techknight!!!!!!!!!!! I may buy 8 if I can afford them... :) and if you produce enough.. :)

Could I entice you to put a Jolly Roger around those diagnostic LEDs? :D

jr.png

The Jolly Roger image would look cool on it.... :) :)

What color do you think I should run the boards with?
For the proto-type(s), whatever color will be easiest on your eyes when you are soldering and provide the best background, with respect to visibility of the soldering.

As long as I dont find any more errors ill run the boards.

Get a BOM together and figure out the cost per board from there.

Hey trag can you message me the chip prices so I can factor that in.

PCB Express here in the US and Shennan Ckts in China.. High quality.. shennan takes gerber files and will convert and PCB express requires you draw with their software.. Which is free.. A friend uses these guys

I used to use ExpressPCB but I quit because its proprietary. Much easier than eagle though, but i rather use something that renders industry standard files. 

plus expressPCB is very expensive. 

I was using iTead with prototype runs, because it was cheap. but one of the guys split off and started his own thing, and i got a quote from him. 

BTW, the diagnostic LEDs will likely be programatically hooked up to each chip select. So youll see them flash during the RAM test, or during read/writing in that RAM space. 

flashing lights makes it look more important!   :)

batman_burroughs_b205.jpg.78a522d203e04d29368a2b75c0cee239.jpg


Whoops. Almost royally screwed up. Got to make a design change. 

These are 2MB chips. the on-board RAM is only 1 MB in size, and the decoding to external address space starts at 2MB. Problem is, the New RAM is 20 bits in size, while the original is a total of 19 bits in size. So, if I leave A19 of the toshiba RAM hooked into A20 of the original addressing space, that would kill off the first 1MB on my toshiba chip, basically wasting half the chip, as A20 would be high when moving into external addressing. Since A20 is routed to the toshiba chips, well yea.... 

So, I am going to have to break off A20 from the RAM. Leaving the RAM only accessing in 1MB chunks. Then, move A20 to the CPLD and do some 1-2 decoding to use the full address space. 

Wow... good thing I caught that. Doing the CPLD work is what made me think of this. 

This is precisely the reason that when using memory modules in computers, they all have to be "equal" 

Elfin: Even if I did copyright it, whos got the money to hire a bunch of lawyers and court proceedings to fight an infringement? I dont, so who cares? Plus this is strictly a niche market with a small yield so it doesnt really matter. 

CPLD code is done, now its just a matter of waiting for the PCBs, assembly, JTAG programming, and test... 

Ordered the PCBs, which pretty much depleted my budget. 

Soon as I get some extra cash, I can order up the parts from digikey to finish the boards. 

techknight, just in case nobody said it recently, you are awesome!

Huzzah!  Too awesome. :D

...(send 2-self addressed mailed planes to yourself and open one up to see it and keep the other sealed until a "judge needs to see it," and keep both together)...
I can say, with true and absolute certainty, that this hasn't been accepted as evidence in patent court for at least 40 years, if not longer.

I think Elfen missed a step.  It has to be notarized because it needs a witness to the contents.

Here is my CPLD code in a nutshell: 

Chip Select/Bank Select Signals.
A20, A21, A22, A23 Address line decode. The chip is hooked up between A0 and A18, or A1 to A19 if you look at the portable bus. 

Base RAM:
0000 = No chip selected, all lines off = 0

Extended RAM:
0001 - Chip 1 Select ON, Lower Bank ON = 1
0010 = Chip 1 Select ON, Upper Bank ON = 2

0011 = Chip 2 Select ON, Lower Bank ON = 3

0100 = Chip 2 Select ON, Upper Bank ON = 4

0101 = Chip 3 Select ON, Lower Bank ON = 5

0110 = Chip 3 Select ON, Upper Bank ON = 6

0111 = Chip 4 Select ON, Lower Bank ON = 7
1000 = Chip 4 Select ON, Upper Bank ON = 8

When I say Upper/Lower bank, I mean just toggling A20 high or low. Since the macintosh portable has base RAM at 512K-Word, or 1MB, I decided to break the expansion down into 1 meg chunks as well. Since the toshiba chips are 1M-Word, or 2Mbytes, just deciding where A20 is determines if I am working with the first 512kword, or the second 512kword. 

progress 11.png

I just want to say this is very cool. I was going to offer some suggestions, but everything already looks great to me.

Your input would be appreciated. This is my first ever CPLD project.

You could always use a i8042 to control the A20 line. ;)

Is there any benefit to mapping the full 9MB? Isn't the 68000 limited to addressing 8MB max with the typical Macintosh memory mapping?

the portable is an oddball. All RAM is mapped up until you run into ROM. Rom doesnt begin at 40 0000 as on the SE/Plus,etc. it begins at A0 0000 or 90 0000. Something like that. 

Why would I use an i8042? thats a keyboard controller. 

Why would I use an i8042? thats a keyboard controller. 
Ask IBM, seemed to work for them :p   (It was a joke)

That means the Portable can do something no other 24-bit addressing Mac can do, access more than 8MB of RAM. Neat.

You think Apple meant for it to address that much memory, or it's just a fluke/oversight/they didn't care that it could be made to address that much?

the GLU allows addressing up to 5MB. a PDS card can address it all up to 9MB. 

But, if I understand correctly, your card will allow more RAM in the RAM slot than the 5 MB the GLU limits it to, correct?

c

i hope so. 

By way of some special pass through connector in the ROM slot that breaks out the needed extra address lines? How will that be done, exactly? Or did you solve that by doing all the encoding/decoding/etc. on the card?

I will definitely be interested in one when it's ready.

...And a new back lit ribbon cable for the LCD (or a decent repair of the current one).

c

Youll see....

the address decoding and chip select is all done on the CPLD thats on the RAM card. 

I carried a tap for DTACK, and address strobe/AS. that way, I can just bring those 2 wires over to the adjacent slot to get full decode. 

Eagerly awaiting the test results -- and I don't even have a Portable.  I just have pent up project pressure (PUPP).  I had this project in mind for years.   It's wonderful to see it get done even if I'm not involved (other than pulling a box out of the attic).

Well, i am just waiting on PCBs. 

Plus waiting to refill my expendable budget to get parts from digikey. 

Techknight....  I don't know if this helps but I just found an 8MB PDS RAM card in my collection!!!!!!!! This gives you the full 8MB.. It's plugged into a 5126.. I don't know if there is more if you plug it in a 5120 but I will try... Look at the pics... It says Sunland Micro Systems

side1.jpg

side2.jpg

aboutmac.jpg

Matt

Same total ram on 5126 and 5120... But curious... Could I put in the PDS ram and a regular RAM card?? Or will it just see the max of 8MB??

Matt

It's one or the other, if I'm not mistaken.

The max is 9 MB, not 8, according to the legwork that TN has done.

if you look, that is an 8MB card, but only 7MB is populated. 

Yeah I had forgotten that.. duhh.. 1mb on board.. :) Could make it a 9MB I suppose.. but will only work on 5120 like that no?? Did u want me to send it to you so you can take a peek at it?? 

It does make me wonder why they didn't popular that last set of pads. Maybe they just thought 9 MB was a strange number?

Well I did screw up. on one thing...

The boards did ship, and they shipped DHL. Unfortunately, they uncovered some big scandal at the ShenZhen dock, which is where my package is stuck at. 

Something about counterfeit money and other stuffs, causing packages to be delayed up to a month or so before it leaves the dock via DHL. 

I wish i would have known this prior to ordering and shipping via DHL... 

Doh! Bummer. With luck they'll get it sorted out quickly. They can't want to lose a bunch of commerce because of delays. Some time last year there was a big obstacle in shipping for remote control toy companies. Something about shipping lithium-poly batteries. They got it figured out eventually, but it took a while.

Well supposidly over 300 workers were fired from DHL at the port because of the scandal. it was major news. 

Well, if this delays it too long, can you cancel your order and redo it via another carrier?

If the company from which you got these is reasonable, they should be able to do that for you.

In an ideal world, anyway....

c

This was a fun project until it was time to solder in components, the TSOP48 soldering makes this project not-so-fun... But nevertheless. 

20141028_1758591.jpg

20141028_1759081.jpg

20141028_1759491.jpg

20141028_1833161.jpg

Oooo. :)

Does it work?

c

That looks a bit awesome - well done.  Might be keen for one provided my non-backlit Portable decides to function again.

Does it work?
it isn't fully assembled yet. I have to wait on the rest of the parts, had to replenish the project fund bucket which the circuit board order emptied. 

Nice work Techknight :) hoping it works...

Nice Techknight!!!!!!!!!!!!!! Looks great!!!!!!!! Again I can't even wait... my orders will be in as soon as it's ready.. I am sure many others will have their orders in as well.. :)

Parts are on order... So this is it. Cross your fingers and hope it works first try!!!

nice work Technight,

depending on final price, i might be interested if you sell any   :ii:

Oh, they are going to be for sale once I know they work. 

Each day is excruciatingly painful waiting for the parts... lol

Finally! Sheesh...... Was getting worried as it kept showing delivery status not updated on USPS. 

But its good, they came. 

Got some finished pictures below. any thoughts so far? All that basically has to be done now is the CPLD jtagged and then tested!

20141103_1710101.jpg

20141103_1713161.jpg

20141103_1713441.jpg

A very nice, very clean design. I like it. You hardly every see anything done so nice and clean these days.

Techknight's work is the best!!! He really does a nice job on anything he works on!!!

Flashed it. Almost worked first try.

Passes no sad macs. 

But something is wrong in my CPLD code I think. it bombs with memory manager error when I go to about the finder. 

or if i do a get info on anything, itll crash with address error.... 

I'm impressed you got that far on the first try. If you'd actually gotten it 100% off the bat I would have needed to say something about the devil and selling of souls...

I did some more work on the CPLD code. 

I removed all decoding logic except the very basic stuff, hooking up only the lower half of the first chip to the 4-to-16 decoder. 

Tried it again, boom 2MB. 

So... at least i know my board configuration is good! I didnt have any doubts about that. :p  At least I got the hardware perfect right off the bat. 

Adding one select line at a time, added bank switching A20 line. 

Now I am seeing up to 5MB so far, NICE... I will keep doing this for each 1MB block at a time until I figure out where my issue was. 

I found the problem. Not the solution yet... 

Soon as I tie in the last MB of RAM, to take it up to 9MB is when it goes haywire. I'm thinking its running into ROM somehow. odd... As long as I stay at 8MB and under, it all works beautifully. 

Soon as I add the last MB, spectacular failures ;)

My original CPLD design is perfect. Just didnt like the last MB. 

Nevermind. I am an idiot. I had to re-read the notes, I can only go to 8MB. Not 9MB..

So my card actually works perfectly. I just tried to expand it past limits. 

Techknight.. from what I recall they could only go up to a certain size depending on the model.. I think the limit was 9 on one of them.. the other 8MB.. I remember seeing this.. Perhaps this is why my PDS was missing the last chip so it only had 8MB total.. and that was a card from a 5120.. I wish i could remember.. but the max was 8MB on one and 9 on the other..

This is also including the 1MB of onboard memory of course…. so 7MB on one card for one model and 8MB total for the other.

YOU DID IT!!!!! HORRAY!!!!!

So can you add the last chip for a total of 8MB on the card and make a jumper depending on the model??? So you can flip between 7MB and 8MB.. Get the order forms ready.. LOL!!!!

There... All good now. Its awesome, you can actually watch the diagnostic LEDs switch between banks as the mac starts up and tests RAM. 

20141103_2327331.jpg

20141103_2327461.jpg

No jumper needed. its right at 8MB. I just turned off the last MB, so it stays at 8MB instead of 9MB. So basically we are wasting half of the last chip. doing nothing. 

I could remap it in the expansion ROM area, but then we would need a special driver to tell the Mac OS to use it as RAM. 

The last thing I need to do is toss it in a Backlit model and see if it works. In theory, it should be universal. I actually did NOT need the DTACK connection on the non-backlit. So, we will see on the Backlit whether I need it or not. 

So I think the 5120 can go up to 8MB MAX but the 5126 can take a total of 9MB...

I dont know. depends on where ROM is. if ROM is sitting at &H900000, then its stuck at 8MB as well. 

Found this...

NAME  

MACINTOSH Portable M5126

MANUFACTURER  

Apple

TYPE  

Portable Computer

ORIGIN  

U.S.A.

YEAR  

1990

END OF PRODUCTION 

1991

BUILT IN LANGUAGE 

None

KEYBOARD  

Typewriter style, 80-key with numeric keypad

CPU  

Low power version of Motorola 68000

SPEED  

16 MHz

RAM  

1 MB (up to 9 MB)

ROM  

256 KB

GRAPHIC MODES 

640 x 400

COLORS  

Monochrome

SOUND  

8-bit stereo

SIZE / WEIGHT 

33.8 x 37.7 x 10.3 cm / 7.1 kg

I/O PORTS 

Serial, Parallel, SCSI, ADBx2

BUILT IN MEDIA 

One 3.5'' FDD 40 MB HDD (optional)

OS  

MAC OS 6.0.4 to 7.5.5

POWER SUPPLY 

Internal lead-acid battery 6.5V

PRICE  

$4200

So 5120 can only go to 8MB total and 5126 to 9MB total.. You are testing on a 5120.. You should test on a 5126 board and bring it up… Perhaps my 5126 board.. heeee….

That means I need two different CPLD firmwares. One for backlit, one for not...

Maybe the next PCB i need to add a jumper to enable/disable the 9th MB. 

On my machine, that 9th MB will overlap ROM and she falls flat on its ass. lol.

I only ordered 5 PCBs on the first run to make sure I didnt have any hardware bugs. And I didnt, as I figured i wouldnt. I looked over that thing time and time again proofreading it. 

New PCB will have the jumper. I need to see if the fab house has solder paste stencils. that will make things so much easier and faster. I did my first board all by hand. 

I'm sure everyone is cool with just getting 8MB's… I just thought there might be a way to just use that little extra ram… Yeah next design throw a jumper scenario on it if possible to flip back and forth.. :)

According to the Backlit developer note, it has an 8MB ceiling as well... 

You did a freakin awesome job!!!!!!!

good job dude!

Well, I know for a fact that the M5120 I have here on my desk, ROM starts at &H900000 which is the 9Megabyte marker. So yea I cant go past 9MB. 

Unless I add the last MB of RAM to the ROM Expansion address location, but that would require a special extension to tell System 6/7 to use that as RAM. That is something I dont know how to do. 

So 5120 can only go to 8MB total and 5126 to 9MB total.. You are testing on a 5120.. You should test on a 5126 board and bring it up… Perhaps my 5126 board.. heeee….
Backlit needs the /AS jumper. Without it it only sees 5MB. with it I can get all 8MB.

However there is an odd bug. When an application goes into expanded RAM the backlight flickers on and off rapidly with RAM accesses.

If I dont use the /AS wire and cap it at 5mb its perfectly fine.

But my /AS wire was a horrendously long clip lead plus I didnt have /DTACK hooked up either, so that could have been an issue.

20141104_084454.jpg

20141104_084802.jpg

Here's something that should be useful. 

3.jpg

2.jpg

Wow! Excellently cool progress, Techknight.

What does /AS do? Is that Address Strobe? Still don't know what it does, even if that's the correct name. It seems bizarre that putting a load on that wire could cause the backlight to switch off and on.

the /AS is the address strobe, yes...

Starting with the Backlit portable, they removed the /AS in the RAM connector and replaced it with a signal, known as /RAM.CS 

This signal is controlled by an external address decoder network, which actually sits between the ROM socket, and the RAM itself. a series of 74 series gates. but I digress... 

This /RAM.CS will only assert within the first 5MB of address space. After that, the signal no longer gets asserted. Therefore, on the M5126, you have a RAM ceiling of 5MB in the RAM slot. PDS is an exception though because you have access to the entire bus so these limitations dont exist. 

but since I didnt feel like dealing with the Eurocard connectors, or the PDS, I designed the card to fit in the existing RAM slot. 

So.... In order to gain full addressing on the backlit portable via the RAM slot, you have to pick off the /AS address strobe signal either from the PDS, or from the ROM slot. Since ROM is still attached directly to the bus, and not isolated through an external decoder. 

The catch is, after 5+MB the RAM decoder network no longer generates a /DTACK signal to tell the processor that the data transfer was successful. 

So, I am thinking that since I didnt hook the DTACK line up, it was causing a ton of bus errors even though the system information was showing the full 8MB of RAM. 

If I use the /RAM.CS signal instead of /AS, everything works great. But only sees 5MB as expected. If I remove the jumper that connects to /RAM.CS and replace it with a wire that goes to /AS instead, It shows the full 8MB of RAM. But every time an application launches and uses the extended RAM (RAM past 1MB), the backlight flickers on and off extremely rapidly, at the same pace as the RAM accessing occurs. 

so i think the DTACK connection not being made is an issue, OR, since my /AS wire clip lead was so long and coiled, it was distorting the signal to the RAM card causing issues with data transfers in and out of RAM. 

Funny thing though... no bombs, or system errors/sad macs. Just kept right on chugging with backlight flickering. Soon as I exited microsoft word 5.1, it quit. backlight stayed on. 

My 5126 has 9mb I'll double check but it's an 8 meg card using the 1 meg on the motherboard.

Nope 8 megs

With a 7 meg card with 2 open spots.

So I guess I should find two matching chips and see if I can get 9 huh?

you can try it, but i doubt itll work.

So what I did was setup 2 CPLD firmwares, one for 9MB, and one for 8MB. I built my 2nd card, and flashed it with 9MB. 

But its giving me a chime loop so I think one of the RAM ICs trag sent is bad. my connections are ok. 

So once I get that fixed, I can dick around and see if I can max the backlit model to 9MB. the non-backlit cannot exceed 8MB ever. unless ROM is moved.

Trying to do this without using the PDS slot, because my next goal is to attach a 68020 to the PDS.  

A 68020 with math co pro? Both memory cards I have are PDS so put me on the list for a couple of these I think.

Soon as I learn how to do it.. cant find any reading materials out there for how to tie two processors together and busmaster them, which is how accelerators work.

Not to mention the bus incompatibilities. 68000 is a 16bit cpu with 16bit bus while 020+ is 32bit. So how do you run a 32 bit proc on a 16 bit bus? Im sure designers figured all this out 20+ years ago. But I havent.

I fixed my 2nd RAM card. One of the solder joints didnt take.

I ran the /AS line to the 2nd card on the backlit. Worked perfect no flickering.

My 1st card still flickered. Ironically this is the same card giving me problems in the non-backlit acessing 9MB. I think one of the RAM ics is bad.

Ill try my 2nd card tonight in the non backlit.

You're doing god's work Techknight

I couldn't wait. I grabbed haplain's non backlit and tried out my 2nd card.

Worked perfectly. All 9MB.

That tells me I have bad RAM on my first card.

20141105_104627.jpg

Will you have to remove all the RAM on the first card to figure out which is bad?

Nope. Thats the cool thing about diag LEDS. I can see which one lit before the crash.

Very nice!  Looks like my portable is going to be costing me yet more money.... :)

Also, surely the bad chip has to be the last chip on the card? As it works when you have it set to 7mb and that's wasting half the last chip, or have i misunderstood something here?

Yup your correct.

Ok I need 2 how much? We need prices !

Replacing the RAM IC fixed it. So out of a handful from trag, only one was bad. Turns out I did not need DTACK so ill omit that in the next PCB revision.

Thats pretty good.

BTW. I only ordered 5 PCBs to make sure it all worked. First come first served.

Your looking at $75 per board for one without the LEDs. Or $80 if you want the LEDs for the cool factor.

I need to know how many are interested and qty so I can order all the correct parts.

I am definitely interested, But currently I just don't have the money.

When I do i'll be after 1 with LED's

Ok. I started a new thread in the trading post for pricing and orders.

Hmmm. That's a 1 out of 9 failure rate on the chips so far. That's not so good. I hope you just happened across the bad apple and that's not typical.

Have you tried running something like NewerTech's RAMometer memory test (also available in Guages) or some of the memory tests in TechToolPro? Check the chips bitwise...

Fabulously excellent work.

Hmmm, browsed the thread again, rereading your progress.

I also suggest you test RAM performance (RAMometer will give you a MB/S tested indicator) with and without your DTACK wire connected. Is it possible that without DTACK, the CPU is timing out and assuming the data is on the bus at some point, but that with DTACK, the transaction might complete several cycles sooner?

If there's some logical reason why the above paragraph is misdirected, feel free to ignore it. :)

DTACK is generated automatically by the GLU. So i dont need to worry about it. The backlit portable has no wait states. So the speed is literally as fast as the RAM access time. 

The non-backlit has wait states, I present the data available instantly, but the machine can only accept it within a certain amount of wait-states. 

Its hard to say why the chip was bad. I could have killed it for all i know. I dont have any ESD matting or anything. 

Also, do you have a link to any of those utilities? 

This is sooooo awesome!!!!! And especially awesome of Techknight makes a 68020 to drop in it!!! Everyone will be in portable heaven.. Here is a song that I thought when it came out was awesome… Makes me think of my macs… lol!!!

Now thats odd. 

I got 9MB on haplains board, at the shop with my portable HDD. 

Since I dont have an HDD solution yet on my non-backlit portable at home, I am booting off a 6.0.7 disk tools disk. Well same thing. Memory manager error and address error when using 9MB.... 

Do you have to have a full install of 6.0.7? or a system enabler I am not aware of? 

Not to mention the bus incompatibilities. 68000 is a 16bit cpu with 16bit bus while 020+ is 32bit. So how do you run a 32 bit proc on a 16 bit bus? Im sure designers figured all this out 20+ years ago. But I havent.
The Mac LC should be your inspiration because this is exactly what Apple did with it: The LC has a 16-bit bus and it's running a '020. 

On the PC side of the fence Intel released the 386SX which was the low cost version of the 386DX.  The 386DX had a full 32-bit external bus and the 386SX had a 16-bit external bus and fewer pins.  The actual core of the two chips were effectively the same.  (In the 1980s and early 1990s it was a lot more expensive to make a 32-bit system because your bus had to have many more traces.)  I know that for Intel, they solved the problem by using 2 clock cycles to load a complete instruction.  That is, every other clock cycle would either be the "high 16" or the "low 16."  

Since the '020 doesn't have a shorter bus variant I do wonder how Apple made it work.  At least we know it is possible to do.

Simply amazing, what you can do with these machines simply astounds me!

I am not going to say what techknight has done in the past as far as High-Tech electronics.  SW / HW

I'm sure this portable card wasn't no big thing for him :)

< me doffs redneck gimme hat, bowing in respect for said achievement >

Looks like it's time to read this thread! ;)

I dunno, I think BMOW has me beat with the floppy emulator

Maybe so, but isn't the Big Tomata' an EE?

.

Im not sure. I am an EE as well, but only 2-year. Most of my knowledge is experience.

Jumping the gun a bit here, but, if these sell very fast, and you run out of SRAM chips, Mouser has this chip (263 in stock):

http://www.mouser.com/ProductDetail/Alliance-Memory/AS6C1616-55TIN/?qs=sGAEpiMZZMt9mBA6nIyysDfDw0vDQxSw%2fJdd2EqgHt0%3d

It would be about $7 each if you bought 100 of them, but they have the same pinout as the TC55BVM416, are TTL compatible and are in the same package. Probably bump the cost of the card up from $75 to $100, but at least you'd be able to make more of them using the same PCB.

The only issue I see is that the AS6C1616 does not support X8 mode. Only 1M X 16. I'm still not clear on whether you're using the TC55BVM416 in 1M X 16 mode or in pairs as 2M X 8.

unrelated. 

I need someone with good internet digging skills. 

Looking for a motorola application note on the 68020. 

Motorola AN944

BTW, they are only going to sell as fast as I can make them. lol. 

Btw thanks for sticking with this.

Nope. I need the AN994/D. 

Closest I come was a post in the Freescale forum, but the attachment is long gone. 

Scavenging around with that search, I found an amiga 68020 accelerator, and its associated PAL code in a document from the 80s. This document also refers to that same application note, which is how it hit on the search engine. 

Problem is, I dont understand CUPL so i dont know how to convert CUPL into discrete logic. 

But from what I gather so far, attaching a 68020 to the system bus, might as well go with 030, little difference. Seems relatively streight foward. 

Just have to have the logic to break it down to 16 bit cycles, and then you need the Syncronous generation logic becuase its missing in the 020. Basically the E, VPA, etc.. signals. 

Then the bus mastering logic. 

As long as we have these 3 logic blocks, everything else pretty much just works. The Amiga they were converting the 7Mhz bus signal to the async 16Mhz so the guy had to create a whole bunch of extra logic to keep DSACK happy, and other things happy. Whereas in my case, the bus is already at 16Mhz, and I will keep the same for the CPU. So i can cut out that extra logic. 

Have you tried contacting Freescale and seeing if they have what you want?

I have seen the user manual.

I need that specific application note....

Is there a reason you want to go with the 68020 instead of the '030 specifically?
 

The 68030 user manual goes into pretty extensive depth about how the bus sizing mechanism works. The manual includes some example PAL equations for the byte select logic needed for smaller bus sizes, which I think is pretty much what you'd get out of that application note. There are some minor differences in how the bus sizing works for the 68020 (said differences are mentioned in the manual) but you may be able to use the hardware design mostly unchanged anyway.

(EDIT: Downloaded and skimmed the '020 manual and it looks like it has the same material in it. You might want to sign up to the Motorola support forum and ask for the app note there. Google points to a discussion there where someone found it and gave it to someone else via an attachment, but the attachment doesn't seem to be available anymore, at least without a login.)

EDIT again: I assume you found this PDF already, about interfacing a 68020 to an Amiga?

I have seen the user manual.

I need that specific application note....
I have a Freescale Community account, so I messaged the fellow who originally provided the missing attachment.  He got back to me in minutes.

AN944.pdf

I think an 030 can directly replace the 020. Cant remember though. I thought 020 because its on hand. But 030 is more plentiful.

That application note is exactly what I needed.

Now I just have to figure out how to arbitrate the 68000 so the 020 will take over. Done.

Gorgonops: yes I did. Another document that refers back to the application note I needed.

wow an 030 in a portable.

i wonder if you could make preform as well as the PB 170 :)

Doubt it. The 170 is 32-bit throughout.

Best I can do is LC. As itll be 32 bit shoehorned on a 16 bit bus.. however... there is a however.

I can fill the rest of the new address space as RAM, 32 Bit RAM.

Then if I can figure out how to tell Mac os to use the RAM at the end of address space instead of the beginning, it should increase the performance immensely.

Nothing I can do about exception and interrupt vectors which reside on low ram. But eh. Just got to tell the mac memory manager where "ram" is.

Im sure itll be some sort of extension or system enabler coded to do it. Leave interrupts and exception in low ram. Move heaps and system into high ram.

Bbraun would know more than I about this part.

I can fill the rest of the new address space as RAM, 32 Bit RAM.

Then if I can figure out how to tell Mac os to use the RAM at the end of address space instead of the beginning, it should increase the performance immensely.
68020 and greater Macs need a hardware widget to remap their RAM into a contiguous block (be that the special stripped-down remapping chip in the Mac II, the version of that built into the LC, or the onboard MMU in the '030 and later systems.) and the memory maps for the two modes are substantially different. (I/O gets shoved to the top of the 32 bit address space, etc.) This is why even "real" Mac II family systems can't use more than 8MB of RAM in 24 bit addressing mode, and why accelerators for 16 bit Macs that include onboard RAM sockets are generally limited to using anything above the 4MB mark for RAMdisks, etc.

I do recall reading about some software for Mac II's with full MMUs that would let you get up to 14MB of RAM in System 6 by doing some really, really horrible things; IE, copying the MacOS ROM up to RAM destined to be mapped at the 15MB mark, patching it so it worked there, and using the MMU to map RAM on top of the 24 bit address spaces for the NuBus slots. (I believe to use this software you actually had to rearrange your NuBus cards so they counted down from the top slot, and each card you used knocked 1MB off the maximum RAM you could have.) In principle I suppose you could do something akin to that and relocate the Portable's ROMs upward, but you'll still need an MMU.

(Edit: Someone undoubtedly knows what this software is; again, I read about it *ages* ago and am undoubtedly misremembering details.)

Virtual Compact from Connectix created a RAM disk, then assigned the Virtual Memory to the RAM disk.  It's a feature they took out of RAM Doubler, which would have been really nice.  There's no option to set which disk as the source for virtual memory, Virtual Compact is the only software I know that does that.

I stumbled across an Apple KB article that mentions the software I was thinking of: "Connectix Maxima". I gather from related googling that it didn't actually relocate the ROM, it stayed at the 8MB mark, but, depending on how many Nubus cards you had, gave you a second block of up to 6MB of RAM, with the proviso that a single program couldn't use more than 8MB-minus-system-overhead. (You could, for instance, load Photoshop or something into the bottom 8MB with a maximum allocation and then use the multifinder to load some smaller programs into the extended space you'd carved out.)

The fact that this exists does suggest that mapping another, say, 4MB onto a PDS card and using it to run MOAR programs might just be feasable. (Since unlike the compact Macs the Portable actually crams its I/O into a compact space, instead of smearing it all over the top half of the address bus.) You'll need something like a patched version of Maxima to do it, and I'd still say there's likely to be formidable problems with going over the 16MB mark for anything but a RAMdisk. (Unless miraculously the Portable's ROMs are 32-bit clean, as would have to be any software you'd like to run.) If you're *really* dreaming big I suppose you could talk about going with a 68030 (you'll need the MMU) and soft-loading a custom Mac II-caliber ROM, essentially converting the Portable into a PB140-class machine when the accelerator is enabled. I'm sure grafting the drivers from the Portable's ROM into a 32 bit clean ROM image is something BBraun could do over a long weekend. Go for it! :)

Yea, i thought about adding 32-bit RAM past the end of the 16MB bus. Problem is, the ROM obviously isnt 32-bit clean so i dunno how well it would handle a number past 16MB, it obviously wouldnt. So even if I did patch the OS with an extension to include RAM located past the 24-bit address space. 

it would probably barf. 

the Portable's ROM is the macintosh SE rom with portable specific addressing and drivers. Such as the .Backlight, etc.. 

I guess another idea is just like what was mentioned before, Add a GB of RAM, and use it only for a RAM Disk, put a coin cell battery on it so technically it becomes a "pseudo-physical" disk at that point. So in theory, what we have here is an SSD. 

But eh now we are getting all convoluted. 

First things first, get the RAM boards produced and sold. Right now there really doesnt seem to be a whole lot of interest in the RAM, but I havent extended the market to ebay either. 

Once those are sold, i will start work on the 020/030. Start off simple. clock doubled CPU/FPU only for now. 

I think its as good as its going to get, I decided to fill the entire RAM as a RAM disk, outside of 2MB. so 7MB RAM disk. and installed system 7.1 onto the RAM disk. 

running perfect, and its keeping on power-off so that means at least I designed the RAM card properly, and its booting system 7.1 really fast off RAM. 

, and its keeping on power-off so that means at least I designed the RAM card properly, and its booting system 7.1 really fast off RAM. 
Does the Portable assert that Standby signal that you mentioned?   It may not be worth the power savings, but the SRAM can maintain contents on 1V or something like that (mentioned in the datasheet).  It would require another voltage regulator and a three more CPLD pins and maybe a couple of switching transistors, but you could set the thing up to supply 1V to the RAM when the Standby signal is asserted.  That would reduce the power consumption while the machine is off.  Might also  need a largish capacitor to smooth over the transition between power supplies.

Not worth the effort. I was powering the card on my bench supply alone, and the ammeter was 0.00 so its power consumption at 3.3v is miniscule

So one cap and a diode would be all you need.  Place a large cap (like 1 farad 5v) across SRAM 5v and ground and a diode from 5v source to the cap/SRAM to prevent cap from discharging through the entire Portable.

For what purpose? Everything is working perfectly so far.

Not worth the effort. I was powering the card on my bench supply alone, and the ammeter was 0.00 so its power consumption at 3.3v is miniscule
Suspected that might be the case.  SRAM really uses tiny amounts of power.   Still, can't help thinking of unnecessary "optimizations".  :)

Also, not sure if running them on a 1V Vreg would save much power even if the chips used more current.   Since simple Vregs lower the voltage in part by dissipating power resistively to get to a lower voltage, switching from 3.3V to 1V might just move the power consumption from the SRAM chips to the 1V voltage regulator.

My thoughts exactly. Switching regulator would help here, but thats too convoluted for a RAM card.

I will employ switching regulation directly off the battery for the accelerator card tho. When system is in shutdown, the SMPS is off with it.

You used it primarily as a RAM disk, but 100% of it can be used as regular RAM, correct?

I'm 99.99% sure that it can, but I want to be certain as that .001% is bothering me :) .

I will definitely get one of these.

c

yea. I chose to go RAM disk to make sure the RAM was good. 

This Portable Ram Max out card is awesome... i want one for my 2 portables.

My 5120 and 5126.

the 5120 already has a stock 1meg ram card in it.  The 5126 has no ram expansion only one meg ram onboard.

i need at least 2 megs of ram to run 7.1, ( pretty much my favorite OS )

So i will move on one Ram Card, $80 bucks as soon as i get the cash.  And i don't mind getting a little cash back in circulation with mike

Getting him some R&D moneys paid back.

i want one, possibly 2

then i can finally play with my portables.  [:)] ]'>

Backlit needs the /AS jumper. Without it it only sees 5MB. with it I can get all 8MB.

However there is an odd bug. When an application goes into expanded RAM the backlight flickers on and off rapidly with RAM accesses.

If I dont use the /AS wire and cap it at 5mb its perfectly fine.

But my /AS wire was a horrendously long clip lead plus I didnt have /DTACK hooked up either, so that could have been an issue.
Did you ever solve this? Backlight flickering when you access memory above 5MB? I would doubt that the lack of a /DTACK signal has anything to do with it - if the CPU needed /DTACK but it wasn't present, it should just freeze up, or else there might be some external logic that forces a bus error. Either way I think you'd see major software problems, not just a flickering backlight.

My guess is you may have bus contention. Something else is mapped into the memory region above 5MB, and now your RAM card and that something else are trying to drive the bus at the same time. This causes a sudden increase in the power supply current, making the supply voltage droop, and causing the backlight to visibly flicker. The only problem with my theory is that if you had bus contention, you should also also see noise/bad data on the bus, leading to software errors. Maybe the new RAM chips just have more powerful drivers, and overwhelm whatever other thing they're fighting with.

Very nice work!

it was a bad RAM IC. I swapped the RAM, and all is well.... This same card was giving me weird issues as well on the non-backlit, memory manager errors when going to about this macintosh. 

But the Backlit is capped at 8MB, while the non-backlit is at 9MB. My guess is the last MB of RAM is occupied by the backlight controller. 

Replacing the RAM IC fixed it all. My new PCBs will have a 7MB cap jumper. to disable the last meg of RAM for the backlit portable, if it becomes an issue. 

I bought one of these off ebay! Thanks! It works great! :) My 5120 has been entirely recapped by a genius at the soldering gun, waiting on a cable to mount the scsi2sd, with the 8 megs of ram, and working on a new battery solution. I hate the Macintosh (in general) but this baby is just .. way, way too cute. And it looks nice next to the IIc+.

Only thing is, system 608 crashes when trying to access "About the Finder". I got worried for a minute after I installed the card, but after booting 701 and 71 and seeing the entire 9 megabytes the problem definitely lies within system 6. Is it just a case of "There's no way a portable can have 9 megs of ram, I shall now crash the Memory Manager" (rhetorical question I guess, as I won't be running 6 anymore)

Run it without the memory expansion and set the memory control panel and then boot with extensions off. I'm sure there is something in the extensions causing problems.

Then install the memory expansion back in and see if the boots with extensions off and then extensions on.

You need some sort of system enabler. Been there with the same issue.

If you had a version of Virtual Compact that run on Portables (maybe it's hackable?), you could stuff as much RAM on that thing as physically possible.  All the extra RAM-as-RAMdisk would then become virtual memory storage.  So there'd be almost no hit on performance, and you'd have a butt load of RAM.

None of these work on the portable. which is 68000
Sorry.  I did not realize that they had that limitation.   But thinking on it, I realize I've never tried them on anything earlier than a 68030 based machine.   Well, poo.

Yea, well it happens. The problem with all the testing software is they either run full 32-bit addressing, or at the minimum require CFM-68K which again requires an 020+ one of the biggest reasons I want the 020/030 running in my portable. 

Seems the best way for me to test is just create a 100% RAM disk to utilize maximum RAM, copy all my HDD contents over and boot from RAM. if everything is ok without bombing out there there, then its a good bet that the RAM is ok. 

So far out of the 12 I just assembled, I have 1 that has another bad RAM IC. 

Seems the best way for me to test is just create a 100% RAM disk to utilize maximum RAM, copy all my HDD contents over and boot from RAM. if everything is ok without bombing out there there, then its a good bet that the RAM is ok.
Probably so. I can't think of a better option.

So far out of the 12 I just assembled, I have 1 that has another bad RAM IC.
That doesn't sound too bad. Probably higher than the failure rate ought to be, but 1 in ~50 sounds managable. Much better than the possible 1 (or 2) in 12 at the beginning.

mp.ls