SSブログ
English Version

ポケコン(G850)用拡張基板(その6)確認事項5 [ポケコン]

ポケコン(G850)用拡張基板(その2)確認事項」の記事で C000H - FFFFH のバンク(以降、C000H バンクと記す) でバンク No. 0 から 15 までについての調査結果を書きましたが、69H ポートでバンク No. を 63 まで設定できることが判り追加で調査しました。

 結論から先に書くとやはり C000H バンクを外部メモリに割り当てられる可能性は見出せませんでした(もしかしたら前回の記事で書いた CP/Mのサイズを64Kに拡張できるかと期待したのですが)。

 確認用のプログラムは下記の通りで、上記のポートに 0 から 63 までのバンク No. を設定し、各バンク設定時に 100H バイトのデータを 1000H 以降のメモリにコピーするというものです。

C000H バンクの切替え試験プログラム(Z80アセンブラ)
;+++++++++++++++++++++++++++++++++++ ; Bank C000H test V2 for Eborsy ; Ver 0.01 2021/12/31 by skyriver ;+++++++++++++++++++++++++++++++++++ 0100 ORGAD EQU 0100H ; +++ 850 I/O +++ 0017 INTMASK EQU 017H ; interrupy mask 0019 BANKSEL EQU 019H ; select bank 8000h,c000h 0069 BANKSE2 EQU 069H ; select bank c000h, 0..511 ; +++ GAL I/O address +++ 0080 AdrSdcs EQU 80H ; set SDCS(D0) 0081 AdrSpiD EQU 81H ; write/read SPI data(D0) ; +++ memory adress +++ C000 BNKADR EQU 0C000H 1000 SAVADR EQU 01000H 0040 UNTIL EQU 40H ; invest bank No. to 0000' ASEG ORG ORGAD 0100 F3 Start: DI 0101 21 1000 LD HL,SAVADR 0104 1E FF LD E,055H 0106 3E 40 LD A,UNTIL 0108 73 Ini: LD (HL),E 0109 23 INC HL 010A BC CP H 010B C2 0108 JP NZ,Ini 010E 3E 01 LD A,1 0110 D3 80 OUT (AdrSdcs),A ; set SDCS:0 0112 DB 69 IN A,(BANKSE2) 0114 F5 PUSH AF 0115 11 1000 LD DE,SAVADR 0118 AF XOR A 0119 D3 69 Loop: OUT (BANKSE2),A 011B 21 C000 LD HL,BNKADR 011E 01 0100 LD BC,0100H 0121 ED B0 LDIR 0123 3C INC A 0124 FE 40 CP UNTIL 0126 DA 0119 JP C,Loop 0129 AF NEXT: XOR A 012A D3 80 OUT (AdrSdcs),A ; set SDCS:1 012C F1 POP AF 012D D3 69 OUT (BANKSE2),A ; restore setting 012F FB EI 0130 C9 RET END


 上の試験プログラムを実行した際のロジアナ波形が下図になります。SDCS/ が "0" の部分がバンク切替え動作中の箇所です。BK0 と BK1 にはバンク No. の下位 2 ビットが出力されています。

C000H バンク試験プログラム実行中の波形 [sampling:25MHz]


 バンク No. 63 の時のメモリコピー中の拡大波形が下図になります。"A1マーカー"部が C000H バンク内メモリの読込みで"A2マーカー"部が読込んたデータを 1000H からのバッファに書き込んでいる部分になります。
 システムバスの D0 を 10K でプルダウンした状態で試験プログラムを実行していますが、下図から判るようにアクセス時に D0 は '1' になっているので、このタイミングでデータバスに出力しているチップがあるということになります(フローティング状態であったなら外部メモリをアサイン可能なのに)

C000H バンクの63バンク設定時の波形 [sampling:25MHz]


 サイズが大きいですが、バッファにコピーされた各バンク内メモリの内容をダンプ表示したものも貼っておきます。
 1000H がバンク0、1100H がバンク1、4F00H がバンク 63 になります。
 冒頭で書いた以前の調査記事でも書いたようにバンク 10(1A00H)、バンク 11(1B00H)、バンク 12(1C00H)の3つのバンクで同じ内容が見えています。また、バンク 32 以降は バンク 0 からのイメージが見えています。
 面白いのは下記のようにバンク No. 16 から 21 までは 17 を除いて固有の内容だったということです。C000H バンクは重複は多少あるものの 15 バンクまでメモリが実装されていると思っていましたが、それより多かったんですね。
    バンク No.  メモリ内容
    16(2000H)    固有の内容
    17(2100H)    バンク 10,11,12 と同じ内容
    18(2200H)    固有の内容
       .              .
       .              .
    21(2500H)     固有の内容

