• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Booting Mac Plus right from ROM + some games!

techknight

Well-known member
Too narrow - like it doesn't fit in the 512K's motherboard's ROM sockets? Or there's a clearance problem, and something is bumping into something else?

I was looking at this too. With one extra connection to the CPU, I think it would be possible to make the Flash ROM reprogrammable from within a running system. So then you could alter the contents of the ROM disk, or do other experiments, without having to open up the Mac and pull the chips back out. I've got some parts on order to build one of these, then I'll try this to see if I can make it work.
The one thing that bothers me with hot flashing, you would have to shadow the ROM, no? because if I am not mistaken, there are constant calls in and out of ROM. you would almost need to disable ALL interrupts and calls during the flash, which means video would go bye bye. 

I would imagine if you write or re-arrange code while that block is running might cause a freeze/hang and poof done. 

any thoughts? 

 

unity

Well-known member
Would there not be room form a second board. One where this board sockets into a board with shifted legs. Basically just an adapter.

 

uniserver

Well-known member
You gotta hand it to BMOW, :)   So the 68000 can address 16 megabytes total.

Of corse that is all shared:

From what Steve said, he might have found a 3 meg hole, might be able to use it with some flash.

 
Last edited by a moderator:

uniserver

Well-known member
but if techkinght is able to squeeze 8 / 9 megs out of the portable.

the plus should have some more leeway,   Seems reasonable :)

 

techknight

Well-known member
the ROM is located in a different spot on the portable, than on the plus.

You would need to basically rip the heart out of the GLU and re-arrange the addressing, or bend a few lines, something. But you would also need to patch any and all direct addressing in ROM that there might be. 

 

uniserver

Well-known member
so do you think one would need extra logic to enable the chips for memory accesses in that memory range? Other then it just working, like what rob is doing.

 
Last edited by a moderator:

uniserver

Well-known member
i had to get out my calculator:

6291455

9437184

---------------------
3145729
 
oh i get it now :)
 
so ram stops here
4194303

rom picks up here

4194304

man that is tight, but that is assumeing we have 4mb ram installed.

so it would be here if there was only 2 mb's of ram installed

2097151

Ah ha.. 

but in order to make it easy to use you want to stay with in the Start and stop of the allocation.

4325375, witch equals 131071 for rom

and the next start not he map is SCSI

5767168

witch leaves a difference of 1572864, so what is that 1.57 megs? between start of rom and start of scsi.

 
Last edited by a moderator:

uniserver

Well-known member
68000-cpu-dip.png.2978e493d3fba6e50e2552f3960baac6.png


 

uniserver

Well-known member
I see there is 23 address lines, just trying to figure out how rob knew to grab lines 18 and 19, because they were not supplied to the stock rom sockets.

lol do i take 16 million and divide it by 23? and that is your space per line?   Ah never mind i'll leave it to the pro's.

 
Last edited by a moderator:

bigmessowires

Well-known member
The one thing that bothers me with hot flashing, you would have to shadow the ROM, no? because if I am not mistaken, there are constant calls in and out of ROM. you would almost need to disable ALL interrupts and calls during the flash, which means video would go bye bye. 

I would imagine if you write or re-arrange code while that block is running might cause a freeze/hang and poof done. 
I don't think you'd have to shadow the ROM, but you would need to make sure not to access it, which would mean disabling all interrupts while updating the first 128K of Flash ROM where all the Mac toolbox code lives. I don't think that means you'd lose video, though. If I recall, video is a separate circuit that somehow timeshares with the 68000, and it's not interrupt driven. So the update tool would allocate a bunch of RAM, read the new image data from disk into the RAM buffer, disable interrupts, copy the data from the RAM buffer to Flash ROM, then re-enable interrupts.

I see there is 23 address lines, just trying to figure out how rob knew to grab lines 18 and 19, because they were not supplied to the stock rom sockets.

lol do i take 16 million and divide it by 23? and that is your space per line?   Ah never mind i'll leave it to the pro's.
There's a thread about it at mac68k.info with some more of the details. Rob knew to grab A18 and A19 because they are the next two higher address lines from the ones that are already wired to the stock ROM sockets.

