Thanks Brian,

I ordered both boards from oshpark and will build them soon. I
appreciate the response and your work on the adapters.

On Thu, Nov 16, 2023 at 01:15:17AM -0500, Brian K. White wrote:
> On 11/15/23 16:29, runrin wrote:
> > Thanks for the info Brian, I really appreciate it.
> > 
> > My plan is just to pop the ROM out when I need to reprogram it. I'm
> > actually more comfortable unscrewing the back from the system than
> > popping out the option ROM cover anyway, since the brass inserts are
> > probably more robust that the tight plastic snap on the back panel. It
> > freaks me out every time I pop that thing open :P
> > 
> > A few Qs:
> > 
> > 1. It seems like pin 27 (/CS) on the system ROM is normally pulled low by a
> > CPU read. /CS on the EEPROM should be fine if I just jumper /CS_IC to
> > /CS_BUS and skip the R2 pullup, right?
> 
> R2 disables the chip when REX is connected.
> 
> With a jumper installed, the bus overrides R2 and the chip works like a
> normal rom.
> 
> With the REX wires installed, and the two wires connected to each other in
> the option rom compartment, that's just another form of jumper. The bus
> overrides R2 and the chip works like a normal rom.
> 
> With the REX wires installed, and /CS_BUS wire connected to REX TP1 and
> /CS_IC wire unconnected, R2 keeps the flexrom chip always disabled so as to
> never conflict with the REX. When the bus tries to enable the main rom, the
> REX responds instead.
> 
> If you want to hard-code everything and save a few cents, you can omit R2
> and solder bridge /CS_BUS to /CS_IC, and the result is like an ordinary rom.
> 
> R1 still allows you to write to the chip by being a pullup instead of a hard
> trace. If you build the board normally with the /CS pins and R2 populated,
> you have to install a jumper on those pins for programming anyway, so a
> solder blob is the same. It just means you can't use the REX software main
> rom feature.
> 
> To program, if you have a SOIC test clip, then you can just use that and JP2
> doesn't matter. If you don't have a SOIC test clip, then build the matching
> programming adapter and install a jumper onto JP2. Remove the jumper when
> not programming.
> 
> The ALE pin is just a pin in this case. It's not really ALE, just a pin that
> the programming adapter uses to route pin 27 from the programmer ultimately
> back to pin 27 on the eeprom, but using pin 23 along the way because of
> having to work around the non-standard main rom pinout.
> 
> The wikipedia page for the 8085 has a reasonable high level explanation:
> "The 8085 is supplied in a 40-pin DIP package. To maximise the functions on
> the available pins, the 8085 uses a multiplexed address/data (AD0-AD7) bus.
> However, an 8085 circuit requires an 8-bit address latch, so Intel
> manufactured several support chips with an address latch built in. These
> include the 8755, with an address latch, 2 KB of EPROM and 16 I/O pins, and
> the 8155 with 256 bytes of RAM, 22 I/O pins and a 14-bit programmable
> timer/counter. The multiplexed address/data bus reduced the number of PCB
> tracks between the 8085 and such memory and I/O chips."
> 
> Basically A0-A7 and D0-D7 both use the same 8 physical pins, at different
> times. When ALE is high, those pins are address, when ALE is low, those pins
> are data.
> 
> Basically the low 8 bits of the bus to be used for both address and data at
> different times. When ALE is high, AD0-AD7 are A0-A7. When ALE is low,
> AD0-AD7 are D0-D7.
> 
> Why they bothered to route that line to the main rom and to the optrom
> sockets when those sockets have full normal separate non-conflicting address
> and data pins I don't know. You can use a bog standard 27C256 in both places
> (with the pinout rearranged) and totally ignore the ALE pin. Other logic
> supplies the correct /CE /OE signals at least for those sockets.
> 
> -- 
> bkw
> 
> 
> 
> > 
> > I'll obviously still use the R1 pullup for /WE on the EEPROM. I was
> > considering using a DIP switch as a jumper for /WE to ALE instead of a
> > jumper if it fits in the case. That way I don't have to dig around for a
> > jumper every time I want to program the EEPROM.
> > 
> > 2. More of a technical question about the m100 architecture:
> > 
> > I'm curious if you know how ALE is normally being used by the CPU/system
> > ROM? It looks like it's being used by M1 and M25 as well. I haven't
> > encountered an address latch before, coming from mostly 6502 and Z80,
> > and I'm interested to understand its purpose.
> > 
> > Thanks again!
> > 
> > On Sun, Nov 12, 2023 at 10:05:44PM -0500, Brian K. White wrote:
> > > REX# does not provide any software main rom feature, only REX Classic 
> > > does.
> > > 
> > > You can use a FlexROM as just an ordinary re-writable rom to replace the
> > > stock one, but you would need to open up the machine to re-write the 
> > > eeprom
> > > (or flash, there is also a flash version). You just install a jumper on 
> > > the
> > > /CS pins which has the effect of just connecting the /cs pin from the bus
> > > directly to the /cs pin on the eeprom like normal.
> > > 
> > > To get a software main rom, you need a REX Classic.
> > > 
> > > You write a normal main rom to the chip and install it like normal, but 
> > > you
> > > connect two wires to the /CS pins instead of a jumper. Run the two wires 
> > > out
> > > to the option rom compartment, just fish them both through one of the 
> > > little
> > > holes where the compartment door tabs go. Keep track of which wire is the
> > > /CS_OUT one. Label it REX TP1 on the end in the compartment. That is the 
> > > one
> > > that connects to the bus, and that is the one that needs to be connected 
> > > to
> > > the TP1 pin on the REX, but don't connect it initially. Leave the other 
> > > wire
> > > disconnected. Don't put it on the TP2 pin.
> > > 
> > > Close up the machine. You don't need to go inside again.
> > > 
> > > Initially, connect the two wires to each other in the option rom
> > > compartment. IE with a short male-male dupont wire, or just any plain 
> > > solid
> > > wire that has a thick enough guage to stick in the female dupont wire 
> > > ends.
> > > This causes the machine to boot from the main rom on the flexrom inside 
> > > the
> > > machine.
> > > 
> > > Boot the machine and activate the REX by the usual CALL 63012
> > > 
> > > Find the y2k T102 main rom image from the flexrom wiki page, and like
> > > described there, make 2 copies of the Y2K fixed T102 main rom image, and 
> > > hex
> > > edit them to change the text displayed in the copyright banner in BASIC,
> > > just so that later you have a way to see which rom you are actually 
> > > running.
> > > 
> > > In REXMGR, hit tab until you get to the SYS screen, and load the priimary
> > > and secondary main rom images via TPDD the same as loading option rom 
> > > images
> > > or ram backup images.
> > > 
> > > Now shut the machine off and connect the /CS_OUT wire to the REX TP1.
> > > Leave the other wire disconnected. Don't put it on the TP2 pin.
> > > 
> > > Now boot the machine and go into BASIC and see the altered banner.
> > > 
> > > Going forward, you can keep reloading hacked versions of main rom images
> > > into either the primary or secondary slots, or both, since the flexrom 
> > > wire
> > > ends up acting as a 3rd ultimate fallback so you can always boot even if 
> > > you
> > > totally screw up both primary and secondary slots. You Can't break the
> > > internal main rom no matter what you do with the rex. The only way to edit
> > > the internal main rom is to open the machine back up and connect it to a
> > > programmer.
> > > 
> > > It's actually super convenient once it's set up. REX makes it a breeze to
> > > load the images, and having 2 slots means you can keep one slot sacrosanct
> > > and only hack on the other slot, so you can recover from borked hacks
> > > without even having to open the option rom compartment and switch the 
> > > wires.
> > > 
> > > Without a REX Classic, you can still re-write the rom, but only by
> > > connecting it to a programmer, so it needs the machine to be opened up.
> > > 
> > > The pics show using a SOIC test clip, but there is also a programming
> > > adapter pcb you can make instead.
> > > https://github.com/bkw777/aDIPters#flexrom_100
> > > https://github.com/bkw777/aDIPters#flexrom_100-programming-adapter
> > > 
> > > Or for the flash version, because the 28C256 eeprom is getting ridiculous
> > > expensive these days.:
> > > https://github.com/bkw777/aDIPters#flashrom_100
> > > https://github.com/bkw777/aDIPters#flashrom_100-programming-adapter
> > > 
> > > 
> > > -- 
> > > bkw
> > > 
> > > On 11/12/23 17:07, runrin wrote:
> > > > Hi all,
> > > > 
> > > > I've got a REX# in my m100 and was wondering if it was compatible with
> > > > the FlexROM, which I see uses some jumper cables to interface with the
> > > > original REX. The REX# doesn't seem to have the pins to connect those
> > > > jumpers.
> > > > 
> > > > My priority is changing the keymap for the m100 since I don't use
> > > > QWERTY, but being able to hack the ROM right from the machine with the
> > > > REX seems like a nice feature. I will likely order a FlexROM board
> > > > anyway, since it seems like the best option to swap my LH535618 system
> > > > rom.
> > > > 
> > > > Has anyone had any success getting the FlexROM working with the REX#?
> > > > Any tips would be appreciated. I don't mind hacking the REX# with bodge
> > > > wires if that's what I have to do.
> > > > 
> > > > If anyone has other suggestions for the best way to swap the rom, it's
> > > > unlikely I will be doing it regularly once I have my keymap working the
> > > > way I want, so I'd be open for suggestions there too.
> > > > 
> > > > Thanks!
> > > 
> > > -- 
> > > bkw
> > > 
> 
> -- 
> bkw
> 

Reply via email to