C000H バンク No. 0-63 設定時のメモリ内容
#d1000 1000: C3 AD 13 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1010: 21 31 7F CB 8E 21 18 7F 18 12 21 31 7F CB 96 21 !1...!....!1...! 1020: 20 7F 18 08 21 31 7F CB 86 21 10 7F 3E 00 77 2C ...!1...!..>.w, 1030: 77 2C 77 2C 77 2C 77 2C 77 2C 77 2C 77 C9 21 31 w,w,w,w,w,w,w.!1 1040: 7F CB 8E 21 18 7F 06 08 3E 00 77 2C 10 FC 2E 1A ...!....>.w,.... 1050: CB E6 C9 21 19 7F 18 0D 21 21 7F 18 08 21 29 7F ...!....!!...!). 1060: 18 03 21 11 7F 7E E6 F0 77 2C 06 06 3E 00 77 2C ..!..~..w,..>.w, 1070: 10 FC C9 21 18 7F 18 03 21 10 7F 36 00 2C 7E E6 ...!....!..6.,~. 1080: 0F 77 C9 C3 32 85 CB 9E CB 4E 28 02 CB DE 11 28 .w..2....N(....( 1090: 7F 18 22 C3 59 85 CB 8E CB 5E 28 02 CB CE 11 18 ..".Y....^(..... 10A0: 7F 21 28 7F C3 19 81 C3 70 85 CB 86 CB 4E 28 02 .!(.....p....N(. #d1100 1100: 3E 01 D3 1A 31 FE 7F 3E 8B D3 7B 3E A0 D3 7A 3E >...1..>..{>..z> 1110: 01 D3 69 3E FF D3 16 AF D3 1B D3 11 D3 12 3E 02 ..i>..........>. 1120: D3 1E 06 D2 CB 47 CB 47 10 FA DB 1D 4F 06 0A 10 .....G.G....O... 1130: FE DB 1D A1 1F DA D6 BC 3E 03 D3 1E 21 03 79 CB ........>...!.y. 1140: 86 21 40 7F 3E 5A 77 BE 28 28 DB 19 E6 0F F6 40 .!@.>Zw.((.....@ 1150: D3 19 3E 01 D3 69 11 00 80 21 DA C3 06 11 1A BE ..>..i...!...... 1160: 20 07 13 23 10 F8 C3 10 80 3E 01 D3 19 D3 69 C3 ..#.....>....i. 1170: D6 BC 3E 01 32 00 79 CD D6 BF CD D3 BF 21 27 7F ..>.2.y......!'. 1180: 3E A5 06 06 BE 20 0B 23 10 FA BE 28 08 3E 5A BE >.... .#...(.>Z. 1190: 28 03 CD 9D C0 21 00 79 36 01 C3 CC C0 3E C3 32 (....!.y6....>.2 11A0: 00 00 21 F4 BF 22 01 00 21 03 00 06 3D AF 77 23 ..!.."..!...=.w# #d1200 1200: CD 00 DC 38 09 CD 9D FE C9 00 00 00 00 00 21 1D ...8..........!. 1210: 7F 11 15 7F 01 02 00 ED B0 1A 86 12 A7 C9 CD 00 ................ 1220: DC DA 8C 83 CD 97 FE C9 00 00 00 00 00 CD 91 FE ................ 1230: C9 00 00 00 00 00 00 00 00 CD 8B FE C9 00 00 00 ................ 1240: 00 00 00 00 00 CD 85 FE C9 00 00 00 00 00 00 00 ................ 1250: 00 00 00 00 CD 7F FE C9 00 00 00 00 00 CD 79 FE ..............y. 1260: C9 00 00 00 00 00 CD 73 FE C9 00 00 00 00 00 CD .......s........ 1270: 6D FE C9 00 00 00 00 00 CD 67 FE C9 00 00 00 00 m........g...... 1280: 00 CD 61 FE C9 00 00 00 00 00 CD 5B FE C9 00 00 ..a........[.... 1290: 00 00 00 CD 55 FE C9 00 00 00 00 00 CD 4F FE C9 ....U........O.. 12A0: 00 00 00 00 00 CD 49 FE C9 00 00 00 00 00 CD 43 ......I........C #d1300 1300: 7B FE 00 30 02 1E 00 7A FE 06 38 02 16 05 7E B7 {..0...z..8...~. 1310: C8 FE 0D 28 15 FE 0C 28 25 FE 10 38 1E D5 E5 CD ...(...(%..8.... 1320: 5F BE E1 D1 1C 7B FE 18 38 11 1E 00 14 7A FE 06 _....{..8....z.. 1330: 38 09 E5 D5 CD EB BF D1 E1 16 05 23 18 D0 E5 D5 8..........#.... 1340: CD 68 C3 D1 E1 18 F4 E5 F5 CD 72 C3 F1 57 FE 06 .h........r..W.. 1350: 38 00 1E 00 06 18 E1 7E B7 C8 FE 0D C8 E5 D5 C5 8......~........ 1360: CD 5F BE C1 D1 E1 1C 23 10 ED C9 F5 3A E3 7E E6 ._.....#....:.~. 1370: FD 18 06 F5 3A E3 7E F6 02 32 E3 7E F1 C5 D5 E5 ....:.~..2.~.... 1380: FE 20 30 24 FE 05 28 1C FE 1D 28 32 FE 1C 28 33 . 0$..(...(2..(3 1390: FE 08 28 34 FE 09 28 35 FE 12 28 36 FE 0C 28 37 ..(4..(5..(6..(7 13A0: FE 0B 28 33 E1 D1 C1 C9 FE F9 30 F8 CD B9 C2 CD ..(3......0..... #d1400 1400: 20 20 20 20 20 20 20 2A CD 05 C7 D0 CD 0C C7 D0 *........ 1410: FE 23 D8 FE 2A 3F D0 FE 2D C8 FE 40 C8 FE 5E D8 .#..*?..-..@..^. 1420: FE 60 3F D0 C8 FE 7C 3F D0 FE 7D C8 FE A1 D8 FE .`?...|?..}..... 1430: E0 3F C9 21 11 79 CB 86 CD F5 C6 FE 42 20 05 CB .?.!.y......B .. 1440: C6 CD F5 C6 DD 2B FE 0D 20 2C DD E5 CD F9 BD DD .....+.. ,...... 1450: E1 F5 CD 57 C0 F1 C9 21 7D 79 CB 86 CD 33 C7 20 ...W...!}y...3. 1460: 15 21 65 79 CB 96 3E 20 06 90 11 00 00 CD EE BF .!ey..> ........ 1470: AF 3D 32 23 79 C9 DD 23 C3 79 83 C5 D5 06 91 21 .=2#y..#.y.....! 1480: 00 7E E5 3E 20 77 23 10 FC 21 00 00 22 0E 79 CD .~.> w#..!..".y. 1490: B1 C4 20 14 3A 11 79 1F 30 0E CD DC C0 30 FB 21 .. .:.y.0....0.! 14A0: 0E 79 35 37 20 2D 18 30 CD DC C0 38 2B 3E 1E CD .y57 -.0...8+>.. #d1500 1500: 3A 65 79 E6 01 32 65 79 CD 18 C1 CD 3F C1 DD 56 :ey..2ey....?..V 1510: 4A DD 5E 4B CD 8B C2 DD 56 02 DD 5E 03 CD A7 C2 J.^K....V..^.... 1520: CD D6 C1 21 00 00 39 DD 74 0A DD 75 0B CD 4C C2 ...!..9.t..u..L. 1530: D8 3E 0B CD B0 E3 CD 0F C2 3E 07 30 08 CD B0 E3 .>.......>.0.... 1540: CD E1 D5 18 FB DD CB 4E 56 28 08 3E 15 CD DB D6 .......NV(.>.... 1550: DA BE DE 3E 0C CD 75 E5 CD C0 C2 DD CB 4C C6 DD ...>..u......L.. 1560: CB 4E 56 20 06 DD CB 4E 5E 28 05 3E 0F CD 75 E5 .NV ...N^(.>..u. 1570: CD D6 C1 CD 0F C2 CD C2 DC CD C0 C2 DD CB 4E 46 ..............NF 1580: 28 44 CD C8 DD 3E 0D CD B0 E3 DD 66 39 DD 6E 3A (D...>.....f9.n: 1590: 7C B5 20 28 3E 30 CD DB D6 FE 50 28 09 FE D0 28 |. (>0....P(...( 15A0: 05 CD E4 D5 18 EE 3E 0D DD 77 01 31 FE 7F DD E5 ......>..w.1.... #d1600 1600: 7B 84 3E C9 32 38 00 CD 02 D0 3E 00 32 01 79 32 {.>.28....>.2.y2 1610: 02 79 32 04 79 3A 03 79 E6 00 32 03 79 CD F2 C9 .y2.y:.y..2.y... 1620: 21 74 C0 11 00 00 06 90 CD F1 BF CD 02 D0 3E 06 !t............>. 1630: 32 00 79 CD 42 D3 FE 2C CA 04 C1 FE 2D CA 5B D3 2.y.B..,....-.[. 1640: FE 2E CA 8D D3 FE 34 CA DD D3 FE 35 CA 24 C3 FE ......4....5.$.. 1650: 36 CA 71 C2 FE 3C CA 92 C3 FE 3D CA 3A C4 FE 3E 6.q..<....=.:..> 1660: CA 8E CD FE 24 CA 71 D0 FE 01 CA 5F C2 FE 7E CA ....$.q...._..~. 1670: 5F C2 18 BF 2A 20 50 43 2D 47 38 35 30 56 20 56 _...* PC-G850V V 1680: 31 2E 30 32 20 43 48 45 43 4B 20 2A 31 3A 54 4F 1.02 CHECK *1:TO 1690: 54 41 4C 20 20 20 20 20 32 3A 52 41 4D 20 20 20 TAL 2:RAM 16A0: 20 20 20 20 33 3A 52 4F 4D 20 20 20 20 20 20 20 3:ROM #d1700 1700: 21 00 00 22 00 7C 22 01 7C 3E 20 11 00 00 06 60 !..".|".|> ....` 1710: CD EE BF CD 43 C0 38 22 CD 03 C2 CD EF C0 38 1A ....C.8"......8. 1720: CD 1B C2 CD 8E C1 2A 00 7C 11 01 00 19 22 00 7C ......*.|....".| 1730: 3A 02 7C CE 00 32 02 7C 18 CF CD FD BC FE 51 20 :.|..2.|......Q 1740: F9 18 C6 ED 5B 00 7C 3A 30 79 67 24 2E 00 73 23 ....[.|:0yg$..s# 1750: 72 23 13 3E 00 BD 20 F6 3E 78 BC 20 F1 ED 5B 00 r#.>.. .>x. ..[. 1760: 7C 3A 30 79 67 24 2E 00 4E 23 46 23 E5 60 69 A7 |:0yg$..N#F#.`i. 1770: ED 52 E1 20 49 13 7D FE 00 20 ED 7C FE 78 20 E8 .R. I.}.. .|.x . 1780: 21 AD C0 11 00 00 06 11 CD F1 BF 21 E8 7C 3A 02 !..........!.|:. 1790: 7C CD D0 C0 3A 01 7C CD D0 C0 3A 00 7C CD D0 C0 |...:.|...:.|... 17A0: 21 E8 7C 11 12 00 06 06 CD F1 BF A7 C9 52 41 4D !.|..........RAM #d1800 1800: 31 FE 7F 21 65 79 CB 96 AF 32 00 7C 32 01 7C 32 1..!ey...2.|2.|2 1810: 9A 77 CD 6F D4 CD 8D C4 CD 84 C3 31 FE 7F CD 39 .w.o.......1...9 1820: C4 CD 57 C4 CD 27 C5 FE 0D 28 F0 FE 05 28 EC FE ..W..'...(...(.. 1830: 0C 28 E8 FE 0B 28 E4 FE 43 28 0E FE 54 28 0F FE .(...(..C(..T(.. 1840: 47 28 16 FE 53 28 1C 18 D8 CD 80 C0 18 D3 CD 7B G(..S(.........{ 1850: C0 3E 01 32 02 7C C3 0F C2 CD 7B C0 AF 32 02 7C .>.2.|....{..2.| 1860: C3 0F C2 3A 01 7C B7 28 06 AF 32 01 7C 18 B2 CD ...:.|.(..2.|... 1870: AD BE 38 AD 3E 01 32 01 7C 18 A6 3A 00 7C B7 C0 ..8.>.2.|..:.|.. 1880: CD 77 C4 2A 73 79 22 24 7C 2A E3 79 23 22 26 7C .w.*sy"$|*.y#"&| 1890: 2A FC 79 2B 11 F0 00 B7 ED 52 22 28 7C CD 85 CC *.y+.....R"(|... 18A0: 3A 03 7C B7 20 08 3E 01 32 00 7C C3 82 C4 21 B0 :.|. .>.2.|...!. #d1900 1900: 21 00 00 39 22 2E 7C 2A 2A 7C ED 5B 26 7C B7 ED !..9".|**|.[&|.. 1910: 52 28 0D 4D 44 2A 26 7C AF 77 23 0B 79 B0 20 F8 R(.MD*&|.w#.y. . 1920: AF 32 03 7C 32 43 7C 32 44 7C 21 00 00 22 45 7C .2.|2C|2D|!.."E| 1930: 2A 2A 7C 22 30 7C 2A 2C 7C 22 32 7C 22 34 7C 22 **|"0|*,|"2|"4|" 1940: 36 7C 2A 28 7C 22 38 7C 18 06 CD 85 BC 08 FA FF 6|*(|"8|........ 1950: CD B5 BF 20 F5 21 50 C0 E5 2A 38 7C 7E 2B FE 05 ... .!P..*8|~+.. 1960: 30 13 FE 01 28 1D FE 02 28 2C FE 04 28 3F FE 03 0...(...(,..(?.. 1970: 28 47 C3 34 C1 22 38 7C EB 21 16 E6 4F 06 00 09 (G.4."8|.!..O... 1980: 09 09 E9 7E 2B 56 2B 5E 2B 22 38 7C ED 53 49 7C ...~+V+^+"8|.SI| 1990: 21 16 E9 C3 7C C0 7E 2B 56 2B 5E 2B 22 38 7C 2A !...|.~+V+^+"8|* 19A0: 36 7C 19 22 49 7C EB 21 16 E9 C3 7C C0 7E 2B 22 6|."I|.!...|.~+" #d1a00 1A00: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 1A10: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 1A20: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 1A30: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 1A40: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 1A50: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 1A60: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 1A70: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 1A80: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 1A90: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 1AA0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d1b00 1B00: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 1B10: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 1B20: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 1B30: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 1B40: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 1B50: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 1B60: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 1B70: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 1B80: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 1B90: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 1BA0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d1c00 1C00: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 1C10: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 1C20: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 1C30: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 1C40: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 1C50: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 1C60: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 1C70: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 1C80: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 1C90: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 1CA0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d1d00 1D00: 26 7C 3A 24 79 6F 3A 27 79 BD CA FD C0 3A 25 79 &|:$yo:'y....:%y 1D10: 95 3C 4F 3A 24 79 3D 32 24 79 2B 18 0E 3A 24 79 ...( 1DA0: 0A 38 08 D5 47 3E 20 CD EE BF D1 2A 3A 7F 23 23 .8..G> ....*:.## #d1e00 1E00: CD 50 C5 28 2C 21 36 7F CB 4E 20 25 DD E5 E1 CD .P.(,!6..N %.... 1E10: 44 C1 38 1D CD BB BF 38 12 CD 0D BF 3A 12 7F 38 D.8....8....:..8 1E20: 03 3A 17 7F B7 28 05 CD 2B BF B7 C9 CD 79 BF 18 .:...(..+....y.. 1E30: 03 C3 D1 BB DD E5 E1 23 3E 01 32 0A 7F 23 7E FE .......#>.2..#~. 1E40: FF 28 2E 23 23 E5 CD AD C1 FE FE 28 28 FE 3A 20 .(.##......((.: 1E50: 19 23 7E FE FE 20 13 23 7E FE 76 20 0D 3A 0A 7F .#~.. .#~.v .:.. 1E60: 3D 32 0A 7F 28 3C 3C 32 0A 7F E1 5E 16 00 19 18 =2..(<<2...^.... 1E70: CC CD 4F CB C9 23 7E FE 4D 28 12 FE 56 20 EB CD ..O..#~.M(..V .. 1E80: 44 C1 38 E6 3A 0A 7F 3C 32 0A 7F 18 DD 3A 0A 7F D.8.:..<2....:.. 1E90: 3D 32 0A 7F 20 D4 E1 5E 16 00 19 2B E5 DD E1 B7 =2.. ..^...+.... 1EA0: 18 D2 CD AD C1 FE FE 20 14 23 7E FE 56 20 0E E5 ....... .#~.V .. #d1f00 1F00: CD 1F C3 FE 30 CA 1A C0 FE 31 CA 1A C0 FE 0D CA ....0....1...... 1F10: 2E C0 FE 3A CA 2E C0 C3 79 83 D6 30 F5 CD 1F C3 ...:....y..0.... 1F20: FE 0D CA 31 C0 FE 3A CA 31 C0 F1 C3 79 83 3E 00 ...1..:.1...y.>. 1F30: F5 DD 2B DB 60 E6 03 C2 5B C0 F1 CD 61 C0 D0 C2 ..+.`...[...a... 1F40: 56 C0 FE 01 C2 4C C0 3E 84 C3 7B 83 B7 3A 35 7F V....L.>..{..:5. 1F50: CB EF 32 35 7F C9 3E 86 C3 7B 83 F1 3E 72 C3 7B ..25..>..{..>r.{ 1F60: 83 C5 D5 E5 DD E5 FD E5 F5 CD CA BF F1 CD C5 C0 ................ 1F70: DA A6 C0 CD 12 C3 CD 06 C3 CD 06 C3 CD 06 C3 3A ...............: 1F80: 2B C3 47 C5 CD 68 C1 CD AF C1 C1 DA A6 C0 10 F3 +.G..h.......... 1F90: CD 06 C3 CD 06 C3 CD 06 C3 F5 CD 44 BE F1 FD E1 ...........D.... 1FA0: DD E1 E1 D1 C1 C9 C2 C2 C0 B7 20 0D CD 06 C3 CD .......... ..... #d2000 2000: CD 85 BC 01 59 BE CD 85 BC 01 9A FF CD 85 BC 02 ....Y........... 2010: 8A C0 CD 85 BC 02 93 C0 CD 85 BC 02 9C C0 CD 85 ................ 2020: BC 02 A5 C0 CD 85 BC 02 AE C0 CD 85 BC 02 B7 C0 ................ 2030: CD 85 BC 02 C9 C0 CD 85 BC 02 45 C0 CD 85 BC 02 ..........E..... 2040: 81 C0 CD 85 BC 02 66 C0 CD 85 BC 02 54 C0 CD 85 ......f.....T... 2050: BC 02 5D C0 CD 85 BC 02 40 FF CD 85 BC 02 43 FF ..].....@.....C. 2060: CD 85 BC 02 46 FF CD 85 BC 03 E2 FF CD 85 BC 03 ....F........... 2070: E8 FF CD 85 BC 09 FA FF CD 85 BC 09 FD FF CD 85 ................ 2080: BC 0A FD FF CD 85 BC 0E CA FF CD 85 BC 0E CD FF ................ 2090: 4E 23 46 23 5E 23 56 23 7E 23 66 6F 7C B7 20 2D N#F#^#V#~#fo|. - 20A0: 7D 60 69 06 01 FE 00 28 06 06 02 FE 01 20 1E 78 }`i....(..... .x #d2100 2100: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 2110: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 2120: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 2130: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 2140: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 2150: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 2160: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 2170: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 2180: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 2190: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 21A0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d2200 2200: 21 FF 79 23 7E FE 28 28 FA FE 9C 20 0A CD 7B C1 !.y#~.((... ..{. 2210: 30 05 CD 19 C0 A7 C9 37 C9 2A CD 79 E5 2A CF 79 0......7.*.y.*.y 2220: E5 21 00 7E 06 16 36 20 23 10 FB CD 97 C0 38 11 .!.~..6 #.....8. 2230: 7D D6 18 6F 3E D0 32 14 7F 22 CD 79 3E 18 32 CF }..o>.2..".y>.2. 2240: 79 CD 37 C5 E1 22 CF 79 E1 22 CD 79 C9 CD 31 C5 y.7..".y.".y..1. 2250: CD 0F C2 DA 5E 83 CD 6A C2 21 60 7A CD 97 C0 D8 ....^..j.!`z.... 2260: 3E FF 77 21 60 7A ED 5B F7 79 16 7E 0E 00 7E FE >.w!`z.[.y.~..~. 2270: FF 28 0A 7B FE FF CA 84 83 ED A0 18 F1 3E D0 32 .(.{.........>.2 2280: 14 7F 3E 00 91 32 17 7F 2A F7 79 26 7E 22 15 7F ..>..2..*.y&~".. 2290: A7 62 6B 3A F7 79 C9 3A 11 7F E6 F8 32 11 7F 3A .bk:.y.:....2..: 22A0: 10 7F FE 10 DA D8 C0 FE 99 38 73 3A 11 7F 07 07 .........8s:.... #d2300 2300: 21 DA 79 CB 96 18 10 3A 02 79 E6 20 CA 69 83 3A !.y....:.y. .i.: 2310: D9 79 E6 10 C2 E5 C0 CD C2 C2 11 4A 77 01 08 00 .y.........Jw... 2320: ED B0 CD 30 C3 FE 0D 28 6A FE 2C 28 33 FE 2D CA ...0...(j.,(3.-. 2330: 5E 83 DD 2B CD 73 BF D8 21 10 7F CD 3A C3 FE 01 ^..+.s..!...:... 2340: CA EF C3 D2 5E 83 CD 30 C3 FE 0D 28 04 FE 2C 20 ....^..0...(.., 2350: 3F 21 10 7F 11 4A 77 01 08 00 ED B0 FE 0D 28 33 ?!...Jw.......(3 2360: CD 30 C3 FE 2D CA 5E 83 DD 2B CD 73 BF D8 21 10 .0..-.^..+.s..!. 2370: 7F CD 3A C3 FE 01 CA 5E 83 D2 5E 83 CD 30 C3 FE ..:....^..^..0.. 2380: 0D 20 0D 21 10 7F CD F5 C2 01 08 00 ED B0 18 03 . .!............ 2390: C3 79 83 21 4A 77 CD D3 C2 01 08 00 ED B0 3E 82 .y.!Jw........>. 23A0: CD 06 C3 DD 22 38 7F DD 2A E1 79 DD 23 DD 7E 00 ...."8..*.y.#.~. #d2400 2400: CD E7 C7 DA 07 C3 DD 22 20 7F CD F8 C7 DA F4 C2 ......." ....... 2410: 22 18 7F ED 53 1A 7F 22 1C 7F CD 51 CE EB CD 79 "...S.."...Q...y 2420: CE 21 00 00 22 32 77 CD 68 FE DD 2A 20 7F FD 2A .!.."2w.h..* ..* 2430: 18 7F DD E5 E1 23 23 46 23 CD CE CF CD 47 C8 DA .....##F#....G.. 2440: 47 C1 FE 01 28 24 B7 20 64 CD 70 C8 DA F7 C2 E5 G...($. d.p..... 2450: ED 5B 18 7F FD E5 E1 B7 ED 52 CB 3C CB 1D 22 26 .[.......R.<.."& 2460: 77 E1 CD 70 D0 CA 47 C1 18 43 CD DB CA DA 0D C3 w..p..G..C...... 2470: B7 C2 0D C3 CD 2B CB DA EF C2 CD 70 D0 C2 0D C3 .....+.....p.... 2480: D5 E5 C5 2A 32 77 7C B5 C2 22 C3 EB 46 23 C5 11 ...*2w|.."..F#.. 2490: 1E 77 01 0A 00 ED B0 CD EC CE D2 21 C3 C1 10 EE .w.........!.... 24A0: CD CE CF C1 E1 D1 ED 53 32 77 C3 47 C1 CD D1 C8 .......S2w.G.... #d2500 2500: E6 07 F6 B0 D3 40 DB 40 E6 80 20 FA C9 51 CD 00 .....@.@.. ..Q.. 2510: C0 3E 90 E6 0F CD 04 C0 3E 90 CD 0E C1 CD 04 C0 .>......>....... 2520: 7A D3 41 C9 CD 06 C0 3A 0D 79 C9 E5 DD E3 C5 D5 z.A....:.y...... 2530: CD 84 C0 CD 24 C0 C6 00 CD 0D C0 CD 9C C0 CD 24 ....$..........$ 2540: C0 C6 01 CD 0D C0 CD A7 C0 CD 24 C0 C6 02 CD 0D ..........$..... 2550: C0 CD C0 C0 CD 24 C0 C6 03 CD 0D C0 CD CF C0 CD .....$.......... 2560: 24 C0 C6 04 CD 0D C0 CD E8 C0 CD 24 C0 C6 05 CD $..........$.... 2570: 0D C0 CD 24 C0 D1 C1 DD E1 C9 21 01 79 E5 DD E3 ...$......!.y... 2580: C5 D5 18 E3 0E 00 DD 7E 01 CB 77 28 02 CB C9 CB .......~..w(.... 2590: 6F 28 02 CB D9 CB 5F 28 02 CB F1 C9 0E 00 DD CB o(...._(........ 25A0: 01 66 28 02 CB D9 C9 0E 00 DD CB 03 6E 28 02 CB .f(.........n(.. #d2600 2600: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2610: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2620: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2630: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2640: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2650: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2660: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2670: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2680: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2690: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 26A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2700 2700: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2710: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2720: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2730: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2740: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2750: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2760: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2770: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2780: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2790: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 27A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2800 2800: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2810: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2830: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2840: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2850: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2860: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2870: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2880: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2890: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 28A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2900 2900: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2910: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2920: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2930: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2940: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2950: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2960: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2970: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2980: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2990: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 29A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2a00 2A00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2A90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2AA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2b00 2B00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2B90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2BA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2c00 2C00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2C90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2CA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2d00 2D00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2D90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2DA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2e00 2E00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2E90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2EA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d2f00 2F00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2F90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 2FA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d3000 3000: C3 AD 13 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 3010: 21 31 7F CB 8E 21 18 7F 18 12 21 31 7F CB 96 21 !1...!....!1...! 3020: 20 7F 18 08 21 31 7F CB 86 21 10 7F 3E 00 77 2C ...!1...!..>.w, 3030: 77 2C 77 2C 77 2C 77 2C 77 2C 77 2C 77 C9 21 31 w,w,w,w,w,w,w.!1 3040: 7F CB 8E 21 18 7F 06 08 3E 00 77 2C 10 FC 2E 1A ...!....>.w,.... 3050: CB E6 C9 21 19 7F 18 0D 21 21 7F 18 08 21 29 7F ...!....!!...!). 3060: 18 03 21 11 7F 7E E6 F0 77 2C 06 06 3E 00 77 2C ..!..~..w,..>.w, 3070: 10 FC C9 21 18 7F 18 03 21 10 7F 36 00 2C 7E E6 ...!....!..6.,~. 3080: 0F 77 C9 C3 32 85 CB 9E CB 4E 28 02 CB DE 11 28 .w..2....N(....( 3090: 7F 18 22 C3 59 85 CB 8E CB 5E 28 02 CB CE 11 18 ..".Y....^(..... 30A0: 7F 21 28 7F C3 19 81 C3 70 85 CB 86 CB 4E 28 02 .!(.....p....N(. #d3100 3100: 3E 01 D3 1A 31 FE 7F 3E 8B D3 7B 3E A0 D3 7A 3E >...1..>..{>..z> 3110: 01 D3 69 3E FF D3 16 AF D3 1B D3 11 D3 12 3E 02 ..i>..........>. 3120: D3 1E 06 D2 CB 47 CB 47 10 FA DB 1D 4F 06 0A 10 .....G.G....O... 3130: FE DB 1D A1 1F DA D6 BC 3E 03 D3 1E 21 03 79 CB ........>...!.y. 3140: 86 21 40 7F 3E 5A 77 BE 28 28 DB 19 E6 0F F6 40 .!@.>Zw.((.....@ 3150: D3 19 3E 01 D3 69 11 00 80 21 DA C3 06 11 1A BE ..>..i...!...... 3160: 20 07 13 23 10 F8 C3 10 80 3E 01 D3 19 D3 69 C3 ..#.....>....i. 3170: D6 BC 3E 01 32 00 79 CD D6 BF CD D3 BF 21 27 7F ..>.2.y......!'. 3180: 3E A5 06 06 BE 20 0B 23 10 FA BE 28 08 3E 5A BE >.... .#...(.>Z. 3190: 28 03 CD 9D C0 21 00 79 36 01 C3 CC C0 3E C3 32 (....!.y6....>.2 31A0: 00 00 21 F4 BF 22 01 00 21 03 00 06 3D AF 77 23 ..!.."..!...=.w# #d3200 3200: CD 00 DC 38 09 CD 9D FE C9 00 00 00 00 00 21 1D ...8..........!. 3210: 7F 11 15 7F 01 02 00 ED B0 1A 86 12 A7 C9 CD 00 ................ 3220: DC DA 8C 83 CD 97 FE C9 00 00 00 00 00 CD 91 FE ................ 3230: C9 00 00 00 00 00 00 00 00 CD 8B FE C9 00 00 00 ................ 3240: 00 00 00 00 00 CD 85 FE C9 00 00 00 00 00 00 00 ................ 3250: 00 00 00 00 CD 7F FE C9 00 00 00 00 00 CD 79 FE ..............y. 3260: C9 00 00 00 00 00 CD 73 FE C9 00 00 00 00 00 CD .......s........ 3270: 6D FE C9 00 00 00 00 00 CD 67 FE C9 00 00 00 00 m........g...... 3280: 00 CD 61 FE C9 00 00 00 00 00 CD 5B FE C9 00 00 ..a........[.... 3290: 00 00 00 CD 55 FE C9 00 00 00 00 00 CD 4F FE C9 ....U........O.. 32A0: 00 00 00 00 00 CD 49 FE C9 00 00 00 00 00 CD 43 ......I........C #d3300 3300: 7B FE 00 30 02 1E 00 7A FE 06 38 02 16 05 7E B7 {..0...z..8...~. 3310: C8 FE 0D 28 15 FE 0C 28 25 FE 10 38 1E D5 E5 CD ...(...(%..8.... 3320: 5F BE E1 D1 1C 7B FE 18 38 11 1E 00 14 7A FE 06 _....{..8....z.. 3330: 38 09 E5 D5 CD EB BF D1 E1 16 05 23 18 D0 E5 D5 8..........#.... 3340: CD 68 C3 D1 E1 18 F4 E5 F5 CD 72 C3 F1 57 FE 06 .h........r..W.. 3350: 38 00 1E 00 06 18 E1 7E B7 C8 FE 0D C8 E5 D5 C5 8......~........ 3360: CD 5F BE C1 D1 E1 1C 23 10 ED C9 F5 3A E3 7E E6 ._.....#....:.~. 3370: FD 18 06 F5 3A E3 7E F6 02 32 E3 7E F1 C5 D5 E5 ....:.~..2.~.... 3380: FE 20 30 24 FE 05 28 1C FE 1D 28 32 FE 1C 28 33 . 0$..(...(2..(3 3390: FE 08 28 34 FE 09 28 35 FE 12 28 36 FE 0C 28 37 ..(4..(5..(6..(7 33A0: FE 0B 28 33 E1 D1 C1 C9 FE F9 30 F8 CD B9 C2 CD ..(3......0..... #d3400 3400: 20 20 20 20 20 20 20 2A CD 05 C7 D0 CD 0C C7 D0 *........ 3410: FE 23 D8 FE 2A 3F D0 FE 2D C8 FE 40 C8 FE 5E D8 .#..*?..-..@..^. 3420: FE 60 3F D0 C8 FE 7C 3F D0 FE 7D C8 FE A1 D8 FE .`?...|?..}..... 3430: E0 3F C9 21 11 79 CB 86 CD F5 C6 FE 42 20 05 CB .?.!.y......B .. 3440: C6 CD F5 C6 DD 2B FE 0D 20 2C DD E5 CD F9 BD DD .....+.. ,...... 3450: E1 F5 CD 57 C0 F1 C9 21 7D 79 CB 86 CD 33 C7 20 ...W...!}y...3. 3460: 15 21 65 79 CB 96 3E 20 06 90 11 00 00 CD EE BF .!ey..> ........ 3470: AF 3D 32 23 79 C9 DD 23 C3 79 83 C5 D5 06 91 21 .=2#y..#.y.....! 3480: 00 7E E5 3E 20 77 23 10 FC 21 00 00 22 0E 79 CD .~.> w#..!..".y. 3490: B1 C4 20 14 3A 11 79 1F 30 0E CD DC C0 30 FB 21 .. .:.y.0....0.! 34A0: 0E 79 35 37 20 2D 18 30 CD DC C0 38 2B 3E 1E CD .y57 -.0...8+>.. #d3500 3500: 3A 65 79 E6 01 32 65 79 CD 18 C1 CD 3F C1 DD 56 :ey..2ey....?..V 3510: 4A DD 5E 4B CD 8B C2 DD 56 02 DD 5E 03 CD A7 C2 J.^K....V..^.... 3520: CD D6 C1 21 00 00 39 DD 74 0A DD 75 0B CD 4C C2 ...!..9.t..u..L. 3530: D8 3E 0B CD B0 E3 CD 0F C2 3E 07 30 08 CD B0 E3 .>.......>.0.... 3540: CD E1 D5 18 FB DD CB 4E 56 28 08 3E 15 CD DB D6 .......NV(.>.... 3550: DA BE DE 3E 0C CD 75 E5 CD C0 C2 DD CB 4C C6 DD ...>..u......L.. 3560: CB 4E 56 20 06 DD CB 4E 5E 28 05 3E 0F CD 75 E5 .NV ...N^(.>..u. 3570: CD D6 C1 CD 0F C2 CD C2 DC CD C0 C2 DD CB 4E 46 ..............NF 3580: 28 44 CD C8 DD 3E 0D CD B0 E3 DD 66 39 DD 6E 3A (D...>.....f9.n: 3590: 7C B5 20 28 3E 30 CD DB D6 FE 50 28 09 FE D0 28 |. (>0....P(...( 35A0: 05 CD E4 D5 18 EE 3E 0D DD 77 01 31 FE 7F DD E5 ......>..w.1.... #d3600 3600: 7B 84 3E C9 32 38 00 CD 02 D0 3E 00 32 01 79 32 {.>.28....>.2.y2 3610: 02 79 32 04 79 3A 03 79 E6 00 32 03 79 CD F2 C9 .y2.y:.y..2.y... 3620: 21 74 C0 11 00 00 06 90 CD F1 BF CD 02 D0 3E 06 !t............>. 3630: 32 00 79 CD 42 D3 FE 2C CA 04 C1 FE 2D CA 5B D3 2.y.B..,....-.[. 3640: FE 2E CA 8D D3 FE 34 CA DD D3 FE 35 CA 24 C3 FE ......4....5.$.. 3650: 36 CA 71 C2 FE 3C CA 92 C3 FE 3D CA 3A C4 FE 3E 6.q..<....=.:..> 3660: CA 8E CD FE 24 CA 71 D0 FE 01 CA 5F C2 FE 7E CA ....$.q...._..~. 3670: 5F C2 18 BF 2A 20 50 43 2D 47 38 35 30 56 20 56 _...* PC-G850V V 3680: 31 2E 30 32 20 43 48 45 43 4B 20 2A 31 3A 54 4F 1.02 CHECK *1:TO 3690: 54 41 4C 20 20 20 20 20 32 3A 52 41 4D 20 20 20 TAL 2:RAM 36A0: 20 20 20 20 33 3A 52 4F 4D 20 20 20 20 20 20 20 3:ROM #d3700 3700: 21 00 00 22 00 7C 22 01 7C 3E 20 11 00 00 06 60 !..".|".|> ....` 3710: CD EE BF CD 43 C0 38 22 CD 03 C2 CD EF C0 38 1A ....C.8"......8. 3720: CD 1B C2 CD 8E C1 2A 00 7C 11 01 00 19 22 00 7C ......*.|....".| 3730: 3A 02 7C CE 00 32 02 7C 18 CF CD FD BC FE 51 20 :.|..2.|......Q 3740: F9 18 C6 ED 5B 00 7C 3A 30 79 67 24 2E 00 73 23 ....[.|:0yg$..s# 3750: 72 23 13 3E 00 BD 20 F6 3E 78 BC 20 F1 ED 5B 00 r#.>.. .>x. ..[. 3760: 7C 3A 30 79 67 24 2E 00 4E 23 46 23 E5 60 69 A7 |:0yg$..N#F#.`i. 3770: ED 52 E1 20 49 13 7D FE 00 20 ED 7C FE 78 20 E8 .R. I.}.. .|.x . 3780: 21 AD C0 11 00 00 06 11 CD F1 BF 21 E8 7C 3A 02 !..........!.|:. 3790: 7C CD D0 C0 3A 01 7C CD D0 C0 3A 00 7C CD D0 C0 |...:.|...:.|... 37A0: 21 E8 7C 11 12 00 06 06 CD F1 BF A7 C9 52 41 4D !.|..........RAM #d3800 3800: 31 FE 7F 21 65 79 CB 96 AF 32 00 7C 32 01 7C 32 1..!ey...2.|2.|2 3810: 9A 77 CD 6F D4 CD 8D C4 CD 84 C3 31 FE 7F CD 39 .w.o.......1...9 3820: C4 CD 57 C4 CD 27 C5 FE 0D 28 F0 FE 05 28 EC FE ..W..'...(...(.. 3830: 0C 28 E8 FE 0B 28 E4 FE 43 28 0E FE 54 28 0F FE .(...(..C(..T(.. 3840: 47 28 16 FE 53 28 1C 18 D8 CD 80 C0 18 D3 CD 7B G(..S(.........{ 3850: C0 3E 01 32 02 7C C3 0F C2 CD 7B C0 AF 32 02 7C .>.2.|....{..2.| 3860: C3 0F C2 3A 01 7C B7 28 06 AF 32 01 7C 18 B2 CD ...:.|.(..2.|... 3870: AD BE 38 AD 3E 01 32 01 7C 18 A6 3A 00 7C B7 C0 ..8.>.2.|..:.|.. 3880: CD 77 C4 2A 73 79 22 24 7C 2A E3 79 23 22 26 7C .w.*sy"$|*.y#"&| 3890: 2A FC 79 2B 11 F0 00 B7 ED 52 22 28 7C CD 85 CC *.y+.....R"(|... 38A0: 3A 03 7C B7 20 08 3E 01 32 00 7C C3 82 C4 21 B0 :.|. .>.2.|...!. #d3900 3900: 21 00 00 39 22 2E 7C 2A 2A 7C ED 5B 26 7C B7 ED !..9".|**|.[&|.. 3910: 52 28 0D 4D 44 2A 26 7C AF 77 23 0B 79 B0 20 F8 R(.MD*&|.w#.y. . 3920: AF 32 03 7C 32 43 7C 32 44 7C 21 00 00 22 45 7C .2.|2C|2D|!.."E| 3930: 2A 2A 7C 22 30 7C 2A 2C 7C 22 32 7C 22 34 7C 22 **|"0|*,|"2|"4|" 3940: 36 7C 2A 28 7C 22 38 7C 18 06 CD 85 BC 08 FA FF 6|*(|"8|........ 3950: CD B5 BF 20 F5 21 50 C0 E5 2A 38 7C 7E 2B FE 05 ... .!P..*8|~+.. 3960: 30 13 FE 01 28 1D FE 02 28 2C FE 04 28 3F FE 03 0...(...(,..(?.. 3970: 28 47 C3 34 C1 22 38 7C EB 21 16 E6 4F 06 00 09 (G.4."8|.!..O... 3980: 09 09 E9 7E 2B 56 2B 5E 2B 22 38 7C ED 53 49 7C ...~+V+^+"8|.SI| 3990: 21 16 E9 C3 7C C0 7E 2B 56 2B 5E 2B 22 38 7C 2A !...|.~+V+^+"8|* 39A0: 36 7C 19 22 49 7C EB 21 16 E9 C3 7C C0 7E 2B 22 6|."I|.!...|.~+" #d3a00 3A00: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 3A10: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 3A20: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 3A30: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 3A40: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 3A50: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 3A60: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 3A70: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 3A80: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 3A90: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 3AA0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d3b00 3B00: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 3B10: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 3B20: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 3B30: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 3B40: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 3B50: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 3B60: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 3B70: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 3B80: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 3B90: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 3BA0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d3c00 3C00: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 3C10: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 3C20: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 3C30: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 3C40: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 3C50: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 3C60: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 3C70: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 3C80: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 3C90: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 3CA0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d3d00 3D00: 26 7C 3A 24 79 6F 3A 27 79 BD CA FD C0 3A 25 79 &|:$yo:'y....:%y 3D10: 95 3C 4F 3A 24 79 3D 32 24 79 2B 18 0E 3A 24 79 ...( 3DA0: 0A 38 08 D5 47 3E 20 CD EE BF D1 2A 3A 7F 23 23 .8..G> ....*:.## #d3e00 3E00: CD 50 C5 28 2C 21 36 7F CB 4E 20 25 DD E5 E1 CD .P.(,!6..N %.... 3E10: 44 C1 38 1D CD BB BF 38 12 CD 0D BF 3A 12 7F 38 D.8....8....:..8 3E20: 03 3A 17 7F B7 28 05 CD 2B BF B7 C9 CD 79 BF 18 .:...(..+....y.. 3E30: 03 C3 D1 BB DD E5 E1 23 3E 01 32 0A 7F 23 7E FE .......#>.2..#~. 3E40: FF 28 2E 23 23 E5 CD AD C1 FE FE 28 28 FE 3A 20 .(.##......((.: 3E50: 19 23 7E FE FE 20 13 23 7E FE 76 20 0D 3A 0A 7F .#~.. .#~.v .:.. 3E60: 3D 32 0A 7F 28 3C 3C 32 0A 7F E1 5E 16 00 19 18 =2..(<<2...^.... 3E70: CC CD 4F CB C9 23 7E FE 4D 28 12 FE 56 20 EB CD ..O..#~.M(..V .. 3E80: 44 C1 38 E6 3A 0A 7F 3C 32 0A 7F 18 DD 3A 0A 7F D.8.:..<2....:.. 3E90: 3D 32 0A 7F 20 D4 E1 5E 16 00 19 2B E5 DD E1 B7 =2.. ..^...+.... 3EA0: 18 D2 CD AD C1 FE FE 20 14 23 7E FE 56 20 0E E5 ....... .#~.V .. #d3f00 3F00: CD 1F C3 FE 30 CA 1A C0 FE 31 CA 1A C0 FE 0D CA ....0....1...... 3F10: 2E C0 FE 3A CA 2E C0 C3 79 83 D6 30 F5 CD 1F C3 ...:....y..0.... 3F20: FE 0D CA 31 C0 FE 3A CA 31 C0 F1 C3 79 83 3E 00 ...1..:.1...y.>. 3F30: F5 DD 2B DB 60 E6 03 C2 5B C0 F1 CD 61 C0 D0 C2 ..+.`...[...a... 3F40: 56 C0 FE 01 C2 4C C0 3E 84 C3 7B 83 B7 3A 35 7F V....L.>..{..:5. 3F50: CB EF 32 35 7F C9 3E 86 C3 7B 83 F1 3E 72 C3 7B ..25..>..{..>r.{ 3F60: 83 C5 D5 E5 DD E5 FD E5 F5 CD CA BF F1 CD C5 C0 ................ 3F70: DA A6 C0 CD 12 C3 CD 06 C3 CD 06 C3 CD 06 C3 3A ...............: 3F80: 2B C3 47 C5 CD 68 C1 CD AF C1 C1 DA A6 C0 10 F3 +.G..h.......... 3F90: CD 06 C3 CD 06 C3 CD 06 C3 F5 CD 44 BE F1 FD E1 ...........D.... 3FA0: DD E1 E1 D1 C1 C9 C2 C2 C0 B7 20 0D CD 06 C3 CD .......... ..... #d4000 4000: CD 85 BC 01 59 BE CD 85 BC 01 9A FF CD 85 BC 02 ....Y........... 4010: 8A C0 CD 85 BC 02 93 C0 CD 85 BC 02 9C C0 CD 85 ................ 4020: BC 02 A5 C0 CD 85 BC 02 AE C0 CD 85 BC 02 B7 C0 ................ 4030: CD 85 BC 02 C9 C0 CD 85 BC 02 45 C0 CD 85 BC 02 ..........E..... 4040: 81 C0 CD 85 BC 02 66 C0 CD 85 BC 02 54 C0 CD 85 ......f.....T... 4050: BC 02 5D C0 CD 85 BC 02 40 FF CD 85 BC 02 43 FF ..].....@.....C. 4060: CD 85 BC 02 46 FF CD 85 BC 03 E2 FF CD 85 BC 03 ....F........... 4070: E8 FF CD 85 BC 09 FA FF CD 85 BC 09 FD FF CD 85 ................ 4080: BC 0A FD FF CD 85 BC 0E CA FF CD 85 BC 0E CD FF ................ 4090: 4E 23 46 23 5E 23 56 23 7E 23 66 6F 7C B7 20 2D N#F#^#V#~#fo|. - 40A0: 7D 60 69 06 01 FE 00 28 06 06 02 FE 01 20 1E 78 }`i....(..... .x #d4100 4100: 44 4D 21 00 00 3E 10 29 CB 21 CB 10 30 01 19 3D DM!..>.).!..0..= 4110: 20 F5 C9 21 00 00 3E 10 CB 23 CB 12 CB 15 CB 14 ..!..>..#...... 4120: B7 ED 42 30 03 09 18 01 13 3D 20 EC C9 06 00 7E ..B0.....= ....~ 4130: B7 28 04 23 04 18 F8 78 C9 1A BE 20 09 B7 20 02 .(.#...x... .. . 4140: 37 C9 23 13 18 F3 B7 C9 EB 1A BE 20 09 B7 20 02 7.#........ .. . 4150: AF C9 13 23 18 F3 96 C9 1A 77 B7 28 04 23 13 18 ...#.....w.(.#.. 4160: F7 C9 22 30 7C 7E E6 0F 87 6F 26 00 01 04 7C 09 .."0|~...o&...|. 4170: 22 32 7C 7E 23 66 6F 22 65 7D 7D B4 28 19 23 23 "2|~#fo"e}}.(.## 4180: 23 23 EB 2A 30 7C CD 39 C0 38 47 2A 65 7D 7E 23 ##.*0|.9.8G*e}~# 4190: 66 6F 22 65 7D 18 E3 2A 30 7C CD 2D C0 C6 05 CD fo"e}..*0|.-.... 41A0: 59 C5 22 65 7D 2A 65 7D 23 23 AF 77 23 77 ED 5B Y."e}*e}##.w#w.[ #d4200 4200: 21 FF 79 23 7E FE 28 28 FA FE 9C 20 0A CD 7B C1 !.y#~.((... ..{. 4210: 30 05 CD 19 C0 A7 C9 37 C9 2A CD 79 E5 2A CF 79 0......7.*.y.*.y 4220: E5 21 00 7E 06 16 36 20 23 10 FB CD 97 C0 38 11 .!.~..6 #.....8. 4230: 7D D6 18 6F 3E D0 32 14 7F 22 CD 79 3E 18 32 CF }..o>.2..".y>.2. 4240: 79 CD 37 C5 E1 22 CF 79 E1 22 CD 79 C9 CD 31 C5 y.7..".y.".y..1. 4250: CD 0F C2 DA 5E 83 CD 6A C2 21 60 7A CD 97 C0 D8 ....^..j.!`z.... 4260: 3E FF 77 21 60 7A ED 5B F7 79 16 7E 0E 00 7E FE >.w!`z.[.y.~..~. 4270: FF 28 0A 7B FE FF CA 84 83 ED A0 18 F1 3E D0 32 .(.{.........>.2 4280: 14 7F 3E 00 91 32 17 7F 2A F7 79 26 7E 22 15 7F ..>..2..*.y&~".. 4290: A7 62 6B 3A F7 79 C9 3A 11 7F E6 F8 32 11 7F 3A .bk:.y.:....2..: 42A0: 10 7F FE 10 DA D8 C0 FE 99 38 73 3A 11 7F 07 07 .........8s:.... #d4300 4300: 21 DA 79 CB 96 18 10 3A 02 79 E6 20 CA 69 83 3A !.y....:.y. .i.: 4310: D9 79 E6 10 C2 E5 C0 CD C2 C2 11 4A 77 01 08 00 .y.........Jw... 4320: ED B0 CD 30 C3 FE 0D 28 6A FE 2C 28 33 FE 2D CA ...0...(j.,(3.-. 4330: 5E 83 DD 2B CD 73 BF D8 21 10 7F CD 3A C3 FE 01 ^..+.s..!...:... 4340: CA EF C3 D2 5E 83 CD 30 C3 FE 0D 28 04 FE 2C 20 ....^..0...(.., 4350: 3F 21 10 7F 11 4A 77 01 08 00 ED B0 FE 0D 28 33 ?!...Jw.......(3 4360: CD 30 C3 FE 2D CA 5E 83 DD 2B CD 73 BF D8 21 10 .0..-.^..+.s..!. 4370: 7F CD 3A C3 FE 01 CA 5E 83 D2 5E 83 CD 30 C3 FE ..:....^..^..0.. 4380: 0D 20 0D 21 10 7F CD F5 C2 01 08 00 ED B0 18 03 . .!............ 4390: C3 79 83 21 4A 77 CD D3 C2 01 08 00 ED B0 3E 82 .y.!Jw........>. 43A0: CD 06 C3 DD 22 38 7F DD 2A E1 79 DD 23 DD 7E 00 ...."8..*.y.#.~. #d4400 4400: CD E7 C7 DA 07 C3 DD 22 20 7F CD F8 C7 DA F4 C2 ......." ....... 4410: 22 18 7F ED 53 1A 7F 22 1C 7F CD 51 CE EB CD 79 "...S.."...Q...y 4420: CE 21 00 00 22 32 77 CD 68 FE DD 2A 20 7F FD 2A .!.."2w.h..* ..* 4430: 18 7F DD E5 E1 23 23 46 23 CD CE CF CD 47 C8 DA .....##F#....G.. 4440: 47 C1 FE 01 28 24 B7 20 64 CD 70 C8 DA F7 C2 E5 G...($. d.p..... 4450: ED 5B 18 7F FD E5 E1 B7 ED 52 CB 3C CB 1D 22 26 .[.......R.<.."& 4460: 77 E1 CD 70 D0 CA 47 C1 18 43 CD DB CA DA 0D C3 w..p..G..C...... 4470: B7 C2 0D C3 CD 2B CB DA EF C2 CD 70 D0 C2 0D C3 .....+.....p.... 4480: D5 E5 C5 2A 32 77 7C B5 C2 22 C3 EB 46 23 C5 11 ...*2w|.."..F#.. 4490: 1E 77 01 0A 00 ED B0 CD EC CE D2 21 C3 C1 10 EE .w.........!.... 44A0: CD CE CF C1 E1 D1 ED 53 32 77 C3 47 C1 CD D1 C8 .......S2w.G.... #d4500 4500: E6 07 F6 B0 D3 40 DB 40 E6 80 20 FA C9 51 CD 00 .....@.@.. ..Q.. 4510: C0 3E 90 E6 0F CD 04 C0 3E 90 CD 0E C1 CD 04 C0 .>......>....... 4520: 7A D3 41 C9 CD 06 C0 3A 0D 79 C9 E5 DD E3 C5 D5 z.A....:.y...... 4530: CD 84 C0 CD 24 C0 C6 00 CD 0D C0 CD 9C C0 CD 24 ....$..........$ 4540: C0 C6 01 CD 0D C0 CD A7 C0 CD 24 C0 C6 02 CD 0D ..........$..... 4550: C0 CD C0 C0 CD 24 C0 C6 03 CD 0D C0 CD CF C0 CD .....$.......... 4560: 24 C0 C6 04 CD 0D C0 CD E8 C0 CD 24 C0 C6 05 CD $..........$.... 4570: 0D C0 CD 24 C0 D1 C1 DD E1 C9 21 01 79 E5 DD E3 ...$......!.y... 4580: C5 D5 18 E3 0E 00 DD 7E 01 CB 77 28 02 CB C9 CB .......~..w(.... 4590: 6F 28 02 CB D9 CB 5F 28 02 CB F1 C9 0E 00 DD CB o(...._(........ 45A0: 01 66 28 02 CB D9 C9 0E 00 DD CB 03 6E 28 02 CB .f(.........n(.. #d4600 4600: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4610: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4620: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4630: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4640: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4650: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4660: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4670: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4680: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4690: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 46A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4700 4700: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4710: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4720: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4730: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4740: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4750: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4760: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4770: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4780: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4790: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 47A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4800 4800: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4810: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4830: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4840: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4850: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4860: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4870: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4880: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4890: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 48A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4900 4900: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4910: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4920: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4930: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4940: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4950: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4960: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4970: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4980: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4990: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 49A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4a00 4A00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4A90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4AA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4b00 4B00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4B90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4BA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4c00 4C00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4C90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4CA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4d00 4D00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4D90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4DA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4e00 4E00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4E90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4EA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ #d4f00 4F00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F10: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F80: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4F90: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ 4FA0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................



