      ---  NOTES ON THE ASSEMBLY LANGUAGE FILE FOR SETFONT.COM  v1.02 ---
       +           And technical documentation on the suite            +

 All assembly source files are now stored in SETFONTZ.ARK.

 I have written the options with an explanatory phrase after them in brackets.
 eg: /S(ave) means the /S option.

Revision history:

SETFONT v1.02 contains the following improvements on v1.01:
- Bug fix: Saving in .CAR (/F:C) format will work correctly.
- v1.02 contains code for use on CPC 6128 computers. This code is untested!
- the self-loading font saved with /Z should now load on CPCs.
- /M option will test for CPCs & PCWs.
- Password support extended to all file operations.

SETFONT v1.01 contained the following improvements upon v1.0:
- Three bug ("feature"?) fixes:
   When saving and no disk drive is specified, v1.01 and up use the default
    drive (v1.0 used A:)
   When no filename is given and the user is prompted for one, spurious
    "invalid filename" errors are not generated if there are no options.
    (In v1.0, the filename had to be followed by a space to avoid this)
   Better EOL detection avoids SETFONT reading the options of other commands
    in a multiple command.
- Ability to save fonts to a .COM file directly from SETFONT. The resulting
  .COM file can be read by SETFONT with the /Z(strip header) option. This
  renders SELFLOAD obsolete.
- Ability to save and load PRINTIT type fonts, rendering PRINTFNT obsolete.
- Ability to use the small Spectrum +3 font in the special formats.
- Ability to load any range of characters from the one file. This requires some
  explanation. The font is loaded from disc and merged with the current font (if
  necessary) to create a new 2k or 4k font. The range of characters is then
  chosen from this new font to be inserted into the old one. /B(egin) and /E(nd)
  options are used.
- Ability to load fonts in unknown formats by guesswork with the /F:?(Guess)
  option.
- Ability to manipulate fonts in start-of-day files with the /F:E(MS) option.
- Ability to save fonts in Stop Press format with the /F:S(top Press) option.
- Ability to use fonts in MasterPaint format with the /F:C(AR) option.
- Multiple command mode with conditional commands, comments and /M(CM) option
  (which can't be used from the command line).
- /I(nvert) option.
- Extension to the /L option allowing the use of files in different languages.
- Source file is .Z80 rather than .ZSM.

  The syntax changed from v1.0; instead of the /P(CW) and /X(+3) switches
  specifying format, /F:A(mstrad format) and /F:+(3 format) are used. This
  provided expansion capability for more formats (/F:C, /F:S, /F:? and /F:E).

1. The program is written in Z80 mnemonics. It should assemble with M80.COM
  (PCW World distribute it in L/107) and link just by typing LINK SETFONT.

2. The program can use passwords while loading, but a password will cause a
   File Not Erased or Disk Write Error when saving.

3. The /L:n (Language) option uses escape codes sent to the screen to operate.
  Thus it will not take effect if the CONOUT: device has been redirected (eg by
  a PUT command or DEVICE CONOUT:=NUL).

4. The /F:?(Guess) option works by calculating the length of the disc file. If
  used when saving, it will select the format of the previous file of that
  name, or the standard format if there was no such file.

5. The /F:E(MS) option searches for the bytes 00 66 DB DB in the font file,
  which are bytes 1-4 of the standard character no. 0. If this character is
  modified, it follows that the font cannot be detected.

6. The /M option is a command for use by itself in the multiple command mode.
  Its variants are: /M:E (Reverse conditional command status) or /M:+ /M:P /M:C
  (test which computer is in use).

7. The CP/M conditional command system (as opposed to the SETFONT conditionals
  system) is not affected by the /M options. The CP/M conditionals system will
  report failure if ANY of the commands in a multi-command failed. GETERL will
  report the latest error number sent.

8. The conditional command status is reset to "OK" by all multiple commands
  except /H(elp), /M(CM options), failed conditional commands or comments.

9. The "Save to a MasterPaint font" code was untested in v1.01. It has now been
  tested and debugged.

                        --- * ---


 Notes on v1.02 of ALTER.COM:

1. The source code for the main program of ALTER is in the three files:
  ALTER12.Z80  (assemble this file with M80)
  ALTER12A.Z80 (these files are
  ALTER12B.Z80             assembled using the INCLUDE directive).

    The file ALTERLIB.IRL contains code to handle console input/output and
   the operation of the menu system. All the EXTRN directives relate to code
   in ALTERLIB.IRL.

    Assemble thus:

  M80 =ALTER12.Z80
  LINK ALTER12,ALTERLIB.IRL[S]

2. Revision history:

  v1.02 modifications are:

  a) Two bug fixes:
  - When "Whole font" options are selected immediately on entering the program,
   the font is not corrupted.
  - If a short file is loaded, the rest of the font isn't corrupted.
  b) Code to run on the CPC6128. No extra menus etc. were necessary for this.
  c) Bold, Doublestrike, Italic, Outline styles.

  v1.01 modifications were:

  a) Three bug fixes:
    i) If ESCAPE (EXIT,BREAK) or ^C(STOP) are hit in the menu 1=Get Character,
      control is now returned to the edit screen, not the opening menu.
   ii) Character no. 9 will now display correctly on the Spectrum under all
      circumstances.
  iii) When moving a +3 small character left, the character now wraps round
      correctly (previously, a blank column appeared).
  b) A scratchpad, accessed by a sub-menu added to the 5=Options menu.
  c) Ability to AND, OR or XOR the character with a "grey blur".
  d) A change to the 3=Rotate menu. "Small" characters are rectangular so they
    will be rotated through 180 as opposed to 90.
  e) Code to display "large" +3 characters on the standard 24x80 +3 screen.
    This is used for:
    i) Viewing the large font no longer needs the screen to be cleared. Instead
      of switching to 24x32 mode to display it, the standard font window
      is used.
   ii) When selecting "large" characters, the characters chart now displays
      "large" characters.
  iii) When editing "large" characters, the preview window shows the "large"
      character being edited, as opposed to the "small" version of that
      character.
  f) The "menuing" code is upgraded to the standard of that in SCRCHED; there
    is now no need to cursor right before making input, and input is handled
    by a custom routine rather than the CP/M "line input" function.
  g) The "Whole font" and "load marked section" options.
  h) No "View large font" option. Instead, just use "Whole font" and "large"
    to see the large font.

Notes on SCRCHED v1.01:

  Version 1.01 includes the following modifications:
  - Checksumming is entirely automatic and uses the proper LocoScript "checksum
   in the file header" system, so that no characters are damaged by
   checksumming. As a result, the C option has been removed, and there is no
   necessity to install SCRCHED before use.
  - "Merge CP/M font" will now load the Greek characters 0-31.
  - "Whole font options" as in ALTER.
  - Bold, Doublestrike, Italic, Outline options.
  The "bleep" code is from the PCW Plus tips collection (NOBLEEP.BAS).