All the address lines taken together create a binary number, which is the memory address of whatever the CPU is accessing. The 68000 has 24 address lines*, which means there are 2 to the 24th power different possible binary numbers, or 16777216. That's the total number of bytes of memory the 68000 can possibly access. This address space is divided between RAM, ROM, chips like the IWM, SCC, and VIA, as well as some unused sections. There are other chips on the motherboard whose job is to figure out which chip should be activated, depending on what address the CPU has on the address lines. The beauty of Rob's ROM adapter idea is that these chips are already set up to activate the ROM for any memory access to addresses in the range 400000 to 4FFFFF (hex), even though the stock ROM only goes from 400000 to 41FFFF. So you can just drop in bigger ROM chips with a physical 32-to-28 pin adapter, and then it all just works. You couldn't necessarily do the same by trying to drop more memory into other unused regions in the address space.

400000 hex is 010000000000000000000000 binary. 4FFFFF is 010011111111111111111111 binary. The first 4 bits (A23-A20, the 0100 part) go to the address decoder - those chips on the motherboard I mentioned that figure out what to activate. That leaves the 20 lower bits that are actually connected to the new 1MB ROM socket: these are A19 through A0.

* actually the 68000 has 23 address lines numbered A23 to A1. There's no A0, but there are two other signals for "upper and lower data strobe", and the effect is basically the same.

Sorry for the long boring digression, please return to your normally scheduled Mac activities now. :)

 

CelGen

Well-known member
I'm looking at the photos and it really doesn't look like you need the board at all. Simply bending four pins up and soldering wires from point to point will do the exact same purpose so the 512K mod is still possible. You just need to be good with an iron.

Now mind you I can't look at the actual layout files and confirm this because he's using formats that Eagle can't make any sense of. Fffs.

 

bigmessowires

Well-known member
Yeah, it should be possible without any adapter board, but with a lot of wires. On the new Flash ROM chips, you'd have to bend up the A16, A17, A18, /WE, /OE, and Vcc pins on both chips, solder the matching pins on each chip together, then solder them to the CPU as well. The little adapter board certainly makes it easier. 


                             +------------+
                         A18 |1         32| Vcc
    +------------+       A16 |2         31| /WE
A15 |1         28| Vcc   A15 |3         30| A17
A12 |2         27| A14   A12 |4         29| A14

 A7 |3         26| A13    A7 |5         28| A13
 A6 |4         25| A8     A6 |6         27| A8
 A5 |5         24| A9     A5 |7         26| A9
 A4 |6         23| A11    A4 |8         25| A11
 A3 |7         22| A16    A3 |9         24| /OE
 A2 |8         21| A10    A2 |10        23| A10
 A1 |9         20| /E     A1 |11        22| /CE
 A0 |10        19| Q7     A0 |12        21| Q7
 Q0 |11        18| Q6     Q0 |13        20| Q6
 Q1 |12        17| Q5     Q1 |14        19| Q5
 Q2 |13        16| Q4     Q2 |15        18| Q4
GND |14        15| Q3    GND |16        17| Q3

    +------------+           +------------+
        27C512                   29F040B

ASCII art FTW
 
Last edited by a moderator:

CelGen

Well-known member
Legible to me.

Oh. I was under the assumption the new EEPROM chips were pin compatible to the 27C512, not the old ROM chips. Suddenly my idea of "burn to EPROMs and hack it in" doesn't work and I'd have to buy cruddy new EEPROMs.

 

bigmessowires

Well-known member
I looked at this a bit further, and there's a small difference between the Mac 128K/512K ROM socket and the Plus ROM socket (beyond the difference in space between chips on the motherboard). So even if you could cut the adapter board in half, it still wouldn't work in the 128K/512K. Fixing it should be pretty simple, but it means there can never be a universal adapter board that works in all those machines. There will need to be a version A for 128K/512K, and a version B for Plus.

 
Top