[TOP] [ 前へ ] 連載記事 [ 次へ ]
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

ポケコン(G850)用拡張基板(その5)確認事項4 [ポケコン]

 前回の記事でPC-G850V(以降、G850と記す)のシステムボードに接続した拡張基板の Eborsy に搭載したメモリ関連の確認が完了したので、今回は最後の SDカード のインターフェースの確認について書いてみます。

 今回は SDカードのインターフェースである SPI を GAL を使って Z80のソフトウェアで実現します。とは言っても以前設計した GAL を使った Z80 ボード(Z80GAL)でやった時に書いた記事「Z80GALの構想(その6)SPIインターフェースの実装」の内容とほぼ同様です。
 下図が今回作成したシステムバス用の拡張ボードである Eborsy を使って G850 で SDカードの初期化を行った際のロジアナ波形です。SDカードからは OK 応答である 01H が返信されています。

SDカード初期化時のコマンド(CMD0)実行波形 [sampling:25MHz]


 先頭の部分を拡大したものが下図で 300K bit/sec 程度のビットレートが出ていることが判ります(読込みはもう少し遅くなります)。

SDカード初期化時の拡大波形 [sampling:25MHz]


 ということで最後に残った確認事項である「 G850 で IORQ/ をクロックに使って GAL により SDカード のインターフェースを実現できるのか」の確認結果は、「 G850 でも GAL で SDカードのインターフェースは実現可能」ということになりました。
 ここまで環境が整うと CP/M を動かしてみたくなります(というか最初からそれが目的w)

 これまではハード問題等は多少あったものの比較的順調に作業できました・・・が、外部メモリ上で CP/M を動かそうとすると周期的な割込みがある上に IOCS( Iput Output Conrol System : G850 の BIOS のようなもの)へのサービス要求毎にバンク切替えが必要で、今までの自作ボードとは違い結構手こずりました。

 漸く、安定して動くようになったのでブログ記事に書きたいと思います。
 メモリマップの概要は下表のとおりで、64KB の前半の内部メモリはほとんど空いています。また、8000H の 0,2,3 のバンクも未使用です。

