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---------------------------