PC-E500 Dump Tool

The following document includes and explains two programs.  The first allows
you to look into your PC-E500/E500's memory, modify memory (be careful) and
also enter programs from popular (Japanese) magazines.  The second program
(written in machine language) is an assembler for the PC-E500.  I know the
assembler won't be much use to you without memory maps, instruction tables
etc, (these are available) but the sample programs should be of some initial
interest.

This document was given to me by my Sharp dealer.  I do not know where it
came from (apart from Japan) and I do not know who wrote it (apart from the
fact that he is be VERY good).  I do not claim to be the author of this
document or programs.  If anyone does know who it is by, please let me know.

The document appears almost exactly as it was given to me except that I have
corrected the english in a few places and also added a section at the end of
the document which explains how the hex dump can be entered through the
serial port rather than the keyboard.

Happy programming and if you have any public domain programs for the
PC-E500 please post them to the net or EMAIL me a copy.

For your reference, the Sharp PC-E500 was used in a research project
(The development of a stereoscopic video system) conducted by me in
1990-1992.

P.S.  There is more where this came from...

Andrew Woods.

                              PC-E500 DUMP TOOL
                              -----------------

This program contains the following functions.  (all numeric data are input
in hexidecimal notation).

1. Dump list (list of memory contents)
   When the program is run and an address is entered in 5 digits of hexa-
   decimal notation.  Contents equivalent to 16 bytes of the address are
   displayed.

         (display)
             ------------------------------------------
             |00000 =BC 40 00 00 E8 56 0B E9 /........|
             |[2E,D3]F6 0B 80 00 92 B5 0B 00 /........|
             |00010 =06 00 A0 F5 5C 41 20 20 /........|
             |[78,79]00 02 9F 9F 9F 00 F9 A1 /........|
             ------------------------------------------
               ^   ^                            ^
               |   |                            |
   data check-sum  \--data check-sum            \--ASCII code
   of 00010H-00017H   of 00018H-0001FH

   If any key is pressed, automatic scrolling stops temporarily.  If any key
   is pressed again, it resumes.  Pressing the [Q] key returns to address
   input mode and pressing [S] key returns to alteration mode of memory
   content.

2. Alteration of memory contents.
   Press the [S] key while executing dump list to enter the mode in which
   imput/change of memory contents is possible.  When the "SET ADDRESS=" is
   displayed, input the desired address.

         (display)
             ------------------------------------------
             |SET ADDRESS=BFCBC                       |
             |BFCBC(05)=(DATA)                        |
             |      |     |                           |
             |      |     |                           |
             -------|-----|----------------------------
                    |     |
                    |     \------new data
                    |
                    \-old data

   If [ENTER] is pressed without inputting data, it becomes possible to
   proceed to the next address without changing value.  You can return to the
   proceeding address by one by inputting "-" and to the first address input
   in this mode by inputting "Q".  If "Q" is input once again, you can return
   to the dump list mode.

   *NOTE*

   *  Rewriting of memory contents must be executed carefully.  (Runaway may
      be resulted by wrong rewriting.)  (Further, due to Display-RAM address,
      the display may get confused near the address 02000H.)
   *  Be sure to reserve Machine-Code-Area before input.

      (method)
         POKE&HBFE03,&H1A,&HFD,&H0B,&H(low),&H(mid),&H(high)
         CALL&HFFFD8

      For example, if you want to want to reserve 001234H bytes, input as...
            low=&H34, mid=&H12, high=&H00

      ('RESET' state is called by this execution.)
      By doing this, 001234H bytes of 0BE9CCH-0BFBFFH is reserved as the
      Machine-Code-Area.
      Once the area us reserved as above, it is retained unless "ALL-RESET"
      is executed.  (0BFBFFH=fixed address)

      (example: MACHINE CODE AREA = 1234H bytes)

      00000H  +---------------------+
              |                     |
              |   ------------      |
              |                     |
      40000H  +---------------------+---------+---------+8KB CARD+
              |                     |32KB CARD|16KB CARD+--------+
              |   64KB CARD         |         +---------+
              |                     +---------+
              |                     |
              |                     |
      50000H  +---------------------+
              |   (FOR EXTENSION)   |
              |                     |
              |                     |
              |                     |
              |                     |
      B8000H  +---------------------+ <------------\
              |     USER AREA       |              |
              |                     |              | INTERNAL
              +---------------------+ <-\          | RAM
              |   ^     ^     ^     |   | MACHINE  | (32KB)
              |   |     |     |     |   | CODE     |
              | SIZE = 1234H bytes  |   | AREA     |
      BFC00H  +---------------------+ <-/          |
      ------  |                     |              |
              | WORK AREA (reserved)|              |
              |                     |              |
      C0000H  +---------------------+ <------------/
              |                     |
              |  INTERNAL ROM       |
              |    (256KB)          |
              |                     |
      FFFFFH  -----------------------



DUMP TOOL BASIC LISTING
-----------------------