addressInternal Memoryexternal memory
0000H - 7FFFHwrapping modules for system call TPA of CP/M
8000H - 9BFFHG850's ROM same as above (bank1)
9C00H - B1FFHsame as aboveCCP & BDOS of CP/M (bank1)
B200H - BFFFHsame as aboveBIOS for PC-G850V (bank1)
C000H - FFFFHG850's system ROM (bank0-21) ----

★変更 2022/01/04 {
 C000H バンクにはその後の調査によりバンク 21 までメモリが実装されていることが判明したので 15 を 21 に修正
}

 ネット上でも G850 でCP/Mを動かしたという情報は見掛けないので、もしかしたら G850 上で初めて BDS-C を使ってコンパイルした人になったかもしれませんねw

 twitterにアップした動画付きメッセージを貼っておきます。



★追記 2021/12/29
 Eborsyの写真等を追加して YouTube にアップしました。





[TOP] [ 前へ ] 連載記事 [ 次へ ]

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

ポケコン(G850)用超高速Hexローダーの制作 [ポケコン]

 ポケコンのPC-G850V(以降、G850と記す)でパソコンからヘキサファイルをダウンロードする際に結構時間が掛かります。

 下図は G850 でモニタのWコマンドを使ってメモリ内容をヘキサフォーマットでパソコン側に送っている時のロジアナ波形です。送信キャラクタ間の隙間もなく詰めて送信しています。

