


                         F l a s h C a r d




General
=======

  FlashCard is a PC/AT adapter card which puts a Flash EPROM into your PC. Such
  a Flash EPROM is like an ordinary EPROM but it's electrically erasable. Flash-
  Card can be used to substitute the bootrom EPROM on a network card, as for the
  processor it doesn't matter if the ROM is on a separate adapter card or on a
  network card. It's main features are:

	- Provides up to 128 kB of EPROM space, selectable in steps of 32 kB
	- Easy erasure, no need to buy a UV lamp
	- Easy in-system programming, no need to buy an EPROM programmer, and
	  to unmount the system's cover

  So you can use FlashCard for the bootrom if your ethernet card doesn't provide
  the ability to use EPROMs with 32 kB or more, or if you just want the ease of
  use.

  Included in this directory are Postscript files which contain the schematic
  of the FlashCard (schematic.ps), and the PCB layout for both sides of the
  board (layout.ps). All files in this directory including the Postscript
  files are copyrighted under the GNU General Public License by Michael Riepe
  <michael@stud.uni-hannover.de> and Gero Kuhlmann <gero@gkminix.han.de>.




Building the FlashCard
======================

  The layout of the printed circuit board (PCB) has been designed so that it's
  possible to build a complete FlashCard at home with just amateur equipment.
  However, due to the fine structures and the double sided design it's defini-
  tely not a beginner's project! To build the PCB it's recommended to use only
  high quality material. The file layout.ps contains a Postscript image of the
  PCB, which has been created with a maximum resolution of 1200 dpi. For expo-
  sing a UV sensitive board surface you should print this file on a laser prin-
  ter with a resolution as high as possible. A recommended minimum is 300 dpi.
  When printing the layout you should use a special film which holds the laser
  printer's toner well, which is heat resistant (so that it doesn't change it's
  size while going through the printer) and which does not block UV light. Nor-
  mal films for overhead projectors usually block UV light to some extent and
  should therefore not be used. Special films for exposing PCB's are available
  from electronic shops. Note that the PCB layout in the postscript file shows
  the component side flipped. This is intentional, because this way the printed
  surface of the film lays directly on the UV sensitive surface of the PCB,
  which gives a maximum accuracy when exposing the board.

  After exposing the UV sensitive surface and developing the image you should
  etch the board using a chemical which works as fast as possible in order to
  avoid it to inadvertantly affect the thin copper lines. I had the best re-
  sults using ammonia persulfate ((NH_4)_2S_2O_8), which is a relatively safe
  chemical. Also a special preparation using hydrochloric acid and hydrogen per-
  oxide produces good results, but that's very aggressive and therefore
  extremely dangerous. In any case, use extreme caution while handling any of
  the chemicals needed for etching! You do this on your own risk, and the
  authors cannot be held responsible for any personal damage whatsoever, either
  to you or any other third party. Especially, keep all chemicals out of the
  reach of children!

  Placing the components onto the board after drilling the holes is somewhat
  tricky because you need to solder some IC's on both sides. Since the heat of
  soldering can destroy even TTL IC's it is recommended to use sockets for all
  IC's. However, these sockets have to be accessible on the component side. This
  point is very important, so be careful when you go shopping for the parts.
  Usable sockets are for example those which have precision contacts. Regarding
  soldering you should carefully follow the following steps in order. Also con-
  sult the parts diagram in the file layout.ps (labeled FLASH Overlay) for
  proper placement.

    1.)	Insert small pieces of wire into the via holes and solder them on both
	sides of the PCB. The via holes can be identified by their round shape.
	They are also smaller than the other pads used for the components.
    2.)	Place the socket for U3 into place and solder all it's pins first on
	the solder side, then on the component side.
    3.) Insert all resistors and solder them on both sides.
    4.) Place the socket for U2 into place and solder all it's pins on the
        solder side. Only pins 2 to 9 of this socket have to be soldered on
	the component side as well.
    5.) Place the socket for U4 into place. Besides soldering all it's pins on
	the solder side you also need to solder pins 11 and 13 on the component
	side.
    6.) Place the socket for U1 into place. You only need to solder all it's
	pins on the solder side.
    7.) You can now continue with all other remaining parts (e.g. the capacitors
	and jumper blocks). They don't have to be soldered on the component
	side, just on the solder side.
    8.) Insert all IC's into their sockets.

  Finally, for completeness here is a list of parts required to build a
  FlashCard:

	No. parts	Part ID		Part description

	1		U1		29F010 (minimum speed 120 ns)
	1		U2		74LS245 (or equivalent high speed CMOS)
	1		U3		74LS688 (or equivalent high speed CMOS)
	1		U4		74LS08 (or equivalent high speed CMOS)
	3		R1-3		10 kOhms resistor
	2		C1-2		100 nF capacitor
	1		C3		10 uF/25V electrolyte capacitor (radial)
	2				20 pin socket, solderable on both sides
	1				14 pin socket, solderable on both sides
	1				32 pin socket
	7				2 pin jumper block
	1				Printed circuit board, minimum size
					103 x 34 mm (approx. 4.05 x 1.3 inches)