5 ' save as "DUMPTOOL.BAS"
10 'DUMP TOOL 1989.11.21
20 CLEAR :CLS :ON ERROR GOTO "ERR1"
30 INPUT "DUMP ADDRESS=";Y$
40 AD=VAL ("&H"+Y$):C=-1
50 C=C*-1:AD$="00000":AD2$=HEX$ AD:AD$=LEFT$ (AD$,5-LEN AD2$)+AD2$
60 DA$=HEX$ TTL:IF LEN DA$=1 THEN DA$="0"+DA$
70 IF C=-1 THEN PRINT "[";RIGHT$ (DA$,2);",  ]";
80 IF C=1 THEN PRINT AD$;" =";
90 CHA$="":TTL=0:FOR T=AD TO AD+7
100 CHA=PEEK T:TTL=TTL+CHA:DA$=HEX$ CHA:IF CHA<32 THEN CHA=&H2E
110 CHA$=CHA$+CHR$ CHA
120 IF LEN DA$=1 THEN DA$="0"+DA$
130 PRINT DA$;" ";
140 I$=INKEY$
150 IF I$="S" THEN T=AD+7:NEXT :I$=STR$ (AD):GOTO 230
160 IF I$="Q" THEN T=AD+7:NEXT :GOTO 20
170 IF I$<>"" THEN BEEP 1:I$=INPUT $(1):BEEP 1
180 NEXT :PRINT "/";CHA$
190 AD=AD+8:IF AD>&HFFFFF THEN AD=0
200 DA$=HEX$ TTL:IF LEN DA$=1 THEN DA$="0"+DA$
210 IF C=-1 THEN LOCATE 4,PEEK &HBFC9C-1:PRINT RIGHT$ (DA$,2)
220 GOTO 50
230 "M":ON ERROR GOTO "ERR2"
240 PRINT :I$=Y$:INPUT "SET ADDRESS=";I$:IF I$="Q"THEN 30
250 AD=VAL ("&H"+I$)
260 AD$="00000":AD2$=HEX$ AD:AD$=LEFT$ (AD$,5-LEN AD2$)+AD2$
270 X$=HEX$ (PEEK AD)
280 IF LEN X$=1 THEN X$="0"+X$
290 PRINT AD$;"(";X$;")=";
300 INPUT X$
310 IF X$="Q"OR X$="S"THEN "M"
320 IF X$="-"THEN AD=AD-1:X$="":IF AD<0 THEN AD=&HFFFFF:GOTO260 ELSE GOTO260
330 IF VAL (X$)>255THEN 260
340 POKE AD,VAL ("&H"+X$)
350 AD=AD+1:IF AD>&HFFFFF THEN AD=0360 GOTO 260
370 "ERR1":RESUME 30
380 "ERR2":RESUME "M"



ASSEMBLER FOR PC-E500
---------------------

* How to input
   1. Reserve the machine-code-area
      Area more than 5KB is required for the machine language.
       (example:  Approximately 8KB of machine-language)
         POKE &BFE03,&1A,&FD,&B,0,&20,0:CALL&FFFD8
   2. Input with DUMP TOOL
         * Execute the DUMP TOOL
         * Input the lead(top) address
            BEC00 [ENTER]
         * Press the [S] key
         * Press the [ENTER] key
         * Input the machine language program
   3. Record the program in the peripheral device.
         * Make sure that input is correctly made.
         * Execute recording.
            SAVEM "ASM",&BEC00,&BFBFF,&BEC00

* How to use (with example)
   1. Input the source program in BASIC mode.
         10 "       ORG   0BE000H     ;Addition sample
         20 "START: MV    A,2         ;A=2
         30 "       ADD   A,3         ;A=A+3
         40 "       MV    [0BE020H],A ;POKE &BE020,A
         50 "       RETF              ;RETURN
   2. Execute the Assembler.
         * LOADM "ASM" (If Assembler is already loaded, CALL&BEC00)
         * If an error occurred, recheck in BASIC mode.
   3. Execute the machine language program.
         'CALL' command is used for executing the machine language.
         Input as:
            CALL &BE000 [ENTER]
            PEEK &BE020 [ENTER]
         "5" that is the result of 2+3 is displayed.