G850送信中のロジアナ波形例 [sampling:32MHz]
★追記 2021/12/26 {
 上記の波形測定点とG850との間には論理合わせのためのインバータが入っているのでG850の外部ピンの信号は上記の逆論理になっています。以降の図においても同様です。
}

 拡大図が下図です。1 bit分の計測値が 0.10 ms になっています。ビットレートは 9600bps なのでビット当たりの時間の理論値は 0.104 ( = 1000ms / 9600 ) ms となり、下図とほぼ同じです。

G850送信中のロジアナ波形例(拡大) [sampling:32MHz]


 ところが・・ですよ。パソコンからヘキサファイルを G850 にダウンロードしている時の波形が下図でスカスカ状態です。TeraTerm を使っていて、エラーが起きないように
    1 msec / char     0 msec / line
の設定で送っています。
 TeraTermが時間を入れ過ぎているのか、予想以上にスッカスカですねぇ~(でも1文字当たりの 1 ms のウェイトを 0 ms にするとエラーが発生する)
 上記のように 9600bps では 1 ビット当たり 0.1 ms で 10 bitで 1 キャラなのでそもそも 1ms/文字 のウェイトでは 9600 bps での送信時間が 2 倍になってしまうということなのですが、実際はそれ以上にスカスカの状態でした。

