OpenCores
URL https://opencores.org/ocsvn/y80e/y80e/trunk

Subversion Repositories y80e

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /y80e
    from Rev 1 to Rev 2
    Reverse comparison

Rev 1 → Rev 2

/trunk/asm/int_opss.s
0,0 → 1,79
;**********************************************************************************
;* *
;* int_ops compare data (for bus request case) *
;* *
;**********************************************************************************
org 03cc4h
db 0c4h
db 0c5h
db 0c6h
db 0c7h
db 0c8h
db 0c9h
db 0cah
db 0cbh
db 0cch
db 0cdh
db 0ceh
db 0cfh
db 0d0h
db 0d1h
db 0d2h
db 0d3h
db 0d4h
 
 
org 05a3ch
db 05ah
 
 
org 0966ah
db 003h
db 005h
db 007h
db 009h
db 00bh
db 00dh
db 00fh
db 011h
db 013h
db 015h
db 017h
db 019h
db 01bh
db 01dh
db 01fh
db 021h
db 023h
db 025h
db 027h
db 029h
 
 
org 0ff32h
dw 03cceh ;ff32h
dw 08421h, 0edb7h, 0ff92h, 0d610h, 09678h ;ff34h
dw 02e00h, 00100h, 0001fh, 05a44h, 05a44h ;ff3eh
dw 06900h, 02e00h, 00100h, 0001fh, 0de00h ;ff48h
dw 06900h, 02d00h, 00100h, 0001eh, 0dd00h ;ff52h
dw 06900h, 02c00h, 00100h, 0001dh, 0dc01h ;ff5ch
dw 06900h, 02b00h, 00100h, 0001ch, 0db01h ;ff66h
dw 06916h, 02a00h, 00100h, 0001bh, 0da00h ;ff70h
dw 09394h, 02900h, 00100h, 0001ah, 0d900h ;ff7ah
dw 06a04h, 02800h, 00100h, 00019h, 0d800h ;ff84h
dw 04204h, 02700h, 00100h, 00018h, 0d700h ;ff8eh
 
dw 05500h, 02600h, 00100h, 00017h ;ff98h
dw 0d512h, 00016h, 0d412h, 00015h ;ffa0h
dw 0d311h, 05500h, 05500h, 00014h ;ffa8h
dw 0d300h, 00044h, 00044h, 00013h ;ffb0h
dw 0d200h, 00012h, 0d103h, 00011h ;ffb8h
dw 0d001h, 00010h, 0cf00h, 0000fh ;ffc0h
dw 0ce01h, 0000eh, 0ccffh, 0000dh ;ffc8h
dw 0cc00h, 0000ch, 0cb00h, 0000bh ;ffd0h
dw 0c9ffh, 0000ah, 0c8ffh, 00009h ;ffd8h
dw 0c7feh, 00008h, 0c6feh, 00007h ;ffe0h
dw 0c601h, 00006h, 0c501h, 00005h ;ffe8h
dw 05000h, 00004h, 05000h, 00003h ;fff0h
dw 0c202h, 00002h, 0c101h, 00001h ;fff8h
 
/trunk/asm/bit_ops.s
0,0 → 1,731
;**********************************************************************************
;* *
;* checks all bit manipulation instructions *
;* *
;**********************************************************************************
aseg
 
org 00h
jp 100h
 
org 0c0h ;pattern finish location
nop
jr 0c0h
 
org 0100h
ld sp, 0000h ;point sp at result table
ld a, 0ffh ;initialize the main registers
xor a ;initialize flags
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
ld ix, 07ffeh
ld iy, 07201h
push af ;0044h @ fffeh
push bc ;0000h @ fffch
push de ;0000h @ fffah
push hl ;0000h @ fff8h
push ix ;7ffeh @ fff6h
push iy ;7201h @ fff4h
set 0, a
set 1, b
set 2, c
set 3, d
set 4, e
set 5, h
set 6, l
push af ;0144h @ fff2h
push bc ;0204h @ fff0h
push de ;0810h @ ffeeh
push hl ;2040h @ ffech
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
set 0, b
set 1, c
set 2, d
set 3, e
set 4, h
set 5, l
set 6, a
push af ;4044h @ ffeah
push bc ;0102h @ ffe8h
push de ;0408h @ ffe6h
push hl ;1020h @ ffe4h
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
set 0, c
set 1, d
set 2, e
set 3, h
set 4, l
set 5, a
set 6, b
push af ;2044h @ ffe2h
push bc ;4001h @ ffe0h
push de ;0204h @ ffdeh
push hl ;0810h @ ffdch
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
set 0, d
set 1, e
set 2, h
set 3, l
set 4, a
set 5, b
set 6, c
push af ;1044h @ ffdah
push bc ;2040h @ ffd8h
push de ;0102h @ ffd6h
push hl ;0408h @ ffd4h
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
set 0, e
set 1, h
set 2, l
set 3, a
set 4, b
set 5, c
set 6, d
push af ;0844h @ ffd2h
push bc ;1020h @ ffd0h
push de ;4001h @ ffceh
push hl ;0204h @ ffcch
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
set 0, h
set 1, l
set 2, a
set 3, b
set 4, c
set 5, d
set 6, e
push af ;0444h @ ffcah
push bc ;0810h @ ffc8h
push de ;2040h @ ffc6h
push hl ;0102h @ ffc4h
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
set 0, l
set 1, a
set 2, b
set 3, c
set 4, d
set 5, e
set 6, h
push af ;0244h @ ffc2h
push bc ;0408h @ ffc0h
push de ;1020h @ ffbeh
push hl ;4001h @ ffbch
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld hl, 7000h
set 0, (hl) ; 00h @ 7000h read
; 01h @ 7000h write
set 7, a
push af ;8044h @ ffbah
push bc ;0000h @ ffb8h
push de ;0000h @ ffb6h
push hl ;7000h @ ffb4h
ld a, b
inc hl
set 1, (hl) ; 00h @ 7001h read
; 02h @ 7001h write
set 7, b
push af ;0044h @ ffb2h
push bc ;8000h @ ffb0h
push de ;0000h @ ffaeh
push hl ;7001h @ ffach
ld b, a
inc hl
set 2, (hl) ; 00h @ 7002h read
; 04h @ 7002h write
set 7, c
push af ;0044h @ ffaah
push bc ;0080h @ ffa8h
push de ;0000h @ ffa6h
push hl ;7002h @ ffa4h
ld c, a
inc hl
set 3, (hl) ; 00h @ 7003h read
; 08h @ 7003h write
set 7, d
push af ;0044h @ ffa2h
push bc ;0000h @ ffa0h
push de ;8000h @ ff9eh
push hl ;7003h @ ff9ch
ld d, a
inc hl
set 4, (hl) ; 00h @ 7004h read
; 10h @ 7004h write
set 7, e
push af ;0044h @ ff9ah
push bc ;0000h @ ff98h
push de ;0080h @ ff96h
push hl ;7004h @ ff94h
ld e, a
inc hl
set 5, (hl) ; 00h @ 7005h read
; 20h @ 7005h write
set 7, h
push af ;0044h @ ff92h
push bc ;0000h @ ff90h
push de ;0000h @ ff8eh
push hl ;f005h @ ff8ch
ld hl, 7006h
set 6, (hl) ; 00h @ 7006h read
; 40h @ 7006h write
set 7, l
push af ;0044h @ ff8ah
push bc ;0000h @ ff88h
push de ;0000h @ ff86h
push hl ;7086h @ ff84h
ld hl, 7007h
set 7, (hl) ; 00h @ 7007h read
; 80h @ 7007h write
push af ;0044h @ ff82h
push bc ;0000h @ ff80h
push de ;0000h @ ff7eh
push hl ;7007h @ ff7ch
set 0, (ix+7h) ; 00h @ 8005h read
; 01h @ 8005h write
set 1, (ix+6h) ; 00h @ 8004h read
; 02h @ 8004h write
set 2, (ix+5h) ; 00h @ 8003h read
; 04h @ 8003h write
set 3, (ix+4h) ; 00h @ 8002h read
; 08h @ 8002h write
set 4, (ix+3h) ; 00h @ 8001h read
; 10h @ 8001h write
set 5, (ix+2h) ; 00h @ 8000h read
; 20h @ 8000h write
set 6, (ix+1h) ; 00h @ 7fffh read
; 40h @ 7fffh write
set 7, (ix+0h) ; 00h @ 7ffeh read
; 80h @ 7ffeh write
set 0, (iy+0ffh) ; 00h @ 7200h read
; 01h @ 7200h write
set 1, (iy+0feh) ; 00h @ 71ffh read
; 02h @ 71ffh write
set 2, (iy+0fdh) ; 00h @ 71feh read
; 04h @ 71feh write
set 3, (iy+0fch) ; 00h @ 71fdh read
; 08h @ 71fdh write
set 4, (iy+0fbh) ; 00h @ 71fch read
; 10h @ 71fch write
set 5, (iy+0fah) ; 00h @ 71fbh read
; 20h @ 71fbh write
set 6, (iy+0f9h) ; 00h @ 71fah read
; 40h @ 71fah write
set 7, (iy+0f8h) ; 00h @ 71f9h read
; 80h @ 71f9h write
ld a, 0ffh ;initialize the main registers
or a ;initialize flags
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
ld ix, 7401h
ld iy, 70feh
push af ;ff84h @ ff7ah
push bc ;ffffh @ ff78h
push de ;ffffh @ ff76h
push hl ;ffffh @ ff74h
push ix ;7401h @ ff72h
push iy ;70feh @ ff70h
res 0, a
res 1, b
res 2, c
res 3, d
res 4, e
res 5, h
res 6, l
push af ;fe84h @ ff6eh
push bc ;fdfbh @ ff6ch
push de ;f7efh @ ff6ah
push hl ;dfbfh @ ff68h
ld a, 0ffh
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
res 0, b
res 1, c
res 2, d
res 3, e
res 4, h
res 5, l
res 6, a
push af ;bf84h @ ff66h
push bc ;fefdh @ ff64h
push de ;fbf7h @ ff62h
push hl ;efdfh @ ff60h
ld a, 0ffh
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
res 0, c
res 1, d
res 2, e
res 3, h
res 4, l
res 5, a
res 6, b
push af ;df84h @ ff5eh
push bc ;bffeh @ ff5ch
push de ;fdfbh @ ff5ah
push hl ;f7efh @ ff58h
ld a, 0ffh
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
res 0, d
res 1, e
res 2, h
res 3, l
res 4, a
res 5, b
res 6, c
push af ;ef84h @ ff56h
push bc ;dfbfh @ ff54h
push de ;fefdh @ ff52h
push hl ;fbf7h @ ff50h
ld a, 0ffh
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
res 0, e
res 1, h
res 2, l
res 3, a
res 4, b
res 5, c
res 6, d
push af ;f784h @ ff4eh
push bc ;efdfh @ ff4ch
push de ;bffeh @ ff4ah
push hl ;fdfbh @ ff48h
ld a, 0ffh
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
res 0, h
res 1, l
res 2, a
res 3, b
res 4, c
res 5, d
res 6, e
push af ;fb84h @ ff46h
push bc ;f7efh @ ff44h
push de ;dfbfh @ ff42h
push hl ;fefdh @ ff40h
ld a, 0ffh
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
res 0, l
res 1, a
res 2, b
res 3, c
res 4, d
res 5, e
res 6, h
push af ;fd84h @ ff3eh
push bc ;fbf7h @ ff3ch
push de ;efdfh @ ff3ah
push hl ;bffeh @ ff38h
ld a, 0ffh
ld b, a
ld c, a
ld d, a
ld e, a
ld hl, 08480h
res 0, (hl) ; ffh @ 8480h read
; feh @ 8480h write
res 7, a
push af ;7f84h @ ff36h
push bc ;ffffh @ ff34h
push de ;ffffh @ ff32h
push hl ;8480h @ ff30h
ld a, b
inc hl
res 1, (hl) ; ffh @ 8481h read
; fdh @ 8481h write
res 7, b
push af ;ff84h @ ff2eh
push bc ;7fffh @ ff2ch
push de ;ffffh @ ff2ah
push hl ;8481h @ ff28h
ld b, a
inc hl
res 2, (hl) ; ffh @ 8482h read
; fbh @ 8482h write
res 7, c
push af ;ff84h @ ff26h
push bc ;ff7fh @ ff24h
push de ;ffffh @ ff22h
push hl ;8482h @ ff20h
ld c, a
inc hl
res 3, (hl) ; ffh @ 8483h read
; f7h @ 8483h write
res 7, d
push af ;ff84h @ ff1eh
push bc ;ffffh @ ff1ch
push de ;7fffh @ ff1ah
push hl ;8483h @ ff18h
ld d, a
inc hl
res 4, (hl) ; ffh @ 8484h read
; efh @ 8484h write
res 7, e
push af ;ff84h @ ff16h
push bc ;ffffh @ ff14h
push de ;ff7fh @ ff12h
push hl ;8484h @ ff10h
ld e, a
inc hl
res 5, (hl) ; ffh @ 8485h read
; dfh @ 8485h write
res 7, h
push af ;ff84h @ ff0eh
push bc ;ffffh @ ff0ch
push de ;ffffh @ ff0ah
push hl ;0485h @ ff08h
ld hl, 8486h
res 6, (hl) ; ffh @ 8486h read
; bfh @ 8486h write
res 7, l
push af ;ff84h @ ff06h
push bc ;ffffh @ ff04h
push de ;ffffh @ ff02h
push hl ;8406h @ ff00h
ld hl, 8487h
res 7, (hl) ; ffh @ 8487h read
; 7fh @ 8487h write
push af ;ff84h @ fefeh
push bc ;ffffh @ fefch
push de ;ffffh @ fefah
push hl ;8487h @ fef8h
res 0, (ix+00h) ; ffh @ 7401h read
; feh @ 7401h write
res 1, (ix+0ffh) ; ffh @ 7400h read
; fdh @ 7400h write
res 2, (ix+0feh) ; ffh @ 73ffh read
; fbh @ 73ffh write
res 3, (ix+0fdh) ; ffh @ 73feh read
; f7h @ 73feh write
res 4, (ix+0fch) ; ffh @ 73fdh read
; efh @ 73fdh write
res 5, (ix+0fbh) ; ffh @ 73fch read
; dfh @ 73fch write
res 6, (ix+0fah) ; ffh @ 73fbh read
; bfh @ 73fbh write
res 7, (ix+0f9h) ; ffh @ 73fah read
; 7fh @ 73fah write
res 0, (iy+2h) ; ffh @ 7100h read
; feh @ 7100h write
res 1, (iy+3h) ; ffh @ 7101h read
; fdh @ 7101h write
res 2, (iy+4h) ; ffh @ 7102h read
; fbh @ 7102h write
res 3, (iy+5h) ; ffh @ 7103h read
; f7h @ 7103h write
res 4, (iy+6h) ; ffh @ 7104h read
; efh @ 7104h write
res 5, (iy+7h) ; ffh @ 7105h read
; dfh @ 7105h write
res 6, (iy+8h) ; ffh @ 7106h read
; bfh @ 7106h write
res 7, (iy+9h) ; ffh @ 7107h read
; 7fh @ 7107h write
xor a ;clear accumulator
ld b, a ;clear register file
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
ld ix, 0a000h
ld iy, 09000h
ld sp, 0c000h
pop af ;7fffh @ c000h
ld sp, 0c000h
bit 7, a
push af ;7ffdh @ bffeh
ld sp, 0c002h
pop af ;40ffh @ c002h
ld sp, 0bffeh
bit 6, a
push af ;40bdh @ bffch
ld sp, 0c004h
pop af ;df00h @ c004h
ld sp, 0bffch
bit 5, a
push af ;df50h @ bffah
ld sp, 0c006h
pop af ;1000h @ c006h
ld sp, 0bffah
bit 4, a
push af ;1010h @ bff8h
ld a, 0f7h
bit 3, a
push af ;f750f @ bff6h
ld a, 04h
bit 2, a
push af ;0410h @ bff4h
ld a, 0fdh
bit 1, a
push af ;fd50h @ bff2h
ld a, 01h
bit 0, a
push af ;0110h @ bff0h
xor a
ld bc, 0f0cch
ld de, 0aa0fh
ld hl, 3355h
bit 7, b
push af ;0014h @ bfeeh
bit 6, b
push af ;0014h @ bfech
bit 5, b
push af ;0014h @ bfeah
bit 4, b
push af ;0014h @ bfe8h
bit 3, b
push af ;0054h @ bfe6h
bit 2, b
push af ;0054h @ bfe4h
bit 1, b
push af ;0054h @ bfe2h
bit 0, b
push af ;0054h @ bfe0h
bit 7, c
push af ;0014h @ bfdeh
bit 6, c
push af ;0014h @ bfdch
bit 5, c
push af ;0054h @ bfdah
bit 4, c
push af ;0054h @ bfd8h
bit 3, c
push af ;0014h @ bfd6h
bit 2, c
push af ;0014h @ bfd4h
bit 1, c
push af ;0054h @ bfd2h
bit 0, c
push af ;0054h @ bfd0h
bit 7, d
push af ;0014h @ bfceh
bit 6, d
push af ;0054h @ bfcch
bit 5, d
push af ;0014h @ bfcah
bit 4, d
push af ;0054h @ bfc8h
bit 3, d
push af ;0014h @ bfc6h
bit 2, d
push af ;0054h @ bfc4h
bit 1, d
push af ;0014h @ bfc2h
bit 0, d
push af ;0054h @ bfc0h
bit 7, e
push af ;0054h @ bfbeh
bit 6, e
push af ;0054h @ bfbch
bit 5, e
push af ;0054h @ bfbah
bit 4, e
push af ;0054h @ bfb8h
bit 3, e
push af ;0014h @ bfb6h
bit 2, e
push af ;0014h @ bfb4h
bit 1, e
push af ;0014h @ bfb2h
bit 0, e
push af ;0014h @ bfb0h
bit 7, h
push af ;0054h @ bfaeh
bit 6, h
push af ;0054h @ bfach
bit 5, h
push af ;0014h @ bfaah
bit 4, h
push af ;0014h @ bfa8h
bit 3, h
push af ;0054h @ bfa6h
bit 2, h
push af ;0054h @ bfa4h
bit 1, h
push af ;0014h @ bfa2h
bit 0, h
push af ;0014h @ bfa0h
bit 7, l
push af ;0054h @ bf9eh
bit 6, l
push af ;0014h @ bf9ch
bit 5, l
push af ;0054h @ bf9ah
bit 4, l
push af ;0014h @ bf98h
bit 3, l
push af ;0054h @ bf96h
bit 2, l
push af ;0014h @ bf94h
bit 1, l
push af ;0054h @ bf92h
bit 0, l
push af ;0014h @ bf90h
ld hl, 8500h
bit 7, (hl) ; 80h @ 8500h
push af ;0014h @ bf8eh
inc hl
bit 6, (hl) ; bfh @ 8501h
push af ;0054h @ bf8ch
inc hl
bit 5, (hl) ; 20h @ 8502h
push af ;0014h @ bf8ah
inc hl
bit 4, (hl) ; 10h @ 8503h
push af ;0014h @ bf88h
inc hl
bit 3, (hl) ; f7h @ 8504h
push af ;0054h @ bf86h
inc hl
bit 2, (hl) ; 40h @ 8505h
push af ;0054h @ bf84h
inc hl
bit 1, (hl) ; fdh @ 8506h
push af ;0054h @ bf82h
inc hl
bit 0, (hl) ; feh @ 8507h
push af ;0054h @ bf80h
ld ix, 8502h
ld iy, 8564h
bit 7, (ix+3eh) ; 00h @ 8540h
push af ;0054h @ bf7eh
bit 6, (ix+3fh) ; 00h @ 8541h
push af ;0054h @ bf7ch
bit 5, (ix+40h) ; ffh @ 8542h
push af ;0014h @ bf7ah
bit 4, (ix+41h) ; ffh @ 8543h
push af ;0014h @ bf78h
bit 3, (ix+42h) ; ffh @ 8544h
push af ;0014h @ bf76h
bit 2, (ix+43h) ; ffh @ 8545h
push af ;0014h @ bf74h
bit 1, (ix+44h) ; 00h @ 8546h
push af ;0054h @ bf72h
bit 0, (ix+45h) ; 00h @ 8547h
push af ;0054h @ bf70h
bit 7, (iy+1ch) ; 00h @ 8580h
push af ;0054h @ bf6eh
bit 6, (iy+1dh) ; ffh @ 8581h
push af ;0014h @ bf6ch
bit 5, (iy+1eh) ; 00h @ 8582h
push af ;0054h @ bf6ah
bit 4, (iy+1fh) ; ffh @ 8583h
push af ;0014h @ bf68h
bit 3, (iy+20h) ; ffh @ 8584h
push af ;0014h @ bf66h
bit 2, (iy+21h) ; 00h @ 8585h
push af ;0054h @ bf64h
bit 1, (iy+22h) ; ffh @ 8586h
push af ;0014h @ bf62h
bit 0, (iy+23h) ; 00h @ 8587h
push af ;0054h @ bf60h
 
ld hl, 0100h ;init hl for next pattern
jp 0c0h
 
org 07000h ;data for set (hl)
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
 
org 07100h ;data for res (iy+d)
db 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
 
org 071f9h ;data for set (iy+d)
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
 
org 073fah ;data for res (ix+d)
db 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
 
org 07ffeh ;data for set (ix+d)
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
 
org 08480h ;data for res (hl)
db 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
 
org 08500h ;data for bit (hl)
db 80h, 0bfh, 20h, 10h, 0f7h, 40h, 0fdh, 0feh
 
org 08540h ;data for bit (ix+d)
db 00h, 00h, 0ffh, 0ffh, 0ffh, 0ffh, 00h, 00h
 
org 08580h ;data for bit (iy+d)
db 00h, 0ffh, 00h, 0ffh, 0ffh, 00h, 0ffh, 00h
 
org 0c000h ;af data for bit
dw 07fffh
dw 040ffh
dw 0df00h
dw 01000h
/trunk/asm/int_opsd.s
0,0 → 1,79
;**********************************************************************************
;* *
;* int_ops compare data *
;* *
;**********************************************************************************
org 03cc4h
db 0c4h
db 0c5h
db 0c6h
db 0c7h
db 0c8h
db 0c9h
db 0cah
db 0cbh
db 0cch
db 0cdh
db 0ceh
db 0cfh
db 0d0h
db 0d1h
db 0d2h
db 0d3h
db 0d4h
 
 
org 05a3ch
db 05ah
 
 
org 0966ah
db 003h
db 005h
db 007h
db 009h
db 00bh
db 00dh
db 00fh
db 011h
db 013h
db 015h
db 017h
db 019h
db 01bh
db 01dh
db 01fh
db 021h
db 023h
db 025h
db 027h
db 029h
 
 
org 0ff32h
dw 03cceh ;ff32h
dw 08421h, 0edb7h, 0ff92h, 0d610h, 09678h ;ff34h
dw 02e00h, 00100h, 0001fh, 05a44h, 05a44h ;ff3eh
dw 06900h, 02e00h, 00100h, 0001fh, 0de00h ;ff48h
dw 06900h, 02d00h, 00100h, 0001eh, 0dd00h ;ff52h
dw 06900h, 02c00h, 00100h, 0001dh, 0dc01h ;ff5ch
dw 06900h, 02b00h, 00100h, 0001ch, 0db01h ;ff66h
dw 06916h, 02a00h, 00100h, 0001bh, 0da00h ;ff70h
dw 09394h, 02900h, 00100h, 0001ah, 0d900h ;ff7ah
dw 06a04h, 02800h, 00100h, 00019h, 0d800h ;ff84h
dw 04204h, 02700h, 00100h, 00018h, 0d700h ;ff8eh
 
dw 05500h, 02600h, 00100h, 00017h ;ff98h
dw 0d512h, 00016h, 0d412h, 00015h ;ffa0h
dw 0d311h, 05500h, 05500h, 00014h ;ffa8h
dw 0d300h, 00044h, 00044h, 00013h ;ffb0h
dw 0d200h, 00012h, 0d104h, 00011h ;ffb8h
dw 0d001h, 00010h, 0cf01h, 0000fh ;ffc0h
dw 0ce01h, 0000eh, 0ccffh, 0000dh ;ffc8h
dw 0cc00h, 0000ch, 0cb00h, 0000bh ;ffd0h
dw 0c9ffh, 0000ah, 0c8ffh, 00009h ;ffd8h
dw 0c7feh, 00008h, 0c6feh, 00007h ;ffe0h
dw 0c601h, 00006h, 0c501h, 00005h ;ffe8h
dw 05000h, 00004h, 05000h, 00003h ;fff0h
dw 0c202h, 00002h, 0c102h, 00001h ;fff8h
 
/trunk/asm/alu_ops.s
0,0 → 1,1102
;**********************************************************************************
;* *
;* checks all alu operation instructions *
;* *
;**********************************************************************************
aseg
 
org 00h
jp 100h
 
org 0c0h ;pattern finish location
nop
jr 0c0h
 
org 0100h
ld sp, 0000h ;point sp at result table
ld a, 0ffh ;initialize the main registers
xor a ;initialize flags
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
ld ix, 05678h
ld iy, 0789ah
ccf
push af ;0045h @ fffeh
ccf
push af ;0044h @ fffch
scf
push af ;0045h @ fffah
scf
push af ;0045h @ fff8h
ld a, 80h
cpl
push af ;7f57h @ fff6h
cpl
push af ;8057h @ fff4h
xor a
neg
push af ;0042h @ fff2h
inc a
neg
push af ;ff93h @ fff0h
ld a, 02h
neg
push af ;fe93h @ ffeeh
neg
push af ;0213h @ ffech
ld a, 80h
neg
push af ;8087h @ ffeah
xor a
dec bc
push bc ;ffffh @ ffe8h
inc bc
push bc ;0000h @ ffe6h
inc bc
push bc ;0001h @ ffe4h
dec de
push de ;ffffh @ ffe2h
inc de
push de ;0000h @ ffe0h
dec hl
push hl ;ffffh @ ffdeh
inc hl
push hl ;0000h @ ffdch
dec ix
push ix ;5677h @ ffdah
dec iy
push iy ;7899h @ ffd8h
dec sp
dec sp
push iy ;7899h @ ffd4h
inc ix
push ix ;5678h @ ffd2h
push iy ;7899h @ ffd0h
inc iy
push ix ;5678h @ ffceh
push iy ;789ah @ ffcch
ld sp, 0ffa0h
inc sp
inc sp
push af ;0044h @ ffa0h
push bc ;0001h @ ff9eh
push de ;0000h @ ff9ch
push hl ;0000h @ ff9ah
ld bc, 5454h
ld de, 1234h
ld hl, 0fdb9h
add hl, bc
push af ;0055h @ ff98h
push bc ;5454h @ ff96h
push de ;1234h @ ff94h
push hl ;520dh @ ff92h
add hl, de
push af ;0044h @ ff90h
push bc ;5454h @ ff8eh
push de ;1234h @ ff8ch
push hl ;6441h @ ff8ah
add hl, hl
push af ;0044h @ ff88h
push bc ;5454h @ ff86h
push de ;1234h @ ff84h
push hl ;c882h @ ff82h
add hl, sp
push af ;0055h @ ff80h
push bc ;5454h @ ff7eh
push de ;1234h @ ff7ch
push hl ;c804h @ ff7ah
push ix ;5678h @ ff78h
push iy ;789ah @ ff76h
add ix, bc
push af ;0044h @ ff74h
push bc ;5454h @ ff72h
push de ;1234h @ ff70h
push hl ;c804h @ ff6eh
push ix ;aacch @ ff6ch
push iy ;789ah @ ff6ah
add ix, de
push af ;0044h @ ff68h
push bc ;5454h @ ff66h
push de ;1234h @ ff64h
push hl ;c804h @ ff62h
push ix ;bd00h @ ff60h
push iy ;789ah @ ff5eh
add ix, sp
push af ;0055h @ ff5ch
push bc ;5454h @ ff5ah
push de ;1234h @ ff58h
push hl ;c804h @ ff56h
push ix ;bc5eh @ ff54h
push iy ;789ah @ ff52h
add ix, ix
push af ;0055h @ ff50h
push bc ;5454h @ ff4eh
push de ;1234h @ ff4ch
push hl ;c804h @ ff4ah
push ix ;78bch @ ff48h
push iy ;789ah @ ff46h
add iy, bc
push af ;0044h @ ff44h
push bc ;5454h @ ff42h
push de ;1234h @ ff40h
push hl ;c804h @ ff3eh
push ix ;78bch @ ff3ch
push iy ;cceeh @ ff3ah
add iy, de
push af ;0044h @ ff38h
push bc ;5454h @ ff36h
push de ;1234h @ ff34h
push hl ;c804h @ ff32h
push ix ;78bch @ ff30h
push iy ;df22h @ ff2eh
add iy, sp
push af ;0055h @ ff2ch
push bc ;5454h @ ff2ah
push de ;1234h @ ff28h
push hl ;c804h @ ff26h
push ix ;78bch @ ff24h
push iy ;de50h @ ff22h
add iy, iy
push af ;0055h @ ff20h
push bc ;5454h @ ff1eh
push de ;1234h @ ff1ch
push hl ;c804h @ ff1ah
push ix ;78bch @ ff18h
push iy ;bca0h @ ff16h
ld sp, 0ff00h
xor a
inc a
push af ;0100h @ fefeh
ld a, 0fh
inc a
push af ;1010h @ fefch
ld a, 7fh
inc a
push af ;8094h @ fefah
ld a, 0ffh
inc a
push af ;0050h @ fef8h
dec a
push af ;ff92h @ fef6h
dec a
push af ;fe82h @ fef4h
ld a, 10h
dec a
push af ;0f12h @ fef2h
ld a, 80h
dec a
push af ;7f16h @ fef0h
push bc ;5454h @ feeeh
push de ;1234h @ feech
push hl ;c804h @ feeah
push ix ;78bch @ fee8h
push iy ;bca0h @ fee6h
inc b
inc d
inc d
inc h
inc h
inc h
push af ;7f80h @ fee4h
push bc ;5554h @ fee2h
push de ;1434h @ fee0h
push hl ;cb04h @ fedeh
inc c
inc c
inc c
inc e
inc e
inc l
push af ;7f00h @ fedch
push bc ;5557h @ fedah
push de ;1436h @ fed8h
push hl ;cb05h @ fed6h
dec b
dec b
dec b
dec d
dec d
dec h
push af ;7f82h @ fed4h
push bc ;5257h @ fed2h
push de ;1236h @ fed0h
push hl ;ca05h @ feceh
dec c
dec e
dec e
dec l
dec l
dec l
push af ;7f02h @ fecch
push bc ;5256h @ fecah
push de ;1234h @ fec8h
push hl ;ca02h @ fec6h
push ix ;78bch @ fec4h
push iy ;bca0h @ fec2h
inc (hl) ; 1fh @ ca02h read
; 20h @ ca02h write
push af ;7f10h @ fec0h
inc hl
dec (hl) ; 00h @ ca03h
; ffh @ ca03h
push af ;7f92h @ febeh
inc (ix+0fh) ; 2eh @ 78cbh read
; 2fh @ 78cbh write
dec (ix+10h) ; c0h @ 78cch read
; bfh @ 78cch write
inc (iy+0feh) ; f0h @ bc9eh read
; f1h @ bc9eh write
dec (iy+0ffh) ; 80h @ bc9fh read
; 7fh @ bc9fh write
push af ;7f16h @ febch
push bc ;5256h @ febah
push de ;1234h @ feb8h
push hl ;ca03h @ feb6h
push ix ;78bch @ feb4h
push iy ;bca0h @ feb2h
xor a
adc hl, bc
push af ;0001h @ feb0h
push bc ;5256h @ feaeh
push de ;1234h @ feach
push hl ;1c59h @ feaah
scf
adc hl, bc
push af ;0000h @ fea8h
push bc ;5256h @ fea6h
push de ;1234h @ fea4h
push hl ;6eb0h @ fea2h
and a
adc hl, de
push af ;0094h @ fea0h
push bc ;5256h @ fe9eh
push de ;1234h @ fe9ch
push hl ;80e4h @ fe9ah
scf
adc hl, de
push af ;0080h @ fe98h
push bc ;5256h @ fe96h
push de ;1234h @ fe94h
push hl ;9319h @ fe92h
and a
adc hl, hl
push af ;0005h @ fe90h
push bc ;5256h @ fe8eh
push de ;1234h @ fe8ch
push hl ;2632h @ fe8ah
scf
adc hl, hl
push af ;0000h @ fe88h
push bc ;5256h @ fe86h
push de ;1234h @ fe84h
push hl ;4c65h @ fe82h
and a
adc hl, sp
push af ;0011h @ fe80h
push bc ;5256h @ fe7eh
push de ;1234h @ fe7ch
push hl ;4ae7h @ fe7ah
scf
adc hl, sp
push af ;0011h @ fe78h
push bc ;5256h @ fe76h
push de ;1234h @ fe74h
push hl ;4962h @ fe72h
and a
sbc hl, bc
push af ;0083h @ fe70h
push bc ;5256h @ fe6eh
push de ;1234h @ fe6ch
push hl ;f70ch @ fe6ah
scf
sbc hl, bc
push af ;0082h @ fe68h
push bc ;5256h @ fe66h
push de ;1234h @ fe64h
push hl ;a4b5h @ fe62h
and a
sbc hl, de
push af ;0082h @ fe60h
push bc ;5256h @ fe5eh
push de ;1234h @ fe5ch
push hl ;9281h @ fe5ah
scf
sbc hl, de
push af ;0082h @ fe58h
push bc ;5256h @ fe56h
push de ;1234h @ fe54h
push hl ;804ch @ fe52h
and a
sbc hl, sp
push af ;0093h @ fe50h
push bc ;5256h @ fe4eh
push de ;1234h @ fe4ch
push hl ;81fah @ fe4ah
scf
sbc hl, sp
push af ;0093h @ fe48h
push bc ;5256h @ fe46h
push de ;1234h @ fe44h
push hl ;83afh @ fe42h
and a
sbc hl, hl
push af ;0042h @ fe40h
push bc ;5256h @ fe3eh
push de ;1234h @ fe3ch
push hl ;0000h @ fe3ah
scf
sbc hl, hl
push af ;0093h @ fe38h
push bc ;5256h @ fe36h
push de ;1234h @ fe34h
push hl ;ffffh @ fe32h
ld sp, 0fe00h
ld ix, 01000h
ld iy, 02000h
xor a
scf
ld a, 0aah
ld b, 0c0h
ld c, 030h
ld d, 0ch
ld e, 03h
ld h, 055h
ld l, 08ah
and b
push af ;8090h @ fdfeh
ld a, 0aah
and c
push af ;2010h @ fdfch
ld a, 0aah
and d
push af ;0810h @ fdfah
ld a, 0aah
and e
push af ;0210h @ fdf8h
ld a, 0aah
and h
push af ;0054h @ fdf6h
ld a, 0aah
and l
push af ;8a90h @ fdf4h
and 5fh
push af ;0a14h @ fdf2h
ld hl, 03000h
ld a, 0aah
and (hl) ; 3ch @ 3000h
push af ;2814h @ fdf0h
and (ix+0h) ; c7h @ 1000h
push af ;0054h @ fdeeh
ld a, 0aah
and (iy+0h) ; 82h @ 2000h
push af ;8294h @ fdech
scf
ld a, 0aah
ld b, 060h
ld c, 030h
ld d, 0aeh
ld e, 07h
ld h, 0aah
ld l, 08ah
xor b
push af ;ca84h @ fdeah
ld a, 0aah
xor c
push af ;9a84h @ fde8h
ld a, 0aah
xor d
push af ;0400h @ fde6h
ld a, 0aah
xor e
push af ;ad80h @ fde4h
ld a, 0aah
xor h
push af ;0044h @ fde2h
ld a, 0aah
xor l
push af ;2000h @ fde0h
xor 0ffh
push af ;df80h @ fddeh
ld hl, 03001h
ld a, 0aah
xor (hl) ; 55h @ 3001h
push af ;ff84h @ fddch
xor (ix+1h) ; a2h @ 1001h
push af ;5d00h @ fddah
ld a, 0aah
xor (iy+1h) ; abh @ 2001h
push af ;0100h @ fdd8h
scf
ld a, 0aah
ld b, 060h
ld c, 030h
ld d, 0aeh
ld e, 07h
ld h, 055h
ld l, 0h
or b
push af ;ea80h @ fdd6h
ld a, 0aah
or c
push af ;ba80h @ fdd4h
ld a, 0aah
or d
push af ;ae80h @ fdd2h
ld a, 0aah
or e
push af ;af84h @ fdd0h
ld a, 0aah
or h
push af ;ff84h @ fdceh
ld a, 0h
or l
push af ;0044h @ fdcch
or 055h
push af ;5504h @ fdcah
ld hl, 03002h
ld a, 08eh
or (hl) ; 55h @ 3002h
push af ;df80h @ fdc8h
ld a, 0fh
or (ix+2h) ; 80h @ 1002h
push af ;8f80h @ fdc6h
ld a, 20h
or (iy+2h) ; 78h @ 2002h
push af ;7804h @ fdc4h
scf
ld a, 0aah
ld b, 060h
ld c, 030h
ld d, 0aeh
ld e, 07h
ld h, 055h
ld l, 0f6h
add a, b
push af ;0a01h @ fdc2h
ld a, 0aah
add a, c
push af ;da80h @ fdc0h
ld a, 0aah
add a, d
push af ;5815h @ fdbeh
ld a, 0aah
add a, e
push af ;b190h @ fdbch
ld a, 0aah
add a, h
push af ;ff80h @ fdbah
ld a, 0aah
add a, l
push af ;a091h @ fdb8h
add a, 055h
push af ;f580h @ fdb6h
ld hl, 03003h
ld a, 0aah
add a, (hl) ; ffh @ 3003h
push af ;a991h @ fdb4h
ld a, 0fh
add a, (ix+3h) ; 01h @ 1003h
push af ;1010h @ fdb2h
ld a, 20h
add a, (iy+3h) ; 78h @ 2003h
push af ;9884h @ fdb0h
scf
ld a, 0aah
ld b, 060h
ld c, 030h
ld d, 0aeh
ld e, 07h
ld h, 055h
ld l, 0f6h
sub b
push af ;4a06h @ fdaeh
ld a, 0aah
sub c
push af ;7a06h @ fdach
ld a, 0aah
sub d
push af ;fc93h @ fdaah
ld a, 0aah
sub e
push af ;a382h @ fda8h
ld a, 0aah
sub h
push af ;5506h @ fda6h
ld a, 0aah
sub l
push af ;b483h @ fda4h
sub 055h
push af ;5f16h @ fda2h
ld hl, 03004h
ld a, 0aah
sub (hl) ; aah @ 3004h
push af ;0042h @ fda0h
ld a, 0fh
sub (ix+4h) ; 01h @ 1004h
push af ;0e02h @ fd9eh
ld a, 20h
sub (iy+4h) ; 60h @ 2004h
push af ;c083h @ fd9ch
scf
ld a, 0aah
ld b, 060h
ld c, 030h
ld d, 0aeh
ld e, 07h
ld h, 055h
ld l, 0f6h
cp b
push af ;aa06h @ fd9ah
cp c
push af ;aa06h @ fd98h
cp d
push af ;aa93h @ fd96h
cp e
push af ;aa82h @ fd94h
cp h
push af ;aa06h @ fd92h
cp l
push af ;aa83h @ fd90h
ld a, 0b4h
cp 055h
push af ;b416h @ fd8eh
ld hl, 03005h
ld a, 0aah
cp (hl) ; aah @ 3005h
push af ;aa42h @ fd8ch
ld a, 0fh
cp (ix+5h) ; 01h @ 1005h
push af ;0f02h @ fd8ah
ld a, 20h
cp (iy+5h) ; 60h @ 2005h
push af ;2083h @ fd88h
scf
ld a, 0aah
ld b, 060h
ld c, 030h
ld d, 0aeh
ld e, 07h
ld h, 055h
ld l, 0f6h
adc a, b
push af ;0b01h @ fd86h
ld a, 0aah
adc a, c
push af ;db80h @ fd84h
ld a, 0aah
adc a, d
push af ;5815h @ fd82h
ld a, 0aah
adc a, e
push af ;b290h @ fd80h
ld a, 0aah
adc a, h
push af ;ff80h @ fd7eh
ld a, 0aah
adc a, l
push af ;a091h @ fd7ch
adc a, 055h
push af ;f680h @ fd7ah
ld hl, 03006h
ld a, 0aah
adc a, (hl) ; ffh @ 3006h
push af ;a991h @ fd78h
ld a, 0fh
adc a, (ix+6h) ; 01h @ 1006h
push af ;1110h @ fd76h
ld a, 20h
adc a, (iy+6h) ; 78h @ 2006h
push af ;9884h @ fd74h
scf
ld a, 0aah
ld b, 060h
ld c, 030h
ld d, 0aeh
ld e, 07h
ld h, 055h
ld l, 0f6h
sbc a, b
push af ;4906h @ fd72h
ld a, 0aah
sbc a, c
push af ;7a06h @ fd70h
ld a, 0aah
sbc a, d
push af ;fc93h @ fd6eh
ld a, 0aah
sbc a, e
push af ;a282h @ fd6ch
ld a, 0aah
sbc a, h
push af ;5506h @ fd6ah
ld a, 0aah
sbc a, l
push af ;b483h @ fd68h
sbc a, 055h
push af ;5e16h @ fd66h
ld hl, 03007h
ld a, 0aah
sbc a, (hl) ; aah @ 3007h
push af ;0042h @ fd64h
ld a, 0fh
sbc a, (ix+7h) ; 01h @ 1007h
push af ;0e02h @ fd62h
ld a, 20h
sbc a, (iy+7h) ; 60h @ 2007h
push af ;c083h @ fd60h
scf
xor a
push af ;0044h @ fd5eh
ld a, 38h
and a
push af ;3810h @ fd5ch
cp a
push af ;3842h @ fd5ah
add a, a
push af ;7010h @ fd58h
adc a, a
push af ;e084h @ fd56h
or a
push af ;e080h @ fd54h
scf
adc a, a
push af ;c181h @ fd52h
ccf
sbc a, a
push af ;0042h @ fd50h
scf
sbc a, a
push af ;ff93h @ fd4eh
sub a
push af ;0042h @ fd4ch
ld sp, 0fd00h
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
ld a, 35h
rlc a
push af ;6a04h @ fcfeh
rlc a
push af ;d484h @ fcfch
rlc a
push af ;a985h @ fcfah
rlc a
push af ;5305h @ fcf8h
rlc a
push af ;a684h @ fcf6h
rrc a
push af ;5304h @ fcf4h
rrc a
push af ;a985h @ fcf2h
rrc a
push af ;d485h @ fcf0h
rrc a
push af ;6a04h @ fceeh
rrc a
push af ;3504h @ fcech
rl a
push af ;6a04h @ fceah
rl a
push af ;d484h @ fce8h
rl a
push af ;a881h @ fce6h
rl a
push af ;5101h @ fce4h
rl a
push af ;a384h @ fce2h
rr a
push af ;5101h @ fce0h
rr a
push af ;a881h @ fcdeh
rr a
push af ;d484h @ fcdch
rr a
push af ;6a04h @ fcdah
rr a
push af ;3504h @ fcd8h
sla a
push af ;6a04h @ fcd6h
sla a
push af ;d484h @ fcd4h
sla a
push af ;a881h @ fcd2h
sla a
push af ;5005h @ fcd0h
sla a
push af ;a084h @ fcceh
ld a, 35h
sra a
push af ;1a01h @ fccch
sra a
push af ;0d00h @ fccah
sra a
push af ;0605h @ fcc8h
ld a, 86h
sra a
push af ;c384h @ fcc6h
sra a
push af ;e185h @ fcc4h
ld a, 35h
srl a
push af ;1a01h @ fcc2h
srl a
push af ;0d00h @ fcc0h
srl a
push af ;0605h @ fcbeh
ld a, 86h
srl a
push af ;4300h @ fcbch
srl a
push af ;2105h @ fcbah
push bc ;0000h @ fcb8h
push de ;0000h @ fcb6h
push hl ;0000h @ fcb4h
xor a
ld bc, 05867h
ld de, 09acbh
ld hl, 021f0h
rlc b
push bc ;b067h @ fcb2h
rlc c
push bc ;b0ceh @ fcb0h
rlc d
push de ;35cbh @ fcaeh
rlc e
push de ;3597h @ fcach
rlc h
push hl ;42f0h @ fcaah
rlc l
push hl ;42e1h @ fca8h
push af ;0085h @ fca6h
ld bc, 05867h
ld de, 09acbh
ld hl, 021f0h
rrc b
push bc ;2c67h @ fca4h
rrc c
push bc ;2cb3h @ fca2h
rrc d
push de ;4dcbh @ fca0h
rrc e
push de ;4de5h @ fc9eh
rrc h
push hl ;90f0h @ fc9ch
rrc l
push hl ;9078h @ fc9ah
push af ;0004h @ fc98h
ld bc, 05867h
ld de, 09acbh
ld hl, 021f0h
rl b
push bc ;b067h @ fc96h
rl c
push bc ;b0ceh @ fc94h
rl d
push de ;34cbh @ fc92h
rl e
push de ;3497h @ fc90h
rl h
push hl ;43f0h @ fc8eh
rl l
push hl ;43e0h @ fc8ch
push af ;0081h @ fc8ah
ld bc, 05867h
ld de, 09acbh
ld hl, 021f0h
rr b
push bc ;ac67h @ fc88h
rr c
push bc ;ac33h @ fc86h
rr d
push de ;cdcbh @ fc84h
rr e
push de ;cd65h @ fc82h
rr h
push hl ;90f0h @ fc80h
rr l
push hl ;90f8h @ fc7eh
push af ;0080h @ fc7ch
ld bc, 05867h
ld de, 09acbh
ld hl, 021f0h
sla b
push bc ;b067h @ fc7ah
sla c
push bc ;b0ceh @ fc78h
sla d
push de ;34cbh @ fc76h
sla e
push de ;3496h @ fc74h
sla h
push hl ;42f0h @ fc72h
sla l
push hl ;42e0h @ fc70h
push af ;0081h @ fc6eh
ld bc, 05867h
ld de, 09acbh
ld hl, 021f0h
sra b
push bc ;2c67h @ fc6ch
sra c
push bc ;2c33h @ fc6ah
sra d
push de ;cdcbh @ fc68h
sra e
push de ;cde5h @ fc66h
sra h
push hl ;10f0h @ fc64h
sra l
push hl ;10f8h @ fc62h
push af ;0080h @ fc60h
ld bc, 05867h
ld de, 09acbh
ld hl, 021f0h
srl b
push bc ;2c67h @ fc5eh
srl c
push bc ;2c33h @ fc5ch
srl d
push de ;4dcbh @ fc5ah
srl e
push de ;4d65h @ fc58h
srl h
push hl ;10f0h @ fc56h
srl l
push hl ;1078h @ fc54h
push af ;0004h @ fc52h
ld hl, 3008h
rlc (hl) ; c5h @ 3008h read
; 8bh @ 3008h write
push af ;0085h @ fc50h
inc hl
rrc (hl) ; c5h @ 3009h read
; e2h @ 3009h write
push af ;0085h @ fc4eh
inc hl
rl (hl) ; c5h @ 300ah read
; 8bh @ 300ah write
push af ;0085h @ fc4ch
inc hl
rr (hl) ; c4h @ 300bh read
; e2h @ 300bh write
push af ;0084h @ fc4ah
inc hl
sla (hl) ; c5h @ 300ch read
; 8ah @ 300ch write
push af ;0081h @ fc48h
ccf
inc hl
sra (hl) ; c5h @ 300dh read
; e2h @ 300dh write
push af ;0085h @ fc46h
inc hl
srl (hl) ; c5h @ 300eh read
; 62h @ 300eh write
push af ;0001h @ fc44h
rlc (ix+8h) ; 67h @ 1008h read
; ceh @ 1008h write
push af ;0080h @ fc42h
rrc (ix+9h) ; 67h @ 1009h read
; b3h @ 1009 write
push af ;0081h @ fc40h
rl (ix+0ah) ; 67h @ 100ah read
; cfh @ 100ah write
push af ;0084h @ fc3eh
rr (ix+0bh) ; 67h @ 100bh read
; 33h @ 100bh write
push af ;0005h @ fc3ch
sla (ix+0ch) ; 67h @ 100ch read
; ceh @ 100ch write
push af ;0080h @ fc3ah
sra (ix+0dh) ; 67h @ 100dh read
; 33h @ 100dh write
push af ;0005h @ fc38h
srl (ix+0eh) ; 67h @ 100eh read
; 33h @ 100eh write
push af ;0005h @ fc36h
rlc (iy+8h) ; f0h @ 2008h read
; e1h @ 2008h write
push af ;0085h @ fc34h
rrc (iy+9h) ; f0h @ 2009h read
; 78h @ 2009 write
push af ;0004h @ fc32h
rl (iy+0ah) ; f0h @ 200ah read
; e0h @ 200ah write
push af ;0081h @ fc30h
rr (iy+0bh) ; f0h @ 200bh read
; f8h @ 200bh write
push af ;0080h @ fc2eh
sla (iy+0ch) ; f0h @ 200ch read
; e0h @ 200ch write
push af ;0081h @ fc2ch
sra (iy+0dh) ; f0h @ 200dh read
; f8h @ 200dh write
push af ;0080h @ fc2ah
srl (iy+0eh) ; f0h @ 200eh read
; 78h @ 200eh write
push af ;0004h @ fc28h
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
ld a, 35h
rlca
push af ;6a44h @ fc26h
rlca
push af ;d444h @ fc24h
rlca
push af ;a945h @ fc22h
rlca
push af ;5345h @ fc20h
rlca
push af ;a644h @ fc1eh
rrca
push af ;5344h @ fc1ch
rrca
push af ;a945h @ fc1ah
rrca
push af ;d445h @ fc18h
rrca
push af ;6a44h @ fc16h
rrca
push af ;3544h @ fc14h
rla
push af ;6a44h @ fc12h
rla
push af ;d444h @ fc10h
rla
push af ;a845h @ fc0eh
rla
push af ;5145h @ fc0ch
rla
push af ;a344h @ fc0ah
rra
push af ;5145h @ fc08h
rra
push af ;a845h @ fc06h
rra
push af ;d444h @ fc04h
rra
push af ;6a44h @ fc02h
rra
push af ;3544h @ fc00h
ld sp, 0fa00h
pop af ;9900h @ fa00h
ld sp, 0fb00h
daa
push af ;9984h @ fafeh
ld sp, 0fa02h
pop af ;8a00h @ fa02h
ld sp, 0fafeh
daa
push af ;9094h @ fafch
ld sp, 0fa04h
pop af ;7210h @ fa04h
ld sp, 0fafch
daa
push af ;7804h @ fafah
ld sp, 0fa06h
pop af ;a600h @ fa06h
ld sp, 0fafah
daa
push af ;0605h @ faf8h
ld sp, 0fa08h
pop af ;9b00h @ fa08h
ld sp, 0faf8h
daa
push af ;0111h @ faf6h
ld sp, 0fa0ah
pop af ;b110h @ fa0ah
ld sp, 0faf6h
daa
push af ;1705h @ faf4h
ld sp, 0fa0ch
pop af ;2401h @ fa0ch
ld sp, 0faf4h
daa
push af ;8485h @ faf2h
ld sp, 0fa0eh
pop af ;1f01h @ fa0eh
ld sp, 0faf2h
daa
push af ;8591h @ faf0h
ld sp, 0fa10h
pop af ;0111h @ fa10h
ld sp, 0faf0h
daa
push af ;6701h @ faeeh
ld sp, 0fa12h
pop af ;7702h @ fa12h
ld sp, 0faeeh
daa
push af ;7706h @ faech
ld sp, 0fa14h
pop af ;8812h @ fa14h
ld sp, 0faech
daa
push af ;8296h @ faeah
ld sp, 0fa16h
pop af ;7303h @ fa16h
ld sp, 0faeah
daa
push af ;1303h @ fae8h
ld sp, 0fa18h
pop af ;6613h @ fa18h
ld sp, 0fae8h
daa
push af ;0057h @ fae6h
 
xor a
ld sp, 0facch
ld hl, 0300fh
ld a, 67h
rld ; 2fh @ 300fh read
; f7h @ 300fh write
push af ;6200h @ facah
inc hl
rrd ; e3h @ 3010h read
; 2eh @ 3010h write
push af ;6304h @ fac8h
 
ld hl, 0100h
jp 0c0h
 
org 1000h
db 0c7h, 0a2h, 080h, 001h, 001h, 001h, 001h, 001h
db 067h, 067h, 067h, 067h, 067h, 067h, 067h
 
org 2000h
db 082h, 0abh, 078h, 078h, 060h, 060h, 078h, 060h
db 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h, 0f0h
 
org 3000h
db 03ch, 055h, 055h, 0ffh, 0aah, 0aah, 0ffh, 0aah
db 0c5h, 0c5h, 0c5h, 0c4h, 0c5h, 0c5h, 0c5h, 02fh
db 0e3h
 
org 078cbh
db 02eh, 0c0h
 
org 0bc9eh
db 0f0h, 080h
 
org 0ca02h
db 01fh, 00h
 
org 0fa00h
dw 09900h, 08a00h, 07210h, 0a600h
dw 09b00h, 0b110h, 02401h, 01f01h
dw 00111h, 07702h, 08812h, 07303h
dw 06613h
 
/trunk/asm/setup_hl.s
0,0 → 1,15
;**********************************************************************************
;* *
;* set up hl register for trap patterns *
;* *
;**********************************************************************************
org 00h
jp 100h
 
org 0c0h ;pattern finish location
nop
jr 0c0h
 
org 0100h
ld hl, 0100h ;init hl for next pattern
jp 0c0h
/trunk/asm/bit_opsd.s
0,0 → 1,82
;**********************************************************************************
;* *
;* bit_ops compare data *
;* *
;**********************************************************************************
org 07000h
db 001h, 002h, 004h, 008h, 010h, 020h, 040h, 080h
 
org 07100h
db 0feh, 0fdh, 0fbh, 0f7h, 0efh, 0dfh, 0bfh, 07fh
 
org 71f8h
db 001h, 080h, 040h, 020h, 010h, 008h, 004h, 002h
db 001h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
 
org 073fah
db 07fh, 0bfh, 0dfh, 0efh, 0f7h, 0fbh, 0fdh, 0feh
 
org 7ff8h
db 000h, 000h, 000h, 000h, 000h, 000h, 080h, 040h
db 020h, 010h, 008h, 004h, 002h, 001h, 000h, 000h
 
org 08480h
db 0feh, 0fdh, 0fbh, 0f7h, 0efh, 0dfh, 0bfh, 07fh
 
org 0bf60h
dw 00054h, 00014h, 00054h, 00014h ;bf60h
dw 00014h, 00054h, 00014h, 00054h ;bf68h
dw 00054h, 00054h, 00014h, 00014h ;bf70h
dw 00014h, 00014h, 00054h, 00054h ;bf78h
dw 00054h, 00054h, 00054h, 00054h ;bf80h
dw 00014h, 00014h, 00054h, 00014h ;bf88h
dw 00014h, 00054h, 00014h, 00054h ;bf90h
dw 00014h, 00054h, 00014h, 00054h ;bf98h
dw 00014h, 00014h, 00054h, 00054h ;bfa0h
dw 00014h, 00014h, 00054h, 00054h ;bfa8h
dw 00014h, 00014h, 00014h, 00014h ;bfb0h
dw 00054h, 00054h, 00054h, 00054h ;bfb8h
dw 00054h, 00014h, 00054h, 00014h ;bfc0h
dw 00054h, 00014h, 00054h, 00014h ;bfc8h
dw 00054h, 00054h, 00014h, 00014h ;bfd0h
dw 00054h, 00054h, 00014h, 00014h ;bfd8h
dw 00054h, 00054h, 00054h, 00054h ;bfe0h
dw 00014h, 00014h, 00014h, 00014h ;bfe8h
dw 00110h, 0fd50h, 00410h, 0f750h ;bff0h
dw 01010h, 0df50h, 040bdh, 07ffdh ;bff8h
 
org 0fef8h
dw 08487h, 0ffffh, 0ffffh, 0ff84h ;fef8h
dw 08406h, 0ffffh, 0ffffh, 0ff84h ;ff00h
dw 00485h, 0ffffh, 0ffffh, 0ff84h ;ff08h
dw 08484h, 0ff7fh, 0ffffh, 0ff84h ;ff10h
dw 08483h, 07fffh, 0ffffh, 0ff84h ;ff18h
dw 08482h, 0ffffh, 0ff7fh, 0ff84h ;ff20h
dw 08481h, 0ffffh, 07fffh, 0ff84h ;ff28h
dw 08480h, 0ffffh, 0ffffh, 07f84h ;ff30h
dw 0bffeh, 0efdfh, 0fbf7h, 0fd84h ;ff38h
dw 0fefdh, 0dfbfh, 0f7efh, 0fb84h ;ff40h
dw 0fdfbh, 0bffeh, 0efdfh, 0f784h ;ff48h
dw 0fbf7h, 0fefdh, 0dfbfh, 0ef84h ;ff50h
dw 0f7efh, 0fdfbh, 0bffeh, 0df84h ;ff58h
dw 0efdfh, 0fbf7h, 0fefdh, 0bf84h ;ff60h
dw 0dfbfh, 0f7efh, 0fdfbh, 0fe84h ;ff68h
dw 070feh, 07401h, 0ffffh, 0ffffh ;ff70h
dw 0ffffh, 0ff84h, 07007h, 00000h ;ff78h
dw 00000h, 00044h, 07086h, 00000h ;ff80h
dw 00000h, 00044h, 0f005h, 00000h ;ff88h
dw 00000h, 00044h, 07004h, 00080h ;ff90h
dw 00000h, 00044h, 07003h, 08000h ;ff98h
dw 00000h, 00044h, 07002h, 00000h ;ffa0h
dw 00080h, 00044h, 07001h, 00000h ;ffa8h
dw 08000h, 00044h, 07000h, 00000h ;ffb0h
dw 00000h, 08044h, 04001h, 01020h ;ffb8h
dw 00408h, 00244h, 00102h, 02040h ;ffc0h
dw 00810h, 00444h, 00204h, 04001h ;ffc8h
dw 01020h, 00844h, 00408h, 00102h ;ffd0h
dw 02040h, 01044h, 00810h, 00204h ;ffd8h
dw 04001h, 02044h, 01020h, 00408h ;ffe0h
dw 00102h, 04044h, 02040h, 00810h ;ffe8h
dw 00204h, 00144h, 07201h, 07ffeh ;fff0h
dw 00000h, 00000h, 00000h, 00044h ;fff8h
 
/trunk/asm/alu_opsd.s
0,0 → 1,154
;**********************************************************************************
;* *
;* alu_ops compare data *
;* *
;**********************************************************************************
org 01008h
db 0ceh, 0b3h, 0cfh, 033h, 0ceh, 033h, 033h
 
org 02008h
db 0e1h, 078h, 0e0h, 0f8h, 0e0h, 0f8h, 078h
 
org 02da8h
dw 0ffffh, 0ffffh, 0ffffh, 03872h ;2da8h
dw 00000h, 00000h, 0ffffh, 0ffffh ;2db0h
 
org 03008h
db 08bh, 0e2h, 08bh, 0e2h, 08ah, 0e2h, 062h, 0f7h, 02eh
 
org 078cbh
db 02fh, 0bfh
 
org 0bc9eh
db 0f1h, 07fh
 
org 0ca02h
db 020h, 0ffh
 
org 0fac8h
dw 06304h, 06200h, 03872h, 00ff0h ;fac8h
dw 03872h, 03f01h, 000ffh, 0fe01h ;fad0h
dw 00000h, 0ff01h, 0fe01h, 00000h ;fad8h
dw 0ff01h, 0ffffh, 00000h, 00057h ;fae0h
dw 01303h, 08296h, 07706h, 06701h ;fae8h
dw 08591h, 08485h, 01705h, 00111h ;faf0h
dw 00605h, 07804h, 09094h, 09984h ;faf8h
 
org 0fc00h
dw 03544h, 06a44h, 0d444h, 0a845h ;fc00h
dw 05145h, 0a344h, 05145h, 0a845h ;fc08h
dw 0d444h, 06a44h, 03544h, 06a44h ;fc10h
dw 0d445h, 0a945h, 05344h, 0a644h ;fc18h
dw 05345h, 0a945h, 0d444h, 06a44h ;fc20h
dw 00004h, 00080h, 00081h, 00080h ;fc28h
dw 00081h, 00004h, 00085h, 00005h ;fc30h
dw 00005h, 00080h, 00005h, 00084h ;fc38h
dw 00081h, 00080h, 00001h, 00085h ;fc40h
dw 00081h, 00084h, 00085h, 00085h ;fc48h
dw 00085h, 00004h, 01078h, 010f0h ;fc50h
dw 04d65h, 04dcbh, 02c33h, 02c67h ;fc58h
dw 00080h, 010f8h, 010f0h, 0cde5h ;fc60h
dw 0cdcbh, 02c33h, 02c67h, 00081h ;fc68h
dw 042e0h, 042f0h, 03496h, 034cbh ;fc70h
dw 0b0ceh, 0b067h, 00080h, 090f8h ;fc78h
dw 090f0h, 0cd65h, 0cdcbh, 0ac33h ;fc80h
dw 0ac67h, 00081h, 043e0h, 043f0h ;fc88h
dw 03497h, 034cbh, 0b0ceh, 0b067h ;fc90h
dw 00004h, 09078h, 090f0h, 04de5h ;fc98h
dw 04dcbh, 02cb3h, 02c67h, 00085h ;fca0h
dw 042e1h, 042f0h, 03597h, 035cbh ;fca8h
dw 0b0ceh, 0b067h, 00000h, 00000h ;fcb0h
dw 00000h, 02105h, 04300h, 00605h ;fcb8h
dw 00d00h, 01a01h, 0e185h, 0c384h ;fcc0h
dw 00605h, 00d00h, 01a01h, 0a084h ;fcc8h
dw 05005h, 0a881h, 0d484h, 06a04h ;fcd0h
dw 03504h, 06a04h, 0d484h, 0a881h ;fcd8h
dw 05101h, 0a384h, 05101h, 0a881h ;fce0h
dw 0d484h, 06a04h, 03504h, 06a04h ;fce8h
dw 0d485h, 0a985h, 05304h, 0a684h ;fcf0h
dw 05305h, 0a985h, 0d484h, 06a04h ;fcf8h
 
org 0fd48h
dw 0ffffh, 0ffffh, 00042h, 0ff93h ;fd48h
dw 00042h, 0c181h, 0e080h, 0e084h ;fd50h
dw 07010h, 03842h, 03810h, 00044h ;fd58h
dw 0c083h, 00e02h, 00042h, 05e16h ;fd60h
dw 0b483h, 05506h, 0a282h, 0fc93h ;fd68h
dw 07a06h, 04906h, 09884h, 01110h ;fd70h
dw 0a991h, 0f680h, 0a091h, 0ff80h ;fd78h
dw 0b290h, 05815h, 0db80h, 00b01h ;fd80h
dw 02083h, 00f02h, 0aa42h, 0b416h ;fd88h
dw 0aa83h, 0aa06h, 0aa82h, 0aa93h ;fd90h
dw 0aa06h, 0aa06h, 0c083h, 00e02h ;fd98h
dw 00042h, 05f16h, 0b483h, 05506h ;fda0h
dw 0a382h, 0fc93h, 07a06h, 04a06h ;fda8h
dw 09884h, 01010h, 0a991h, 0f580h ;fdb0h
dw 0a091h, 0ff80h, 0b190h, 05815h ;fdb8h
dw 0da80h, 00a01h, 07804h, 08f80h ;fdc0h
dw 0df80h, 05504h, 00044h, 0ff84h ;fdc8h
dw 0af84h, 0ae80h, 0ba80h, 0ea80h ;fdd0h
dw 00100h, 05d00h, 0ff84h, 0df80h ;fdd8h
dw 02000h, 00044h, 0ad80h, 00400h ;fde0h
dw 09a84h, 0ca84h, 08294h, 00054h ;fde8h
dw 02814h, 00a14h, 08a90h, 00054h ;fdf0h
dw 00210h, 00810h, 02010h, 08090h ;fdf8h
 
org 0fe30h
dw 0ffffh, 0ffffh, 01234h, 05256h ;fe30h
dw 00093h, 00000h, 01234h, 05256h ;fe38h
dw 00042h, 083afh, 01234h, 05256h ;fe40h
dw 00093h, 081fah, 01234h, 05256h ;fe48h
dw 00093h, 0804ch, 01234h, 05256h ;fe50h
dw 00082h, 09281h, 01234h, 05256h ;fe58h
dw 00082h, 0a4b5h, 01234h, 05256h ;fe60h
dw 00082h, 0f70ch, 01234h, 05256h ;fe68h
dw 00083h, 04962h, 01234h, 05256h ;fe70h
dw 00011h, 04ae7h, 01234h, 05256h ;fe78h
dw 00011h, 04c65h, 01234h, 05256h ;fe80h
dw 00000h, 02632h, 01234h, 05256h ;fe88h
dw 00005h, 09319h, 01234h, 05256h ;fe90h
dw 00080h, 080e4h, 01234h, 05256h ;fe98h
dw 00094h, 06eb0h, 01234h, 05256h ;fea0h
dw 00000h, 01c59h, 01234h, 05256h ;fea8h
dw 00001h, 0bca0h, 078bch, 0ca03h ;feb0h
dw 01234h, 05256h, 07f16h, 07f92h ;feb8h
dw 07f10h, 0bca0h, 078bch, 0ca02h ;fec0h
dw 01234h, 05256h, 07f02h, 0ca05h ;fec8h
dw 01236h, 05257h, 07f82h, 0cb05h ;fed0h
dw 01436h, 05557h, 07f00h, 0cb04h ;fed8h
dw 01434h, 05554h, 07f80h, 0bca0h ;fee0h
dw 078bch, 0c804h, 01234h, 05454h ;fee8h
dw 07f16h, 00f12h, 0fe82h, 0ff92h ;fef0h
dw 00050h, 08094h, 01010h, 00100h ;fef8h
 
org 0ff10h
dw 0ffffh, 0ffffh, 0ffffh, 0bca0h ;ff10h
dw 078bch, 0c804h, 01234h, 05454h ;ff18h
dw 00055h, 0de50h, 078bch, 0c804h ;ff20h
dw 01234h, 05454h, 00055h, 0df22h ;ff28h
dw 078bch, 0c804h, 01234h, 05454h ;ff30h
dw 00044h, 0cceeh, 078bch, 0c804h ;ff38h
dw 01234h, 05454h, 00044h, 0789ah ;ff40h
dw 078bch, 0c804h, 01234h, 05454h ;ff48h
dw 00055h, 0789ah, 0bc5eh, 0c804h ;ff50h
dw 01234h, 05454h, 00055h, 0789ah ;ff58h
dw 0bd00h, 0c804h, 01234h, 05454h ;ff60h
dw 00044h, 0789ah, 0aacch, 0c804h ;ff68h
dw 01234h, 05454h, 00044h, 0789ah ;ff70h
dw 05678h, 0c804h, 01234h, 05454h ;ff78h
dw 00055h, 0c882h, 01234h, 05454h ;ff80h
dw 00044h, 06441h, 01234h, 05454h ;ff88h
dw 00044h, 0520dh, 01234h, 05454h ;ff90h
dw 00055h, 00000h, 00000h, 00001h ;ff98h
dw 00044h ;ffa0h
 
org 0ffc8h
dw 0ffffh, 0ffffh, 0789ah, 05678h ;ffc8h
dw 07899h, 05678h, 07899h, 0ffffh ;ffd0h
dw 07899h, 05677h, 00000h, 0ffffh ;ffd8h
dw 00000h, 0ffffh, 00001h, 00000h ;ffe0h
dw 0ffffh, 08087h, 00213h, 0fe93h ;ffe8h
dw 0ff93h, 00042h, 08057h, 07f57h ;fff0h
dw 00045h, 00045h, 00054h, 00045h ;fff8h
 
 
/trunk/asm/jmp_ops.s
0,0 → 1,528
;**********************************************************************************
;* *
;* checks all jump, call, etc. instructions *
;* *
;**********************************************************************************
aseg
 
org 00h
jp (hl)
 
org 08h
push bc ;0004h @ fff4h
inc bc
jp (hl)
 
org 10h
push bc ;0006h @ ffeeh
inc bc
jp (hl)
 
org 18h
push bc ;0008h @ ffe8h
inc bc
jp (hl)
 
org 20h
push bc ;000ah @ ffe2h
inc bc
jp (hl)
 
org 28h
push bc ;000ch @ ffdch
inc bc
jp (hl)
 
org 30h
push bc ;000eh @ ffd6h
inc bc
jp (hl)
 
org 38h
push bc ;0010h @ ffd0h
inc bc
jp (hl)
 
org 0c0h ;pattern finish location
nop
jr 0c0h
 
org 0100h
ld sp, 0000h
xor a
ld bc, 0000h
ld de, 0010h
ld hl, 2010h
ld ix, 1000h
ld iy, 2000h
inc bc
jp (ix)
 
org 300h
dw 0001h ;c flag
dw 00feh ;not c flag
dw 0004h ;p/v flag
dw 00fbh ;not p/v flag
dw 0040h ;z flag
dw 00bfh ;not z flag
dw 0080h ;s flag
dw 007fh ;not s flag
dw 0000h ;pattern exit value
 
org 0400h
dw 7160h
dw 7170h
dw 7180h
dw 7190h
dw 71a0h
dw 71b0h
dw 71c0h
dw 71d0h
dw 71e0h
dw 71f0h
 
org 1000h
push bc ;0001h @ fffeh
inc bc
jp (iy)
 
org 2000h
push bc ;0002h @ fffch
inc bc
rst 00h ;2003h @ fffah
 
org 2010h
push bc ;0003h @ fff8h
add hl, de
inc bc
rst 08h ;2014h @ fff6h
 
org 2020h
push bc ;0005h @ fff2h
add hl, de
inc bc
rst 10h ;2024h @ fff0h
 
org 2030h
push bc ;0007h @ ffech
add hl, de
inc bc
rst 18h ;2034h @ ffeah
 
org 2040h
push bc ;0009h @ ffe6h
add hl, de
inc bc
rst 20h ;2044h @ ffe4h
 
org 2050h
push bc ;000bh @ ffe0h
add hl, de
inc bc
rst 28h ;2054h @ ffdeh
 
org 2060h
push bc ;000dh @ ffdah
add hl, de
inc bc
rst 30h ;2064h @ ffd8h
 
org 2070h
push bc ;000fh @ ffd4h
add hl, de
inc bc
rst 38h ;2074h @ ffd2h
 
org 2080h
jp 0ccffh
 
org 7000h
push bc ;0018h @ ffbeh
inc bc
ld sp, 0300h
pop af ;0001h @ 0300h
ld sp, 0ffbeh
call c, 7010h ;700ch @ ffbch
halt
 
org 7010h
push bc ;0019h @ ffbah
inc bc
jp c, 7020h
halt
 
org 7020h
push bc ;001ah @ ffb8h
inc bc
jr c, 7030h
halt
 
org 7030h
push bc ;001bh @ ffb6h
inc bc
ld sp, 0302h
pop af ;00feh @ 0302h
ld sp, 0ffb6h
call nc, 7040h ;703ch @ ffb4h
halt
 
org 7040h
push bc ;001ch @ ffb2h
inc bc
jp nc, 7050h
halt
 
org 7050h
push bc ;001dh @ ffb0h
inc bc
jr nc, 7060h
halt
 
org 7060h
push bc ;001eh @ ffaeh
inc bc
ld sp, 0304h
pop af ;0004h @ 0304h
ld sp, 0ffaeh
call pe, 7070h ;706ch @ ffach
halt
 
org 7070h
push bc ;001fh @ ffaah
inc bc
jp pe, 7080h
halt
 
org 7080h
push bc ;0020h @ ffa8h
inc bc
ld sp, 0306h
pop af ;00fbh @ 0306h
ld sp, 0ffa8h
call po, 7090h ;708ch @ ffa6h
halt
 
org 7090h
push bc ;0021h @ ffa4h
inc bc
jp po, 70a0h
halt
 
org 70a0h
push bc ;0022h @ ffa2h
inc bc
ld sp, 0308h
pop af ;0040h @ 0308h
ld sp, 0ffa2h
call z, 70b0h ;70ach @ ffa0h
halt
 
org 70b0h
push bc ;0023h @ ff9eh
inc bc
jp z, 70c0h
halt
 
org 70c0h
push bc ;0024h @ ff9ch
inc bc
jr z, 70d0h
halt
 
org 70d0h
push bc ;0025h @ ff9ah
inc bc
ld sp, 030ah
pop af ;00bfh @ 030ah
ld sp, 0ff9ah
call nz, 70e0h ;70dch @ ff98h
halt
 
org 70e0h
push bc ;0026h @ ff96h
inc bc
jp nz, 70f0h
halt
 
org 70f0h
push bc ;0027h @ ff94h
inc bc
jr nz, 7100h
halt
 
org 7100h
push bc ;0028h @ ff92h
inc bc
ld sp, 030ch
pop af ;0080h @ 030ch
ld sp, 0ff92h
call m, 7110h ;710ch @ ff90h
halt
 
org 7110h
push bc ;0029h @ ff8eh
inc bc
jp m, 7120h
halt
 
org 7120h
push bc ;002ah @ ff8ch
inc bc
ld sp, 030eh
pop af ;007fh @ 030eh
ld sp, 0ff8ch
call p, 7130h ;712ch @ ff8ah
halt
 
org 7130h
push bc ;002bh @ ff88h
inc bc
jp p, 7140h
halt
 
org 7140h
push bc ;002ch @ ff86h
inc bc
ld sp, 0300h
pop af ;0001h @ 0300h
ccf
ld hl, 0fe00h
ld sp, 0400h
ret ;7160h @ 0400h
 
org 7160h
ld (hl), c ; 2dh @ fe00h
inc bc
inc hl
ld sp, 0302h
pop af ;00feh @ 0302h
ccf
ld sp, 0402h
ret ;7170h @ 0402h
 
org 7170h
ld (hl), c ; 2eh @ fe01h
inc bc
inc hl
ld sp, 0300h
pop af ;0001h @ 0300h
ld sp, 0404h
ret c ;7180h @ 0404h
 
org 7180h
ld (hl), c ; 2fh @ fe02h
inc bc
inc hl
ld sp, 0302h
pop af ;00feh @ 0302h
ld sp, 0406h
ret nc ;7190h @ 0406h
 
org 7190h
ld (hl), c ; 30h @ fe03h
inc bc
inc hl
ld sp, 0304h
pop af ;0004h @ 0304h
ld sp, 0408h
ret pe ;71a0h @ 0408h
 
org 71a0h
ld (hl), c ; 31h @ fe04h
inc bc
inc hl
ld sp, 0306h
pop af ;00fbh @ 0306h
ld sp, 040ah
ret po ;71b0h @ 040ah
 
org 71b0h
ld (hl), c ; 32h @ fe05h
inc bc
inc hl
ld sp, 0308h
pop af ;0040h @ 0308h
ld sp, 040ch
ret z ;71c0h @ 040ch
 
org 71c0h
ld (hl), c ; 33h @ fe06h
inc bc
inc hl
ld sp, 030ah
pop af ;00bfh @ 030ah
ld sp, 040eh
ret nz ;71d0h @ 040eh
 
org 71d0h
ld (hl), c ; 34h @ fe07h
inc bc
inc hl
ld sp, 030ch
pop af ;0080h @ 030ch
ld sp, 0410h
ret m ;71e0h @ 0410h
 
org 71e0h
ld (hl), c ; 35h @ fe08h
inc bc
inc hl
ld sp, 030eh
pop af ;007fh @ 030eh
ld sp, 0412h
ret p ;71f0h @ 0412h
 
org 71f0h
ld (hl), c ; 36h @ fe09h
inc bc
ld sp, 0ff86h
ld b, 81h
djnz dlp1
 
org 7200h
dlp1: push bc ;8037h @ ff84h
inc bc
ld b, 41h
djnz dlp2
 
org 7210h
dlp2: push bc ;4038h @ ff82h
inc bc
ld b, 21h
djnz dlp3
 
org 7220h
dlp3: push bc ;2039h @ ff80h
inc bc
ld b, 11h
djnz dlp4
 
org 7230h
dlp4: push bc ;103ah @ ff7eh
inc bc
ld b, 09h
djnz dlp5
 
org 7240h
dlp5: push bc ;083bh @ ff7ch
inc bc
ld b, 05h
djnz dlp6
 
org 7250h
dlp6: push bc ;043ch @ ff7ah
inc bc
ld b, 03h
djnz dlp7
 
org 7260h
dlp7: push bc ;023dh @ ff78h
inc bc
ld b, 01h
djnz dlp8
push bc ;003eh @ ff76h
inc bc
jr dlp9
 
org 7270h
dlp8: halt
 
org 7280h
dlp9: push bc ;003fh @ ff74h
inc bc
inc b
inc b
djnz dlpb
halt
 
org 728bh
dlpa: push bc ;0241h @ ff70h
ld sp, 0310h
pop af ;0000h @ 0310h
ld hl, 0100h
jp 0c0h
 
org 7305h
dlpb: push bc ;0140h @ ff72h
inc bc
inc b
inc b
djnz dlpa
halt
 
org 0ccffh
push bc ;0011h @ ffceh
inc bc
ld sp, 0300h
pop af ;0001h @ 0300h
jp nc, fail ;none taken
jr nc, fail
call nc, fail
ret nc
pop af ;00feh @ 0302h
jp c, fail ;none taken
jr c, fail
call c, fail
ret c
pop af ;0004h @ 0304h
jp po, fail ;none taken
call po, fail
ret po
pop af ;00fbh @ 0306h
jp pe, fail ;none taken
call pe, fail
ret pe
pop af ;0040h @ 0308h
jp nz, fail ;none taken
jr nz, fail
call nz, fail
ret nz
pop af ;00bfh @ 030ah
jp z, fail ;none taken
jr z, fail
call z, fail
ret z
pop af ;0080h @ 030ch
jp p, fail ;none taken
call p, fail
ret p
pop af ;007fh @ 030eh
jp m, fail ;none taken
call m, fail
ret m
jr rel2
rel1: push bc ;0013h @ ffcah
inc bc
jr rel3
fail: halt
rel2: ld sp, 0300h
pop af ;0001h @ 0300h
ccf
ld sp, 0ffceh
push bc ;0012h @ ffcch
inc bc
jr rel1
rel3: push bc ;0014h @ ffc8h
inc bc
jp 0cefbh
 
org 0cefbh
push bc ;0015h @ ffc6h
inc bc
jr rel5
 
org 0cf02h
rel4: push bc ;0017h @ ffc2h
inc bc
call 07000h ;cf07h @ ffc0h
 
org 0cf7eh
rel5: push bc ;0016h @ ffc4h
inc bc
jr rel4
 
 
 
 
 
 
/trunk/asm/io_ops.s
0,0 → 1,287
;**********************************************************************************
;* *
;* checks all i/o and block instructions *
;* *
;**********************************************************************************
aseg
 
org 00h
jp 01000h
 
org 0c0h ;pattern finish location
nop
jr 0c0h
 
org 0e0h
db 010h
 
org 01e1h
db 013h
db 088h
 
org 02e1h
db 012h
db 017h
 
org 03e1h
db 011h
db 016h
 
org 04e2h
db 015h
 
org 05e2h
db 014h
 
org 01000h
ld sp, 0000h
xor a
ld b, a
ld c, 0ffh
ld d, a
ld e, 021h
ld h, a
ld l, 0aah
ld a, 0cch
in a, (0f0h) ; 5ah @ ccf0h
push af ;5a44h @ fffeh
out (3ch), a ; 5ah @ 5a3ch
ld a, 0ffh
 
ld sp, 0ffd2h
ld bc, 0e123h
in b, (c) ; c6h @ e123h
push af ;ff84h @ ffd0h
push bc ;c623h @ ffceh
in c, (c) ; 10h @ c623h
push af ;ff00h @ ffcch
push bc ;c610h @ ffcah
in d, (c) ; a0h @ c610h
push af ;ff84h @ ffc8h
push bc ;c610h @ ffc6h
push de ;a021h @ ffc4h
inc bc
in e, (c) ; eah @ c611h
push af ;ff80h @ ffc2h
push bc ;c611h @ ffc0h
push de ;a0eah @ ffbeh
inc bc
in h, (c) ; 66h @ c612h
push af ;ff04h @ ffbch
push bc ;c612h @ ffbah
push de ;a0eah @ ffb8h
push hl ;66aah @ ffb6h
inc bc
in l, (c) ; 00h @ c613h
push af ;ff44h @ ffb4h
push bc ;c613h @ ffb2h
push de ;a0eah @ ffb0h
push hl ;6600h @ ffaeh
inc bc
in a, (c) ; 43h 2 c614h
push af ;4300h @ ffach
push bc ;c614h @ ffaah
push de ;a0eah @ ffa8h
push hl ;6600h @ ffa6h
 
inc bc
out (c), b ; c6h @ c615h
inc bc
out (c), c ; 16h @ c616h
inc bc
out (c), d ; a0h @ c617h
inc bc
out (c), e ; eah @ c618h
inc bc
out (c), h ; 66h @ c619h
inc bc
out (c), l ; 00h @ c61ah
inc bc
out (c), a ; 43h @ c61bh
 
or b
ld a, 043h
 
ld sp, 0ff8eh
ld bc, 08000h
ld de, 0a000h
ld hl, 05000h
ldd ; 55h @ 5000h read
; 55h @ a000h write
push af ;4384h @ ff8ch
push bc ;7fffh @ ff8ah
push de ;9fffh @ ff88h
push hl ;4fffh @ ff86h
ldi ; aah @ 4fffh read
; aah @ 9fffh write
push af ;4384h @ ff84h
push bc ;7ffeh @ ff82h
push de ;a000h @ ff80h
push hl ;5000h @ ff7eh
ld bc, 0003h
ld de, 0a001h
ld hl, 05002h
ldir ; 01h @ 5002h read
; 01h @ a001h write
; 02h @ 5003h read
; 02h @ a002h write
; 03h @ 5004h read
; 03h @ a003h write
push af ;4380h @ ff7ch
push bc ;0000h @ ff7ah
push de ;a004h @ ff78h
push hl ;5005h @ ff76h
ld bc, 0004h
ld de, 09ffeh
ld hl, 04ffdh
lddr ; 04h @ 4ffdh read
; 04h @ 9ffeh write
; 05h @ 4ffch read
; 05h @ 9ffdh write
; 06h @ 4ffbh read
; 06h @ 9ffch write
; 07h @ 4ffah read
; 07h @ 9ffbh write
push af ;4380h @ ff74h
push bc ;0000h @ ff72h
push de ;9ffah @ ff70h
push hl ;4ff9h @ ff6eh
cpd ; 08h @ 4ff9h read
push af ;4316h @ ff6ch
push bc ;ffffh @ ff6ah
push de ;9ffah @ ff68h
push hl ;4ff8h @ ff66h
ld bc, 0007h
cpdr ; 09h @ 4ff8h read
; 0ah @ 4ff7h read
; 43h @ 4ff6h read
push af ;4346h @ ff64h
push bc ;0004h @ ff62h
push de ;9ffah @ ff60h
push hl ;4ff5h @ ff5eh
ld bc, 8000h
ld hl, 5005h
cpi ; 0bh @ 5005h read
push af ;4316h @ ff5ch
push bc ;7fffh @ ff5ah
push de ;9ffah @ ff58h
push hl ;5006h @ ff56h
ld bc, 0004h
cpir ; 0ch @ 5006h read
; 0dh @ 5007h read
; 0eh @ 5008h read
; 0fh @ 5009h read
push af ;4312h @ ff54h
push bc ;0000h @ ff52h
push de ;9ffah @ ff50h
push hl ;500ah @ ff4eh
ld bc, 00e0h
ini ; 10h @ 00e0h read
; 10h @ 500ah write
push af ;4310h @ ff4ch
push bc ;ffe0h @ ff4ah
push de ;9ffah @ ff48h
push hl ;500bh @ ff46h
ld bc, 03e1h
inir ; 11h @ 03e1h read
; 11h @ 500bh write
; 12h @ 02e1h read
; 12h @ 500ch write
; 13h @ 01e1h read
; 13h @ 500dh write
push af ;4350h @ ff44h
push bc ;00e1h @ ff42h
push de ;9ffah @ ff40h
push hl ;500eh @ ff3eh
ld bc, 05e2h
ld hl, 4ff5h
ind ; 14h @ 05e2h read
; 14h @ 4ff5h write
push af ;4310h @ ff3ch
push bc ;04e2h @ ff3ah
push de ;9ffah @ ff38h
push hl ;4ff4h @ ff36h
indr ; 15h @ 04e2h read
; 15h @ 4ff4h write
; 16h @ 03e2h read
; 16h @ 4ff3h write
; 17h @ 02e2h read
; 17h @ 4ff2h write
; 88h @ 01e2h read
; 88h @ 4ff1h write
push af ;4352h @ ff34h
push bc ;00e2h @ ff32h
push de ;9ffah @ ff30h
push hl ;4ff0h @ ff2eh
ld bc, 04e3h
outd ; 19h @ 4ff0h read
; 19h @ 04e3h write
push af ;4310h @ ff2ch
push bc ;00e3h @ ff2ah
push de ;9ffah @ ff28h
push hl ;4fefh @ ff26h
otdr ; 1ah @ 4fefh read
; 1ah @ 03e3h write
; 1bh @ 4feeh read
; 1bh @ 02e3h write
; 1ch @ 4fedh read
; 1ch @ 01e3h write
push af ;4350h @ ff24h
push bc ;00e3h @ ff22h
push de ;9ffah @ ff20h
push hl ;4fech @ ff1eh
ld bc, 05e4h
ld hl, 500eh
outi ; 1dh @ 500eh read
; 1dh @ 05e4h write
push af ;4310h @ ff1ch
push bc ;04e4h @ ff1ah
push de ;9ffah @ ff18h
push hl ;500fh @ ff16h
otir ; 1eh @ 500fh read
; 1eh @ 04e4h write
; 1fh @ 5010h read
; 1fh @ 03e4h write
; 20h @ 5011h read
; 20h @ 02e4h write
; a1h @ 5012h read
; a1h @ 01e4h write
push af ;4352h @ ff14h
push bc ;00e4h @ ff12h
push de ;9ffah @ ff10h
push hl ;5013h @ ff0eh
 
ld hl, 0100h
jp 0c0h
 
org 04fe8h
db 0ffh, 0ffh, 0a8h, 027h, 026h, 01ch, 01bh, 01ah
db 019h, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 043h, 00ah
db 009h, 008h, 007h, 006h, 005h, 004h, 0ffh, 0aah
db 055h, 0ffh, 001h, 002h, 003h, 00bh, 00ch, 00dh
db 00eh, 00fh, 0ffh, 0ffh, 0ffh, 0ffh, 01dh, 01eh
db 01fh, 020h, 0a1h, 022h, 023h, 022h, 025h, 0ffh
 
org 06600h
db 0bch
 
org 0c610h
db 0a0h, 0eah, 066h, 000h, 043h
 
org 0c61bh
db 08fh
 
org 0c623h
db 10h
 
org 0ccf0h
db 05ah
 
org 0e123h
db 0c6h
 
 
 
 
 
 
/trunk/asm/dat_mov.s
0,0 → 1,436
;**********************************************************************************
;* *
;* checks all data movement instructions *
;* *
;**********************************************************************************
aseg
 
org 00h
jp 100h
 
org 0c0h ;pattern finish location
nop
jr 0c0h
 
org 0100h
ld sp, 0000h ;point sp at result table
ld a, 0ffh ;initialize the main registers
xor a ;initialize flags
ld b, 01h ;immediate loads
ld c, 02h
ld d, 04h
ld e, 08h
ld h, 10h
ld l, 20h
ld ix, 0aaaah
ld iy, 5555h
push af ;0044h @ fffeh
push bc ;0102h @ fffch
push de ;0408h @ fffah
push hl ;1020h @ fff8h
push ix ;aaaah @ fff6h
push iy ;5555h @ fff4h
ld a, 0f0h
ld (bc), a ; f0h @ 0102h
ld a, 0fh
ld (de), a ; 0fh @ 0408h
ld (hl), a ; 0fh @ 1020h
inc hl
ld (hl), b ; 01h @ 1021h
inc hl
ld (hl), c ; 02h @ 1022h
inc hl
ld (hl), d ; 04h @ 1023h
inc hl
ld (hl), e ; 08h @ 1024h
inc hl
ld (hl), h ; 10h @ 1025h
inc hl
ld (hl), l ; 26h @ 1026h
inc hl
ld (hl), 3ch ; 3ch @ 1027h
ld hl, 1020h
push af ;0f44h @ fff2h
push bc ;0102h @ fff0h
push de ;0408h @ ffeeh
push hl ;1020h @ ffech
ld a, 00h
ex af, af'
ld a, 0ffh ;initialize the alternate registers
or a
exx
ld bc, 0fefdh ;immediate loads
ld de, 0fbf7h
ld hl, 0efdfh
push af ;ff84h @ ffeah
push bc ;fefdh @ ffe8h
push de ;fbf7h @ ffe6h
push hl ;efdfh @ ffe4h
exx
push af ;ff84h @ ffe2h
push bc ;0102h @ ffe0h
push de ;0408h @ ffdeh
push hl ;1020h @ ffdch
ex de, hl
push af ;ff84h @ ffdah
push bc ;0102h @ ffd8h
push de ;1020h @ ffd6h
push hl ;0408h @ ffd4h
exx
push af ;ff84h @ ffd2h
push bc ;fefdh @ ffd0h
push de ;fbf7h @ ffceh
push hl ;efdfh @ ffcch
ex de, hl
push af ;ff84h @ ffcah
push bc ;fefdh @ ffc8h
push de ;efdfh @ ffc6h
push hl ;fbf7h @ ffc4h
exx
push af ;ff84h @ ffc2h
push bc ;0102h @ ffc0h
push de ;1020h @ ffbeh
push hl ;0408h @ ffbch
ex de, hl
push af ;ff84h @ ffbah
push bc ;0102h @ ffb8h
push de ;0408h @ ffb6h
push hl ;1020h @ ffb4h
exx
push af ;ff84h @ ffb2h
push bc ;fefdh @ ffb0h
push de ;efdfh @ ffaeh
push hl ;fbf7h @ ffach
ex de, hl
push af ;ff84h @ ffaah
push bc ;fefdh @ ffa8h
push de ;fbf7h @ ffa6h
push hl ;efdfh @ ffa4h
exx
ld b, b
ld c, c
ld d, d
ld h, h
ld l, l
ld a, a
push af ;ff84h @ ffa2h
push bc ;0102h @ ffa0h
push de ;0408h @ ff9eh
push hl ;1020h @ ff9ch
ld a, b
ld b, c
ld c, d
ld d, e
ld e, h
ld h, l
ld l, a
push af ;0184h @ ff9ah
push bc ;0204h @ ff98h
push de ;0810h @ ff96h
push hl ;2001h @ ff94h
xor a
ld b, 01h
ld c, 02h
ld d, 04h
ld e, 08h
ld h, 10h
ld l, 20h
ld a, c
ld b, d
ld c, e
ld d, h
ld e, l
ld h, a
ld l, b
push af ;0244h @ ff92h
push bc ;0408h @ ff90h
push de ;1020h @ ff8eh
push hl ;0204h @ ff8ch
xor a
ld b, 01h
ld c, 02h
ld d, 04h
ld e, 08h
ld h, 10h
ld l, 20h
ld a, d
ld b, e
ld c, h
ld d, l
ld e, a
ld h, b
ld l, c
push af ;0444h @ ff8ah
push bc ;0810h @ ff88h
push de ;2004h @ ff86h
push hl ;0810h @ ff84h
xor a
ld b, 01h
ld c, 02h
ld d, 04h
ld e, 08h
ld h, 10h
ld l, 20h
ld a, e
ld b, h
ld c, l
ld d, a
ld e, b
ld h, c
ld l, d
push af ;0844h @ ff82h
push bc ;1020h @ ff80h
push de ;0810h @ ff7eh
push hl ;2008h @ ff7ch
xor a
ld b, 01h
ld c, 02h
ld d, 04h
ld e, 08h
ld h, 10h
ld l, 20h
ld a, h
ld b, l
ld c, a
ld d, b
ld e, c
ld h, d
ld l, e
push af ;1044h @ ff7ah
push bc ;2010h @ ff78h
push de ;2010h @ ff76h
push hl ;2010h @ ff74h
xor a
ld b, 01h
ld c, 02h
ld d, 04h
ld e, 08h
ld h, 10h
ld l, 20h
ld a, l
ld b, a
ld c, b
ld d, c
ld e, d
ld h, e
ld l, h
push af ;2044h @ ff72h
push bc ;2020h @ ff70h
push de ;2020h @ ff6eh
push hl ;2020h @ ff6ch
ld b, (hl) ; 5ah @ 2020h
inc hl
ld c, (hl) ; 69h @ 2021h
inc hl
ld d, (hl) ; 78h @ 2022h
inc hl
ld e, (hl) ; 87h @ 2023h
inc hl
push af ;2044h @ ff6ah
push bc ;5a69h @ ff68h
push de ;7887h @ ff66h
push hl ;2024h @ ff64h
ld h, (hl) ; 96h @ 2024h
push hl ;9624h @ ff62h
ld h, 20h
inc hl
ld l, (hl) ; a5h @ 2025h
push hl ;20a5h @ ff60h
ld a, (bc) ; b4h @ 5a69h
push af ;b444h @ ff5eh
ld a, (de) ; c3h @ 7887h
push af ;c344h @ ff5ch
ld a, (7888h) ; d2h @ 7888h
push af ;d244h @ ff5ah
ld bc, (7889h) ;e1f0h @ 7889h
ld de, (788bh) ;0f1eh @ 788bh
ld hl, (788dh) ;2d3ch @ 788dh
ld ix, (788fh) ;4b5ah @ 788fh
ld iy, (7891h) ;6978h @ 7891h
ld sp, (7893h) ;fe00h @ 7893h
ld (7895h), a ; d2h @ 7895h
ld (7896h), bc ;e1f0h @ 7896h
ld (7898h), de ;0f1eh @ 7898h
ld (789ah), hl ;2d3ch @ 789ah
ld (789ch), ix ;4b5ah @ 789ch
ld (789eh), iy ;6978h @ 789eh
ld (78a0h), sp ;fe00h @ 78a0h
ld sp, 0f000h
pop af ;0f00h @ f000h
pop bc ;ee11h @ f002h
pop de ;dd22h @ f004h
pop hl ;cc33h @ f006h
pop ix ;bb44h @ f008h
pop iy ;aa55h @ f00ah
ld sp, 0fe00h
push af ;0f00h @ fdfeh
push bc ;ee11h @ fdfch
push de ;dd22h @ fdfah
push hl ;cc33h @ fdf8h
push ix ;bb44h @ fdf6h
push iy ;aa55h @ fdf4h
inc hl
ld sp, hl
push af ;0f00h @ cc32h
push hl ;cc34h @ cc30h
ld sp, ix
push af ;0f00h @ bb42h
push ix ;bb44h @ bb40h
inc iy
ld sp, iy
push af ;0f00h @ aa54h
push iy ;aa56h @ aa52h
ld sp, 0fd00h
ex (sp), hl ;2345h @ fd00h read
;cc34h @ fd00h write
inc sp
inc sp
ex (sp), ix ;6789h @ fd02h read
;bb44h @ fd02h write
inc sp
inc sp
ex (sp), iy ;abcdh @ fd04h read
;aa56h @ fd04h write
ld a, (ix+0h) ; ffh @ 6789h
ld b, (ix+1h) ; fdh @ 678ah
ld c, (ix+2h) ; fbh @ 678bh
ld d, (ix+3h) ; f9h @ 678ch
ld e, (ix+4h) ; f7h @ 678dh
ld h, (ix+5h) ; f5h @ 678eh
ld l, (ix+6h) ; f3h @ 678fh
ld sp, 0fd00h
push af ;ff00h @ fcfeh
push bc ;fdfbh @ fcfch
push de ;f9f7h @ fcfah
push hl ;f5f3h @ fcf8h
ld a, (iy+0h) ; 01h @ abcdh
ld b, (iy+1h) ; 03h @ abceh
ld c, (iy+2h) ; 05h @ abcfh
ld d, (iy+3h) ; 07h @ abd0h
ld e, (iy+4h) ; 09h @ abd1h
ld h, (iy+5h) ; 0bh @ abd2h
ld l, (iy+6h) ; 0dh @ abd3h
push af ;0100h @ fcf6h
push bc ;0305h @ fcf4h
push de ;0709h @ fcf2h
push hl ;0b0dh @ fcf0h
ld (ix+0ffh), a ; 01h @ 6788h
ld (ix+0feh), b ; 03h @ 6787h
ld (ix+0fdh), c ; 05h @ 6786h
ld (ix+0fch), d ; 07h @ 6785h
ld (ix+0fbh), e ; 09h @ 6784h
ld (ix+0fah), h ; 0bh @ 6783h
ld (ix+0f9h), l ; 0dh @ 6782h
ld (ix+0f8h), 0fh ;0fh @ 6781h
ld (iy+0ffh), a ; 01h @ abcch
ld (iy+0feh), b ; 03h @ abcbh
ld (iy+0fdh), c ; 05h @ abcah
ld (iy+0fch), d ; 07h @ abc9h
ld (iy+0fbh), e ; 09h @ abc8h
ld (iy+0fah), h ; 0bh @ abc7h
ld (iy+0f9h), l ; 0dh @ abc6h
ld (iy+0f8h), 0fh ;0fh @ abc5h
xor a
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
exx
ld b, a
ld c, a
ld d, a
ld e, a
ld h, a
ld l, a
exx
ex af, af'
xor a
ld a, 0ffh
ld r, a
push af ;ff44h @ fceeh
push bc ;0000h @ fcech
push de ;0000h @ fceah
push hl ;0000h @ fce8h
xor a
push af ;0044h @ fce6h
ld a, r
push af ;ff80h @ fce4h
push bc ;0000h @ fce2h
push de ;0000h @ fce0h
push hl ;0000h @ fcdeh
xor a
ld r, a
ld a, 55h
ld i, a
push af ;5544h @ fcdch
push bc ;0000h @ fcdah
push de ;0000h @ fcd8h
push hl ;0000h @ fcd6h
xor a
push af ;0044h @ fcd4h
ld a, i
push af ;5500h @ fcd2h
ei
ld a, i
push af ;5504h @ fcd0h
di
ld a, i
push af ;5500h @ fcceh
 
ld hl, 0100h ;init hl for next pattern
jp 0c0h
 
org 02020h ;data for ld r,(hl)
db 05ah
db 069h
db 078h
db 087h
db 096h
db 0a5h
 
org 05a69h ;data for ld a,(bc)
db 0b4h
 
org 06789h ;data for ld r,(ix+d)
db 0ffh
db 0fdh
db 0fbh
db 0f9h
db 0f7h
db 0f5h
db 0f3h
 
org 07887h ;data for ld rr,(mn)
db 0c3h
db 0d2h
dw 0e1f0h
dw 00f1eh
dw 02d3ch
dw 04b5ah
dw 06978h
dw 0fe00h
 
org 0abcdh ;dta for ld r,(iy+d)
db 01h
db 03h
db 05h
db 07h
db 09h
db 0bh
db 0dh
 
org 0f000h ;data for pop
dw 00f00h
dw 0ee11h
dw 0dd22h
dw 0cc33h
dw 0bb44h
dw 0aa55h
 
org 0fd00h ;data for ex (sp),
dw 02345h
dw 06789h
dw 0abcdh
 
/trunk/asm/int_ops.s
0,0 → 1,539
;**********************************************************************************
;* *
;* checks interrupt options and conditions *
;* *
;**********************************************************************************
aseg
 
org 00h
jp (hl)
 
org 38h
inc bc
exx
inc hl
ld (hl), l ;write a marker
exx
jp (hl)
 
org 66h
inc bc
inc ix
ld (ix+0), c ;write a marker
jp (hl)
 
org 0c0h ;pattern finish location
nop
jr 0c0h
 
org 0100h
ex af,af'
xor a
dec a
ex af,af'
exx
ld bc, 0edb7h
ld de, 08421h
ld hl, 03cc3h
exx
xor a
ld bc, 00001h
ld de, 00100h
ld hl, 01000h
ld ix, 09669h
ld iy, 0bffeh
jp (hl) ;1000h
 
org 1000h
push bc ;0001h @ fffeh
add hl, de
add iy, de
jp (iy) ;c0feh
 
org 1100h
inc bc ;compensate for mode 0
push bc ;0002h @ fffah
im 2
add hl, de
im 1 ;toggles back okay
add iy, de
ei
jp (iy) ;c1feh
 
org 1200h
push bc ;0003h @ fff6h
add hl, de
add iy, de
ei
jp (iy) ;c2feh
 
org 1300h
push bc ;0004h @ fff2h
add hl, de
add iy, de
ei
jp (iy) ;c3feh
 
org 1400h
push bc ;0005h @ ffeeh
add hl, de
add iy, de
ei
jp (iy) ;c4feh
 
org 1500h
push bc ;0006h @ ffeah
add hl, de
add iy, de
ei
jp (iy) ;c5feh
 
org 1600h
push bc ;0007h @ ffe6h
add hl, de
add iy, de
ei
jp (iy) ;c6feh
 
org 1700h
push bc ;0008h @ ffe2h
add hl, de
add iy, de
ei
jp (iy) ;c7feh
 
org 1800h
push bc ;0009h @ ffdeh
add hl, de
add iy, de
ei
jp (iy) ;c8feh
 
org 1900h
push bc ;000ah @ ffdah
add hl, de
add iy, de
ei
jp (iy) ;c9feh
 
org 1a00h
push bc ;000bh @ ffd6h
add hl, de
add iy, de
ei
jp (iy) ;cafeh
 
org 1b00h
push bc ;000ch @ ffd2h
add hl, de
add iy, de
ei
jp (iy) ;cbfeh
 
org 1c00h
push bc ;000dh @ ffceh
inc bc ;compensate for cpir
add hl, de
add iy, de
ei
jp (iy) ;ccfeh
 
org 1d00h
db 0ffh ;cpir no match data
push bc ;000eh @ ffcah
inc bc ;compensate for cpir
dec hl ;compensate for cpir
add hl, de
add iy, de
ei
jp (iy) ;cdfeh
 
org 1e00h
db 00h ;cpir match data
push bc ;000fh @ ffc6h
dec hl ;compensate for cpir
add hl, de
add iy, de
jp (iy) ;cefeh
 
org 1f00h
push bc ;0010h @ ffc2h
add hl, de
add iy, de
jp (iy) ;cffeh
 
org 2000h
push bc ;0011h @ ffbeh
add hl, de
add iy, de
im 0 ;no effect
ei
jp (iy) ;d0feh
 
org 2100h
inc bc ;compensate for im 0 address
push bc ;0012h @ ffbah
add hl, de
add iy, de
ei
jp (iy) ;d1feh
 
org 2200h
push bc ;0013h @ ffb6h
add hl, de
add iy, de
ld a, i
push af ;0044h @ ffb4h
ld sp, 02250h
retn ;2230h @ 2250h read
halt ;not executed
 
org 2230h
ld a, i
ld sp, 0ffb4h
push af ;0044h @ ffb2h
ld a, 055h
ld i, a
im 2
jp (iy) ;d2feh
 
org 2250h
dw 02230h ;data for retn
 
org 2300h
inc bc
push bc ;0014h @ ffaeh
add hl, de
add iy, de
ld a, i
push af ;5500h @ ffach
ld sp, 02350h
reti ;2330h @ 2350h read
halt ;not executed
 
org 2330h
ld a, i
ld sp, 0ffach
im 0 ;no effect
push af ;5500h @ ffaah
ei
ld iy, 0d310h
jp (iy) ;d310h
 
org 2350h
dw 02330h ;data for reti
 
org 2400h
push bc ;0015h @ ffa6h
add hl, de
add iy, de
ld sp, 02450h
retn ;2430h @ 2450h read
halt ;not executed
 
org 2430h
ld sp, 0ffa6h
jp (iy) ;d410h
 
org 2450h
dw 02430h ;data for retn
 
org 2500h
inc bc ;compensate for mode 0
push bc ;0016h @ ffa2h
add hl, de
add iy, de
ld sp, 02550h
retn ;2530h @ 2550h read
halt ;not executed
 
org 2530h
ld sp, 0ffa2h
jp (iy) ;d510h
 
org 2550h
dw 02530h ;data for retn
 
 
org 2600h
push bc ;0017h @ ff9eh
push de ;0100h @ ff9eh
push hl ;2600h @ ff9ch
push af ;5500h @ ff98h
im 1
ld hl, 2700h
ld iy, 0d6feh
ei
jp (iy) ;d6feh
 
org 2700h
push bc ;0018h @ ff94h
push de ;0100h @ ff92h
push hl ;2700h @ ff90h
push af ;4204h @ ff8eh
ld hl, 2800h
ld iy, 0d7feh
ei
jp (iy) ;d7feh
 
org 2800h
push bc ;0019h @ ff8ah
push de ;0100h @ ff88h
push hl ;2800h @ ff86h
push af ;6a04h @ ff84h
ld hl, 2900h
ld iy, 0d8feh
ei
jp (iy) ;d8feh
 
org 2900h
push bc ;001ah @ ff80h
push de ;0100h @ ff7eh
push hl ;2900h @ ff7ch
push af ;9394h @ ff7ah
ld hl, 2a00h
ld iy, 0d9feh
ei
jp (iy) ;d9feh
 
org 2a00h
push bc ;001bh @ ff76h
push de ;0100h @ ff74h
push hl ;2a00h @ ff72h
push af ;6916h @ ff70h
ld hl, 1580h
ld iy, 0dafeh
ei
jp (iy) ;dafeh
 
org 2b00h
push bc ;001ch @ ff6ch
push de ;0100h @ ff6ah
push hl ;2b00h @ ff68h
push af ;6900h @ ff66h
ld hl, 1600h
ld iy, 0dbfeh
ei
jp (iy) ;dbfeh
 
org 2c00h
push bc ;001dh @ ff62h
push de ;0100h @ ff60h
push hl ;2c00h @ ff5eh
push af ;6900h @ ff5ch
ld hl, 2d01h
ld iy, 0dcfeh
ei
jp (iy) ;dcfeh
 
org 2d00h
push bc ;001eh @ ff58h
push de ;0100h @ ff56h
push hl ;2d00h @ ff54h
push af ;6900h @ ff52h
ld hl, 2e01h
ld iy, 0ddfeh
ei
jp (iy) ;ddfeh
 
org 2e00h
push bc ;001fh @ ff4eh
push de ;0100h @ ff4ch
push hl ;2e00h @ ff4ah
push af ;6900h @ ff48h
ld sp, 02e50h
retn ;2e30h @ 2e50h read
halt ;not executed
 
org 2e30h
ld sp, 0ff48h
ld iy, 0d610h
jp (iy) ;d610h
 
org 2e50h
dw 02e30h
 
org 4ce3h
db 05ah
 
org 5564h
dw 02300h
 
org 0c0feh
dec hl ;int next
inc hl
ei
nop ;c101h @ fffch with busreq
jp nc, 5000h ;c102h @ fffch
halt ;not executed
 
org 0c1feh
nop ;nmi next
jp c, 5000h ;c202h @ fff8h
halt ;not executed
 
org 0c2feh
nop ;int next
jp nc, 5000h ;5000h @ fff4h
halt ;not executed
 
org 0c3feh
nop ;nmi next
jp nc, 5000h ;5000h @ fff0h
halt ;not executed
 
org 0c4feh
nop ;int next
jr c, 0c4feh ;c501h @ ffech
halt ;not executed
 
org 0c5feh
nop ;nmi next
jr c, 0c5feh ;c601h @ ffe8h
halt ;not executed
 
org 0c6feh
nop ;int next
jr nc, 0c6feh ;c6feh @ ffe4h
halt ;not executed
 
org 0c7feh
nop ;nmi next
jr nc, 0c7feh ;c7feh @ ffe0h
halt ;not executed
 
org 0c8feh
halt ;int next
rst 28h ;c8ffh @ ffdch
 
org 0c9feh
halt ;nmi next
rst 28h ;c9ffh @ ffd8h
jp 5000h ;not executed
 
org 0cafeh
nop ;int next
halt ;cb00h @ ffd4h
jp 5000h ;not executed
 
org 0cbfeh
nop ;nmi next
halt ;cc00h @ ffd0h
jp 5000h ;not executed
 
org 0ccfeh
nop ;int next
cpir ;ccffh @ ffcch
rst 08h ;not executed
 
org 0cdfeh
nop ;nmi next
cpir ;ce01h @ ffc8h
rst 10h ;not executed
 
org 0cefeh
nop ;int next
ei ;cf00h @ ffc4h with busreq
nop ;cf01h @ ffc4h
rst 18h ;not executed
 
org 0cffeh
nop ;nmi next
di ;d001h @ ffc0h
nop
rst 28h ;not executed
 
org 0d0feh
nop ;int next
di ;d101h @ ffbch
dec hl
inc hl
ei
nop ;d103h @ ffbch with busreq
rst 30h ;not executed
 
org 0d1feh
dec hl ;nmi next
inc hl ;d200h @ ffb8h
rst 28h ;not executed
 
org 0d2feh
dec hl ;int next
inc hl ;d300h @ ffb0h
db 064h ;2300h @ 5564h read - mode 2
 
org 0d310h
halt ;nmi next
rst 30h ;d311h @ ffa8h
 
org 0d410h
nop ;int next
halt ;d412h @ ffa4h
jp 5000h ;not executed
 
org 0d510h
nop ;int next
halt ;d512h @ ffa0h
jp 5000h ;not executed
 
org 0d610h
xor a
ld a, 04ch
in a, (0e3h) ; 5ah @ 4ce3h
push af ;5a44h @ ff46h
out (3ch), a ; 5ah @ 5a3ch
push af
push bc
push de
push hl
push ix
push iy
ex af,af'
push af
ex af,af'
exx
push bc
push de
push hl
exx
ld hl, 0100h
jp 0c0h
 
org 0d6feh
nop ;int next
xor c ;d700 @ ff96h
 
org 0d7feh
nop ;nmi next
xor h ;d800 @ ff8ch
nop
 
org 0d8feh
nop ;int next
adc h ;d900 @ ff82h
nop
 
org 0d9feh
nop ;nmi next
sbc h ;da00 @ ff78h
nop
 
org 0dafeh
nop ;int next
adc hl, hl ;db00 @ ff6eh
nop
 
org 0dbfeh
nop ;nmi next
adc hl, hl ;dc00 @ ff64h
nop
 
org 0dcfeh
nop ;int next
dec hl ;dd00 @ ff5ah
nop
 
org 0ddfeh
nop ;nmi next
dec hl ;de00 @ ff50h
nop
/trunk/asm/jmp_opsd.s
0,0 → 1,29
;**********************************************************************************
;* *
;* jmp_ops compare data *
;* *
;**********************************************************************************
org 0fe00h
db 02dh, 02eh, 02fh, 030h, 031h, 032h, 033h, 034h
db 035h, 036h
 
org 0ff70h
dw 00241h, 00140h, 0003fh, 0003eh ;ff70h
dw 0023dh, 0043ch, 0083bh, 0103ah ;ff78h
dw 02039h, 04038h, 08037h, 0002ch ;ff80h
dw 0002bh, 0712ch, 0002ah, 00029h ;ff88h
dw 0710ch, 00028h, 00027h, 00026h ;ff90h
dw 070dch, 00025h, 00024h, 00023h ;ff98h
dw 070ach, 00022h, 00021h, 0708ch ;ffa0h
dw 00020h, 0001fh, 0706ch, 0001eh ;ffa8h
dw 0001dh, 0001ch, 0703ch, 0001bh ;ffb0h
dw 0001ah, 00019h, 0700ch, 00018h ;ffb8h
dw 0cf07h, 00017h, 00016h, 00015h ;ffc0h
dw 00014h, 00013h, 00012h, 00011h ;ffc8h
dw 00010h, 02074h, 0000fh, 0000eh ;ffd0h
dw 02064h, 0000dh, 0000ch, 02054h ;ffd8h
dw 0000bh, 0000ah, 02044h, 00009h ;ffe0h
dw 00008h, 02034h, 00007h, 00006h ;ffe8h
dw 02024h, 00005h, 00004h, 02014h ;fff0h
dw 00003h, 02003h, 00002h, 00001h ;fff8h
 
/trunk/asm/io_opsd.s
0,0 → 1,80
;**********************************************************************************
;* *
;* io_ops compare data *
;* *
;**********************************************************************************
org 000h
db 025h
 
org 0f8h
db 0ffh, 0a8h, 027h, 026h, 025h, 024h, 023h, 022h ;00f8h
 
org 01e3h
db 01ch, 0a1h
 
org 02e3h
db 01bh, 020h
 
org 03e3h
db 01ah, 01fh
 
org 04e3h
db 019h, 01eh
 
org 05e4h
db 01dh
 
org 04ff0h
db 0ffh, 088h, 017h, 016h, 015h, 014h, 0ffh, 0ffh ;4ff0h
 
org 05008h
db 0ffh, 0ffh, 010h, 011h, 012h, 013h, 0ffh, 0ffh ;5008h
 
org 05a3ch
db 05ah
 
org 09ff8h
db 0ffh, 0ffh, 0ffh, 007h, 006h, 005h, 004h, 0aah ;09ff8h
db 055h, 001h, 002h, 003h, 0ffh, 0ffh, 0ffh, 0ffh ;0a000h
 
org 0c610h
db 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0c6h, 016h, 0a0h ;c610h
db 0eah, 066h, 000h, 043h, 08fh, 0ffh, 0ffh, 0ffh ;c618h
 
org 0fee8h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;fee8h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;fef0h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;fef8h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;ff00h
dw 0ffffh, 0ffffh, 0ffffh, 05013h ;ff08h
dw 09ffah, 000e4h, 04352h, 0500fh ;ff10h
dw 09ffah, 004e4h, 04310h, 04fech ;ff18h
dw 09ffah, 000e3h, 04350h, 04fefh ;ff20h
dw 09ffah, 003e3h, 04310h, 04ff0h ;ff28h
dw 09ffah, 000e2h, 04352h, 04ff4h ;ff30h
dw 09ffah, 004e2h, 04310h, 0500eh ;ff38h
dw 09ffah, 000e1h, 04350h, 0500bh ;ff40h
dw 09ffah, 0ffe0h, 04310h, 0500ah ;ff48h
dw 09ffah, 00000h, 04312h, 05006h ;ff50h
dw 09ffah, 07fffh, 04316h, 04ff5h ;ff58h
dw 09ffah, 00004h, 04346h, 04ff8h ;ff60h
dw 09ffah, 0ffffh, 04316h, 04ff9h ;ff68h
dw 09ffah, 00000h, 04380h, 05005h ;ff70h
dw 0a004h, 00000h, 04380h, 05000h ;ff78h
dw 0a000h, 07ffeh, 04384h, 04fffh ;ff80h
dw 09fffh, 07fffh, 04384h, 0ffffh ;ff88h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;ff90h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;ff98h
dw 0ffffh, 0ffffh, 0ffffh, 06600h ;ffa0h
dw 0a0eah, 0c614h, 04300h, 06600h ;ffa8h
dw 0a0eah, 0c613h, 0ff44h, 066aah ;ffb0h
dw 0a0eah, 0c612h, 0ff04h, 0a0eah ;ffb8h
dw 0c611h, 0ff80h, 0a021h, 0c610h ;ffc0h
dw 0ff84h, 0c610h, 0ff00h, 0c623h ;ffc8h
dw 0ff84h, 0ffffh, 0ffffh, 0ffffh ;ffd0h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;ffd8h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;ffe0h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;ffe8h
dw 0ffffh, 0ffffh, 0ffffh, 0ffffh ;fff0h
dw 0ffffh, 0ffffh, 0ffffh, 05a44h ;fff8h
 
/trunk/asm/dat_movd.s
0,0 → 1,74
;**********************************************************************************
;* *
;* dat_mov compare data *
;* *
;**********************************************************************************
org 0102h
db 0f0h
 
org 0408h
db 00fh
 
org 01020h
db 00fh, 001h, 002h, 004h, 008h, 010h, 026h, 03ch
 
org 6780h
db 0ffh, 00fh, 00dh, 00bh, 009h, 007h, 005h, 003h
db 001h
 
org 07895h
db 0d2h ;7895h
dw 0e1f0h ;7896h
dw 00f1eh, 02d3ch, 04b5ah, 06978h ;7898h
dw 0fe00h ;78a0h
 
org 0aa50h
dw 0ffffh, 0aa56h, 00f00h, 0ffffh ;aa50h
 
org 0abc0h
db 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 00fh, 00dh, 00bh
db 009h, 007h, 005h, 003h, 001h
 
org 0bb40h
dw 0bb44h, 00f00h, 0ffffh, 0ffffh ;bb40h
 
org 0cc30h
dw 0cc34h, 00f00h, 0ffffh, 0ffffh ;cc30h
 
org 0fcc8h
dw 0ffffh, 0ffffh, 0ffffh, 05500h ;fcc8h
dw 05504h, 05500h, 00044h, 00000h ;fcd0h
dw 00000h, 00000h, 05544h, 00000h ;fcd8h
dw 00000h, 00000h, 0ff80h, 00044h ;fce0h
dw 00000h, 00000h, 00000h, 0ff44h ;fce8h
dw 00b0dh, 00709h, 00305h, 00100h ;fcf0h
dw 0f5f3h, 0f9f7h, 0fdfbh, 0ff00h ;fcf8h
dw 0cc34h, 0bb44h, 0aa56h, 0ffffh ;fd00h
 
org 0fdf0h
dw 0ffffh, 0ffffh, 0aa55h, 0bb44h ;fdf0h
dw 0cc33h, 0dd22h, 0ee11h, 00f00h ;fdf8h
 
org 0ff58h
dw 0ffffh, 0d244h, 0c344h, 0b444h ;ff58h
dw 020a5h, 09624h, 02024h, 07887h ;ff60h
dw 05a69h, 02044h, 02020h, 02020h ;ff68h
dw 02020h, 02044h, 02010h, 02010h ;ff70h
dw 02010h, 01044h, 02008h, 00810h ;ff78h
dw 01020h, 00844h, 00810h, 02004h ;ff80h
dw 00810h, 00444h, 00204h, 01020h ;ff88h
dw 00408h, 00244h, 02001h, 00810h ;ff90h
dw 00204h, 00184h, 01020h, 00408h ;ff98h
dw 00102h, 0ff84h, 0efdfh, 0fbf7h ;ffa0h
dw 0fefdh, 0ff84h, 0fbf7h, 0efdfh ;ffa8h
dw 0fefdh, 0ff84h, 01020h, 00408h ;ffb0h
dw 00102h, 0ff84h, 00408h, 01020h ;ffb8h
dw 00102h, 0ff84h, 0fbf7h, 0efdfh ;ffc0h
dw 0fefdh, 0ff84h, 0efdfh, 0fbf7h ;ffc8h
dw 0fefdh, 0ff84h, 00408h, 01020h ;ffd0h
dw 00102h, 0ff84h, 01020h, 00408h ;ffd8h
dw 00102h, 0ff84h, 0efdfh, 0fbf7h ;ffe0h
dw 0fefdh, 0ff84h, 01020h, 00408h ;ffe8h
dw 00102h, 00f44h, 05555h, 0aaaah ;fff0h
dw 01020h, 00408h, 00102h, 00044h ;fff8h
 
/trunk/rtl/extint.v
0,0 → 1,163
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** external interface module Rev 0.0 07/21/2011 **/
/** **/
/*******************************************************************************************/
module extint (data_in, dma_ack, ftch_tran, halt_tran, iack_tran, io_addr_out, io_data_out,
io_read, io_strobe, io_tran, ivec_rd, mem_addr_out, mem_data_out, mem_rd,
mem_tran, mem_wr, reti_tran, t1, addr_reg_in, clkc, dmar_reg,
dout_io_reg, dout_mem_reg, halt_nxt, if_frst, inta_frst, io_data_in,
ivec_data_in, ld_dmaa, ld_wait, mem_data_in, output_inh, rd_frst, rd_nxt,
resetb, reti_nxt, tran_sel, wr_frst);
 
input clkc; /* main cpu clock */
input dmar_reg; /* latched dma request */
input halt_nxt; /* halt cycle identifier */
input if_frst; /* first part of fetch cycle identifier */
input inta_frst; /* first part of intack cycle identifier */
input ld_dmaa; /* load dma request */
input ld_wait; /* load wait request */
input output_inh; /* disable cpu outputs */
input rd_frst; /* first part of read cycle identifier */
input rd_nxt; /* read cycle identifier */
input resetb; /* internal reset */
input reti_nxt; /* reti cycle identifier */
input wr_frst; /* first part of write cycle identifier */
input [7:0] dout_io_reg; /* io data output */
input [7:0] dout_mem_reg; /* mem data output */
input [7:0] io_data_in; /* i/o input data bus */
input [7:0] ivec_data_in; /* interrupt vector bus */
input [7:0] mem_data_in; /* memory input bus */
input [15:0] addr_reg_in; /* processor logical address bus */
input [`TTYPE_IDX:0] tran_sel; /* transaction type select */
output dma_ack; /* dma acknowledge */
output ftch_tran; /* instruction fetch transaction */
output halt_tran; /* halt transaction */
output iack_tran; /* interrupt acknowledge transaction */
output io_read; /* i/o read enable */
output io_strobe; /* i/o data strobe */
output io_tran; /* i/o transaction */
output ivec_rd; /* interrupt vector enable */
output mem_rd; /* memory read enable */
output mem_tran; /* memory transaction */
output mem_wr; /* memory write enable */
output reti_tran; /* return from interrupt transaction */
output t1; /* first clock of transaction */
output [7:0] data_in; /* data input bus */
output [7:0] io_data_out; /* i/o output data bus */
output [7:0] mem_data_out; /* memory output data bus */
output [15:0] io_addr_out; /* i/o address bus */
output [15:0] mem_addr_out; /* memory address bus */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
wire ld_io_addr; /* update io address */
wire ld_mem_addr; /* update memory address */
wire [7:0] io_data_out; /* i/o output data bus */
wire [7:0] mem_data_out; /* memory output data bus */
 
reg dma_ack; /* dma acknowledge */
reg ftch_tran; /* inst fetch transaction */
reg halt_tran; /* halt transaction */
reg iack_tran; /* int ack transaction */
reg io_read; /* i/o read enable */
reg io_tran; /* i/o transaction */
reg io_strobe; /* i/o data strobe */
reg ivec_rd; /* interrupt vector enable */
reg mem_rd; /* memory read enable */
reg mem_tran; /* memory transaction */
reg mem_wr; /* memory write enable */
reg out_inh_reg; /* latched output inhibit */
reg reti_tran; /* reti transaction */
reg t1; /* first clock of transaction */
reg [7:0] data_in; /* data input bus */
reg [15:0] io_addr_out; /* i/o address bus */
reg [15:0] mem_addr_out; /* memory address bus */
 
/*****************************************************************************************/
/* */
/* misc signals & buses */
/* */
/*****************************************************************************************/
assign io_data_out = (out_inh_reg) ? 8'h00 : dout_io_reg;
assign mem_data_out = (out_inh_reg) ? 8'h00 : dout_mem_reg;
assign ld_io_addr = tran_sel[`TT_IO] || output_inh;
assign ld_mem_addr = tran_sel[`TT_IAK] || tran_sel[`TT_IDL] || tran_sel[`TT_IF] ||
tran_sel[`TT_MEM] || tran_sel[`TT_STK];
 
always @ (iack_tran or io_tran or io_data_in or ivec_data_in or mem_data_in) begin
case ({iack_tran, io_tran})
2'b01: data_in = io_data_in;
2'b10: data_in = ivec_data_in;
default: data_in = mem_data_in;
endcase
end
 
/*****************************************************************************************/
/* */
/* timing generation */
/* */
/*****************************************************************************************/
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
dma_ack <= 1'b0;
ftch_tran <= 1'b0;
halt_tran <= 1'b0;
iack_tran <= 1'b0;
io_addr_out <= 16'h0000;
io_read <= 1'b0;
io_tran <= 1'b0;
mem_addr_out <= 16'h0000;
mem_tran <= 1'b0;
out_inh_reg <= 1'b0;
reti_tran <= 1'b0;
end
else if (|tran_sel) begin
dma_ack <= ld_dmaa && dmar_reg;
ftch_tran <= tran_sel[`TT_IF];
halt_tran <= halt_nxt;
iack_tran <= tran_sel[`TT_IAK];
if (ld_io_addr) io_addr_out <= (output_inh) ? 16'h0000 : addr_reg_in;
io_read <= tran_sel[`TT_IO] && rd_nxt;
io_tran <= tran_sel[`TT_IO];
if (ld_mem_addr) mem_addr_out <= (output_inh) ? 16'h0000 : addr_reg_in;
mem_tran <= (tran_sel[`TT_IDL] || tran_sel[`TT_IF] || tran_sel[`TT_MEM] ||
tran_sel[`TT_STK]) && !output_inh;
out_inh_reg <= output_inh;
reti_tran <= reti_nxt;
end
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
io_strobe <= 1'b0;
ivec_rd <= 1'b0;
mem_rd <= 1'b0;
mem_wr <= 1'b0;
t1 <= 1'b0;
end
else begin
io_strobe <= io_tran && (rd_frst || wr_frst);
ivec_rd <= iack_tran && inta_frst;
mem_rd <= (if_frst || (mem_tran && rd_frst)) && ld_wait;
mem_wr <= mem_tran && wr_frst;
t1 <= |tran_sel && !(halt_nxt || dmar_reg);
end
end
 
endmodule
 
 
 
 
 
 
 
 
 
 
/trunk/rtl/aluamux.v
0,0 → 1,108
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** alu a input multiplexer module Rev 0.0 07/24/2011 **/
/** **/
/*******************************************************************************************/
module aluamux (adda_in, alua_in, alua_reg, aa_reg_out, bit_mask, daa_out, hl_reg_out,
ii_reg, int_addr, ix_reg, iy_reg, pc_reg, rr_reg, rst_addr);
 
input [7:0] aa_reg_out; /* a register output */
input [7:0] bit_mask; /* bit mask for bit operations */
input [7:0] daa_out; /* daa constant */
input [7:0] ii_reg; /* i register output */
input [7:0] rr_reg; /* r register output */
input [7:0] rst_addr; /* restart address */
input [15:0] hl_reg_out; /* hl register output */
input [15:0] int_addr; /* interrupt address */
input [15:0] ix_reg; /* ix register output */
input [15:0] iy_reg; /* iy register output */
input [15:0] pc_reg; /* pc register output */
input [`ALUA_IDX:0] alua_reg; /* pipelined alu input a mux control */
output [15:0] adda_in; /* address alu a input bus */
output [15:0] alua_in; /* alu a input bus */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
reg [15:0] alua_in;
reg [15:0] alua_in_0, alua_in_1, alua_in_2, alua_in_3, alua_in_4, alua_in_5;
reg [15:0] alua_in_6, alua_in_7, alua_in_8, alua_in_9, alua_in_10, alua_in_11;
reg [15:0] alua_in_12, alua_in_13;
 
wire [15:0] adda_in;
wire [15:0] adda_in_0, adda_in_1, adda_in_2, adda_in_4, adda_in_5, adda_in_12;
wire [15:0] adda_in_13;
 
/*****************************************************************************************/
/* */
/* alu input a select */
/* */
/*****************************************************************************************/
always @ (alua_reg or aa_reg_out or bit_mask or daa_out or ii_reg or int_addr or
hl_reg_out or ix_reg or iy_reg or pc_reg or rr_reg or rst_addr) begin
alua_in_0 = 16'h0;
alua_in_1 = 16'h0;
alua_in_2 = 16'h0;
alua_in_3 = 16'h0;
alua_in_4 = 16'h0;
alua_in_5 = 16'h0;
alua_in_6 = 16'h0;
alua_in_7 = 16'h0;
alua_in_8 = 16'h0;
alua_in_9 = 16'h0;
alua_in_10 = 16'h0;
alua_in_11 = 16'h0;
alua_in_12 = 16'h0;
alua_in_13 = 16'h0;
if (alua_reg[`AA_ONE]) alua_in_0 = 16'h0001;
if (alua_reg[`AA_M1]) alua_in_1 = 16'hffff;
if (alua_reg[`AA_M2]) alua_in_2 = 16'hfffe;
if (alua_reg[`AA_HL]) alua_in_3 = hl_reg_out;
if (alua_reg[`AA_IX]) alua_in_4 = ix_reg;
if (alua_reg[`AA_IY]) alua_in_5 = iy_reg;
if (alua_reg[`AA_PC]) alua_in_6 = pc_reg;
if (alua_reg[`AA_AA]) alua_in_7 = {8'h00, aa_reg_out};
if (alua_reg[`AA_BIT]) alua_in_8 = {8'h00, bit_mask};
if (alua_reg[`AA_DAA]) alua_in_9 = {8'h00, daa_out};
if (alua_reg[`AA_II]) alua_in_10 = {8'h00, ii_reg};
if (alua_reg[`AA_RR]) alua_in_11 = {8'h00, rr_reg};
if (alua_reg[`AA_INT]) alua_in_12 = int_addr;
if (alua_reg[`AA_RST]) alua_in_13 = {8'h00, rst_addr};
end
 
always @ (alua_in_0 or alua_in_1 or alua_in_2 or alua_in_3 or alua_in_4 or
alua_in_5 or alua_in_6 or alua_in_7 or alua_in_8 or alua_in_9 or
alua_in_10 or alua_in_11 or alua_in_12 or alua_in_13) begin
alua_in = alua_in_0 | alua_in_1 | alua_in_2 | alua_in_3 | alua_in_4 |
alua_in_5 | alua_in_6 | alua_in_7 | alua_in_8 | alua_in_9 |
alua_in_10 | alua_in_11 | alua_in_12 | alua_in_13;
end
 
/*****************************************************************************************/
/* */
/* address alu input a select */
/* */
/*****************************************************************************************/
assign adda_in_0 = (alua_reg[`AA_ONE]) ? 16'h0001 : 16'h0000;
assign adda_in_1 = (alua_reg[`AA_M1]) ? 16'hffff : 16'h0000;
assign adda_in_2 = (alua_reg[`AA_M2]) ? 16'hfffe : 16'h0000;
assign adda_in_4 = (alua_reg[`AA_IX]) ? ix_reg : 16'h0000;
assign adda_in_5 = (alua_reg[`AA_IY]) ? iy_reg : 16'h0000;
assign adda_in_12 = (alua_reg[`AA_INT]) ? int_addr : 16'h0000;
assign adda_in_13 = (alua_reg[`AA_RST]) ? {8'h00, rst_addr} : 16'h0000;
 
assign adda_in = adda_in_0 | adda_in_1 | adda_in_2 | adda_in_4 | adda_in_5 |
adda_in_12 | adda_in_13;
 
endmodule
 
 
 
 
 
 
 
/trunk/rtl/defines.v
0,0 → 1,460
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** define file to make the code more readable Rev 0.0 07/29/2011 **/
/** **/
/*******************************************************************************************/
 
/*****************************************************************************************/
/* */
/* page register control - DO NOT MODIFY */
/* */
/*****************************************************************************************/
`define MAIN_PG 4'b0000 //no instruction prefix byte(s)
`define INTR_PG 4'b0001 //interrupt acknowledge
`define CB_PAGE 4'b0010 //CB instruction prefix
`define DMA_PG 4'b0011 //dma acknowledge
`define DD_PAGE 4'b0100 //DD instruction prefix
`define FD_PAGE 4'b0101 //FD instruction prefix
`define DDCB_PG 4'b0110 //DD-CB instruction prefix
`define FDCB_PG 4'b0111 //FD-CB instruction prefix
`define ED_PAGE 4'b1000 //ED instruction prefix
`define DEC_MAIN 4'b0x0x //main page or DD page or FD page
`define DEC_ED 4'b1xxx //ED page
 
/*****************************************************************************************/
/* */
/* program counter register control: pc_sel */
/* */
/*****************************************************************************************/
`define PCCTL_IDX 2
`define PC_NUL 3'b000 //No operation on PC
`define PC_LD 3'b001 //PC loaded unconditionally
`define PC_NILD 3'b011 //PC loaded if no interrupt, sample interrupt
`define PC_INT 3'b100 //Sample interrupt/dma only
`define PC_DMA 3'b110 //Sample dma only
`define PC_NILD2 3'b111 //PC loaded if no latched interrupt
 
/*****************************************************************************************/
/* */
/* address bus select: add_sel */
/* */
/*****************************************************************************************/
`define ADCTL_IDX 3
`define ADD_RSTVAL 4'b0000 //Pipeline register reset value
`define ADD_PC 4'b0001 //Select address register from PC
`define ADD_HL 4'b0010 //Select address register from HL
`define ADD_SP 4'b0100 //Select address register from SP
`define ADD_ALU 4'b1000 //Select address register from ALU
 
`define AD_PC 0 //Address from PC
`define AD_HL 1 //Address from HL
`define AD_SP 2 //Address from SP
`define AD_ALU 3 //Address from ALU
 
/*****************************************************************************************/
/* */
/* transaction type select: tran_sel */
/* */
/*****************************************************************************************/
`define TTYPE_IDX 5
`define TRAN_RSTVAL 6'b000000 //Transaction type reset value
`define TRAN_IAK 6'b000001 //Intack transaction
`define TRAN_IDL 6'b000010 //Idle transaction
`define TRAN_IF 6'b000100 //Instruction fetch transaction
`define TRAN_IO 6'b001000 //I/O transaction
`define TRAN_MEM 6'b010000 //Memory (data) transaction
`define TRAN_STK 6'b100000 //Memory (stack) transaction
 
`define TT_IAK 0 //Interrupt acknowledge transaction
`define TT_IDL 1 //Idle transaction
`define TT_IF 2 //Instruction fetch transaction
`define TT_IO 3 //I/O transaction
`define TT_MEM 4 //Memory (data) transaction
`define TT_STK 5 //Memory (stack) transaction
 
/*****************************************************************************************/
/* */
/* data output control: do_ctl - DO NOT MODIFY */
/* */
/*****************************************************************************************/
`define DO_IDX 2
`define DO_NUL 3'b000 //No load
`define DO_IO 3'b010 //Load i/o data from lsb
`define DO_LSB 3'b100 //Load mem data from lsb
`define DO_MSB 3'b101 //Load mem data from msb
 
/*****************************************************************************************/
/* */
/* data input control: di_ctl - DO NOT MODIFY */
/* */
/*****************************************************************************************/
`define DI_IDX 1
`define DI_NUL 2'b00 //No load
`define DI_DI0 2'b01 //Load din0
`define DI_DI1 2'b10 //Load din1
`define DI_DI10 2'b11 //Load both din0 and din1
 
/*****************************************************************************************/
/* */
/* interrupt enable control: ief_ctl - DO NOT MODIFY */
/* */
/*****************************************************************************************/
`define IEF_IDX 2
`define IEF_NUL 3'b000 //No load
`define IEF_0 3'b010 //Load zero
`define IEF_1 3'b011 //Load one
`define IEF_NMI 3'b100 //ief2 <= ief1, ief1 <= 0
`define IEF_RTN 3'b101 //ief1 <= ief2
 
/*****************************************************************************************/
/* */
/* int mode control: imd_ctl - DO NOT MODIFY */
/* */
/*****************************************************************************************/
`define IMD_IDX 1
`define IMD_NUL 2'b00 //No load
`define IMD_0 2'b01 //Set interrupt mode 0
`define IMD_1 2'b10 //Set interrupt mode 1
`define IMD_2 2'b11 //Set interrupt mode 2
 
/*****************************************************************************************/
/* */
/* half-carry flag control: hflg_ctl - DO NOT MODIFY */
/* */
/*****************************************************************************************/
`define HFLG_IDX 1
`define HFLG_NUL 2'b00 //No load
`define HFLG_H 2'b01 //Load half-carry result
`define HFLG_0 2'b10 //Load zero
`define HFLG_1 2'b11 //Load one
 
/*****************************************************************************************/
/* */
/* parity/overflow flag control: pflg_ctl */
/* */
/*****************************************************************************************/
`define PFLG_IDX 2
`define PFLG_NUL 3'b000 //No load
`define PFLG_V 3'b001 //Load overflow result
`define PFLG_0 3'b010 //Load zero
`define PFLG_1 3'b011 //Load one
`define PFLG_P 3'b100 //Load parity result
`define PFLG_B 3'b101 //Load block count zero result
`define PFLG_F 3'b111 //Load ief
 
/*****************************************************************************************/
/* */
/* negate flag control: nflg_ctl - DO NOT MODIFY */
/* */
/*****************************************************************************************/
`define NFLG_IDX 1
`define NFLG_NUL 2'b00 //No load
`define NFLG_S 2'b01 //Load sign result
`define NFLG_0 2'b10 //Load zero
`define NFLG_1 2'b11 //Load one
 
/*****************************************************************************************/
/* */
/* temporary flag control: tflg_ctl */
/* */
/*****************************************************************************************/
`define TFLG_IDX 1
`define TFLG_NUL 2'b00 //No load
`define TFLG_Z 2'b01 //Load zero result
`define TFLG_1 2'b10 //Load one result (blk out)
`define TFLG_B 2'b11 //Load blk cp result
 
/*****************************************************************************************/
/* */
/* write register control: wr_sel - unencoded */
/* */
/*****************************************************************************************/
`define WREG_IDX 14
`define WREG_BB 15'b110000000000000 //Select B to write
`define WREG_BC 15'b111000000000000 //Select BC to write
`define WREG_CC 15'b101000000000000 //Select C to write
`define WREG_DD 15'b100100000000000 //Select D to write
`define WREG_DE 15'b100110000000000 //Select DE to write
`define WREG_EE 15'b100010000000000 //Select E to write
`define WREG_HH 15'b100001000000000 //Select H to write
`define WREG_HL 15'b100001100000000 //Select HL to write
`define WREG_LL 15'b100000100000000 //Select L to write
`define WREG_DEHL 15'b100111100000000 //Select DEHL to write (ex case)
`define WREG_AA 15'b100000010000000 //Select A to write
`define WREG_AF 15'b100000011000000 //Select A and F to write
`define WREG_FF 15'b100000001000000 //Select F to write
`define WREG_SP 15'b100000000100000 //Select SP to write
`define WREG_TMP 15'b100000000010000 //Select TMP register to write
`define WREG_IX 15'b100000000001000 //Select IX to write
`define WREG_IY 15'b100000000000100 //Select IY to write
`define WREG_II 15'b100000000000010 //Select I register to write
`define WREG_RR 15'b100000000000001 //Select R register to write
`define WREG_NUL 15'b000000000000000 //No register write
 
`define WR_REG 14 //register write
`define WR_BB 13 //BB register index
`define WR_CC 12 //CC register index
`define WR_DD 11 //DD register index
`define WR_EE 10 //EE register index
`define WR_HH 9 //HH register index
`define WR_LL 8 //LL register index
`define WR_AA 7 //AA register index
`define WR_FF 6 //FF register index
`define WR_SP 5 //SP register index
`define WR_TMP 4 //TMP register index
`define WR_IX 3 //IX register index
`define WR_IY 2 //IY register index
`define WR_II 1 //II register index
`define WR_RR 0 //RR register index
 
/*****************************************************************************************/
/* */
/* ALU input A control: alua_sel */
/* */
/*****************************************************************************************/
`define ALUA_IDX 13
`define ALUA_RSTVAL 14'h0000 //Reset value for pipeline controls
`define ALUA_ZER 14'h0000 //Select 16'h0000 (default)
`define ALUA_ONE 14'h0001 //Select 16'h0001
`define ALUA_M1 14'h0002 //Select 16'hFFFF
`define ALUA_M2 14'h0004 //Select 16'hFFFE
`define ALUA_HL 14'h0008 //Select HL register
`define ALUA_IX 14'h0010 //Select IX register
`define ALUA_IY 14'h0020 //Select IY register
`define ALUA_PC 14'h0040 //Select PC register
`define ALUA_AA 14'h0080 //Select A register
`define ALUA_BIT 14'h0100 //Select bit select constant
`define ALUA_DAA 14'h0200 //Select decimal adjust constant
`define ALUA_II 14'h0400 //Select I register
`define ALUA_RR 14'h0800 //Select R register
`define ALUA_INT 14'h1000 //Select interrupt address
`define ALUA_RST 14'h2000 //Select restart address
 
`define AA_ONE 0 //alua one
`define AA_M1 1 //alua -1
`define AA_M2 2 //alua -2
`define AA_HL 3 //alua hl
`define AA_IX 4 //alua ix
`define AA_IY 5 //alua iy
`define AA_PC 6 //alua pc
`define AA_AA 7 //alua aa
`define AA_BIT 8 //alua bit
`define AA_DAA 9 //alua daa
`define AA_II 10 //alua ii
`define AA_RR 11 //alua rr
`define AA_INT 12 //alua interrupt
`define AA_RST 13 //alua restart
 
/*****************************************************************************************/
/* */
/* ALU input B control: alub_sel */
/* */
/*****************************************************************************************/
`define ALUB_IDX 12
`define ALUB_RSTVAL 13'h1000 //Reset value for pipeline controls
`define ALUB_AF 13'h1002 //Select A and F registers
`define ALUB_AA 13'h1003 //Select A register
`define ALUB_BC 13'h0004 //Select BC register
`define ALUB_BB 13'h0005 //Select B register
`define ALUB_CC 13'h0004 //Select C register
`define ALUB_DE 13'h0008 //Select DE register
`define ALUB_DD 13'h0009 //Select D register
`define ALUB_EE 13'h0008 //Select E register
`define ALUB_HL 13'h0010 //Select HL register
`define ALUB_HH 13'h0011 //Select H register
`define ALUB_LL 13'h0010 //Select L register
`define ALUB_IX 13'h0020 //Select IX register
`define ALUB_IXH 13'h0021 //Select IX register high byte
`define ALUB_IXL 13'h0020 //Select IX register low byte
`define ALUB_IY 13'h0040 //Select IY register
`define ALUB_IYH 13'h0041 //Select IY register high byte
`define ALUB_IYL 13'h0040 //Select IY register low byte
`define ALUB_SP 13'h0080 //Select SP register
`define ALUB_SPH 13'h0081 //Select SP register high byte
`define ALUB_DIN 13'h0100 //Select data input register
`define ALUB_DINH 13'h0101 //Select data input register high byte
`define ALUB_IO 13'h0200 //Select i/o address
`define ALUB_TMP 13'h0400 //Select TMP register
`define ALUB_PC 13'h1800 //Select PC register
`define ALUB_PCH 13'h1801 //Select PC register high byte
 
`define AB_SHR 0 //alub shift right
`define AB_AF 1 //alub af
`define AB_BC 2 //alub bc
`define AB_DE 3 //alub de
`define AB_HL 4 //alub hl
`define AB_IX 5 //alub ix
`define AB_IY 6 //alub iy
`define AB_SP 7 //alub sp
`define AB_DIN 8 //alub din
`define AB_IO 9 //alub io
`define AB_TMP 10 //alub tmp
`define AB_PC 11 //alub pc
`define AB_ADR 12 //alub address pc
 
/*****************************************************************************************/
/* */
/* ALU operation control: aluop_sel - 2 MSBs fixed for unit sel */
/* */
/*****************************************************************************************/
`define ALUOP_IDX 7
`define ALUOP_RSTVAL 8'b00000000 //Reset Value for pipeline controls
`define ALUOP_ADD 8'b01000000 //ALU math: add
`define ALUOP_BADD 8'b01000001 //ALU math: byte add
`define ALUOP_BDEC 8'b01000011 //ALU math: byte add (decrement)
`define ALUOP_ADS 8'b01000100 //ALU math: add signed byte
`define ALUOP_DAA 8'b01000101 //ALU math: byte add (daa)
`define ALUOP_ADC 8'b01001000 //ALU math: add with carry
`define ALUOP_BADC 8'b01001001 //ALU math: byte add with carry
`define ALUOP_SUB 8'b01010000 //ALU math: subtract
`define ALUOP_BSUB 8'b01010001 //ALU math: subtract
`define ALUOP_SBC 8'b01100000 //ALU math: subtract with carry
`define ALUOP_BSBC 8'b01100001 //ALU math: byte subtract with carry
 
`define ALUOP_PASS 8'b00000000 //ALU logic: pass b bus
`define ALUOP_BAND 8'b00000011 //ALU logic: byte and
`define ALUOP_BOR 8'b00000101 //ALU logic: byte or
`define ALUOP_BXOR 8'b00001001 //ALU logic: byte or
`define ALUOP_CCF 8'b00010000 //ALU logic: complement carry
`define ALUOP_SCF 8'b00010010 //ALU logic: set carry
`define ALUOP_RLD1 8'b00011000 //ALU logic: rld first step
`define ALUOP_RLD2 8'b00011010 //ALU logic: rld second step
`define ALUOP_RRD1 8'b00011100 //ALU logic: rrd first step
`define ALUOP_RRD2 8'b00011110 //ALU logic: rrd second step
`define ALUOP_APAS 8'b00100000 //ALU logic: pass a bus
 
`define ALUOP_RL 8'b10000000 //ALU shft: rotate left
`define ALUOP_RLA 8'b10000001 //ALU shft: rotate left acc
`define ALUOP_RLC 8'b10000010 //ALU shft: rotate left circular
`define ALUOP_RLCA 8'b10000011 //ALU shft: rotate left circular acc
`define ALUOP_RR 8'b10000100 //ALU shft: rotate right
`define ALUOP_RRA 8'b10000101 //ALU shft: rotate right acc
`define ALUOP_RRC 8'b10001000 //ALU shft: rotate right circular
`define ALUOP_RRCA 8'b10001001 //ALU shft: rotate right circular acc
`define ALUOP_SLA 8'b10010000 //ALU shft: shift left arithmetic
`define ALUOP_SRL 8'b10100000 //ALU shft: shift right logical
`define ALUOP_SRA 8'b10101000 //ALU shft: shift right arithmetic
 
/*****************************************************************************************/
/* */
/* ALU operation control: 6 encoded */
/* */
/*****************************************************************************************/
`define AOP_IDX 5
`define AOP_ADD 6'b000000 //ALU math: add
`define AOP_BADD 6'b000001 //ALU math: byte add
`define AOP_BDEC 6'b000011 //ALU math: byte add (decrement)
`define AOP_ADS 6'b000100 //ALU math: add signed byte
`define AOP_DAA 6'b000101 //ALU math: byte add (daa)
`define AOP_ADC 6'b001000 //ALU math: add with carry
`define AOP_BADC 6'b001001 //ALU math: byte add with carry
`define AOP_SUB 6'b010000 //ALU math: subtract
`define AOP_BSUB 6'b010001 //ALU math: subtract
`define AOP_SBC 6'b100000 //ALU math: subtract with carry
`define AOP_BSBC 6'b100001 //ALU math: byte subtract with carry
 
`define AOP_PASS 6'b000000 //ALU logic: pass b bus
`define AOP_BAND 6'b000011 //ALU logic: byte and
`define AOP_BOR 6'b000101 //ALU logic: byte or
`define AOP_BXOR 6'b001001 //ALU logic: byte or
`define AOP_CCF 6'b010000 //ALU logic: complement carry
`define AOP_SCF 6'b010010 //ALU logic: set carry
`define AOP_RLD1 6'b011000 //ALU logic: rld first step
`define AOP_RLD2 6'b011010 //ALU logic: rld second step
`define AOP_RRD1 6'b011100 //ALU logic: rrd first step
`define AOP_RRD2 6'b011110 //ALU logic: rrd second step
`define AOP_APAS 6'b100000 //ALU logic: pass a bus
 
`define AOP_RL 6'b000000 //ALU shft: rotate left
`define AOP_RLA 6'b000001 //ALU shft: rotate left acc
`define AOP_RLC 6'b000010 //ALU shft: rotate left circular
`define AOP_RLCA 6'b000011 //ALU shft: rotate left circular acc
`define AOP_RR 6'b000100 //ALU shft: rotate right
`define AOP_RRA 6'b000101 //ALU shft: rotate right acc
`define AOP_RRC 6'b001000 //ALU shft: rotate right circular
`define AOP_RRCA 6'b001001 //ALU shft: rotate right circular acc
`define AOP_SLA 6'b010000 //ALU shft: shift left arithmetic
`define AOP_SRL 6'b100000 //ALU shft: shift right logical
`define AOP_SRA 6'b101000 //ALU shft: shift right arithmetic
 
/*****************************************************************************************/
/* */
/* machine state - pseudo-one-hot */
/* */
/*****************************************************************************************/
`define STATE_IDX 31
`define sRST 32'b00000000000000000000000000000000 //reset
`define sDEC1 32'b00000000000000000000000000000011 //decode 1st opcode
`define sIF2B 32'b00000000000000000000000000000101 //fetch 2nd opcode (2)
`define sDEC2 32'b00000000000000000000000000001001 //decode 2nd opcode
`define sOF1B 32'b00000000000000000000000000010001 //fetch 1st operand (2)
`define sOF2A 32'b00000000000000000000000000100001 //fetch 2nd operand (1)
`define sOF2B 32'b00000000000000000000000001000001 //fetch 2nd operand (2)
`define sIF3A 32'b00000000000000000000000010000001 //fetch 3rd opcode (1)
`define sIF3B 32'b00000000000000000000000100000001 //fetch 3rd opcode (2)
`define sADR1 32'b00000000000000000000001000000001 //address calculate (1)
`define sADR2 32'b00000000000000000000010000000001 //address calculate (2)
`define sRD1A 32'b00000000000000000000100000000001 //read 1st operand (1)
`define sRD1B 32'b00000000000000000001000000000001 //read 1st operand (2)
`define sRD2A 32'b00000000000000000010000000000001 //read 2nd operand (1)
`define sRD2B 32'b00000000000000000100000000000001 //read 2nd operand (2)
`define sWR1A 32'b00000000000000001000000000000001 //write 1st operand (1)
`define sWR1B 32'b00000000000000010000000000000001 //write 1st operand (2)
`define sWR2A 32'b00000000000000100000000000000001 //write 2nd operand (1)
`define sWR2B 32'b00000000000001000000000000000001 //write 2nd operand (2)
`define sBLK1 32'b00000000000010000000000000000001 //block instruction (1)
`define sBLK2 32'b00000000000100000000000000000001 //block instruction (2)
`define sPCA 32'b00000000001000000000000000000001 //PC adjust
`define sPCO 32'b00000000010000000000000000000001 //PC output
`define sIF1A 32'b00000000100000000000000000000001 //fetch 1st opcode (1)
`define sIF1B 32'b00000001000000000000000000000001 //fetch 1st opcode (2)
`define sINTA 32'b00000010000000000000000000000001 //interrupt acknowledge (1)
`define sINTB 32'b00000100000000000000000000000001 //interrupt acknowledge (2)
`define sHLTA 32'b00001000000000000000000000000001 //halt & sleep (1)
`define sHLTB 32'b00010000000000000000000000000001 //halt & sleep (2)
`define sDMA1 32'b00100000000000000000000000000001 //dma transfer (1)
`define sDMA2 32'b01000000000000000000000000000001 //dma transfer (2)
`define sRSTE 32'b10000000000000000000000000000001 //reset exit
 
`define RST 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0 //reset
`define DEC1 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx11 //decode 1st opcode
`define IF2B 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1x1 //fetch 2nd opcode (2)
`define DEC2 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxxx1xx1 //decode 2nd opcode
`define OF1B 32'bxxxxxxxxxxxxxxxxxxxxxxxxxxx1xxx1 //fetch 1st operand (2)
`define OF2A 32'bxxxxxxxxxxxxxxxxxxxxxxxxxx1xxxx1 //fetch 2nd operand (1)
`define OF2B 32'bxxxxxxxxxxxxxxxxxxxxxxxxx1xxxxx1 //fetch 2nd operand (2)
`define IF3A 32'bxxxxxxxxxxxxxxxxxxxxxxxx1xxxxxx1 //fetch 3rd opcode (1)
`define IF3B 32'bxxxxxxxxxxxxxxxxxxxxxxx1xxxxxxx1 //fetch 3rd opcode (2)
`define ADR1 32'bxxxxxxxxxxxxxxxxxxxxxx1xxxxxxxx1 //address calculate (1)
`define ADR2 32'bxxxxxxxxxxxxxxxxxxxxx1xxxxxxxxx1 //address calculate (2)
`define RD1A 32'bxxxxxxxxxxxxxxxxxxxx1xxxxxxxxxx1 //read 1st operand (1)
`define RD1B 32'bxxxxxxxxxxxxxxxxxxx1xxxxxxxxxxx1 //read 1st operand (2)
`define RD2A 32'bxxxxxxxxxxxxxxxxxx1xxxxxxxxxxxx1 //read 2nd operand (1)
`define RD2B 32'bxxxxxxxxxxxxxxxxx1xxxxxxxxxxxxx1 //read 2nd operand (2)
`define WR1A 32'bxxxxxxxxxxxxxxxx1xxxxxxxxxxxxxx1 //write 1st operand (1)
`define WR1B 32'bxxxxxxxxxxxxxxx1xxxxxxxxxxxxxxx1 //write 1st operand (2)
`define WR2A 32'bxxxxxxxxxxxxxx1xxxxxxxxxxxxxxxx1 //write 2nd operand (1)
`define WR2B 32'bxxxxxxxxxxxxx1xxxxxxxxxxxxxxxxx1 //write 2nd operand (2)
`define BLK1 32'bxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxx1 //block instruction (1)
`define BLK2 32'bxxxxxxxxxxx1xxxxxxxxxxxxxxxxxxx1 //block instruction (2)
`define PCA 32'bxxxxxxxxxx1xxxxxxxxxxxxxxxxxxxx1 //PC adjust
`define PCO 32'bxxxxxxxxx1xxxxxxxxxxxxxxxxxxxxx1 //PC output
`define IF1A 32'bxxxxxxxx1xxxxxxxxxxxxxxxxxxxxxx1 //fetch 1st opcode (1)
`define IF1B 32'bxxxxxxx1xxxxxxxxxxxxxxxxxxxxxxx1 //fetch 1st opcode (2)
`define INTA 32'bxxxxxx1xxxxxxxxxxxxxxxxxxxxxxxx1 //interrupt acknowledge (1)
`define INTB 32'bxxxxx1xxxxxxxxxxxxxxxxxxxxxxxxx1 //interrupt acknowledge (2)
`define HLTA 32'bxxxx1xxxxxxxxxxxxxxxxxxxxxxxxxx1 //halt & sleep (1)
`define HLTB 32'bxxx1xxxxxxxxxxxxxxxxxxxxxxxxxxx1 //halt & sleep (2)
`define DMA1 32'bxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx1 //dma transfer (1)
`define DMA2 32'bx1xxxxxxxxxxxxxxxxxxxxxxxxxxxxx1 //dma transfer (2)
`define RSTE 32'b1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1 //reset exit
 
 
 
 
 
 
 
 
/trunk/rtl/alubmux.v
0,0 → 1,104
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** alu b input multiplexer module Rev 0.0 07/24/2011 **/
/** **/
/*******************************************************************************************/
module alubmux (addb_in, alub_in, alub_reg, af_reg_out, bc_reg_out, de_reg_out, din0_reg,
din1_reg, hl_reg_out, ix_reg, iy_reg, pc_reg, sp_reg, tmp_reg);
 
input [7:0] din0_reg; /* data input 0 register */
input [7:0] din1_reg; /* data input 1 register */
input [15:0] af_reg_out; /* af register output */
input [15:0] bc_reg_out; /* bc register output */
input [15:0] de_reg_out; /* de register output */
input [15:0] hl_reg_out; /* hl register output */
input [15:0] ix_reg; /* ix register output */
input [15:0] iy_reg; /* iy register output */
input [15:0] pc_reg; /* pc register output */
input [15:0] sp_reg; /* sp register output */
input [15:0] tmp_reg; /* temporary register output */
input [`ALUB_IDX:0] alub_reg; /* pipelined alu input b mux control */
output [15:0] addb_in; /* address alu b input bus */
output [15:0] alub_in; /* alu b input bus */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
wire [15:0] alub_in;
reg [15:0] alub_mux;
reg [15:0] alub_mux_1, alub_mux_2, alub_mux_3, alub_mux_4, alub_mux_5;
reg [15:0] alub_mux_6, alub_mux_7, alub_mux_8, alub_mux_9, alub_mux_10, alub_mux_11;
 
wire [15:0] addb_in;
wire [15:0] addb_mux_2, addb_mux_3, addb_mux_4, addb_mux_5, addb_mux_6, addb_mux_7;
wire [15:0] addb_mux_8, addb_mux_9, addb_mux_10, addb_mux_12;
 
/*****************************************************************************************/
/* */
/* alu input b select */
/* */
/*****************************************************************************************/
always @ (alub_reg or af_reg_out or bc_reg_out or de_reg_out or hl_reg_out or ix_reg or
iy_reg or sp_reg or din1_reg or din0_reg or tmp_reg or pc_reg) begin
alub_mux_1 = 32'h0;
alub_mux_2 = 32'h0;
alub_mux_3 = 32'h0;
alub_mux_4 = 32'h0;
alub_mux_5 = 32'h0;
alub_mux_6 = 32'h0;
alub_mux_7 = 32'h0;
alub_mux_8 = 32'h0;
alub_mux_9 = 32'h0;
alub_mux_10 = 32'h0;
alub_mux_11 = 32'h0;
if (alub_reg[`AB_AF]) alub_mux_1 = af_reg_out;
if (alub_reg[`AB_BC]) alub_mux_2 = bc_reg_out;
if (alub_reg[`AB_DE]) alub_mux_3 = de_reg_out;
if (alub_reg[`AB_HL]) alub_mux_4 = hl_reg_out;
if (alub_reg[`AB_IX]) alub_mux_5 = ix_reg;
if (alub_reg[`AB_IY]) alub_mux_6 = iy_reg;
if (alub_reg[`AB_SP]) alub_mux_7 = sp_reg;
if (alub_reg[`AB_DIN]) alub_mux_8 = {din1_reg, din0_reg};
if (alub_reg[`AB_IO]) alub_mux_9 = {af_reg_out[15:8], din0_reg};
if (alub_reg[`AB_TMP]) alub_mux_10 = tmp_reg;
if (alub_reg[`AB_PC]) alub_mux_11 = pc_reg;
end
 
always @ (alub_mux_1 or alub_mux_2 or alub_mux_3 or alub_mux_4 or alub_mux_5 or
alub_mux_6 or alub_mux_7 or alub_mux_8 or alub_mux_9 or alub_mux_10 or
alub_mux_11) begin
alub_mux = alub_mux_1 | alub_mux_2 | alub_mux_3 | alub_mux_4 | alub_mux_5 |
alub_mux_6 | alub_mux_7 | alub_mux_8 | alub_mux_9 | alub_mux_10 | alub_mux_11;
end
 
assign alub_in = (alub_reg[`AB_SHR]) ? {alub_mux[15:8], alub_mux[15:8]} : alub_mux;
 
/*****************************************************************************************/
/* */
/* address alu input b select */
/* */
/*****************************************************************************************/
assign addb_mux_2 = (alub_reg[`AB_BC]) ? bc_reg_out : 16'h0;
assign addb_mux_3 = (alub_reg[`AB_DE]) ? de_reg_out : 16'h0;
assign addb_mux_4 = (alub_reg[`AB_HL]) ? hl_reg_out : 16'h0;
assign addb_mux_5 = (alub_reg[`AB_IX]) ? ix_reg : 16'h0;
assign addb_mux_6 = (alub_reg[`AB_IY]) ? iy_reg : 16'h0;
assign addb_mux_7 = (alub_reg[`AB_SP]) ? sp_reg : 16'h0;
assign addb_mux_8 = (alub_reg[`AB_DIN]) ? {din1_reg, din0_reg} : 16'h0;
assign addb_mux_9 = (alub_reg[`AB_IO]) ? {af_reg_out[15:8], din0_reg} : 16'h0;
assign addb_mux_10 = (alub_reg[`AB_TMP]) ? tmp_reg : 16'h0;
assign addb_mux_12 = (alub_reg[`AB_ADR]) ? pc_reg : 16'h0;
 
assign addb_in = addb_mux_2 | addb_mux_3 | addb_mux_4 | addb_mux_5 | addb_mux_6 |
addb_mux_7 | addb_mux_8 |addb_mux_9 | addb_mux_10 | addb_mux_12;
 
endmodule
 
 
 
 
 
/trunk/rtl/hierarchy.v
0,0 → 1,25
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** chip design file include list Rev 0.0 07/17/2011 **/
/** **/
/*******************************************************************************************/
`include "defines.v" /* control signal mnemonics */
`include "control.v" /* processor control */
`include "datapath.v" /* processor data path */
`include "alu_log.v" /* alu logic unit */
`include "alu_math.v" /* alu math unit */
`include "alu_shft.v" /* alu shifter unit */
`include "aluamux.v" /* alu a input multiplexer */
`include "alubmux.v" /* alu b input multiplexer */
`include "aluout.v" /* alu output multiplexer */
`include "extint.v" /* processor external interface */
`include "machine.v" /* processor state machine */
`include "y80_top.v" /* cpu top level */
 
 
 
 
 
 
/trunk/rtl/control.v
0,0 → 1,3913
/*******************************************************************************************/
/** **/
/** ORIGINAL COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** COPYRIGHT (C) 2012, SERGEY BELYASHOV **/
/** **/
/** control module Rev 0.0 05/30/2012 **/
/** **/
/*******************************************************************************************/
module control (add_sel, alua_sel, alub_sel, aluop_sel, cflg_en, di_ctl, do_ctl, ex_af_pls,
ex_bank_pls, ex_dehl_inst, halt_nxt, hflg_ctl, ief_ctl, if_frst, inta_frst,
imd_ctl, ld_dmaa, ld_inst, ld_inta, ld_page, ld_wait, nflg_ctl, output_inh,
page_sel, pc_sel, pflg_ctl, rd_frst, rd_nxt, reti_nxt, sflg_en, state_nxt,
tflg_ctl, tran_sel, wr_addr, wr_frst, zflg_en, carry_bit, dmar_reg, inst_reg,
intr_reg, page_reg, par_bit, sign_bit, state_reg, tflg_reg, vector_int,
xhlt_reg, zero_bit);
 
input carry_bit; /* carry flag */
input dmar_reg; /* latched dma request */
input intr_reg; /* latched interrupt request */
input par_bit; /* parity flag */
input sign_bit; /* sign flag */
input tflg_reg; /* temporary flag */
input vector_int; /* int vector enable */
input xhlt_reg; /* halt exit */
input zero_bit; /* zero flag */
input [3:0] page_reg; /* instruction decode "page" */
input [7:0] inst_reg; /* instruction register */
input [`STATE_IDX:0] state_reg; /* current processor state */
output cflg_en; /* carry flag control */
output ex_af_pls; /* exchange af,af' */
output ex_bank_pls; /* exchange register bank */
output ex_dehl_inst; /* exchange de,hl */
output halt_nxt; /* halt cycle next */
output if_frst; /* ifetch first cycle */
output inta_frst; /* intack first cycle */
output ld_dmaa; /* load dma request */
output ld_inst; /* load instruction register */
output ld_inta; /* load interrupt request */
output ld_page; /* load page register */
output ld_wait; /* load wait request */
output output_inh; /* disable cpu outputs */
output rd_frst; /* read first cycle */
output rd_nxt; /* read cycle identifier */
output reti_nxt; /* reti identifier */
output sflg_en; /* sign flag control */
output wr_frst; /* write first cycle */
output zflg_en; /* zero flag control */
output [3:0] page_sel; /* instruction decode "page" control */
output [`ADCTL_IDX:0] add_sel; /* address output mux control */
output [`ALUA_IDX:0] alua_sel; /* alu input a mux control */
output [`ALUB_IDX:0] alub_sel; /* alu input b mux control */
output [`ALUOP_IDX:0] aluop_sel; /* alu operation control */
output [`DI_IDX:0] di_ctl; /* data input control */
output [`DO_IDX:0] do_ctl; /* data output control */
output [`HFLG_IDX:0] hflg_ctl; /* half-carry flag control */
output [`IEF_IDX:0] ief_ctl; /* interrupt enable control */
output [`IMD_IDX:0] imd_ctl; /* interrupt mode control */
output [`NFLG_IDX:0] nflg_ctl; /* negate flag control */
output [`PCCTL_IDX:0] pc_sel; /* program counter source control */
output [`PFLG_IDX:0] pflg_ctl; /* parity/overflow flag control */
output [`STATE_IDX:0] state_nxt; /* next processor state */
output [`TFLG_IDX:0] tflg_ctl; /* temp flag control */
output [`TTYPE_IDX:0] tran_sel; /* transaction type select */
output [`WREG_IDX:0] wr_addr; /* register write address bus */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
reg cflg_en; /* carry flag control */
reg ex_af_pls; /* exchange af,af' */
reg ex_bank_pls; /* exchange register bank */
reg ex_dehl_inst; /* exchange de,hl */
reg halt_nxt; /* halt transaction */
reg if_frst; /* first clock if ifetch */
reg inta_frst; /* first clock of intack */
reg ld_inst; /* load instruction register */
reg ld_inta; /* sample latched int */
reg ld_dmaa; /* sample latched dma */
reg ld_page; /* load page register */
reg ld_wait; /* sample wait input */
reg output_inh; /* disable cpu outputs */
reg rd_frst; /* first clock of read */
reg rd_nxt; /* read trans next */
reg reti_nxt; /* reti trans next */
reg sflg_en; /* sign flag control */
reg wr_frst; /* first clock of write */
reg zflg_en; /* zero flag control */
reg [3:0] page_sel; /* inst decode page control */
reg [`ADCTL_IDX:0] add_sel; /* address output mux control */
reg [`ALUA_IDX:0] alua_sel; /* alu input a mux control */
reg [`ALUB_IDX:0] alub_sel; /* alu input b mux control */
reg [`ALUOP_IDX:0] aluop_sel; /* alu operation control */
reg [`DI_IDX:0] di_ctl; /* data input control */
reg [`DO_IDX:0] do_ctl; /* data output control */
reg [`HFLG_IDX:0] hflg_ctl; /* half-carry flag control */
reg [`IEF_IDX:0] ief_ctl; /* interrupt enable control */
reg [`IMD_IDX:0] imd_ctl; /* interrupt mode control */
reg [`NFLG_IDX:0] nflg_ctl; /* negate flag control */
reg [`PCCTL_IDX:0] pc_sel; /* pc source control */
reg [`PFLG_IDX:0] pflg_ctl; /* parity/overflow flag control */
reg [`STATE_IDX:0] state_nxt; /* machine state */
reg [`TFLG_IDX:0] tflg_ctl; /* temp flag control */
reg [`TTYPE_IDX:0] tran_sel; /* transaction type */
reg [`WREG_IDX:0] wr_addr; /* register write address bus */
 
/*****************************************************************************************/
/* */
/* exchange instruction control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg)
`IF1B: begin
case ({page_reg, inst_reg})
12'b000000001000: ex_af_pls = 1'b1;
default: ex_af_pls = 1'b0;
endcase
end
default: ex_af_pls = 1'b0;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg)
`IF1B: begin
case ({page_reg, inst_reg})
12'b000011011001: ex_bank_pls = 1'b1;
default: ex_bank_pls = 1'b0;
endcase
end
default: ex_bank_pls = 1'b0;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg)
`DEC1: begin
case (inst_reg)
8'b11101011: ex_dehl_inst = 1'b1;
default: ex_dehl_inst = 1'b0;
endcase
end
default: ex_dehl_inst = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* interrupt control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg)
`IF1B: begin
casex ({page_reg, inst_reg})
12'b000011110011: ief_ctl = `IEF_0;
12'b000011111011: ief_ctl = `IEF_1;
12'b0001xxxxxxxx: ief_ctl = `IEF_NMI;
12'b1xxx01000101: ief_ctl = `IEF_RTN;
default: ief_ctl = `IEF_NUL;
endcase
end
default: ief_ctl = `IEF_NUL;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg)
`IF1B: begin
casex ({page_reg, inst_reg})
12'b1xxx01000110: imd_ctl = `IMD_0;
12'b1xxx01010110: imd_ctl = `IMD_1;
12'b1xxx01011110: imd_ctl = `IMD_2;
default: imd_ctl = `IMD_NUL;
endcase
end
default: imd_ctl = `IMD_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* identifiers to create timing signals */
/* */
/*****************************************************************************************/
always @ (state_reg) begin
casex (state_reg) //synopsys parallel_case
`DEC1,
`DEC2,
`OF2A,
`IF3A,
`IF1A: if_frst = 1'b1;
default: if_frst = 1'b0;
endcase
end
 
always @ (state_reg) begin
casex (state_reg) //synopsys parallel_case
`INTA,
`RSTE: inta_frst = 1'b1;
default: inta_frst = 1'b0;
endcase
end
 
always @ (inst_reg or page_reg or state_nxt) begin
casex (state_nxt) //synopsys parallel_case
`RD1A,
`RD2A: rd_nxt = 1'b1;
default: rd_nxt = 1'b0;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`RD1A,
`RD2A: rd_frst = 1'b1;
default: rd_frst = 1'b0;
endcase
end
 
always @ (state_reg) begin
casex (state_reg) //synopsys parallel_case
`WR1A,
`WR2A: wr_frst = 1'b1;
default: wr_frst = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* wait sample */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or par_bit or
sign_bit or zero_bit) begin
casex (state_reg) //synopsys parallel_case
`DEC1: begin
casex (inst_reg) //synopsys parallel_case
8'b00000010,
8'b00001010,
8'b00010010,
8'b00011010,
8'b00110100,
8'b00110101,
8'b011100xx,
8'b0111010x,
8'b01110111,
8'b010xx110,
8'b0110x110,
8'b01111110,
8'b10000110,
8'b10001110,
8'b10010110,
8'b10011110,
8'b10100110,
8'b10101110,
8'b10110110,
8'b10111110,
8'b11001001,
8'b11100011,
8'b11xx0001,
8'b11xx0101,
8'b11xxx111,
8'b01110110,
8'b11101001: ld_wait = 1'b0;
8'b11000000: ld_wait = zero_bit;
8'b11001000: ld_wait = !zero_bit;
8'b11010000: ld_wait = carry_bit;
8'b11011000: ld_wait = !carry_bit;
8'b11100000: ld_wait = par_bit;
8'b11101000: ld_wait = !par_bit;
8'b11110000: ld_wait = sign_bit;
8'b11111000: ld_wait = !sign_bit;
default: ld_wait = 1'b1;
endcase
end
`DEC2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b0010xxxxx110,
12'b010x11100001,
12'b010x11100011,
12'b010x11100101,
12'b1xxx0100x101,
12'b1xxx0110x111,
12'b1xxx01xxx00x,
12'b1xxx101xx0xx,
12'b010x11101001: ld_wait = 1'b0;
default: ld_wait = 1'b1;
endcase
end
`OF2A,
`IF3A,
`RD1A,
`RD2A,
`WR1A,
`WR2A,
`IF1A,
`INTA: ld_wait = 1'b1;
default: ld_wait = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* instruction register and page register control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`IF2B,
`IF3B,
`IF1B: ld_inst = 1'b1;
default: ld_inst = 1'b0;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg)
`DEC1: begin
case (inst_reg)
8'b11001011: page_sel = `CB_PAGE;
8'b11011101: page_sel = `DD_PAGE;
8'b11101101: page_sel = `ED_PAGE;
8'b11111101: page_sel = `FD_PAGE;
default: page_sel = `MAIN_PG;
endcase
end
`DEC2: begin
casex ({page_reg, inst_reg})
12'bx10011001011: page_sel = `DDCB_PG;
12'bx10111001011: page_sel = `FDCB_PG;
default: page_sel = `MAIN_PG;
endcase
end
`INTA: page_sel = `INTR_PG;
`DMA1: page_sel = `DMA_PG;
default: page_sel = `MAIN_PG;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`DEC1: ld_page = 1'b1;
`DEC2: begin
casex ({page_reg, inst_reg})
12'bx10x11001011: ld_page = 1'b1;
default: ld_page = 1'b0;
endcase
end
`INTA,
`DMA1: ld_page = 1'b1;
default: ld_page = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* next state control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or dmar_reg or intr_reg or
par_bit or sign_bit or tflg_reg or vector_int or xhlt_reg or zero_bit) begin
casex (state_reg) //synopsys parallel_case
`DEC1: begin
casex (inst_reg) //synopsys parallel_case
8'b00000010,
8'b00001010,
8'b00010010,
8'b00011010,
8'b00110100,
8'b00110101,
8'b011100xx,
8'b0111010x,
8'b01110111,
8'b010xx110,
8'b0110x110,
8'b01111110,
8'b10000110,
8'b10001110,
8'b10010110,
8'b10011110,
8'b10100110,
8'b10101110,
8'b10110110,
8'b10111110,
8'b11001001,
8'b11100011,
8'b11xx0001,
8'b11xx0101,
8'b11xxx111: state_nxt = `sADR2;
8'b11000000: state_nxt = ( !zero_bit) ? `sADR2 : `sIF1B;
8'b11001000: state_nxt = ( zero_bit) ? `sADR2 : `sIF1B;
8'b11010000: state_nxt = (!carry_bit) ? `sADR2 : `sIF1B;
8'b11011000: state_nxt = ( carry_bit) ? `sADR2 : `sIF1B;
8'b11100000: state_nxt = ( !par_bit) ? `sADR2 : `sIF1B;
8'b11101000: state_nxt = ( par_bit) ? `sADR2 : `sIF1B;
8'b11110000: state_nxt = ( !sign_bit) ? `sADR2 : `sIF1B;
8'b11111000: state_nxt = ( sign_bit) ? `sADR2 : `sIF1B;
8'b11001011,
8'b11011101,
8'b11101101,
8'b11111101: state_nxt = `sIF2B;
8'b00010000,
8'b00011000,
8'b00100010,
8'b00101010,
8'b00110010,
8'b00111010,
8'b001xx000,
8'b00xx0001,
8'b00xxx110,
8'b11000011,
8'b11000110,
8'b11001101,
8'b11001110,
8'b11010011,
8'b11010110,
8'b11011011,
8'b11011110,
8'b11100110,
8'b11101110,
8'b11110110,
8'b11111110,
8'b11xxx010,
8'b11xxx100: state_nxt = `sOF1B;
8'b01110110,
8'b11101001: state_nxt = `sPCO;
default: state_nxt = `sIF1B;
endcase
end
`IF2B: state_nxt = `sDEC2;
`DEC2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b001000000110,
12'b001000001110,
12'b001000010110,
12'b001000011110,
12'b001000100110,
12'b001000101110,
12'b001000111110,
12'b001001xxx110,
12'b001010xxx110,
12'b001011xxx110,
12'b010011100001,
12'b010011100011,
12'b010011100101,
12'b010111100001,
12'b010111100011,
12'b010111100101,
12'b1xxx01000101,
12'b1xxx01001101,
12'b1xxx01100111,
12'b1xxx01101111,
12'b1xxx01xxx000,
12'b1xxx01xxx001,
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111001,
12'b1xxx10111010,
12'b1xxx10111011: state_nxt = `sADR2;
12'b001000000xxx,
12'b001000001xxx,
12'b001000010xxx,
12'b001000011xxx,
12'b001000100xxx,
12'b001000101xxx,
12'b001000111xxx,
12'b001001xxxxxx,
12'b001010xxxxxx,
12'b001011xxxxxx,
12'b010000100011,
12'b010000101011,
12'b010000xx1001,
12'b010011111001,
12'b010100100011,
12'b010100101011,
12'b010100xx1001,
12'b010111111001,
12'b1xxx01000100,
12'b1xxx01000110,
12'b1xxx01000111,
12'b1xxx01001111,
12'b1xxx01010110,
12'b1xxx01010111,
12'b1xxx01011110,
12'b1xxx01011111,
12'b1xxx01xx0010,
12'b1xxx01xx1010: state_nxt = `sIF1B;
12'b010011101001,
12'b010111101001: state_nxt = `sPCO;
default: state_nxt = `sOF1B;
endcase
end
`OF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011010011,
12'b000011011011,
12'b010000110100,
12'b010000110101,
12'b010001110xxx,
12'b010001xxx110,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010010111110,
12'b010100110100,
12'b010100110101,
12'b010101110xxx,
12'b010101xxx110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b010110111110: state_nxt = `sADR1;
12'b0000000xx110,12'b00000010x110,12'b000000111110,//12'b000000rrr110,
12'b000011000110,
12'b000011001110,
12'b000011010110,
12'b000011011110,
12'b000011100110,
12'b000011101110,
12'b000011110110,
12'b000011111110: state_nxt = `sIF1A;
12'b000000100000: state_nxt = ( !zero_bit) ? `sPCA : `sIF1A;
12'b000000101000: state_nxt = ( zero_bit) ? `sPCA : `sIF1A;
12'b000000110000: state_nxt = (!carry_bit) ? `sPCA : `sIF1A;
12'b000000111000: state_nxt = ( carry_bit) ? `sPCA : `sIF1A;
12'b000000100010,
12'b000000101010,
12'b000000110010,
12'b000000111010,
12'b000000xx0001,
12'b000011000011,
12'b000011001101,
12'b000011xxx010,
12'b000011xxx100,
12'b010000100001,
12'b010000100010,
12'b010000101010,
12'b010000110110,
12'b010100100001,
12'b010100100010,
12'b010100101010,
12'b010100110110,
12'b1xxx01xx0011,
12'b1xxx01xx1011: state_nxt = `sOF2A;
12'b000000010000,
12'b000000011000: state_nxt = `sPCA;
12'b000000110110: state_nxt = `sWR2A;
default: state_nxt = `sIF3A;
endcase
end
`OF2A: state_nxt = `sOF2B;
`OF2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000xx0001,
12'b010000100001,
12'b010100100001: state_nxt = `sIF1A;
12'b000011000010: state_nxt = ( !zero_bit) ? `sPCA : `sIF1A;
12'b000011001010: state_nxt = ( zero_bit) ? `sPCA : `sIF1A;
12'b000011010010: state_nxt = (!carry_bit) ? `sPCA : `sIF1A;
12'b000011011010: state_nxt = ( carry_bit) ? `sPCA : `sIF1A;
12'b000011100010: state_nxt = ( !par_bit) ? `sPCA : `sIF1A;
12'b000011101010: state_nxt = ( par_bit) ? `sPCA : `sIF1A;
12'b000011110010: state_nxt = ( !sign_bit) ? `sPCA : `sIF1A;
12'b000011111010: state_nxt = ( sign_bit) ? `sPCA : `sIF1A;
12'b000011000100: state_nxt = ( !zero_bit) ? `sWR1A : `sIF1A;
12'b000011001100: state_nxt = ( zero_bit) ? `sWR1A : `sIF1A;
12'b000011010100: state_nxt = (!carry_bit) ? `sWR1A : `sIF1A;
12'b000011011100: state_nxt = ( carry_bit) ? `sWR1A : `sIF1A;
12'b000011100100: state_nxt = ( !par_bit) ? `sWR1A : `sIF1A;
12'b000011101100: state_nxt = ( par_bit) ? `sWR1A : `sIF1A;
12'b000011110100: state_nxt = ( !sign_bit) ? `sWR1A : `sIF1A;
12'b000011111100: state_nxt = ( sign_bit) ? `sWR1A : `sIF1A;
12'b000011000011: state_nxt = `sPCA;
12'b000011001101: state_nxt = `sWR1A;
12'b010000110110,
12'b010100110110: state_nxt = `sWR2A;
default: state_nxt = `sADR1;
endcase
end
`IF3A: state_nxt = `sIF3B;
`IF3B: state_nxt = `sRD2A;
`ADR1: state_nxt = `sADR2;
`ADR2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000101010,
12'b000011001001,
12'b000011100011,
12'b000011xxx000,
12'b000011xx0001,
12'b0001xxxxxxxx,
12'b010000101010,
12'b010011100001,
12'b010011100011,
12'b010100101010,
12'b010111100001,
12'b010111100011,
12'b1xxx01000101,
12'b1xxx01001101,
12'b1xxx01xx1011,
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111001,
12'b1xxx10111010,
12'b1xxx10111011: state_nxt = `sRD1A;
12'b000000100010,
12'b000011xxx111,
12'b000011xx0101,
12'b010000100010,
12'b010011100101,
12'b010100100010,
12'b010111100101,
12'b1xxx01xx0011: state_nxt = `sWR1A;
12'b000000000010,
12'b000000010010,
12'b000000110010,
12'b000001110xxx,
12'b000011010011,
12'b010001110xxx,
12'b010101110xxx,
12'b1xxx01xxx001: state_nxt = `sWR2A;
default: state_nxt = `sRD2A;
endcase
end
`RD1A: state_nxt = `sRD1B;
`RD1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: state_nxt = `sBLK1;
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111010,
12'b1xxx10111011: state_nxt = `sWR1A;
default: state_nxt = `sRD2A;
endcase
end
`RD2A: state_nxt = `sRD2B;
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: state_nxt = `sBLK1;
12'b000000001010,
12'b000000011010,
12'b000000101010,
12'b000000111010,
12'b000001xxxxxx,
12'b000001xxx110,
12'b000010000110,
12'b000010000xxx,
12'b000010001110,
12'b000010001xxx,
12'b000010010110,
12'b000010011110,
12'b000010100110,
12'b000010100xxx,
12'b000010101110,
12'b000010110110,
12'b000010110xxx,
12'b000010111110,
12'b000010111xxx,
12'b000011011011,
12'b000011xx0001,
12'b001001xxx110,
12'b001001xxxxxx,
12'b010000101010,
12'b010001xxx110,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010010111110,
12'b010011100001,
12'b010100101010,
12'b010101xxx110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b010110111110,
12'b010111100001,
12'b011001xxx110,
12'b011101xxx110,
12'b1xxx01xxx000,
12'b1xxx01xx1011: state_nxt = `sIF1A;
12'b000011001001,
12'b000011xxx000,
12'b1xxx01000101,
12'b1xxx01001101: state_nxt = `sPCA;
12'b000011100011,
12'b0001xxxxxxxx,
12'b010011100011,
12'b010111100011: state_nxt = `sWR1A;
default: state_nxt = `sWR2A;
endcase
end
`WR1A: state_nxt = `sWR1B;
`WR1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011: state_nxt = `sIF1A;
12'b1xxx10110010,
12'b1xxx10111010,
12'b1xxx10110011,
12'b1xxx10111011,
12'b1xxx10110000,
12'b1xxx10111000: state_nxt = (tflg_reg || intr_reg || dmar_reg) ? `sPCA : `sRD2A;
default: state_nxt = `sWR2A;
endcase
end
`WR2A: state_nxt = `sWR2B;
`WR2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110010,
12'b1xxx10111010,
12'b1xxx10110011,
12'b1xxx10111011,
12'b1xxx10110000,
12'b1xxx10111000: state_nxt = (tflg_reg || intr_reg || dmar_reg) ? `sPCA : `sRD2A;
default: state_nxt = `sIF1A;
endcase
end
`BLK1: state_nxt = `sBLK2;
`BLK2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110001,
12'b1xxx10111001: state_nxt = (tflg_reg || intr_reg || dmar_reg) ? `sPCA : `sRD2A;
default: state_nxt = `sIF1A;
endcase
end
`PCA: state_nxt = `sPCO;
`PCO: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000001110110: state_nxt = `sHLTA;
default: state_nxt = `sIF1A;
endcase
end
`HLTA: state_nxt = `sHLTB;
`HLTB: state_nxt = (xhlt_reg) ? `sIF1A : `sHLTA;
`IF1A: state_nxt = `sIF1B;
`IF1B: state_nxt = `sDEC1;
`INTA: state_nxt = `sINTB;
`INTB: state_nxt = (vector_int) ? `sADR1 : `sWR1A;
`DMA1: state_nxt = `sDMA2;
`DMA2: state_nxt = (dmar_reg) ? `sDMA1 : `sIF1A;
`RSTE: state_nxt = `sIF1A;
default: state_nxt = `sRSTE;
endcase
end
 
/*****************************************************************************************/
/* */
/* transaction type control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or dmar_reg or intr_reg or
par_bit or sign_bit or tflg_reg or vector_int or xhlt_reg or zero_bit) begin
casex (state_reg) //synopsys parallel_case
`IF2B: tran_sel = `TRAN_IF;
`OF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000010000,
12'b000000011000,
12'b000011010011,
12'b000011011011,
12'b010x00110100,
12'b010x00110101,
12'b010x011100xx,
12'b010x0111010x,
12'b010x01110111,
12'b010x010xx110,
12'b010x0110x110,
12'b010x01111110,
12'b010x10000110,
12'b010x10001110,
12'b010x10010110,
12'b010x10011110,
12'b010x10100110,
12'b010x10101110,
12'b010x10110110,
12'b010x10111110: tran_sel = `TRAN_IDL;
12'b000000100000: tran_sel = ( zero_bit) ? `TRAN_IF : `TRAN_IDL;
12'b000000101000: tran_sel = ( !zero_bit) ? `TRAN_IF : `TRAN_IDL;
12'b000000110000: tran_sel = ( carry_bit) ? `TRAN_IF : `TRAN_IDL;
12'b000000111000: tran_sel = (!carry_bit) ? `TRAN_IF : `TRAN_IDL;
12'b000000110110: tran_sel = `TRAN_MEM;
default: tran_sel = `TRAN_IF;
endcase
end
`OF2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000xx0001,
12'b010000100001,
12'b010100100001: tran_sel = `TRAN_IF;
12'b010000110110,
12'b010100110110: tran_sel = `TRAN_MEM;
12'b000011001101: tran_sel = `TRAN_STK;
12'b000011000010: tran_sel = ( !zero_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011001010: tran_sel = ( zero_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011010010: tran_sel = (!carry_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011011010: tran_sel = ( carry_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011100010: tran_sel = ( !par_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011101010: tran_sel = ( par_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011110010: tran_sel = ( !sign_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011111010: tran_sel = ( sign_bit) ? `TRAN_IDL : `TRAN_IF;
12'b000011000100: tran_sel = ( !zero_bit) ? `TRAN_STK : `TRAN_IF;
12'b000011001100: tran_sel = ( zero_bit) ? `TRAN_STK : `TRAN_IF;
12'b000011010100: tran_sel = (!carry_bit) ? `TRAN_STK : `TRAN_IF;
12'b000011011100: tran_sel = ( carry_bit) ? `TRAN_STK : `TRAN_IF;
12'b000011100100: tran_sel = ( !par_bit) ? `TRAN_STK : `TRAN_IF;
12'b000011101100: tran_sel = ( par_bit) ? `TRAN_STK : `TRAN_IF;
12'b000011110100: tran_sel = ( !sign_bit) ? `TRAN_STK : `TRAN_IF;
12'b000011111100: tran_sel = ( sign_bit) ? `TRAN_STK : `TRAN_IF;
default: tran_sel = `TRAN_IDL;
endcase
end
`IF3B: tran_sel = `TRAN_MEM;
`ADR2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011010011,
12'b000011011011,
12'b1xxx01xxx000,
12'b1xxx01xxx001,
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: tran_sel = `TRAN_IO;
12'b000011001001,
12'b000011xxx000,
12'b000011xxx111,
12'b000011xx0001,
12'b000011xx0101,
12'b010011100001,
12'b010011100101,
12'b010111100001,
12'b010111100101,
12'b1xxx01000101,
12'b1xxx01001101: tran_sel = `TRAN_STK;
default: tran_sel = `TRAN_MEM;
endcase
end
`RD1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: tran_sel = `TRAN_IDL;
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: tran_sel = `TRAN_IO;
12'b000011001001,
12'b000011xxx000,
12'b000011xx0001,
12'b010011100001,
12'b010111100001,
12'b1xxx01000101,
12'b1xxx01001101: tran_sel = `TRAN_STK;
default: tran_sel = `TRAN_MEM;
endcase
end
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001001,
12'b000011xxx000,
12'b1xxx01000101,
12'b1xxx01001101,
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: tran_sel = `TRAN_IDL;
12'b000000001010,
12'b000000011010,
12'b000000101010,
12'b000000111010,
12'b000001xxx110,
12'b000010000110,
12'b000010001110,
12'b000010010110,
12'b000010011110,
12'b000010100110,
12'b000010101110,
12'b000010110110,
12'b000010111110,
12'b000011011011,
12'b000011xx0001,
12'b001001xxx110,
12'b010000101010,
12'b010001xxx110,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010010111110,
12'b010011100001,
12'b010100101010,
12'b010101xxx110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b010110111110,
12'b010111100001,
12'b011001xxx110,
12'b011101xxx110,
12'b1xxx01xxx000,
12'b1xxx01xx1011: tran_sel = `TRAN_IF;
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: tran_sel = `TRAN_IO;
12'b000011100011,
12'b0001xxxxxxxx,
12'b010011100011,
12'b010111100011: tran_sel = `TRAN_STK;
default: tran_sel = `TRAN_MEM;
endcase
end
`WR1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110010,
12'b1xxx10111010: tran_sel = (tflg_reg || intr_reg || dmar_reg) ? `TRAN_IDL : `TRAN_IO;
12'b1xxx10110000,
12'b1xxx10111000,
12'b1xxx10110011,
12'b1xxx10111011: tran_sel = (tflg_reg || intr_reg || dmar_reg) ? `TRAN_IDL : `TRAN_MEM;
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011: tran_sel = `TRAN_IF;
12'b000000100010,
12'b010000100010,
12'b010100100010,
12'b1xxx01xx0011: tran_sel = `TRAN_MEM;
default: tran_sel = `TRAN_STK;
endcase
end
`WR2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110010,
12'b1xxx10111010: tran_sel = (tflg_reg || intr_reg || dmar_reg) ? `TRAN_IDL : `TRAN_IO;
12'b1xxx10110000,
12'b1xxx10111000,
12'b1xxx10110011,
12'b1xxx10111011: tran_sel = (tflg_reg || intr_reg || dmar_reg) ? `TRAN_IDL : `TRAN_MEM;
default: tran_sel = `TRAN_IF;
endcase
end
`BLK2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110001,
12'b1xxx10111001: tran_sel = (tflg_reg || intr_reg || dmar_reg) ? `TRAN_IDL : `TRAN_MEM;
default: tran_sel = `TRAN_IF;
endcase
end
`PCO: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000001110110: tran_sel = `TRAN_IDL;
default: tran_sel = `TRAN_IF;
endcase
end
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01000101,
12'b1xxx01001101,
12'b000011110011,
12'b0001xxxxxxxx: tran_sel = `TRAN_IF;
default: tran_sel = (dmar_reg) ? `TRAN_IDL :
(intr_reg) ? `TRAN_IAK : `TRAN_IF;
endcase
end
`HLTB: tran_sel = (xhlt_reg) ? `TRAN_IF : `TRAN_IDL;
`INTB: tran_sel = (vector_int) ? `TRAN_IDL : `TRAN_MEM;
`DMA2: tran_sel = (dmar_reg) ? `TRAN_IDL : `TRAN_IF;
`RSTE: tran_sel = `TRAN_IF;
default: tran_sel = `TRAN_RSTVAL;
endcase
end
 
/*****************************************************************************************/
/* */
/* special transaction identifiers */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or xhlt_reg) begin
casex (state_reg)
`PCO,
`HLTB: begin
casex ({page_reg, inst_reg})
12'b000001110110: halt_nxt = !xhlt_reg;
default: halt_nxt = 1'b0;
endcase
end
default: halt_nxt = 1'b0;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg)
`RD2B: begin
casex ({page_reg, inst_reg})
12'b1xxx01001101: reti_nxt = 1'b1;
default: reti_nxt = 1'b0;
endcase
end
default: reti_nxt = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* output inhibit */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or dmar_reg or xhlt_reg) begin
casex (state_reg)
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01000101,
12'b1xxx01001101,
12'b000011110011,
12'b0001xxxxxxxx: output_inh = 1'b0;
default: output_inh = dmar_reg;
endcase
end
`DMA2: output_inh = dmar_reg;
`PCO,
`HLTB: begin
casex ({page_reg, inst_reg})
12'b000001110110: output_inh = !xhlt_reg;
default: output_inh = 1'b0;
endcase
end
default: output_inh = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* address output control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or par_bit or sign_bit or
vector_int or zero_bit) begin
casex (state_reg) //synopsys parallel_case
`DEC1: begin
casex (inst_reg) //synopsys parallel_case
8'b00000010,
8'b00001010,
8'b00010010,
8'b00011010,
8'b11101001,
8'b11xx0101,
8'b11xxx111: add_sel = `ADD_ALU;
8'b00110100,
8'b00110101,
8'b00110110,
8'b011100xx,
8'b0111010x,
8'b01110111,
8'b010xx110,
8'b0110x110,
8'b01111110,
8'b10000110,
8'b10001110,
8'b10010110,
8'b10011110,
8'b10100110,
8'b10101110,
8'b10110110,
8'b10111110: add_sel = `ADD_HL;
8'b11000000: add_sel = ( !zero_bit) ? `ADD_SP : `ADD_PC;
8'b11001000: add_sel = ( zero_bit) ? `ADD_SP : `ADD_PC;
8'b11010000: add_sel = (!carry_bit) ? `ADD_SP : `ADD_PC;
8'b11011000: add_sel = ( carry_bit) ? `ADD_SP : `ADD_PC;
8'b11100000: add_sel = ( !par_bit) ? `ADD_SP : `ADD_PC;
8'b11101000: add_sel = ( par_bit) ? `ADD_SP : `ADD_PC;
8'b11110000: add_sel = ( !sign_bit) ? `ADD_SP : `ADD_PC;
8'b11111000: add_sel = ( sign_bit) ? `ADD_SP : `ADD_PC;
8'b11xx0001,
8'b11100011,
8'b11001001: add_sel = `ADD_SP;
default: add_sel = `ADD_PC;
endcase
end
`DEC2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b010011100101,
12'b010011101001,
12'b010111100101,
12'b010111101001,
12'b1xxx01xxx000,
12'b1xxx01xxx001,
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111001,
12'b1xxx10111010,
12'b1xxx10111011: add_sel = `ADD_ALU;
12'b001000000110,
12'b001000001110,
12'b001000010110,
12'b001000011110,
12'b001000100110,
12'b001000101110,
12'b001000111110,
12'b001001xxx110,
12'b001010xxx110,
12'b001011xxx110,
12'b1xxx01100111,
12'b1xxx01101111: add_sel = `ADD_HL;
12'b010011100001,
12'b010011100011,
12'b010111100001,
12'b010111100011,
12'b1xxx01000101,
12'b1xxx01001101: add_sel = `ADD_SP;
default: add_sel = `ADD_PC;
endcase
end
`OF2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001101,
12'b010000110110,
12'b010100110110: add_sel = `ADD_ALU;
12'b000011000100: add_sel = ( !zero_bit) ? `ADD_ALU : `ADD_PC;
12'b000011001100: add_sel = ( zero_bit) ? `ADD_ALU : `ADD_PC;
12'b000011010100: add_sel = (!carry_bit) ? `ADD_ALU : `ADD_PC;
12'b000011011100: add_sel = ( carry_bit) ? `ADD_ALU : `ADD_PC;
12'b000011100100: add_sel = ( !par_bit) ? `ADD_ALU : `ADD_PC;
12'b000011101100: add_sel = ( par_bit) ? `ADD_ALU : `ADD_PC;
12'b000011110100: add_sel = ( !sign_bit) ? `ADD_ALU : `ADD_PC;
12'b000011111100: add_sel = ( sign_bit) ? `ADD_ALU : `ADD_PC;
default: add_sel = `ADD_PC;
endcase
end
`IF3A,
`ADR1,
`RD1A: add_sel = `ADD_ALU;
`RD2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011100011,
12'b0001xxxxxxxx,
12'b010000110100,
12'b010000110101,
12'b010011100011,
12'b010100110100,
12'b010100110101,
12'b010111100011,
12'b011000000110,
12'b011000001110,
12'b011000010110,
12'b011000011110,
12'b011000100110,
12'b011000101110,
12'b011000111110,
12'b011010xxx110,
12'b011011xxx110,
12'b011100000110,
12'b011100001110,
12'b011100010110,
12'b011100011110,
12'b011100100110,
12'b011100101110,
12'b011100111110,
12'b011110xxx110,
12'b011111xxx110,
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111001,
12'b1xxx10111010,
12'b1xxx10111011: add_sel = `ADD_ALU;
12'b000000110100,
12'b000000110101,
12'b000000xxx100,
12'b000000xxx101,
12'b001000000110,
12'b001000000xxx,
12'b001000001110,
12'b001000001xxx,
12'b001000010110,
12'b001000010xxx,
12'b001000011110,
12'b001000011xxx,
12'b001000100110,
12'b001000100xxx,
12'b001000101110,
12'b001000101xxx,
12'b001000111110,
12'b001000111xxx,
12'b001010xxx110,
12'b001010xxxxxx,
12'b001011xxx110,
12'b001011xxxxxx,
12'b1xxx01100111,
12'b1xxx01101111: add_sel = `ADD_HL;
default: add_sel = `ADD_PC;
endcase
end
`WR1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011: add_sel = `ADD_PC;
default: add_sel = `ADD_ALU;
endcase
end
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001101,
12'b000011xxx100,
12'b000011xxx111,
12'b0001xxxxxxxx,
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111010,
12'b1xxx10111011: add_sel = `ADD_ALU;
default: add_sel = `ADD_PC;
endcase
end
`BLK1: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110001,
12'b1xxx10111001: add_sel = `ADD_ALU;
default: add_sel = `ADD_PC;
endcase
end
`PCA: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000010000,
12'b000000011000,
12'b0000001xx000,
12'b000011000011,
12'b000011001001,
12'b000011xxx000,
12'b000011xxx010,
12'b1xxx01000101,
12'b1xxx01001101: add_sel = `ADD_PC;
default: add_sel = `ADD_ALU;
endcase
end
`IF1A: add_sel = `ADD_PC;
`INTA: add_sel = (vector_int) ? `ADD_PC : `ADD_ALU;
`DMA1: add_sel = `ADD_PC;
default: add_sel = `ADD_RSTVAL;
endcase
end
 
/*****************************************************************************************/
/* */
/* program counter control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or par_bit or sign_bit or
tflg_reg or zero_bit) begin
casex (state_reg) //synopsys parallel_case
`DEC1: begin
casex (inst_reg) //synopsys parallel_case
8'b00000000,
8'b00000111,
8'b00001000,
8'b00001111,
8'b00010111,
8'b00011111,
8'b00100111,
8'b00101111,
8'b00110111,
8'b00111111,
8'b000xx10x,
8'b0010x10x,
8'b0011110x,
8'b00xx0011,
8'b00xx1001,
8'b00xx1011,
8'b010xx0xx,
8'b0110x0xx,
8'b011110xx,
8'b010xx10x,
8'b0110x10x,
8'b0111110x,
8'b010xx111,
8'b0110x111,
8'b01111111,
8'b10xxx0xx,
8'b10xxx10x,
8'b10xxx111,
8'b11011001,
8'b11101011,
8'b11111001,
8'b11111011: pc_sel = `PC_NILD;
8'b01110110,
8'b11xxx111,
8'b00000010,
8'b00001010,
8'b00010010,
8'b00011010,
8'b00110100,
8'b00110101,
8'b011100xx,
8'b0111010x,
8'b01110111,
8'b010xx110,
8'b0110x110,
8'b01111110,
8'b10000110,
8'b10001110,
8'b10010110,
8'b10011110,
8'b10100110,
8'b10101110,
8'b10110110,
8'b10111110,
8'b11xx0001,
8'b11xx0101,
8'b11100011: pc_sel = `PC_NUL;
default: pc_sel = `PC_LD;
endcase
end
`DEC2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b010011001011, //DD+CB prefix
12'b010111001011, //FD+CB prefix
12'b010000100001,
12'b010000100010,
12'b010000101010,
12'b010000110100,
12'b010000110101,
12'b010000110110,
12'b010001110xxx,
12'b010001xxx110,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010010111110,
12'b010011101001,
12'b010100100001,
12'b010100100010,
12'b010100101010,
12'b010100110100,
12'b010100110101,
12'b010100110110,
12'b010101110xxx,
12'b010101xxx110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b010110111110,
12'b010111101001,
12'b011000000110,
12'b011000001110,
12'b011000010110,
12'b011000011110,
12'b011000100110,
12'b011000101110,
12'b011000111110,
12'b011001xxx110,
12'b011010xxx110,
12'b011011xxx110,
12'b011100000110,
12'b011100001110,
12'b011100010110,
12'b011100011110,
12'b011100100110,
12'b011100101110,
12'b011100111110,
12'b011101xxx110,
12'b011110xxx110,
12'b011111xxx110,
12'b1xxx01000101,
12'b1xxx01001101,
12'b1xxx01xx0011,
12'b1xxx01xx1011: pc_sel = `PC_LD;
12'b0010000000xx,12'b00100000010x,12'b001000000111,//12'b001000000rrr,
12'b0010000010xx,12'b00100000110x,12'b001000001111,//12'b001000001rrr,
12'b0010000100xx,12'b00100001010x,12'b001000010111,//12'b001000010rrr,
12'b0010000110xx,12'b00100001110x,12'b001000011111,//12'b001000011rrr,
12'b0010001000xx,12'b00100010010x,12'b001000100111,//12'b001000100rrr,
12'b0010001010xx,12'b00100010110x,12'b001000101111,//12'b001000101rrr,
12'b0010001110xx,12'b00100011110x,12'b001000111111,//12'b001000111rrr,
12'b001001xxx0xx,12'b001001xxx10x,12'b001001xxx111,//12'b001001xxxrrr,
12'b001010xxx0xx,12'b001010xxx10x,12'b001010xxx111,//12'b001010xxxrrr,
12'b001011xxx0xx,12'b001011xxx10x,12'b001011xxx111,//12'b001011xxxrrr,
12'b010000100011,
12'b010000101011,
12'b010000xx1001,
12'b010011111001,
12'b010100100011,
12'b010100101011,
12'b010100xx1001,
12'b010111111001,
12'b1xxx01000100,
12'b1xxx01000110,
12'b1xxx01000111,
12'b1xxx01001111,
12'b1xxx01010110,
12'b1xxx01010111,
12'b1xxx01011110,
12'b1xxx01011111,
12'b1xxx01xx0010,
12'b1xxx01xx1010: pc_sel = `PC_NILD;
default: pc_sel = `PC_NUL;
endcase
end
`OF2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100010,
12'b000000101010,
12'b000000110010,
12'b000000111010,
12'b000000xx0001,
12'b000011000011,
12'b000011001101,
12'b000011xxx010,
12'b000011xxx100,
12'b010000100001,
12'b010000100010,
12'b010000101010,
12'b010000110110,
12'b010100100001,
12'b010100100010,
12'b010100101010,
12'b010100110110,
12'b1xxx01xx0011,
12'b1xxx01xx1011: pc_sel = `PC_LD;
default: pc_sel = `PC_NUL;
endcase
end
`IF3A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b01xx11001011: pc_sel = `PC_LD;
default: pc_sel = `PC_NUL;
endcase
end
`WR2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001101,
12'b000011xxx100,
12'b000011xxx111,
12'b0001xxxxxxxx: pc_sel = `PC_LD;
default: pc_sel = `PC_NUL;
endcase
end
// `ADR1: pc_sel = `PC_NUL;
`RD1B,
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111001,
12'b1xxx10111010,
12'b1xxx10111011: pc_sel = `PC_INT;
default: pc_sel = `PC_NUL;
endcase
end
`PCA: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000010000: pc_sel = (tflg_reg) ? `PC_NUL : `PC_LD;
12'b000000011000,
12'b0000001xx000,
12'b000011000011,
12'b000011001001,
12'b000011xxx000,
12'b000011xxx010,
12'b1xxx01000101,
12'b1xxx01001101: pc_sel = `PC_LD;
default: pc_sel = `PC_NUL;
endcase
end
`PCO: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011101001,
12'b010011101001,
12'b010111101001,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111001,
12'b1xxx10111010,
12'b1xxx10111011: pc_sel = `PC_LD;
default: pc_sel = `PC_NUL;
endcase
end
`IF1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01000101,
12'b1xxx01001101,
12'b0001xxxxxxxx: pc_sel = `PC_LD;
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111001,
12'b1xxx10111010,
12'b1xxx10111011: pc_sel = `PC_NILD2;
default: pc_sel = `PC_NILD;
endcase
end
`HLTA: pc_sel = `PC_INT;
`DMA1: pc_sel = `PC_DMA;
default: pc_sel = `PC_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* interrupt ack and dma ack */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01000101,
12'b1xxx01001101,
12'b000011110011,
12'b0001xxxxxxxx: ld_inta = 1'b0;
default: ld_inta = 1'b1;
endcase
end
default: ld_inta = 1'b0;
endcase
end
 
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01000101,
12'b1xxx01001101,
12'b000011110011,
12'b0001xxxxxxxx: ld_dmaa = 1'b0;
default: ld_dmaa = 1'b1;
endcase
end
`HLTB,
`DMA2: ld_dmaa = 1'b1;
default: ld_dmaa = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* data input register control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`OF1B: di_ctl = `DI_DI10;
`OF2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b010000110110,
12'b010100110110: di_ctl = `DI_DI0;
default: di_ctl = `DI_DI1;
endcase
end
`RD1B: di_ctl = `DI_DI0;
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000101010,
12'b000011001001,
12'b010x00101010,
12'b010x11100001,
12'b010x11100011,
12'b000011100011,
12'b1xxx01000101,
12'b1xxx01001101,
12'b1xxx01xx1011,
12'b000011xxx000,
12'b000011xx0001,
12'b0001xxxxxxxx: di_ctl = `DI_DI1;
default: di_ctl = `DI_DI0;
endcase
end
`INTB: di_ctl = `DI_DI0;
default: di_ctl = `DI_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* data output register control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`WR1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001101,
12'b010x11100101,
12'b000011xxx100,
12'b000011xx0101,
12'b000011xxx111,
12'b0001xxxxxxxx: do_ctl = `DO_MSB;
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: do_ctl = `DO_IO;
default: do_ctl = `DO_LSB;
endcase
end
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100010,
12'b010x00100010,
12'b010x11100011,
12'b000011100011,
12'b1xxx01xx0011: do_ctl = `DO_MSB;
12'b000011010011,
12'b1xxx0x0xx001,
12'b1xxx0x10x001,
12'b1xxx0x111001,
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: do_ctl = `DO_IO;
default: do_ctl = `DO_LSB;
endcase
end
default: do_ctl = `DO_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* alu operation control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or par_bit or sign_bit or
zero_bit) begin
casex (state_reg) //synopsys parallel_case
`DEC1: begin
casex (inst_reg) //synopsys parallel_case
8'b00xx0011,
8'b00xx1001,
8'b00xx1011,
8'b11100011,
8'b11xx0101,
8'b11xxx111: aluop_sel = `ALUOP_ADD;
8'b10001xxx: aluop_sel = `ALUOP_BADC;
8'b00010000,
8'b00xxx100,
8'b10000xxx: aluop_sel = `ALUOP_BADD;
8'b10100xxx: aluop_sel = `ALUOP_BAND;
8'b00xxx101: aluop_sel = `ALUOP_BDEC;
8'b10110xxx: aluop_sel = `ALUOP_BOR;
8'b10011xxx: aluop_sel = `ALUOP_BSBC;
8'b10010xxx,
8'b10111xxx: aluop_sel = `ALUOP_BSUB;
8'b00101111,
8'b10101xxx: aluop_sel = `ALUOP_BXOR;
8'b00111111: aluop_sel = `ALUOP_CCF;
8'b00100111: aluop_sel = `ALUOP_DAA;
8'b00010111: aluop_sel = `ALUOP_RLA;
8'b00000111: aluop_sel = `ALUOP_RLCA;
8'b00011111: aluop_sel = `ALUOP_RRA;
8'b00001111: aluop_sel = `ALUOP_RRCA;
8'b00110111: aluop_sel = `ALUOP_SCF;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`IF2B: aluop_sel = `ALUOP_ADD;
`DEC2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01xx1010: aluop_sel = `ALUOP_ADC;
12'b010000100011,
12'b010000101011,
12'b010000xx1001,
12'b010011100101,
12'b010100100011,
12'b010100101011,
12'b010100xx1001,
12'b010111100101: aluop_sel = `ALUOP_ADD;
12'b1xxx01010111,
12'b1xxx01011111: aluop_sel = `ALUOP_APAS;
//12'b001001xxx110,
//12'b001001xxxrrr,
12'b001001xxxxxx,
//12'b001010xxx110,
//12'b001010xxxrrr,
12'b001010xxxxxx: aluop_sel = `ALUOP_BAND;
//12'b001011xxx110,
//12'b001011xxxrrr,
12'b001011xxxxxx: aluop_sel = `ALUOP_BOR;
12'b1xxx01000100: aluop_sel = `ALUOP_BSUB;
//12'b001000010110,
//12'b001000010rrr,
12'b001000010xxx: aluop_sel = `ALUOP_RL;
//12'b001000000110,
//12'b001000000rrr,
12'b001000000xxx: aluop_sel = `ALUOP_RLC;
//12'b001000011110,
//12'b001000011rrr,
12'b001000011xxx: aluop_sel = `ALUOP_RR;
//12'b001000001110,
//12'b001000001rrr,
12'b001000001xxx: aluop_sel = `ALUOP_RRC;
12'b1xxx01xx0010: aluop_sel = `ALUOP_SBC;
//12'b001000100110,
//12'b001000100rrr,
12'b001000100xxx: aluop_sel = `ALUOP_SLA;
//12'b001000101110,
//12'b001000101rrr,
12'b001000101xxx: aluop_sel = `ALUOP_SRA;
//12'b001000111110,
//12'b001000111rrr,
12'b001000111xxx: aluop_sel = `ALUOP_SRL;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`OF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100000: aluop_sel = ( !zero_bit) ? `ALUOP_ADS : `ALUOP_ADD;
12'b000000101000: aluop_sel = ( zero_bit) ? `ALUOP_ADS : `ALUOP_ADD;
12'b000000110000: aluop_sel = (!carry_bit) ? `ALUOP_ADS : `ALUOP_ADD;
12'b000000111000: aluop_sel = ( carry_bit) ? `ALUOP_ADS : `ALUOP_ADD;
12'b000000010000,
12'b000000011000: aluop_sel = `ALUOP_ADS;
12'b000000110110: aluop_sel = `ALUOP_PASS;
default: aluop_sel = `ALUOP_ADD;
endcase
end
`OF2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b010000110110,
12'b010100110110: aluop_sel = `ALUOP_ADS;
default: aluop_sel = `ALUOP_ADD;
endcase
end
`OF2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000xx0001,
12'b010000100001,
12'b010100100001: aluop_sel = `ALUOP_ADD;
12'b000011000010,
12'b000011000100: aluop_sel = ( !zero_bit) ? `ALUOP_PASS : `ALUOP_ADD;
12'b000011001010,
12'b000011001100: aluop_sel = ( zero_bit) ? `ALUOP_PASS : `ALUOP_ADD;
12'b000011010010,
12'b000011010100: aluop_sel = (!carry_bit) ? `ALUOP_PASS : `ALUOP_ADD;
12'b000011011010,
12'b000011011100: aluop_sel = ( carry_bit) ? `ALUOP_PASS : `ALUOP_ADD;
12'b000011100010,
12'b000011100100: aluop_sel = ( !par_bit) ? `ALUOP_PASS : `ALUOP_ADD;
12'b000011101010,
12'b000011101100: aluop_sel = ( par_bit) ? `ALUOP_PASS : `ALUOP_ADD;
12'b000011110010,
12'b000011110100: aluop_sel = ( !sign_bit) ? `ALUOP_PASS : `ALUOP_ADD;
12'b000011111010,
12'b000011111100: aluop_sel = ( sign_bit) ? `ALUOP_PASS : `ALUOP_ADD;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`IF3A: aluop_sel = `ALUOP_ADS;
`ADR1: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100010,
12'b000000101010,
12'b000000110010,
12'b000000111010,
12'b000011010011,
12'b000011011011,
12'b0001xxxxxxxx,
12'b010000100010,
12'b010000101010,
12'b010100100010,
12'b010100101010,
12'b1xxx01xx0011,
12'b1xxx01xx1011: aluop_sel = `ALUOP_PASS;
default: aluop_sel = `ALUOP_ADS;
endcase
end
`ADR2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10111000,
12'b1xxx10111001: aluop_sel = `ALUOP_ADD;
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: aluop_sel = `ALUOP_BADD;
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: aluop_sel = `ALUOP_BAND;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`RD1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111010,
12'b1xxx10111011: aluop_sel = `ALUOP_PASS;
default: aluop_sel = `ALUOP_ADD;
endcase
end
`RD1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: aluop_sel = `ALUOP_BSUB;
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: aluop_sel = `ALUOP_PASS;
default: aluop_sel = `ALUOP_BAND;
endcase
end
`RD2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001001,
12'b000011xxx000,
12'b000011xx0001,
12'b0001xxxxxxxx,
12'b010011100001,
12'b010111100001,
12'b1xxx01000101,
12'b1xxx01001101,
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10110000,
12'b1xxx10110010,
12'b1xxx10111000,
12'b1xxx10111010: aluop_sel = `ALUOP_ADD;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000xxx100,//12'b000000110100,12'b000000rrr100,
12'b010000110100,
12'b010100110100: aluop_sel = `ALUOP_BADD;
12'b001010xxxxxx,//12'b001010xxx110,12'b001010xxxrrr,
12'b011010xxx110,
12'b011110xxx110,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: aluop_sel = `ALUOP_BAND;
12'b000000xxx101,//12'b000000110101,12'b000000rrr101,
12'b010000110101,
12'b010100110101: aluop_sel = `ALUOP_BDEC;
12'b001011xxxxxx,//12'b001011xxx110,12'b001011xxxrrr,
12'b011011xxx110,
12'b011111xxx110: aluop_sel = `ALUOP_BOR;
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: aluop_sel = `ALUOP_BSUB;
12'b000011001001,
12'b000011100011,
12'b000011xxx000,
12'b0001xxxxxxxx,
12'b010011100011,
12'b010111100011,
12'b1xxx01000101,
12'b1xxx01001101,
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: aluop_sel = `ALUOP_PASS;
12'b001000010xxx,//12'b001000010110,12'b001000010rrr,
12'b011000010110,
12'b011100010110: aluop_sel = `ALUOP_RL;
12'b001000000xxx,//12'b001000000110,12'b001000000rrr,
12'b011000000110,
12'b011100000110: aluop_sel = `ALUOP_RLC;
12'b1xxx01101111: aluop_sel = `ALUOP_RLD1;
12'b001000011xxx,//12'b001000011110,12'b001000011rrr,
12'b011000011110,
12'b011100011110: aluop_sel = `ALUOP_RR;
12'b001000001xxx,//12'b001000001110,12'b001000001rrr,
12'b011000001110,
12'b011100001110: aluop_sel = `ALUOP_RRC;
12'b1xxx01100111: aluop_sel = `ALUOP_RRD1;
12'b001000100xxx,//12'b001000100110,12'b001000100rrr,
12'b011000100110,
12'b011100100110: aluop_sel = `ALUOP_SLA;
12'b001000101xxx,//12'b001000101110,12'b001000101rrr,
12'b011000101110,
12'b011100101110: aluop_sel = `ALUOP_SRA;
12'b001000111xxx,//12'b001000111110,12'b001000111rrr,
12'b011000111110,
12'b011100111110: aluop_sel = `ALUOP_SRL;
default: aluop_sel = `ALUOP_ADD;
endcase
end
`WR1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: aluop_sel = `ALUOP_PASS;
default: aluop_sel = `ALUOP_ADD;
endcase
end
`WR1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10111000: aluop_sel = `ALUOP_ADD;
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: aluop_sel = `ALUOP_BADD;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111011: aluop_sel = `ALUOP_ADD;
12'b000011xxx111,
12'b0001xxxxxxxx: aluop_sel = `ALUOP_APAS;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`WR2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: aluop_sel = `ALUOP_BADD;
default: aluop_sel = `ALUOP_ADD;
endcase
end
// `BLK1,
// `BLK2,
// `PCA,
// `PCO: aluop_sel = `ALUOP_ADD;
`IF1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10110000,
12'b1xxx10110010,
12'b1xxx10111000,
12'b1xxx10111010: aluop_sel = `ALUOP_ADD;
12'b000010001xxx,
12'b000011001110,
12'b010x10001110: aluop_sel = `ALUOP_BADC;
12'b000010000xxx,
12'b000011000110,
12'b010x10000110,
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: aluop_sel = `ALUOP_BADD;
12'b000010100xxx,
12'b001001xxxxxx,
12'b010x10100110,
12'b011x01xxx110,
12'b000011100110,
12'b1xxx01xxx000: aluop_sel = `ALUOP_BAND;
12'b000010110xxx,
12'b010x10110110,
12'b000011110110: aluop_sel = `ALUOP_BOR;
12'b000010011xxx,
12'b010x10011110,
12'b000011011110: aluop_sel = `ALUOP_BSBC;
12'b000010010xxx,
12'b000010111xxx,
12'b000011010110,
12'b010x10010110,
12'b010x10111110,
12'b000011111110: aluop_sel = `ALUOP_BSUB;
12'b000010101xxx,
12'b010x10101110,
12'b000011101110: aluop_sel = `ALUOP_BXOR;
12'b1xxx01101111: aluop_sel = `ALUOP_RLD2;
12'b1xxx01100111: aluop_sel = `ALUOP_RRD2;
default: aluop_sel = `ALUOP_PASS;
endcase
end
`INTB: aluop_sel = `ALUOP_PASS;
default: aluop_sel = `ALUOP_ADD;
endcase
end
 
/*****************************************************************************************/
/* */
/* alu a input control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or par_bit or sign_bit or
tflg_reg or zero_bit) begin
casex (state_reg) //synopsys parallel_case
`DEC1: begin
casex (inst_reg) //synopsys parallel_case
8'b10000xxx,
8'b10001xxx,
8'b10010xxx,
8'b10011xxx,
8'b10100xxx,
8'b10101xxx,
8'b10110xxx,
8'b10111xxx: alua_sel = `ALUA_AA;
8'b00100111: alua_sel = `ALUA_DAA;
8'b00xx1001: alua_sel = `ALUA_HL;
8'b00010000,
8'b00101111,
8'b00xxx101,
8'b00xx1011,
8'b11xx0101,
8'b11xxx111: alua_sel = `ALUA_M1;
default: alua_sel = `ALUA_ONE;
endcase
end
// `IF2B: alua_sel = `ALUA_ONE;
`DEC2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01xx0010,
12'b1xxx01xx1010: alua_sel = `ALUA_HL;
12'b1xxx01010111: alua_sel = `ALUA_II;
12'b010000xx1001: alua_sel = `ALUA_IX;
12'b010100xx1001: alua_sel = `ALUA_IY;
12'b010000101011,
12'b010011100101,
12'b010100101011,
12'b010111100101: alua_sel = `ALUA_M1;
12'b010000100011,
12'b010100100011: alua_sel = `ALUA_ONE;
12'b1xxx01011111: alua_sel = `ALUA_RR;
12'b1xxx01000100: alua_sel = `ALUA_ZER;
default: alua_sel = `ALUA_BIT;
endcase
end
`OF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100000: alua_sel = ( !zero_bit) ? `ALUA_PC : `ALUA_ONE;
12'b000000101000: alua_sel = ( zero_bit) ? `ALUA_PC : `ALUA_ONE;
12'b000000110000: alua_sel = (!carry_bit) ? `ALUA_PC : `ALUA_ONE;
12'b000000111000: alua_sel = ( carry_bit) ? `ALUA_PC : `ALUA_ONE;
12'b000000010000,
12'b000000011000: alua_sel = `ALUA_PC;
default: alua_sel = `ALUA_ONE;
endcase
end
`OF2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b010000110110: alua_sel = `ALUA_IX;
12'b010100110110: alua_sel = `ALUA_IY;
default: alua_sel = `ALUA_M1;
endcase
end
// `OF2B: alua_sel = `ALUA_ONE;
`IF3A: alua_sel = (page_reg[0]) ? `ALUA_IY : `ALUA_IX;
`ADR1: alua_sel = (page_reg[2]) ? ((page_reg[0]) ? `ALUA_IY : `ALUA_IX) : `ALUA_M1;
`ADR2: alua_sel = `ALUA_M1;
// `RD1A: alua_sel = `ALUA_ONE;
`RD1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: alua_sel = `ALUA_AA;
default: alua_sel = `ALUA_M1;
endcase
end
`RD2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b0001xxxxxxxx,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10111000,
12'b1xxx10111010: alua_sel = `ALUA_M1;
default: alua_sel = `ALUA_ONE;
endcase
end
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01100111,
12'b1xxx01101111,
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: alua_sel = `ALUA_AA;
12'b001010xxxxxx,//12'b001010xxx110,12'b001010xxxrrr,
12'b001011xxxxxx,//12'b001011xxx110,12'b001011xxxrrr,
12'b011010xxx110,
12'b011011xxx110,
12'b011110xxx110,
12'b011111xxx110: alua_sel = `ALUA_BIT;
12'b000000xxx101,//12'b000000110101,12'b000000rrr101,
12'b010000110101,
12'b010100110101,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: alua_sel = `ALUA_M1;
default: alua_sel = `ALUA_ONE;
endcase
end
`WR1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100010,
12'b000011100011,
12'b010000100010,
12'b010011100011,
12'b010100100010,
12'b010111100011,
12'b1xxx01xx0011,
12'b1xxx10100000,
12'b1xxx10100011,
12'b1xxx10110000,
12'b1xxx10110011: alua_sel = `ALUA_ONE;
default: alua_sel = `ALUA_M1;
endcase
end
`WR1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110000,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111010,
12'b1xxx10111011: alua_sel = `ALUA_M1;
default: alua_sel = `ALUA_ONE;
endcase
end
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b0001xxxxxxxx: alua_sel = `ALUA_INT;
12'b1xxx10101000,
12'b1xxx10101011,
12'b1xxx10111000,
12'b1xxx10111011: alua_sel = `ALUA_M1;
12'b000011xxx111: alua_sel = `ALUA_RST;
default: alua_sel = `ALUA_ONE;
endcase
end
`WR2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111010,
12'b1xxx10111011: alua_sel = `ALUA_M1;
default: alua_sel = `ALUA_ONE;
endcase
end
`BLK1: begin
/*casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10101001,
12'b1xxx10111001: alua_sel = `ALUA_NEG1;
12'b1xxx10100001,
12'b1xxx10110001: alua_sel = `ALUA_ONE;
default: alua_sel = `ALUA_ONE;
endcase*/
alua_sel = (inst_reg[3]) ? `ALUA_M1 : `ALUA_ONE;
end
`BLK2: begin
/*casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110001,
12'b1xxx10111001: alua_sel = `ALUA_NEG1;
12'b1xxx10100001,
12'b1xxx10101001: alua_sel = `ALUA_ONE;
default: alua_sel = `ALUA_ONE;
endcase*/
alua_sel = (inst_reg[4]) ? `ALUA_M1 : `ALUA_ONE;
end
`PCA: alua_sel = (tflg_reg) ? `ALUA_ZER : `ALUA_M2;
// `PCO: alua_sel = `ALUA_ONE;
`IF1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b001001xxxxxx,
12'b011x01xxx110: alua_sel = `ALUA_BIT;
12'b1xxx01xxx000,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111010,
12'b1xxx10111011: alua_sel = `ALUA_M1;
12'b1xxx10100000,
12'b1xxx10100010,
12'b1xxx10110000,
12'b1xxx10110010: alua_sel = `ALUA_ONE;
default: alua_sel = `ALUA_AA;
endcase
end
`INTA: alua_sel = `ALUA_M1;
default: alua_sel = `ALUA_ONE;
endcase
end
 
/*****************************************************************************************/
/* */
/* alu b input control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or par_bit or sign_bit or
zero_bit) begin
casex (state_reg) //synopsys parallel_case
`DEC1: begin
casex (inst_reg) //synopsys parallel_case
8'b00000111,
8'b00001111,
8'b00010111,
8'b00011111,
8'b00100111,
8'b00101111: alub_sel = `ALUB_AA;
8'b00010000: alub_sel = `ALUB_BB;
8'b00000010,
8'b00001010: alub_sel = `ALUB_BC;
8'b00010010,
8'b00011010,
8'b11101011: alub_sel = `ALUB_DE;
8'b11101001,
8'b11111001: alub_sel = `ALUB_HL;
8'b01xxx000,
8'b10xxx000: alub_sel = `ALUB_BB;
8'b01xxx001,
8'b10xxx001: alub_sel = `ALUB_CC;
8'b01xxx010,
8'b10xxx010: alub_sel = `ALUB_DD;
8'b01xxx011,
8'b10xxx011: alub_sel = `ALUB_EE;
8'b01xxx100,
8'b10xxx100: alub_sel = `ALUB_HH;
8'b01xxx101,
8'b10xxx101: alub_sel = `ALUB_LL;
8'b01xxx111,
8'b10xxx111: alub_sel = `ALUB_AA;
8'b0000010x: alub_sel = `ALUB_BB;
8'b0000110x: alub_sel = `ALUB_CC;
8'b0001010x: alub_sel = `ALUB_DD;
8'b0001110x: alub_sel = `ALUB_EE;
8'b0010010x: alub_sel = `ALUB_HH;
8'b0010110x: alub_sel = `ALUB_LL;
8'b0011110x: alub_sel = `ALUB_AA;
8'b00000011,
8'b00001001,
8'b00001011: alub_sel = `ALUB_BC;
8'b00010011,
8'b00011001,
8'b00011011: alub_sel = `ALUB_DE;
8'b00100011,
8'b00101001,
8'b00101011: alub_sel = `ALUB_HL;
8'b00110011,
8'b00111001,
8'b00111011: alub_sel = `ALUB_SP;
8'b11xx0101,
8'b11xxx111: alub_sel = `ALUB_SP;
default: alub_sel = `ALUB_PC;
endcase
end
`IF2B: alub_sel = `ALUB_PC;
`DEC2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01000100,
12'b1xxx01000111,
12'b1xxx01001111: alub_sel = `ALUB_AA;
12'b1xxx01xxx000,
12'b1xxx01xxx001,
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: alub_sel = `ALUB_BC;
12'b010000100011,
12'b010000101011,
12'b010011101001,
12'b010011111001: alub_sel = `ALUB_IX;
12'b010100100011,
12'b010100101011,
12'b010111101001,
12'b010111111001: alub_sel = `ALUB_IY;
12'b1xxx01000101,
12'b1xxx01001101: alub_sel = `ALUB_PC;
//12'b001000000110,12'b001000000rrr,12'b001000001110,12'b001000001rrr,12'b001000010110,12'b001000010rrr,12'b001000011110,12'b001000011rrr
//12'b001000100110,12'b001000100rrr,12'b001000101110,12'b001000101rrr
//12'b001000111110,12'b001000111rrr
//12'b001001xxx110,12'b001001xxxrrr
//12'b001010xxx110,12'b001010xxxrrr,12'b001011xxx110,12'b001011xxxrrr
12'b0010000xx000,
12'b00100010x000,
12'b001000111000,
12'b001001xxx000,
12'b00101xxxx000: alub_sel = `ALUB_BB;
12'b0010000xx001,
12'b00100010x001,
12'b001000111001,
12'b001001xxx001,
12'b00101xxxx001: alub_sel = `ALUB_CC;
12'b0010000xx010,
12'b00100010x010,
12'b001000111010,
12'b001001xxx010,
12'b00101xxxx010: alub_sel = `ALUB_DD;
12'b0010000xx011,
12'b00100010x011,
12'b001000111011,
12'b001001xxx011,
12'b00101xxxx011: alub_sel = `ALUB_EE;
12'b0010000xx100,
12'b00100010x100,
12'b001000111100,
12'b001001xxx100,
12'b00101xxxx100: alub_sel = `ALUB_HH;
12'b0010000xx101,
12'b00100010x101,
12'b001000111101,
12'b001001xxx101,
12'b00101xxxx101: alub_sel = `ALUB_LL;
12'b0010000xx111,
12'b00100010x111,
12'b001000111111,
12'b001001xxx111,
12'b00101xxxx111: alub_sel = `ALUB_AA;
//12'b1xxx01xx0010,
//12'b1xxx01xx1010:
12'b1xxx0100x010: alub_sel = `ALUB_BC;
12'b1xxx0101x010: alub_sel = `ALUB_DE;
//12'b1xxx0110x010: alub_sel = `ALUB_HL;
12'b1xxx0111x010: alub_sel = `ALUB_SP;
12'b010011100101,
12'b010111100101: alub_sel = `ALUB_SP;
//12'b010000xx1001
//12'b010100xx1001
12'b010x00001001: alub_sel = `ALUB_BC;
12'b010x00011001: alub_sel = `ALUB_DE;
12'b010x00101001: alub_sel = (page_reg[0]) ? `ALUB_IY : `ALUB_IX;
12'b010x00111001: alub_sel = `ALUB_SP;
default: alub_sel = `ALUB_HL;
endcase
end
`OF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000010000,
12'b000000011000,
12'b000000110110: alub_sel = `ALUB_DIN;
12'b000000100000: alub_sel = ( !zero_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000000101000: alub_sel = ( zero_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000000110000: alub_sel = (!carry_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000000111000: alub_sel = ( carry_bit) ? `ALUB_DIN : `ALUB_PC;
default: alub_sel = `ALUB_PC;
endcase
end
`OF2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b010000110110,
12'b010100110110: alub_sel = `ALUB_DIN;
default: alub_sel = `ALUB_SP;
endcase
end
`OF2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011000011,
12'b010000110110,
12'b010100110110: alub_sel = `ALUB_DIN;
12'b000011000010: alub_sel = ( !zero_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011001010: alub_sel = ( zero_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011010010: alub_sel = (!carry_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011011010: alub_sel = ( carry_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011100010: alub_sel = ( !par_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011101010: alub_sel = ( par_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011110010: alub_sel = ( !sign_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011111010: alub_sel = ( sign_bit) ? `ALUB_DIN : `ALUB_PC;
12'b000011001101: alub_sel = `ALUB_PCH;
12'b000011000100: alub_sel = ( !zero_bit) ? `ALUB_PCH : `ALUB_PC;
12'b000011001100: alub_sel = ( zero_bit) ? `ALUB_PCH : `ALUB_PC;
12'b000011010100: alub_sel = (!carry_bit) ? `ALUB_PCH : `ALUB_PC;
12'b000011011100: alub_sel = ( carry_bit) ? `ALUB_PCH : `ALUB_PC;
12'b000011100100: alub_sel = ( !par_bit) ? `ALUB_PCH : `ALUB_PC;
12'b000011101100: alub_sel = ( par_bit) ? `ALUB_PCH : `ALUB_PC;
12'b000011110100: alub_sel = ( !sign_bit) ? `ALUB_PCH : `ALUB_PC;
12'b000011111100: alub_sel = ( sign_bit) ? `ALUB_PCH : `ALUB_PC;
default: alub_sel = `ALUB_PC;
endcase
end
`IF3A: alub_sel = `ALUB_DIN;
`ADR1: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011010011,
12'b000011011011: alub_sel = `ALUB_IO;
12'b0001xxxxxxxx: alub_sel = `ALUB_TMP;
default: alub_sel = `ALUB_DIN;
endcase
end
`ADR2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000000010,
12'b000000010010,
12'b000000110010,
12'b000011010011: alub_sel = `ALUB_AA;
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: alub_sel = `ALUB_BB;
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10111000,
12'b1xxx10111001: alub_sel = `ALUB_BC;
//12'b000000100010: alub_sel = `ALUB_HL;
12'b010000100010: alub_sel = `ALUB_IX;
12'b010011100101: alub_sel = `ALUB_IXH;
12'b010100100010: alub_sel = `ALUB_IY;
12'b010111100101: alub_sel = `ALUB_IYH;
12'b000011xxx111: alub_sel = `ALUB_PCH;
//12'b000001110110,12'b000001110rrr,
//12'b000001rdrrsr,12'b000001rrr110,
//12'b010001110rrr,12'b010101110rrr,
//12'b1xxx01rrr001
12'b000001xxx000,
12'b010x01110000,
12'b1xxx01000001: alub_sel = `ALUB_BB;
12'b000001xxx001,
12'b010x01110001,
12'b1xxx01001001: alub_sel = `ALUB_CC;
12'b000001xxx010,
12'b010x01110010,
12'b1xxx01010001: alub_sel = `ALUB_DD;
12'b000001xxx011,
12'b010x01110011,
12'b1xxx01011001: alub_sel = `ALUB_EE;
12'b000001xxx100,
12'b010x01110100,
12'b1xxx01100001: alub_sel = `ALUB_HH;
12'b000001xxx101,
12'b010x01110101,
12'b1xxx01101001: alub_sel = `ALUB_LL;
//12'b000001xxx110,
//12'b010101110110,
//12'b1xxx01110001: alub_sel = `ALUB_HL;
12'b000001xxx111,
12'b010x01110111,
12'b1xxx01111001: alub_sel = `ALUB_AA;
12'b1xxx01000011: alub_sel = `ALUB_BC;
12'b1xxx01010011: alub_sel = `ALUB_DE;
//12'b1xxx01100011: alub_sel = `ALUB_HL;
12'b1xxx01110011: alub_sel = `ALUB_SP;
12'b000011000101: alub_sel = `ALUB_BB;
12'b000011010101: alub_sel = `ALUB_DD;
12'b000011100101: alub_sel = `ALUB_HH;
12'b000011110101: alub_sel = `ALUB_AA;
default: alub_sel = `ALUB_HL;
endcase
end
`RD1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: alub_sel = `ALUB_BC;
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: alub_sel = `ALUB_DE;
12'b1xxx10100001,
12'b1xxx10100010,
12'b1xxx10101001,
12'b1xxx10101010,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10111001,
12'b1xxx10111010: alub_sel = `ALUB_HL;
12'b000000101010,
12'b0001xxxxxxxx,
12'b010000101010,
12'b010100101010,
12'b1xxx01xx1011: alub_sel = `ALUB_TMP;
default: alub_sel = `ALUB_SP;
endcase
end
`RD1B: alub_sel = `ALUB_DIN;
`RD2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: alub_sel = `ALUB_BC;
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: alub_sel = `ALUB_DE;
12'b001010xxxxxx,//12'b001010xxx110,12'b001010xxxrrr,
12'b1xxx10100001,
12'b1xxx10100010,
12'b1xxx10101001,
12'b1xxx10101010,
12'b1xxx10110001,
12'b1xxx10110010,
12'b1xxx10111001,
12'b1xxx10111010: alub_sel = `ALUB_HL;
12'b000011001001,
12'b000011100011,
12'b000011xxx000,
12'b000011xx0001,
12'b0001xxxxxxxx,
12'b010011100001,
12'b010011100011,
12'b010111100001,
12'b010111100011,
12'b1xxx01000101,
12'b1xxx01001101: alub_sel = `ALUB_SP;
default: alub_sel = `ALUB_TMP;
endcase
end
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011100011: alub_sel = `ALUB_HL;
12'b010011100011: alub_sel = `ALUB_IX;
12'b010111100011: alub_sel = `ALUB_IY;
12'b000000001010,
12'b000000011010,
12'b000000101010,
12'b000000111010,
12'b000001xxxxxx,//12'b000001rdrrsr,12'b000001rrr110,
12'b000010000xxx,//12'b000010000110,12'b000010000rrr,
12'b000010001xxx,//12'b000010001110,12'b000010001rrr,
12'b000010010xxx,//12'b000010010110,12'b000010010rrr,
12'b000010011xxx,//12'b000010011110,12'b000010011rrr,
12'b000010100xxx,//12'b000010100110,12'b000010100rrr,
12'b000010101xxx,//12'b000010101110,12'b000010101rrr,
12'b000010110xxx,//12'b000010110110,12'b000010110rrr,
12'b000010111xxx,//12'b000010111110,12'b000010111rrr,
12'b000011011011,
12'b000011xx0001,
12'b001001xxx110,
12'b001001xxxxxx,
12'b010000101010,
12'b010001xxx110,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010010111110,
12'b010011100001,
12'b010100101010,
12'b010101xxx110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b010110111110,
12'b010111100001,
12'b011001xxx110,
12'b011101xxx110,
12'b1xxx01xxx000,
12'b1xxx01xx1011: alub_sel = `ALUB_PC;
12'b0001xxxxxxxx: alub_sel = `ALUB_PCH;
default: alub_sel = `ALUB_DIN;
endcase
end
`WR1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: alub_sel = `ALUB_BC;
12'b1xxx10100000,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111011: alub_sel = `ALUB_HL;
12'b000000100010,
12'b010000100010,
12'b010100100010,
12'b1xxx01xx0011: alub_sel = `ALUB_TMP;
default: alub_sel = `ALUB_SP;
endcase
end
`WR1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: alub_sel = `ALUB_BB;
12'b1xxx10110000,
12'b1xxx10111000: alub_sel = `ALUB_BC;
12'b000000100010,
12'b000011100011: alub_sel = `ALUB_HH;
12'b010011100101: alub_sel = `ALUB_IX;
12'b010000100010,
12'b010011100011: alub_sel = `ALUB_IXH;
12'b010111100101: alub_sel = `ALUB_IY;
12'b010100100010,
12'b010111100011: alub_sel = `ALUB_IYH;
12'b1xxx01000011: alub_sel = `ALUB_BC;
12'b1xxx01010011: alub_sel = `ALUB_DE;
12'b1xxx01100011: alub_sel = `ALUB_HL;
12'b1xxx01110011: alub_sel = `ALUB_SP;
12'b000011000101: alub_sel = `ALUB_BC;
12'b000011010101: alub_sel = `ALUB_DE;
12'b000011100101: alub_sel = `ALUB_HL;
12'b000011110101: alub_sel = `ALUB_AF;
default: alub_sel = `ALUB_PC;
endcase
end
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: alub_sel = `ALUB_BC;
12'b000011001101,
12'b000011xxx100: alub_sel = `ALUB_DIN;
default: alub_sel = `ALUB_HL;
endcase
end
`WR2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: alub_sel = `ALUB_BB;
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: alub_sel = `ALUB_BC;
default: alub_sel = `ALUB_PC;
endcase
end
`BLK1: alub_sel = `ALUB_HL;
`BLK2: alub_sel = (inst_reg[4]) ? `ALUB_BC : `ALUB_PC;
`PCA,
`PCO: alub_sel = `ALUB_PC;
`IF1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: alub_sel = `ALUB_BB;
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: alub_sel = `ALUB_DE;
12'b1xxx10101010,
12'b1xxx10111010,
12'b1xxx10100010,
12'b1xxx10110010: alub_sel = `ALUB_HL;
default: alub_sel = `ALUB_DIN;
endcase
end
`INTA: alub_sel = `ALUB_SP;
`INTB: alub_sel = `ALUB_PCH;
default: alub_sel = `ALUB_PC;
endcase
end
 
/*****************************************************************************************/
/* */
/* register write control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg or carry_bit or par_bit or sign_bit or
vector_int or zero_bit) begin
casex (state_reg) //synopsys parallel_case
`OF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000010000: wr_addr = `WREG_BB;
default: wr_addr = `WREG_NUL;
endcase
end
`OF2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001101: wr_addr = `WREG_SP;
12'b000011000100: wr_addr = ( !zero_bit) ? `WREG_SP : `WREG_NUL;
12'b000011001100: wr_addr = ( zero_bit) ? `WREG_SP : `WREG_NUL;
12'b000011010100: wr_addr = (!carry_bit) ? `WREG_SP : `WREG_NUL;
12'b000011011100: wr_addr = ( carry_bit) ? `WREG_SP : `WREG_NUL;
12'b000011100100: wr_addr = ( !par_bit) ? `WREG_SP : `WREG_NUL;
12'b000011101100: wr_addr = ( par_bit) ? `WREG_SP : `WREG_NUL;
12'b000011110100: wr_addr = ( !sign_bit) ? `WREG_SP : `WREG_NUL;
12'b000011111100: wr_addr = ( sign_bit) ? `WREG_SP : `WREG_NUL;
default: wr_addr = `WREG_NUL;
endcase
end
`IF3B: wr_addr = `WREG_TMP;
`ADR2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011xxx111,
12'b000011xx0101,
12'b010011100101,
12'b010111100101: wr_addr = `WREG_SP;
12'b000000100010,
12'b000000101010,
12'b010000100010,
12'b010000101010,
12'b010000110100,
12'b010000110101,
12'b010100100010,
12'b010100101010,
12'b010100110100,
12'b010100110101,
12'b1xxx01xx0011,
12'b1xxx01xx1011: wr_addr = `WREG_TMP;
default: wr_addr = `WREG_NUL;
endcase
end
`RD1A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: wr_addr = `WREG_BB;
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10111000,
12'b1xxx10111001: wr_addr = `WREG_BC;
default: wr_addr = `WREG_NUL;
endcase
end
`RD1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000011001001,
12'b000011xxx000,
12'b000011xx0001,
12'b010011100001,
12'b010111100001,
12'b1xxx01000101,
12'b1xxx01001101: wr_addr = `WREG_SP;
default: wr_addr = `WREG_NUL;
endcase
end
`RD2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: wr_addr = `WREG_BB;
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10111000,
12'b1xxx10111001: wr_addr = `WREG_BC;
default: wr_addr = `WREG_NUL;
endcase
end
`RD2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: wr_addr = `WREG_DE;
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: wr_addr = `WREG_HL;
12'b000011001001,
12'b000011xxx000,
12'b000011xx0001,
12'b0001xxxxxxxx,
12'b010011100001,
12'b010111100001,
12'b1xxx01000101,
12'b1xxx01001101: wr_addr = `WREG_SP;
default: wr_addr = `WREG_NUL;
endcase
end
//`WR1A: wr_addr = `WREG_NUL;
`WR1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111011: wr_addr = `WREG_HL;
12'b000011001101,
12'b000011xxx100,
12'b000011xxx111,
12'b000011xx0101,
12'b0001xxxxxxxx,
12'b010011100101,
12'b010111100101: wr_addr = `WREG_SP;
default: wr_addr = `WREG_NUL;
endcase
end
//`WR2A: wr_addr = `WREG_NUL;
`WR2B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100011,
12'b1xxx10101000,
12'b1xxx10101011,
12'b1xxx10110000,
12'b1xxx10110011,
12'b1xxx10111000,
12'b1xxx10111011: wr_addr = `WREG_HL;
default: wr_addr = `WREG_NUL;
endcase
end
//`BLK1: wr_addr = `WREG_NUL;
`BLK2: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: wr_addr = `WREG_HL;
default: wr_addr = `WREG_NUL;
endcase
end
//`PCA: wr_addr = `WREG_NUL;
//`PCO: wr_addr = `WREG_NUL;
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000000111,
12'b000000001010,
12'b000000001111,
12'b000000010111,
12'b000000011010,
12'b000000011111,
12'b000000100111,
12'b000000101111,
12'b000000111010,
12'b000010000xxx,
12'b000010001xxx,
12'b000010010xxx,
12'b000010011xxx,
12'b000010100xxx,
12'b000010101xxx,
12'b000010110xxx,
12'b000011000110,
12'b000011001110,
12'b000011010110,
12'b000011011011,
12'b010x10000110,
12'b010x10001110,
12'b010x10010110,
12'b010x10011110,
12'b010x10100110,
12'b010x10101110,
12'b010x10110110,
12'b000011011110,
12'b000011100110,
12'b1xxx01000100,
12'b1xxx01010111,
12'b1xxx01011111,
12'b1xxx01100111,
12'b1xxx01101111,
12'b000011101110,
12'b000011110110: wr_addr = `WREG_AA;
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: wr_addr = `WREG_BB;
12'b000000000001,
12'b1xxx01001011: wr_addr = `WREG_BC;
12'b000000010001,
12'b1xxx01011011: wr_addr = `WREG_DE;
12'b000000100001,
12'b1xxx01101011: wr_addr = `WREG_HL;
12'b000000110001,
12'b1xxx01111011: wr_addr = `WREG_SP;
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: wr_addr = `WREG_DE;
12'b000011101011: wr_addr = `WREG_DEHL;
12'b000000101010,
12'b000000xx1001,
12'b000011100011,
12'b1xxx01xx0010,
12'b1xxx01xx1010,
12'b1xxx10100010,
12'b1xxx10101010,
12'b1xxx10110010,
12'b1xxx10111010: wr_addr = `WREG_HL;
12'b1xxx01000111: wr_addr = `WREG_II;
12'b010000100001,
12'b010000100011,
12'b010000101010,
12'b010000101011,
12'b010000xx1001,
12'b010011100001,
12'b010011100011: wr_addr = `WREG_IX;
12'b010100100001,
12'b010100100011,
12'b010100101010,
12'b010100101011,
12'b010100xx1001,
12'b010111100001,
12'b010111100011: wr_addr = `WREG_IY;
12'b1xxx01001111: wr_addr = `WREG_RR;
12'b0010000xx000,
12'b00100010x000,
12'b001000111000,
12'b00101xxxx000: wr_addr = `WREG_BB;
12'b0010000xx001,
12'b00100010x001,
12'b001000111001,
12'b00101xxxx001: wr_addr = `WREG_CC;
12'b0010000xx010,
12'b00100010x010,
12'b001000111010,
12'b00101xxxx010: wr_addr = `WREG_DD;
12'b0010000xx011,
12'b00100010x011,
12'b001000111011,
12'b00101xxxx011: wr_addr = `WREG_EE;
12'b0010000xx100,
12'b00100010x100,
12'b001000111100,
12'b00101xxxx100: wr_addr = `WREG_HH;
12'b0010000xx101,
12'b00100010x101,
12'b001000111101,
12'b00101xxxx101: wr_addr = `WREG_LL;
12'b0010000xx111,
12'b00100010x111,
12'b001000111111,
12'b00101xxxx111: wr_addr = `WREG_AA;
12'b00000000010x,
12'b000000000110,
12'b000001000xxx,
12'b010x01000110,
12'b1xxx0x000000: wr_addr = `WREG_BB;
12'b00000000110x,
12'b000000001110,
12'b000001001xxx,
12'b010x01001110,
12'b1xxx0x001000: wr_addr = `WREG_CC;
12'b00000001010x,
12'b000000010110,
12'b000001010xxx,
12'b010x01010110,
12'b1xxx0x010000: wr_addr = `WREG_DD;
12'b00000001110x,
12'b000000011110,
12'b000001011xxx,
12'b010x01011110,
12'b1xxx0x011000: wr_addr = `WREG_EE;
12'b00000010010x,
12'b000000100110,
12'b000001100xxx,
12'b010x01100110,
12'b1xxx0x100000: wr_addr = `WREG_HH;
12'b00000010110x,
12'b000000101110,
12'b000001101xxx,
12'b010x01101110,
12'b1xxx0x101000: wr_addr = `WREG_LL;
12'b00000011110x,
12'b000000111110,
12'b000001111xxx,
12'b010x01111110,
12'b1xxx0x111000: wr_addr = `WREG_AA;
12'b00000000x011: wr_addr = `WREG_BC;
12'b00000001x011: wr_addr = `WREG_DE;
12'b00000010x011: wr_addr = `WREG_HL;
12'b00000011x011: wr_addr = `WREG_SP;
12'b010x11111001,
12'b000011111001: wr_addr = `WREG_SP;
12'b000011000001: wr_addr = `WREG_BC;
12'b000011010001: wr_addr = `WREG_DE;
12'b000011100001: wr_addr = `WREG_HL;
12'b000011110001: wr_addr = `WREG_AF;
default: wr_addr = `WREG_NUL;
endcase
end
`INTB: wr_addr = (vector_int) ? `WREG_TMP : `WREG_SP;
default: wr_addr = `WREG_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* s flag control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000110100,
12'b000000110101,
12'b001000000xxx,
12'b001000001xxx,
12'b001000010xxx,
12'b001000011xxx,
12'b001000100xxx,
12'b001000101xxx,
12'b001000111xxx,
12'b010x00110100,
12'b010x00110101,
12'b011x00010110,
12'b011x00000110,
12'b011x00011110,
12'b011x00001110,
12'b011x00100110,
12'b011x00101110,
12'b011x00111110: sflg_en = 1'b1;
default: sflg_en = 1'b0;
endcase
end
`BLK1: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: sflg_en = 1'b1;
default: sflg_en = 1'b0;
endcase
end
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100111,
12'b0000000xx100,12'b00000010x100,12'b000000111100,//12'b000000rrr100,
12'b0000000xx101,12'b00000010x101,12'b000000111101,//12'b000000rrr101,
12'b000010000110,
12'b000010000xxx,
12'b000010001110,
12'b000010001xxx,
12'b000010010110,
12'b000010010xxx,
12'b000010011110,
12'b000010011xxx,
12'b000010100110,
12'b000010100xxx,
12'b000010101110,
12'b000010101xxx,
12'b000010110110,
12'b000010110xxx,
12'b000010111110,
12'b000010111xxx,
12'b000011000110,
12'b000011001110,
12'b000011010110,
12'b000011011110,
12'b000011100110,
12'b000011101110,
12'b000011110110,
12'b000011111110,
12'b0010000000xx,12'b00100000010x,12'b001000000111,//12'b001000000rrr,
12'b0010000010xx,12'b00100000110x,12'b001000001111,//12'b001000001rrr,
12'b0010000100xx,12'b00100001010x,12'b001000010111,//12'b001000010rrr,
12'b0010000110xx,12'b00100001110x,12'b001000011111,//12'b001000011rrr,
12'b0010001000xx,12'b00100010010x,12'b001000100111,//12'b001000100rrr,
12'b0010001010xx,12'b00100010110x,12'b001000101111,//12'b001000101rrr,
12'b0010001110xx,12'b00100011110x,12'b001000111111,//12'b001000111rrr,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010010111110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b010110111110,
12'b1xxx01000100,
12'b1xxx01010111,
12'b1xxx01011111,
12'b1xxx01100111,
12'b1xxx01101111,
12'b1xxx01xxx000,
12'b1xxx01xx0010,
12'b1xxx01xx1010: sflg_en = 1'b1;
default: sflg_en = 1'b0;
endcase
end
default: sflg_en = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* z flag control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`RD1A,
`RD2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: zflg_en = 1'b1;
default: zflg_en = 1'b0;
endcase
end
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000110100,
12'b000000110101,
12'b001000000110,
12'b001000000xxx,
12'b001000001110,
12'b001000001xxx,
12'b001000010110,
12'b001000010xxx,
12'b001000011110,
12'b001000011xxx,
12'b001000100110,
12'b001000100xxx,
12'b001000101110,
12'b001000101xxx,
12'b001000111110,
12'b001000111xxx,
12'b010000110100,
12'b010000110101,
12'b010100110100,
12'b010100110101,
12'b011000000110,
12'b011000001110,
12'b011000010110,
12'b011000011110,
12'b011000100110,
12'b011000101110,
12'b011000111110,
12'b011100000110,
12'b011100001110,
12'b011100010110,
12'b011100011110,
12'b011100100110,
12'b011100101110,
12'b011100111110: zflg_en = 1'b1;
default: zflg_en = 1'b0;
endcase
end
`BLK1: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: zflg_en = 1'b1;
default: zflg_en = 1'b0;
endcase
end
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000100111,
12'b0000000xx100,12'b00000010x100,12'b000000111100,//12'b000000rrr100,
12'b0000000xx101,12'b00000010x101,12'b000000111101,//12'b000000rrr101,
12'b000010000110,
12'b000010000xxx,
12'b000010001110,
12'b000010001xxx,
12'b000010010110,
12'b000010010xxx,
12'b000010011110,
12'b000010011xxx,
12'b000010100110,
12'b000010100xxx,
12'b000010101110,
12'b000010101xxx,
12'b000010110110,
12'b000010110xxx,
12'b000010111110,
12'b000010111xxx,
12'b000011000110,
12'b000011001110,
12'b000011010110,
12'b000011011110,
12'b000011100110,
12'b000011101110,
12'b000011110110,
12'b000011111110,
12'b0010000000xx,12'b00100000010x,12'b001000000111,//12'b001000000rrr,
12'b0010000010xx,12'b00100000110x,12'b001000001111,//12'b001000001rrr,
12'b0010000100xx,12'b00100001010x,12'b001000010111,//12'b001000010rrr,
12'b0010000110xx,12'b00100001110x,12'b001000011111,//12'b001000011rrr,
12'b0010001000xx,12'b00100010010x,12'b001000100111,//12'b001000100rrr,
12'b0010001010xx,12'b00100010110x,12'b001000101111,//12'b001000101rrr,
12'b0010001110xx,12'b00100011110x,12'b001000111111,//12'b001000111rrr,
12'b001001xxx110,
12'b001001xxxxxx,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010010111110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b010110111110,
12'b011001xxx110,
12'b011101xxx110,
12'b1xxx01000100,
12'b1xxx01010111,
12'b1xxx01011111,
12'b1xxx01100111,
12'b1xxx01101111,
12'b1xxx01xxx000,
12'b1xxx01xx0010,
12'b1xxx01xx1010,
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: zflg_en = 1'b1;
default: zflg_en = 1'b0;
endcase
end
default: zflg_en = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* h flag control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b001000000xxx,
12'b001000001xxx,
12'b001000010xxx,
12'b001000011xxx,
12'b001000100xxx,
12'b001000101xxx,
12'b001000111xxx,
12'b011x00010110,
12'b011x00000110,
12'b011x00011110,
12'b011x00001110,
12'b011x00100110,
12'b011x00101110,
12'b011x00111110,
12'b1xxx01100111,
12'b1xxx01101111: hflg_ctl = `HFLG_0;
12'b000000110100,
12'b000000110101,
12'b010x00110100,
12'b010x00110101: hflg_ctl = `HFLG_H;
default: hflg_ctl = `HFLG_NUL;
endcase
end
`BLK1: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: hflg_ctl = `HFLG_H;
default: hflg_ctl = `HFLG_NUL;
endcase
end
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000000111,
12'b000000001111,
12'b000000010111,
12'b000000011111,
12'b000000110111,
12'b000010101110,
12'b000010101xxx,
12'b000010110110,
12'b000010110xxx,
12'b000011101110,
12'b000011110110,
12'b001000000xxx,
12'b001000001xxx,
12'b001000010xxx,
12'b001000011xxx,
12'b001000100xxx,
12'b001000101xxx,
12'b001000111xxx,
12'b010010101110,
12'b010010110110,
12'b010110101110,
12'b010110110110,
12'b1xxx01010111,
12'b1xxx01011111,
12'b1xxx01xxx000,
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: hflg_ctl = `HFLG_0;
12'b000000101111,
12'b000010100110,
12'b000010100xxx,
12'b000011100110,
12'b001001xxx110,
12'b001001xxxxxx,
12'b010010100110,
12'b010110100110,
12'b011001xxx110,
12'b011101xxx110: hflg_ctl = `HFLG_1;
12'b000000111111: hflg_ctl = `HFLG_H;
12'b000000100111,
12'b0000000xx100,12'b00000010x100,12'b000000111100,//12'b000000rrr100,
12'b0000000xx101,12'b00000010x101,12'b000000111101,//12'b000000rrr101,
12'b000000xx1001,
12'b000010000110,
12'b000010000xxx,
12'b000010001110,
12'b000010001xxx,
12'b000010010110,
12'b000010010xxx,
12'b000010011110,
12'b000010011xxx,
12'b000010111110,
12'b000010111xxx,
12'b000011000110,
12'b000011001110,
12'b000011010110,
12'b000011011110,
12'b000011111110,
12'b010000xx1001,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010111110,
12'b010100xx1001,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110111110,
12'b1xxx01000100,
12'b1xxx01xx0010,
12'b1xxx01xx1010: hflg_ctl = `HFLG_H;
default: hflg_ctl = `HFLG_NUL;
endcase
end
default: hflg_ctl = `HFLG_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* pv flag control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`RD1A,
`RD2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100000,
12'b1xxx10100001,
12'b1xxx10101000,
12'b1xxx10101001,
12'b1xxx10110000,
12'b1xxx10110001,
12'b1xxx10111000,
12'b1xxx10111001: pflg_ctl = `PFLG_B;
default: pflg_ctl = `PFLG_NUL;
endcase
end
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b001000000110,
12'b001000000xxx,
12'b001000001110,
12'b001000001xxx,
12'b001000010110,
12'b001000010xxx,
12'b001000011110,
12'b001000011xxx,
12'b001000100110,
12'b001000100xxx,
12'b001000101110,
12'b001000101xxx,
12'b001000111110,
12'b001000111xxx,
12'b011000000110,
12'b011000001110,
12'b011000010110,
12'b011000011110,
12'b011000100110,
12'b011000101110,
12'b011000111110,
12'b011100000110,
12'b011100001110,
12'b011100010110,
12'b011100011110,
12'b011100100110,
12'b011100101110,
12'b011100111110: pflg_ctl = `PFLG_P;
12'b000000110100,
12'b000000110101,
12'b010000110100,
12'b010000110101,
12'b010100110100,
12'b010100110101: pflg_ctl = `PFLG_V;
default: pflg_ctl = `PFLG_NUL;
endcase
end
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx01010111,
12'b1xxx01011111: pflg_ctl = `PFLG_F;
12'b000000100111,
12'b000010100110,
12'b000010100xxx,
12'b000010101110,
12'b000010101xxx,
12'b000010110110,
12'b000010110xxx,
12'b000011100110,
12'b000011101110,
12'b000011110110,
12'b0010000000xx,12'b00100000010x,12'b001000000111,//12'b001000000rrr,
12'b0010000010xx,12'b00100000110x,12'b001000001111,//12'b001000001rrr,
12'b0010000100xx,12'b00100001010x,12'b001000010111,//12'b001000010rrr,
12'b0010000110xx,12'b00100001110x,12'b001000011111,//12'b001000011rrr,
12'b0010001000xx,12'b00100010010x,12'b001000100111,//12'b001000100rrr,
12'b0010001010xx,12'b00100010110x,12'b001000101111,//12'b001000101rrr,
12'b0010001110xx,12'b00100011110x,12'b001000111111,//12'b001000111rrr,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b1xxx01100111,
12'b1xxx01101111,
12'b1xxx01xxx000: pflg_ctl = `PFLG_P;
12'b0000000xx100,12'b00000010x100,12'b000000111100,//12'b000000rrr100,
12'b0000000xx101,12'b00000010x101,12'b000000111101,//12'b000000rrr101,
12'b000010000110,
12'b000010000xxx,
12'b000010001110,
12'b000010001xxx,
12'b000010010110,
12'b000010010xxx,
12'b000010011110,
12'b000010011xxx,
12'b000010111110,
12'b000010111xxx,
12'b000011000110,
12'b000011001110,
12'b000011010110,
12'b000011011110,
12'b000011111110,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010111110,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110111110,
12'b1xxx01000100,
12'b1xxx01xx0010,
12'b1xxx01xx1010: pflg_ctl = `PFLG_V;
default: pflg_ctl = `PFLG_NUL;
endcase
end
default: pflg_ctl = `PFLG_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* n flag control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`WR1A,
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b1xxx10100010,
12'b1xxx10100011,
12'b1xxx10101010,
12'b1xxx10101011,
12'b1xxx10110010,
12'b1xxx10110011,
12'b1xxx10111010,
12'b1xxx10111011: nflg_ctl = `NFLG_S;
default: nflg_ctl = `NFLG_NUL;
endcase
end
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000000000111,
12'b000000001111,
12'b000000010111,
12'b000000011111,
12'b000000110100,
12'b000000110111,
12'b000000111111,
12'b0000000xx100,12'b00000010x100,12'b000000111100,//12'b000000rrr100,
12'b000000xx1001,
12'b000010000110,
12'b000010000xxx,
12'b000010001110,
12'b000010001xxx,
12'b000010100110,
12'b000010100xxx,
12'b000010101110,
12'b000010101xxx,
12'b000010110110,
12'b000010110xxx,
12'b000011000110,
12'b000011001110,
12'b000011100110,
12'b000011101110,
12'b000011110110,
12'b001000000110,
12'b001000000xxx,
12'b001000001110,
12'b001000001xxx,
12'b001000010110,
12'b001000010xxx,
12'b001000011110,
12'b001000011xxx,
12'b001000100110,
12'b001000100xxx,
12'b001000101110,
12'b001000101xxx,
12'b001000111110,
12'b001000111xxx,
12'b001001xxx110,
12'b001001xxxxxx,
12'b010000110100,
12'b010000xx1001,
12'b010010000110,
12'b010010001110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010100110100,
12'b010100xx1001,
12'b010110000110,
12'b010110001110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b011000000110,
12'b011000001110,
12'b011000010110,
12'b011000011110,
12'b011000100110,
12'b011000101110,
12'b011000111110,
12'b011001xxx110,
12'b011100000110,
12'b011100001110,
12'b011100010110,
12'b011100011110,
12'b011100100110,
12'b011100101110,
12'b011100111110,
12'b011101xxx110,
12'b1xxx01010111,
12'b1xxx01011111,
12'b1xxx01100111,
12'b1xxx01101111,
12'b1xxx01xxx000,
12'b1xxx01xx1010,
12'b1xxx10100000,
12'b1xxx10101000,
12'b1xxx10110000,
12'b1xxx10111000: nflg_ctl = `NFLG_0;
12'b000000101111,
12'b000000110101,
12'b0000000xx101,12'b00000010x101,12'b000000111101,//12'b000000rrr101,
12'b000010010110,
12'b000010010xxx,
12'b000010011110,
12'b000010011xxx,
12'b000010111110,
12'b000010111xxx,
12'b000011010110,
12'b000011011110,
12'b000011111110,
12'b010000110101,
12'b010010010110,
12'b010010011110,
12'b010010111110,
12'b010100110101,
12'b010110010110,
12'b010110011110,
12'b010110111110,
12'b1xxx01000100,
12'b1xxx01xx0010,
12'b1xxx10100001,
12'b1xxx10101001,
12'b1xxx10110001,
12'b1xxx10111001: nflg_ctl = `NFLG_1;
default: nflg_ctl = `NFLG_NUL;
endcase
end
default: nflg_ctl = `NFLG_NUL;
endcase
end
 
/*****************************************************************************************/
/* */
/* c flag control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`WR2A: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b001000000xxx,
12'b001000001xxx,
12'b001000010xxx,
12'b001000011xxx,
12'b001000100xxx,
12'b001000101xxx,
12'b001000111xxx,
12'b011x00000110,
12'b011x00001110,
12'b011x00010110,
12'b011x00011110,
12'b011x00100110,
12'b011x00101110,
12'b011x00111110: cflg_en = 1'b1;
default: cflg_en = 1'b0;
endcase
end
`IF1B: begin
casex ({page_reg, inst_reg}) //synopsys parallel_case
12'b000010100110,
12'b000010100xxx,
12'b000010101110,
12'b000010101xxx,
12'b000010110110,
12'b000010110xxx,
12'b000011100110,
12'b000011101110,
12'b000011110110,
12'b010010100110,
12'b010010101110,
12'b010010110110,
12'b010110100110,
12'b010110101110,
12'b010110110110,
12'b000000110111,
12'b000000000111,
12'b000000001111,
12'b000000010111,
12'b000000011111,
12'b000000100111,
12'b000000111111,
12'b000000xx1001,
12'b000010000110,
12'b000010000xxx,
12'b000010001110,
12'b000010001xxx,
12'b000010010110,
12'b000010010xxx,
12'b000010011110,
12'b000010011xxx,
12'b000010111110,
12'b000010111xxx,
12'b000011000110,
12'b000011001110,
12'b000011010110,
12'b000011011110,
12'b000011111110,
12'b0010000000xx,12'b00100000010x,12'b001000000111,//12'b001000000rrr,
12'b0010000010xx,12'b00100000110x,12'b001000001111,//12'b001000001rrr,
12'b0010000100xx,12'b00100001010x,12'b001000010111,//12'b001000010rrr,
12'b0010000110xx,12'b00100001110x,12'b001000011111,//12'b001000011rrr,
12'b0010001000xx,12'b00100010010x,12'b001000100111,//12'b001000100rrr,
12'b0010001010xx,12'b00100010110x,12'b001000101111,//12'b001000101rrr,
12'b0010001110xx,12'b00100011110x,12'b001000111111,//12'b001000111rrr,
12'b010000xx1001,
12'b010010000110,
12'b010010001110,
12'b010010010110,
12'b010010011110,
12'b010010111110,
12'b010100xx1001,
12'b010110000110,
12'b010110001110,
12'b010110010110,
12'b010110011110,
12'b010110111110,
12'b1xxx01000100,
12'b1xxx01xx0010,
12'b1xxx01xx1010: cflg_en = 1'b1;
default: cflg_en = 1'b0;
endcase
end
default: cflg_en = 1'b0;
endcase
end
 
/*****************************************************************************************/
/* */
/* temporary flag control */
/* */
/*****************************************************************************************/
always @ (inst_reg or page_reg or state_reg) begin
casex (state_reg) //synopsys parallel_case
`OF1B: tflg_ctl = `TFLG_Z;
`RD1A,
`RD2A: begin
casex ({page_reg, inst_reg})
12'b1xxx10100011,
12'b1xxx10101011,
12'b1xxx10110011,
12'b1xxx10111011: tflg_ctl = `TFLG_1;
default: tflg_ctl = `TFLG_Z;
endcase
end
`BLK1: tflg_ctl = `TFLG_B;
default: tflg_ctl = `TFLG_NUL;
endcase
end
 
endmodule
 
 
 
 
 
/trunk/rtl/y80_top.v
0,0 → 1,199
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** processor top level Rev 0.0 08/03/2011 **/
/** **/
/*******************************************************************************************/
module y80_top (dma_ack, halt_tran, iack_tran, io_addr_out, io_data_out, io_read, io_strobe,
io_tran, ivec_rd, mem_addr_out, mem_data_out, mem_rd, mem_tran, mem_wr,
reti_tran, t1, clearb, clkc, dma_req, int_req, io_data_in, ivec_data_in,
mem_data_in, nmi_req, resetb, wait_req);
 
input clearb; /* master (test) reset */
input clkc; /* main cpu clock */
input dma_req; /* dma request */
input int_req; /* interrupt request */
input nmi_req; /* nmi request */
input resetb; /* internal (user) reset */
input wait_req; /* wait request */
input [7:0] io_data_in; /* i/o input data bus */
input [7:0] ivec_data_in; /* interrupt vector bus */
input [7:0] mem_data_in; /* memory input bus */
output dma_ack; /* dma acknowledge */
output halt_tran; /* halt transaction */
output iack_tran; /* interrupt acknowledge transaction */
output io_read; /* i/o read enable */
output io_tran; /* i/o transaction */
output io_strobe; /* i/o data strobe */
output ivec_rd; /* interrupt vector enable */
output mem_rd; /* memory read enable */
output mem_tran; /* memory transaction */
output mem_wr; /* memory write enable */
output reti_tran; /* return from interrupt transaction */
output t1; /* first clock of transaction */
output [7:0] io_data_out; /* i/o output data bus */
output [7:0] mem_data_out; /* memory output data bus */
output [15:0] io_addr_out; /* i/o address bus */
output [15:0] mem_addr_out; /* memory address bus */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
wire burst_done; /* burst/mlt done */
wire cflg_en; /* carry flag control */
wire carry_bit; /* carry flag */
wire dma_ack; /* dma acknowledge */
wire dmar_reg; /* latched dma request */
wire ex_af_pls; /* exchange af,af' */
wire ex_bank_pls; /* exchange register bank */
wire ex_dehl_inst; /* exchange de,hl */
wire ftch_tran; /* inst fetch transaction */
wire halt_nxt, halt_tran; /* halt transaction */
wire iack_tran; /* int ack transaction */
wire if_frst; /* first clock if ifetch */
wire inta_frst; /* first clock of intack */
wire intr_reg; /* latched interrupt request */
wire io_read; /* i/o read enable */
wire io_tran; /* i/o transaction */
wire io_strobe; /* i/o data strobe */
wire ivec_rd; /* interrupt vector enable */
wire ld_ctrl; /* load control register */
wire ld_dmaa; /* load dma request */
wire ld_inst; /* load instruction register */
wire ld_inta; /* sample latched int */
wire ld_page; /* load page register */
wire ld_wait; /* sample wait input */
wire mem_rd; /* memory read enable */
wire mem_tran; /* memory transaction */
wire mem_wr; /* memory write enable */
wire output_inh; /* disable cpu outputs */
wire par_bit; /* parity flag */
wire rd_brst; /* burst read */
wire rd_frst; /* first clock of read */
wire rd_nxt; /* read trans next */
wire reti_nxt, reti_tran; /* reti transaction */
wire sflg_en; /* sign flag control */
wire sign_bit; /* sign flag */
wire tflg_reg; /* temporary flag */
wire t1; /* first clock of transaction */
wire vector_int; /* int vector enable */
wire wait_st; /* wait state identifier */
wire wr_brst; /* burst write */
wire wr_frst; /* first clock of write */
wire xhlt_reg; /* halt exit */
wire zero_bit; /* zero flag */
wire zflg_en; /* zero flag control */
wire [3:0] page_sel; /* inst decode page control */
wire [3:0] page_reg; /* instruction decode "page" */
wire [7:0] inst_reg; /* instruction register */
wire [7:0] data_in; /* read data bus */
wire [7:0] dout_io_reg, dout_mem_reg; /* write data bus */
wire [15:0] addr_reg_in; /* processor logical address */
wire [7:0] io_data_out; /* i/o output data bus */
wire [7:0] mem_data_out; /* memory output data bus */
wire [15:0] io_addr_out; /* i/o address bus */
wire [15:0] mem_addr_out; /* memory address bus */
wire [`ADCTL_IDX:0] add_sel; /* address output mux control */
wire [`ALUA_IDX:0] alua_sel; /* alu input a mux control */
wire [`ALUB_IDX:0] alub_sel; /* alu input b mux control */
wire [`ALUOP_IDX:0] aluop_sel; /* alu operation control */
wire [`DI_IDX:0] di_ctl; /* data input control */
wire [`DO_IDX:0] do_ctl; /* data output control */
wire [`HFLG_IDX:0] hflg_ctl; /* half-carry flag control */
wire [`IEF_IDX:0] ief_ctl; /* interrupt enable control */
wire [`IMD_IDX:0] imd_ctl; /* interrupt mode control */
wire [`NFLG_IDX:0] nflg_ctl; /* negate flag control */
wire [`PCCTL_IDX:0] pc_sel; /* pc source control */
wire [`PFLG_IDX:0] pflg_ctl; /* parity/overflow flag control */
wire [`STATE_IDX:0] state_nxt, state_reg; /* machine state */
wire [`TFLG_IDX:0] tflg_ctl; /* temp flag control */
wire [`TTYPE_IDX:0] tran_sel; /* transaction type */
wire [`WREG_IDX:0] wr_addr; /* register write address bus */
 
/*****************************************************************************************/
/* */
/* interface module */
/* */
/*****************************************************************************************/
extint EXTINT ( .data_in(data_in), .dma_ack(dma_ack), .ftch_tran(ftch_tran),
.halt_tran(halt_tran), .iack_tran(iack_tran),
.io_addr_out(io_addr_out), .io_data_out(io_data_out),
.io_read(io_read), .io_strobe(io_strobe), .io_tran(io_tran),
.ivec_rd(ivec_rd), .mem_addr_out(mem_addr_out),
.mem_data_out(mem_data_out), .mem_rd(mem_rd), .mem_tran(mem_tran),
.mem_wr(mem_wr), .reti_tran(reti_tran), .t1(t1),
.addr_reg_in(addr_reg_in), .clkc(clkc), .dmar_reg(dmar_reg),
.dout_io_reg(dout_io_reg), .dout_mem_reg(dout_mem_reg),
.halt_nxt(halt_nxt), .if_frst(if_frst), .inta_frst(inta_frst),
.io_data_in(io_data_in), .ivec_data_in(ivec_data_in),
.ld_dmaa(ld_dmaa), .ld_wait(ld_wait), .mem_data_in(mem_data_in),
.output_inh(output_inh), .rd_frst(rd_frst), .rd_nxt(rd_nxt),
.resetb(resetb), .reti_nxt(reti_nxt), .tran_sel(tran_sel),
.wr_frst(wr_frst) );
 
/*****************************************************************************************/
/* */
/* state machine module */
/* */
/*****************************************************************************************/
machine MACHINE ( .ld_ctrl(ld_ctrl), .state_reg(state_reg), .wait_st(wait_st),
.clkc(clkc), .dmar_reg(dmar_reg), .intr_reg(intr_reg),
.ld_inta(ld_inta), .ld_wait(ld_wait), .resetb(resetb),
.state_nxt(state_nxt), .wait_req(wait_req) );
 
/*****************************************************************************************/
/* */
/* control module */
/* */
/*****************************************************************************************/
control CONTROL ( .add_sel(add_sel), .alua_sel(alua_sel), .alub_sel(alub_sel),
.aluop_sel(aluop_sel), .cflg_en(cflg_en), .di_ctl(di_ctl),
.do_ctl(do_ctl), .ex_af_pls(ex_af_pls), .ex_bank_pls(ex_bank_pls),
.ex_dehl_inst(ex_dehl_inst), .halt_nxt(halt_nxt), .hflg_ctl(hflg_ctl),
.ief_ctl(ief_ctl), .if_frst(if_frst), .inta_frst(inta_frst),
.imd_ctl(imd_ctl), .ld_dmaa(ld_dmaa), .ld_inst(ld_inst),
.ld_inta(ld_inta), .ld_page(ld_page), .ld_wait(ld_wait),
.nflg_ctl(nflg_ctl), .output_inh(output_inh), .page_sel(page_sel),
.pc_sel(pc_sel), .pflg_ctl(pflg_ctl), .rd_frst(rd_frst),
.rd_nxt(rd_nxt), .reti_nxt(reti_nxt), .sflg_en(sflg_en),
.state_nxt(state_nxt), .tflg_ctl(tflg_ctl), .tran_sel(tran_sel),
.wr_addr(wr_addr), .wr_frst(wr_frst), .zflg_en(zflg_en),
.carry_bit(carry_bit), .dmar_reg(dmar_reg), .inst_reg(inst_reg),
.intr_reg(intr_reg), .page_reg(page_reg), .par_bit(par_bit),
.sign_bit(sign_bit), .state_reg(state_reg), .tflg_reg(tflg_reg),
.vector_int(vector_int), .xhlt_reg(xhlt_reg), .zero_bit(zero_bit) );
 
/*****************************************************************************************/
/* */
/* data path module */
/* */
/*****************************************************************************************/
datapath DATAPATH ( .addr_reg_in(addr_reg_in), .carry_bit(carry_bit), .dmar_reg(dmar_reg),
.dout_io_reg(dout_io_reg), .dout_mem_reg(dout_mem_reg),
.inst_reg(inst_reg), .intr_reg(intr_reg), .page_reg(page_reg),
.par_bit(par_bit), .sign_bit(sign_bit), .tflg_reg(tflg_reg),
.vector_int(vector_int), .xhlt_reg(xhlt_reg), .zero_bit(zero_bit),
.add_sel(add_sel), .alua_sel(alua_sel), .alub_sel(alub_sel),
.aluop_sel(aluop_sel), .clearb(clearb), .clkc(clkc), .cflg_en(cflg_en),
.data_in(data_in), .di_ctl(di_ctl), .dma_req(dma_req), .do_ctl(do_ctl),
.ex_af_pls(ex_af_pls), .ex_bank_pls(ex_bank_pls),
.ex_dehl_inst(ex_dehl_inst), .hflg_ctl(hflg_ctl), .ief_ctl(ief_ctl),
.imd_ctl(imd_ctl), .int_req(int_req), .ivec_rd(ivec_rd),
.ld_ctrl(ld_ctrl), .ld_inst(ld_inst), .ld_page(ld_page),
.nflg_ctl(nflg_ctl), .nmi_req(nmi_req), .page_sel(page_sel),
.pc_sel(pc_sel), .pflg_ctl(pflg_ctl), .resetb(resetb),
.sflg_en(sflg_en), .tflg_ctl(tflg_ctl), .wait_st(wait_st),
.wr_addr(wr_addr), .zflg_en(zflg_en) );
 
endmodule
 
 
 
 
 
 
 
 
/trunk/rtl/alu_log.v
0,0 → 1,68
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** alu logic module Rev 0.0 07/17/2011 **/
/** **/
/*******************************************************************************************/
module alu_log (logic_c, logic_hc, logic_out, alua_in, alub_in, aluop_reg, carry_bit);
 
input carry_bit; /* cpu carry flag */
input [15:0] alua_in; /* alu a input */
input [15:0] alub_in; /* alu b input */
input [`AOP_IDX:0] aluop_reg; /* alu operation control */
output logic_c; /* alu logic carry result */
output logic_hc; /* alu logic half-carry result */
output [15:0] logic_out; /* alu logic result */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
reg logic_c; /* logic carry output */
reg logic_hc; /* logic half-carry output */
reg [15:0] logic_out; /* logic output */
 
/*****************************************************************************************/
/* */
/* alu logic function */
/* */
/*****************************************************************************************/
always @ (aluop_reg or carry_bit) begin
casex (aluop_reg)
`AOP_CCF: logic_c = !carry_bit;
`AOP_SCF: logic_c = 1'b1;
default: logic_c = 1'b0;
endcase
end
 
always @ (aluop_reg or carry_bit) begin
casex (aluop_reg)
`AOP_BAND: logic_hc = 1'b1;
`AOP_CCF: logic_hc = carry_bit;
default: logic_hc = 1'b0;
endcase
end
 
always @ (aluop_reg or alua_in or alub_in) begin
casex (aluop_reg)
`AOP_BAND: logic_out = {8'h00, alua_in[7:0] & alub_in[7:0]};
`AOP_BOR: logic_out = {8'h00, alua_in[7:0] | alub_in[7:0]};
`AOP_BXOR: logic_out = {8'h00, alua_in[7:0] ^ alub_in[7:0]};
`AOP_RLD1: logic_out = {8'h00, alub_in[3:0], alua_in[3:0]};
`AOP_RLD2: logic_out = {8'h00, alua_in[7:4], alub_in[7:4]};
`AOP_RRD1: logic_out = {8'h00, alua_in[3:0], alub_in[7:4]};
`AOP_RRD2: logic_out = {8'h00, alua_in[7:4], alub_in[3:0]};
`AOP_APAS: logic_out = alua_in;
`AOP_PASS: logic_out = alub_in;
default: logic_out = 16'h0000;
endcase
end
 
endmodule
 
 
 
 
 
/trunk/rtl/machine.v
0,0 → 1,56
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** state machine module Rev 0.0 07/01/2011 **/
/** **/
/*******************************************************************************************/
module machine (ld_ctrl, state_reg, wait_st, clkc, dmar_reg, intr_reg, ld_inta, ld_wait,
resetb, state_nxt, wait_req);
 
input clkc; /* main cpu clock */
input dmar_reg; /* latched dma request */
input intr_reg; /* latched interrupt request */
input ld_inta; /* load interrupt request */
input ld_wait; /* load wait request */
input resetb; /* internal reset */
input wait_req; /* wait request */
input [`STATE_IDX:0] state_nxt; /* next processor state */
output ld_ctrl; /* load control register */
output wait_st; /* wait state identifier */
output [`STATE_IDX:0] state_reg; /* current processor state */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
wire ld_ctrl; /* advance state */
 
reg wait_st; /* wait state - inhibit op */
reg [`STATE_IDX:0] state_reg; /* current processor state */
 
/*****************************************************************************************/
/* */
/* processor state machine */
/* */
/*****************************************************************************************/
assign ld_ctrl = !ld_wait || !wait_req;
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) wait_st <= 1'b0;
else wait_st <= !ld_ctrl;
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) state_reg <= `sRST;
else if (ld_ctrl) state_reg <= (ld_inta && dmar_reg) ? `sDMA1 :
(ld_inta && intr_reg) ? `sINTA : state_nxt;
end
 
endmodule
 
 
 
 
 
/trunk/rtl/top_levl.v
0,0 → 1,535
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** Y80 processor test bench Rev 0.0 08/20/2011 **/
/** **/
/*******************************************************************************************/
`timescale 1ns / 10ps /* set time scale */
`include "version.v" /* select version */
`include "hierarchy.v" /* include sources */
 
module top_levl;
 
wire DMA_ACK; /* dma acknowledge */
wire HALT_TRAN; /* halt transaction */
wire IACK_TRAN; /* int ack transaction */
wire IO_READ; /* i/o read/write status */
wire IO_STROBE; /* i/o strobe */
wire IO_TRAN; /* i/o transaction */
wire IVEC_RD; /* int vector read strobe */
wire MEM_RD; /* mem read strobe */
wire MEM_TRAN; /* mem transaction */
wire MEM_WR; /* mem write strobe */
wire RETI_TRAN; /* reti transaction */
wire T1; /* first clock of transaction */
wire [7:0] IO_DATA_OUT; /* i/o data output bus */
wire [7:0] MEM_DATA_OUT; /* mem data output bus */
wire [15:0] IO_ADDR; /* i/o address bus */
wire [15:0] MEM_ADDR; /* mem address bus */
 
reg CLEARB; /* master (test) reset */
reg CLKC; /* clock */
reg DMA_REQ; /* dma request */
reg INT_REQ; /* interrupt request */
reg NMI_REQ; /* non-maskable interrupt req */
reg RESETB; /* internal (user) reset */
reg WAIT_REQ; /* wait request */
reg [7:0] IO_DATA_IN; /* i/o data input bus */
reg [7:0] IVEC_DATA_IN; /* vector input bus */
reg [7:0] MEM_DATA_IN; /* mem data input bus */
 
/*****************************************************************************************/
/* */
/* testbench internal variables */
/* */
/*****************************************************************************************/
reg CLR_INT; /* deassert interrupt */
reg CLR_NMI; /* deassert nmi */
reg DISABLE_BREQ; /* bus req generator control */
reg DISABLE_INT; /* interrupt generator control */
reg DISABLE_WAIT; /* wait generator control */
reg INT_TYPE; /* int type during bus req */
reg PAT_DONE; /* pattern done flag */
reg TRIG_INT; /* assert interrupt */
reg TRIG_NMI; /* assert nmi */
reg [2:0] PAT_CNT; /* counter to track patterns */
reg [15:0] CMP_ERR_L; /* error counter */
 
reg wait_dly; /* wait request state machine */
reg [5:0] breq_mach; /* bus request state machine */
 
reg TREF0, TREF1, TREF2, TREF3, TREF4; /* timing generator */
reg TREF5, TREF6, TREF7, TREF8, TREF9;
 
/*****************************************************************************************/
/* */
/* read memory and write data compare memory */
/* */
/*****************************************************************************************/
reg [7:0] rdmem [0:65535];
reg [7:0] wrmem [0:65535];
 
wire [7:0] wr_data = (MEM_TRAN) ? wrmem[MEM_ADDR] :
(IO_TRAN) ? wrmem[IO_ADDR] : 8'hxx;
 
wire [7:0] rd_data = rdmem[MEM_ADDR];
wire [7:0] iord_data = rdmem[IO_ADDR];
 
always @ (posedge TREF6) begin
IO_DATA_IN = (IO_TRAN && IO_READ && IO_STROBE && !WAIT_REQ) ? iord_data : 8'hxx;
MEM_DATA_IN = (MEM_TRAN && MEM_RD && !WAIT_REQ) ? rd_data : 8'hxx;
end
 
always @ (posedge TREF6) begin
IVEC_DATA_IN = (IACK_TRAN && IVEC_RD && !WAIT_REQ) ? rd_data : 8'hxx;
end
 
always @ (posedge TREF0) begin
IO_DATA_IN = 8'hxx;
MEM_DATA_IN = 8'hxx;
IVEC_DATA_IN = 8'hxx;
end
 
/*****************************************************************************************/
/* */
/* instantiate the design */
/* */
/*****************************************************************************************/
y80_top Y80 ( .dma_ack(DMA_ACK), .halt_tran(HALT_TRAN), .iack_tran(IACK_TRAN),
.io_addr_out(IO_ADDR), .io_data_out(IO_DATA_OUT), .io_read(IO_READ),
.io_strobe(IO_STROBE), .io_tran(IO_TRAN), .ivec_rd(IVEC_RD),
.mem_addr_out(MEM_ADDR), .mem_data_out(MEM_DATA_OUT), .mem_rd(MEM_RD),
.mem_tran(MEM_TRAN), .mem_wr(MEM_WR), .reti_tran(RETI_TRAN), .t1(T1),
.clearb(CLEARB), .clkc(CLKC), .dma_req(DMA_REQ), .int_req(INT_REQ),
.io_data_in(IO_DATA_IN), .ivec_data_in(IVEC_DATA_IN),
.mem_data_in(MEM_DATA_IN), .nmi_req(NMI_REQ), .resetb(RESETB),
.wait_req(WAIT_REQ) );
 
/*****************************************************************************************/
/* */
/* timing generator */
/* */
/*****************************************************************************************/
initial begin
TREF0 = 1;
CLKC = 1;
end
 
always begin
#10 TREF0 <= 1'b0;
TREF1 <= 1'b1;
#10 TREF1 <= 1'b0;
TREF2 <= 1'b1;
#10 TREF2 <= 1'b0;
TREF3 <= 1'b1;
#10 TREF3 <= 1'b0;
TREF4 <= 1'b1;
#10 TREF4 <= 1'b0;
TREF5 <= 1'b1;
#10 TREF5 <= 1'b0;
TREF6 <= 1'b1;
#10 TREF6 <= 1'b0;
TREF7 <= 1'b1;
#10 TREF7 <= 1'b0;
TREF8 <= 1'b1;
#10 TREF8 <= 1'b0;
TREF9 <= 1'b1;
#10 TREF9 <= 1'b0;
TREF0 <= 1'b1;
end
 
always @ (posedge TREF3) CLKC = 0;
always @ (posedge TREF8) CLKC = 1;
 
/*****************************************************************************************/
/* */
/* initialize input signals */
/* */
/*****************************************************************************************/
initial begin
CLEARB = 1;
DMA_REQ = 0;
INT_REQ = 0;
NMI_REQ = 0;
RESETB = 1;
WAIT_REQ = 0;
end
 
/*****************************************************************************************/
/* */
/* initialize testbench variables */
/* */
/*****************************************************************************************/
initial begin
breq_mach = 6'b000000;
CMP_ERR_L = 16'h0000;
CLR_INT = 0;
CLR_NMI = 0;
DISABLE_BREQ = 1;
DISABLE_INT = 1;
DISABLE_WAIT = 1;
INT_TYPE = 0;
PAT_DONE = 0;
TRIG_INT = 0;
TRIG_NMI = 0;
end
 
/*****************************************************************************************/
/* */
/* reset and clear task */
/* */
/*****************************************************************************************/
task resettask;
begin
wait(TREF6);
RESETB = 0;
wait(TREF0);
wait(TREF6);
wait(TREF0);
wait(TREF6);
RESETB = 1;
CLR_INT = 1;
CLR_NMI = 1;
wait(TREF0);
PAT_DONE = 0;
end
endtask
 
task cleartask;
begin
wait(TREF6);
CLEARB = 0;
RESETB = 0;
wait(TREF0);
wait(TREF6);
wait(TREF0);
wait(TREF6);
CLEARB = 1;
RESETB = 1;
CLR_INT = 1;
CLR_NMI = 1;
wait(TREF0);
PAT_DONE = 0;
end
endtask
 
/*****************************************************************************************/
/* */
/* error log */
/* */
/*****************************************************************************************/
always @ (posedge TREF4) begin
if (MEM_WR) CMP_ERR_L = CMP_ERR_L + (MEM_DATA_OUT != wr_data);
if (!IO_READ && IO_STROBE) CMP_ERR_L = CMP_ERR_L + (IO_DATA_OUT != wr_data);
end
 
/*****************************************************************************************/
/* */
/* end-of-pattern detect */
/* */
/*****************************************************************************************/
always @ (posedge TREF4) begin
PAT_DONE = (MEM_ADDR[15:0] == 16'h00c3);
end
 
/*****************************************************************************************/
/* */
/* interrupt/nmi request generator */
/* */
/*****************************************************************************************/
always @ (posedge TREF4) begin
TRIG_INT = !((MEM_ADDR[15:13] == 3'b110) && (MEM_ADDR[8:0] == 9'h0ff)) ||
DISABLE_INT || |breq_mach;
TRIG_NMI = !((MEM_ADDR[15:13] == 3'b110) && (MEM_ADDR[8:0] == 9'h1ff)) ||
DISABLE_INT || |breq_mach;
CLR_INT = (MEM_ADDR[15:13] == 3'b111);
CLR_NMI = (MEM_ADDR[15:13] == 3'b111);
if (T1) INT_TYPE = MEM_ADDR[8];
end
 
always @ (negedge TRIG_NMI) begin
NMI_REQ = 1;
end
 
always @ (posedge CLR_NMI) begin
NMI_REQ = 0;
end
 
always @ (negedge TRIG_INT) begin
INT_REQ = 1;
end
 
always @ (posedge CLR_INT) begin
wait(TREF0);
wait(TREF4);
wait(TREF0);
wait(TREF4);
INT_REQ = 0;
end
 
/*****************************************************************************************/
/* */
/* interrupt request generator (during Halt) */
/* */
/*****************************************************************************************/
integer j;
 
always @ (posedge HALT_TRAN) begin
for (j=0; j < 10; j=j+1) begin
wait (TREF6);
wait (TREF0);
end
wait (TREF6);
INT_REQ = HALT_TRAN && !INT_TYPE;
NMI_REQ = HALT_TRAN && INT_TYPE;
wait (TREF0);
for (j=0; j < 12; j=j+1) begin
wait (TREF6);
wait (TREF0);
end
INT_REQ = 0;
NMI_REQ = 0;
wait (TREF6);
wait (TREF0);
wait (TREF6);
NMI_REQ = HALT_TRAN && INT_TYPE;
wait (TREF0);
wait (TREF6);
wait (TREF0);
NMI_REQ = 0;
end
 
/*****************************************************************************************/
/* */
/* wait request generator */
/* */
/*****************************************************************************************/
always @ (posedge CLKC) begin
wait_dly <= T1;
end
 
always @ (posedge TREF6) WAIT_REQ = !DISABLE_WAIT && (T1 || wait_dly);
always @ (posedge TREF9) WAIT_REQ = 1'b0;
 
/*****************************************************************************************/
/* */
/* bus request generator */
/* */
/*****************************************************************************************/
always @ (posedge CLKC) begin
breq_mach <= (DISABLE_BREQ) ? 6'b000000 :
(T1) ? 6'b000001 : {breq_mach[4:0], wait_dly};
end
 
always @ (posedge TREF6) DMA_REQ = !DISABLE_BREQ &&
(T1 || |breq_mach[2:0] || (HALT_TRAN && |breq_mach));
 
/*****************************************************************************************/
/* */
/* run the test patterns */
/* */
/*****************************************************************************************/
initial begin
$readmemh("setup_hl.vm", rdmem);
cleartask;
wait (PAT_DONE);
 
DISABLE_INT = 0; /* interrupt generator on */
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h1;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("int_ops.vm", rdmem);
$readmemh("int_opsd.vm", wrmem);
wait (PAT_DONE);
 
DISABLE_INT = 1; /* interrupt generator off */
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h2;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("alu_ops.vm", rdmem);
$readmemh("alu_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h3;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("dat_mov.vm", rdmem);
$readmemh("dat_movd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h4;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("bit_ops.vm", rdmem);
$readmemh("bit_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h5;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("jmp_ops.vm", rdmem);
$readmemh("jmp_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h6;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("io_ops.vm", rdmem);
$readmemh("io_opsd.vm", wrmem);
wait (PAT_DONE);
 
DISABLE_INT = 0; /* interrupt generator on */
DISABLE_WAIT = 0; /* wait generator on */
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h1;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("int_ops.vm", rdmem);
$readmemh("int_opsd.vm", wrmem);
wait (PAT_DONE);
 
DISABLE_INT = 1; /* interrupt generator off */
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h2;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("alu_ops.vm", rdmem);
$readmemh("alu_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h3;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("dat_mov.vm", rdmem);
$readmemh("dat_movd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h4;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("bit_ops.vm", rdmem);
$readmemh("bit_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h5;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("jmp_ops.vm", rdmem);
$readmemh("jmp_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h6;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("io_ops.vm", rdmem);
$readmemh("io_opsd.vm", wrmem);
wait (PAT_DONE);
 
DISABLE_INT = 0; /* interrupt generator on */
DISABLE_BREQ = 0; /* bus req generator on */
DISABLE_WAIT = 1; /* wait generator off */
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h1;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("int_ops.vm", rdmem);
$readmemh("int_opss.vm", wrmem);
wait (PAT_DONE);
 
DISABLE_INT = 1; /* interrupt generator off */
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h2;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("alu_ops.vm", rdmem);
$readmemh("alu_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h3;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("dat_mov.vm", rdmem);
$readmemh("dat_movd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h4;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("bit_ops.vm", rdmem);
$readmemh("bit_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h5;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("jmp_ops.vm", rdmem);
$readmemh("jmp_opsd.vm", wrmem);
wait (PAT_DONE);
 
resettask;
CMP_ERR_L = 16'h0000;
PAT_CNT = 4'h6;
$readmemh("blank_xx.vm", rdmem);
$readmemh("blank_xx.vm", wrmem);
$readmemh("io_ops.vm", rdmem);
$readmemh("io_opsd.vm", wrmem);
wait (PAT_DONE);
 
$stop;
end
 
endmodule
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/trunk/rtl/alu_shft.v
0,0 → 1,68
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** alu shifter module Rev 0.0 07/17/2011 **/
/** **/
/*******************************************************************************************/
module alu_shft (shft_c, shft_out, alub_in, aluop_reg, carry_bit);
 
input carry_bit; /* carry flag input */
input [7:0] alub_in; /* alu b input */
input [`AOP_IDX:0] aluop_reg; /* alu operation control subset */
output shft_c; /* alu shifter carry output */
output [7:0] shft_out; /* alu shifter output */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
reg shft_c; /* shifter carry output */
reg [7:0] shft_out; /* shifter output */
 
/*****************************************************************************************/
/* */
/* alu shifter function */
/* */
/*****************************************************************************************/
always @ (aluop_reg or alub_in) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_RL,
`AOP_RLA: shft_c = alub_in[7];
`AOP_RLC,
`AOP_RLCA: shft_c = alub_in[7];
`AOP_RR,
`AOP_RRA: shft_c = alub_in[0];
`AOP_RRC,
`AOP_RRCA: shft_c = alub_in[0];
`AOP_SLA: shft_c = alub_in[7];
`AOP_SRA: shft_c = alub_in[0];
`AOP_SRL: shft_c = alub_in[0];
default: shft_c = 1'b0;
endcase
end
 
always @ (aluop_reg or alub_in or carry_bit) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_RL,
`AOP_RLA: shft_out = {alub_in[6:0], carry_bit};
`AOP_RLC,
`AOP_RLCA: shft_out = {alub_in[6:0], alub_in[7]};
`AOP_RR,
`AOP_RRA: shft_out = {carry_bit, alub_in[7:1]};
`AOP_RRC,
`AOP_RRCA: shft_out = {alub_in[0], alub_in[7:1]};
`AOP_SLA: shft_out = {alub_in[6:0], 1'b0};
`AOP_SRA: shft_out = {alub_in[7], alub_in[7:1]};
`AOP_SRL: shft_out = {1'b0, alub_in[7:1]};
default: shft_out = 8'h00;
endcase
end
 
endmodule
 
 
 
 
 
/trunk/rtl/version.v
0,0 → 1,63
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2010, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** version definition file Rev 0.0 03/28/2010 **/
/** **/
/*******************************************************************************************/
 
/*******************************************************************************************/
/* */
/* SELECT ONLY ONE OPTION PER GROUP! default is first option */
/* */
/*******************************************************************************************/
 
/*******************************************************************************************/
/* */
/* select CPU or MPU */
/* */
/*******************************************************************************************/
// `define Y90_CPU /* stand-alone cpu only */
// `define Y90_MPU /* integrated version */
`define Y90_180 /* clone version */
 
/*******************************************************************************************/
/* */
/* select the operation of the H flag for the CCF instruction */
/* */
/*******************************************************************************************/
`define Z80_CCF /* z80 CCF operation */
// `define Z180_CCF /* z180 CCF operation */
 
/*******************************************************************************************/
/* */
/* select the implementation of the MLT instruction */
/* */
/*******************************************************************************************/
`define MUL_NORM /* parallel multiplier */
// `define MUL_FAST /* serial multiplier */
 
/*******************************************************************************************/
/* */
/* select the value reported in the System Status Block for dreq_bus (Y90 MPU Only) */
/* */
/*******************************************************************************************/
`define DREQ_LOG /* log dreq timeouts */
// `define DREQ_ACC /* count dreq timeouts */
 
/*******************************************************************************************/
/* */
/* select the value reported in the System Status Block for wait_req (Y90 MPU Only) */
/* */
/*******************************************************************************************/
`define WAIT_LOG /* log wait timeouts */
// `define WAIT_ACC /* count wait timeouts */
 
 
 
 
 
 
 
 
 
/trunk/rtl/datapath.v
0,0 → 1,686
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** data path module Rev 0.0 08/22/2010 **/
/** **/
/*******************************************************************************************/
module datapath (addr_reg_in, carry_bit, dmar_reg, dout_io_reg, dout_mem_reg, inst_reg,
intr_reg, page_reg, par_bit, sign_bit, tflg_reg, vector_int, xhlt_reg,
zero_bit, add_sel, alua_sel, alub_sel, aluop_sel, clearb, clkc, cflg_en,
data_in, di_ctl, dma_req, do_ctl, ex_af_pls, ex_bank_pls, ex_dehl_inst,
hflg_ctl, ief_ctl, imd_ctl, int_req, ivec_rd, ld_ctrl, ld_inst, ld_page,
nflg_ctl, nmi_req, page_sel, pc_sel, pflg_ctl, resetb, sflg_en, tflg_ctl,
wait_st, wr_addr, zflg_en);
 
input cflg_en; /* carry flag control */
input clearb; /* master (testing) reset */
input clkc; /* main cpu clock */
input dma_req; /* dma request */
input ex_af_pls; /* exchange af,af' */
input ex_bank_pls; /* exchange register bank */
input ex_dehl_inst; /* exchange de,hl */
input int_req; /* interrupt request */
input ivec_rd; /* interrupt vector enable */
input ld_ctrl; /* load control register */
input ld_inst; /* load instruction register */
input ld_page; /* load page register */
input nmi_req; /* nmi request */
input resetb; /* internal (user) reset */
input sflg_en; /* sign flag control */
input wait_st; /* wait state identifier */
input zflg_en; /* zero flag control */
input [3:0] page_sel; /* instruction decode "page" control */
input [7:0] data_in; /* read data bus */
input [`ADCTL_IDX:0] add_sel; /* address output mux control */
input [`ALUA_IDX:0] alua_sel; /* alu input a mux control */
input [`ALUB_IDX:0] alub_sel; /* alu input b mux control */
input [`ALUOP_IDX:0] aluop_sel; /* alu operation control */
input [`DI_IDX:0] di_ctl; /* data input control */
input [`DO_IDX:0] do_ctl; /* data output control */
input [`HFLG_IDX:0] hflg_ctl; /* half-carry flag control */
input [`IEF_IDX:0] ief_ctl; /* interrupt enable control */
input [`IMD_IDX:0] imd_ctl; /* interrupt mode control */
input [`NFLG_IDX:0] nflg_ctl; /* negate flag control */
input [`PCCTL_IDX:0] pc_sel; /* program counter source control */
input [`PFLG_IDX:0] pflg_ctl; /* parity/overflow flag control */
input [`TFLG_IDX:0] tflg_ctl; /* temp flag control */
input [`WREG_IDX:0] wr_addr; /* register write address bus */
output carry_bit; /* carry flag */
output dmar_reg; /* latched dma request */
output intr_reg; /* latched interrupt request */
output par_bit; /* parity flag */
output sign_bit; /* sign flag */
output tflg_reg; /* temporary flag */
output vector_int; /* int vector enable */
output xhlt_reg; /* halt exit */
output zero_bit; /* zero flag */
output [3:0] page_reg; /* instruction decode "page" */
output [7:0] inst_reg; /* instruction register */
output [7:0] dout_io_reg; /* i/o write data bus */
output [7:0] dout_mem_reg; /* memory write data bus */
output [15:0] addr_reg_in; /* processor address bus */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
wire adder_c; /* math carry */
wire adder_hc; /* math half-carry */
wire adder_ov; /* math overflow result */
wire alu_carry; /* final carry */
wire alu_hcar; /* final half-carry */
wire alu_neg; /* final negate */
wire alu_one; /* final one */
wire alu_sign; /* final sign */
wire alu_zero; /* final zero */
wire bit7, bit6, bit5, bit4; /* bit decode */
wire bit3, bit2, bit1, bit0;
wire carry_bit; /* carry flag */
wire carry_daa; /* daa carry */
wire cry_nxt; /* combined carry */
wire daa_l1, daa_l2, daa_l3, daa_l4; /* decimal adjust */
wire daa_l5, daa_h1, daa_h2, daa_h3;
wire daa_h4, daa_h5, daa_h6, daa_h7;
wire daa1, daa2, daa3, daa4, daa5;
wire daa6, daa7;
wire hcar_nxt; /* combined half-carry */
wire hi_byte; /* replicate data byte */
wire ld_m_aa, ld_m_ff, ld_m_bb, ld_m_cc; /* register loads */
wire ld_m_dd, ld_m_ee, ld_m_hh, ld_m_ll;
wire ld_a_aa, ld_a_ff, ld_a_bb, ld_a_cc;
wire ld_a_dd, ld_a_ee, ld_a_hh, ld_a_ll;
wire ld_sp, ld_ix, ld_iy;
wire ld_ii, ld_rr, ld_tmp;
wire ld_dout_io, ld_dout_mem; /* load data out */
wire ld_flag; /* load flags */
wire ld_regf; /* load register file */
wire ld_tflg; /* load temp flag */
wire logic_c; /* logic carry */
wire logic_hc; /* logic half-carry */
wire one_nxt; /* combined one */
wire par_bit; /* parity flag */
wire par_nxt; /* combined parity */
wire shft_c; /* shift carry */
wire sign_bit; /* sign flag */
wire sign_nxt; /* combined sign */
wire vector_int; /* int vector enable */
wire zero_bit; /* zero flag */
wire zero_nxt; /* combined zero */
wire [7:0] bit_mask; /* mask for bit inst */
wire [7:0] daa_out; /* daa result */
wire [7:0] ff_reg_in; /* register input */
wire [7:0] aa_reg_out, ff_reg_out; /* register outputs */
wire [7:0] new_flags; /* new flag byte */
wire [7:0] rst_addr; /* restart address */
wire [7:0] shft_out; /* shift result */
wire [15:8] bsign_ext; /* address alu b sign extend */
wire [15:0] adda_in, addb_in; /* address alu inputs */
wire [15:0] adder_out; /* math result */
wire [15:0] addr_alu, addr_hl, addr_pc, addr_sp; /* address mux terms */
wire [15:0] addr_reg_in; /* address register input */
wire [15:0] alua_in, alub_in; /* alu inputs */
wire [15:0] data_bus; /* alu output */
wire [15:0] de_reg_in; /* register inputs */
wire [15:0] af_reg_out, bc_reg_out; /* register outputs */
wire [15:0] de_reg_out, hl_reg_out;
wire [15:0] logic_out; /* logic result */
 
reg alt_af_reg, alt_bnk_reg; /* main/alt select */
reg alu_ovflo; /* final ov */
reg daa_sel, daa_op; /* daa operation */
reg decr_sel, decr_op; /* decrement operation */
reg dmar_reg; /* latched dma request */
reg ex_dehl_reg; /* special exchange */
reg ief1_reg; /* int enable flag 1 */
reg ief2_reg; /* int enable flag 2 */
reg imd1_reg; /* int mode 1 */
reg imd2_reg; /* int mode 2 */
reg intr_reg; /* latched int req */
reg ld_dmar, ld_intr; /* sample int/dma */
reg ld_pc; /* load pc */
reg nmi_hld; /* nmi edge tracker */
reg nmi_reg; /* latched nmi req */
reg tflg_nxt, tflg_reg; /* temp flag */
reg valid_dma; /* valid dma request */
reg valid_int, valid_nmi, valid_xhlt; /* valid int request */
reg word_sel, word_op; /* 16-bit operation */
reg xhlt_reg; /* halt exit */
reg [3:0] page_reg /* synthesis syn_preserve=1 */;
reg [7:0] inst_reg; /* instruction register */
reg [7:0] m_aa_reg, m_ff_reg, m_bb_reg, m_cc_reg; /* individual registers */
reg [7:0] m_dd_reg, m_ee_reg, m_hh_reg, m_ll_reg;
reg [7:0] a_aa_reg, a_ff_reg, a_bb_reg, a_cc_reg;
reg [7:0] a_dd_reg, a_ee_reg, a_hh_reg, a_ll_reg;
reg [7:0] ii_reg, rr_reg;
reg [7:0] din0_reg, din1_reg; /* data input registers */
reg [7:0] dout_io_reg, dout_mem_reg; /* data output registers */
reg [15:0] adda_out; /* address alu out */
reg [15:0] int_addr; /* interrupt address */
reg [15:0] ix_reg, iy_reg; /* index registers */
reg [15:0] pc_reg; /* program counter */
reg [15:0] sp_reg; /* stack pointer */
reg [15:0] tmp_reg; /* temporary register */
reg [`ADCTL_IDX:0] addsel_reg /* synthesis syn_preserve=1 */;
reg [`ALUA_IDX:0] alua_reg /* synthesis syn_preserve=1 */;
reg [`ALUB_IDX:0] alub_reg /* synthesis syn_preserve=1 */;
reg [`ALUOP_IDX:0] aluop_reg /* synthesis syn_preserve=1 */;
 
/*****************************************************************************************/
/* */
/* input synchronization */
/* */
/*****************************************************************************************/
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
nmi_hld <= 1'b0;
valid_dma <= 1'b0;
valid_int <= 1'b0;
valid_nmi <= 1'b0;
valid_xhlt <= 1'b0;
end
else begin
nmi_hld <= (nmi_req && !valid_nmi) || (!(ivec_rd && nmi_reg) && nmi_hld);
valid_dma <= dma_req;
valid_int <= nmi_req || nmi_hld || ((&ief_ctl[1:0] || ief1_reg) && int_req);
valid_nmi <= nmi_req || nmi_hld;
valid_xhlt <= !dma_req && (nmi_req || nmi_hld || (ief1_reg && int_req));
end
end
 
/*****************************************************************************************/
/* */
/* interrupt mode and enables */
/* */
/*****************************************************************************************/
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
ief1_reg <= 1'b0;
ief2_reg <= 1'b0;
imd1_reg <= 1'b0;
imd2_reg <= 1'b0;
end
else begin
if (|ief_ctl[2:1]) ief1_reg <= (ief_ctl[1]) ? ief_ctl[0] : (ief_ctl[0] && ief2_reg);
if (|ief_ctl[2:1]) ief2_reg <= (ief_ctl[1]) ? ief_ctl[0] :
(ief_ctl[0]) ? ief2_reg : (nmi_reg && ief1_reg);
if (|imd_ctl) imd1_reg <= imd_ctl[1] && !imd_ctl[0];
if (|imd_ctl) imd2_reg <= &imd_ctl;
end
end
 
assign vector_int = imd2_reg && !nmi_reg;
 
/*****************************************************************************************/
/* */
/* interrupt pending */
/* */
/*****************************************************************************************/
always @ (pc_sel or wait_st) begin
case (pc_sel)
`PC_DMA, /* dma xfer dma sample */
`PC_INT: ld_dmar = 1'b1; /* block inst dma sample */
`PC_NILD: ld_dmar = !wait_st; /* inst end dma sample */
default: ld_dmar = 1'b0;
endcase
end
 
always @ (pc_sel or wait_st) begin
case (pc_sel)
`PC_INT: ld_intr = 1'b1; /* block inst int sample */
`PC_NILD: ld_intr = !wait_st; /* inst end int sample */
default: ld_intr = 1'b0;
endcase
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
dmar_reg <= 1'b0;
intr_reg <= 1'b0;
nmi_reg <= 1'b0;
xhlt_reg <= 1'b0;
end
else begin
if (ld_dmar) dmar_reg <= valid_dma;
if (ld_intr) intr_reg <= !valid_dma && (valid_nmi || (ief1_reg && valid_int));
if (ld_intr) nmi_reg <= !valid_dma && valid_nmi;
if (ld_intr) xhlt_reg <= !valid_dma && valid_xhlt;
end
end
 
/*****************************************************************************************/
/* */
/* register control */
/* */
/*****************************************************************************************/
always @ (pc_sel or dmar_reg or intr_reg or valid_dma or valid_int or wait_st) begin
case (pc_sel)
`PC_LD: ld_pc = !wait_st; /* load PC unconditionally */
`PC_NILD: ld_pc = !((ief1_reg && valid_int) || valid_nmi || valid_dma) && !wait_st;
`PC_NILD2: ld_pc = !(intr_reg || dmar_reg) && !wait_st; /* if no latched int */
default: ld_pc = 1'b0;
endcase
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
alt_af_reg <= 1'b0;
alt_bnk_reg <= 1'b0;
ex_dehl_reg <= 1'b0;
end
else begin
alt_af_reg <= ex_af_pls ^ alt_af_reg;
alt_bnk_reg <= ex_bank_pls ^ alt_bnk_reg;
ex_dehl_reg <= ex_dehl_inst && ld_ctrl;
end
end
 
assign ld_flag = (sflg_en || zflg_en || |hflg_ctl || |pflg_ctl || |nflg_ctl ||
cflg_en) && !wait_st;
assign ld_regf = wr_addr[`WR_REG] && !wait_st;
 
/*****************************************************************************************/
/* */
/* cpu register interface */
/* */
/*****************************************************************************************/
assign ff_reg_in = (ld_flag) ? new_flags : data_bus[7:0];
assign de_reg_in = (ex_dehl_reg) ? hl_reg_out : data_bus;
 
assign ld_m_aa = ld_regf && wr_addr[`WR_AA] && !alt_af_reg;
assign ld_m_ff = ((ld_regf && wr_addr[`WR_FF]) || ld_flag) && !alt_af_reg;
assign ld_m_bb = ld_regf && wr_addr[`WR_BB] && !alt_bnk_reg;
assign ld_m_cc = ld_regf && wr_addr[`WR_CC] && !alt_bnk_reg;
assign ld_m_dd = ld_regf && wr_addr[`WR_DD] && !alt_bnk_reg;
assign ld_m_ee = ld_regf && wr_addr[`WR_EE] && !alt_bnk_reg;
assign ld_m_hh = ld_regf && wr_addr[`WR_HH] && !alt_bnk_reg;
assign ld_m_ll = ld_regf && wr_addr[`WR_LL] && !alt_bnk_reg;
assign ld_a_aa = ld_regf && wr_addr[`WR_AA] && alt_af_reg;
assign ld_a_ff = ((ld_regf && wr_addr[`WR_FF]) || ld_flag) && alt_af_reg;
assign ld_a_bb = ld_regf && wr_addr[`WR_BB] && alt_bnk_reg;
assign ld_a_cc = ld_regf && wr_addr[`WR_CC] && alt_bnk_reg;
assign ld_a_dd = ld_regf && wr_addr[`WR_DD] && alt_bnk_reg;
assign ld_a_ee = ld_regf && wr_addr[`WR_EE] && alt_bnk_reg;
assign ld_a_hh = ld_regf && wr_addr[`WR_HH] && alt_bnk_reg;
assign ld_a_ll = ld_regf && wr_addr[`WR_LL] && alt_bnk_reg;
assign ld_sp = ld_regf && wr_addr[`WR_SP];
assign ld_ix = ld_regf && wr_addr[`WR_IX];
assign ld_iy = ld_regf && wr_addr[`WR_IY];
assign ld_ii = ld_regf && wr_addr[`WR_II];
assign ld_rr = ld_regf && wr_addr[`WR_RR];
assign ld_tmp = ld_regf && wr_addr[`WR_TMP];
 
assign af_reg_out = (alt_af_reg) ? {a_aa_reg, a_ff_reg} : {m_aa_reg, m_ff_reg};
assign bc_reg_out = (alt_bnk_reg) ? {a_bb_reg, a_cc_reg} : {m_bb_reg, m_cc_reg};
assign de_reg_out = (alt_bnk_reg) ? {a_dd_reg, a_ee_reg} : {m_dd_reg, m_ee_reg};
assign hl_reg_out = (alt_bnk_reg) ? {a_hh_reg, a_ll_reg} : {m_hh_reg, m_ll_reg};
assign aa_reg_out = af_reg_out[15:8];
assign ff_reg_out = af_reg_out[7:0];
assign carry_bit = af_reg_out[0];
assign par_bit = af_reg_out[2];
assign sign_bit = af_reg_out[7];
assign zero_bit = af_reg_out[6];
assign hi_byte = (wr_addr[`WR_AA] && !wr_addr[`WR_FF]) ||
(wr_addr[`WR_BB] && !wr_addr[`WR_CC]) ||
(wr_addr[`WR_DD] && !wr_addr[`WR_EE]) ||
(wr_addr[`WR_HH] && !wr_addr[`WR_LL]) ||
wr_addr[`WR_II] || wr_addr[`WR_RR];
 
/*****************************************************************************************/
/* */
/* cpu registers */
/* */
/*****************************************************************************************/
always @ (posedge clkc or negedge clearb) begin
if (!clearb) begin
m_aa_reg <= 8'h00;
m_ff_reg <= 8'h00;
m_bb_reg <= 8'h00;
m_cc_reg <= 8'h00;
m_dd_reg <= 8'h00;
m_ee_reg <= 8'h00;
m_hh_reg <= 8'h00;
m_ll_reg <= 8'h00;
a_aa_reg <= 8'h00;
a_ff_reg <= 8'h00;
a_bb_reg <= 8'h00;
a_cc_reg <= 8'h00;
a_dd_reg <= 8'h00;
a_ee_reg <= 8'h00;
a_hh_reg <= 8'h00;
a_ll_reg <= 8'h00;
ix_reg <= 16'h0000;
iy_reg <= 16'h0000;
end
else begin
if (ld_m_aa) m_aa_reg <= data_bus[15:8];
if (ld_m_ff) m_ff_reg <= ff_reg_in;
if (ld_m_bb) m_bb_reg <= data_bus[15:8];
if (ld_m_cc) m_cc_reg <= data_bus[7:0];
if (ld_m_dd) m_dd_reg <= de_reg_in[15:8];
if (ld_m_ee) m_ee_reg <= de_reg_in[7:0];
if (ld_m_hh) m_hh_reg <= data_bus[15:8];
if (ld_m_ll) m_ll_reg <= data_bus[7:0];
if (ld_a_aa) a_aa_reg <= data_bus[15:8];
if (ld_a_ff) a_ff_reg <= ff_reg_in;
if (ld_a_bb) a_bb_reg <= data_bus[15:8];
if (ld_a_cc) a_cc_reg <= data_bus[7:0];
if (ld_a_dd) a_dd_reg <= de_reg_in[15:8];
if (ld_a_ee) a_ee_reg <= de_reg_in[7:0];
if (ld_a_hh) a_hh_reg <= data_bus[15:8];
if (ld_a_ll) a_ll_reg <= data_bus[7:0];
if (ld_ix) ix_reg <= data_bus;
if (ld_iy) iy_reg <= data_bus;
end
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
ii_reg <= 8'h00;
pc_reg <= 16'h0000;
rr_reg <= 8'h00;
sp_reg <= 16'h0000;
tmp_reg <= 16'h0000;
end
else begin
if (ld_ii) ii_reg <= data_bus[15:8];
if (ld_pc) pc_reg <= data_bus;
if (ld_rr) rr_reg <= data_bus[15:8];
if (ld_sp) sp_reg <= data_bus;
if (ld_tmp) tmp_reg <= (ivec_rd) ? {ii_reg, data_in} : data_bus;
end
end
 
/*****************************************************************************************/
/* */
/* temporary flag */
/* */
/*****************************************************************************************/
assign ld_tflg = |tflg_ctl && !wait_st;
 
always @ (tflg_ctl or alu_one or alu_zero or ff_reg_out) begin
casex (tflg_ctl)
`TFLG_1: tflg_nxt = alu_one; /* blk set if done (next xfr) */
`TFLG_Z: tflg_nxt = alu_zero; /* blk set if done (this xfr) */
`TFLG_B: tflg_nxt = alu_zero || !ff_reg_out[2]; /* blk cp set if done or match */
default: tflg_nxt = 1'b0;
endcase
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) tflg_reg <= 1'b0;
else if (ld_tflg) tflg_reg <= tflg_nxt;
end
 
/*****************************************************************************************/
/* */
/* data input and data output registers */
/* */
/*****************************************************************************************/
assign ld_dout_io = do_ctl[1] && !wait_st;
assign ld_dout_mem = do_ctl[2] && !wait_st;
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
din0_reg <= 8'h00;
din1_reg <= 8'h00;
dout_io_reg <= 8'h00;
dout_mem_reg <= 8'h00;
end
else begin
if (di_ctl[0]) din0_reg <= data_in;
if (di_ctl[1]) din1_reg <= data_in;
if (ld_dout_io) dout_io_reg <= data_bus[7:0];
if (ld_dout_mem) dout_mem_reg <= (do_ctl[0]) ? data_bus[15:8] : data_bus[7:0];
end
end
 
/*****************************************************************************************/
/* */
/* instruction and page registers */
/* */
/*****************************************************************************************/
always @ (posedge clkc or negedge resetb) begin
if (!resetb) inst_reg <= 8'h00;
else if (ld_inst) inst_reg <= data_in;
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) page_reg <= 4'b0000;
else if (ld_page && ld_ctrl) page_reg <= page_sel;
end
 
/*****************************************************************************************/
/* */
/* alu control pipeline registers */
/* */
/*****************************************************************************************/
always @ (aluop_sel) begin
case (aluop_sel) //synopsys parallel_case
`ALUOP_DAA: daa_sel = 1'b1;
default: daa_sel = 1'b0;
endcase
end
 
always @ (aluop_sel) begin
case (aluop_sel) //synopsys parallel_case
`ALUOP_BDEC: decr_sel = 1'b1;
default: decr_sel = 1'b0;
endcase
end
 
always @ (aluop_sel) begin
case (aluop_sel) //synopsys parallel_case
`ALUOP_ADC,
`ALUOP_ADD,
`ALUOP_PASS,
`ALUOP_SBC,
`ALUOP_SUB: word_sel = 1'b1;
default: word_sel = 1'b0;
endcase
end
 
always @ (posedge clkc or negedge resetb) begin
if (!resetb) begin
addsel_reg <= `ADD_RSTVAL;
alua_reg <= `ALUA_RSTVAL;
alub_reg <= `ALUB_RSTVAL;
aluop_reg <= `ALUOP_RSTVAL;
daa_op <= 1'b0;
decr_op <= 1'b0;
word_op <= 1'b0;
end
else if (ld_ctrl) begin
addsel_reg <= add_sel;
alua_reg <= alua_sel;
alub_reg <= alub_sel;
aluop_reg <= aluop_sel;
daa_op <= daa_sel;
decr_op <= decr_sel;
word_op <= word_sel;
end
end
 
/*****************************************************************************************/
/* */
/* bit manipulation constant generator */
/* */
/*****************************************************************************************/
assign bit7 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b111);
assign bit6 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b110);
assign bit5 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b101);
assign bit4 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b100);
assign bit3 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b011);
assign bit2 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b010);
assign bit1 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b001);
assign bit0 = (inst_reg[7] && !inst_reg[6]) ^ (inst_reg[5:3] == 3'b000);
assign bit_mask = {bit7, bit6, bit5, bit4, bit3, bit2, bit1, bit0};
 
/*****************************************************************************************/
/* */
/* decimal adjust accumulator constant generator */
/* */
/*****************************************************************************************/
assign daa_l1 = !ff_reg_out[1] && !ff_reg_out[4] &&
(!aa_reg_out[3] || (aa_reg_out[3] && !aa_reg_out[2] && !aa_reg_out[1]));
assign daa_l2 = !ff_reg_out[1] && !ff_reg_out[4] &&
(aa_reg_out[3] && (aa_reg_out[2] || aa_reg_out[1]));
assign daa_l3 = !ff_reg_out[1] && ff_reg_out[4] && (!aa_reg_out[3] && !aa_reg_out[2]);
assign daa_l4 = ff_reg_out[1] && !ff_reg_out[4] &&
(!aa_reg_out[3] || (aa_reg_out[3] && !aa_reg_out[2] && !aa_reg_out[1]));
assign daa_l5 = ff_reg_out[1] && ff_reg_out[4] &&
((!aa_reg_out[3] && aa_reg_out[2] && aa_reg_out[1]) || aa_reg_out[3]);
assign daa_h1 = !ff_reg_out[0] && (aa_reg_out[7] && (aa_reg_out[6] || aa_reg_out[5]));
assign daa_h2 = ff_reg_out[0] &&
(!aa_reg_out[7] && !aa_reg_out[6] && (!aa_reg_out[5] || !aa_reg_out[4]));
assign daa_h3 = !ff_reg_out[0] &&
(aa_reg_out[7] && (aa_reg_out[6] || aa_reg_out[5] || aa_reg_out[4]));
assign daa_h4 = ff_reg_out[0] && (!aa_reg_out[7] && !aa_reg_out[6]);
assign daa_h5 = ff_reg_out[0] &&
((aa_reg_out[6] && aa_reg_out[5] && aa_reg_out[4]) || aa_reg_out[7]);
assign daa_h6 = !ff_reg_out[0] &&
((!aa_reg_out[6] && !aa_reg_out[5] && !aa_reg_out[4]) || !aa_reg_out[7]);
assign daa_h7 = ff_reg_out[0] && ((aa_reg_out[6] && aa_reg_out[5]) || aa_reg_out[7]);
 
assign daa1 = daa_l2 || daa_l3 || daa_l5;
assign daa2 = daa_l2 || daa_l3;
assign daa3 = daa_l5;
assign daa4 = daa_l5 && (daa_h6 || daa_h7);
assign daa5 = (daa_l1 && (daa_h1 || daa_h2)) || (daa_l2 && (daa_h2 || daa_h3)) ||
(daa_l3 && (daa_h1 || daa_h4)) || (daa_l4 && daa_h5) ||
(daa_l5 && daa_h6);
assign daa6 = (daa_l1 && (daa_h1 || daa_h2)) || (daa_l2 && (daa_h2 || daa_h3)) ||
(daa_l3 && (daa_h1 || daa_h4)) || (daa_l5 && daa_h6);
assign daa7 = (daa_l4 && daa_h5) || (daa_l5 && (daa_h6 || daa_h7));
 
assign daa_out = {daa7, daa6, daa5, daa4, daa3, daa2, daa1, 1'b0};
assign carry_daa = (daa_l1 && (daa_h1 || daa_h2)) || (daa_l2 && (daa_h2 || daa_h3)) ||
(daa_l3 && (daa_h1 || daa_h4)) || (daa_l4 && daa_h5) ||
(daa_l5 && daa_h7);
 
/*****************************************************************************************/
/* */
/* interrupt/restart address generator */
/* */
/*****************************************************************************************/
assign rst_addr = {2'b00, inst_reg[5:3], 3'b000};
 
always @ (nmi_reg or imd2_reg or imd1_reg or din0_reg or din1_reg) begin
casex ({nmi_reg, imd2_reg, imd1_reg})
3'b001: int_addr = 16'h0038;
3'b010: int_addr = {din1_reg, din0_reg};
3'b1xx: int_addr = 16'h0066;
default: int_addr = 16'h0000;
endcase
end
 
/*****************************************************************************************/
/* */
/* alu input selects */
/* */
/*****************************************************************************************/
aluamux AMUX ( .adda_in(adda_in), .alua_in(alua_in), .alua_reg(alua_reg),
.aa_reg_out(aa_reg_out), .bit_mask(bit_mask), .daa_out(daa_out),
.hl_reg_out(hl_reg_out), .ii_reg(ii_reg), .int_addr(int_addr),
.ix_reg(ix_reg), .iy_reg(iy_reg), .pc_reg(pc_reg), .rr_reg(rr_reg),
.rst_addr(rst_addr) );
 
alubmux BMUX ( .addb_in(addb_in), .alub_in(alub_in), .alub_reg(alub_reg),
.af_reg_out(af_reg_out), .bc_reg_out(bc_reg_out), .de_reg_out(de_reg_out),
.din0_reg(din0_reg), .din1_reg(din1_reg), .hl_reg_out(hl_reg_out),
.ix_reg(ix_reg), .iy_reg(iy_reg), .pc_reg(pc_reg), .sp_reg(sp_reg),
.tmp_reg(tmp_reg) );
 
/*****************************************************************************************/
/* */
/* function units */
/* */
/*****************************************************************************************/
alu_log ALULOG ( .logic_c(logic_c), .logic_hc(logic_hc), .logic_out(logic_out),
.alua_in(alua_in), .alub_in(alub_in), .aluop_reg(aluop_reg[`AOP_IDX:0]),
.carry_bit(carry_bit) );
 
alu_math ALUMATH ( .adder_c(adder_c), .adder_hc(adder_hc), .adder_out(adder_out),
.adder_ov(adder_ov), .alua_in(alua_in), .alub_in(alub_in),
.aluop_reg(aluop_reg[`AOP_IDX:0]), .carry_bit(carry_bit),
.carry_daa(carry_daa), .daa_op(daa_op), .word_op(word_op) );
 
alu_shft ALUSHFT ( .shft_c(shft_c), .shft_out(shft_out), .alub_in(alub_in[7:0]),
.aluop_reg(aluop_reg[`AOP_IDX:0]), .carry_bit(carry_bit) );
 
aluout ALUOUT ( .cry_nxt(cry_nxt), .data_bus(data_bus), .hcar_nxt(hcar_nxt),
.one_nxt(one_nxt), .par_nxt(par_nxt), .sign_nxt(sign_nxt),
.zero_nxt(zero_nxt), .adder_c(adder_c), .adder_hc(adder_hc),
.adder_out(adder_out), .hi_byte(hi_byte), .logic_c(logic_c),
.logic_hc(logic_hc), .logic_out(logic_out), .shft_c(shft_c),
.shft_out(shft_out), .unit_sel(aluop_reg[7:6]), .word_op(word_op) );
 
/*****************************************************************************************/
/* */
/* flag generation */
/* */
/*****************************************************************************************/
assign alu_carry = decr_op ^ cry_nxt;
assign alu_hcar = (hflg_ctl[1]) ? hflg_ctl[0] : (decr_op ^ hcar_nxt);
assign alu_neg = (nflg_ctl[1]) ? nflg_ctl[0] : sign_nxt;
assign alu_one = one_nxt;
assign alu_sign = sign_nxt;
assign alu_zero = zero_nxt;
 
always @ (pflg_ctl or adder_ov or ief2_reg or par_nxt or zero_nxt) begin
case (pflg_ctl)
`PFLG_V: alu_ovflo = adder_ov;
`PFLG_1: alu_ovflo = 1'b1;
`PFLG_P: alu_ovflo = par_nxt;
`PFLG_B: alu_ovflo = !zero_nxt;
`PFLG_F: alu_ovflo = ief2_reg;
default: alu_ovflo = 1'b0;
endcase
end
 
assign new_flags[7] = (sflg_en) ? alu_sign : ff_reg_out[7];
assign new_flags[6] = (zflg_en) ? alu_zero : ff_reg_out[6];
assign new_flags[5] = ff_reg_out[5];
assign new_flags[4] = (|hflg_ctl) ? alu_hcar : ff_reg_out[4];
assign new_flags[3] = ff_reg_out[3];
assign new_flags[2] = (|pflg_ctl) ? alu_ovflo : ff_reg_out[2];
assign new_flags[1] = (|nflg_ctl) ? alu_neg : ff_reg_out[1];
assign new_flags[0] = (cflg_en) ? alu_carry : ff_reg_out[0];
 
/*****************************************************************************************/
/* */
/* address alu */
/* */
/*****************************************************************************************/
assign bsign_ext = {addb_in[7], addb_in[7], addb_in[7], addb_in[7],
addb_in[7], addb_in[7], addb_in[7], addb_in[7]};
 
always @ (aluop_reg or adda_in or addb_in or bsign_ext) begin
case (aluop_reg)
`ALUOP_ADS: adda_out = adda_in + {bsign_ext[15:8], addb_in[7:0]};
`ALUOP_ADD: adda_out = adda_in + addb_in;
`ALUOP_APAS: adda_out = adda_in;
default: adda_out = addb_in;
endcase
end
 
assign addr_alu = (addsel_reg[`AD_ALU]) ? adda_out : 16'h0000;
assign addr_hl = (addsel_reg[`AD_HL]) ? hl_reg_out : 16'h0000;
assign addr_pc = (addsel_reg[`AD_PC]) ? pc_reg : 16'h0000;
assign addr_sp = (addsel_reg[`AD_SP]) ? sp_reg : 16'h0000;
 
assign addr_reg_in = addr_alu | addr_hl | addr_pc | addr_sp;
 
endmodule
 
 
 
 
 
 
 
 
 
 
 
/trunk/rtl/aluout.v
0,0 → 1,94
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** alu function unit combiner module Rev 0.0 07/24/2011 **/
/** **/
/*******************************************************************************************/
module aluout (cry_nxt, data_bus, hcar_nxt, one_nxt, par_nxt, sign_nxt, zero_nxt, adder_c,
adder_hc, adder_out, hi_byte, logic_c, logic_hc, logic_out, shft_c, shft_out,
unit_sel, word_op);
 
input adder_c; /* math carry result */
input adder_hc; /* math half-carry result */
input hi_byte; /* shift left byte control */
input logic_c; /* logic carry result */
input logic_hc; /* logic half-carry result */
input shft_c; /* shift carry result */
input word_op; /* word operation */
input [1:0] unit_sel; /* alu function unit select */
input [7:0] shft_out; /* shift unit result */
input [15:0] adder_out; /* math unit result */
input [15:0] logic_out; /* logic unit result */
output cry_nxt; /* carry flag next */
output hcar_nxt; /* half-carry flag next */
output one_nxt; /* one flag next */
output par_nxt; /* parity flag next */
output sign_nxt; /* sign flag next */
output zero_nxt; /* zero flag next */
output [15:0] data_bus; /* datapath data bus */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
wire one_nxt, par_nxt, sign_nxt, zero_nxt;
wire [15:0] data_bus;
 
reg cry_nxt, hcar_nxt;
reg [15:0] alu_result;
 
/*****************************************************************************************/
/* */
/* alu function unit combination */
/* */
/*****************************************************************************************/
always @ (unit_sel or adder_out or logic_out or shft_out) begin
casex (unit_sel)
2'b01: alu_result = adder_out;
2'b1x: alu_result = {8'h00, shft_out};
default: alu_result = logic_out;
endcase
end
 
/*****************************************************************************************/
/* */
/* alu flag outputs */
/* */
/*****************************************************************************************/
always @ (unit_sel or adder_c or logic_c or shft_c) begin
casex (unit_sel)
2'b01: cry_nxt = adder_c;
2'b1x: cry_nxt = shft_c;
default: cry_nxt = logic_c;
endcase
end
 
always @ (unit_sel or adder_hc or logic_hc) begin
casex (unit_sel)
2'b01: hcar_nxt = adder_hc;
2'b1x: hcar_nxt = 1'b0;
default: hcar_nxt = logic_hc;
endcase
end
 
assign one_nxt = ~|alu_result[7:1] && alu_result[0];
assign par_nxt = ~^alu_result[7:0];
assign sign_nxt = (word_op) ? alu_result[15] : alu_result[7];
assign zero_nxt = (word_op) ? ~|alu_result[15:0] : ~|alu_result[7:0];
 
/*****************************************************************************************/
/* */
/* alu output left shift */
/* */
/*****************************************************************************************/
assign data_bus = (hi_byte) ? {alu_result[7:0], alu_result[7:0]} : alu_result[15:0];
 
endmodule
 
 
 
 
 
 
/trunk/rtl/alu_math.v
0,0 → 1,141
/*******************************************************************************************/
/** **/
/** COPYRIGHT (C) 2011, SYSTEMYDE INTERNATIONAL CORPORATION, ALL RIGHTS RESERVED **/
/** **/
/** alu math module Rev 0.0 07/29/2011 **/
/** **/
/*******************************************************************************************/
module alu_math (adder_c, adder_hc, adder_out, adder_ov, alua_in, alub_in, aluop_reg,
carry_bit, carry_daa, daa_op, word_op);
 
input carry_bit; /* carry flag */
input carry_daa; /* carry for daa */
input daa_op; /* daa operation */
input word_op; /* word operation */
input [15:0] alua_in; /* alu a input */
input [15:0] alub_in; /* alu b input */
input [`AOP_IDX:0] aluop_reg; /* alu operation control subset */
output adder_c; /* alu math carry result */
output adder_hc; /* alu math half-carry result */
output adder_ov; /* alu math overflow result */
output [15:0] adder_out; /* alu math result */
 
/*****************************************************************************************/
/* */
/* signal declarations */
/* */
/*****************************************************************************************/
wire adder_c; /* alu math carry out */
wire adder_hc; /* alu math half-carry out */
wire [15:8] bsign_ext; /* alu b sign extend */
wire [15:0] adder_out; /* alu math out */
 
reg alu_cin; /* alu math carry in */
reg adder_ov; /* alu math overflow out */
reg [4:0] alu0_out; /* alu math nibble 0 */
reg [4:0] alu1_out; /* alu math nibble 1 */
reg [4:0] alu2_out; /* alu math nibble 2 */
reg [4:0] alu3_out; /* alu math nibble 3 */
 
/*****************************************************************************************/
/* */
/* alu math carry input, sign extend */
/* */
/*****************************************************************************************/
always @ (aluop_reg or carry_bit) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_ADC,
`AOP_BADC,
`AOP_SBC,
`AOP_BSBC: alu_cin = carry_bit;
default: alu_cin = 1'b0;
endcase
end
 
assign bsign_ext = {alub_in[7], alub_in[7], alub_in[7], alub_in[7],
alub_in[7], alub_in[7], alub_in[7], alub_in[7]};
 
/*****************************************************************************************/
/* */
/* alu math function unit */
/* */
/*****************************************************************************************/
always @ (aluop_reg or alua_in or alub_in or alu_cin) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_SUB,
`AOP_BSUB,
`AOP_SBC,
`AOP_BSBC: alu0_out = alua_in[3:0] - alub_in[3:0] - alu_cin;
default: alu0_out = alua_in[3:0] + alub_in[3:0] + alu_cin;
endcase
end
 
always @ (aluop_reg or alua_in or alub_in or alu0_out) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_SUB,
`AOP_BSUB,
`AOP_SBC,
`AOP_BSBC: alu1_out = alua_in[7:4] - alub_in[7:4] - alu0_out[4];
default: alu1_out = alua_in[7:4] + alub_in[7:4] + alu0_out[4];
endcase
end
 
always @ (aluop_reg or alua_in or alub_in or alu1_out or bsign_ext) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_ADS: alu2_out = alua_in[11:8] + bsign_ext[11:8] + alu1_out[4];
`AOP_SUB,
`AOP_BSUB,
`AOP_SBC,
`AOP_BSBC: alu2_out = alua_in[11:8] - alub_in[11:8] - alu1_out[4];
default: alu2_out = alua_in[11:8] + alub_in[11:8] + alu1_out[4];
endcase
end
 
always @ (aluop_reg or alua_in or alub_in or alu2_out or bsign_ext) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_ADS: alu3_out = alua_in[15:12] + bsign_ext[15:12] + alu2_out[4];
`AOP_SUB,
`AOP_BSUB,
`AOP_SBC,
`AOP_BSBC: alu3_out = alua_in[15:12] - alub_in[15:12] - alu2_out[4];
default: alu3_out = alua_in[15:12] + alub_in[15:12] + alu2_out[4];
endcase
end
 
assign adder_out = {alu3_out[3:0], alu2_out[3:0], alu1_out[3:0], alu0_out[3:0]};
 
/*****************************************************************************************/
/* */
/* alu math flag generation */
/* */
/*****************************************************************************************/
assign adder_c = (word_op) ? alu3_out[4] :
(daa_op) ? carry_daa : alu1_out[4];
assign adder_hc = (word_op) ? alu2_out[4] : alu0_out[4];
 
always @ (aluop_reg or alua_in or alub_in or alu3_out or alu1_out or bsign_ext) begin
casex (aluop_reg) //synopsys parallel_case
`AOP_ADC,
`AOP_ADD: adder_ov = (!alu3_out[3] && alua_in[15] && alub_in[15]) ||
( alu3_out[3] && !alua_in[15] && !alub_in[15]);
`AOP_BADC,
`AOP_BADD,
`AOP_BDEC: adder_ov = (!alu1_out[3] && alua_in[7] && alub_in[7]) ||
( alu1_out[3] && !alua_in[7] && !alub_in[7]);
`AOP_SBC,
`AOP_SUB: adder_ov = (!alu3_out[3] && alua_in[15] && !alub_in[15]) ||
( alu3_out[3] && !alua_in[15] && alub_in[15]);
`AOP_BSBC,
`AOP_BSUB: adder_ov = (!alu1_out[3] && alua_in[7] && !alub_in[7]) ||
( alu1_out[3] && !alua_in[7] && alub_in[7]);
default: adder_ov = 1'b0;
endcase
end
 
endmodule
 
 
 
 
 
 
/trunk/doc/execute.xls Cannot display: file marked as a binary type. svn:mime-type = application/vnd.ms-excel
trunk/doc/execute.xls Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/vnd.ms-excel \ No newline at end of property Index: trunk/mem/int_opss.vm =================================================================== --- trunk/mem/int_opss.vm (nonexistent) +++ trunk/mem/int_opss.vm (revision 2) @@ -0,0 +1,19 @@ +@3CC4 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 +@3CD4 D4 +@5A3C 5A +@966A 03 05 07 09 0B 0D 0F 11 13 15 17 19 1B 1D 1F 21 +@967A 23 25 27 29 +@FF32 CE 3C 21 84 B7 ED 92 FF 10 D6 78 96 00 2E 00 01 +@FF42 1F 00 44 5A 44 5A 00 69 00 2E 00 01 1F 00 00 DE +@FF52 00 69 00 2D 00 01 1E 00 00 DD 00 69 00 2C 00 01 +@FF62 1D 00 01 DC 00 69 00 2B 00 01 1C 00 01 DB 16 69 +@FF72 00 2A 00 01 1B 00 00 DA 94 93 00 29 00 01 1A 00 +@FF82 00 D9 04 6A 00 28 00 01 19 00 00 D8 04 42 00 27 +@FF92 00 01 18 00 00 D7 00 55 00 26 00 01 17 00 12 D5 +@FFA2 16 00 12 D4 15 00 11 D3 00 55 00 55 14 00 00 D3 +@FFB2 44 00 44 00 13 00 00 D2 12 00 03 D1 11 00 01 D0 +@FFC2 10 00 00 CF 0F 00 01 CE 0E 00 FF CC 0D 00 00 CC +@FFD2 0C 00 00 CB 0B 00 FF C9 0A 00 FF C8 09 00 FE C7 +@FFE2 08 00 FE C6 07 00 01 C6 06 00 01 C5 05 00 00 50 +@FFF2 04 00 00 50 03 00 02 C2 02 00 01 C1 01 00 + Index: trunk/mem/bit_ops.vm =================================================================== --- trunk/mem/bit_ops.vm (nonexistent) +++ trunk/mem/bit_ops.vm (revision 2) @@ -0,0 +1,79 @@ +@0000 C3 00 01 +@00C0 00 18 FD +@0100 31 00 00 3E FF AF 47 4F 57 5F 67 6F DD 21 FE 7F +@0110 FD 21 01 72 F5 C5 D5 E5 DD E5 FD E5 CB C7 CB C8 +@0120 CB D1 CB DA CB E3 CB EC CB F5 F5 C5 D5 E5 AF 47 +@0130 4F 57 5F 67 6F CB C0 CB C9 CB D2 CB DB CB E4 CB +@0140 ED CB F7 F5 C5 D5 E5 AF 47 4F 57 5F 67 6F CB C1 +@0150 CB CA CB D3 CB DC CB E5 CB EF CB F0 F5 C5 D5 E5 +@0160 AF 47 4F 57 5F 67 6F CB C2 CB CB CB D4 CB DD CB +@0170 E7 CB E8 CB F1 F5 C5 D5 E5 AF 47 4F 57 5F 67 6F +@0180 CB C3 CB CC CB D5 CB DF CB E0 CB E9 CB F2 F5 C5 +@0190 D5 E5 AF 47 4F 57 5F 67 6F CB C4 CB CD CB D7 CB +@01A0 D8 CB E1 CB EA CB F3 F5 C5 D5 E5 AF 47 4F 57 5F +@01B0 67 6F CB C5 CB CF CB D0 CB D9 CB E2 CB EB CB F4 +@01C0 F5 C5 D5 E5 AF 47 4F 57 5F 21 00 70 CB C6 CB FF +@01D0 F5 C5 D5 E5 78 23 CB CE CB F8 F5 C5 D5 E5 47 23 +@01E0 CB D6 CB F9 F5 C5 D5 E5 4F 23 CB DE CB FA F5 C5 +@01F0 D5 E5 57 23 CB E6 CB FB F5 C5 D5 E5 5F 23 CB EE +@0200 CB FC F5 C5 D5 E5 21 06 70 CB F6 CB FD F5 C5 D5 +@0210 E5 21 07 70 CB FE F5 C5 D5 E5 DD CB 07 C6 DD CB +@0220 06 CE DD CB 05 D6 DD CB 04 DE DD CB 03 E6 DD CB +@0230 02 EE DD CB 01 F6 DD CB 00 FE FD CB FF C6 FD CB +@0240 FE CE FD CB FD D6 FD CB FC DE FD CB FB E6 FD CB +@0250 FA EE FD CB F9 F6 FD CB F8 FE 3E FF B7 47 4F 57 +@0260 5F 67 6F DD 21 01 74 FD 21 FE 70 F5 C5 D5 E5 DD +@0270 E5 FD E5 CB 87 CB 88 CB 91 CB 9A CB A3 CB AC CB +@0280 B5 F5 C5 D5 E5 3E FF 47 4F 57 5F 67 6F CB 80 CB +@0290 89 CB 92 CB 9B CB A4 CB AD CB B7 F5 C5 D5 E5 3E +@02A0 FF 47 4F 57 5F 67 6F CB 81 CB 8A CB 93 CB 9C CB +@02B0 A5 CB AF CB B0 F5 C5 D5 E5 3E FF 47 4F 57 5F 67 +@02C0 6F CB 82 CB 8B CB 94 CB 9D CB A7 CB A8 CB B1 F5 +@02D0 C5 D5 E5 3E FF 47 4F 57 5F 67 6F CB 83 CB 8C CB +@02E0 95 CB 9F CB A0 CB A9 CB B2 F5 C5 D5 E5 3E FF 47 +@02F0 4F 57 5F 67 6F CB 84 CB 8D CB 97 CB 98 CB A1 CB +@0300 AA CB B3 F5 C5 D5 E5 3E FF 47 4F 57 5F 67 6F CB +@0310 85 CB 8F CB 90 CB 99 CB A2 CB AB CB B4 F5 C5 D5 +@0320 E5 3E FF 47 4F 57 5F 21 80 84 CB 86 CB BF F5 C5 +@0330 D5 E5 78 23 CB 8E CB B8 F5 C5 D5 E5 47 23 CB 96 +@0340 CB B9 F5 C5 D5 E5 4F 23 CB 9E CB BA F5 C5 D5 E5 +@0350 57 23 CB A6 CB BB F5 C5 D5 E5 5F 23 CB AE CB BC +@0360 F5 C5 D5 E5 21 86 84 CB B6 CB BD F5 C5 D5 E5 21 +@0370 87 84 CB BE F5 C5 D5 E5 DD CB 00 86 DD CB FF 8E +@0380 DD CB FE 96 DD CB FD 9E DD CB FC A6 DD CB FB AE +@0390 DD CB FA B6 DD CB F9 BE FD CB 02 86 FD CB 03 8E +@03A0 FD CB 04 96 FD CB 05 9E FD CB 06 A6 FD CB 07 AE +@03B0 FD CB 08 B6 FD CB 09 BE AF 47 4F 57 5F 67 6F DD +@03C0 21 00 A0 FD 21 00 90 31 00 C0 F1 31 00 C0 CB 7F +@03D0 F5 31 02 C0 F1 31 FE BF CB 77 F5 31 04 C0 F1 31 +@03E0 FC BF CB 6F F5 31 06 C0 F1 31 FA BF CB 67 F5 3E +@03F0 F7 CB 5F F5 3E 04 CB 57 F5 3E FD CB 4F F5 3E 01 +@0400 CB 47 F5 AF 01 CC F0 11 0F AA 21 55 33 CB 78 F5 +@0410 CB 70 F5 CB 68 F5 CB 60 F5 CB 58 F5 CB 50 F5 CB +@0420 48 F5 CB 40 F5 CB 79 F5 CB 71 F5 CB 69 F5 CB 61 +@0430 F5 CB 59 F5 CB 51 F5 CB 49 F5 CB 41 F5 CB 7A F5 +@0440 CB 72 F5 CB 6A F5 CB 62 F5 CB 5A F5 CB 52 F5 CB +@0450 4A F5 CB 42 F5 CB 7B F5 CB 73 F5 CB 6B F5 CB 63 +@0460 F5 CB 5B F5 CB 53 F5 CB 4B F5 CB 43 F5 CB 7C F5 +@0470 CB 74 F5 CB 6C F5 CB 64 F5 CB 5C F5 CB 54 F5 CB +@0480 4C F5 CB 44 F5 CB 7D F5 CB 75 F5 CB 6D F5 CB 65 +@0490 F5 CB 5D F5 CB 55 F5 CB 4D F5 CB 45 F5 21 00 85 +@04A0 CB 7E F5 23 CB 76 F5 23 CB 6E F5 23 CB 66 F5 23 +@04B0 CB 5E F5 23 CB 56 F5 23 CB 4E F5 23 CB 46 F5 DD +@04C0 21 02 85 FD 21 64 85 DD CB 3E 7E F5 DD CB 3F 76 +@04D0 F5 DD CB 40 6E F5 DD CB 41 66 F5 DD CB 42 5E F5 +@04E0 DD CB 43 56 F5 DD CB 44 4E F5 DD CB 45 46 F5 FD +@04F0 CB 1C 7E F5 FD CB 1D 76 F5 FD CB 1E 6E F5 FD CB +@0500 1F 66 F5 FD CB 20 5E F5 FD CB 21 56 F5 FD CB 22 +@0510 4E F5 FD CB 23 46 F5 21 00 01 C3 C0 00 +@7000 00 00 00 00 00 00 00 00 +@7100 FF FF FF FF FF FF FF FF +@71F9 00 00 00 00 00 00 00 00 +@73FA FF FF FF FF FF FF FF FF +@7FFE 00 00 00 00 00 00 00 00 +@8480 FF FF FF FF FF FF FF FF +@8500 80 BF 20 10 F7 40 FD FE +@8540 00 00 FF FF FF FF 00 00 +@8580 00 FF 00 FF FF 00 FF 00 +@C000 FF 7F FF 40 00 DF 00 10 + Index: trunk/mem/int_opsd.vm =================================================================== --- trunk/mem/int_opsd.vm (nonexistent) +++ trunk/mem/int_opsd.vm (revision 2) @@ -0,0 +1,11 @@ +@3CC4 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 +@5A3C 5A +@966A 03 05 07 09 0B 0D 0F 11 13 15 17 19 1B 1D 1F 21 23 25 27 29 +@FF32 CE 3C 21 84 B7 ED 92 FF 10 D6 78 96 00 2E 00 01 1F 00 44 5A 44 5A 00 69 00 2E 00 01 1F 00 00 DE +@FF52 00 69 00 2D 00 01 1E 00 00 DD 00 69 00 2C 00 01 1D 00 01 DC 00 69 00 2B 00 01 1C 00 01 DB 16 69 +@FF72 00 2A 00 01 1B 00 00 DA 94 93 00 29 00 01 1A 00 00 D9 04 6A 00 28 00 01 19 00 00 D8 04 42 00 27 +@FF92 00 01 18 00 00 D7 00 55 00 26 00 01 17 00 12 D5 16 00 12 D4 15 00 11 D3 00 55 00 55 14 00 00 D3 +@FFB2 44 00 44 00 13 00 00 D2 12 00 04 D1 11 00 01 D0 10 00 01 CF 0F 00 01 CE 0E 00 FF CC 0D 00 00 CC +@FFD2 0C 00 00 CB 0B 00 FF C9 0A 00 FF C8 09 00 FE C7 08 00 FE C6 07 00 01 C6 06 00 01 C5 05 00 00 50 +@FFF2 04 00 00 50 03 00 02 C2 02 00 02 C1 01 00 + Index: trunk/mem/alu_ops.vm =================================================================== --- trunk/mem/alu_ops.vm (nonexistent) +++ trunk/mem/alu_ops.vm (revision 2) @@ -0,0 +1,59 @@ +@0000 C3 00 01 +@00C0 00 18 FD +@0100 31 00 00 3E FF AF 47 4F 57 5F 67 6F DD 21 78 56 FD 21 9A 78 3F F5 3F F5 37 F5 37 F5 3E 80 2F F5 +@0120 2F F5 AF ED 44 F5 3C ED 44 F5 3E 02 ED 44 F5 ED 44 F5 3E 80 ED 44 F5 AF 0B C5 03 C5 03 C5 1B D5 +@0140 13 D5 2B E5 23 E5 DD 2B DD E5 FD 2B FD E5 3B 3B FD E5 DD 23 DD E5 FD E5 FD 23 DD E5 FD E5 31 A0 +@0160 FF 33 33 F5 C5 D5 E5 01 54 54 11 34 12 21 B9 FD 09 F5 C5 D5 E5 19 F5 C5 D5 E5 29 F5 C5 D5 E5 39 +@0180 F5 C5 D5 E5 DD E5 FD E5 DD 09 F5 C5 D5 E5 DD E5 FD E5 DD 19 F5 C5 D5 E5 DD E5 FD E5 DD 39 F5 C5 +@01A0 D5 E5 DD E5 FD E5 DD 29 F5 C5 D5 E5 DD E5 FD E5 FD 09 F5 C5 D5 E5 DD E5 FD E5 FD 19 F5 C5 D5 E5 +@01C0 DD E5 FD E5 FD 39 F5 C5 D5 E5 DD E5 FD E5 FD 29 F5 C5 D5 E5 DD E5 FD E5 31 00 FF AF 3C F5 3E 0F +@01E0 3C F5 3E 7F 3C F5 3E FF 3C F5 3D F5 3D F5 3E 10 3D F5 3E 80 3D F5 C5 D5 E5 DD E5 FD E5 04 14 14 +@0200 24 24 24 F5 C5 D5 E5 0C 0C 0C 1C 1C 2C F5 C5 D5 E5 05 05 05 15 15 25 F5 C5 D5 E5 0D 1D 1D 2D 2D +@0220 2D F5 C5 D5 E5 DD E5 FD E5 34 F5 23 35 F5 DD 34 0F DD 35 10 FD 34 FE FD 35 FF F5 C5 D5 E5 DD E5 +@0240 FD E5 AF ED 4A F5 C5 D5 E5 37 ED 4A F5 C5 D5 E5 A7 ED 5A F5 C5 D5 E5 37 ED 5A F5 C5 D5 E5 A7 ED +@0260 6A F5 C5 D5 E5 37 ED 6A F5 C5 D5 E5 A7 ED 7A F5 C5 D5 E5 37 ED 7A F5 C5 D5 E5 A7 ED 42 F5 C5 D5 +@0280 E5 37 ED 42 F5 C5 D5 E5 A7 ED 52 F5 C5 D5 E5 37 ED 52 F5 C5 D5 E5 A7 ED 72 F5 C5 D5 E5 37 ED 72 +@02A0 F5 C5 D5 E5 A7 ED 62 F5 C5 D5 E5 37 ED 62 F5 C5 D5 E5 31 00 FE DD 21 00 10 FD 21 00 20 AF 37 3E +@02C0 AA 06 C0 0E 30 16 0C 1E 03 26 55 2E 8A A0 F5 3E AA A1 F5 3E AA A2 F5 3E AA A3 F5 3E AA A4 F5 3E +@02E0 AA A5 F5 E6 5F F5 21 00 30 3E AA A6 F5 DD A6 00 F5 3E AA FD A6 00 F5 37 3E AA 06 60 0E 30 16 AE +@0300 1E 07 26 AA 2E 8A A8 F5 3E AA A9 F5 3E AA AA F5 3E AA AB F5 3E AA AC F5 3E AA AD F5 EE FF F5 21 +@0320 01 30 3E AA AE F5 DD AE 01 F5 3E AA FD AE 01 F5 37 3E AA 06 60 0E 30 16 AE 1E 07 26 55 2E 00 B0 +@0340 F5 3E AA B1 F5 3E AA B2 F5 3E AA B3 F5 3E AA B4 F5 3E 00 B5 F5 F6 55 F5 21 02 30 3E 8E B6 F5 3E +@0360 0F DD B6 02 F5 3E 20 FD B6 02 F5 37 3E AA 06 60 0E 30 16 AE 1E 07 26 55 2E F6 80 F5 3E AA 81 F5 +@0380 3E AA 82 F5 3E AA 83 F5 3E AA 84 F5 3E AA 85 F5 C6 55 F5 21 03 30 3E AA 86 F5 3E 0F DD 86 03 F5 +@03A0 3E 20 FD 86 03 F5 37 3E AA 06 60 0E 30 16 AE 1E 07 26 55 2E F6 90 F5 3E AA 91 F5 3E AA 92 F5 3E +@03C0 AA 93 F5 3E AA 94 F5 3E AA 95 F5 D6 55 F5 21 04 30 3E AA 96 F5 3E 0F DD 96 04 F5 3E 20 FD 96 04 +@03E0 F5 37 3E AA 06 60 0E 30 16 AE 1E 07 26 55 2E F6 B8 F5 B9 F5 BA F5 BB F5 BC F5 BD F5 3E B4 FE 55 +@0400 F5 21 05 30 3E AA BE F5 3E 0F DD BE 05 F5 3E 20 FD BE 05 F5 37 3E AA 06 60 0E 30 16 AE 1E 07 26 +@0420 55 2E F6 88 F5 3E AA 89 F5 3E AA 8A F5 3E AA 8B F5 3E AA 8C F5 3E AA 8D F5 CE 55 F5 21 06 30 3E +@0440 AA 8E F5 3E 0F DD 8E 06 F5 3E 20 FD 8E 06 F5 37 3E AA 06 60 0E 30 16 AE 1E 07 26 55 2E F6 98 F5 +@0460 3E AA 99 F5 3E AA 9A F5 3E AA 9B F5 3E AA 9C F5 3E AA 9D F5 DE 55 F5 21 07 30 3E AA 9E F5 3E 0F +@0480 DD 9E 07 F5 3E 20 FD 9E 07 F5 37 AF F5 3E 38 A7 F5 BF F5 87 F5 8F F5 B7 F5 37 8F F5 3F 9F F5 37 +@04A0 9F F5 97 F5 31 00 FD AF 47 4F 57 5F 67 6F 3E 35 CB 07 F5 CB 07 F5 CB 07 F5 CB 07 F5 CB 07 F5 CB +@04C0 0F F5 CB 0F F5 CB 0F F5 CB 0F F5 CB 0F F5 CB 17 F5 CB 17 F5 CB 17 F5 CB 17 F5 CB 17 F5 CB 1F F5 +@04E0 CB 1F F5 CB 1F F5 CB 1F F5 CB 1F F5 CB 27 F5 CB 27 F5 CB 27 F5 CB 27 F5 CB 27 F5 3E 35 CB 2F F5 +@0500 CB 2F F5 CB 2F F5 3E 86 CB 2F F5 CB 2F F5 3E 35 CB 3F F5 CB 3F F5 CB 3F F5 3E 86 CB 3F F5 CB 3F +@0520 F5 C5 D5 E5 AF 01 67 58 11 CB 9A 21 F0 21 CB 00 C5 CB 01 C5 CB 02 D5 CB 03 D5 CB 04 E5 CB 05 E5 +@0540 F5 01 67 58 11 CB 9A 21 F0 21 CB 08 C5 CB 09 C5 CB 0A D5 CB 0B D5 CB 0C E5 CB 0D E5 F5 01 67 58 +@0560 11 CB 9A 21 F0 21 CB 10 C5 CB 11 C5 CB 12 D5 CB 13 D5 CB 14 E5 CB 15 E5 F5 01 67 58 11 CB 9A 21 +@0580 F0 21 CB 18 C5 CB 19 C5 CB 1A D5 CB 1B D5 CB 1C E5 CB 1D E5 F5 01 67 58 11 CB 9A 21 F0 21 CB 20 +@05A0 C5 CB 21 C5 CB 22 D5 CB 23 D5 CB 24 E5 CB 25 E5 F5 01 67 58 11 CB 9A 21 F0 21 CB 28 C5 CB 29 C5 +@05C0 CB 2A D5 CB 2B D5 CB 2C E5 CB 2D E5 F5 01 67 58 11 CB 9A 21 F0 21 CB 38 C5 CB 39 C5 CB 3A D5 CB +@05E0 3B D5 CB 3C E5 CB 3D E5 F5 21 08 30 CB 06 F5 23 CB 0E F5 23 CB 16 F5 23 CB 1E F5 23 CB 26 F5 3F +@0600 23 CB 2E F5 23 CB 3E F5 DD CB 08 06 F5 DD CB 09 0E F5 DD CB 0A 16 F5 DD CB 0B 1E F5 DD CB 0C 26 +@0620 F5 DD CB 0D 2E F5 DD CB 0E 3E F5 FD CB 08 06 F5 FD CB 09 0E F5 FD CB 0A 16 F5 FD CB 0B 1E F5 FD +@0640 CB 0C 26 F5 FD CB 0D 2E F5 FD CB 0E 3E F5 AF 47 4F 57 5F 67 6F 3E 35 07 F5 07 F5 07 F5 07 F5 07 +@0660 F5 0F F5 0F F5 0F F5 0F F5 0F F5 17 F5 17 F5 17 F5 17 F5 17 F5 1F F5 1F F5 1F F5 1F F5 1F F5 31 +@0680 00 FA F1 31 00 FB 27 F5 31 02 FA F1 31 FE FA 27 F5 31 04 FA F1 31 FC FA 27 F5 31 06 FA F1 31 FA +@06A0 FA 27 F5 31 08 FA F1 31 F8 FA 27 F5 31 0A FA F1 31 F6 FA 27 F5 31 0C FA F1 31 F4 FA 27 F5 31 0E +@06C0 FA F1 31 F2 FA 27 F5 31 10 FA F1 31 F0 FA 27 F5 31 12 FA F1 31 EE FA 27 F5 31 14 FA F1 31 EC FA +@06E0 27 F5 31 16 FA F1 31 EA FA 27 F5 31 18 FA F1 31 E8 FA 27 F5 AF 31 CC FA 21 0F 30 3E 67 ED 6F F5 +@0700 23 ED 67 F5 21 00 01 C3 C0 00 +@1000 C7 A2 80 01 01 01 01 01 67 67 67 67 67 67 67 +@2000 82 AB 78 78 60 60 78 60 F0 F0 F0 F0 F0 F0 F0 +@3000 3C 55 55 FF AA AA FF AA C5 C5 C5 C4 C5 C5 C5 2F E3 +@78CB 2E C0 +@BC9E F0 80 +@CA02 1F 00 +@FA00 00 99 00 8A 10 72 00 A6 00 9B 10 B1 01 24 01 1F 11 01 02 77 12 88 03 73 13 66 + Index: trunk/mem/setup_hl.vm =================================================================== --- trunk/mem/setup_hl.vm (nonexistent) +++ trunk/mem/setup_hl.vm (revision 2) @@ -0,0 +1,4 @@ +@0000 C3 00 01 +@00C0 00 18 FD +@0100 21 00 01 C3 C0 00 + Index: trunk/mem/bit_opsd.vm =================================================================== --- trunk/mem/bit_opsd.vm (nonexistent) +++ trunk/mem/bit_opsd.vm (revision 2) @@ -0,0 +1,34 @@ +@7000 01 02 04 08 10 20 40 80 +@7100 FE FD FB F7 EF DF BF 7F +@71F8 01 80 40 20 10 08 04 02 01 00 00 00 00 00 00 00 +@73FA 7F BF DF EF F7 FB FD FE +@7FF8 00 00 00 00 00 00 80 40 20 10 08 04 02 01 00 00 +@8480 FE FD FB F7 EF DF BF 7F +@BF60 54 00 14 00 54 00 14 00 14 00 54 00 14 00 54 00 +@BF70 54 00 54 00 14 00 14 00 14 00 14 00 54 00 54 00 +@BF80 54 00 54 00 54 00 54 00 14 00 14 00 54 00 14 00 +@BF90 14 00 54 00 14 00 54 00 14 00 54 00 14 00 54 00 +@BFA0 14 00 14 00 54 00 54 00 14 00 14 00 54 00 54 00 +@BFB0 14 00 14 00 14 00 14 00 54 00 54 00 54 00 54 00 +@BFC0 54 00 14 00 54 00 14 00 54 00 14 00 54 00 14 00 +@BFD0 54 00 54 00 14 00 14 00 54 00 54 00 14 00 14 00 +@BFE0 54 00 54 00 54 00 54 00 14 00 14 00 14 00 14 00 +@BFF0 10 01 50 FD 10 04 50 F7 10 10 50 DF BD 40 FD 7F +@FEF8 87 84 FF FF FF FF 84 FF 06 84 FF FF FF FF 84 FF +@FF08 85 04 FF FF FF FF 84 FF 84 84 7F FF FF FF 84 FF +@FF18 83 84 FF 7F FF FF 84 FF 82 84 FF FF 7F FF 84 FF +@FF28 81 84 FF FF FF 7F 84 FF 80 84 FF FF FF FF 84 7F +@FF38 FE BF DF EF F7 FB 84 FD FD FE BF DF EF F7 84 FB +@FF48 FB FD FE BF DF EF 84 F7 F7 FB FD FE BF DF 84 EF +@FF58 EF F7 FB FD FE BF 84 DF DF EF F7 FB FD FE 84 BF +@FF68 BF DF EF F7 FB FD 84 FE FE 70 01 74 FF FF FF FF +@FF78 FF FF 84 FF 07 70 00 00 00 00 44 00 86 70 00 00 +@FF88 00 00 44 00 05 F0 00 00 00 00 44 00 04 70 80 00 +@FF98 00 00 44 00 03 70 00 80 00 00 44 00 02 70 00 00 +@FFA8 80 00 44 00 01 70 00 00 00 80 44 00 00 70 00 00 +@FFB8 00 00 44 80 01 40 20 10 08 04 44 02 02 01 40 20 +@FFC8 10 08 44 04 04 02 01 40 20 10 44 08 08 04 02 01 +@FFD8 40 20 44 10 10 08 04 02 01 40 44 20 20 10 08 04 +@FFE8 02 01 44 40 40 20 10 08 04 02 44 01 01 72 FE 7F +@FFF8 00 00 00 00 00 00 44 00 + Index: trunk/mem/blank_xx.vm =================================================================== --- trunk/mem/blank_xx.vm (nonexistent) +++ trunk/mem/blank_xx.vm (revision 2) @@ -0,0 +1,8192 @@ +@0000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@00A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@00B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@00C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@00D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@00E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@00F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@01A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@01B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@01C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@01D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@01E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@01F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@02A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@02B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@02C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@02D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@02E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@02F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@03A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@03B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@03C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@03D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@03E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@03F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@04A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@04B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@04C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@04D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@04E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@04F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@05A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@05B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@05C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@05D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@05E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@05F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@06A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@06B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@06C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@06D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@06E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@06F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@07A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@07B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@07C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@07D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@07E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@07F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@08A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@08B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@08C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@08D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@08E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@08F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@09A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@09B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@09C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@09D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@09E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@09F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@0FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@10A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@10B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@10C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@10D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@10E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@10F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@11A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@11B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@11C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@11D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@11E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@11F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@12A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@12B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@12C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@12D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@12E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@12F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@13A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@13B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@13C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@13D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@13E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@13F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@14A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@14B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@14C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@14D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@14E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@14F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@15A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@15B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@15C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@15D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@15E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@15F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@16A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@16B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@16C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@16D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@16E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@16F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@17A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@17B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@17C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@17D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@17E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@17F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@18A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@18B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@18C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@18D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@18E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@18F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@19A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@19B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@19C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@19D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@19E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@19F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@1FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@20A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@20B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@20C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@20D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@20E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@20F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@21A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@21B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@21C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@21D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@21E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@21F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@22A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@22B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@22C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@22D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@22E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@22F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@23A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@23B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@23C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@23D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@23E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@23F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@24A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@24B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@24C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@24D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@24E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@24F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@25A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@25B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@25C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@25D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@25E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@25F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@26A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@26B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@26C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@26D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@26E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@26F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@27A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@27B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@27C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@27D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@27E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@27F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@28A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@28B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@28C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@28D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@28E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@28F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@29A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@29B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@29C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@29D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@29E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@29F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@2FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@30A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@30B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@30C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@30D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@30E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@30F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@31A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@31B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@31C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@31D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@31E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@31F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@32A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@32B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@32C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@32D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@32E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@32F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@33A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@33B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@33C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@33D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@33E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@33F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@34A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@34B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@34C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@34D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@34E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@34F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@35A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@35B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@35C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@35D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@35E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@35F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@36A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@36B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@36C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@36D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@36E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@36F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@37A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@37B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@37C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@37D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@37E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@37F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@38A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@38B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@38C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@38D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@38E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@38F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@39A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@39B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@39C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@39D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@39E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@39F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@3FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@40A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@40B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@40C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@40D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@40E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@40F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@41A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@41B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@41C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@41D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@41E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@41F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@42A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@42B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@42C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@42D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@42E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@42F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@43A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@43B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@43C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@43D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@43E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@43F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@44A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@44B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@44C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@44D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@44E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@44F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@45A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@45B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@45C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@45D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@45E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@45F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@46A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@46B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@46C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@46D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@46E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@46F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@47A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@47B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@47C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@47D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@47E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@47F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@48A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@48B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@48C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@48D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@48E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@48F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@49A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@49B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@49C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@49D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@49E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@49F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@4FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@50A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@50B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@50C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@50D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@50E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@50F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@51A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@51B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@51C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@51D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@51E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@51F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@52A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@52B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@52C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@52D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@52E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@52F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@53A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@53B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@53C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@53D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@53E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@53F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@54A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@54B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@54C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@54D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@54E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@54F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@55A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@55B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@55C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@55D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@55E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@55F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@56A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@56B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@56C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@56D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@56E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@56F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@57A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@57B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@57C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@57D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@57E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@57F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@58A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@58B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@58C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@58D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@58E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@58F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@59A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@59B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@59C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@59D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@59E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@59F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@5FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@60A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@60B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@60C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@60D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@60E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@60F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@61A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@61B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@61C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@61D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@61E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@61F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@62A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@62B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@62C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@62D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@62E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@62F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@63A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@63B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@63C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@63D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@63E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@63F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@64A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@64B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@64C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@64D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@64E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@64F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@65A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@65B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@65C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@65D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@65E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@65F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@66A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@66B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@66C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@66D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@66E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@66F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@67A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@67B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@67C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@67D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@67E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@67F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@68A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@68B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@68C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@68D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@68E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@68F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@69A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@69B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@69C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@69D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@69E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@69F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@6FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@70A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@70B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@70C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@70D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@70E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@70F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@71A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@71B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@71C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@71D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@71E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@71F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@72A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@72B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@72C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@72D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@72E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@72F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@73A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@73B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@73C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@73D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@73E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@73F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@74A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@74B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@74C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@74D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@74E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@74F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@75A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@75B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@75C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@75D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@75E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@75F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@76A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@76B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@76C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@76D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@76E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@76F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@77A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@77B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@77C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@77D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@77E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@77F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@78A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@78B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@78C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@78D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@78E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@78F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@79A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@79B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@79C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@79D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@79E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@79F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@7FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@80A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@80B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@80C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@80D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@80E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@80F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@81A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@81B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@81C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@81D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@81E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@81F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@82A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@82B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@82C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@82D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@82E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@82F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@83A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@83B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@83C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@83D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@83E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@83F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@84A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@84B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@84C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@84D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@84E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@84F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@85A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@85B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@85C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@85D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@85E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@85F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@86A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@86B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@86C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@86D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@86E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@86F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@87A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@87B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@87C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@87D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@87E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@87F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@88A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@88B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@88C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@88D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@88E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@88F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@89A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@89B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@89C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@89D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@89E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@89F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@8FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@90A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@90B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@90C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@90D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@90E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@90F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@91A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@91B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@91C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@91D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@91E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@91F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@92A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@92B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@92C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@92D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@92E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@92F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@93A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@93B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@93C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@93D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@93E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@93F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@94A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@94B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@94C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@94D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@94E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@94F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@95A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@95B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@95C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@95D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@95E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@95F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@96A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@96B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@96C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@96D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@96E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@96F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@97A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@97B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@97C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@97D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@97E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@97F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@98A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@98B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@98C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@98D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@98E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@98F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@99A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@99B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@99C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@99D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@99E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@99F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9A90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9AA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9AB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9AC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9AD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9AE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9AF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9B90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9BA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9BB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9BC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9BD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9BE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9BF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9C90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9CA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9CB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9CC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9CD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9CE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9CF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9D90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9DA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9DB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9DC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9DD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9DE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9DF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9E90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9EA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9EB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9EC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9ED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9EE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9EF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9F90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9FA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9FB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9FC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9FD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9FE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@9FF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A0A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A0B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A0C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A0D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A0E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A0F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A1A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A1B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A1C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A1D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A1E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A1F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A2A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A2B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A2C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A2D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A2E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A2F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A3A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A3B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A3C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A3D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A3E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A3F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A4A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A4B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A4C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A4D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A4E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A4F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A5A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A5B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A5C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A5D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A5E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A5F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A6A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A6B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A6C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A6D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A6E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A6F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A7A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A7B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A7C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A7D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A7E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A7F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A8A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A8B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A8C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A8D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A8E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A8F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A9A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A9B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A9C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A9D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A9E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@A9F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AA90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AAA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AAB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AAC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AAD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AAE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AAF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AB90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ABA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ABB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ABC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ABD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ABE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ABF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AC90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ACA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ACB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ACC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ACD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ACE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ACF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AD90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ADA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ADB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ADC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ADD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ADE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ADF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AE90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AEA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AEB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AEC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AEE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AEF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AF90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AFA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AFB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AFC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AFD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AFE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@AFF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B0A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B0B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B0C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B0D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B0E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B0F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B1A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B1B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B1C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B1D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B1E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B1F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B2A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B2B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B2C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B2D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B2E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B2F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B3A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B3B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B3C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B3D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B3E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B3F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B4A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B4B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B4C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B4D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B4E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B4F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B5A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B5B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B5C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B5D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B5E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B5F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B6A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B6B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B6C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B6D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B6E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B6F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B7A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B7B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B7C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B7D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B7E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B7F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B8A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B8B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B8C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B8D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B8E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B8F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B9A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B9B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B9C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B9D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B9E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@B9F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BA90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BAA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BAB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BAC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BAD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BAE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BAF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BB90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BBA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BBB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BBC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BBD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BBE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BBF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BC90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BCA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BCB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BCC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BCD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BCE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BCF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BD90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BDA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BDB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BDC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BDD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BDE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BDF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BE90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BEA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BEB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BEC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BEE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BEF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BF90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BFA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BFB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BFC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BFD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BFE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@BFF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C0A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C0B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C0C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C0D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C0E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C0F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C1A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C1B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C1C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C1D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C1E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C1F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C2A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C2B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C2C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C2D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C2E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C2F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C3A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C3B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C3C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C3D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C3E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C3F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C4A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C4B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C4C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C4D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C4E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C4F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C5A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C5B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C5C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C5D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C5E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C5F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C6A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C6B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C6C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C6D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C6E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C6F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C7A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C7B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C7C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C7D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C7E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C7F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C8A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C8B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C8C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C8D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C8E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C8F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C9A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C9B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C9C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C9D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C9E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@C9F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CA90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CAA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CAB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CAC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CAD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CAE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CAF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CB90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CBA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CBB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CBC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CBD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CBE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CBF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CC90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CCA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CCB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CCC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CCD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CCE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CCF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CD90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CDA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CDB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CDC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CDD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CDE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CDF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CE90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CEA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CEB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CEC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CEE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CEF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CF90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CFA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CFB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CFC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CFD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CFE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@CFF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D0A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D0B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D0C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D0D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D0E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D0F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D1A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D1B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D1C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D1D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D1E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D1F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D2A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D2B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D2C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D2D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D2E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D2F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D3A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D3B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D3C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D3D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D3E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D3F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D4A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D4B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D4C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D4D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D4E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D4F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D5A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D5B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D5C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D5D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D5E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D5F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D6A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D6B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D6C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D6D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D6E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D6F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D7A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D7B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D7C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D7D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D7E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D7F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D8A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D8B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D8C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D8D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D8E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D8F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D9A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D9B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D9C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D9D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D9E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@D9F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DA90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DAA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DAB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DAC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DAD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DAE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DAF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DB90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DBA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DBB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DBC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DBD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DBE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DBF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DC90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DCA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DCB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DCC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DCD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DCE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DCF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DD90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DDA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DDB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DDC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DDD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DDE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DDF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DE90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DEA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DEB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DEC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DEE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DEF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DF90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DFA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DFB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DFC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DFD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DFE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@DFF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E0A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E0B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E0C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E0D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E0E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E0F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E1A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E1B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E1C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E1D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E1E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E1F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E2A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E2B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E2C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E2D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E2E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E2F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E3A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E3B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E3C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E3D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E3E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E3F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E4A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E4B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E4C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E4D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E4E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E4F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E5A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E5B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E5C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E5D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E5E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E5F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E6A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E6B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E6C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E6D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E6E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E6F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E7A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E7B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E7C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E7D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E7E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E7F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E8A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E8B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E8C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E8D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E8E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E8F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E9A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E9B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E9C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E9D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E9E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@E9F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EA90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EAA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EAB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EAC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EAD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EAE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EAF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EB90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EBA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EBB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EBC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EBD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EBE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EBF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EC90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ECA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ECB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ECC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ECD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ECE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ECF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@ED90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EDA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EDB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EDC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EDD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EDE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EDF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EE90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EEA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EEB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EEC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EEE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EEF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EF90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EFA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EFB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EFC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EFD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EFE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@EFF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F000 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F010 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F020 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F030 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F040 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F050 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F060 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F070 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F080 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F090 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F0A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F0B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F0C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F0D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F0E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F0F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F100 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F110 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F120 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F130 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F140 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F150 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F160 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F170 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F180 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F190 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F1A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F1B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F1C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F1D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F1E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F1F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F200 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F210 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F220 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F230 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F240 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F250 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F260 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F270 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F280 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F290 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F2A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F2B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F2C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F2D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F2E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F2F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F300 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F310 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F320 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F330 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F340 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F350 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F360 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F370 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F380 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F390 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F3A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F3B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F3C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F3D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F3E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F3F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F400 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F410 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F420 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F430 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F440 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F450 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F460 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F470 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F480 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F490 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F4A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F4B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F4C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F4D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F4E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F4F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F500 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F510 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F520 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F530 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F540 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F550 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F560 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F570 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F580 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F590 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F5A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F5B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F5C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F5D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F5E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F5F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F600 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F610 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F620 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F630 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F640 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F650 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F660 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F670 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F680 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F690 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F6A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F6B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F6C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F6D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F6E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F6F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F700 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F710 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F720 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F730 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F740 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F750 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F760 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F770 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F780 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F790 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F7A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F7B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F7C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F7D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F7E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F7F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F800 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F810 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F820 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F830 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F850 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F860 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F870 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F880 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F890 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F8A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F8B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F8C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F8D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F8E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F8F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F900 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F910 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F920 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F930 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F940 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F950 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F960 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F970 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F980 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F990 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F9A0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F9B0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F9C0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F9D0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F9E0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@F9F0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FA90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FAA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FAB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FAC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FAD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FAE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FAF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FB90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FBA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FBB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FBC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FBD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FBE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FBF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FC90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FCA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FCB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FCC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FCD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FCE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FCF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FD90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FDA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FDB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FDC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FDD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FDE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FDF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FE90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FEA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FEB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FEC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FED0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FEE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FEF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF00 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF10 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF30 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF40 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF50 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF60 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF70 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF80 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FF90 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FFA0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FFB0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FFC0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FFD0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FFE0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + +@FFF0 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx + Index: trunk/mem/alu_opsd.vm =================================================================== --- trunk/mem/alu_opsd.vm (nonexistent) +++ trunk/mem/alu_opsd.vm (revision 2) @@ -0,0 +1,38 @@ +@1008 CE B3 CF 33 CE 33 33 +@2008 E1 78 E0 F8 E0 F8 78 +@2DA8 FF FF FF FF FF FF 72 38 00 00 00 00 FF FF FF FF +@3008 8B E2 8B E2 8A E2 62 F7 2E +@78CB 2F BF +@BC9E F1 7F +@CA02 20 FF +@FAC8 04 63 00 62 72 38 F0 0F 72 38 01 3F FF 00 01 FE 00 00 01 FF 01 FE 00 00 01 FF FF FF 00 00 57 00 +@FAE8 03 13 96 82 06 77 01 67 91 85 85 84 05 17 11 01 05 06 04 78 94 90 84 99 +@FC00 44 35 44 6A 44 D4 45 A8 45 51 44 A3 45 51 45 A8 44 D4 44 6A 44 35 44 6A 45 D4 45 A9 44 53 44 A6 +@FC20 45 53 45 A9 44 D4 44 6A 04 00 80 00 81 00 80 00 81 00 04 00 85 00 05 00 05 00 80 00 05 00 84 00 +@FC40 81 00 80 00 01 00 85 00 81 00 84 00 85 00 85 00 85 00 04 00 78 10 F0 10 65 4D CB 4D 33 2C 67 2C +@FC60 80 00 F8 10 F0 10 E5 CD CB CD 33 2C 67 2C 81 00 E0 42 F0 42 96 34 CB 34 CE B0 67 B0 80 00 F8 90 +@FC80 F0 90 65 CD CB CD 33 AC 67 AC 81 00 E0 43 F0 43 97 34 CB 34 CE B0 67 B0 04 00 78 90 F0 90 E5 4D +@FCA0 CB 4D B3 2C 67 2C 85 00 E1 42 F0 42 97 35 CB 35 CE B0 67 B0 00 00 00 00 00 00 05 21 00 43 05 06 +@FCC0 00 0D 01 1A 85 E1 84 C3 05 06 00 0D 01 1A 84 A0 05 50 81 A8 84 D4 04 6A 04 35 04 6A 84 D4 81 A8 +@FCE0 01 51 84 A3 01 51 81 A8 84 D4 04 6A 04 35 04 6A 85 D4 85 A9 04 53 84 A6 05 53 85 A9 84 D4 04 6A +@FD48 FF FF FF FF 42 00 93 FF 42 00 81 C1 80 E0 84 E0 10 70 42 38 10 38 44 00 83 C0 02 0E 42 00 16 5E +@FD68 83 B4 06 55 82 A2 93 FC 06 7A 06 49 84 98 10 11 91 A9 80 F6 91 A0 80 FF 90 B2 15 58 80 DB 01 0B +@FD88 83 20 02 0F 42 AA 16 B4 83 AA 06 AA 82 AA 93 AA 06 AA 06 AA 83 C0 02 0E 42 00 16 5F 83 B4 06 55 +@FDA8 82 A3 93 FC 06 7A 06 4A 84 98 10 10 91 A9 80 F5 91 A0 80 FF 90 B1 15 58 80 DA 01 0A 04 78 80 8F +@FDC8 80 DF 04 55 44 00 84 FF 84 AF 80 AE 80 BA 80 EA 00 01 00 5D 84 FF 80 DF 00 20 44 00 80 AD 00 04 +@FDE8 84 9A 84 CA 94 82 54 00 14 28 14 0A 90 8A 54 00 10 02 10 08 10 20 90 80 +@FE30 FF FF FF FF 34 12 56 52 93 00 00 00 34 12 56 52 42 00 AF 83 34 12 56 52 93 00 FA 81 34 12 56 52 +@FE50 93 00 4C 80 34 12 56 52 82 00 81 92 34 12 56 52 82 00 B5 A4 34 12 56 52 82 00 0C F7 34 12 56 52 +@FE70 83 00 62 49 34 12 56 52 11 00 E7 4A 34 12 56 52 11 00 65 4C 34 12 56 52 00 00 32 26 34 12 56 52 +@FE90 05 00 19 93 34 12 56 52 80 00 E4 80 34 12 56 52 94 00 B0 6E 34 12 56 52 00 00 59 1C 34 12 56 52 +@FEB0 01 00 A0 BC BC 78 03 CA 34 12 56 52 16 7F 92 7F 10 7F A0 BC BC 78 02 CA 34 12 56 52 02 7F 05 CA +@FED0 36 12 57 52 82 7F 05 CB 36 14 57 55 00 7F 04 CB 34 14 54 55 80 7F A0 BC BC 78 04 C8 34 12 54 54 +@FEF0 16 7F 12 0F 82 FE 92 FF 50 00 94 80 10 10 00 01 +@FF10 FF FF FF FF FF FF A0 BC BC 78 04 C8 34 12 54 54 55 00 50 DE BC 78 04 C8 34 12 54 54 55 00 22 DF +@FF30 BC 78 04 C8 34 12 54 54 44 00 EE CC BC 78 04 C8 34 12 54 54 44 00 9A 78 BC 78 04 C8 34 12 54 54 +@FF50 55 00 9A 78 5E BC 04 C8 34 12 54 54 55 00 9A 78 00 BD 04 C8 34 12 54 54 44 00 9A 78 CC AA 04 C8 +@FF70 34 12 54 54 44 00 9A 78 78 56 04 C8 34 12 54 54 55 00 82 C8 34 12 54 54 44 00 41 64 34 12 54 54 +@FF90 44 00 0D 52 34 12 54 54 55 00 00 00 00 00 01 00 44 00 +@FFC8 FF FF FF FF 9A 78 78 56 99 78 78 56 99 78 FF FF 99 78 77 56 00 00 FF FF 00 00 FF FF 01 00 00 00 +@FFE8 FF FF 87 80 13 02 93 FE 93 FF 42 00 57 80 57 7F 45 00 45 00 54 00 45 00 + Index: trunk/mem/jmp_ops.vm =================================================================== --- trunk/mem/jmp_ops.vm (nonexistent) +++ trunk/mem/jmp_ops.vm (revision 2) @@ -0,0 +1,78 @@ +@0000 E9 +@0008 C5 03 E9 +@0010 C5 03 E9 +@0018 C5 03 E9 +@0020 C5 03 E9 +@0028 C5 03 E9 +@0030 C5 03 E9 +@0038 C5 03 E9 +@00C0 00 18 FD +@0100 31 00 00 AF 01 00 00 11 10 00 21 10 20 DD 21 00 +@0110 10 FD 21 00 20 03 DD E9 +@0300 01 00 FE 00 04 00 FB 00 40 00 BF 00 80 00 7F 00 +@0310 00 00 +@0400 60 71 70 71 80 71 90 71 A0 71 B0 71 C0 71 D0 71 +@0410 E0 71 F0 71 +@1000 C5 03 FD E9 +@2000 C5 03 C7 +@2010 C5 19 03 CF +@2020 C5 19 03 D7 +@2030 C5 19 03 DF +@2040 C5 19 03 E7 +@2050 C5 19 03 EF +@2060 C5 19 03 F7 +@2070 C5 19 03 FF +@2080 C3 FF CC +@7000 C5 03 31 00 03 F1 31 BE FF DC 10 70 76 +@7010 C5 03 DA 20 70 76 +@7020 C5 03 38 0C 76 +@7030 C5 03 31 02 03 F1 31 B6 FF D4 40 70 76 +@7040 C5 03 D2 50 70 76 +@7050 C5 03 30 0C 76 +@7060 C5 03 31 04 03 F1 31 AE FF EC 70 70 76 +@7070 C5 03 EA 80 70 76 +@7080 C5 03 31 06 03 F1 31 A8 FF E4 90 70 76 +@7090 C5 03 E2 A0 70 76 +@70A0 C5 03 31 08 03 F1 31 A2 FF CC B0 70 76 +@70B0 C5 03 CA C0 70 76 +@70C0 C5 03 28 0C 76 +@70D0 C5 03 31 0A 03 F1 31 9A FF C4 E0 70 76 +@70E0 C5 03 C2 F0 70 76 +@70F0 C5 03 20 0C 76 +@7100 C5 03 31 0C 03 F1 31 92 FF FC 10 71 76 +@7110 C5 03 FA 20 71 76 +@7120 C5 03 31 0E 03 F1 31 8C FF F4 30 71 76 +@7130 C5 03 F2 40 71 76 +@7140 C5 03 31 00 03 F1 3F 21 00 FE 31 00 04 C9 +@7160 71 03 23 31 02 03 F1 3F 31 02 04 C9 +@7170 71 03 23 31 00 03 F1 31 04 04 D8 +@7180 71 03 23 31 02 03 F1 31 06 04 D0 +@7190 71 03 23 31 04 03 F1 31 08 04 E8 +@71A0 71 03 23 31 06 03 F1 31 0A 04 E0 +@71B0 71 03 23 31 08 03 F1 31 0C 04 C8 +@71C0 71 03 23 31 0A 03 F1 31 0E 04 C0 +@71D0 71 03 23 31 0C 03 F1 31 10 04 F8 +@71E0 71 03 23 31 0E 03 F1 31 12 04 F0 +@71F0 71 03 31 86 FF 06 81 10 07 +@7200 C5 03 06 41 10 0A +@7210 C5 03 06 21 10 0A +@7220 C5 03 06 11 10 0A +@7230 C5 03 06 09 10 0A +@7240 C5 03 06 05 10 0A +@7250 C5 03 06 03 10 0A +@7260 C5 03 06 01 10 0A C5 03 18 16 +@7270 76 +@7280 C5 03 04 04 10 7F 76 +@728B C5 31 10 03 F1 21 00 01 C3 C0 00 +@7305 C5 03 04 04 10 80 76 +@CCFF C5 03 31 00 03 F1 D2 52 CD 30 48 D4 52 CD D0 F1 +@CD0F DA 52 CD 38 3E DC 52 CD D8 F1 E2 52 CD E4 52 CD +@CD1F E0 F1 EA 52 CD EC 52 CD E8 F1 C2 52 CD 20 24 C4 +@CD2F 52 CD C0 F1 CA 52 CD 28 1A CC 52 CD C8 F1 F2 52 +@CD3F CD F4 52 CD F0 F1 FA 52 CD FC 52 CD F8 18 05 C5 +@CD4F 03 18 0D 76 31 00 03 F1 3F 31 CE FF C5 03 18 EF +@CD5F C5 03 C3 FB CE +@CEFB C5 03 18 7F +@CF02 C5 03 CD 00 70 +@CF7E C5 03 18 80 + Index: trunk/mem/io_ops.vm =================================================================== --- trunk/mem/io_ops.vm (nonexistent) +++ trunk/mem/io_ops.vm (revision 2) @@ -0,0 +1,35 @@ +@0000 C3 00 10 +@00C0 00 18 FD +@00E0 10 +@01E1 13 88 +@02E1 12 17 +@03E1 11 16 +@04E2 15 +@05E2 14 +@1000 31 00 00 AF 47 0E FF 57 1E 21 67 2E AA 3E CC DB +@1010 F0 F5 D3 3C 3E FF 31 D2 FF 01 23 E1 ED 40 F5 C5 +@1020 ED 48 F5 C5 ED 50 F5 C5 D5 03 ED 58 F5 C5 D5 03 +@1030 ED 60 F5 C5 D5 E5 03 ED 68 F5 C5 D5 E5 03 ED 78 +@1040 F5 C5 D5 E5 03 ED 41 03 ED 49 03 ED 51 03 ED 59 +@1050 03 ED 61 03 ED 69 03 ED 79 B0 3E 43 31 8E FF 01 +@1060 00 80 11 00 A0 21 00 50 ED A8 F5 C5 D5 E5 ED A0 +@1070 F5 C5 D5 E5 01 03 00 11 01 A0 21 02 50 ED B0 F5 +@1080 C5 D5 E5 01 04 00 11 FE 9F 21 FD 4F ED B8 F5 C5 +@1090 D5 E5 ED A9 F5 C5 D5 E5 01 07 00 ED B9 F5 C5 D5 +@10A0 E5 01 00 80 21 05 50 ED A1 F5 C5 D5 E5 01 04 00 +@10B0 ED B1 F5 C5 D5 E5 01 E0 00 ED A2 F5 C5 D5 E5 01 +@10C0 E1 03 ED B2 F5 C5 D5 E5 01 E2 05 21 F5 4F ED AA +@10D0 F5 C5 D5 E5 ED BA F5 C5 D5 E5 01 E3 04 ED AB F5 +@10E0 C5 D5 E5 ED BB F5 C5 D5 E5 01 E4 05 21 0E 50 ED +@10F0 A3 F5 C5 D5 E5 ED B3 F5 C5 D5 E5 21 00 01 C3 C0 +@1100 00 +@4FE8 FF FF A8 27 26 1C 1B 1A 19 FF FF FF FF FF 43 0A +@4FF8 09 08 07 06 05 04 FF AA 55 FF 01 02 03 0B 0C 0D +@5008 0E 0F FF FF FF FF 1D 1E 1F 20 A1 22 23 22 25 FF +@6600 BC +@C610 A0 EA 66 00 43 +@C61B 8F +@C623 10 +@CCF0 5A +@E123 C6 + Index: trunk/mem/dat_mov.vm =================================================================== --- trunk/mem/dat_mov.vm (nonexistent) +++ trunk/mem/dat_mov.vm (revision 2) @@ -0,0 +1,45 @@ +@0000 C3 00 01 +@00C0 00 18 FD +@0100 31 00 00 3E FF AF 06 01 0E 02 16 04 1E 08 26 10 +@0110 2E 20 DD 21 AA AA FD 21 55 55 F5 C5 D5 E5 DD E5 +@0120 FD E5 3E F0 02 3E 0F 12 77 23 70 23 71 23 72 23 +@0130 73 23 74 23 75 23 36 3C 21 20 10 F5 C5 D5 E5 3E +@0140 00 08 3E FF B7 D9 01 FD FE 11 F7 FB 21 DF EF F5 +@0150 C5 D5 E5 D9 F5 C5 D5 E5 EB F5 C5 D5 E5 D9 F5 C5 +@0160 D5 E5 EB F5 C5 D5 E5 D9 F5 C5 D5 E5 EB F5 C5 D5 +@0170 E5 D9 F5 C5 D5 E5 EB F5 C5 D5 E5 D9 40 49 52 64 +@0180 6D 7F F5 C5 D5 E5 78 41 4A 53 5C 65 6F F5 C5 D5 +@0190 E5 AF 06 01 0E 02 16 04 1E 08 26 10 2E 20 79 42 +@01A0 4B 54 5D 67 68 F5 C5 D5 E5 AF 06 01 0E 02 16 04 +@01B0 1E 08 26 10 2E 20 7A 43 4C 55 5F 60 69 F5 C5 D5 +@01C0 E5 AF 06 01 0E 02 16 04 1E 08 26 10 2E 20 7B 44 +@01D0 4D 57 58 61 6A F5 C5 D5 E5 AF 06 01 0E 02 16 04 +@01E0 1E 08 26 10 2E 20 7C 45 4F 50 59 62 6B F5 C5 D5 +@01F0 E5 AF 06 01 0E 02 16 04 1E 08 26 10 2E 20 7D 47 +@0200 48 51 5A 63 6C F5 C5 D5 E5 46 23 4E 23 56 23 5E +@0210 23 F5 C5 D5 E5 66 E5 26 20 23 6E E5 0A F5 1A F5 +@0220 3A 88 78 F5 ED 4B 89 78 ED 5B 8B 78 2A 8D 78 DD +@0230 2A 8F 78 FD 2A 91 78 ED 7B 93 78 32 95 78 ED 43 +@0240 96 78 ED 53 98 78 22 9A 78 DD 22 9C 78 FD 22 9E +@0250 78 ED 73 A0 78 31 00 F0 F1 C1 D1 E1 DD E1 FD E1 +@0260 31 00 FE F5 C5 D5 E5 DD E5 FD E5 23 F9 F5 E5 DD +@0270 F9 F5 DD E5 FD 23 FD F9 F5 FD E5 31 00 FD E3 33 +@0280 33 DD E3 33 33 FD E3 DD 7E 00 DD 46 01 DD 4E 02 +@0290 DD 56 03 DD 5E 04 DD 66 05 DD 6E 06 31 00 FD F5 +@02A0 C5 D5 E5 FD 7E 00 FD 46 01 FD 4E 02 FD 56 03 FD +@02B0 5E 04 FD 66 05 FD 6E 06 F5 C5 D5 E5 DD 77 FF DD +@02C0 70 FE DD 71 FD DD 72 FC DD 73 FB DD 74 FA DD 75 +@02D0 F9 DD 36 F8 0F FD 77 FF FD 70 FE FD 71 FD FD 72 +@02E0 FC FD 73 FB FD 74 FA FD 75 F9 FD 36 F8 0F AF 47 +@02F0 4F 57 5F 67 6F D9 47 4F 57 5F 67 6F D9 08 AF 3E +@0300 FF ED 4F F5 C5 D5 E5 AF F5 ED 5F F5 C5 D5 E5 AF +@0310 ED 4F 3E 55 ED 47 F5 C5 D5 E5 AF F5 ED 57 F5 FB +@0320 ED 57 F5 F3 ED 57 F5 21 00 01 C3 C0 00 +@2020 5A 69 78 87 96 A5 +@5A69 B4 +@6789 FF FD FB F9 F7 F5 F3 +@7887 C3 D2 F0 E1 1E 0F 3C 2D 5A 4B 78 69 00 FE +@ABCD 01 03 05 07 09 0B 0D +@F000 00 0F 11 EE 22 DD 33 CC 44 BB 55 AA +@FD00 45 23 89 67 CD AB + Index: trunk/mem/jmp_opsd.vm =================================================================== --- trunk/mem/jmp_opsd.vm (nonexistent) +++ trunk/mem/jmp_opsd.vm (revision 2) @@ -0,0 +1,11 @@ +@FE00 2D 2E 2F 30 31 32 33 34 35 36 +@FF70 41 02 40 01 3F 00 3E 00 3D 02 3C 04 3B 08 3A 10 +@FF80 39 20 38 40 37 80 2C 00 2B 00 2C 71 2A 00 29 00 +@FF90 0C 71 28 00 27 00 26 00 DC 70 25 00 24 00 23 00 +@FFA0 AC 70 22 00 21 00 8C 70 20 00 1F 00 6C 70 1E 00 +@FFB0 1D 00 1C 00 3C 70 1B 00 1A 00 19 00 0C 70 18 00 +@FFC0 07 CF 17 00 16 00 15 00 14 00 13 00 12 00 11 00 +@FFD0 10 00 74 20 0F 00 0E 00 64 20 0D 00 0C 00 54 20 +@FFE0 0B 00 0A 00 44 20 09 00 08 00 34 20 07 00 06 00 +@FFF0 24 20 05 00 04 00 14 20 03 00 03 20 02 00 01 00 + Index: trunk/mem/int_ops.vm =================================================================== --- trunk/mem/int_ops.vm (nonexistent) +++ trunk/mem/int_ops.vm (revision 2) @@ -0,0 +1,81 @@ +@0000 E9 +@0038 03 D9 23 75 D9 E9 +@0066 03 DD 23 DD 71 00 E9 +@00C0 00 18 FD +@0100 08 AF 3D 08 D9 01 B7 ED 11 21 84 21 C3 3C D9 AF 01 01 00 11 00 01 21 00 10 DD 21 69 96 FD 21 FE +@0120 BF E9 +@1000 C5 19 FD 19 FD E9 +@1100 03 C5 ED 5E 19 ED 56 FD 19 FB FD E9 +@1200 C5 19 FD 19 FB FD E9 +@1300 C5 19 FD 19 FB FD E9 +@1400 C5 19 FD 19 FB FD E9 +@1500 C5 19 FD 19 FB FD E9 +@1600 C5 19 FD 19 FB FD E9 +@1700 C5 19 FD 19 FB FD E9 +@1800 C5 19 FD 19 FB FD E9 +@1900 C5 19 FD 19 FB FD E9 +@1A00 C5 19 FD 19 FB FD E9 +@1B00 C5 19 FD 19 FB FD E9 +@1C00 C5 03 19 FD 19 FB FD E9 +@1D00 FF C5 03 2B 19 FD 19 FB FD E9 +@1E00 00 C5 2B 19 FD 19 FD E9 +@1F00 C5 19 FD 19 FD E9 +@2000 C5 19 FD 19 ED 46 FB FD E9 +@2100 03 C5 19 FD 19 FB FD E9 +@2200 C5 19 FD 19 ED 57 F5 31 50 22 ED 45 76 +@2230 ED 57 31 B4 FF F5 3E 55 ED 47 ED 5E FD E9 +@2250 30 22 +@2300 03 C5 19 FD 19 ED 57 F5 31 50 23 ED 4D 76 +@2330 ED 57 31 AC FF ED 46 F5 FB FD 21 10 D3 FD E9 +@2350 30 23 +@2400 C5 19 FD 19 31 50 24 ED 45 76 +@2430 31 A6 FF FD E9 +@2450 30 24 +@2500 03 C5 19 FD 19 31 50 25 ED 45 76 +@2530 31 A2 FF FD E9 +@2550 30 25 +@2600 C5 D5 E5 F5 ED 56 21 00 27 FD 21 FE D6 FB FD E9 +@2700 C5 D5 E5 F5 21 00 28 FD 21 FE D7 FB FD E9 +@2800 C5 D5 E5 F5 21 00 29 FD 21 FE D8 FB FD E9 +@2900 C5 D5 E5 F5 21 00 2A FD 21 FE D9 FB FD E9 +@2A00 C5 D5 E5 F5 21 80 15 FD 21 FE DA FB FD E9 +@2B00 C5 D5 E5 F5 21 00 16 FD 21 FE DB FB FD E9 +@2C00 C5 D5 E5 F5 21 01 2D FD 21 FE DC FB FD E9 +@2D00 C5 D5 E5 F5 21 01 2E FD 21 FE DD FB FD E9 +@2E00 C5 D5 E5 F5 31 50 2E ED 45 76 +@2E30 31 48 FF FD 21 10 D6 FD E9 +@2E50 30 2E +@4CE3 5A +@5564 00 23 +@C0FE 2B 23 FB 00 D2 00 50 76 +@C1FE 00 DA 00 50 76 +@C2FE 00 D2 00 50 76 +@C3FE 00 D2 00 50 76 +@C4FE 00 38 FD 76 +@C5FE 00 38 FD 76 +@C6FE 00 30 FD 76 +@C7FE 00 30 FD 76 +@C8FE 76 EF +@C9FE 76 EF C3 00 50 +@CAFE 00 76 C3 00 50 +@CBFE 00 76 C3 00 50 +@CCFE 00 ED B1 CF +@CDFE 00 ED B1 D7 +@CEFE 00 FB 00 DF +@CFFE 00 F3 00 EF +@D0FE 00 F3 2B 23 FB 00 F7 +@D1FE 2B 23 EF +@D2FE 2B 23 64 +@D310 76 F7 +@D410 00 76 C3 00 50 +@D510 00 76 C3 00 50 +@D610 AF 3E 4C DB E3 F5 D3 3C F5 C5 D5 E5 DD E5 FD E5 08 F5 08 D9 C5 D5 E5 D9 21 00 01 C3 C0 00 +@D6FE 00 A9 +@D7FE 00 AC 00 +@D8FE 00 8C 00 +@D9FE 00 9C 00 +@DAFE 00 ED 6A 00 +@DBFE 00 ED 6A 00 +@DCFE 00 2B 00 +@DDFE 00 2B 00 + Index: trunk/mem/io_opsd.vm =================================================================== --- trunk/mem/io_opsd.vm (nonexistent) +++ trunk/mem/io_opsd.vm (revision 2) @@ -0,0 +1,31 @@ +@0000 25 +@00F8 FF A8 27 26 25 24 23 22 +@01E3 1C A1 +@02E3 1B 20 +@03E3 1A 1F +@04E3 19 1E +@05E4 1D +@4FF0 FF 88 17 16 15 14 FF FF +@5008 FF FF 10 11 12 13 FF FF +@5A3C 5A +@9FF8 FF FF FF 07 06 05 04 AA 55 01 02 03 FF FF FF FF +@C610 FF FF FF FF FF C6 16 A0 EA 66 00 43 8F FF FF FF +@FEE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +@FEF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +@FF08 FF FF FF FF FF FF 13 50 FA 9F E4 00 52 43 0F 50 +@FF18 FA 9F E4 04 10 43 EC 4F FA 9F E3 00 50 43 EF 4F +@FF28 FA 9F E3 03 10 43 F0 4F FA 9F E2 00 52 43 F4 4F +@FF38 FA 9F E2 04 10 43 0E 50 FA 9F E1 00 50 43 0B 50 +@FF48 FA 9F E0 FF 10 43 0A 50 FA 9F 00 00 12 43 06 50 +@FF58 FA 9F FF 7F 16 43 F5 4F FA 9F 04 00 46 43 F8 4F +@FF68 FA 9F FF FF 16 43 F9 4F FA 9F 00 00 80 43 05 50 +@FF78 04 A0 00 00 80 43 00 50 00 A0 FE 7F 84 43 FF 4F +@FF88 FF 9F FF 7F 84 43 FF FF FF FF FF FF FF FF FF FF +@FF98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 66 +@FFA8 EA A0 14 C6 00 43 00 66 EA A0 13 C6 44 FF AA 66 +@FFB8 EA A0 12 C6 04 FF EA A0 11 C6 80 FF 21 A0 10 C6 +@FFC8 84 FF 10 C6 00 FF 23 C6 84 FF FF FF FF FF FF FF +@FFD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +@FFE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF +@FFF8 FF FF FF FF FF FF 44 5A + Index: trunk/mem/dat_movd.vm =================================================================== --- trunk/mem/dat_movd.vm (nonexistent) +++ trunk/mem/dat_movd.vm (revision 2) @@ -0,0 +1,26 @@ +@0102 F0 +@0408 0F +@1020 0F 01 02 04 08 10 26 3C +@6780 FF 0F 0D 0B 09 07 05 03 01 +@7895 D2 F0 E1 1E 0F 3C 2D 5A 4B 78 69 00 FE +@AA50 FF FF 56 AA 00 0F FF FF +@ABC0 FF FF FF FF FF 0F 0D 0B 09 07 05 03 01 +@BB40 44 BB 00 0F FF FF FF FF +@CC30 34 CC 00 0F FF FF FF FF +@FCC8 FF FF FF FF FF FF 00 55 04 55 00 55 44 00 00 00 +@FCD8 00 00 00 00 44 55 00 00 00 00 00 00 80 FF 44 00 +@FCE8 00 00 00 00 00 00 44 FF 0D 0B 09 07 05 03 00 01 +@FCF8 F3 F5 F7 F9 FB FD 00 FF 34 CC 44 BB 56 AA FF FF +@FDF0 FF FF FF FF 55 AA 44 BB 33 CC 22 DD 11 EE 00 0F +@FF58 FF FF 44 D2 44 C3 44 B4 A5 20 24 96 24 20 87 78 +@FF68 69 5A 44 20 20 20 20 20 20 20 44 20 10 20 10 20 +@FF78 10 20 44 10 08 20 10 08 20 10 44 08 10 08 04 20 +@FF88 10 08 44 04 04 02 20 10 08 04 44 02 01 20 10 08 +@FF98 04 02 84 01 20 10 08 04 02 01 84 FF DF EF F7 FB +@FFA8 FD FE 84 FF F7 FB DF EF FD FE 84 FF 20 10 08 04 +@FFB8 02 01 84 FF 08 04 20 10 02 01 84 FF F7 FB DF EF +@FFC8 FD FE 84 FF DF EF F7 FB FD FE 84 FF 08 04 20 10 +@FFD8 02 01 84 FF 20 10 08 04 02 01 84 FF DF EF F7 FB +@FFE8 FD FE 84 FF 20 10 08 04 02 01 44 0F 55 55 AA AA +@FFF8 20 10 08 04 02 01 44 00 +

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.