* Assembler Specifications

   1. Format
         Line No. " Label:  Mnemonic  Operand  ; Comment
         --------   ------  --------  -------  ---------
      Lower-case character cannot be used for Label and Mnemonic.

   2. Label
         * Character of the lead should be in capital letters.
         * Capital letter/ numeral/ @ can be used.
         * Maximum 6 characters can be used.
         * ":" Mark should be put ar the end of label.

   3. Mnemonic (command)
         * Conforms to the CPU (SC62015)

   4. Pseudo instructions
         These are instructions which are not converted into machine
         language, but are to set the Assembler itself.

         * ORG
               ORG expression1 [,expression2]

            Machine language program is written from the memory address
            indicated by expression 1.
            When expression 2 is set, a program to be written in the memory
            address indicated by expression 1 is created and it is written in
            the memory address indicated by expression 2.  This is convenient
            when you want to write temporarily in the memory address that
            differs from the address of actual operation.

         * END
            This is used to terminate Assembly.

         * EQU
               Label EQU expression

            This is used to set value for expression at the label.  It is not
            required to put ":" mark at the end of the label.  The label
            cannot be used for the expression.

         * DB
               DB expression [,expression] ...

            This is used to write expression value in the memory as 8-bits
            data.  Plural numbers of values can be written be delimiting with
            ",".

         * DW
               DW expression [,expression] ...

            This is used to write expression value in the memory as 16-bits
            data.  Plural numbers of values can be written be delimiting with
            ",".

         * DP
               DP expression [,expression] ...

            This is used to write expression value in the memory as 24-bits
            data.  Plural numbers of values can be written be delimiting with
            ",".

         * DM
               DM 'character string'

            This is used to write ASCII code of each character in accordance
            with character string.  Enclose the character string in single-
            quotation marks.  (less than 3 characters)

         * DS
               DS expression1 [, expression2]

            This is used to write the number indicated by expression 1 and
            the value (lower 8 bits) indicated by expression 2.  If
            expression 2 is omitted, 00H is written.

         * PRE
               PRE expression [instruction ...]

            This is used to write the value indicated by expression in the
            memory as 'prebyte'.  Value of expression is specified in range
            of 21H-27H, 30H-37H.
            (Prebyte is necessary for specifying internal RAM addresses.)

            Example: * OR   (expression1), (expression2)
                     * MV   A, (expression1)
                     * MVL  (expression1), (expression2)

            +-------+-----+--------+--------+---------+
            | \exp.2|     |        |        |         |
            |  \    |     |        |        |         |
            |   \   |     |        |        |         |
            |    \  | (n) | (BP+n) | (PY+n) | (BP+PY) |
            |     \ |     |        |        |         |
            |exp.1 \|     |        |        |         |BP='ECH'(internal RAM)
            +-------+-----+--------+--------+---------+PX='EDH'(internal RAM)
            | (n)   | 32H |  30H   |  33H   |  31H    |PY='EEH'(internal RAM)
            +-------+-----+--------+--------+---------+
            |(BP+n) | 22H |  ---   |  23H   |  21H    |
            +-------+-----+--------+--------+---------+
            |(PX+n) | 36H |  34H   |  37H   |  35H    |
            +-------+-----+--------+--------+---------+
            |(BX+PX)| 26H |  24H   |  27H   |  25H    |
            +-------+-----+--------+--------+---------+

            Example: (1) PRE 32H MV  A,(50H)        ;32 80 50
                     (2) PRE 32H ADD (14H),20H      ;30 41 14 20
                     (3) PRE 27H MVL (0)    ,(0AH)  ;27 CB 00 0A
                              |       ^        ^
                              |       |        |
                              \--> (BP+PX),(PY+0AH)
                         when BP=00H, PX=00H and PY=00H

   5. Expression
         Expression is calculated in 24 bits, ignoring overflow.  In operand,
         lower 8 bits are used when 1 byte is specified and lower 16 bits are
         used when 2 bytes are specified.  Internal RAM address
         (00000H-000FFH) is enclosed with '()' (parenthesis) and external RAM
         address is by '[]' (brackets).

   6. Constant
         Constant includes numerical constant and character constant.
         *  Decimal numeral / hexidecimal numeral within 8 digits can be
            used.  For hexadecimal numeral, put 'H' at the last of numerical
            value.
         *  When character from A to F is used at the lead, put "0" at the
            lead of that character.
         *  Specify by maximum 3 characters and enclose it with single
            quotation mark.

   7. Comment
         Put semicolon at the lead of the comment.  You can write comment
         until the end of the line.

* Error Messages

   * Assembler source error
            This is not a program for the assembler
   * Out of memory
            Machine-code-area is not enough
   * Balance error
            Number of enclosure mark such as parenthesis does not agree
   * Format error
            Format is wrongly used
   * Label error
            Character unable to be used for label name is icluded
   * Multiply defined label
            Same label more than two are defined
   * Reference error
            Specified over the range possible to specify be relative jump
   * Undefined label
            Label that does not exist was specified
   * Value error
            Numerical error is wrongly specified

* Sample Program

   Display message 'HELLO!' (IOCS function No. is 42H)

100 "      ORG      00BE000H
110 "BL    EQU      0D4H        ; \
120 "BH    EQU      0D5H        ;  \ Internal RAM
130 "CL    EQU      0D6H        ;  /
140 "CH    EQU      0D7H        ; /
150 "IOCS  EQU      0FFFE8H
160 "      PRE 32H  MV (BL),17  ; \ Location in the display
170 "      PRE 32H  MV (BH),2   ; /
180 "      PRE 32H  MV (CL),0   ; \ Fixes '00H'
190 "      PRE 32H  MV (CH),0   ; /
200 "      MV       I,0042H     ; IOCS function number
210 "      MV       X,DATA      ; Store address of data
220 "      MV       Y,6         ; Length
230 "      CALLF    IOCS
240 "      RETF
250 "DATA: DM       'HELLO!'


* Sample Program

   Draw a line from the upper left to the lower right in the display.
   (IOCS function No. is 4EH)


100 "       ORG     0BE000H
110 "BX     EQU     0D4H
120 "CX     EQU     0D6H
130 "DX     EQU     0D8H
140 "DOTSOP EQU     0BFC96H
150 "LINPTN EQU     0BFC2AH
160 "IOCS   EQU     0FFFE8H
170 "       PRE 32H MVW (CX),0
180 "       MV      X,0
190 "       MV      Y,0
200 "       PRE 32H MVW (BX),239
210 "       PRE 32H MVW (DX),31
220 "       MV      IL,0
230 "       MV      [DOTSOP],IL
240 "       DEC     I
250 "       MV      [LINPTN],I
260 "       MV      IL,4EH
270 "       CALLF   IOCS
280 "       RETF



