Extracted  from  "CP/M2  ON  NORTH  STAR  DISK  DOUBLE DENSITY - QUAD
CAPACITY USER'S NOTES BY LIFEBOAT ASSOCIATES"

There  are  two  methods of making changes in your I/O.  The SAVEUSER
program  is providad as a quick and easy way of making short patches.
The  SYSGEN  procedure  is  a  comprehensive  method of making system
changes.

                    PATCHING WITH SAVEUSER

    Running the SAVEUSER program at any time will write a portion of
the then running  CP/M system onto the disk in drive A.  The specific
portion written consists  of  the  entire USER AREA (512 bytes or two
pages starting at BIOS+700 hex) and  the  MODE  AREA which is the 128
bytes  immediately  before  the  USER AREA.  In the distribution  24K
system the MODE AREA starts at 5980  hex  and the USER AREA starts at
5A00 hex and ends at 5BFF hex.

    Normal changes in the MODE AREA would  be  modifying  the  CONFG
byte  at  59F8 hex for two sided or fast stepping drives or making  a
permanent change in the MODE BYTE.  Complete definitions of these are
in Appendix A.  Any changes in the USER AREA would be for the purpose
of making a  quick  patch  to  your  CONSOLE,  LIST,  PUNCH or READER
routines.    These patches could be made with DDT and if  they  prove
satisfactory, permanently saved on the system disk with SAVEUSER.

    To run the program, simply type "SAVEUSER".  It will sign on and
ask for confirmation  that  you really wish to write onto the disk in
drive A.  A <CR> response will  begin  the write.  You may also abort
without writing anything by entering control C.


                       SYSGEN PROCEDURE.

    The  SYSGEN PROCEDURE is an advanced  method  of  changing  your
system configuration.    It  should  only be used when your system is
running  properly and you have become completely  familiar  with  the
features of CP/M.  This procedure uses the ED.COM editor, the ASM.COM
assembler,    the  DDT.COM  debugger,  and  the  SYSGEN.COM  program.
Familiarize yourself with the use of these programs before attempting
to change your system configuration in this way.

    This procedure uses the facilities of CP/M to create an assembly
language file containing  your  customized  I/O.    Use as a starting
point  USER.ASM  which  contains the proper equates and  jump  table.
Modify USER.ASM using ED  to  suit  your  own  purposes.   Be sure to
change the equate for MSIZE in the file to the desired memory size of
your CP/M.  Next, assemble your modified file with ASM.COM to produce
USER.HEX  which  will  be  used  to  overlay and modify your existing
system.

    The existing system is then brought into memory at location 900H
(hex)  using  the SYSGEN program.  This  is  the  standard  and  most
convenient memory  location  for  making  changes in the CP/M system.
The copy of CP/M starting at 900H is usually called the SYSGEN IMAGE.
Save  the  SYSGEN  IMAGE  as  a  disk file by the  command  "SAVE  40
CPM.COM<CR>".

    CPM.COM is then brought back  into  memory  under the control of
DDT with the command "DDT CPM.COM<CR>". The SYSGEN IMAGE  at  900H is
then  overlaid  with  USER.HEX  using  the  "I"  insert  and "R" read
commands of DDT.

    Note  that  USER.HEX is read in with an offset so that  the  hex
file will be placed  at 2700H.  The offset changes for each different
CP/M system size and is  equal  to  2700 hex minus wherever your USER
AREA begins in memory (5A00 hex in standard  24K system).  The proper
offset  is  automatically  calculated for each MSIZE  by  the  OFFSET
equate in USER.ASM or the DDT  "H"  hex  calculator may be used as in
the example.

    At this point, the new system has been  patched with your custom
I/O and may be directly put on the system tracks with SYSGEN or saved
again as a disk file for later use.

                             -end-