PCからヘキサファイルダウンロード中のロジアナ波形例 [sampling:32MHz]


 拡大したものが下図になります。当然ですが 1 ビットの計測時間は上記の送信時とほぼ同じです。

PCからヘキサファイルダウンロード中のロジアナ波形例(拡大) [sampling:32MHz]


 パソコンで開発したソフトのヘキサファイルのダウンロードに余りにも時間が掛かって作業効率が悪いのでソフトシリアル方式のヘキサファイルのローダーを作ってみることにしました。

 ソフト制御なので1文字受信中は掛かりっきりになりますが、ストップビットを待たずにフライング処理してどこまでの速度に対応できるかが面白いところです。ノーウェイト状態で 38400 bps ではエラーになりましたが、19200 bps では問題無く動きました。
 限界ギリギリまでチューニングしきっているとはまだ言えませんが、利便性は満足いくレベルなので、作成したヘキサファイルダウンローダーを DropHx(ドロップヘックス)と命名し公開することにしました。
 気になるダウンロード時間ですが「ポケコン(PC-G850V)でGAME言語(その6)LifeGame2」の記事で公開しているライフゲームのヘキサファイルを使用して比較してみた結果が下の表です。

 標準ロード方式  DropHx  ratio 
  3 min 27 sec ( 207sec )  7 sec  30


 標準方式の 30 倍とは予想以上に爆速になったものです ^^
 ダウンロード対象のヘキサファイルのサイズが 13188 文字なので 理論値は 6.9(=1/19200*10*13188) sec で DropHx の時間とほぼ同じです。


[使用方法]
  1. メモリ領域の確保
     モニタで USER6FFF のコマンドを実行する
  2. DropHxのダウンロード
     下記リンクからダウンロードした DropHx のヘキサファイルをモニタのR コマンドでダウンロードする
  3. 起動
      G100 コマンドで起動する
  4. ヘキサファイル送信
     パソコン側からダウンロードしたいヘキサファイルを送信する
     通信設定は 19200 bps, start bit:1, stop bit:1, parity:無し
     フロー制御:無し、キャラクタ及びライン毎のウェイト:無し
  5. 次回以降の起動
      DropHx は 自身を 6F00H 以降にコピーし、6F00H から実行されるので、2回目以降は G6F00 コマンドのみで起動可能です

 下記からダウンロード可能です。商用利用以外であれば自由に使用可能とします。
 尚、無保証ですので問題が発生した場合、当方では責任を負いません。
 ※本ソフトは PC-G850V 用ですので他の機種の場合、シリアル速度設定の調整が必要かもしれません。
[履歴]
  • 2021/12/27 Ver 0.02 末尾が6FFFHを若干超過していたので修正
  • 2021/12/26 Ver 0.01a "BREAK"キーでの中断に対応
  • 2021/12/25 Ver 0.01 公開


nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

ポケコン(G850)用拡張基板(その4)確認事項3 [ポケコン]

 前回の記事で 0000H - 7FFFH バンク(以降、0000Hバンクと記す)と8000H - BFFFHバンク(以降、8000Hバンクと記す)を今回作成したシステムバス接続の拡張基板(Eborsy)に実装した外部メモリにアサインできることが判りました。今回は 0000H - BFFFH の外部メモリで動くプログラムから PC-G850V(以降、G850と記す) のBIOSをコールできるようにします。

 G850 は定期的に割込みが掛かっているので、各バンクメモリを外部メモリに切替えた状態でも割込み処理が動くようにする必要があります。初めに確認したいことは G850 の割り込みモードです。G850 の通常時にロジアナで観測した割込み処理の様子が下図です。

G850の通常時の割込み処理の様子 [sampling:25MHz]


 割込みを受け付けた部分を拡大したものが下図で "A1"のタイミングマーカー部が M1/ と IORQ/ が同時にアクティブになる Z80 の割込み応答シーケンスの始まりになります。

割込み受付部分の拡大 [sampling:25MHz]


 割り込みモード0の場合は この部分( T3 の立上り)でデータバス上の命令コードを読込みます(下図参照)。モード1の場合はデータバス上のコードは読込まず RST38 の動作を決め打ちで実行します。この直後の MREQ/のアサートはメモリリフレッシュで続けてメモリライトが 2 回発生しています。これはリターンアドレスをスタックに書き込んでいる動作なので モード2の可能性は無くなり、モード0で1バイト命令である RSTxx 命令を読込んだかモード1かの二つの可能性に絞られます。
 ここで再度タイミングマーカー部に注目すると D0 が '0' の状態になっています。RSTxx 命令は全て D0 は '1' なので G850 の割り込みモードはモード1と言うことになります。

Z80の割込みシーケンス


 因みに G850 の RSTxx のエントリ部のコードを確認すると下記のようになっていて 0038H が割込み時の実行アドレスということになります。末尾の 0066H は NMI のエントリですが、何もせずにリターンするようになっています。
      0000 : C3  F4  BF    JP  BFF4H  
      0008 : C9            RET        
      0010 : C9            RET        
      0018 : C9            RET        
      0020 : C9            RET        
      0028 : C9            RET        
      0030 : C3  03  BD    JP  BD03H  
      0038 : C3  37  BC    JP  BC37H  
      0066 : ED  45        RETN       


 割り込みモードが判ったので、0000Hバンクと8000Hバンクを外部メモリに切替えた状態での割込み受付シーケンスを次のように実装しました(下記は概要ですが割込み禁止区間等、実際には注意すべき部分が色々あります)。
  1. 0000Hバンクの外部メモリの0038H から 8000Hバンク外部メモリ上の割込み受付処理にジャンプする
  2. 割込み受付処理は外部メモリ用スタックを保存し、元のスタックに切替える
  3. 割込み受付処理は0000Hバンクを内部側に切替え 0000Hバンク内部メモリ内に事前に準備した割込み仲介処理にジャンプする
  4. 割込み仲介処理は8000Hバンクを内部側に切替え 0038H のジャンプ命令の飛び先(本来の割込み処理)をコールする
  5. 割込み仲介処理は本来の割込み処理からリターンされたら8000Hバンクを外部側に切替え、8000Hバンク上にある割込み受付処理2にジャンプする
  6. 割込み受付処理2はスタックを外部メモリ処理用に戻し、0000Hバンクを外部側に切替え後、リターンする

 また上記と類似なシーケンスで外部メモリ上で動作するプログラムから G850 の BIOS をコールするための受付処理と仲介処理を作りました。
 動作確認として、外部メモリ上で動作するプログラムから1文字出力の BIOS コール(0BE62H)を使って "He" の2文字を画面出力する処理を実行し、想定通りの表示になることを確認しました。

 今回作成したプログラムのリストを以下に示します。