Configuration
=============

  Using the jumpers you can select different configurations for the FlashCard
  depending upon how much memory space you need and what base address you want
  to use. Consult the following table regarding the jumper configurations:

  Size		Base address	Jumpers to set

  32 kB		C800:0		J1,J3,J5,J6
		D000:0		J1,J3,J5,J7
		D800:0		J1,J3,J5
		E000:0		J1,J3,J6,J7
		E800:0		J1,J3,J6

  64 kB		D000:0		J1,J4,J5,J7
		E000:0		J1,J4,J6,J7

  128 kB	D000:0		J2,J4,J5,J6,J7

  Even though it's possible to also select other configurations using different
  base addresses, those can't usually be used because they are already occupied
  by the system BIOS and VGA BIOS in standard PC compatibles. You should also
  be careful to avoid using a memory range with is already used by a different
  card (like shared memory on a network adapter card).




Programming the FlashCard
=========================

  In order to be able to program the FlashCard you should NOT select any shadow
  ram in the system BIOS for the memory area occupied by the flash EPROM. When
  using the bootrom you won't get any speed improvement with using shadow ram
  anyway.
  You can use two ways of programming the FlashCard. First you can use the DOS
  program which is provided in the netboot package called flash.exe. It is
  currently only available as a DOS application. Direct memory access is not
  easily portable on UNIX systems (volunteers welcome ;-)). The command line
  syntax is:

		flash <base segment> <file name>

  The base segment address is given in hex and specifies the selected base
  segment of the Flash EPROM. Note that when running 'flash' there should be
  no memory manager (like himem.sys or EMM386) installed under DOS. 
  The file name should be the path to the image.rom file, which contains the
  bootrom executable. There is no need to convert this file in any way (like
  into Intel hex format as for many other EPROM programmers). Also, you have
  to use 'image.rom', not the file 'image.flash' which elso gets produced by
  makerom.
  A second (and IMHO simpler) way of programming the flash EPROM is using the
  bootrom itself, so you don't need MS-DOS but just a floppy drive in your
  client.
  After you programmed the flash EPROM for the first time you can even remove
  the floppy drive. All further bootrom updates can be done over the network.
  A description of how to program the FlashCard using this way can be found in
  the general INSTALL file which you can find in the netboot package.




