[net.micro.apple] Terminak

neves@uwai.UUCP (David Neves) (03/01/86)

		    T E R M I N A K   VERSION V1.0

		   H19/VT52 Terminal Emulator for the
		    Apple ][ and Apple // Computers


    Copyright (C) 1984, 1985 by Eric P. Scott and Kenneth A. Adelman

			 All Rights Reserved


	Throughout this document the Apple ][ and ][+
computers will be referred to as the ][, and the Apple //c
and //e as the //, the major distinctions being the keyboard
and the 80-column hardware.  All numeric values are decimal
unless preceded by a `$'.

I. INTRODUCTION

	Terminak is a fairly complete emulation of the
Heath/Zenith-19 terminal, henceforth referred to as the
H19.  We chose this particular "standard" since it is
understood by a large number of hosts and has many features
suited for display-oriented applications such as screen
editors.  Not implemented are the 25th Line (hardware
limitation), graphics mode (same reason), ANSI Mode, Hold
Screen Mode, screen Transmit functions, and a few known H19
bugs.  Features in Terminak but not in the H19 include
printer support, 40 column screen "auto flip mode", and the
]['s "swapped backspace mode" which will all be discussed
later.	"Pure DIGITAL" systems can treat Terminak as a VT52
since complete support exists for the VT52 subset.

	Terminak is able to run at 9600 baud without using
hardware interrupts because it was written exclusively in
6502 assembly language.  In order to prevent the loss of
received data, XON/XOFF handshaking is implemented, but
rarely used at 9600 baud and never at 1200 baud.  The flow
control characters may be set to different ASCII values for
communication with nonstandard hosts, or disabled
altogether.

	There are three "versions" of the screen driver: one
for the traditional 40 column Apple ][ screen, one for the
Videx 80 column card, and one for the // 80 column screen.
Each is implemented slightly differently due to the
different hardware involved, and has its own limitations and
extensions.

    `There are two ways of constructing a software design:  One
    way is to make it so simple that there are obviously no de-
    ficiencies, and the other way is to make it so  complicated
    that  there  are no obvious deficiencies.  The first method
    is far more difficult.'
			C. A. R. Hoare

	Terminak does not do what Apple intended with
Zero-Page memory and DOS.  Use of the printer buffer will
overwrite DOS 3.3 and ProDOS in the most unpleasant way
possible.  Terminak also freely uses all of Zero-Page, and
may interfere with the Apple firmware if it were used
simultaneously.  The minimum configuration necessary to run
Terminak is an Apple ][ with a serial card and 16k of
memory.  The printer may only be used with 48k or more of
memory.  Terminak sets up the AppleSoft "&" and the Apple
monitor's "^Y" vectors for easy return after exiting.


II. THE SCREEN DRIVER / ESCAPE SEQUENCE RECOGNITION

Terminak  recognizes  the following ASCII control characters
from the host:

HEX NAME	Description
___________________________

$02 STX		Start of Text.	Turn on printer output
		if a printer exists.
$03 ETX		End of Text.  Turn off printer output.
		Recognition of these can be disabled, see below.
$07 BEL		Produce an audible signal.  Also $C040 strobe.
$08 BS		Backspace.  Moves the cursor one position
		to the left.
$09 HT		Tab.  Moves the cursor to the next tab stop. Tab
		stops are every eight characters and columns 73-79.
$0A LF		Line Feed.  Advances the cursor to the next line.
		At the bottom of the screen, it scrolls text up
		one line.  Moves to the beginning of the line if
		Auto CR mode enabled.
$0D CR		Carriage Return.  Moves the cursor to the first
		character position in the current line.  Auto
		LF follows if mode set.
$18 CAN		Cancel.  Cancels the current escape sequence.
$1B ESC		Escape.

The following escape sequences:

CURSOR FUNCTIONS
________________
    <ESC>H	    Cursor Home
    <ESC>C	    Cursor Forward
    <ESC>D	    Cursor Backward
    <ESC>B	    Cursor Down
    <ESC>A	    Cursor Up
    <ESC>I	    Reverse Scroll
    <ESC>n	    Cursor Position Report (sends ESC Y line col)
    <ESC>j	    Save Cursor Position
    <ESC>k	    Set Cursor to Previously Saved Position
    <ESC>Y line col Direct Cursor Addressing
		    line and col here and in Cursor Position
		    Report are offset by 32 decimal.

EDITING AND ERASING
___________________
    <ESC>E	    Clear Display (and home cursor)
    <ESC>b	    Erase to Beginning of Display
    <ESC>J	    Erase to End of Display
    <ESC>l	    Erase Entire Line
    <ESC>o	    Erase Beginning of Line
    <ESC>K	    Erase to End of Line
    <ESC>L	    Insert Line
    <ESC>M	    Delete Line
    <ESC>N	    Delete Character
    <ESC>@	    Enter Insert Character Mode
    <ESC>O	    Exit Insert Character Mode

The Insert/Delete Character/Line functions will not function
properly on some "copies" of the Videx card since the screen
memory may not be readable.

CONFIGURATION
_____________
    <ESC>z	    Reset to Power Up configuration
    <ESC>rBn	    Modify Baud Rate (This is only meaningful
		    using Serial interfaces which support software
		    selectable Baud Rates.)
		     Bn Values: A -> 110 Baud
				C -> 300 Baud
				E -> 1200 Baud
				H -> 2400 Baud
				J -> 4800 Baud	(others may
				L -> 9600 Baud	 be available)
    <ESC>xPn	    Set mode command where Pn equals:
		    0 = Disable Swapped Backspace Mode.
			(Discussed further under Keyboard.)
		    1 = Enable "25th" Line.  This code is ignored.
		    2 = Disable Key Clacks.
		    3 = Enter Hold Screen Mode.  This code is ignored.
		    4 = Block Cursor.
		    5 = Cursor Off.
		    6 = Keypad Shifted.
		    7 = Enter Alternate Keypad mode.
		    8 = Perform Automatic LF on CR.
		    9 = Perform Automatic CR on LF.
		    : = Enable Auto-Flip Mode.	Auto-Flip mode is only
			meaningful under the 40-Column version.  When
			enabled the page containing the cursor is
			always displayed.

		    Any other character is ignored.  Note that this
		    differs from the H19 behavior where the character
		    is printed. In this respect, Terminak duplicates
		    the H29 behavior.

    <ESC>yPn	    Reset mode command where Pn equals:
		    0 = Enable Swapped Backspace Mode.
			(Discussed further under Keyboard.)
		    1 = Disable "25th" Line.  This code is ignored.
		    2 = Enable Key Clacks.
		    3 = Exit Hold Screen Mode.	This code is ignored.
		    4 = Underscore Cursor.  This code is ignored when
			not using the Videx hardware.
		    5 = Cursor On.
		    6 = Keypad Unshifted.
		    7 = Exit Alternate Keypad mode.
		    8 = No Auto LF on CR.
		    9 = No Auto CR on LF.
		    : = Disable Auto-Flip Mode.  Indicated that the
			currently displayed page will continue to be
			displayed under the 40-Column version.

		    Any other character is ignored.  Note that this
		    differs from the H19 behavior where the character
		    is printed. In this respect, Terminak duplicates
		    the H29 behavior.

MODES OF OPERATION
__________________
    <ESC>p	    Enter Reverse Video Mode.  Except for the videx
		    and the // in non-blink cursor mode, lower case
		    letters are displayed as uppercase in Reverse
		    Video Mode.
    <ESC>q	    Exit Reverse Video Mode.
    <ESC>F	    Enter Graphics Mode.  All graphics character
		    are displayed as an inverse space.
    <ESC>G	    Exit Graphics Mode.
    <ESC>t	    Enter Keypad Shifted Mode.
    <ESC>u	    Exit Keypad Shifted Mode.
    <ESC>=	    Enter Alternate Keypad Mode.
    <ESC>>	    Exit Alternate Keypad Mode.

ADDITIONAL FUNCTIONS
____________________
    <ESC>}	    Keyboard Disabled. Only the RESET command will
		    be recognized by the keyboard.
    <ESC>{	    Keyboard Enabled.
    <ESC>v	    Wrap Around at End of Line.
    <ESC>w	    Discard at End of Line.
    <ESC>Z	    Identify as VT52 without printer [ESC/K].

III. KEYBOARD INTERFACE / THE KEYBOARD

	Terminak currently supports two types of keyboards.
Since it is desirable to be able to send any of the 128
ASCII characters in one keypress, at least 128 "key
combinations" must be detectable from the keyboard.  This is
done on the // keyboard through the use of the closed apple
<CAPPLE> and the open apple <OAPPLE> keys, and on the ][
keyboard through the use of the shift-key mod.	The
shift-key mod is required for a full ASCII keyboard on an
Apple ][.

	Since Terminak has other features which must be
controlled from the keyboard (such as the printer) some of
the other combinations of keys are used to control these in
a single key press.

The //'s keyboard:

	Any ASCII character may be typed from the //'s
keyboard under normal operation.  The <OAPPLE> key is used,
in the same fashion that the <SHIFT> or <CTRL> keys are
used, to set the parity bit on the character.  Commands to
the Terminak keyboard driver can be entered with the
<CAPPLE> key.  The following commands are defined:

	<CAPPLE>E	Exit to monitor (return with *C00G).
	<CAPPLE>B	Set Baud Rate. This is followed by a letter
			between A and M to specify the baud rate.
	<CAPPLE>Z	Toggle printer feed ON/OFF. Power up
			default is OFF.
	<CAPPLE>I	Toggle the recognition of STXT/ETXT
			characters from the host to prevent
			^B from turning on printer feed on a
			noisy phone line.
	<CAPPLE>C	Cancel. Clears printer buffer.
	<CAPPLE>F	Form Feed printer.  Inserts a ^L in the
			printer queue.
	<CAPPLE>R	Reset Terminak. This function works even if
			the keyboard is disabled
	<CAPPLE><ESC>	Enter/Exit Local Mode. In local mode characters
			typed on the keyboard are sent to the screen,
			not the host computer.
	<CAPPLE>A	Send character by Hex value. Followed by 2
			hex digits of an 8-bit character to send.
	<CAPPLE><LARROW> Left Arrow Key.
	<CAPPLE><RARROW> Right Arrow Key.
	<CAPPLE><DARROW> Down Arrow Key.
	<CAPPLE><UARROW> Up Arrow Key.
	<CAPPLE><OAPPLE> Send a BREAK for 250ms.

	The function keys on the H19 (F1->F5, ERASE, RED,
BLUE, & GRAY) are typed by <CAPPLE>1 through <CAPPLE>9,
respectively. <CTRL><ERASE> on at H19 is a local clear
screen; in Terminak you may use <CAPPLE><CTRL>6.

	The H19's keypad is implemented as a secondary set
of functions for the normal keys of the //'s keyboard.	This
is of limited functionality as a keypad, but is useful for
screen editors which use the keypad.  When the <CAPPLE> key
is held down, the following keys form the keypad of the H19:

			 -----------------
			|  )  |  _  |  +  |
			|  0  |  -  |  =  |
			 -----------------
			|     |     |  {  |
			|  O  |  P  |  [  |
			 -----------------
			|     |     |  :  |
			|  K  |  L  |  ;  |
			 -----------------
			|     |  <  |  >  |
			|  M  |  ,  |  .  |
			 -----------------


The ]['s keyboard:
	The ][ keyboard does not have full ASCII.  Because
of this the following translations are made to allow a full
ASCII keyboard.

			Sample entry of table below:
	 -------
	| P  `	|		P	       -> p  ($70)
	|	|		<SHIFT>P       -> P  ($50)
	| p  ^P |		<CTRL>P        -> ^P ($10)
	 -------		<CTRL><SHIFT>P -> `  ($60)


   ----------------------------------------------------------------
  |!   |"   |#   |$   |%   |&   |'   |(   |)   |@   |*   |=  |RESET|
  |1   |2   |3	 |4   |5   |6	|7   |8   |9   |0   |:	 |-  |	   |
 -------------------------------------------------------------------
|ESC  |Q { |W	|E   |R | |T ~ |Y   |U	 |I   |O _ |P ` |REPT|RETURN|
|^[   |q ^Q|w ^W|e ^E|e ^R|t ^T|y ^Y|u ^U|i ^I|o ^O|p ^P|    |	    |
 -------------------------------------------------------------------
 |CTRL |A ^\|S } |D ^_|F   |G	|H ^?|J   |K [ |L \ |+	 |^?  |    |
 |     |a ^A|s ^S|d ^D|f ^F|g ^G|h ^H|j ^J|k ^K|l ^L|;	 |^H  |^U  |
  -----------------------------------------------------------------
 |SHIFT |Z   |X   |C ^^|V   |B ^]|N ^ |M ] |<	|>   |?   |SHIFT|
 |	|z ^Z|x ^X|c ^C|v ^V|b ^B|n ^N|m ^M|,	|.   |/   |	|
  --------------------------------------------------------------
	 |		   ^@ (NULL)			|
	 |		     SPACE			|
	  ----------------------------------------------

Additionally, the following commands are defined:

	<CTRL><SHIFT>E	    Exit to monitor (return with *C00G).
	<CTRL><SHIFT>U	    Set Baud Rate. This is followed by a key
			    between A and M to specify the baud rate.
	<CTRL><SHIFT>Z	    Toggle printer feed ON/OFF. Power up
			    default is OFF.
	<CTRL><SHIFT>I	    Toggle the recognition of STXT/ETXT
			    characters from the host to prevent
			    ^B from turning on printer feed on a
			    noisy phone line.
	<CTRL><SHIFT>F	    Form Feed printer. Inserts a ^L in the
			    printer queue.
	<CTRL><SHIFT>W	    Toggle Caps Lock.
	<CTRL><SHIFT>Y	    Send character by Hex value. Followed by 2
			    hex digits of an 8-bit character to send.
	<CTRL><SHIFT>X	    Enter/Exit Keypad mode.
	<CTRL><SHIFT>G	    Send a Break for 250ms.
	<CTRL><SHIFT>J	    Reset Terminak. This function works even
			    if the keyboard is disabled.
	<CTRL><SHIFT>V	    Enter/Exit Local Mode. In local mode
			    characters typed on the keyboard are
			    sent to the screen, not the host.
	<CTRL><SHIFT>C	    Cancel. Clears printer buffer
			    (Cancel is only defined when in
			     alternate keypad mode.)

The following feature is added for the ][ keyboards:
	Our favorite hosts use the <DEL> character for
correction, instead of the <BS> character, so we allow
either to be attached to the "right arrow" key:

	Normal Mode: <SHIFT><BACKARROW> sends <DEL>
			    <BACKARROW> sends <BS>

	Swapped Mode: <SHIFT><BACKARROW> sends <BS>    (enabled by
			     <BACKARROW> sends <DEL>	default)

	Swapped Backspace mode may be set from the host by
the sequence <ESC>y0 and reset by the sequence <ESC>x0.
These are extensions to the normal H19 control sequences.
The default state of swapped backspace is stored in the
configuration field DOPSWAP and may be changed (see the
section on configuring).

	The function and keypad keys of the H19 are typed by
putting the keyboard into "alternate keyboard mode" by
typing a <CTRL><SHIFT>X.  The function keys on the H19
(F1->F5, ERASE, RED, BLUE, & GRAY) become the keys 1 through
9, respectively.  The H19's keypad is formed out of the keys
in the picture below.  Note that the bottom row of the
keypad is not below the rest of the keypad.  "Alternate
keyboard mode" is exited by typing any character not on the
"keypad", not a special function keys, and not a command.

			 -----------------
			|     |     |	  |
			|  Q  |  W  |  E  |
			 -----------------
			|     |     |	  |
			|  A  |  S  |  D  |
			 -----------------
			|     |     |	  |
			|  Z  |  X  |  C  |
			 -----------------
			|     |     |  ^  |
			|  V  |  B  |  N  |
			 -----------------


IV. THE PRINTER

	Terminak supports the following printer interfaces:
The "dumb" printer interface which includes the Apple
Parallel Card, the Microbuffer II, and various serial cards.
While XON/XOFF protocol is used with the host computer,
handshaking with a serial printer is done using DCD (Data
Carrier Detect).

	If the printer is enabled, all characters which are
received by Terminak from the host will also be sent to the
printer.  The printer may be enabled or disabled from the
keyboard (see Section III) or from the host computer using
the STX or the ETX characters (see Section II).  To prevent
noisy phone lines from turning the printer spooling on and
off, STX/ETX recognition may be disabled from the keyboard.

	Since most common printers do not function even at
1200 baud, the printer is "spooled" with a 35k buffer in
addition to any buffering the printer interface or printer
hardware provides.  If the buffer fills up and XON/XOFF is
enabled, handshaking with the host will begin until the
printer buffer empties sufficiently to allow Terminak to run
at full speed.	If XON/XOFF is disabled, the user must take
care not to overflow the buffer, since characters will be
lost and a BELL sounded.

V. CONFIGURING THE HARDWARE

	It is recommended that the program supplied be used
to configure Terminak. However, the internal configuration
block can be accessed directly.

Name	   Address   Default
-------    -------   -------
ACIACT	   $0C03	$4    Power up baud rate. If the ACIA is
			      not initialized, this baud rate is
			      used upon entering the program.
			      $2-> 300, $4-> 1200, $B-> 9600 baud.
			      (for ACIAs which support software
			       selectable baud rate)

ACIATYPE   $0C04	$1    Acia Type.
			      0-> 6850, 1-> 6551

ACIASLOT   $0C05       $A8    Start address in page $C000 of ACIA.
			      ($80 + SLOT * $10 + OFFSET)
			      Common offsets are:
			      $8-> Super Serial Card
			      $E-> Normal Serial Card
			      $7-> MicroModem II

VIDEXSLOT  $0C06       $B0    Videx Slot, Used only if DISPTYPE=1.
			      $80 + SLOT * $10.

LCHACK	   $0C07	$0    Mask to XOR lower case letters with
			      on 40-Column screen.
			      $0 -> Can display Lower Case
			      $20 -> Map to Upper Case
			      $E0 -> Map to inverse Upper Case

KBDHASO    $0C08       $80    Keyboard has "Open Apple" for sending
			      Parity and Break Characters.
			      $0-> No, $80-> Yes

KBDCLSA    $0C09       $80    Keyboard uses "Close Apple" for CMD
			      $0-> Shift Key Mod, $80-> Close Apple

KBDTYPE    $0C0A	$1    Keyboard Type:
			      $0 -> Apple ][, ][+ with shift key mod
			      $1 -> Apple //e, //c
			      $xx -> User supplied table at $xx00

CAPSLOCK   $0C0B	$0    Software Caps Lock initial setting.
			      $0-> Off, $80-> On

DISPTYPE   $0C0C	$2    Display Type.
			      0-> 40 Column Screen
			      1-> Videx in slot VIDEXSLOT
			      2-> //c //e 80 Column screen
			      All other values are Reserved.


PRNTTYPE   $0C0D	$4    Printer Type.
			      0-> No printer
			      1-> "Dumb" printer interface
			      2-> MicroBuffer II interface
			      3-> 6850 ACIA as a printer
			      4-> 6551 ACIA as a printer
			      All other values are Reserved.

PRNTSLOT   $0C0E       $98    Printer Slot * $10 + $80 + OFFSET

PRNTBAUD   $0C0F	$4    Printer Baud Rate. See ACIACT for
			      the meaning of the value.

XOFFCHR    $0C10	^S    XOFF Character

XONCHR	   $0C11	^Q    XON Character

XOFFLIM    $0C12       200    Number of character in receive buffer
			      when an XOFF character is sent.

XONLIM	   $0C13	20    Number of character in receive buffer
			      when an XON character is sent.

HNDSHK	   $0C14       $80    Whether to do XON/XOFF handshaking
			      0-> No, $80-> Yes.

DOPNOTK    $0C15       $80    Keyclacks Power up Default.
			      0-> Clacks, $80->No Clacks.

DOPWRAP    $0C16	$0    Wrap at End-Of-Line Power up Default.
			      0-> Stick, $80-> Wrap.

DOPALF	   $0C17	$0    Auto LF on CR Power up Default.
			      0-> No, $80-> Yes.

DOPACR	   $0C18	$0    Auto CR on LF Power up Default.
			      0-> No, $80-> Yes.

DOPAFL	   $0C19       $80    Auto Flip On. 40 Column Screen Only
			      0-> No, $80-> Yes.

DOPSWAP    $0C1A       $80    Swapped Backspace Power up Default.
			      0-> No, $80-> Yes.

TOPRAM	   $0C1B       $C0    Top page of printer buffer+1.
			      $C0 for 48k or more of RAM.

FULLDUP    $0C1C       $80    Should characters from the keyboard
			      be echoed locally.
			      $0-> Yes, $80-> No.

CURSTYPE   $0C1D	$0    Special non-blinking cursor for the
			      // screen. Used only if DISPTYPE=2.
			      $0-> Normal, $80-> Non-Blinking

DOPINVIS   $0C1E	$0    Power up default for inviso mode
			      $0-> Off, $80-> On (Printer Disabled)

USERKBD    $3200      none    2 Pages of memory reserved for user
			      defined keyboard map.

VI. KEYBOARD MAPPING

	Terminak is supplied with two "keyboard tables", one
for the ][ and one for the //.	The key that is typed on the
keyboard and the ASCII code that is sent or the command that
is performed are related by a 512 byte table which defines
the keyboard map.  This section will describe the format and
construction of the keyboard map so it is possible for the
user to define his own map to suit his tastes or special
hardware.

	On the Apple ][ keyboard it is not possible to
generate all 128 ASCII codes.  However with the addition of
the "shift key mod" it becomes possible to detect more than
128 combination of keypresses.	Most of the added
"detections" come from the ability to detect <CTRL><SHIFT>
characters as distinct from <CTRL> characters.	The mapping
between key presses and ASCII codes or functions is
preformed by generating an intermediate quantity called a
"key-code".  The key-code consist of the low seven bits of
the character that the keyboard sent (the code read from
$C000) and the high bit which indicates whether the
shift-key is down (from the shift key mod).  The key-code
will be between $00 and $7F if the shift-key is down and
between $80 and $FF if the shift-key is up.  The key-code is
then used as an index into the "keyboard translation table"
to get the key-command.  The table on the next page shows
what key-commands perform what actions:

	KEYBOARD MAPPING TABLE

	CODE (hex)	Action
______________________________________
	00->7F	The code is sent to the host as a character.
	  80	Toggles printer capture on/off.
	  81	Toggles software caps lock on/off.
	  82	Send form feed to printer.
	  83	Toggles recognition of STXT/ETXT.
	  84	Exit Terminak to monitor.
	  85	Enter Set Baud Rate state. The next
		typed (A thru M) determines the baud rate
		selected.
	  86	Sends a BS if Swapped backspace mode is off,
		  or a DEL if Swapped backspace mode in on.
	  87	Sends a DEL if Swapped backspace mode is off,
		    or a BS if Swapped backspace mode in on.
	  88	Reserved
	  89	Reserved
	  8A	Send Hex value as character. The next two
		characters (0 thru 9, A thru F) typed will
		be sent as a hex digit. This is the only
		way to send "negative" ASCII on the ][.
	  8B	Toggle Alternate Keyboard Mapping. When this
		is enabled $100 is added to the key-code to
		look up the key-command.
	  8C	Send 250ms (nominal) break.
	  8D	Toggle Local Mode On/Off.
	  8E	Purge printer buffer.
	  A0	Local clear screen and Home cursor
	  A1	Local clear to end of screen

	  D0	Special function key F1 (shifted and unshifted)
		Sends the code <ESC>S.
	  D1	Special function key F2 (shifted and unshifted)
		Sends the code <ESC>T.
	  D2	Special function key F3 (shifted and unshifted)
		Sends the code <ESC>U.
	  D3	Special function key F4 (shifted and unshifted)
		Sends the code <ESC>V.
	  D4	Special function key F5 (shifted and unshifted)
		Sends the code <ESC>W.
	  D5	Special function key ERASE (unshifted only)
		Sends the code <ESC>J.
	  D6	Special function key RED (shifted and unshifted)
		Sends the code <ESC>P.
	  D7	Special function key BLUE (shifted and unshifted)
		Sends the code <ESC>Q.
	  D8	Special function key GREY (shifted and unshifted)
		Sends the code <ESC>R.
	  D9	Special function key ERASE (shifted only)
		Sends the code <ESC>E.
	  DA	Sends the code <ESC>A. This is the UP-ARROW key.
	  DB	Sends the code <ESC>B. This is the DOWN-ARROW key.
	  DC	Sends the code <ESC>C. This is the RIGHT-ARROW key.
	  DD	Sends the code <ESC>D. This is the LEFT-ARROW key.
	  E0	Keypad key "7". Sends 7,<ESC>O,<ESC>@, or <ESC>?w.
	  E1	Keypad key "8". Sends 8,<ESC>A, or <ESC>?x.
	  E2	Keypad key "9". Sends 9,<ESC>N, or <ESC>?y.
	  E3	Keypad key "4". Sends 4,<ESC>D, or <ESC>?t.
	  E4	Keypad key "5". Sends 5,<ESC>H, or <ESC>?u.
	  E5	Keypad key "6". Sends 6,<ESC>C, or <ESC>?v.
	  E6	Keypad key "1". Sends 1,<ESC>L, or <ESC>?q.
	  E7	Keypad key "2". Sends 2,<ESC>B, or <ESC>?r.
	  E8	Keypad key "3". Sends 3,<ESC>M, or <ESC>?s.
	  E9	Keypad key "0". Sends 0 or <ESC>?p.
	  EA	Keypad key ".". Sends . or <ESC>?n.
	  EB	Keypad key Enter. Sends <CR> or <ESC>?M.
	F0->FB	Shifted Keypad keys (same as $E0->$EB).
	  FF	Reset Terminak. This code functions even if
		the keyboard is disabled.

	All other codes are RESERVED and unpredictable.


	On the //'s keyboard it is not necessary to use the
shift-key mod to generate full ASCII.  Since the <CAPPLE>
key is already available, we use it as the "special shift
key".  The key-code is formed the same way as on the ]['s
keyboard, but the <CAPPLE> is used instead of the shift-key
mod.  If <CAPPLE> is down, the key-code is in the range $00
thru $7F and if it is up, in the range $80 thru $FF.  The
//'s keyboard has the additional attribute of the <OAPPLE>
key.  The <OAPPLE> key is an 8-bit shift, that is if the
key-command is between $00 and $7F the high bit will be set
before it is sent if <OAPPLE> is down.	Additionally,
<OAPPLE><CAPPLE> sends a break.

	In order to build a custom keyboard table for
different hardware the following must be done.	If the
keyboard has an <OAPPLE> key the configuration flag KBDHASO
should be set.	This tells Terminak to look for the <OAPPLE>
key as an 8-bit shift and to use with the "special shift
key" to send a break.  If the keyboard has a <CAPPLE> key
the configuration flag KBDCLSA should be set.  If this is
reset the shift-key mod will be used as the special shift
key.  The configuration flag KBDTYPE should be set to 0 to
use the ]['s translation table, 1 to use the // translation
table, or the high-byte of the address of the user defined
translation table.  This table may be one or two pages long
depending on whether the function Toggle Alternate keyboard
mapping is used in the first page.  This function toggles
which page of the keyboard translation table is used.  If
the second page is not used, it need not be defined.

	See the section on configuration for available memory
addresses to use for the user defined keyboard map.

The following is the keyboard translation table for the ][:

$000:	$00 $1C $1D $1E $1F $84 $82 $8C  $87 $83 $FF $5B $5C $0D $0E $5F
$010:	$10 $7B $7C $7D $7E $85 $8D $81  $8B $8A $80 $1B $1C $5D $5E $1F
$020:	$00 $21 $22 $23 $24 $25 $26 $27  $28 $29 $2A $2B $2C $2D $2E $2F
$030:	$40 $31 $32 $33 $34 $35 $36 $37  $38 $39 $3A $3B $3C $3D $3E $3F
$040:	$50 $41 $42 $43 $44 $45 $46 $47  $48 $49 $4A $4B $4C $4D $4E $4F
$050:	$50 $51 $52 $53 $54 $55 $56 $57  $58 $59 $5A $5B $5C $4D $4E $5F
$060:	$60 $61 $62 $63 $64 $65 $66 $67  $68 $69 $6A $6B $6C $6D $6E $6F
$070:	$70 $71 $72 $73 $74 $75 $76 $77  $78 $79 $7A $7B $7C $7D $7E $7F
$080:	$00 $01 $02 $03 $04 $05 $06 $07  $86 $09 $0A $0B $0C $0D $0E $0F
$090:	$10 $11 $12 $13 $14 $15 $16 $17  $18 $19 $1A $1B $1C $1D $1E $1F
$0A0:	$20 $21 $22 $23 $24 $25 $26 $27  $28 $29 $2A $2B $2C $2D $2E $2F
$0B0:	$30 $31 $32 $33 $34 $35 $36 $37  $38 $39 $3A $3B $3C $3D $3E $3F
$0C0:	$40 $61 $62 $63 $64 $65 $66 $67  $68 $69 $6A $6B $6C $6D $6E $6F
$0D0:	$70 $71 $72 $73 $74 $75 $76 $77  $78 $79 $7A $5B $5C $5D $5E $5F
$0E0:	$60 $61 $62 $63 $64 $65 $66 $67  $68 $69 $6A $6B $6C $6D $6E $6F
$0F0:	$70 $71 $72 $73 $74 $75 $76 $77  $78 $79 $7A $7B $7C $7D $7E $7F

$100:	$8B $8B $8B $8E $8B $84 $82 $8C  $8B $83 $FF $8B $8B $8B $8B $8B
$110:	$8B $8B $8B $8B $8B $85 $8D $81  $8B $8A $80 $8B $8B $8B $8B $8B
$120:	$8B $D0 $D1 $D2 $D3 $D4 $D9 $D6  $D7 $D8 $8B $8B $8B $8B $8B $8B
$130:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$140:	$8B $F3 $FA $F8 $F5 $F2 $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$150:	$8B $F0 $8B $F4 $8B $8B $F9 $F1  $F7 $8B $F6 $8B $8B $8B $FB $8B
$160:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$170:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$180:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$190:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$1A0:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$1B0:	$8B $D0 $D1 $D2 $D3 $D4 $D5 $D6  $D7 $D8 $8B $8B $8B $8B $8B $8B
$1C0:	$8B $E3 $EA $E8 $E5 $E2 $8B $8B  $8B $8B $8B $8B $8B $8B $EB $8B
$1D0:	$8B $E0 $8B $E4 $8B $8B $E9 $E1  $E7 $8B $E6 $8B $8B $8B $8B $8B
$1E0:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B
$1F0:	$8B $8B $8B $8B $8B $8B $8B $8B  $8B $8B $8B $8B $8B $8B $8B $8B

	On the ][ the Alternate mapping is used for the
keypad.  Most of the commands in the second table are $8B so
that when characters not on the keypad are typed, the keypad
is disabled by swapping back to the primary keyboard.  Note
that the Alternate mapping could also be used if the
shift-key mod were not present on the ][ to be able to
access all commands and characters in 2 key-presses.


The following is the keyboard translation table for the //:

$000:	$00 $01 $02 $03 $04 $05 $06 $07  $DD $09 $DB $DA $0C $0D $0E $0F
$010:	$10 $11 $12 $13 $14 $DC $16 $17  $18 $19 $1A $8D $1C $1D $A0 $1F
$020:	$20 $D0 $22 $D2 $D3 $D4 $D6 $27  $D8 $F0 $D7 $F2 $EA $E1 $EB $2F
$030:	$E0 $D0 $D1 $D2 $D3 $D4 $D5 $D6  $D7 $D8 $F8 $E8 $FA $E2 $FB $3F
$040:	$40 $8A $85 $8E $44 $84 $82 $47  $48 $83 $4A $F6 $F7 $F9 $4E $F3
$050:	$F4 $51 $FF $53 $54 $55 $56 $57  $58 $59 $80 $E5 $5C $5D $D9 $F1
$060:	$60 $8A $85 $8E $64 $84 $82 $67  $68 $83 $6A $E6 $E7 $E9 $6E $E3
$070:	$E4 $71 $FF $73 $74 $75 $76 $77  $78 $79 $80 $F5 $7C $7D $7E $7F
$080:	$00 $01 $02 $03 $04 $05 $06 $07  $08 $09 $0A $0B $0C $0D $0E $0F
$090:	$10 $11 $12 $13 $14 $15 $16 $17  $18 $19 $1A $1B $1C $1D $1E $1F
$0A0:	$20 $21 $22 $23 $24 $25 $26 $27  $28 $29 $2A $2B $2C $2D $2E $2F
$0B0:	$30 $31 $32 $33 $34 $35 $36 $37  $38 $39 $3A $3B $3C $3D $3E $3F
$0C0:	$40 $41 $42 $43 $44 $45 $46 $47  $48 $49 $4A $4B $4C $4D $4E $4F
$0D0:	$50 $51 $52 $53 $54 $55 $56 $57  $58 $59 $5A $5B $5C $5D $5E $5F
$0E0:	$60 $61 $62 $63 $64 $65 $66 $67  $68 $69 $6A $6B $6C $6D $6E $6F
$0F0:	$70 $71 $72 $73 $74 $75 $76 $77  $78 $79 $7A $7B $7C $7D $7E $7F

	Note that the second half of this table is purely
the list of ASCII values.  This is so that unshifted
characters are passed as-is.





-- 
David Neves
Computer Sciences Department
University of Wisconsin-Madison

Usenet:  {allegra,heurikon,ihnp4,seismo,uwm-evax}!uwvax!neves
Arpanet: neves@uwvax

neves@uwai.UUCP (David Neves) (03/01/86)

VT52/H19 Terminak Emulator for the Apple //   Version V1.0

Copyright (c) 1982, 1983, 1984, 1985 by Eric P. Scott and Kenneth A. Adelman

Bug reports to KEN@CIT-HAMLET.ARPA
All commercial rights reserved by the authors.

BSAVE TERMINAK V1.0,A$C00,L$24F0

:030C00004C1F0C7A
:010C030004EC
:010C040001EE
:010C0500A846
:010C0600B03D
:010C070000EC
:010C0800806B
:010C0900806A
:010C0A0001E8
:010C0B0000E8
:010C0C0002E5
:010C0D0004E2
:010C0E00984D
:010C0F0004E0
:010C100013D0
:010C110011D1
:010C1200C819
:010C130014CC
:010C1400805F
:010C1500805E
:010C160000DD
:010C170000DC
:010C180000DB
:010C1900805A
:010C1A008059
:010C1B00C018
:010C1C008057
:010C1D0000D6
:010C1E0000D5
:100C1F00D878A9FF8DF30349A58DF403A9598DF257
:100C2F0003A94C8DF5038DF803A91F8DF6038DF9DC
:100C3F0003A90C8DF7038DFA0320CC298A48208154
:100C4F003020832520A328A98F8510A90C8511A0FA
:010C5F000094
:100C6000B110F00E841520B628A415C8D0F2E611F4
:020C7000D0EEC4
:080C720068AA20372B203E2C5C
:100C7A0020C82520AD2A20652A20B92820652A20E7
:050C8A00DF2C4C7A0C88
:100C8F001B7A565435322F483139205465726D69AD
:100C9F006E616B20456D756C61746F7220666F723B
:100CAF0020746865204170706C65202F2F202020E4
:100CBF0056657273696F6E2056312E300D0A0A43D6
:100CCF006F70797269676874202863292031393809
:100CDF00322C20313938332C20313938342C203113
:100CEF00393835206279204572696320502E2053A0
:100CFF00636F747420616E64204B656E6E657468EB
:100D0F0020412E204164656C6D616E0D0A0A42759B
:100D1F0067207265706F72747320746F204B454E2D
:100D2F00404349542D48414D4C45542E415250415A
:100D3F000D0A416C6C20636F6D6D65726369616C38
:100D4F002072696768747320726573657276656463
:100D5F002062792074686520617574686F72732ED4
:040D6F000D0A0A005F
:100D7300A8AE0803BDD41248BDD3124898A0008C76
:030D830008036002
:0E0D8600C90AF013C97FF00EC920B00EA208F2
:080D9400DDE212F00ACAD0F8FA
:010D9C0060F6
:030D9D004C530FA5
:030DA0004C2910CB
:090DA300BDF21248BDEA124860DD
:020DAC00A2277C
:090DAE00DDFA12F004CAD0F8606D
:090DB700BD481348BD211348603A
:070DC000A506C917900A60A7
:090DC700A506C91790034CD70ED4
:080DD000E60620D80D4CB80E18
:020DD800A5066E
:090DDA00850A0A0A18650A65027F
:100DE300850A4A4A4A4A8504A50A0A0A0A0A850361
:010DF300609F
:010DF4008A74
:0F0DF500186503850BA90065044AA0CC9001C8BE
:070E0400841329030A0AA868
:060E0B00B900C0A40B6059
:100E1100850C0A0A650C850CA900260C2A260C2AC9
:100E2100260C2A260C2A49FF850DA50C49FFA8C8C6
:040E3100D002E60DF8
:030E3500840C60CA
:0D0E3800A204860FA000840E20DA0DA20097
:100E450020F40DF00B8A38E50B1865038503900235
:020E5500E604B1
:0A0E5700B112810EE60ED002E60F84
:090E6100A50C290FD00320652A1D
:080E6A00E60CD004E60DF005D2
:050E7200C8D0E2F0CE43
:010E7700601A
:0D0E7800A204860FA000840E20DA0DA20057
:100E850020F40DF00B8A38E50B18650385039002F5
:020E9500E60471
:0A0E9700A10E9112E60ED002E60F44
:090EA100A50C290FD00320652ADD
:080EAA00E60CD004E60DF00592
:050EB200C8D0E2F0CE03
:010EB70060DA
:070EB8002C0B033019A90FF8
:080EBF008D00C0A505186503B4
:050EC7008D00C0A90E22
:070ECC008D00C0A9006504C0
:030ED3008D00C0CF
:010ED60060BB
:0E0ED70018A5026905297F850220E30DA90DEB
:050EE5008D00C0A50313
:050EEA008D00C0A90C01
:050EEF008D00C0A50408
:100EF4008D00C0A91720DA0D201F1120D80D4CB881
:010F04000EDE
:100F05008405A506F0CCC90CB01B20110EA9002044
:100F1500380E20D70EA50620110EA90020780E2028
:050F2500D80D4CB80ED0
:100F2A00A91738E506F0144820110EA406C898201F
:0B0F3A00380E6820110EA50620780E6E
:0E0F4500A91720DA0D201F1120D80D4CB80E70
:070F53002C040310028405C9
:030F5A004CC70D74
:0A0F5D002C0303100520C70DA000AF
:050F670084054CB80EEA
:060F6C00A605F002C60517
:030F72004CB80E6A
:080F7500A505C94FF002E605D5
:030F7D004CB80E5F
:050F8000A506D005608C
:040F8500A506F008C5
:080F8900C60620D80D4CB80E7D
:100F910020A10F9820DA0D201F1120D80D4CB80E7A
:0E0FA10038A502E905297F850220E30DA90D80
:050FAF008D00C0A50348
:050FB4008D00C0A90C36
:050FB9008D00C0A5043D
:040FBE008D00C06082
:100FC2008405A506F0C9C90CB01E20110EA9002087
:100FD200380E20A10FA50620110EA90020780E20A0
:080FE200D80D20B80E4C1F11C0
:100FEA00A91738E506F01A4820110EA50620380E72
:100FFA006820110EA406C89820780E20D80D20B8B3
:01100A000ED7
:03100B004C1F1166
:10100E00A50518690829F8C950F00585054CB80ED4
:08101E00A505C94FF002E6052B
:031026004CB80EB5
:101029002C0D03100CC95E9008C97FB004A9A0D08B
:0110390004B2
:04103A0005014980E3
:09103E002C0C031029850DA605F8
:0310470020F40D85
:10104A00B112850CA50D9112A50C850DE88A290708
:05105A00D00320652A0F
:09105F00E050F005C8D0E4F0DF18
:04106800A605100BBE
:0B106C00A605850D20F40DA50D9112C6
:10107700E88605E050D00F2C0203100820C70DA00A
:04108700004C670FA3
:02108B00C60598
:03108D004CB80E4E
:05109000A2048E08031C
:0110950060FA
:10109600C918F0FBA2068E0803C92090F2C938B021
:0B10A600EEE91F850620DA0D4CB80EA5
:0D10B100C918F00FC9209005C970900318F0
:0210BE00A96F18
:0210C000E91F26
:0210C2008505A2
:0310C4004CB80E17
:0610C70020CD104C3F118A
:0B10CD00988505850620DA0D4CB80E52
:0610D800A920850DA24FC6
:0310DE0020F40DEE
:1010E100B112850CA50D9112A50C850D8A2907D089
:0410F1000320652A49
:0D10F500E405F009CAC000F0E0884CE110ED
:01110200608C
:02110300A20048
:0311050020F40DC6
:10110800A9209112E405F00EE88A2907D00320658A
:011118002AAC
:05111900C8D0ECF0E776
:01111E006070
:04111F00A200F00238
:02112300A6051F
:0311250020F40DA6
:0D112800A9209112E88A2907D00320652A2A
:09113500E050F005C8D0ECF0E731
:01113E006050
:05113F00202311A406AD
:10114400C8C018F00D840C9820DA0D201F11A40CCF
:02115400D0EEDB
:031156004CD80D65
:05115900200311A406B3
:10115E0088300D840C9820DA0D201F11A40C10F08D
:03116E004CD80D4D
:0B117100A5058D0903A5068D0A03608B
:10117C00AD09038505AD0A03850620D80D4CB80EC4
:02118C00A90AAE
:05118E008D00C0A92046
:081193008D00C0888C0B036085
:08119B008C0B032C0603300B42
:0211A300A90A97
:0511A5008D00C0A960EF
:0411AA008D00C06094
:0211AE00A90A8C
:0511B0008D00C0A948FC
:0411B5008D00C06089
:0111B90088AD
:0411BA008C0503603D
:0111BE0088A8
:0B11BF008C0603082C0B0310022860B4
:0511CA002830E110D403
:1011CF008C0C038C14038C0B038C0D038C0E038C73
:1011DF0006038C0F038C10038C11038C07038414EC
:1011EF0084008C09038C0A03AC1E0C8C1303AC1502
:1011FF000C8C0103AC150C8C0103AC160C8C020388
:10120F00AC170C8C0303AC180C8C0403AC190C8CAE
:10121F000503AC1A0C8C1203A0808401A0004CC7EC
:01122F0010AE
:10123000AE060C8E0C0E8EC00E8ECD0E8EE60E8E71
:10124000F00E8EB00F8EBA0F8E8F118EA6118EB14A
:10125000118E8A12E88EC80E8ED40E8EEB0E8EF58D
:101260000E8EB50F8EBF0F8E94118EAB118EB611F0
:101270008E9012488A4A4A4A4A290709C08D861226
:04128000840284124E
:051284002C00C0A200D7
:061289008E00C0BD9B12A7
:0C128F008D00C0E8E010D0F2684C860D25
:10129B007B5062291B081819000860080000000029
:1012AB00C930900FC93BB00B290FAABD7B1348BDAA
:0312BB0070134865
:0112BE0060CF
:1012BF00C93090FBC93BB0F7290FAABD911348BDA8
:0412CF0086134860DA
:1012D300850DAB0D9510B010FE2AAA12BE122F1267
:0812E3000708090A0D1B0203B4
:0812EB00A06B0D525C9A2B2C44
:0812F300290F100F0F29292912
:1012FB001B3D3E404142434445464748494A4B4CBF
:10130B004D4E4F595A626A6B6C6E6F707172747579
:07131B00767778797A7B7D7B
:101322009A90917C7FBF746BC68182CC843E22C12D
:1013320004D77D8F3A58707B1E49027477628B8C7A
:071342008687686ECE9695C8
:10134900292929290F0D0F0F102929100F11110F04
:101359000F102910291111111129112929292929B8
:071369002929292911292976
:0B13700036BD1C17BD8B8B902126B8EA
:0B137B00291229291111292929291103
:0B13860035BD1D18BE9A8C912227B9BE
:0B1391002912292911112929292911ED
:10139C00A8AE0803BD141A48BD131A4898A0008CB7
:0313AC00080360D3
:0E13AF00C90AF013C97FF00EC920B00EA208C3
:0813BD00DD221AF00ACAD0F883
:0113C50060C7
:0313C6004C2315A0
:0313C9004C0616B9
:0913CC00BD321A48BD2A1A48601E
:0213D500A2274D
:0913D700DD3A1AF004CAD0F860F6
:0913E000BD881A48BD611A48607D
:0713E900A506C9179007607B
:0613F000A506C917B0526A
:0613F600A5099107E606BF
:1013FC00A606BDE3198503BDFB198504A5054AAAFC
:08140C008D55C090038D54C002
:0C1414008A1865038507A9006504850897
:10142000B10785092C0B0330112C1D0C300DC9E0C0
:04143000900229DF1E
:06143400293F0940910769
:01143A006051
:09143B0049802C4714D0024940FD
:03144400910760AD
:011447002084
:04144800A50991075A
:08144C00A987850AA214D0193A
:10145400A5068405F0F2A214850A0A650A0A900218
:02146400E81886
:071466006987850A9001E887
:10146D00860BA0A02C55C02082142C54C0208214B1
:05147D00A0004CFC136F
:05148200A2276C0A0026
:10148700BD80049D0004BD00059D8004BD80059DB1
:101497000005BD00069D8005BD80069D0006BD00B8
:1014A700079D8006BD80079D0007BD28049D800716
:1014B700BDA8049D2804BD28059DA804BDA8059DB9
:1014C7002805BD28069DA805BDA8069D2806BD2898
:1014D700079DA806BDA8079D2807BD50049DA8071E
:1014E700BDD0049D5004BD50059DD004BDD0059DC1
:1014F7005005BD50069DD005BDD0069D5006BD5078
:10150700079DD006BDD0079D5007989DD0078A4AF2
:05151700900320652A8D
:06151C00CA30036C0A0056
:011522006068
:0915230020F0132C0403300960D0
:08152C002C0303100320F0134F
:10153400A50991078405A50385072C55C04C2014E3
:0D154400A605F009A5099107C6054CFC138A
:011551006039
:0A155200A505C94FF009A50991078E
:05155C00E6054CFC1344
:011561006029
:05156200A506D00560A4
:04156700A506F009DC
:09156B00A5099107C6064CFC130A
:0B157400A5099107A0A0A2272C55C0DC
:10157F0020B01A2C54C020B01A989D00042C55C0CE
:0E158F009D000420652ACA10E7A0004CFC1342
:10159D00A50991078405A506F0CD38A917E506F034
:0F15AD00369034A21A850A0A650A0A9002E818D5
:0715BC0069B0850A9001E807
:0815C300860BA960910AA22722
:1015CB002C55C020652A20B01A2C54C020652A2027
:0915DB00B01ACA10EBA9BD910A77
:0315E4004CA317FE
:1015E700A5099107A50518690829F8C950F00585C7
:0415F700054CFC1390
:0815FB00A505C94FF002E60549
:031603004CFC1389
:101606002C0D03100CC95E9008C97FB004A920D028
:0116160013C0
:101617000501300FC940900B2C1D0C1004C960B098
:0116270002C0
:02162800291F78
:10162A002C0C03103F48A5099107A94FC505F033B3
:01163A00AA05
:0C163B00CA8A4AA88D55C090038D54C087
:0B164700B1038D54C090048D55C0C845
:0A16520091038A2903D00320652AC2
:10165C00E405D0DBA000A5054A8D55C090038D5440
:01166C00C0BD
:01166D006814
:10166E0085099107A605E04FD00B2C020310092027
:05167E00F0134C3415CF
:031683004C5C15A7
:031686004C2014E1
:05168900A2048E08031D
:01168E0060FB
:10168F00C918F0FBA2068E0803C92090F2C938B022
:0C169F00EEE91F8506A50991074CFC131D
:0D16AB00C918F00FC9209005C970900318F0
:0216B800A96F18
:0216BA00E91F26
:0216BC008505A2
:0716BE00A50991074CFC1384
:0216C500A2770A
:1016C700A9A02C55C09D00049D80049D00059D8008
:1016D700059D00069D80069D00079D80072C54C030
:1016E7009D00049D80049D00059D80059D00069D2D
:1016F70080069D00079D80078A2907D00320652A59
:05170700CA10BD300412
:04170C00A509910793
:101710008405840684078403A204860886042C5565
:04172000C04C201485
:06172400A605E04FF025D0
:0C172A00E88A4AA88D55C090038D54C079
:0B173600B1038D55C0B0048D54C08875
:0A17410091038A2903D00320652AD2
:04174B00E04FD0DBC0
:0E174F00A9A08D54C0A0279103A0004CFC134C
:02175D00A605DF
:0A175F008A4A8D55C090038D54C0D6
:0D176900A8A9A091038A2903D00320652AB6
:0A177600E8E050D0E4A0004CFC13A2
:02178000A200C5
:0A1782008A4A8D55C090038D54C0B3
:0D178C00A8A9A091038A2903D00320652A93
:0A179900E8E405D0E4A0004CFC13C6
:0217A300A9A0FB
:1017A5002C55C091032C54C09103982903D00320D4
:0217B500652AA3
:0A17B700C8C028D0E7A0004CFC13C6
:1017C100A506AA0505F036E017B02CA505D001CA7B
:0F17D1008A850A0A650AA2186904850A9001E848
:1017E000860BA9A0A2272C55C0200118A2272C5493
:0817F000C0200118A505F0035B
:0317F8004C5D172E
:0317FB004CFC1390
:0317FE004CC516C1
:031801006C0A006E
:101804009D80049D00059D80059D00069D80069D8C
:1018140000079D80079D28049DA8049D28059DA878
:10182400059D28069DA8069D28079DA8079D500490
:101834009DD0049D50059DD0059D50069DD0069DCC
:0D18440050079DD0078A2907D00320652A90
:08185100A9A0CA30036C0A00D3
:01185900602E
:10185A00A606F036E018B032A94EC505A918E50665
:0E186A00850A0A650AA218699D850A9001E8A0
:10187800860BA9A0A2272C55C0209A18A9A0A22798
:0C1888002C54C0209A18A505C94FB003CD
:031894004C80176E
:031897004CFC13F3
:03189A006C0A00D5
:10189D009DD0079D50079DD0069D50069DD0059D5E
:1018AD0050059DD0049D50049DA8079D28079DA817
:1018BD00069D28069DA8059D28059DA8049D280424
:1018CD009D80079D00079D80069D00069D80059DBE
:1018DD0000059D80049D00048A2907D00320652AF8
:0818ED00A9A0CA30036C0A0037
:0118F5006092
:0B18F600A5058D0903A5068D0A0360FF
:0F190100A5099107AD0A038506AD09034CBC1675
:09191000A5099107888C0B036006
:0B1919008C0B03A509C9E0900229DF38
:07192400293F094091076013
:01192B008833
:04192C008C050360C3
:01193000882E
:041931008C060360BD
:101935008C0C038C14038C0B038C0D038C0E038C05
:1019450006038C0F038C10038C11038C070384147E
:1019550084008C09038C0A03AC1E0C8C1303AC1594
:101965000C8C0103AC150C8C0103AC160C8C02031A
:10197500AC170C8C0303AC180C8C0403AC190C8C41
:101985000503AC1A0C8C1203A0808401A0004CC581
:01199500163B
:101996008D01C0AE51C08D0DC084058406840784B8
:0C19A600038C0EC02C1D0C10038C0FC015
:0919B200A204860886044CAF1360
:1019BB00C930900FC93BB00B290FAABD461B48BDC0
:0319CB003B1B487B
:0119CE0060B8
:1019CF00C93090FBC93BB0F7290FAABD5C1B48BDBE
:0419DF00511B4860F0
:1019E300008000800080008028A828A828A828A8B4
:0819F30050D050D050D050D06C
:1019FB000404050506060707040405050606070784
:081A0B000404050506060707A7
:101A1300AE13D4138E16AA16FE2ABA19CE19951927
:081A23000708090A0D1B02036C
:081A2B00A043E6222B9A2B2CAC
:081A33002915151515292929B3
:101A3B001B3D3E404142434445464748494A4B4C77
:101A4B004D4E4F595A626A6B6C6E6F707172747532
:071A5B00767778797A7B7D34
:101A62009A90917C61E85143C481820B66C05C9C70
:101A720053237D883A59F500A2497F7477628B8C93
:071A82008687686E3496951B
:101A89002929292915131515162929171517171580
:101A9900141729162918181917291729292929293D
:071AA9002929292919292927
:101AB000BD50079DD007BDD0069D5007BD50069D67
:101AC000D006BDD0059D5006BD50059DD005BDD0AA
:101AD000049D5005BD50049DD004BDA8079D500431
:101AE000BD28079DA807BDA8069D2807BD28069DFF
:101AF000A806BDA8059D2806BD28059DA805BDA86A
:101B0000049D2805BD28049DA804BD80079D2804C8
:101B1000BD00079D8007BD80069D0007BD00069D96
:101B20008006BD80059D0006BD00059D8005BD8029
:0B1B3000049D0005BD00049D800460C2
:0B1B3B0036CD1C172F0F8B9021262A9F
:0B1B4600291929291919292929291911
:0B1B510035CD1D1830188C9122272B79
:0B1B5C002919292919192929292919FB
:101B6700A8AE0803BDA62348BDA5234898A0008CAE
:031B770008036000
:0E1B7A00C90AF013C97FF00EC920B00EA208F0
:081B8800DDB423F00ACAD0F815
:011B900060F4
:031B91004C711D77
:031B94004CB21E32
:091B9700BDC42348BDBC23486015
:021BA000A2277A
:091BA200DDCC23F004CAD0F86088
:091BAB00BD1A2448BDF323486073
:071BB400A506C917900760A8
:061BBB00A506C917B03FAA
:061BC100A5099107E606EC
:101BC700A606A505C928B00C7D75238507BD8D23FD
:041BD7008508D00F9E
:0F1BDB00E928187D75238507BD8D2369048508CA
:0F1BEA00B10785092C0B03300CC9E0900229DFED
:061BF900293F094091079D
:011BFF006085
:041C0000A50991079A
:081C0400A948850AA21CD03397
:101C0C00A606BD75238507A5058405C928900DBDBD
:0C1C1C008D2385082C050310032C54C0F8
:101C28008AF0D9A21C850A0A650A0A0A9002E818ED
:071C38006948850A9001E8EC
:091C3F00860BA0A0A2276C0A008C
:101C4800BD80089D0008BD80049D0004BD00099D5D
:101C58008008BD00059D8004BD80099D0009BD80E8
:101C6800059D0005BD000A9D8009BD00069D8005F3
:101C7800BD800A9D000ABD80069D0006BD000B9D23
:101C8800800ABD00079D8006BD800B9D000BBD80AE
:101C9800079D0007BD28089D800BBD28049D80076F
:101CA800BDA8089D2808BDA8049D2804BD28099D35
:101CB800A808BD28059DA804BDA8099D2809BDA898
:101CC800059D2805BD280A9DA809BD28069DA805CB
:101CD800BDA80A9D280ABDA8069D2806BD280B9DFB
:101CE800A80ABD28079DA806BDA80B9D280BBDA85E
:101CF800079D2807BD50089DA80BBD50049DA80747
:101D0800BDD0089D5008BDD0049D5004BD50099D0C
:101D1800D008BD50059DD004BDD0099D5009BDD047
:101D2800059D5005BD500A9DD009BD50069DD005A2
:101D3800BDD00A9D500ABDD0069D5006BD500B9DD2
:101D4800D00ABD50079DD006BDD00B9D500BBDD00D
:101D5800079D5007989DD00B9DD00720652ACA3053
:041D6800036C0A00FE
:051D6C00A0004CEA1B81
:091D710020BB1B2C0403300960A7
:081D7A002C0303100320BB1B26
:101D8200A50991078405A606BD75238507BD8D2388
:0A1D920085082C050310032C54C033
:031D9C004CEA1BF3
:101D9F00A605F00FA5099107C605E028F006C607AE
:031DAF004CEA1BE0
:011DB20060D0
:101DB300A50769268507A50838E90485082C0503C6
:051DC30010032C54C0C8
:031DC8004CEA1BC7
:0A1DCB00A605E04FF00FA5099107EF
:0B1DD500E605E027F006E6074CEA1BDD
:011DE00060A2
:101DE100A507E9278507A50818690485082C0503B7
:051DF10010032C55C099
:031DF6004CEA1B99
:051DF900A506D0056005
:041DFE00A506F0093D
:091E0200A5099107C6064CC71B97
:041E0B00A50991078D
:041E0F00A0A0A227C6
:101E1300204224989D00089D000420652ACA10F0E2
:051E2300A0004CEA1BC9
:101E2800A5099107A606BD75238507A5058405C9DB
:101E380028900DBD8D2385082C050310032C54C054
:101E48008AF0C438A917E506F030902EA224850A36
:091E58000A650A0A0A9002E81862
:071E61006942850A9001E8C7
:081E6800860BA960910AA22774
:0B1E70002042248A2907D00320652AA5
:071E7B00CA10F2A9BD910A93
:031E82004CB3203E
:101E8500A5099107A50518690829F8C950F0118514
:0D1E950005C928D0082C050310032C55C0EA
:031EA2004CC71B0F
:0A1EA500A505C94FF004E605E607A5
:031EAF004CEA1BDF
:101EB2002C0D03100CC95E9008C97FB004A920D074
:011EC2000A15
:0A1EC30005013006C9409002291FF6
:071ECD00C9E090034D070C72
:101ED4002C0C03101C48A5099107A505C928902CB2
:071EE400A94FE505F00AA873
:091EEB0088B107C8910788D0F7FF
:011EF4006885
:101EF50085099107A605E04FD00B2C020310092098
:051F0500BB1B4C821D16
:031F0A004CD51D96
:031F0D004CEA1B80
:0F1F1000A5086904850BA606BD7523850AA027C1
:101F1F0088B10AC8910A88D0F7A928E505A8B107A2
:091F2F00A200810A98D0B5F0BCB3
:051F3800A2048E080365
:011F3D006043
:101F3E00C918F0FBA2068E0803C92090F2C938B06A
:0C1F4E00EEE91F8506A50991074CC71B92
:0D1F5A00C918F021C9209005C97090031826
:021F6700A96F60
:021F6900E91F6E
:101F6B00A6058505C928B013E02890082C05031099
:041F7B00032C54C01F
:071F7F00A50991074CC71BE7
:0E1F8600E040B0F52C050310F02C55C090EB98
:021F9400A27732
:101F9600A9A09D00089D00049D80089D80049D00C9
:101FA600099D00059D80099D80059D000A9D0006EE
:101FB6009D800A9D80069D000B9D00079D800B9DC0
:0A1FC60080078A2903D00320652A52
:051FD000CA10C330043B
:041FD500A5099107C2
:101FD900A505840584068407A2048608C9289008F3
:081FE9002C050310032C54C069
:031FF1004CEA1B9C
:0B1FF400A505C9289018E94FF00BAAC2
:0A1FFF00C8B107889107C8E8D0F6C2
:09200900A9A09107A0004CEA1BFC
:05201200E926F00BAA15
:0A201700C8B107889107C8E8D0F6A9
:10202100A508186904850BA50738E505850AA200EE
:08203100A10A9107A000A227FB
:10203900C8B10A88910AC8CAD0F6A9A0910AA00015
:032049004CEA1B43
:08204C00A505C9289010A94F59
:05205400E505A8A9A0AC
:0920590091078810FBC84CEA1B3A
:10206200A5086904850BA606BD7523850AA9A0A04B
:012072002746
:0D207300910A8810FB20652AA92738D0D4D7
:10208000A606BD7523850AA508850BA405C028B042
:032090000BA9A0F9
:09209300910A8810FBC84CEA1BFD
:06209C0098E928A8A9A0A4
:1020A200910A8810FBBC8D23840B20652AA027D0BF
:0120B200E04D
:1020B300A606BD7523850ABD8D23AA186904850B61
:0420C300A9A0A02709
:0C20C700910A8810FB20652A860BA027D8
:0920D300910A8810FBC84CEA1BBD
:1020DC00A506AA0505F022E017B021A505D001CA76
:1020EC008A850A0A650A0AA221690B850A9001E809
:0920FC00860BA9A0A2276C0A00C2
:032105004C941FD8
:032108004C4C201C
:10210B009D80089D80049D00099D00059D80099D73
:10211B0080059D000A9D00069D800A9D80069D00FE
:10212B000B9D00079D800B9D80079D28089D280413
:10213B009DA8089DA8049D28099D28059DA8099D7B
:10214B00A8059D280A9D28069DA80A9DA8069D28DE
:10215B000B9D28079DA80B9DA8079D50089D50041B
:10216B009DD0089DD0049D50099D50059DD0099D83
:10217B00D0059D500A9D50069DD00A9DD0069D50BE
:10218B000B9D50079DD00B9DD0078A2907D00320AC
:02219B00652AB3
:08219D00A9A0CA30036C0A007E
:0721A500A505F0034C4C20DE
:0321AC004CEA1BDF
:1021AF00A606F024E018B020A94EC505A918E5062B
:0F21BF00850A0A650A0AA22169DA850A9001E8F1
:0921CE00860BA9A0A2276C0A00EF
:0321D7004C802019
:1021DA009DD00B9DD0079D500B9D50079DD00A9D09
:1021EA00D0069D500A9D50069DD0099DD0059D5050
:1021FA00099D50059DD0089DD0049D50089D50040E
:10220A009DA80B9DA8079D280B9D28079DA80A9DA0
:10221A00A8069D280A9D28069DA8099DA8059D280F
:10222A00099D28059DA8089DA8049D28089D2804A5
:10223A009D800B9D80079D000B9D00079D800A9D38
:10224A0080069D000A9D00069D80099D80059D00CF
:10225A00099D00059D80089D80049D00089D00043D
:08226A008A2907D00320652A30
:08227200A9A0CA30036C0A00A8
:09227A00A505C94FB0034C8020FA
:032283004CEA1B07
:0B228600A5058D0903A5068D0A036065
:0F229100A5099107AD0A038506AD09034C6B1F24
:0922A000A5099107888C0B03606D
:0B22A9008C0B03A509C9E0900229DF9F
:0722B400293F09409107607A
:0C22BB0088A505C928B0052C54C090036C
:0322C7002C55C0D3
:0422CA008C0503601C
:0122CE008887
:0422CF008C06036016
:1022D3008C0C038C14038C0B038C0D038C0E038C5E
:1022E30006038C0F038C10038C11038C07038414D7
:1022F30084008C09038C0A03AC1E0C8C1303AC15ED
:102303000C8C0103AC150C8C0103AC160C8C020372
:10231300AC170C8C0303AC180C8C0403AC190C8C99
:102323000503AC1A0C8C1203A0808401A0004C940A
:012333001F8A
:102334002C51C02C54C02C53C02C57C08405840687
:092344008407A20486084C7A1BF0
:10234D00C930900FC93BB00B290FAABD622548BDFE
:03235D00572548B9
:01236000601C
:10236100C93090FBC93BB0F7290FAABD782548BDFC
:042371006D2548602E
:10237500008000800080008028A828A828A828A818
:0823850050D050D050D050D0D0
:10238D0004040505060607070404050506060707E8
:08239D0004040505060607070C
:1023A500791B9F1B3D1F591FFE2A4C236023332396
:0823B5000708090A0D1B0203D1
:0823BD00A09E8470799A2B2C7C
:0823C500291D1E1D1D292929F7
:1023CD001B3D3E404142434445464748494A4B4CDC
:1023DD004D4E4F595A626A6B6C6E6F707172747597
:0723ED00767778797A7B7D99
:1023F4009A90917CF8B3CA9E938182D4FDDB4B27DB
:102404000BF37D373AAE8590B2497F7477628B8C3B
:072414008687686ED29695E1
:10241B00292929291D1B1D1D1F29291F1D20201E90
:10242B001C1F291F2921222220292029292929295A
:07243B002929292922292982
:10244200BD500B9DD00BBD50079DD007BDD00A9D3E
:10245200500BBDD0069D5007BD500A9DD00ABD50FD
:10246200069DD006BDD0099D500ABDD0059D5006DF
:10247200BD50099DD009BD50059DD005BDD0089D18
:102482005009BDD0049D5005BD50089DD008BD50D7
:10249200049DD004BDA80B9D5008BDA8079D500403
:1024A200BD280B9DA80BBD28079DA807BDA80A9DA6
:1024B200280BBDA8069D2807BD280A9DA80ABD288D
:1024C200069DA806BDA8099D280ABDA8059D280647
:1024D200BD28099DA809BD28059DA805BDA8089D80
:1024E2002809BDA8049D2805BD28089DA808BD2867
:1024F200049DA804BD800B9D2808BD80079D28046B
:10250200BD000B9D800BBD00079D8007BD800A9D0D
:10251200000BBD80069D0007BD000A9D800ABD001C
:10252200069D8006BD80099D000ABD80059D0006AE
:10253200BD00099D8009BD00059D8005BD80089DE7
:102542000009BD80049D0005BD00089D8008BD00F6
:05255200049D800460FF
:0B255700365F1C17CD9F8B902126BA29
:0B2562002923292922222929292922C6
:0B256D00355F1D18CEA88C912227C9F5
:0B2578002923292922222929292922B0
:10258300A200861786168E0003AC0A0C98D012A000
:102593002D8C2626C88C2C26A9818D25268D2B26AD
:0125A30060D7
:1025A40088D012A02F8C2626C88C2C26A9818D2594
:0525B400268D2B2660BE
:0E25B9008D26268E25268E2B26A8C88C2C2635
:0125C70060B3
:0825C8002C080C1003207927F8
:0F25D0002C00C010F22C010330242C30C0A204C8
:0B25DF0020652ACAD0FA2C30C0A204EC
:0B25EA0020652ACAD0FA2C30C0A204E1
:0925F50020652ACAD0FA2C30C07E
:1025FE002C090C1010AD00C02C10C00A2E62C06A3F
:05260E0049804C1E266E
:0B261300AD00C02C10C00A2E63C06A8E
:06261E00A82C1403300695
:06262400B9FFFF4C2D265A
:03262A00B9FFFFF6
:10262D00A8C0FFD016A90085178D0003A90E8D082F
:0B263D0003A91B20B628A97A4CB62880
:102648002C11033011A5170AAABDE12748BDE027C0
:062658004898A000841761
:01265E00601B
:10265F00AA30592C0B0C100AC9619006C97BB00225
:02266F00295FE1
:0C2671002C080C10072C61C0100209801E
:0D267D002C00031008861820B628A618604F
:08268A002C1C0C300320602A17
:10269200CD100CD00E2C140C100924001005A980AA
:0326A2008514603C
:1026A50024243011A4259127C88425A900C426D047
:0326B50002A980F7
:0226B800852477
:0126BA0060BF
:0F26BB00C9D0B00B0AA8B99D2748B99C27486021
:0C26CA00C9E0B01C290FAAA91B207D2626
:0626D600BDDC264C7D2650
:0E26DC0053545556574A5051524541424344BB
:0726EA002C0F031002491040
:1026F100291F2C1003301DA8B93927C9409009F0B2
:012701000ACD
:01270200AA2C
:06270300A91B207D268ABF
:032709004C7D26DE
:09270C002C0C0310F1A24FD0EED9
:0E271500AAA91B207D26E0109004E019900573
:05272300A93F207D2606
:0E272800BD5927C940D0072C0C031002A94F41
:032736004C7D26B1
:10273900373839343536313233302E0D3F3F3F3F4C
:1027490040414E4448434C424D302E0D3F3F3F3FA0
:10275900777879747576717273706E4D3F3F3F3F2C
:1027690040414E4448434C424D706E4D3F3F3F3FC0
:102779002C61C010162C62C010112C1103300BA54E
:0A27890016D00720CD2AA9018516FD
:0127930060E5
:08279400A416F0FBC8841660D6
:10279C004D285628E72744286528EC2768287428F4
:0E27AC0080288A28F827EF27CC2A3B285F28B0
:0427DC00982894287D
:0827E0005E261B2BFD271228C9
:0527E800A90C4C452D79
:0327ED00E617608C
:0927F000AD140349808D1403604F
:0527F900A90285176034
:1027FE00202228900B0A0A0A0A8518A90385176059
:05280E00A90085176020
:0E281300A0008417202228900505184C7D2671
:012821006056
:0B282200C9309015C93AB003E92F60DF
:0D282D0029DFC9419008C947B003E93660B2
:01283A001885
:01283B00603C
:09283C00AD000349FF8D000360AB
:09284500AD130349FF8D1303607C
:09284E00AD070349FF8D0703608B
:09285700AD0B0C49808D0B0C60E7
:0628600020A3304C752D91
:032866004C59FFCB
:09286900A9082C12031002A97F3A
:032872004C7D2674
:09287500A97F2C12031002A9082E
:03287E004C7D2668
:0A288100A910207D26A9054C7D2634
:0A288B00A910207D26A9104C7D261F
:04289500A94AD0027A
:02289900A9454F
:08289B00A2028E08034CB628CE
:1028A300A90E8D0803AC0C0CB9C6298519B9C92921
:0328B300851A6023
:0328B6006C19009A
:1028B9002C00033059241E70552C070310092C14C1
:0728C9000C10042429304724
:1028D000A420B121AAC88420A900C41FD002A94005
:1028E000851EC6232C140C10212400101DA523CDF9
:1028F000130CD01624141008A90085148500F00AC2
:0A290000AD110C20A526A9008500EA
:0A290A008A2C0703100420452D8AD3
:032914004CB62896
:01291700605F
:012918008836
:042919008C0E0360BD
:01291D008831
:04291E008C010360C5
:01292200882C
:042923008C030360BE
:012927008827
:042928008C040360B8
:01292C008822
:08292D002C130330038C070397
:012935006041
:012936008818
:042937008C1203609B
:0F293B00A91B20A526A92F20A526A94B4CA52610
:10294A00A91B20A526A95920A526A506092020A548
:09295A0026A5051869204CA526EC
:06296300A2088E080360CB
:05296900A20A8E080324
:01296E006008
:05296F00A20C8E08031C
:012974006002
:032975008401607A
:05297800A9808501604B
:01297D0088D1
:04297E008C0C03605A
:0129820088CC
:042983008C0D036054
:0129870088C7
:042988008C0203605A
:01298C0088C2
:04298D008C0F036048
:0129910088BD
:042992008C10036042
:0129960088B8
:042997008C1103603C
:06299B00A2028E08036099
:0A29A1002C40C0A91020B729A04067
:0C29AB00A90320B729AD30C088D0F5602A
:0129B70038E7
:0429B80020652A4824
:0A29BC00E901D0FC68E901D0F360E6
:0329C60067739C98
:0329C9001B0D13D0
:1029CC00AC040CD034A9028DB12AA9018D6B2AACB0
:1029DC00050C8C682A8CAE2A8CFD298C022A8CD58D
:1029EC002A8CF62A8C192BC88C732A8CBD2AA90325
:0529FC008D00C0A911CF
:042A01008D00C06024
:102A050088D057A9108DB12AA9088D6B2AAC050C61
:102A15008C732A8CBD2AC88C682A8CAE2AC88C591E
:102A25002A8CDC2A8CFC2AC88CD52A8CF62A8C198F
:072A35002B8C3D2A8C542A72
:072A3C00AD00C0F00CA20088
:0A2A4300DD582BF00EE8E00DD0F690
:062A4D00AE030CBD582B86
:032A53008D00C033
:022A5600A90BCA
:072A58008D00C08E030C602D
:012A5F000076
:052A6000851B4C772AE4
:022A6500851BCF
:032A6700AD00C0FF
:082A6A002900F03C241E303865
:052A7200AD00C0297F4A
:102A7700841CE6232C140C10172400301348A523BC
:0F2A8700CD120CD00AAD100C20A526A980850019
:012A960068D7
:0F2A9700A41F9121C8841FA900C420D002A980C8
:042AA600851EA41CC9
:032AAA00A51B6009
:032AAD00AD00C0B9
:0C2AB0002900F01824247014A426B1277B
:0E2ABC008D00C0C88426A900C425D002A94000
:022ACA00852461
:012ACC0060A9
:072ACD00AC040CD007A97155
:052AD4008D00C0D005DB
:022AD900A90F43
:032ADB008D00C0AB
:062ADE00A91D8510A200F5
:102AE40020652ACAD0FAC610D0F6AC040CD006A9C8
:012AF40011D0
:042AF5008D00C06030
:022AF900A90B27
:042AFB008D00C0602A
:062AFF00AC040CD00160E4
:102B0500C9419012C94EB00EE940AABD582BF00636
:032B15008E030C20
:032B18008D00C06D
:012B1B006059
:062B1C00AC040CD00160C6
:0A2B2200C9619006C97BB00229DFEB
:0B2B2C00C9419027C94EB02320FF2AAA
:062B3700AC040CD00160AB
:0C2B3D00BD652B8510BD722B8511A0001A
:0E2B4900B110F00A841C20B628A41CC8D0F2DB
:012B5700601D
:0D2B5800931516171819001A1B1C1D1E1FBF
:0D2B65007F8C99A6B3C1CFE9F70513212F8E
:0D2B72002B2B2B2B2B2B2B2B2B2C2C2C2C23
:0D2B7F000D0A31313020626175640D0A00CD
:0D2B8C000D0A31353020626175640D0A00BC
:0D2B99000D0A33303020626175640D0A00B2
:0D2BA6000D0A36303020626175640D0A00A2
:0E2BB3000D0A3132303020626175640D0A0067
:0E2BC1000D0A3138303020626175640D0A0053
:102BCF000D0A32303030206261756420756E617687
:0A2BDF0061696C61626C650D0A000B
:0E2BE9000D0A3234303020626175640D0A002E
:0E2BF7000D0A3336303020626175640D0A001D
:0E2C05000D0A3438303020626175640D0A000B
:0E2C13000D0A3732303020626175640D0A0000
:0E2C21000D0A3936303020626175640D0A00EC
:0F2C2F000D0A313932303020626175640D0A00B0
:102C3E00A900851DAC0D0CF01488D012AD0E0C8DB4
:0D2C4E00232D4A4A4A4A290709C08D042D4A
:012C5B006018
:102C5C0088D012AC0E0C8C232DC88C0D2D8CEB2C2B
:052C6C00C88CF02C6093
:102C710088D025A9068D172DA9028D192DAC0E0C12
:0F2C81008C142D8C912C8C962CC88C232DA90390
:052C90008D00C0A91138
:042C95008D00C0608E
:102C990088D042A9308D172DA9108D192DAC0E0C95
:102CA9008C232DC88C142DC88CD82CC88CBC2C8C8A
:022CB900D32C1A
:072CBB00AD00C0F00CA20007
:0A2CC200DD582BF00EE8E00DD0F60F
:062CCC00AE0F0CBD582BF9
:032CD2008D00C0B2
:022CD500A90B49
:072CD7008D00C08E0F0C60A0
:012CDE0000F5
:0B2CDF00241D1013AC0D0CC002D00C23
:052CEA002C81C03055F3
:072CEF002C82C0A900851D25
:0C2CF6002429704AAC0D0CF04588D00772
:072D02002CC1C0303D10138D
:032D090088D00768
:072D0C002C00C03033100958
:032D1300AD00C050
:022D1600290092
:042D18004900D02876
:062D1C00A000B12C297F8C
:092D22008D00C0E62CD002E62D64
:0B2D2B00A52DCD1B0CD004A936852D72
:0C2D3600C52BD008A52AC52CD002A04057
:022D42008429E2
:012D4400602E
:102D4500AC0D0CF0FA24293024A000912AE62AD0F3
:032D550002E62B68
:0B2D5800A52BCD1B0CD004A936852B49
:0C2D6300C52DD008A52AC52CD002A080E8
:032D6F0084296054
:032D72004CA12948
:0B2D7500AD0D0CC902D004A980851D23
:012D800060F2
:102D8100601C1D1E1F84828C8783FF5B5C0D0E5FA0
:102D9100107B7C7D7E858D818B8A801B1C5D5E1FF7
:102DA100002122232425262728292A2B2C2D2E2FCA
:102DB100403132333435363738393A3B3C3D3E3F8A
:102DC100504142434445464748494A4B4C4D4E4F7A
:102DD100505152535455565758595A5B5C4D4E5F9A
:102DE100606162636465666768696A6B6C6D6E6F6A
:102DF100707172737475767778797A7B7C7D7E7F5A
:102E0100000102030405060786090A0B0C0D0E0FCB
:102E1100101112131415161718191A1B1C1D1E1F39
:102E2100202122232425262728292A2B2C2D2E2F29
:102E3100303132333435363738393A3B3C3D3E3F19
:102E4100406162636465666768696A6B6C6D6E6F29
:102E5100707172737475767778797A5B5C5D5E5F99
:102E6100606162636465666768696A6B6C6D6E6FE9
:102E7100707172737475767778797A7B7C7D7E7FD9
:102E81008B8B8B8E8B84828C8B83FF8B8B8B8B8B31
:102E91008B8B8B8B8B858D818B8A808B8B8B8B8B9B
:102EA1008BD0D1D2D3D4D9D6D7D88B8B8B8B8B8BDC
:102EB1008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B61
:102EC1008BF3FAF8F5F28B8B8B8B8B8B8B8B8B8B3C
:102ED1008BF08BF48B8BF9F1F78BF68B8B8BFB8B58
:102EE1008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B31
:102EF1008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B21
:102F01008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B10
:102F11008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B00
:102F21008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8BF0
:102F31008BD0D1D2D3D4D5D6D7D88B8B8B8B8B8B4F
:102F41008BE3EAE8E5E28B8B8B8B8B8B8B8BEB8BAB
:102F51008BE08BE48B8BE9E1E78BE68B8B8B8B8BA7
:102F61008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8BB0
:102F71008B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8BA0
:102F81000001020304050607DD09DBDA0C0D0E0F53
:102F91001011121314DC161718191A8D1C1DA01FFD
:102FA10020D022D2D3D4D627D8F0D7F2EAE1EB2F22
:102FB100E0D0D1D2D3D4D5D6D7D8F8E8FAE2FB3FC6
:102FC100408A858E4484824748834AF6F7F94EF356
:102FD100F451FF5354555657585980E55C5DD9F16A
:102FE100608A858E6484826768836AE6E7E96EE3B6
:102FF100E471FF7374757677787980F57C7D7E7FD7
:10300100000102030405060708090A0B0C0D0E0F47
:10301100101112131415161718191A1B1C1D1E1F37
:10302100202122232425262728292A2B2C2D2E2F27
:10303100303132333435363738393A3B3C3D3E3F17
:10304100404142434445464748494A4B4C4D4E4F07
:10305100505152535455565758595A5B5C5D5E5FF7
:10306100606162636465666768696A6B6C6D6E6FE7
:10307100707172737475767778797A7B7C7D7E7FD7
:10308100A940851E8524851F852585208526A900C3
:103091008521A9348522A9008527A9358528A9007C
:0230A100852385
:1030A300A936852B852DA900852A852CA94085293C
:0130B30060BC
:000C0001F3
-- 
David Neves
Computer Sciences Department
University of Wisconsin-Madison

Usenet:  {allegra,heurikon,ihnp4,seismo,uwm-evax}!uwvax!neves
Arpanet: neves@uwvax

neves@uwai.UUCP (David Neves) (03/01/86)

CALL -151
9000:4C 9D 91 0 0 B9 A0 E0 CC A0 D0 A0 A0 CC A0 E0
9010:BA D1 D9 A0 C5 E0 A0 EF A0 A0 A5 B0 A4 A2 B1 A0
9020:D0 A0 FA A0 A0 A0 A9 A0 EF A0 A0 8A BA D1 CF C4
9030:D0 B0 A0 C0 A0 B0 D0 A0 A0 85 F2 E6 A0 E5 E8 A0
9040:D5 85 D3 E3 B4 BB E0 A0 B7 F0 B8 F4 FE D2 D9 A0
9050:A0 E9 A0 A0 C0 C4 D3 BA D3 E4 A0 A0 DF A0 C6 E0
9060:A0 B9 A0 A4 A2 A0 A0 CF E1 89 FF C5 AA A0 A0 E0
9070:A0 D0 B0 A0 A8 A0 A0 89 B0 E8 E3 E5 AA C0 E5 D1
9080:A0 A0 A5 A0 CC B3 C5 C9 A0 A0 92 B5 85 B9 C4 E0
9090:C0 A0 E9 A0 A0 CC A0 E0 BA D1 D9 A0 C5 E0 A0 EF
90A0:D8 A0 A5 B0 A4 A2 A0 A0 D0 A0 EF A0 E1 8A BA D1
90B0:CF C4 E6 B0 A0 89 A0 B0 E1 A0 C8 CC F2 A9 A0 E5
90C0:C9 A0 D5 A5 D3 E3 EF C4 E0 A0 B8 F0 B9 93 FE D4
90D0:E0 A0 A0 D4 A0 A0 E2 C4 B9 A0 D3 F0 A0 A0 A0 A0
90E0:C6 B0 A0 F0 A0 A0 A2 A0 A0 EE A0 85 FF C5 AA A0
90F0:A0 C0 A0 86 B0 A0 C8 A0 A0 A5 B0 A9 B4 A5 A0 89
9100:A0 A0 BD BA A0 E0 CD D0 A0 A0 E1 A0 B0 D5 B2 D0
9110:A0 D0 E5 D0 A0 C0 A0 A0 C5 A0 8A CC C4 B8 A0 A0
9120:EC A0 D0 B0 0 0 0 0 0 0 0 0 0 0 0 C6
9130:C9 CC C5 CE C1 CD C5 A0 D4 CF A0 CC CF C1 C4 BF
9140:A0 0 87 8D C3 C8 C5 C3 CB D3 D5 CD A0 C5 D2 D2
9150:CF D2 0 87 8D C5 D2 D2 CF D2 A0 CF D0 C5 CE C9
9160:CE C7 A0 C6 C9 CC C5 A0 0 87 8D C5 D2 D2 CF D2
9170:A0 D2 C5 C1 C4 C9 CE C7 A0 C6 C9 CC C5 A0 0 A0
9180:A0 EF B5 A0 87 A0 A0 FB B4 CC E9 A0 D6 C0 A0 D0
9190:A0 A0 E9 B5 C3 B1 C1 EC B4 A0 8A A0 80 20 89 FE
91A0:20 93 FE 20 58 FC A2 2F A0 91 20 AB 92 A2 0 20
91B0:75 FD 86 2 A2 7E A9 A0 9D 5 90 CA 30 3 4C B8
91C0:91 A6 2 CA BD 0 2 9D 5 90 CA 30 3 4C C4 91
91D0:20 E3 92 4C 14 94 20 36 93 4C E6 91 C9 BA D0 F6
91E0:20 EC 91 4C D6 91 20 FB 93 4C D0 3 A0 0 84 6
91F0:8C 2B 91 20 5F 92 C9 0 D0 3 4C BF 92 48 A9 A4
9200:20 ED FD 68 20 4D 92 85 2 20 5F 92 20 4D 92 85
9210:04 20 DA FD 20 5F 92 20 4D 92 85 3 20 DA FD 20
9220:5F 92 20 4D 92 C9 0 F0 3 20 BF 92 C6 2 A6 2
9230:30 F 20 5F 92 A4 6 20 4D 92 91 3 E6 6 4C 2C
9240:92 20 5F 92 20 4D 92 AD 2B 91 D0 B 60 48 18 6D
9250:2B 91 8D 2B 91 68 60 A2 42 A0 91 20 AB 92 60 20
9260:72 92 85 7 20 72 92 85 8 A5 7 A A A A 5
9270:08 60 20 36 93 4C 98 92 C9 B0 30 16 C9 BA 30 E
9280:C9 C1 30 E C9 C7 30 3 4C 92 92 38 E9 7 38 E9
9290:B0 60 20 57 92 A9 FF 60 A2 69 A0 91 20 AB 92 20
92A0:8E FD 68 68 68 68 68 68 4C E6 91 86 0 84 1 A0
92B0:00 B1 0 F0 9 20 ED FD C8 F0 3 4C B1 92 60 8D
92C0:2C 91 8E 2D 91 8C 2E 91 68 AA 68 A8 8A 18 69 4
92D0:90 1 C8 85 0 84 1 AD 2C 91 AE 2D 91 AC 2E 91
92E0:6C 0 0 A9 0 8D 28 91 A9 1 8D 5F AA 4C F6 92
92F0:20 23 93 4C 14 94 A0 0 B9 5 90 9 80 C9 80 D0
9300:02 A9 A0 99 75 AA C8 C0 1F 10 3 4C F8 92 AD 25
9310:91 20 D5 A3 A9 7F 8D 3 90 A9 7E 8D 4 90 A9 1
9320:4C BF 92 A9 5 8D C3 B5 A9 90 8D C4 B5 20 C9 B1
9330:B0 3 4C BF 92 60 AE 3 90 EC 4 90 10 3 4C DB
9340:93 AD 2A 91 C9 1 D0 3 4C F0 93 A9 3 8D BB B5
9350:A9 0 8D C2 B5 A9 7E 8D C1 B5 A9 2 8D BC B5 A9
9360:24 8D C3 B5 A9 90 8D C4 B5 20 6 AB AD C5 B5 C9
9370:00 F0 1A C9 5 F0 3 4C F8 93 A9 7D 38 ED C1 B5
9380:F0 6E 8D 4 90 A9 0 8D 3 90 4C DB 93 A9 0 8D
9390:03 90 A9 7E 8D 4 90 AD 28 91 C9 1 D0 3D A2 0
93A0:AD 25 91 C9 4 D0 2 E8 E8 BD 24 90 8D 26 91 E8
93B0:BD 24 90 8D 27 91 A2 2 AD 25 91 C9 4 D0 2 E8
93C0:E8 8E 2C 91 18 AD 26 91 6D 2C 91 8D 26 91 AD 27
93D0:91 69 0 8D 27 91 A9 0 8D 28 91 AE 3 90 BD 24
93E0:90 EE 3 90 AE 24 91 E0 1 D0 2 29 7F 4C BF 92
93F0:A9 1 8D 29 91 A9 0 60 4C 1F 94 A0 0 B9 5 90
9400:99 75 AA C8 C0 1F 10 3 4C FD 93 AD 25 91 20 EA
9410:A2 A9 1 60 A2 53 A0 91 20 AB 92 20 8E FD 60 A2
9420:69 A0 91 20 AB 92 20 8E FD 60
3D0G
BSAVE LOADINTEL,A$9000,L$42A




-- 
David Neves
Computer Sciences Department
University of Wisconsin-Madison

Usenet:  {allegra,heurikon,ihnp4,seismo,uwm-evax}!uwvax!neves
Arpanet: neves@uwvax