SUPPLEMENTARY NOTES added by Andrew Woods
-------------------

The DUMP TOOL program as it appears in this document expects you to enter the
Hex Dump section of the assembler listed below from the keyboard.  Since this
program is already in an electronic format - all that is necessary is to
download the data which appears in this document into your PC-E500 via the
serial port.  This is also relevant to ANY of the programs which appear in
this document.  The basic and assembler listings shown above can be
downloaded into your PC-E500 by the techniques described in the document
"SHARP to RS232 SERIAL CONVERTER" which I wrote (available via anonymous FTP
from MATH.BERKELEY.EDU - 128.32.183.94 or from me via email request).

The hex dump is entered into the PC-E500 slightly differently.  The basic
program "DUMPTOOL.BAS" must firstly be modified to input the hex data from
the serial port rather than the keyboard.  This is done by modifying/adding
the following lines to the program shown above:

   ADD       15 OPEN"1200" AS #1 : Z$=""
   REPLACE   300 IF Z$="" THEN INPUT #1,Z$
   ADD       301 X$=LEFT$(Z$,2):Z$=MID$(Z$,4,80):PRINT X$

Then run the modified DUMPTOOL.BAS program (don't forget to allocate the
extra machine-code-memory area), enter the starting address (BEC00), then
send the hex dump to the PC-E500 from your big computer.  Remember to set a
pacing value (of about 5 seconds probably).



HEX DUMP FOR PC-E500 ASSEMBLER
------------------------------
(for instructions on how to load this data into your PC-E500 read the
supplementary notes)