IMPORTANT NOTICE - DISCLAIMER
=============================

  The information in this directory (including but not limited to the files
  schematic.ps and layout.ps) is distributed in the hope that it will be use-
  ful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN-
  TABILITY or FITNESS FOR A PARTICULAR PURPOSE. The entire RISK as to the
  quality and correctness of the information is WITH YOU. Should the informa-
  tion contained in any of the files in this directory prove incorrect, you
  assume the cost of ALL NECESSARY SERVICING, REPAIR or CORRECTION. In NO
  EVENT unless required by applicable law or agreed to in writing will any
  copyright holder, or any other party who may modify and/or redistribute the
  above mentioned files as permitted by the GNU General Public License, be
  LIABLE to you for DAMAGES, including general, special, incidental, personal
  or consequential damages arising out of the use or inability to use of these
  files and the information contained therein (including but not limited to loss
  of data being rendered inaccurate or losses sustained by you or third parties
  or a failure of the hardware built based on the copyrighted information to
  operate with any other hardware or software), even if such holder or other
  party has been advised of the possibility of such damages. By using the files
  and programs in this directory either electronically or by actually building
  the hardware according to the information found in these files, you automa-
  tically agree to these rules and all other rules in the GNU General Public
  License.




WICHTIGE INFORMATIONEN fuer alle deutschen Nutzer
=================================================

  Alle Informationen in diesem Verzeichnis einschliesslich derjenigen in den
  Dateien schematic.ps und layout.ps wurden in der Hoffnung veroeffentlicht,
  nuetzlich zu sein. Es kann von den Autoren und Eigentuemern der Kopier-
  rechte keinerlei Gewaehr oder Garantie fuer diese Informationen und Daten
  abgegeben werden. Insbesondere erfolgt auch keine Zusicherung bestimmter
  Eigenschaften oder Eignung fuer einen bestimmten Zweck. Das gesamte Risiko
  in Bezug auf die Qualitaet und Korrektheit der oben bezeichneten Informationen
  und Daten liegt ausschliesslich beim Benutzer. Sollten diese Informationen
  oder Daten inkorrekt sein, ist ausschliesslich der Benutzer verantwortlich
  fuer die Kosten, die im Rahmen einer evtl. noetigen Reparatur oder Instand-
  setzung anfallen. In KEINEM FALL uebernehmen die Autoren bzw. Eigentuemer der
  Kopierrechte, oder jede dritte Partei, die die o.g. Dateien evtl. im Rahmen
  der GNU General Public Licence veraendert hat, irgendeine Verantwortung oder
  Haftung fuer Schaeden, die im Rahmen der Benutzung oder Unmoeglichkeit der
  Benutzung der durch die Kopierrechte geschuetzten Daten und Information ent-
  standen sind, gleichgueltig ob diese Informationen oder Daten bestimmungs-
  gemaess eingesetzt worden sind oder nicht. Dies schliesst unter anderem auch
  den Verlust von Daten beim Benutzer oder irgendeiner dritten Partei, Schaeden
  an und Ausfaelle von Rechnersystemen oder Teilen davon sowie persoenliche bzw.
  gesundheitliche Schaeden des Benutzers oder dritter Personen ein, selbst wenn
  der Benutzer auf die Moeglichkeit solcher Schaeden hingewiesen wurde. KEINE
  Haftung wird auch in solchen Faellen uebernommen, in denen der Benutzer der
  englischen Sprache nicht maechtig ist und es dadurch zu bewusst oder unbewusst
  herbeigefuehrten Schaeden jedweder Art kommt. Jeder Benutzer wird hiermit
  ausdruecklich darauf hingewiesen, dass jedwede Verwendung der o.g. Daten und
  Informationen nur bei ausreichender Kenntnis der englischen Sprache moeglich
  ist. Durch die Benutzung der Informationen und Daten in diesem Verzeichnis,
  sei es auf elektronischem Wege oder durch Aufbau, Nachbau und/oder jegliche
  Verwendung der darin beschriebenen Computerteile (Hardware), erkennt der
  Benutzer automatisch diese Regelungen sowie alle in der GNU General Public
  License aufgefuehrten Bestimmungen an, soweit dies nicht durch irgendein
  Gesetz eingeschraenkt ist.

  (Note: this disclaimer has to be written in German due to German law)

