RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » ISA Flash Drive / EMS Board
ISA Flash Drive / EMS Board [message #3729] Sun, 12 November 2017 18:39 Go to next message
smbaker is currently offline  smbaker
Messages: 49
Registered: January 2017
Member
I had this idea while talking with folks in the micro-8088 thread, how cool it would be to have an ISA flash drive. I came up with this:

index.php?t=getfile&id=666&private=0

The design is basically Sergey's bank switching circuit from the Zeta-2, with four sockets. The Sockets can either be configured as 39SF040 Flash Devices or ASC6C4008 SRAM, depending on the positions of JP1 and JP2. This lets the board serve as either a bankable flash storage device, or an EMS board. I've tested EMS support using a modified version of the lo-tech EMS driver. The modification is minor -- this board disables banking on system reset until a page enable register is written, this being necessary to support the flash drive feature so we could stick a BIOS extension at the start of the flash. In addition to testing EMS, I've written a simple program to test that I can write and read when configured as a flash drive.

It supports a 64KB frame that is divided into four 16KB segments. Each segment can independently select any 16KB bank in the available memory devices. The page frame can be placed at any 64KB boundary of the x86 addressable space (E0000 being the usual place for an EMS board).

The next task is probably to write an int13 bios extension for the flash drive mode. This seems easy, especially if I chose to make it a read-only device -- just translate the C/H/S, and copy sectors, bank switching as necessary.

As to why develop a flash drive when we have more convenient devices such as XT-IDE and various compactflash boards available... why not? It reminds me of the Boca Start Card that I had back in the day.

No published schematic yet, but I'll get it put up on by blog sooner or later. There's some nits with the board, like the bracket mounting holes being uncomfortably close to the pads of the rightmost memory device.

Scott
Re: ISA Flash Drive / EMS Board [message #3756 is a reply to message #3729] Wed, 15 November 2017 17:23 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
The port arrangement for most EMS boards followed the Intel arrangement with ports at 2x8, 42x8, 82x8, c2x8. The byte is an enable bit and 7bits of bank number (in 16K's) giving 2MB. Bigger ones usually simply reported as n x 2MB cards, which is legal as you could have all your EMS boards at the same address since the top bit clear isolated that bank from the bus. Some software cared but very very little didn't just use the EMS driver properly (EMS 3.0 exposed the Intel port model but EMS 3.2 fixed it by abolishing some functions) so usually just non-DOS stuff knew too much.

It looks very interesting with SRAM in part because the Lo-Tech one is a scary surface mount design!
Re: ISA Flash Drive / EMS Board [message #3773 is a reply to message #3756] Fri, 17 November 2017 22:44 Go to previous messageGo to next message
smbaker is currently offline  smbaker
Messages: 49
Registered: January 2017
Member
I completed my Flash Drive BIOS extension, and configured the board to function as a flash drive, booting a 360 KB DOS 3.3 image. Flash Drive BIOS extension lives in the first 16 KB of the flash image, disk image lives in the remainder (in theory, should be able to use four flash chips for a ~ 2 MB flash drive, though at the moment I'm only using one chip). It's currently read only.

index.php?t=getfile&id=676&private=0

Re: ISA Flash Drive / EMS Board [message #3972 is a reply to message #3773] Sun, 17 December 2017 21:02 Go to previous message
smbaker is currently offline  smbaker
Messages: 49
Registered: January 2017
Member
I couldn't leave well enough alone, so I made an 8-socket version of the board:

index.php?t=getfile&id=738&private=0

As shown, I've jumpered it as EMS and added eight AS6C4008 for 4MB total. Unfortunately, it doesn't work very well! As the 5th, 6th, 7th, and 8th SRAM chips are added the system becomes progressively more unstable to the point with 8 chips DOS starts experiencing intermittent corruption of conventional memory accesses. While I buffered the data bus, I didn't buffer the address or control buses, and I'm thinking maybe I should have. Going to poke around a little bit more with it over Christmas break.
Previous Topic: SBC V2 unstable (memory)
Next Topic: multicomp IIc AS6C1008 [solved]


Current Time: Fri Dec 12 02:48:45 PST 2025

Total time taken to generate the page: 0.02944 seconds