---------cut below this line----------ASSEM.HEX----------------
2F 30 E8 36 EC 30 CC EC 10 DC 50 00 00 51 04 FC
ED CD C4 00 FF DC 06 00 00 00 DC 21 00 00 00 DC
0C 00 EC 0B CC 14 00 CA 30 09 D2 09 1A FD 0B 0C
E5 F8 0B 04 ED ED 80 14 6C 00 04 0C EE 04 E3 EC
1C 90 04 DB ED CA 46 06 04 36 EE 0C 1A F9 0B 04
F2 ED 09 00 D6 03 06 1A 79 6D 14 61 14 01 19 39
0C EF F8 0B 04 ED ED CA 40 30 04 25 EE 08 2F 04
F9 ED CA 40 09 04 25 EE 84 21 A4 46 6C 04 A4 21
12 37 CC 14 06 04 DB ED 84 21 7C 04 18 32 A4 21
84 0C CC 0F 06 90 24 2C 04 F9 ED 3C 7D 0F 1B 0B
E2 24 40 A4 0C 04 E9 F2 04 25 EE 7D 14 18 0A 65
14 01 19 2F 04 E9 F2 13 31 04 C8 F2 1C 17 13 3E
65 14 01 18 03 04 DB ED 04 36 EE 0C 0E F9 0B 04
F2 ED 04 C8 F2 04 DB ED D9 27 FC 0B C4 E0 26 DC
3F 9F 07 84 BB 08 35 45 40 A4 00 04 9F F0 1A CD
CC 13 00 98 00 00 60 FF 18 CC 84 00 E1 24 03 C0
03 04 91 24 2C 45 41 A4 00 3C 90 24 60 22 18 08
0C 4D F9 0B 04 BF EE 06 04 5F EE 1E 0A 61 13 FF
1B 37 04 B7 EE 13 3C 61 13 00 1A 3E 85 15 81 1E
7C 01 45 51 90 05 60 3A 1A 30 61 14 00 1A 1D 85
15 04 0F EF 1C 16 08 06 4E 01 1E 02 09 06 04 F3
EE 04 D7 EE 1E 0B CA 46 09 04 3A EF CC 13 0F 13
49 0C 75 F9 0B 04 BF EE 13 7F 61 1E 06 1E 12 81
1E 85 15 04 F3 EE 08 44 0D 58 FA 0B 04 AF F2 1E
15 61 13 FF 18 0B CC 13 FF CA 1B 15 C8 20 1E 13
79 04 B7 EE 13 AB 61 13 FF 1A 05 61 24 41 1B 0F
80 24 0D 77 FB 0B E6 45 50 93 05 B3 37 06 09 03
55 09 04 F0 F2 1E 03 04 B7 EE 02 EB EC 0C FE F8
0B 04 ED ED 97 06 61 14 00 1B 06 09 03 54 2D 09
C7 0C 2D 1F 10 0C 2D F9 0B 13 1A CC C4 00 61 C5
03 18 03 6D C5 06 08 01 CC 52 47 12 0F 2C 04 DB
ED 3C 95 24 CC 52 42 12 03 CC 52 41 DA 00 FE 0B
50 05 DC FF 0F 06 28 EE 04 0C EE 38 70 0F 60 00
1A 04 7D 0F 1A 0E CC 0F 01 60 0A 1C 02 40 07 40
30 04 F9 ED 06 CC 0F 01 80 42 04 06 EE 80 41 04
06 EE 80 40 13 30 DC 40 00 00 00 DC 43 00 00 01
CC 0F 10 F5 47 F5 46 1E 05 09 03 C4 42 45 09 03
C4 45 45 7D 0F 1B 14 CC 0F 06 C0 40 42 13 37 CC
0F 00 12 03 CC 0F FF 04 F6 F2 1E 49 61 0F 00 18
08 60 2C 1A 40 6D 0F 13 12 60 2C 18 35 7C 04 A4
15 CC 1E 00 CC 0F 00 90 24 60 27 1A 05 69 0F FF
12 15 60 0D 18 15 61 0F FF 18 0C 60 3B 18 0C 60
2C 18 08 60 21 1C 04 6D 1E 13 24 7C 04 61 1E 00
1A 04 CC 13 FF 97 06 0C 3E F9 0B 04 BF EE 06 04
ED ED 0C 26 F9 0B 04 F2 ED C9 46 03 04 36 EE 08
01 09 03 55 06 97 06 2C 84 21 6C 04 85 0C 7C 04
18 0E 09 09 E3 25 46 09 06 5C 46 40 1B 10 3C 06
3C 97 06 DC 40 20 20 20 DC 43 20 20 20 E3 25 40
06 DC 46 20 20 20 DC 49 20 20 20 E3 25 46 06 29
2D 90 25 12 0A 90 25 60 30 1C 13 60 3A 1C 08 60
40 1C 0B 60 5B 1E 07 7C 01 1B 16 9F 12 09 2C 0C
67 F9 0B 04 BF EE 3C 3D 39 06 85 0C 09 09 EB 35
48 A5 0C 09 03 08 01 55 21 06 CC 0F 00 CC 1F 00
85 15 A5 18 90 25 60 27 1A 05 69 0F FF 12 0D 61
0F 00 1A 08 60 2B 18 0F 60 2D 18 08 6D 1F 7D 1E
1B 1E 9F 06 69 0F FF A5 15 7D 1E 1A 03 04 B7 EE
06 CC 11 00 12 03 CC 11 FF DC 40 00 00 00 CC 0F
00 61 1E 00 18 43 C8 10 0F 04 4A EF 1C 3B 61 1F
00 19 12 85 18 90 05 60 27 18 18 60 30 1D F8 60
3A 1C 0B 61 11 FF 14 B7 EE 04 48 F0 12 08 04 DA
EF 12 03 04 75 F0 1C 11 09 03 61 10 FF 18 05 54
40 4C 13 43 5C 40 4C 13 48 06 DC 4C 00 00 00 81
1F 45 51 90 35 60 48 1A 2F 7D 1F 85 18 90 25 60
30 1C 0C 60 3A 1C 11 60 41 1C 04 60 47 1C 07 0C
8E F9 0B 02 BF EE 48 07 48 30 09 03 EC 4E 7B 4E
7D 1F 1B 27 C0 4C 4E 06 61 1F 09 1F 1E 2C 0C D0
F9 0B 12 02 90 35 48 30 1C 04 60 0A 1C 03 3C 13
32 6C 00 E2 24 49 7C 00 18 07 09 03 54 4C 49 13
0B 7D 1F 1B 21 3C 9F 06 81 1F 29 2D 04 0F EF 3D
39 1C 21 61 1F 07 1C 02 09 06 61 14 00 18 15 EA
36 40 04 F3 EE 04 D7 EE E2 26 40 1E 07 0C AC F9
0B 04 BF EE 06 81 1F 7C 01 45 51 90 05 60 27 1A
16 61 1F 06 1F 87 7C 01 19 8B DC 4C 00 00 00 E3
35 4E C0 4C 4E 9F 06 0C 9C F9 0B 04 BF EE 06 65
EF 08 06 85 15 CC 12 00 90 05 60 5B 1A 08 7D 12
7D 1E 6C 05 90 05 60 28 18 28 61 12 00 1A 92 61
1E 04 1E 18 81 1E 04 F3 EE 0D F2 F9 0B 08 0B E8
36 24 04 AF F2 80 24 E0 26 24 1E 05 04 81 EF 08
24 06 C8 20 1E 7D 20 6C 05 A5 15 CC 1E 00 90 25
60 29 18 09 6D 1E 7D 20 1B 0C 02 97 F0 A5 1B 04
81 EF 1C 0D 61 12 00 1A 09 08 0B 61 20 01 15 B7
EE 06 7D 20 85 1B 2D 04 06 F3 3D 08 21 1D 0E 61
1E 00 18 27 90 25 60 2B 18 07 60 2D 18 07 02 B7
EE 08 22 12 02 08 23 A5 15 7D 1E 28 E8 36 40 04
81 EF E0 26 41 38 1D 37 C0 40 41 61 20 01 1B 22
06 C8 20 1E 04 06 F3 1D 48 81 1E 61 1E 06 1C 02
09 06 85 15 04 F3 EE CC 0F 14 0D 0C FA 0B 91 25
29 E3 25 46 39 5C 46 40 18 0D 7D 0F 1B 10 04 81
EF 1D 72 08 0C 13 3C 08 21 4A 0F 60 19 1D 44 28
09 03 08 02 55 15 4B 1E 04 81 EF 38 1D 8D 13 55
60 02 1C 07 60 04 1C 06 08 02 06 08 00 06 08 01
06 65 13 01 18 02 6D 44 71 13 FE 18 07 C0 44 45
80 13 43 24 61 14 00 18 22 85 09 81 43 6C 01 18
03 EB 25 24 81 44 6C 01 18 03 EB 25 27 81 45 6C
01 18 03 EB 25 40 A5 09 02 EB EC 80 43 42 44 42
45 40 03 02 AE ED 04 5F EE 1C 15 04 A3 F0 1C 0F
A0 2A CA 27 40 04 64 EE 1C 06 04 A3 F0 A0 2B 06
02 B7 EE 61 2B 0A 18 23 61 2A 08 1E 26 61 2B 08
1E 21 80 2A 04 A0 F1 60 02 1A 02 08 03 A0 4C 80
2B 04 A0 F1 63 4C 1C 0B 42 4C 06 61 2A 00 1A 03
08 06 06 97 06 04 5F EE 1C 06 04 81 EF 1C 04 06
04 B7 EE 93 27 02 EB EC 04 F6 F1 1D 0A 60 24 18
1D 60 00 18 34 60 0B 1B 19 61 2A 0B 18 0B 61 2A
00 1B 23 08 07 0B FF 00 06 08 06 09 00 06 80 2A
60 00 18 0D 60 0B 18 0C 60 0C 1B 3C 08 02 09 02
06 09 FF 06 08 01 09 00 06 61 2A 0B 1B 4E 08 03
0B 00 FF 06 04 5F EE 1D 59 04 A3 F0 1D 5B 06 CC
24 00 91 25 29 04 01 EF 39 6C 01 5C 46 40 18 07
6D 24 7C 00 1B 14 97 06 6D C4 08 1F 04 F9 ED CD
E0 FF 0F 04 9F F0 1B 05 61 E2 00 1B 0A 61 E2 00
1A 06 04 9F F0 19 0A 97 06 71 C4 F8 41 C4 08 06
2C 04 F6 F2 3C 06 90 24 60 0D 18 09 60 3B 18 05
60 21 1D 0E 97 06 A5 15 CC 1E 00 90 25 60 5D 18
09 6D 1E 7D 20 1B 0C 02 97 F0 A5 1B 06 04 5F EE
1C 32 04 86 EF 1C 30 CA 43 40 04 F0 F2 1E 18 04
64 EE 1C 20 EA 36 40 04 86 EF E2 26 43 1C 18 61
14 00 18 03 C2 40 43 09 03 5C 40 43 CA 09 43 CA
2D 40 12 34 04 B7 EE 02 EB EC 61 14 00 1B 08 04
5F EE 1D 10 04 86 EF 1D 12 81 20 85 1B 04 0F EF
1D 1B 81 20 85 1B EA 36 40 04 F3 EE 04 D7 EE E2
26 46 17 61 ED 04 3A EF 02 B2 ED 49 24 3B 04 5F
EE 1D 3F 04 81 EF 1D 41 85 09 61 14 00 18 07 81
24 EB 25 40 12 04 80 24 45 50 A5 09 04 F0 F2 1F
5A 04 64 EE 13 25 04 5F EE 1D 67 85 15 90 05 60
27 1A 2F 81 1E 7C 01 45 51 90 05 60 27 1A 23 7C
01 19 7C 4D 51 61 14 00 18 10 2C 84 09 90 25 B0
24 7C 01 1B 08 A4 09 3C 13 93 85 09 45 51 A5 09
13 6A 04 97 F0 13 A0 04 45 F2 04 F0 F2 08 00 1E
12 04 64 EE 1C 2B EA 36 40 04 81 EF 80 40 E2 26
40 1D BC 61 14 00 18 12 2C 85 09 84 40 6C 04 7C
04 18 04 B0 25 13 08 3C 13 3C 09 03 54 09 40 13
DA 04 B7 EE 13 DF 08 12 12 0E 08 18 12 0A 08 1A
12 06 08 1C 12 02 08 1E A0 24 04 45 F2 08 02 85
09 45 50 61 14 00 18 23 A5 43 09 03 54 43 2D C7
40 43 1E 05 C2 40 43 6D 24 09 03 5C 40 43 D6 03
41 1A 0C 85 09 E8 25 24 E8 25 40 A5 09 13 F7 0C
BE F9 0B 04 BF EE 12 34 49 24 11 04 45 F2 80 24
7C 00 61 14 00 14 AE ED CD 43 00 FF 80 24 48 03
A0 45 02 C4 F1 0D E8 F9 0B 80 24 48 2F 45 50 90
05 61 14 00 18 09 85 09 B0 25 A5 09 02 EB EC 08
01 02 AE ED 04 F6 F1 1D 0D CC 13 00 61 2A 08 1C
15 60 08 1C 0B 61 2A 0B 18 55 60 0B 18 4B 12 46
CC 13 20 C0 2A 2B 61 24 00 1A 3B 80 2B 60 08 16
67 F6 60 0A 14 5B F6 60 24 18 3F 60 23 14 36 F6
60 22 14 1F F6 60 21 18 F3 60 1D 1E E9 60 19 1E
BB 60 15 1E B1 60 11 1E 93 60 0D 1E 6B 60 0C 18
4B 60 0B 14 3B F6 02 54 F3 CC 13 08 C0 2A 2B 6D
13 80 2B 60 0B 14 48 F6 13 43 65 13 FE 1B 19 C8
45 24 CD 43 00 FF 65 13 01 1A 0F 80 2A 28 04 A0
F1 A0 45 38 40 08 A0 24 12 99 61 24 03 1F 39 41
24 CC 61 24 CE 1C 8C CC 24 DC 12 87 DC 43 00 FF
02 65 13 01 1A 08 80 2A 40 88 A0 24 12 75 61 24
04 1F 5D 41 24 D0 12 6B 48 09 DC 43 01 FF FF A0
25 65 13 01 1A 0C 80 2A 60 07 1F 76 40 90 A0 24
12 51 61 24 03 1F 81 41 24 E0 12 47 48 0D 40 20
A0 25 DC 43 01 FF FF 65 13 01 19 26 61 24 04 1F
9B 41 24 E0 12 2D 48 11 40 30 13 1C 48 15 40 80
A0 25 DC 43 01 FF 00 65 13 01 19 46 61 24 03 18
07 1F BD 41 24 E0 12 03 CC 24 56 65 13 FE 18 03
C0 27 40 02 B1 F1 48 19 40 C0 13 2C CC 25 00 DC
43 01 FF 00 65 13 01 1A 0C 80 2A 60 07 1F E9 40
98 A0 24 13 22 61 24 04 1F F4 41 24 F0 13 2C CC
25 80 DC 43 01 FF 01 65 13 01 19 23 65 13 FE 19
1C C0 28 40 13 21 CC 25 C0 13 19 DC 43 00 FF 00
80 2A 40 80 A0 24 13 55 41 24 C8 61 24 CC 1C 03
CC 24 CF DC 43 00 00 00 02 C4 F1 08 74 65 13 FE
18 02 08 75 02 B1 F4 04 13 F2 1C 08 60 02 18 07
60 05 18 03 02 54 F3 CC 24 FD 80 2A EE 7F 2B A0
27 DC 43 00 00 FF 13 30 49 24 07 04 45 F2 DC 43
00 FF 01 13 3D CC 24 03 04 45 F2 CD 43 00 FF C8
45 24 7D 45 13 4E 04 5F EE 1D 37 04 A3 F0 16 EB
EC 60 24 18 0A 60 0B 18 0B 60 08 1C 11 13 4B CC
24 02 13 36 CC 24 10 DC 43 00 FF 00 13 76 A0 40
04 A0 F1 60 02 1B 63 CC 24 11 13 15 CC 24 60 04
58 F2 60 04 1C 2C 60 06 15 54 F3 08 57 12 23 08
64 CC 26 03 12 13 08 70 CC 26 07 12 0C 08 78 CC
26 07 12 05 08 68 CC 26 07 A0 24 04 58 F2 63 26
1C 21 43 24 CC 43 00 A3 44 02 C4 F1 08 50 12 02
08 58 A0 24 04 58 F2 60 02 18 08 60 04 1D 1D 60
07 18 03 02 54 F3 08 02 13 28 08 40 12 02 08 48
A0 24 04 F6 F1 16 EB EC 04 13 F2 1C 1A 60 00 18
0C 60 03 1C 0C 60 06 19 26 08 05 12 06 08 06 12
02 08 04 43 24 13 ED 04 5D F2 13 45 49 24 20 04
F6 F1 16 EB EC 04 13 F2 1C 1B 61 24 00 1B 4C 60
02 18 0C 60 05 18 08 60 06 1B 58 08 DD 12 3F CC
24 ED 02 7A F6 61 24 04 19 67 04 5D F2 60 06 1B
6E 08 C0 13 93 08 6C 12 02 08 7C A0 24 04 A4 F2
60 0B 18 0B 60 08 1F 85 A0 40 0B 00 FF 12 02 6D
24 09 FF 13 B1 04 A4 F2 60 00 1B 99 08 EE 02 B1
F4 08 E4 12 0A 08 E6 12 06 08 F4 12 02 08 F6 A0
24 04 A4 F2 60 0B 19 29 60 00 1B B9 80 24 13 22
08 54 12 0A 08 5C 12 06 08 C4 12 02 08 D4 A0 24
04 58 F2 60 03 18 06 60 06 18 04 13 DA 6D 24 13
FD 08 28 12 02 08 38 A0 24 04 A4 F2 60 06 1C 0A
60 08 1D F1 60 0A 1F F5 48 02 42 24 13 60 08 4F
12 02 08 5F A0 24 04 A4 F2 60 06 1C 16 60 08 18
2A 1C 66 60 09 1A 62 CD 2A 18 0B CC 27 FB CC 40
FB 12 05 CC 2A 18 A0 2B 61 24 4F 18 06 C0 2A 2B
49 2B 04 80 2B CC 24 00 02 C9 F4 80 24 13 A1 49
24 2A 04 F6 F1 1C 32 61 2A 0B 1A 2D 60 0B 18 13
60 08 1E 25 C8 40 27 A0 27 04 A0 F1 63 24 1A 19
41 24 10 41 24 C5 DC 43 00 00 00 02 C4 F1 04 58
F2 60 01 18 07 60 03 18 08 02 54 F3 CC 24 47 12
03 CC 24 57 02 14 F7 04 45 F2 09 00 D6 03 41 1B
18 80 40 60 21 1D 1E 60 28 1C 08 60 30 1D 26 60
38 1F 2A 85 09 61 14 00 18 04 B0 25 12 02 6C 05
A5 09 02 5C ED 07 00 00 2D 20 50 61 73 73 20 0C
00 00 45 6E 64 20 61 64 64 72 65 73 73 20 0D 00
00 25 25 20 41 62 6F 72 74 65 64 20 25 25 09 00
00 20 6C 61 62 65 6C 28 73 29 09 00 00 20 65 72
72 6F 72 28 73 29 04 00 00 20 69 6E 20 0E 00 00
25 4F 75 74 20 6F 66 20 6D 65 6D 6F 72 79 0C 00
00 46 6F 72 6D 61 74 20 65 72 72 6F 72 17 00 00
25 41 73 73 65 6D 62 6C 65 72 20 73 6F 75 72 63
65 20 65 72 72 6F 72 0B 00 00 4C 61 62 65 6C 20
65 72 72 6F 72 16 00 00 4D 75 6C 74 69 70 6C 79
20 64 65 66 69 6E 65 64 20 6C 61 62 65 6C 0B 00
00 56 61 6C 75 65 20 65 72 72 6F 72 0D 00 00 42
61 6C 61 6E 63 65 20 65 72 72 6F 72 0F 00 00 55
6E 64 65 66 69 6E 65 64 20 6C 61 62 65 6C 0F 00
00 52 65 66 65 72 65 6E 63 65 20 65 72 72 6F 72
01 00 00 0A 00 00 64 00 00 E8 03 00 10 27 00 A0
86 01 40 42 0F 80 96 98 06 07 EF 97 9F 00 01 CE
DE DF 01 41 02 49 4C 02 42 41 01 49 01 58 01 59
01 55 01 53 01 46 03 49 4D 52 01 42 02 58 20 02
59 20 02 55 20 02 53 20 04 58 2B 2B 20 04 59 2B
2B 20 04 55 2B 2B 20 04 53 2B 2B 20 04 2D 2D 58
20 04 2D 2D 59 20 04 2D 2D 55 20 04 2D 2D 53 20
02 58 2B 02 59 2B 02 55 2B 02 53 2B 02 58 2D 02
59 2D 02 55 2D 02 53 2D 02 4D 56 03 4D 56 57 03
4D 56 50 03 4D 56 4C 04 4D 56 4C 44 03 43 4D 50
04 54 45 53 54 02 4A 52 03 4A 52 5A 04 4A 52 4E
5A 03 4A 52 43 04 4A 52 4E 43 03 49 4E 43 03 44
45 43 03 41 4E 44 02 4F 52 03 58 4F 52 03 41 44
43 03 53 42 43 03 41 44 44 03 53 55 42 04 43 41
4C 4C 05 43 41 4C 4C 46 04 41 44 43 4C 04 53 42
43 4C 05 50 55 53 48 55 04 50 4F 50 55 03 4A 50
5A 04 4A 50 4E 5A 03 4A 50 43 04 4A 50 4E 43 02
4A 50 02 45 58 03 45 58 57 03 45 58 50 03 45 58
4C 03 52 4F 52 03 52 4F 4C 03 53 48 52 03 53 48
4C 04 44 41 44 4C 04 44 53 42 4C 04 50 4D 44 46
04 43 4D 50 57 04 43 4D 50 50 04 53 57 41 50 03
4A 50 46 03 52 45 54 04 52 45 54 46 04 57 41 49
54 02 53 43 02 52 43 03 4E 4F 50 04 52 45 54 49
03 54 43 4C 04 48 41 4C 54 03 4F 46 46 05 50 55
53 48 53 04 50 4F 50 53 03 50 52 45 02 44 42 02
44 57 02 44 50 02 44 4D 02 44 53 03 45 51 55 03
4F 52 47 03 45 4E 44 C4 F4 C4 F4 C4 F4 C4 F4 C4
F4 DC F6 EF F6 36 F4 3A F4 3E F4 42 F4 46 F4 A5
F7 A9 F7 F6 F6 FD F6 04 F7 1C F7 20 F7 3A F7 3E
F7 88 F4 88 F4 F0 F7 F4 F7 11 F8 15 F8 88 F6 88
F6 88 F6 88 F6 A6 F6 6C F7 6C F7 6C F7 6C F7 D1
F7 D5 F7 D9 F7 DD F7 F8 F7 FC F7 9E F8 6F F8 6F
F8 C5 F7 95 F6 A5 F4 A5 F4 A5 F4 A5 F4 A5 F4 A5
F4 A5 F4 A5 F4 A5 F4 A5 F4 2E F8 32 F8 B7 F8 8B
F3 8B F3 8B F3 B6 F3 F7 F3 5A F3 1D F3 C6 ED 00
Q
----------------cut above this line---------------------------