外部メモリ上からのBIOSコール試験プログラム(Z80アセンブラ)
;+++++++++++++++++++++++++++++++++++++++++++ ; service call from external RAM for Eborsy ; Ver 0.01 2021/12/21 by skyriver ;+++++++++++++++++++++++++++++++++++++++++++ 0100 ORGAD EQU 0100H ; +++ G850 I/O +++ 0017 INTMASK EQU 017H ; interrupy mask 0019 BANKSEL EQU 019H ; select bank 8000h,c000h 001B RAMSEL EQU 01BH ; set RAM CE 00H:internal 04H:system bus ; +++ GAL I/O address +++ 0080 AdrSdcs EQU 80H ; set SDCS(D0) 0081 AdrSpiD EQU 81H ; write/read SPI data(D0) ; +++ memory adress +++ 0000 RAMADR EQU 00000H ; start address of RAM area 8000 BNKADR EQU 08000H ; start address of bank area 0050 USEBANK EQU 050H ; use bank No. 0004 BK00EXT EQU 004H ; code to set 0000 - 7FFFF to external RAM 0038 INTRST EQU 00038H ; interrupt entry address 0066 NINTENT EQU 00066H ; NMI entry address ; +++ IOS BIOS +++ BE62 sPOUT EQU 0BE62H ; A:out chara, DE:position 0095 PR80SIZ EQU Pr8000EN - Pr8000 0000' ASEG ORG ORGAD 0100 F3 Start: DI 0101 18 32 JR St00 0103 3A 8095 IntEnt: LD A,(SavBSel) 0106 D3 19 OUT (BANKSEL),A ; restore BANK selection 0108 CD DB 0CDH ; CALL code 0109 0000 INTADR: DW 0 010B F3 DI 010C DB 19 IN A,(BANKSEL) 010E F6 50 OR USEBANK 0110 D3 19 OUT (BANKSEL),A 0112 C3 8053 JP NewIn1 0115 3A 8096 SrvEnt: LD A,(SavAreg) 0118 F5 PUSH AF 0119 3A 8095 LD A,(SavBSel) 011C D3 19 OUT (BANKSEL),A ; restore BANK selection 011E FB EI 011F F1 POP AF 0120 CD DB 0CDH ; CALL code 0121 0000 IosADR: DW 0 0123 F5 PUSH AF 0124 DB 19 IN A,(BANKSEL) 0126 F6 50 OR USEBANK 0128 F3 DI 0129 D3 19 OUT (BANKSEL),A 012B C3 8080 JP IosSer1 ; return to IOCS system 012E 3A 8095 RETURN: LD A,(SavBSEL) 0131 D3 19 OUT (BANKSEL),A 0133 FB EI 0134 C9 RET 0135 AF St00: XOR A 0136 D3 80 OUT (AdrSdcs),A 0138 DB 19 IN A,(BANKSEL) 013A 4F LD C,A 013B F6 50 OR USEBANK 013D D3 19 OUT (BANKSEL),A ; select external bank 013F 79 LD A,C 0140 32 8095 LD (SavBSel),A 0143 ED 73 809B LD (SavSP),SP 0147 31 80DF LD SP,NewSP 014A 21 0158 LD HL,Pr80Cod 014D 11 8000 LD DE,Pr8000 0150 01 0095 LD BC,PR80SIZ 0153 ED B0 LDIR 0155 C3 8000 JP Pr8000 0158 Pr80Cod: .phase BNKADR 8000 2A 0039 Pr8000: LD HL,(INTRST + 1) 8003 22 0109 LD (INTADR),HL ; set interrupt proc address 8006 3E 04 LD A,BK00EXT 8008 D3 1B OUT (RAMSEL),A 800A 3E C3 LD A,0C3H 800C 32 0038 LD (INTRST),A 800F 21 8044 LD HL,NewInt 8012 22 0039 LD (INTRST + 1),HL 8015 21 45ED LD HL,045EDH ; RETN code 8018 22 0066 LD (0066H),HL ; set NMI entry code 801B 3E 01 LD A,1 801D D3 80 OUT (AdrSdcs),A 801F FB EI 8020 21 BE62 LD HL,sPOUT 8023 22 8099 LD (SrvAdr),HL 8026 3E 48 LD A,'H' 8028 11 0000 LD DE,0 802B CD 8062 CALL IosServ 802E 3E 65 LD A,'e' 8030 11 0001 LD DE,1 8033 CD 8062 CALL IosServ 8036 AF XOR A 8037 D3 80 OUT (AdrSdcs),A 8039 F3 EXIT: DI 803A AF XOR A 803B D3 1B OUT (RAMSEL),A 803D ED 7B 809B LD SP,(SavSP) 8041 C3 012E JP RETURN 8044 F5 NewInt: PUSH AF 8045 AF XOR A 8046 D3 1B OUT (RAMSEL),A ; set 0000 - 7FFF to internal 8048 ED 73 809D LD (SavSP1),SP 804C ED 7B 809B LD SP,(SavSP) 8050 C3 0103 JP IntEnt 8053 3E 04 NewIn1: LD A,BK00EXT 8055 D3 1B OUT (RAMSEL),A 8057 ED 73 809B LD (SavSP),SP 805B ED 7B 809D LD SP,(SavSP1) 805F F1 POP AF 8060 FB EI 8061 C9 RET ; call IOCS service ; SrvAdr <- call address 8062 IosServ: 8062 32 8096 LD (SavAreg),A 8065 AF XOR A 8066 F3 DI 8067 ED 73 809D LD (SavSP1),SP 806B ED 7B 809B LD SP,(SavSP) 806F D3 1B OUT (RAMSEL),A ; set 0000 - 7FFF to internal 8071 22 8097 LD (SavHL),HL 8074 2A 8099 LD HL,(SrvAdr) 8077 22 0121 LD (IosADR),HL 807A 2A 8097 LD HL,(SavHL) 807D C3 0115 JP SrvEnt 8080 IosSer1: 8080 F1 POP AF 8081 32 8096 LD (SavAreg),A 8084 3E 04 LD A,BK00EXT 8086 D3 1B OUT (RAMSEL),A 8088 3A 8096 LD A,(SavAreg) 808B ED 73 809B LD (SavSP),SP 808F ED 7B 809D LD SP,(SavSP1) 8093 FB EI 8094 C9 RET 8095 Pr8000EN: 8095 SavBSel: DS 1 8096 SavAreg: DS 1 8097 SavHL: DS 2 8099 SrvAdr: DS 2 809B SavSP: DS 2 809D SavSP1: DS 2 809F DS 40H 80DF NewSP: END


 上記の試験プログラム実行時のロジアナ画面が下図になります。SDCS/ が'0'の部分が試験プログラム実行中の区間です。

試験プログラム実行時のロジアナ画面 [sampling:25MHz]


 下図は試験プログラム実行中に割込みが入った箇所を拡大したものです。"A1"のタイミングマーカー部が割込み開始部分で"A2"マーカー以降が各バンクが内部側に切り替わった後の処理(外部メモリ用の MCS/ がアクティブにならない)になります。

試験プログラム実行中の割込み受付部の拡大 [sampling:25MHz]


 今回は少し短いですがここまでとします。


[TOP] [ 前へ ] 連載記事 [ 次へ ]
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

