This is a continuation of the SMD ROM Replacement for Apple ][..." thread that was started 6 months ago. What started off as a simple way to have both Applesoft and Integer BASIC ROMs in a single, switched SMD Flash chip has blossomed into a full fledged multi-bank, in-circuit programmable device with multiple fonts, instant DOS/Language Card loading and much more. More importantly, versions for the Apple IIe and Apple //c are already in the design stage.
So it seems appropriate to give ROMX its own thread now. And before we get too locked in on the new versions I thought it would be nice to reach out to the community for comments/suggestions for the future of this product. Currently we have 3 images for the IIe : Standard, Enhanced, and Senior PROM. As we found out previously with the first product, we know there are many others out there. Perhaps you made a custom one that others would enjoy. Please let us know what you have or what you'd like to see. Ideas can be discussed here and submissions made to Dean at theRomExchange.com. A free ROMX board to the best contribution!
I would want to see the following ROM images:
-Senior PROM
-Apple-1 emulation
-DOS 3.3 auto start (ProDOS?)
-A flashable EPROM with the user's favorite application (à la Quikloader card)
How would the Standard and the Enhanced configurations co-exist?
Each type comes with a different version of CPU and Character generator.
(how do I delete my posts?, there is not a 'delete' in the edit mode....)
I personally do not feel that a split thread is required here. The main ROMX thread is still very much contextual. I frankly am unsure on the purpose of this second thread.
That's OK. I guess you figured out that this will require a 65C02 but that both Char Gen images will be available as Text ROM banks.
Mostly because the ROMX is no longer tied to the Apple ][, Apple II+ and EuroPlus.
Almost any program that is less than 12K (15K for the ROMXe) and loads completely into RAM can be uploaded to a bank on the ROMX. It just needs some trivial loader code added to move it from Flash to RAM on boot. We do that now with several existing images. If the program uses F8 Monitor calls, subtract 2K and include that in your image.
Larger programs, BASIC programs, and other custom applications can also be stored in one or more banks of the ROMX but it is a little more complicated. Full details will be added to the API Guide as time permits. I'll also create an Image Template that will make this easier.
It's official!
ROMXe will have Michael Guidero's ROM eX image on board. Yes, the naming convention is going to be a bit confusing. His original project required giving up either the Diagnostics or Cassette routines. With ROMXe you can always switch back to the stock ROMs to use these features. Best of both worlds.
And our ROMXc units will ship with both ROM4X and ROM5X images as well. Thanks Michael!!
HAPPY NEW YEAR EVERYONE!
Our resolution for 2021 is to encourage more of you to contribute images for the ROM Exchange. That’s why we put Exchange into theRomExchange.com. We know there’s lots of other images out there that the community would love to try out. And more importantly, we want to see home grown images with older programs or new creations from the programmers out there.
To that end, we’ve created a tutorial for ROMifying code and a companion disk with templates for making this extremely easy. Take your favorite small utility or game and instantly move it into ROM with three easy steps. You don’t even need a ROMX board to go through the tutorial and create images that you can run from a Language Card/16K RAM Card or with your favorite Apple II emulator. Of course, having them instantly available upon power up is what ROMX is all about. Things like our Diagnostics and Memory Tester images really prove the power of ROMX, not to forget instant loading of DOS and LC. Now we just need more options to load into our empty banks!
Go to www.theromexchange.com to download the free tutorial and .dsk image. Let’s have fun in 2021!!
Jeff and DeanJD Micro
Hello Jeff,
I need a reminder: Is the original rev of the ROMX that I have compatible with clone systems that use EPROMs, or is it only compatible with factory ][/][+ ROM boards? IDR if you added anything to autodetect this, and allow it to work with both.
Most of the clone boards that use 2716 EPROMs (e.g. those from ReActive Micro) have an inverter somewhere to correct the polarity difference in the INH line. You can use ROMX with these motherboards by bypassing the inverter, usually with a jumper inserted into the socket instead of the chip.
Any docs on how to do this? I wish to test a clone board that usees EPROMs witht he ROMX.
On many clones the inverter is a 74LS02 NOR gate chip. It's almost always around E2 like on my blue Unitron board. Your mileage may vary.
P4105561.jpg
In general, in order to make a 9316 (or anything that's emulating a 9316) work in a 2716 socket you need to invert pins 18 and 21.
On a 9316 pin ir is Chip Select 1 active high, and 21 is Chip Select 3 Active low, which is generally tied to pin 20, Chip select 2 active low.
On a 2716 pin 18 is Chip Select active low, and pin 21 is Vpp, the programming pin, but in general operation it needs +5V (or active high).
The 74LS02 inverts the required signals for chip select so that you can use 2716 EPROMS in a II+.
So you can actually use a simple inverter chip like a 7404 on a small breadboard and an adapter socket at the D0 chip. Just interrupt pins 18 and 21 and feed them through the inverter and then back to the ROMX. Probably the easies way to do this is to use two stacked sockets with the appropriate pins clipped and some small jumper wires.
With ROMX, the only line you need to worry about is the INH signal on pin 18. In the original Apple II design this is an active low signal. That is, it will normally be high unless a peripheral card is trying to disable the ROMs. But 2716's use this pin as a chip enable so it needs to go low when accessing the ROM. On clone boards there will be an extra chip to invert this signal, as shown above by baldrick.
But to make ROMX work on these motherboards, the solution is not to add another inverter and more socket adapters. Just trace the signal through the extra motherboard inverter and modify that chip at its socket to bypass the inverter. You'll need to figure out which pins are involved, but the easiset way would be to bend out the pins of the IC so that those pins don't go into the socket. And add a small jumper wire instead to the socket pins that are left unplugged.
I will post photos of the board when I am able. I see a 74LS00 (quad two inout NAND gate, versus 74LS02 quad two inout NOR gate), so it may be serving that function.
One of the nice things on the beltron is that it has 64K as 4164s, so I would like to brin it back to life. It also has a very strange choice for the 6502: MOS C01437706. I frankly do not recall running into this variation before, but it appears to be a 6502B. I do not know why MOS would give it such an odd part number, nor is there a datasheet specific to it that I can find. The only reference to it seems to be on http://visual6502.org/ ...
Timelord wrote:
baldrick wrote:
On many clones the inverter is a 74LS02 NOR gate chip. It's almost always around E2 like on my blue Unitron board. Your mileage may vary.
For future reference, it would be nice if you can trace which pin of the chip goes to pin 18 of the ROM sockets. And if there are any other gates in the chip being used.
I will add it to my list. Right now, the camera on my phone does not work, so photographing this stuff is more convoluted than would ordinarily be the case. Putting a logic probe on it and tracing the pin isn't a problem, just a workbench space issue. I am disassembling some parts KBs for switches and making other Kbs functional at present. I desoldered and entire longstem today (minus the broken parts), so that should last me a while, but I have a black switch //e KB to do next.
I had to fabricate a switch using a longstem switch and the plunger from a Beltron switch to use for the Beltron KB numpad-7 key. if I had thought about it more, i could have used the reset key, as it has almost the same plunger, but instead I disassembled the switch, changed it out, did continuity checks, soldered it in, and now at least I have the Beltron working, albeit with a 48K RFI mainboard. I need to get the Beltron mainboard to come back to life at some point, but no schems means full logic probes for everything, and right now it does absolutely nothing. No beep, no video, nothing.
It could just be the ROMs, which is why I am going this route first. If I had another (working) mainboard that used 4164s and ][+ style slots/KB, I would just put the Beltron board into the parts bin, and compare it to the working unit in me spare time. Alas, eople want stuid money for extremely common clones right now. Anyway, if I isolate that NAND gate 74 series chip to be the fli mechanism, I will let you know.
It does not help that I need to replace my oscope. It'd frankly be nice if this was an onboard feature of a future ROMX PCB.
There was a plan initially to have a jumper to set the INH polarity. But we ran out of pins on the CPLD. Since working on the //e and //c versions however, I have found some new tricks that would allow this. There is also the possibility of adding the RTC to the original ROMX for a new ROMX+. After the new boards are finished we will see if there is enough demand for this.
ROMXc.jpg
ROMXc Chop.MOV
Here is a link to the facebook post which contains Jeff's video (it wasn't playing for me from the forum).
This is super exciting for ROMX and we're hoping that users will ROMify their favourite games/apps and share for others to install on their ROMXc/ROMXe :)
Work on the new ROMXc and ROMXe continues while we finish beta testing. The latest accomplishment is an image to load ProDOS into any of the banks. With a little help from Peter Ferrie (aka qkumba) we can now instantly load ProDOS or DOS 3.3 along with any System ROM as soon as the computer is turned on. And thanks to John Brooks that includes ProDOS version 2.4.2. The template will make it quite easy to build almost any version you want.
Currently the image loads BASIC.SYSTEM from ROM as well so you're dumped into BASIC ready to go. It will also be quite easy to have ProDOS load with a file selector or even your favorite application. And our clock driver is built into the image so as soon as you get the BASIC prompt it's ready to time stamp any files created or modified.
I'm also working with Peter to include ProDOS support within the firmware itself so you can load images from either DOS or ProDOS disks. Be on the lookout for a review of ROMXc from one of our favorite Apple II enthusiasts.
The ROMXc for the Apple //c is now available from ReActiveMicro.
We're also posting a number of new images for this board on theRomExchange. Now it's full speed ahead on the ROMXe for the Apple //e which we hope to launch soon. Thanks again to our beta testers and others who contributed ideas for this new product.
Thanks to Javier for this excellent review:
First Look at ROMXc
Another nice review.
BTW, we have made changes to allow ROMXc to work with the ZIP CHIP. All production units are being shipped with this enhancement. Currently we just allow it to boot with the ZIP CHIP but in a future firmware update coming soon, you will be able to control the speed on a bank-by-bank basis. So set Games to run at normal speed; other software to run at full speed or somewhere in between!
I'm assuming on a ROM255 //c you would still need to break the one jumper and connect the other on the motherboard to accommodate the ROMXc, correct? I'm somewhat interested in it. But this is my childhood //c, so I'm hesitant to do the mod. I know it's technically easily reversible. But I can't bring myself to scratch off that jumper pad. Damn nostalgia.
Technically, you don't have to do the mod. But then of course the later revision ROMs would not work.
However, the 32K ROMXc images like Choplifter, ProDOS, etc. would still work.
That's what I was afraid of. I would like a later revision bios so I can use smartport on the external drive connector with my floppy emu.
I wonder if instead of cutting W1, you could suck the solder out of the vias on each end of it. It probably wouldn't work with my luck though.
Sucking out the solder won't do, but drilling out the via (only need to do one end) would work and would be almost invisible. Just make sure to check with an ohmmeter when done.
Or of course you could also cut the trace on the bottom of the board so it would not be visible in normal operation.
ROMXc now works with the ZIP CHIP.
As an interim solution for using ROMXc in ZIP CHIP enabled machines, we have added the hardware and minimal firmware support to allow these two devices to coexist. In a future firmware update we will add a command to set the ZIP CHIP speed on a bank-by-bank basis. This will let you determine how fast the computer runs when a given bank is launched. Here is what the current solution looks like:
ROMXc ZIP.mov
Here is a preview of the ROMXc Version 0.994A firmware. It will be up on our website as soon as it's been beta tested.
ROMXc 0.994A.mov
Thanks to a lively discussion on the ROMX slack channel, the next firmware release will now respect the ZIP CHIP disable feature (hitting esc key within 2 seconds of power on). Thus if there is no explicit &A command to set the speed, when the ROMX menu exits it will leave the ZIP CHIP enabled unless the esc key was pressed earlier.
Does anyone ever run their accelerator (including all //e boards) at anything other than DISABLED or FULL SPEED?
I have a CV777 Apple II (or is it a II+) clone. I tried installing the ROMX (without the text ROM), but only getting this video signal so far.
The system works fine with the standard ROM installed.
20210722_151952.jpg
I have read about some clones need a modification, but not sure whether that applies, as there is no extra chip at that location. I've attached someone elses picture of my motherboard (it's missing some ROM chips but it's a cleaner picture than my motherboard, which is still in the case).
https://preview.redd.it/yc4uneommj271.jpg?width=4000&format=pjpg&auto=webp&s=f48ab069aca9aeb8e503b0b07f8639321051362c
yc4uneommj271.jpg
My board:
20210722_152347 (Small).jpg
I'm not savvy enough to work much more out, like knowing if my board needs the modification mentioned in this thread. Any tips?
Maybe my clone is just not compatible. I tried with removing the 16kb memory card (it doesn't have the extra ROM on it), as well as the 80 column card and disk controller removed too, but no different.
Can't tell for sure without a hi-res image, but it looks like your motherbaord is similar to the Unitron.
If there is a 74LS02 chip in location E2 (just to the left of the topmost RAM chip), then you should be able to make this change:
Unitron
Apple II Plus, Rev 7 RFI Motherboard
The Unitron motherboard is designed to use 27xx type EPROMS and corrects the INH pin polarity by adding a 74LS02 NOR gate chip at location E2. Aside from power and ground, only two pins on this chip are used: 8 and 9. To work with ROMX, you need to remove this chip and add a small jumper between these two pins. This could be done using a 14-pin DIP header or component carrier. Or you can just insert a small jumper wire into the two socket pins.
Thanks Jeff, there is a 74LS02 chip in E2 on my board!
I'm not great with electronic equipment, but from what I understand from your post, I can just:
1. remove the 74LS02
2. jam a wire in the socket between pins 8 and 9
3. Do I reinsert the chip, and if so , do I bend the pins 8 and 9 out?
I know this is a stupid question, but how are the pins numbered (eg is PIN 1 at the keyboard side, or the back of the case)
eg: is this correct:
Back of case
8 7
9 6
10 5
11 4
12 3
13 2
14 1
KBD side
I also checked the ROMX website and only saw something about the H11 chip (that row is labelled "G" on my board) - and I don't have a 74LS04 in there.
Thanks for your help! I've also got a ROMc in the mail coming from Dean (I'm in Australia too), and will report back whether it works with a Applied Engineering 1Mb RAM express II card installed. It might be a bit tight to fit in.
Yes you just need to do steps 1 and 2. Do not re-insert the chip.
And the pinout is as you described. There's also a dot that denotes pin 1.
Let me know if this works for you. It's possible they used different pins of the LS02 on your motherboard. But you won't do any harm in trying this.
No, it didn't work.
I tried both with the chip removed with pins 8 and 9 connected, as well as with just the chip removed and still get the same image on the monitor.
I'll take a photo of the motherboard and post it later.
Thanks anyway
OK. Most likely, they used different pins on the LS02. If you can visibly see a trace going to one of the pins (other than 7 and 14), then that will tell you what pins to jumper. If the trace is on the back of the motherboard you can use a multimeter to figure out which pins are used. On pin of the LS02 will connect to pin 32 of each expansion slot. The other pin will go yo pin 18 of each EPROM. Once you find one pin, the other will be next to it on the LS02 and these are the pins to jumper.
I pulled the board, and checked the traces. Found pin 5 goes to the expansion pin 32 (INH).
However, could not find any continuity between any of the pins and any of the 24 pins on the EEPROM chips (I hope I'm probing the right chip - I tried each of the ROM chips, whilst the chips still seated)
Back of case8 79 6 - does not connect to expansion pins or EEPROM pins10 5 - to expansion pin 32 (INH)11 4 - does not connect to expansion pins or EEPROM pins12 313 2 - to expansion pin 14 (CS2)14 1KBD side
If pin 5 goes to the INH line, pin 4 should go to pin 18 of the EPROM. Pin 6 should connect to either pin 5 or ground.
Might need to see some close up pics of these chips; front and back side.
As a quick test, try jumpering pins 4 and 5 of the empty socket. That should work.
Connecting PINS 4 to 5 didn't work for me.
I'll try probing PIN 18 of the EEPROM and see if it connects to any other chips
Here are some photos.
I also tried to label with colour, where some of the traces run, and on one photo has a picture of both the front and back of the PCB.
BLUE - PIN 6
YELLOW - PIN 5
ORANGE - PIN 4
RED - PIN 2
motherboard-back-labelled.jpg
hange.
74LS02 in E2.jpg
motherboard-1.jpg
motherboard-2 labelled.jpg
motherboard-back.jpg
Still hard to tell from the photos. But it looks like they are using 2 of the gates inside the LS02. And not just as inverters.
I believe pin 4 of the LS02 goes to pin 18 of the EPROMs. Can you confirm? If so, then you can try this:
FIRST REMOVE ALL EXPANSION BOARDS. Then replace the 74LS02 in its socket but bend out pins 5 and 6 so they do not go into the socket. Then you need to ground these pins. If you can connect to pin 7 of the chip that should work. If you have a multimeter, check that pin 4 (still in socket) is now greater than 3,5 volts. Then ROMX should work.
No PIN 4 doesn't go to pin 18 of the ROM chips
I probed every PIN on the 74LS02 to the ROM and expansion slot, and found that there are more pins active than the eye revealed.
PIN
2 -> PIN 14 of the expansion slot (=A12)
3 -> PIN 15 of the expansion slot (=A13)
4 -> can see a trace running out of it, but not connected to the ROM or expansion slots
5 -> PIN 32 of the expansion slot (=INH)
6 -> can see a trace running out of it, but not connected to the ROM or expansion slots
7 -> PIN 12 AND PIN 18 on the ROMs (pins 12= GND, 18=CS2)
14 -> PIN 25 of the expansion slot, and PINS 20, 21 and 24 of the ROM
(Slot pin 25 = +5V), (ROM pins 20= CS1, 21 = CS3, 24 = VCC)
I tried shorting out PIN 5 and 7 - no difference, still the vertical bars on the screen
I tried shorting out PIN 4 and 5 - no difference, still the vertical bars on the screen
booting with the LS7402 chip installed - no difference, still the vertical bars on the screen
booting without the LS7402 chip installed - no difference, still the vertical bars on the screen
For interests sake, I removed the ROMX, and put back the D0 ROM and the chip next to it, and kept the 74LS02 chip disconnected, and I get the same image on screen. Replacing the chip obvious restores the whole computer back to the original state, and it boots normally.
So I think the problem is isolated to "undoing" the job of the 74LS02 chip.
The chip in the slot is labelled RIFA R414, RD6402N if that helps
I've run out of ideas, should there be other chips I need to probe to see where PINS 4 and 6 from the 74LS02 run to?
Can you double check the info above? Either you're counting the pins wrong or the chip is not really a 74LS02.
Having pins 2 and 3 of an LS02 connecting to A12 and A13 makes no sense. Pin 7 = GND and pin 14 = +5 is normal.
If pin 18 of the EPROMs are truly GND, then we'll have to address that (they need to be high).
My assumption that pin 4 of the '02 connected to pin 18 of the EPROMs was based on what looked like the path shown below. The placement of the two vias on the backside strongly suggested a connection between them on the top of the board. But I cannot be positive unless you can confirm.
INH.jpg
I hope I've numbered the pins correctly; pretty sure I have though.
There's no continuity between pin 4 (which you labelled and I counted as pin 4 too) and the eeprom. Or on the trace you drew out.
I suspect that you may be right that the chip is not actually a 74LS02. The PCB is labelled such, but the chip is a RIFA R414 RD 6402H.
The other chips on the PCB labelled as 74LS20 or 74PS283 have have those same markings on the actual chips too.
What is interesting is that when I put all my original chips back in, I can still boot properly if I bend pins 5 and 6 out of the chip, but any combination where pin 4 is not connected, and it brings up the same error as before. So it think that pin is the key.
Should it be connected to the 74LS138 chip that is replaced by the ROMx? There is connection between PIN 4 of the 74ls02 and pin 5 of the 74ls138.
OK. Starting to make a little more sense here. The only question I still have is that you said pin 7 of the '02 (GND) connected to pins 12 AND 18 of the ROMs. Pin 12 should be GND and pin 18 (CS2) <could> be grounded in this motherboard based upon the other changes. But I see a trace on each ROM chip pin 18 which would not be the case if they just wanted to ground them. Also you claimed pins 20 and 21 of the ROMs were tied to pin 24 (+5) but again I see traces there and if anything they would be tied to GND).
Pin 4 connecting to pin 5 of the LS138 would also make sense if they chose to use that as the inverted INH line, which does connect to pin 5. That would also explain your results when pins 5 ans 6 were left out of the socket. If A12 and A13 do connect to the '02, my guess is that this may be a way to use 3 2732 chips instead if the 6 2716 chips (like the board you showed earlier).
So if this is all true, we need to verify the following (compare to the standard Apple II schematic below):
1. Do the LS138 outputs (pins 7-13) connect to the ROMs pin 20? If not, do they go to pin 18?
2 Are the ROM pins 21 connected to GND or pin 20?
I believe the solution here might require a slight modification to the ROMX board if you're willing to do that.
ROMs.png
I'll do some testing on the weekend, as my ROMxC arrived today! This is my main machine (and my childhood computer)
I can confirm that it works with the Applied Engineering 1mB RAM card installed. I have the later version of the //c, with the expandable RAM slot, and have already been running MG's ROM4x (which Dean made for me). There is just enough room to fit both cards in, but not enough room if the MAP ROM override adapter is installed.
My //c now has a wdrive (the onscreen boot menu still appears, so it works with ROMxC too), 1Mb RAM, and a bluetooth joystick adapter. And I did find a PAL colour adapter, so finally has colour after waiting 34 years :)
I'll report back on my progress with the ROMx on my clone.
The only question I still have is that you said pin 7 of the '02 (GND) connected to pins 12 AND 18 of the ROMs. Pin 12 should be GND and pin 18 (CS2) <could> be grounded in this motherboard based upon the other changes. But I see a trace on each ROM chip pin 18 which would not be the case if they just wanted to ground them. Also you claimed pins 20 and 21 of the ROMs were tied to pin 24 (+5) but again I see traces there and if anything they would be tied to GND).
Pin 7 of the 74LS02 has a continuous beep on my multimeter with PINS 12 and 18 of the EPROM. It gives a brief beep (not sustained) to PINS 20,21,24
1. Do the LS138 outputs (pins 7-13) connect to the ROMs pin 20? If not, do they go to pin 18?
ROM PIN 18 - continuity with LS138 PINS 7-12, 16
ROM PIN 20 - continuity with LS138 PINS 7-12, 16
ROM PIN 21 - continuity with LS138 PINS 7-12, 16
(I'm testing with all the EPROMS installed in the sockets and the LS138 in socket - is that the correct way to do it, or should I remove all the chips)
2 Are the ROM pins 21 connected to GND or pin 20?
EPROM pin 21 - continuity with EPROM pins 20 and 24 (continuous beep with multimeter)
EPROM pin 21 - and EPROM pins 12 and 18 (just a brief beep with multimeter - I don't know what it means if it doesn't sustain the beeping in continuity mode).
What did you mean by:
ROM PIN 18 - continuity with LS138 PINS 7-12, 16
ROM PIN 20 - continuity with LS138 PINS 7-12, 16
ROM PIN 21 - continuity with LS138 PINS 7-12, 16
Something is not right. You have the EPROM enable pins all connecting to either GND or +5. At least ONE of them must connect to the LS138 outputs.
So first of all, your continuity checker should give a continuous beep when there is a connection. A short beep means there is some circuitry between the leads but not a connection; so ignore those. And you can test with the 138 back in its socket.
Start with the LS138. Pins 7, 9,10, 11, 12, and 13 should each connect to only one of the ROMs. So see if there is continuity between pin 13 of the '138 and pin 18, 20, or 21 of ANY of the ROMs. If you find one, you should be able to trace the other ROMs to a corresponding pin on the 138.
Sneak Preview of the new software for ROMXC and ROMXe:
ROMX software 995r.mov
Pages