                     A FEW NOTES ON PROMFORM v1

     This  paper  is  just a few quick notes about  the  PROMFORM
program  for use with the EPSON GENEVA PX-8.   I'm sorry  to  say
that this paper had to be written in such a rush,  but the COMDEX
Trade  show is next week and I just can't take the time  required
right  now  to write all the things that need to be  said.   This
paper will just be a few words on PROMFORM that you should know.

     The Geneva does not have the hardware within itself to  burn
EPROMs.   In  order to make your own ROMs for the PX-8,  you must
have a EPROM Burner that can accept Intel Hex File Format as  the
source for the ROM image.   All that the PROMFORM program will do
is  take the files that you wish to burn into ROM,  put them into
the proper format (with a directory),  and generate the Intel Hex
file that would be down loaded to your ROM Burner.

     With  PROMFORM  you can generate 8K byte  (2764),  16K  byte
(27128), or 32K byte (27256) EPROMs for use with your Geneva.  In
addition,  if you need more ROMing space,  you can generate 2 ROM
images for ROM sets (2-8K,  2-16K,  or 2-32K ROMs).  With a 2 ROM
set,  2  ROMs are ganged together to act as one large  ROM.   For
example, 2-32K ROMs would act as a 64K ROM. ROM number 1 would be
placed in drive B:  and ROM number 2 would be placed in drive C:.
Drive B: would show 64K bytes of files and drive C: would not
exist because the directory information is only in drive B:.

     An 8K ROM can hold 7K or 8K of programs.  An 8K ROM can hold
8K  of programs as long as the last group (1K block) of the  last
file does not take up the  full 1K.   The answer of how do we put
8K  of  programs  and a directory into 8K  is  simple.   First  a
directory  may  take  up anywhere from 128 bytes  to  1K.   A  1K
directory  is unlikely,  that would be 31 files on the ROM.   The
ROM header takes up the first 32 bytes of the ROM.  It holds such
information as the ROM's name,  date, version number, the size of
the  directory (in 128 byte sectors),  and the size of  the  ROM.
Each file listed in the directory requires 32 bytes and looks the
same  as a disk directory.   The first directory sector holds the
header information and the directory information for 3 files.  If
there are more than 3 files,  additional sectors are added to the
directory at 4 files per sector.   Imagine the directory  sectors
pushing  the file groups (blocks) to higher addresses within  the
ROM.   Each  block is 1K in size except for the last one which is
1K  - the size of the directory.   As long as the last block used
on the ROM does NOT require all the sectors within that block, 8K
of  files will fit on an 8K ROM.   You may wish to use  the  STAT
program to see the real size of your file.   Remember, the number
of records * 128, gives you your file size in bytes.

     The EPROM must be mounted on the plastic carrier.  This part
comes from Molex; however you might be able to purchase this part
from electronic supply houses.


     A few words of warning to those who will be making ROMs:

     1) PROMFORM is given out AS IS.  This program was written as
a quick and easy way of making the ROMs for the Geneva. It is NOT
well written and I know for a fact that there ARE SEVERAL BUGS in
the program.

     2) PROMFORM works best on the PX-8.   I have run PROMFORM on
other  CP/M systems,  but have found that sometimes the ROM image
is garbage beyond 16K.   This problem doesn't seem to happen when
it's run on a PX-8.

     3)  If the last sector of the last block is used,  the  last
byte on the last sector is garbaged.  Most of the time this won't
matter,  because  the program ends before that last byte and  the
rest of the sector was just filled with zeros.  However if you do
need valid data in that last byte, you will need to patch the ROM
image.

     4)  I don't have the source code to this program,  so  Epson
America can't hand it over to you.   (This program was written by
Epson Japan.)

     5)  NEVER  assume  that just because you  run  PROMFORM  and
burned an EPROM,  that the ROM files are correct.   Take it  from
the  man  who  had  to create the ROM  image  for  dBASE  II,  DB
Traveler, Portable TelMerge, Teledex, The Traveler's Pak (EXPMGR,
TIMMGR,  & APPMGR),  Geneva Connection,  and others:  Only a fool
believes that, "Nothing can go Wrong!"  I have seen both PROMFORM
and  my EPROM burner create bad ROM images many times.   The only
way to be sure that is was a good burn is to verify the  results.
Run  a  file compare program or use the file compare function  of
PROMFORM.

     6) NEVER use an NMOS ROM in drive I:  of the Multi-Unit. Use
a CMOS EPROM,  such as a 27C64 or a 27C256.   You may use NMOS or
CMOS ROMs in drives B: or C:



     I  hope  that  you will have lots of fun  with  your  Geneva
putting  Public Domain software (or your own stuff)  onto  EPROM.
Maybe  PX-8 users will set-up some type of interaction with other
PX-8 users who don't have EPROM burners,  so that EPROMing  won't
be limited to just a lucky few.

                                        Mr Bob, Epson America
5/1/85
---
Comes from:
http://lahtermaher.org/pub/emulators/cpm/cpm/epson/promform.lbr

The info file looks equal to the one from the v2 program version.

But this "PROMFORM" v1 works really, compared to the other
"PROMFO2" v2 which seems to be newer (and more faulty).

Also, PROMFORM v1 does not work with CP/M 3.0, you have to
use CP/M 2.2 (or ZSDOS, which is similar), I have tested it with
MYZ80, with CP/M 3.0 it crashes - see here:

C>promform

PROM format and write program version 1.0  (c) by EPSON   11/29/83
This program converts program and data files into a hex file with the ROM
capsule format which may be written into PROMs or compares ROM capsule files
 with original files.

Press ESC to restart PROMFORM, STOP to exit from PROMFORM.
Function (1=format/write, 2=compare, 3=ROM capsule directory) ?  1

ROM name (14 characters max.) ?  TURBOPASCAL
Version number (nn) ?  01
Date (mmddyy) ?  123199
Output device (1=FDD, 2=PROM writer, 3=microcassette) ?  1
PROM type (1=64kx1, 2=64kx2, 3=128kx1, 4=128kx2, 5=256kx1, 6=256kx2) ?  5
Enter file names (31 directories max.), RETURN to end
ZPM3 Error On S1:  Invalid Drive
Function = 14

So just take CP/M 2.2 or ZSDOS.

Peter Dassow in February 2010