ポケコン(G850)用拡張基板(その3)確認事項2 [ポケコン]

 前回の記事で書いたように C000H - FFFFH バンクを外部メモリへアサインできる可能性は見出せなかった(ネット上にも可能という情報は見当たらない)と言う結果でしたが、今回はネット情報でも可能と書かれている 8000H - BFFFH バンク(以降、8000Hバンクと記す)と 0000H-7FFFH バンク(以降、0000Hバンクと記す)に対する外部メモリのアサインについて確認した結果をメモしておきたいと思います。

  1. 8000Hバンク切替え動作の確認
     結果:外部メモリにアサインできた

    [詳細]
     バンクメモリを外部メモリにアサイする動作を確認する上で、まずは GAL に外部メモリの制御ロジックを入れる必要があります。ついでに後述する 0000Hバンクのメモリ切替えロジックも一緒に実装することにします。

    • 0000Hバンク用の外部メモリ
       1BH ポートの bit2 を 1 にすると バンク内のメモリアクセス時にシステムバスの CERAM2(以降 RAMと記す)が '1'になり、システムバスに接続した外部メモリをアクセスできるようになります。
       今回の Eborsy(システムバス用拡張ボード)に実装している外部メモリは 128K バイトの容量でメモリチップの上位アドレス A14 - A16 を GAL から出力される RA14 - RA16 に接続しています。また、外部メモリのチップセレクト信号も GAL出力の MCS/ に接続しています。
       このバンクには、外部メモリの 0000H - 7FFFH を割り振ることにすると MCS/ は システムバスの MREQ/ と RAM がアクティブな時にアサートしなければならないので
         MCS = RAM & MREQ  でこの時
          RA16 = 0
          RA15 = 0
          RA14 = A14(システムバス上のアドレス信号)
      とすればいいことになります。

    • 8000Hバンク用の外部メモリ
       このバンクアクセス時に外部メモリが有効な場合にはシステムバス上の CEROM2/(以降 ROM/ と記す)が 0 になるので
         MCS = CEROM2 & MREQ  でこの時
          RA16 = 1
          RA15 = BK1
          RA14 = BK0
      とすれば外部メモリの後半をこのバンクに割り当てられることになります。

      ★追記 2021/12/23
       ※ RAM と CEROM2 は既に MREQ/ と ANDされているようなので MREQ/ は無くても可


     上述のロジックを追記したものを Wincupl のシミュレータで確認した画面が下図になります。

    GALに実装したロジックのシミュレーション結果

     追加したロジックは論理式のみでレジスタを使用しないので確認のために clock は不要です。RAM(CERAM2)とROM(!CEROM2)のペアで状態が3通りになっていますが、左側から 8000Hバンクが有効、0000Hバンクが有効、両方有効(MREQ がアクティブな瞬間に両者が有効な状態は実際にはあり得ない)の状態です。MCS,RA14-RA15 の各信号が前述のロジックどおりになっていることが判ります。

     8000Hバンク切替えの動作確認のために作った試験プログラムが下記で、バンク番号を 0 ~ 7 の 8 通りに順次切替えてそれぞれ 8 回ずつバンク内のメモリをリード/ライトしています。

    80H バンクの切替え試験プログラム(Z80アセンブラ)
    ;+++++++++++++++++++++++++++++++++++ ; Bank 8000H test for Eborsy ; Ver 0.01 2021/12/20 by skyriver ;+++++++++++++++++++++++++++++++++++ 0100 ORGAD EQU 0100H ; +++ 850 I/O +++ 0017 INTMASK EQU 017H ; interrupy mask 0019 BANKSEL EQU 019H ; select bank 8000h,c000h ; +++ GAL I/O address +++ 0080 AdrSdcs EQU 80H ; set SDCS(D0) 0081 AdrSpiD EQU 81H ; write/read SPI data(D0) ; +++ memory adress +++ 8000 BNKADR EQU 08000H 0000' ASEG ORG ORGAD 0100 F3 Start: DI 0101 DB 19 IN A,(BANKSEL) 0103 57 LD D,A 0104 E6 0F AND 0FH 0106 5F LD E,A 0107 3E 01 LD A,1 0109 D3 80 OUT (AdrSdcs),A ; set SDCS:0 010B AF XOR A 010C B3 Loop: OR E 010D D3 19 OUT (BANKSEL),A 010F E6 F0 AND 0F0H 0111 21 8000 LD HL,BNKADR 0114 06 08 LD B,8 0116 4E Lo10: LD C,(HL) 0117 71 LD (HL),C 0118 23 INC HL 0119 10 FB DJNZ Lo10 011B C6 10 ADD A,10H 011D FE 80 CP 80H 011F C2 010C JP NZ,Loop 0122 AF XOR A 0123 D3 80 OUT (AdrSdcs),A ; set SDCS:1 0125 7A LD A,D 0126 D3 19 OUT (BANKSEL),A ; restore setting 0128 FB EI 0129 C9 RET END

     下図が試験プログラム実行時のロジアナ画面です。SDCS/ が0の部分がバンクメモリをリード/ライトしている部分になります。バンク番号が 1 ~ 3 の場合でも BK0 と BK1 及び ROM/ が出力されているのは予想外でした。

    80H バンク切替え試験時のロジアナ画面(全体) [sampling:25MHz]

     下図はバンク番号として 7 を設定時のメモリアクセス部分を拡大したものです。想定通りの波形で、問題無いですね。

    80H バンク切替え試験時のロジアナ画面(拡大) [sampling:25MHz]


  2. 0000Hバンク切替え動作の確認
     結果:外部メモリにアサインできた

    [詳細]
     0000Hバンクを切替えると今まで試験プログラムが動作していたメモリ領域が見えなくなるので試験プログラムを一旦 8000Hバンクに移動した後に 0000Hバンクを切替える必要があります。移動先のバンク番号は 1 とし、移動した試験プログラムでは 0000Hバンクを外部メモリ側に切替える前後で、それぞれ 32 回ずつ 0000Hバンク内のメモリをリード/ライトするようにしました。更にスタックも8000Hバンク上にに切り替え、試験プログラムをコールする(今まではジャンプのみ)ようにしました。

    0000Hバンクの切替え試験プログラム1(Z80アセンブラ)
    ;+++++++++++++++++++++++++++++++++++ ; Bank 0000H select test for Eborsy ; Ver 0.01 2021/12/20 by skyriver ;+++++++++++++++++++++++++++++++++++ 0100 ORGAD EQU 0100H ; +++ 850 I/O +++ 0017 INTMASK EQU 017H ; interrupy mask 0019 BANKSEL EQU 019H ; select bank 8000h,c000h 001B RAMSEL EQU 01BH ; set RAM CE 00H:internal 04H:system bus ; +++ GAL I/O address +++ 0080 AdrSdcs EQU 80H ; set SDCS(D0) 0081 AdrSpiD EQU 81H ; write/read SPI data(D0) ; +++ memory adress +++ 8000 BNKADR EQU 08000H 8100 STACKSV EQU 08100H 8200 STACK EQU 08200H 0026 ProgSiz EQU (ProgEn - PRogSt) 0000' ASEG ORG ORGAD 0100 F3 Start: DI 0101 3E 01 LD A,1 0103 D3 80 OUT (AdrSdcs),A ; set SDCS:0 0105 AF XOR A 0106 D3 80 OUT (AdrSdcs),A ; set SDCS:1 0108 DB 19 IN A,(BANKSEL) 010A 32 0159 LD (BankDat),A ; save bank setting 010D E6 0F AND 0FH 010F F6 50 OR 50H 0111 D3 19 OUT (BANKSEL),A ; enable bank1 0113 ED 73 8100 LD (STACKSV),SP 0117 31 8200 LD SP,STACK 011A 21 0133 LD HL,ProgSt 011D 11 8000 LD DE,BNKADR 0120 01 0026 LD BC,ProgSiz 0123 ED B0 LDIR ; move check program 0125 CD 8000 CALL BNKADR 0128 ED 7B 8100 LD SP,(STACKSV) 012C 3A 0159 LD A,(BankDat) 012F D3 19 OUT (BANKSEL),A ; restore setting 0131 FB EI 0132 C9 RET 0133 ProgSt: .phase BNKADR 8000 3E 01 LD A,1 8002 D3 80 OUT (AdrSdcs),A ; set SDCS:0 8004 21 0000 LD HL,0 8007 06 20 LD B,32 8009 56 Loop1: LD D,(HL) 800A 72 LD (HL),D 800B 23 INC HL 800C 10 FB DJNZ Loop1 800E DB 1B IN A,(RAMSEL) 8010 5F LD E,A 8011 F6 04 OR 04H 8013 D3 1B OUT (RAMSEL),A ; select 0000-7FFF to system bus 8015 21 0000 LD HL,0 8018 06 20 LD B,32 801A 56 Loop2: LD D,(HL) 801B 72 LD (HL),D 801C 23 INC HL 801D 10 FB DJNZ Loop2 801F AF XOR A 8020 D3 80 OUT (AdrSdcs),A ; set SDCS:1 8022 7B LD A,E 8023 D3 1B OUT (RAMSEL),A ; restore setting 8025 C9 RET .dephase 0159 ProgEn: 0159 BankDat: 0159 DS 1 ; original bank setting data END

     試験プログラム実行時のロジアナ画面が下図です。試験プログラム開始時にマーキングとして SDCS/ を一瞬 0 に設定し、8000Hバンク上に移動した試験プログラムが実行中は SDCS/ を 0 にしています。RAM から判るように、0000Hバンクは SDCS/ が 0 の期間の前半が内部側、後半が外部側に切り替えられています。

    00H バンク切替え試験時のロジアナ画面(全体) [sampling:25MHz]

     下図は 0000Hバンクが内部側の時にバンク内メモリをアクセスしている部分を拡大したものです。RAM 信号は 0 のままで想定通りです。BK0 が動いているのが面白いですね。

    00H バンク切替え試験時のロジアナ画面(切替え前) [sampling:25MHz]

     下図は 0000H バンクが外部側に設定されている時のバンク内メモリアクセスの状況です。バンク内メモリをアクセス時に想定通り RAM が 1 になっています。

    00H バンク切替え試験時のロジアナ画面(切替え後) [sampling:25MHz]

     アクセスだけでは不十分(Z80はM1サイクル時に最もメモリアクセスが速い)なので下記のような 0000Hバンクの外部メモリ側で動作する試験プログラムを作成し確認し(遊んでみ)ました。そろそろデバッガが欲しくなるくらいの複雑さになってきましたがまだ大丈夫ですw

    1. SDCS/を一瞬 0 にしてマーキング
    2. 8000Hバンクをバンク番号 1 に設定
    3. スタックを 8000Hバンク上に切り直し
    4. 8000Hバンクに試験プログラムを転送後、コール
    5. 8000Hバンク上の試験プログラムでは SDCS/ を一瞬 0 にマーキング
    6. 0000Hバンクを外部側に設定
    7. 0000Hバンクに試験プログラムを転送し、コール
    8. 0000Hバンク上の試験プログラムは開始時に SDCS/ を 0 に設定
    9. 0000Hバンク内メモリと 8000Hバンク内メモリを交互に 32 回リード/ライト
    10. SDCS/ を 1 に設定し、リターン
    11. 8000Hバンク上の試験プログラムは 自身のリターン先アドレスに76H(HALT)命令をライト
    12. 0000Hバンクを内部側に切替えし、リターン
    13. 0000Hバンク上のもともとあった試験プログラムはスタックを元の値に戻し、リターン

    試験プログラムのリストは下記になります。

    0000Hバンクの切替え試験プログラム2(Z80アセンブラ)
    ;+++++++++++++++++++++++++++++++++++ ; Bank 0000H run test for Eborsy ; Ver 0.01 2021/12/20 by skyriver ;+++++++++++++++++++++++++++++++++++ 0100 ORGAD EQU 0100H ; +++ 850 I/O +++ 0017 INTMASK EQU 017H ; interrupy mask 0019 BANKSEL EQU 019H ; select bank 8000h,c000h 001B RAMSEL EQU 01BH ; set RAM CE 00H:internal 04H:system bus ; +++ GAL I/O address +++ 0080 AdrSdcs EQU 80H ; set SDCS(D0) 0081 AdrSpiD EQU 81H ; write/read SPI data(D0) ; +++ memory adress +++ 0000 RAMADR EQU 00000H ; start address of RAM area 8000 BNKADR EQU 08000H ; start address of bank area 8100 BNKWRK EQU 08100H ; work area in bank 004A ProgSiz EQU (BkPgEn - BkPgSt) ; bank prog size 001A RamPSz EQU (RamPEn - RamPSt) ; RAM prog size 0000' ASEG ORG ORGAD 0100 F3 Start: DI 0101 3E 01 LD A,1 0103 D3 80 OUT (AdrSdcs),A ; set SDCS:0 0105 AF XOR A 0106 D3 80 OUT (AdrSdcs),A ; set SDCS:1 0108 DB 19 IN A,(BANKSEL) 010A 32 017D LD (BankDat),A ; save bank setting 010D E6 0F AND 0FH 010F F6 50 OR 50H 0111 D3 19 OUT (BANKSEL),A ; enable bank1 0113 ED 73 8101 LD (StackSv),SP ; save stack 0117 31 810D LD SP,StackTop 011A 21 0133 LD HL,BkPgSt 011D 11 8000 LD DE,BNKADR 0120 01 004A LD BC,ProgSiz 0123 ED B0 LDIR ; move check program 0125 CD 8000 CALL BNKADR 0128 ED 7B 8101 RetAd: LD SP,(StackSv) ; return addres from bank prog 012C 3A 017D LD A,(BankDat) 012F D3 19 OUT (BANKSEL),A ; restore setting 0131 FB EI 0132 C9 RET 0133 BkPgSt: ; bank prog code's start address .phase BNKADR 8000 3E 01 LD A,1 8002 D3 80 OUT (AdrSdcs),A ; set SDCS:0 8004 AF XOR A 8005 D3 80 OUT (AdrSdcs),A ; set SDCS:1 8007 DB 1B IN A,(RAMSEL) 8009 32 8100 LD (RamDat),A 800C F6 04 OR 04H 800E D3 1B OUT (RAMSEL),A ; select 0000-7FFF to system bus 8010 21 8030 LD HL,RamPCod 8013 11 0163 LD DE,RamPSt 8016 01 001A LD BC,RamPSz 8019 ED B0 LDIR ; copy RAM prog code to RAM 801B CD 0163 CALL RamPSt 801E 3E 76 LD A,076H ; HALT code 8020 32 0128 LD (RetAd),A 8023 3A 8100 LD A,(RamDat) 8026 D3 1B OUT (RAMSEL),A ; restore setting 8028 C9 RET 8029 DS (( $ + 0FH ) AND 0FFF0H) - $ 8030 RamPCod: ; RAM program code start address .dephase 0163 RamPSt: ; RAM code start address 0163 3E 01 LD A,1 0165 D3 80 OUT (AdrSdcs),A ; set SDCS:0 0167 21 0000 LD HL,RAMADR 016A 11 8000 LD DE,BNKADR 016D 06 20 LD B,32 016F 7E Loop: LD A,(HL) 0170 77 LD (HL),A 0171 EB EX DE,HL 0172 7E LD A,(HL) 0173 77 LD (HL),A 0174 EB EX DE,HL 0175 23 INC HL 0176 13 INC DE 0177 10 F6 DJNZ Loop 0179 AF XOR A 017A D3 80 OUT (AdrSdcs),A ; set SDCS:1 017C C9 RET 017D RamPEn: ; RAM prog end address 017D BkPgEn: ; bank prog code's end address 017D BankDat: 017D DS 1 ; original bank setting data ; ** work area in bank ** 8100 RamDat EQU BNKWRK ; DS 1 ; original RAM select data 8101 StackSv EQU RamDat + 1 ; DS 2 ; original stack ; DS 10 ; for stack 810D StackTop EQU StackSv + 12 ; END

     実行時のロジアナ画面が下記になります。想定通りで問題ないですね・・ ^^

    0000Hバンク内プログラム実行時のロジアナ画面(全体) [sampling:25MHz]

     0000Hバンクの外部メモリ側で動作中の試験プログラムが 0000Hバンクと 8000Hバンクのメモリを交互にリード/ライトしている部分を拡大したものが下図になります。
     RAM と ROM 信号で測定マーカーを付けている箇所がそれぞれ 0000Hバンクと 8000Hバンクをリード/ライトしている部分で想定通りで問題無しです。

    0000Hバンク内プログラム実行時のロジアナ画面(拡大) [sampling:25MHz]


 以上が今時点で確認できた内容になります。最後の方は説明の記述が息切れ気味になっている感がありますが今回はこの辺で筆を置きたいと思います。


[TOP] [ 前へ ] 連載記事 [ 次へ ]
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー