>_<:因为要驱动彩屏,所以这里采用STC90C516RD+单片机[51的89C52也行,就是可能内存在接下来的实验中可能会内存不够],晶振尽量采用高一点的,这里采用24MHz的。
>_<:这里的引脚连接为:
- sbit CS=P2^2; //片选
- sbit RES=P2^1; //复位
- sbit RS=P2^4; //数据/命令选择
- sbit RW=P2^5;
- 数据口使用P0
>_<:全部代码:
1 /* XPM */ 2 #define s ((((((((0 3 #define X )*2+1 4 #define _ )*2 5 6 unsigned char code Font8x16[] = { 7 /* pixels */ 8 9 /* 0x00 */ 10 s _ _ _ _ _ _ _ _ , 11 s _ _ _ _ _ _ _ _ , 12 s _ _ _ _ _ _ _ _ , 13 s _ _ _ _ _ _ _ _ , 14 s _ _ _ _ _ _ _ _ , 15 s _ _ _ _ _ _ _ _ , 16 s _ _ _ _ _ _ _ _ , 17 s _ _ _ _ _ _ _ _ , 18 s _ _ _ _ _ _ _ _ , 19 s _ _ _ _ _ _ _ _ , 20 s _ _ _ _ _ _ _ _ , 21 s _ _ _ _ _ _ _ _ , 22 s _ _ _ _ _ _ _ _ , 23 s _ _ _ _ _ _ _ _ , 24 s _ _ _ _ _ _ _ _ , 25 s _ _ _ _ _ _ _ _ , 26 27 /* 0x01 */ 28 s _ _ _ _ _ _ _ _ , 29 s _ _ _ _ _ _ _ _ , 30 s _ _ _ _ _ _ _ _ , 31 s _ _ _ _ _ _ _ _ , 32 s _ _ _ _ _ _ _ _ , 33 s _ _ _ _ _ _ _ _ , 34 s _ _ _ _ _ _ _ _ , 35 s _ _ _ _ _ _ _ _ , 36 s _ _ _ _ _ _ _ _ , 37 s _ _ _ _ _ _ _ _ , 38 s _ _ _ _ _ _ _ _ , 39 s _ _ _ _ _ _ _ _ , 40 s _ _ _ _ _ _ _ _ , 41 s _ _ _ _ _ _ _ _ , 42 s _ _ _ _ _ _ _ _ , 43 s _ _ _ _ _ _ _ _ , 44 45 /* 0x02 */ 46 s _ _ _ _ _ _ _ _ , 47 s _ _ _ _ _ _ _ _ , 48 s _ _ _ _ _ _ _ _ , 49 s _ _ _ _ _ _ _ _ , 50 s _ _ _ _ _ _ _ _ , 51 s _ _ _ _ _ _ _ _ , 52 s _ _ _ _ _ _ _ _ , 53 s _ _ _ _ _ _ _ _ , 54 s _ _ _ _ _ _ _ _ , 55 s _ _ _ _ _ _ _ _ , 56 s _ _ _ _ _ _ _ _ , 57 s _ _ _ _ _ _ _ _ , 58 s _ _ _ _ _ _ _ _ , 59 s _ _ _ _ _ _ _ _ , 60 s _ _ _ _ _ _ _ _ , 61 s _ _ _ _ _ _ _ _ , 62 63 /* 0x03 */ 64 s _ _ _ _ _ _ _ _ , 65 s _ _ _ _ _ _ _ _ , 66 s _ _ _ _ _ _ _ _ , 67 s _ _ _ _ _ _ _ _ , 68 s _ _ _ _ _ _ _ _ , 69 s _ _ _ _ _ _ _ _ , 70 s _ _ _ _ _ _ _ _ , 71 s _ _ _ _ _ _ _ _ , 72 s _ _ _ _ _ _ _ _ , 73 s _ _ _ _ _ _ _ _ , 74 s _ _ _ _ _ _ _ _ , 75 s _ _ _ _ _ _ _ _ , 76 s _ _ _ _ _ _ _ _ , 77 s _ _ _ _ _ _ _ _ , 78 s _ _ _ _ _ _ _ _ , 79 s _ _ _ _ _ _ _ _ , 80 81 /* 0x04 */ 82 s _ _ _ _ _ _ _ _ , 83 s _ _ _ _ _ _ _ _ , 84 s _ _ _ _ _ _ _ _ , 85 s _ _ _ _ _ _ _ _ , 86 s _ _ _ _ _ _ _ _ , 87 s _ _ _ _ _ _ _ _ , 88 s _ _ _ _ _ _ _ _ , 89 s _ _ _ _ _ _ _ _ , 90 s _ _ _ _ _ _ _ _ , 91 s _ _ _ _ _ _ _ _ , 92 s _ _ _ _ _ _ _ _ , 93 s _ _ _ _ _ _ _ _ , 94 s _ _ _ _ _ _ _ _ , 95 s _ _ _ _ _ _ _ _ , 96 s _ _ _ _ _ _ _ _ , 97 s _ _ _ _ _ _ _ _ , 98 99 /* 0x05 */ 100 s _ _ _ _ _ _ _ _ , 101 s _ _ _ _ _ _ _ _ , 102 s _ _ _ _ _ _ _ _ , 103 s _ _ _ _ _ _ _ _ , 104 s _ _ _ _ _ _ _ _ , 105 s _ _ _ _ _ _ _ _ , 106 s _ _ _ _ _ _ _ _ , 107 s _ _ _ _ _ _ _ _ , 108 s _ _ _ _ _ _ _ _ , 109 s _ _ _ _ _ _ _ _ , 110 s _ _ _ _ _ _ _ _ , 111 s _ _ _ _ _ _ _ _ , 112 s _ _ _ _ _ _ _ _ , 113 s _ _ _ _ _ _ _ _ , 114 s _ _ _ _ _ _ _ _ , 115 s _ _ _ _ _ _ _ _ , 116 117 /* 0x06 */ 118 s _ _ _ _ _ _ _ _ , 119 s _ _ _ _ _ _ _ _ , 120 s _ _ _ _ _ _ _ _ , 121 s _ _ _ _ _ _ _ _ , 122 s _ _ _ _ _ _ _ _ , 123 s _ _ _ _ _ _ _ _ , 124 s _ _ _ _ _ _ _ _ , 125 s _ _ _ _ _ _ _ _ , 126 s _ _ _ _ _ _ _ _ , 127 s _ _ _ _ _ _ _ _ , 128 s _ _ _ _ _ _ _ _ , 129 s _ _ _ _ _ _ _ _ , 130 s _ _ _ _ _ _ _ _ , 131 s _ _ _ _ _ _ _ _ , 132 s _ _ _ _ _ _ _ _ , 133 s _ _ _ _ _ _ _ _ , 134 135 /* 0x07 */ 136 s _ _ _ _ _ _ _ _ , 137 s _ _ _ _ _ _ _ _ , 138 s _ _ _ _ _ _ _ _ , 139 s _ _ _ _ _ _ _ _ , 140 s _ _ _ _ _ _ _ _ , 141 s _ _ _ _ _ _ _ _ , 142 s _ _ _ _ _ _ _ _ , 143 s _ _ _ _ _ _ _ _ , 144 s _ _ _ _ _ _ _ _ , 145 s _ _ _ _ _ _ _ _ , 146 s _ _ _ _ _ _ _ _ , 147 s _ _ _ _ _ _ _ _ , 148 s _ _ _ _ _ _ _ _ , 149 s _ _ _ _ _ _ _ _ , 150 s _ _ _ _ _ _ _ _ , 151 s _ _ _ _ _ _ _ _ , 152 153 /* 0x08 */ 154 s _ _ _ _ _ _ _ _ , 155 s _ _ _ _ _ _ _ _ , 156 s _ _ _ _ _ _ _ _ , 157 s _ _ _ _ _ _ _ _ , 158 s _ _ _ _ _ _ _ _ , 159 s _ _ _ _ _ _ _ _ , 160 s _ _ _ _ _ _ _ _ , 161 s _ _ _ _ _ _ _ _ , 162 s _ _ _ _ _ _ _ _ , 163 s _ _ _ _ _ _ _ _ , 164 s _ _ _ _ _ _ _ _ , 165 s _ _ _ _ _ _ _ _ , 166 s _ _ _ _ _ _ _ _ , 167 s _ _ _ _ _ _ _ _ , 168 s _ _ _ _ _ _ _ _ , 169 s _ _ _ _ _ _ _ _ , 170 171 /* 0x09 */ 172 s _ _ _ _ _ _ _ _ , 173 s _ _ _ _ _ _ _ _ , 174 s _ _ _ _ _ _ _ _ , 175 s _ _ _ _ _ _ _ _ , 176 s _ _ _ _ _ _ _ _ , 177 s _ _ _ _ _ _ _ _ , 178 s _ _ _ _ _ _ _ _ , 179 s _ _ _ _ _ _ _ _ , 180 s _ _ _ _ _ _ _ _ , 181 s _ _ _ _ _ _ _ _ , 182 s _ _ _ _ _ _ _ _ , 183 s _ _ _ _ _ _ _ _ , 184 s _ _ _ _ _ _ _ _ , 185 s _ _ _ _ _ _ _ _ , 186 s _ _ _ _ _ _ _ _ , 187 s _ _ _ _ _ _ _ _ , 188 189 /* 0x0a */ 190 s _ _ _ _ _ _ _ _ , 191 s _ _ _ _ _ _ _ _ , 192 s _ _ _ _ _ _ _ _ , 193 s _ _ _ _ _ _ _ _ , 194 s _ _ _ _ _ _ _ _ , 195 s _ _ _ _ _ _ _ _ , 196 s _ _ _ _ _ _ _ _ , 197 s _ _ _ _ _ _ _ _ , 198 s _ _ _ _ _ _ _ _ , 199 s _ _ _ _ _ _ _ _ , 200 s _ _ _ _ _ _ _ _ , 201 s _ _ _ _ _ _ _ _ , 202 s _ _ _ _ _ _ _ _ , 203 s _ _ _ _ _ _ _ _ , 204 s _ _ _ _ _ _ _ _ , 205 s _ _ _ _ _ _ _ _ , 206 207 /* 0x0b */ 208 s _ _ _ _ _ _ _ _ , 209 s _ _ _ _ _ _ _ _ , 210 s _ _ _ _ _ _ _ _ , 211 s _ _ _ _ _ _ _ _ , 212 s _ _ _ _ _ _ _ _ , 213 s _ _ _ _ _ _ _ _ , 214 s _ _ _ _ _ _ _ _ , 215 s _ _ _ _ _ _ _ _ , 216 s _ _ _ _ _ _ _ _ , 217 s _ _ _ _ _ _ _ _ , 218 s _ _ _ _ _ _ _ _ , 219 s _ _ _ _ _ _ _ _ , 220 s _ _ _ _ _ _ _ _ , 221 s _ _ _ _ _ _ _ _ , 222 s _ _ _ _ _ _ _ _ , 223 s _ _ _ _ _ _ _ _ , 224 225 /* 0x0c */ 226 s _ _ _ _ _ _ _ _ , 227 s _ _ _ _ _ _ _ _ , 228 s _ _ _ _ _ _ _ _ , 229 s _ _ _ _ _ _ _ _ , 230 s _ _ _ _ _ _ _ _ , 231 s _ _ _ _ _ _ _ _ , 232 s _ _ _ _ _ _ _ _ , 233 s _ _ _ _ _ _ _ _ , 234 s _ _ _ _ _ _ _ _ , 235 s _ _ _ _ _ _ _ _ , 236 s _ _ _ _ _ _ _ _ , 237 s _ _ _ _ _ _ _ _ , 238 s _ _ _ _ _ _ _ _ , 239 s _ _ _ _ _ _ _ _ , 240 s _ _ _ _ _ _ _ _ , 241 s _ _ _ _ _ _ _ _ , 242 243 /* 0x0d */ 244 s _ _ _ _ _ _ _ _ , 245 s _ _ _ _ _ _ _ _ , 246 s _ _ _ _ _ _ _ _ , 247 s _ _ _ _ _ _ _ _ , 248 s _ _ _ _ _ _ _ _ , 249 s _ _ _ _ _ _ _ _ , 250 s _ _ _ _ _ _ _ _ , 251 s _ _ _ _ _ _ _ _ , 252 s _ _ _ _ _ _ _ _ , 253 s _ _ _ _ _ _ _ _ , 254 s _ _ _ _ _ _ _ _ , 255 s _ _ _ _ _ _ _ _ , 256 s _ _ _ _ _ _ _ _ , 257 s _ _ _ _ _ _ _ _ , 258 s _ _ _ _ _ _ _ _ , 259 s _ _ _ _ _ _ _ _ , 260 261 /* 0x0e */ 262 s _ _ _ _ _ _ _ _ , 263 s _ _ _ _ _ _ _ _ , 264 s _ _ _ _ _ _ _ _ , 265 s _ _ _ _ _ _ _ _ , 266 s _ _ _ _ _ _ _ _ , 267 s _ _ _ _ _ _ _ _ , 268 s _ _ _ _ _ _ _ _ , 269 s _ _ _ _ _ _ _ _ , 270 s _ _ _ _ _ _ _ _ , 271 s _ _ _ _ _ _ _ _ , 272 s _ _ _ _ _ _ _ _ , 273 s _ _ _ _ _ _ _ _ , 274 s _ _ _ _ _ _ _ _ , 275 s _ _ _ _ _ _ _ _ , 276 s _ _ _ _ _ _ _ _ , 277 s _ _ _ _ _ _ _ _ , 278 279 /* 0x0f */ 280 s _ _ _ _ _ _ _ _ , 281 s _ _ _ _ _ _ _ _ , 282 s _ _ _ _ _ _ _ _ , 283 s _ _ _ _ _ _ _ _ , 284 s _ _ _ _ _ _ _ _ , 285 s _ _ _ _ _ _ _ _ , 286 s _ _ _ _ _ _ _ _ , 287 s _ _ _ _ _ _ _ _ , 288 s _ _ _ _ _ _ _ _ , 289 s _ _ _ _ _ _ _ _ , 290 s _ _ _ _ _ _ _ _ , 291 s _ _ _ _ _ _ _ _ , 292 s _ _ _ _ _ _ _ _ , 293 s _ _ _ _ _ _ _ _ , 294 s _ _ _ _ _ _ _ _ , 295 s _ _ _ _ _ _ _ _ , 296 297 /* 0x10 */ 298 s _ _ _ _ _ _ _ _ , 299 s _ _ _ _ _ _ _ _ , 300 s _ _ _ _ _ _ _ _ , 301 s _ _ _ _ _ _ _ _ , 302 s _ _ _ _ _ _ _ _ , 303 s _ _ _ _ _ _ _ _ , 304 s _ _ _ _ _ _ _ _ , 305 s _ _ _ _ _ _ _ _ , 306 s _ _ _ _ _ _ _ _ , 307 s _ _ _ _ _ _ _ _ , 308 s _ _ _ _ _ _ _ _ , 309 s _ _ _ _ _ _ _ _ , 310 s _ _ _ _ _ _ _ _ , 311 s _ _ _ _ _ _ _ _ , 312 s _ _ _ _ _ _ _ _ , 313 s _ _ _ _ _ _ _ _ , 314 315 /* 0x11 */ 316 s _ _ _ _ _ _ _ _ , 317 s _ _ _ _ _ _ _ _ , 318 s _ _ _ _ _ _ _ _ , 319 s _ _ _ _ _ _ _ _ , 320 s _ _ _ _ _ _ _ _ , 321 s _ _ _ _ _ _ _ _ , 322 s _ _ _ _ _ _ _ _ , 323 s _ _ _ _ _ _ _ _ , 324 s _ _ _ _ _ _ _ _ , 325 s _ _ _ _ _ _ _ _ , 326 s _ _ _ _ _ _ _ _ , 327 s _ _ _ _ _ _ _ _ , 328 s _ _ _ _ _ _ _ _ , 329 s _ _ _ _ _ _ _ _ , 330 s _ _ _ _ _ _ _ _ , 331 s _ _ _ _ _ _ _ _ , 332 333 /* 0x12 */ 334 s _ _ _ _ _ _ _ _ , 335 s _ _ _ _ _ _ _ _ , 336 s _ _ _ _ _ _ _ _ , 337 s _ _ _ _ _ _ _ _ , 338 s _ _ _ _ _ _ _ _ , 339 s _ _ _ _ _ _ _ _ , 340 s _ _ _ _ _ _ _ _ , 341 s _ _ _ _ _ _ _ _ , 342 s _ _ _ _ _ _ _ _ , 343 s _ _ _ _ _ _ _ _ , 344 s _ _ _ _ _ _ _ _ , 345 s _ _ _ _ _ _ _ _ , 346 s _ _ _ _ _ _ _ _ , 347 s _ _ _ _ _ _ _ _ , 348 s _ _ _ _ _ _ _ _ , 349 s _ _ _ _ _ _ _ _ , 350 351 /* 0x13 */ 352 s _ _ _ _ _ _ _ _ , 353 s _ _ _ _ _ _ _ _ , 354 s _ _ _ _ _ _ _ _ , 355 s _ _ _ _ _ _ _ _ , 356 s _ _ _ _ _ _ _ _ , 357 s _ _ _ _ _ _ _ _ , 358 s _ _ _ _ _ _ _ _ , 359 s _ _ _ _ _ _ _ _ , 360 s _ _ _ _ _ _ _ _ , 361 s _ _ _ _ _ _ _ _ , 362 s _ _ _ _ _ _ _ _ , 363 s _ _ _ _ _ _ _ _ , 364 s _ _ _ _ _ _ _ _ , 365 s _ _ _ _ _ _ _ _ , 366 s _ _ _ _ _ _ _ _ , 367 s _ _ _ _ _ _ _ _ , 368 369 /* 0x14 */ 370 s _ _ _ _ _ _ _ _ , 371 s _ _ _ _ _ _ _ _ , 372 s _ _ _ _ _ _ _ _ , 373 s _ _ _ _ _ _ _ _ , 374 s _ _ _ _ _ _ _ _ , 375 s _ _ _ _ _ _ _ _ , 376 s _ _ _ _ _ _ _ _ , 377 s _ _ _ _ _ _ _ _ , 378 s _ _ _ _ _ _ _ _ , 379 s _ _ _ _ _ _ _ _ , 380 s _ _ _ _ _ _ _ _ , 381 s _ _ _ _ _ _ _ _ , 382 s _ _ _ _ _ _ _ _ , 383 s _ _ _ _ _ _ _ _ , 384 s _ _ _ _ _ _ _ _ , 385 s _ _ _ _ _ _ _ _ , 386 387 /* 0x15 */ 388 s _ _ _ _ _ _ _ _ , 389 s _ _ _ _ _ _ _ _ , 390 s _ _ _ _ _ _ _ _ , 391 s _ _ _ _ _ _ _ _ , 392 s _ _ _ _ _ _ _ _ , 393 s _ _ _ _ _ _ _ _ , 394 s _ _ _ _ _ _ _ _ , 395 s _ _ _ _ _ _ _ _ , 396 s _ _ _ _ _ _ _ _ , 397 s _ _ _ _ _ _ _ _ , 398 s _ _ _ _ _ _ _ _ , 399 s _ _ _ _ _ _ _ _ , 400 s _ _ _ _ _ _ _ _ , 401 s _ _ _ _ _ _ _ _ , 402 s _ _ _ _ _ _ _ _ , 403 s _ _ _ _ _ _ _ _ , 404 405 /* 0x16 */ 406 s _ _ _ _ _ _ _ _ , 407 s _ _ _ _ _ _ _ _ , 408 s _ _ _ _ _ _ _ _ , 409 s _ _ _ _ _ _ _ _ , 410 s _ _ _ _ _ _ _ _ , 411 s _ _ _ _ _ _ _ _ , 412 s _ _ _ _ _ _ _ _ , 413 s _ _ _ _ _ _ _ _ , 414 s _ _ _ _ _ _ _ _ , 415 s _ _ _ _ _ _ _ _ , 416 s _ _ _ _ _ _ _ _ , 417 s _ _ _ _ _ _ _ _ , 418 s _ _ _ _ _ _ _ _ , 419 s _ _ _ _ _ _ _ _ , 420 s _ _ _ _ _ _ _ _ , 421 s _ _ _ _ _ _ _ _ , 422 423 /* 0x17 */ 424 s _ _ _ _ _ _ _ _ , 425 s _ _ _ _ _ _ _ _ , 426 s _ _ _ _ _ _ _ _ , 427 s _ _ _ _ _ _ _ _ , 428 s _ _ _ _ _ _ _ _ , 429 s _ _ _ _ _ _ _ _ , 430 s _ _ _ _ _ _ _ _ , 431 s _ _ _ _ _ _ _ _ , 432 s _ _ _ _ _ _ _ _ , 433 s _ _ _ _ _ _ _ _ , 434 s _ _ _ _ _ _ _ _ , 435 s _ _ _ _ _ _ _ _ , 436 s _ _ _ _ _ _ _ _ , 437 s _ _ _ _ _ _ _ _ , 438 s _ _ _ _ _ _ _ _ , 439 s _ _ _ _ _ _ _ _ , 440 441 /* 0x18 */ 442 s _ _ _ _ _ _ _ _ , 443 s _ _ _ _ _ _ _ _ , 444 s _ _ _ _ _ _ _ _ , 445 s _ _ _ _ _ _ _ _ , 446 s _ _ _ _ _ _ _ _ , 447 s _ _ _ _ _ _ _ _ , 448 s _ _ _ _ _ _ _ _ , 449 s _ _ _ _ _ _ _ _ , 450 s _ _ _ _ _ _ _ _ , 451 s _ _ _ _ _ _ _ _ , 452 s _ _ _ _ _ _ _ _ , 453 s _ _ _ _ _ _ _ _ , 454 s _ _ _ _ _ _ _ _ , 455 s _ _ _ _ _ _ _ _ , 456 s _ _ _ _ _ _ _ _ , 457 s _ _ _ _ _ _ _ _ , 458 459 /* 0x19 */ 460 s _ _ _ _ _ _ _ _ , 461 s _ _ _ _ _ _ _ _ , 462 s _ _ _ _ _ _ _ _ , 463 s _ _ _ _ _ _ _ _ , 464 s _ _ _ _ _ _ _ _ , 465 s _ _ _ _ _ _ _ _ , 466 s _ _ _ _ _ _ _ _ , 467 s _ _ _ _ _ _ _ _ , 468 s _ _ _ _ _ _ _ _ , 469 s _ _ _ _ _ _ _ _ , 470 s _ _ _ _ _ _ _ _ , 471 s _ _ _ _ _ _ _ _ , 472 s _ _ _ _ _ _ _ _ , 473 s _ _ _ _ _ _ _ _ , 474 s _ _ _ _ _ _ _ _ , 475 s _ _ _ _ _ _ _ _ , 476 477 /* 0x1a */ 478 s _ _ _ _ _ _ _ _ , 479 s _ _ _ _ _ _ _ _ , 480 s _ _ _ _ _ _ _ _ , 481 s _ _ _ _ _ _ _ _ , 482 s _ _ _ _ _ _ _ _ , 483 s _ _ _ _ _ _ _ _ , 484 s _ _ _ _ _ _ _ _ , 485 s _ _ _ _ _ _ _ _ , 486 s _ _ _ _ _ _ _ _ , 487 s _ _ _ _ _ _ _ _ , 488 s _ _ _ _ _ _ _ _ , 489 s _ _ _ _ _ _ _ _ , 490 s _ _ _ _ _ _ _ _ , 491 s _ _ _ _ _ _ _ _ , 492 s _ _ _ _ _ _ _ _ , 493 s _ _ _ _ _ _ _ _ , 494 495 /* 0x1b */ 496 s _ _ _ _ _ _ _ _ , 497 s _ _ _ _ _ _ _ _ , 498 s _ _ _ _ _ _ _ _ , 499 s _ _ _ _ _ _ _ _ , 500 s _ _ _ _ _ _ _ _ , 501 s _ _ _ _ _ _ _ _ , 502 s _ _ _ _ _ _ _ _ , 503 s _ _ _ _ _ _ _ _ , 504 s _ _ _ _ _ _ _ _ , 505 s _ _ _ _ _ _ _ _ , 506 s _ _ _ _ _ _ _ _ , 507 s _ _ _ _ _ _ _ _ , 508 s _ _ _ _ _ _ _ _ , 509 s _ _ _ _ _ _ _ _ , 510 s _ _ _ _ _ _ _ _ , 511 s _ _ _ _ _ _ _ _ , 512 513 /* 0x1c */ 514 s _ _ _ _ _ _ _ _ , 515 s _ _ _ _ _ _ _ _ , 516 s _ _ _ _ _ _ _ _ , 517 s _ _ _ _ _ _ _ _ , 518 s _ _ _ _ _ _ _ _ , 519 s _ _ _ _ _ _ _ _ , 520 s _ _ _ _ _ _ _ _ , 521 s _ _ _ _ _ _ _ _ , 522 s _ _ _ _ _ _ _ _ , 523 s _ _ _ _ _ _ _ _ , 524 s _ _ _ _ _ _ _ _ , 525 s _ _ _ _ _ _ _ _ , 526 s _ _ _ _ _ _ _ _ , 527 s _ _ _ _ _ _ _ _ , 528 s _ _ _ _ _ _ _ _ , 529 s _ _ _ _ _ _ _ _ , 530 531 /* 0x1d */ 532 s _ _ _ _ _ _ _ _ , 533 s _ _ _ _ _ _ _ _ , 534 s _ _ _ _ _ _ _ _ , 535 s _ _ _ _ _ _ _ _ , 536 s _ _ _ _ _ _ _ _ , 537 s _ _ _ _ _ _ _ _ , 538 s _ _ _ _ _ _ _ _ , 539 s _ _ _ _ _ _ _ _ , 540 s _ _ _ _ _ _ _ _ , 541 s _ _ _ _ _ _ _ _ , 542 s _ _ _ _ _ _ _ _ , 543 s _ _ _ _ _ _ _ _ , 544 s _ _ _ _ _ _ _ _ , 545 s _ _ _ _ _ _ _ _ , 546 s _ _ _ _ _ _ _ _ , 547 s _ _ _ _ _ _ _ _ , 548 549 /* 0x1e */ 550 s _ _ _ _ _ _ _ _ , 551 s _ _ _ _ _ _ _ _ , 552 s _ _ _ _ _ _ _ _ , 553 s _ _ _ _ _ _ _ _ , 554 s _ _ _ _ _ _ _ _ , 555 s _ _ _ _ _ _ _ _ , 556 s _ _ _ _ _ _ _ _ , 557 s _ _ _ _ _ _ _ _ , 558 s _ _ _ _ _ _ _ _ , 559 s _ _ _ _ _ _ _ _ , 560 s _ _ _ _ _ _ _ _ , 561 s _ _ _ _ _ _ _ _ , 562 s _ _ _ _ _ _ _ _ , 563 s _ _ _ _ _ _ _ _ , 564 s _ _ _ _ _ _ _ _ , 565 s _ _ _ _ _ _ _ _ , 566 567 /* 0x1f */ 568 s _ _ _ _ _ _ _ _ , 569 s _ _ _ _ _ _ _ _ , 570 s _ _ _ _ _ _ _ _ , 571 s _ _ _ _ _ _ _ _ , 572 s _ _ _ _ _ _ _ _ , 573 s _ _ _ _ _ _ _ _ , 574 s _ _ _ _ _ _ _ _ , 575 s _ _ _ _ _ _ _ _ , 576 s _ _ _ _ _ _ _ _ , 577 s _ _ _ _ _ _ _ _ , 578 s _ _ _ _ _ _ _ _ , 579 s _ _ _ _ _ _ _ _ , 580 s _ _ _ _ _ _ _ _ , 581 s _ _ _ _ _ _ _ _ , 582 s _ _ _ _ _ _ _ _ , 583 s _ _ _ _ _ _ _ _ , 584 585 /* 0x20 */ 586 s _ _ _ _ _ _ _ _ , 587 s _ _ _ _ _ _ _ _ , 588 s _ _ _ _ _ _ _ _ , 589 s _ _ _ _ _ _ _ _ , 590 s _ _ _ _ _ _ _ _ , 591 s _ _ _ _ _ _ _ _ , 592 s _ _ _ _ _ _ _ _ , 593 s _ _ _ _ _ _ _ _ , 594 s _ _ _ _ _ _ _ _ , 595 s _ _ _ _ _ _ _ _ , 596 s _ _ _ _ _ _ _ _ , 597 s _ _ _ _ _ _ _ _ , 598 s _ _ _ _ _ _ _ _ , 599 s _ _ _ _ _ _ _ _ , 600 s _ _ _ _ _ _ _ _ , 601 s _ _ _ _ _ _ _ _ , 602 603 /* 0x21 ! */ 604 s _ _ _ _ _ _ _ _ , 605 s _ _ _ _ _ _ _ _ , 606 s _ _ _ _ _ _ _ _ , 607 s _ _ _ X _ _ _ _ , 608 s _ _ _ X _ _ _ _ , 609 s _ _ _ X _ _ _ _ , 610 s _ _ _ X _ _ _ _ , 611 s _ _ _ X _ _ _ _ , 612 s _ _ _ X _ _ _ _ , 613 s _ _ _ _ _ _ _ _ , 614 s _ _ _ X _ _ _ _ , 615 s _ _ _ X _ _ _ _ , 616 s _ _ _ _ _ _ _ _ , 617 s _ _ _ _ _ _ _ _ , 618 s _ _ _ _ _ _ _ _ , 619 s _ _ _ _ _ _ _ _ , 620 621 /* 0x22 s */ 622 s _ _ _ _ _ _ _ _ , 623 s _ _ _ _ _ _ _ _ , 624 s _ _ _ _ _ _ _ _ , 625 s _ _ X _ _ X _ _ , 626 s _ _ X _ _ X _ _ , 627 s _ _ X _ _ X _ _ , 628 s _ _ _ _ _ _ _ _ , 629 s _ _ _ _ _ _ _ _ , 630 s _ _ _ _ _ _ _ _ , 631 s _ _ _ _ _ _ _ _ , 632 s _ _ _ _ _ _ _ _ , 633 s _ _ _ _ _ _ _ _ , 634 s _ _ _ _ _ _ _ _ , 635 s _ _ _ _ _ _ _ _ , 636 s _ _ _ _ _ _ _ _ , 637 s _ _ _ _ _ _ _ _ , 638 639 /* 0x23 X */ 640 s _ _ _ _ _ _ _ _ , 641 s _ _ _ _ _ _ _ _ , 642 s _ _ _ _ _ _ _ _ , 643 s _ _ X _ _ X _ _ , 644 s _ _ X _ _ X _ _ , 645 s _ X X X X X X _ , 646 s _ _ X _ _ X _ _ , 647 s _ _ X _ _ X _ _ , 648 s _ _ X _ _ X _ _ , 649 s _ X X X X X X _ , 650 s _ _ X _ _ X _ _ , 651 s _ _ X _ _ X _ _ , 652 s _ _ _ _ _ _ _ _ , 653 s _ _ _ _ _ _ _ _ , 654 s _ _ _ _ _ _ _ _ , 655 s _ _ _ _ _ _ _ _ , 656 657 /* 0x24 $ */ 658 s _ _ _ _ _ _ _ _ , 659 s _ _ _ _ _ _ _ _ , 660 s _ _ _ _ _ _ _ _ , 661 s _ _ _ X _ _ _ _ , 662 s _ X X X X X _ _ , 663 s X _ _ X _ _ _ _ , 664 s X _ _ X _ _ _ _ , 665 s _ X X X X X _ _ , 666 s _ _ _ X _ _ X _ , 667 s _ _ _ X _ _ X _ , 668 s _ X X X X X _ _ , 669 s _ _ _ X _ _ _ _ , 670 s _ _ _ _ _ _ _ _ , 671 s _ _ _ _ _ _ _ _ , 672 s _ _ _ _ _ _ _ _ , 673 s _ _ _ _ _ _ _ _ , 674 675 /* 0x25 % */ 676 s _ _ _ _ _ _ _ _ , 677 s _ _ _ _ _ _ _ _ , 678 s _ _ _ _ _ _ _ _ , 679 s _ _ _ _ _ _ _ _ , 680 s _ X X _ _ _ X _ , 681 s _ X X _ _ X _ _ , 682 s _ _ _ _ X _ _ _ , 683 s _ _ _ X _ _ _ _ , 684 s _ _ X _ _ _ _ _ , 685 s _ X _ _ X X _ _ , 686 s X _ _ _ X X _ _ , 687 s _ _ _ _ _ _ _ _ , 688 s _ _ _ _ _ _ _ _ , 689 s _ _ _ _ _ _ _ _ , 690 s _ _ _ _ _ _ _ _ , 691 s _ _ _ _ _ _ _ _ , 692 693 /* 0x26 & */ 694 s _ _ _ _ _ _ _ _ , 695 s _ _ _ _ _ _ _ _ , 696 s _ _ _ _ _ _ _ _ , 697 s _ _ _ _ _ _ _ _ , 698 s _ _ _ X X _ _ _ , 699 s _ _ X _ _ X _ _ , 700 s _ _ X _ _ _ _ _ , 701 s _ X _ X _ _ _ _ , 702 s X _ _ _ X _ X _ , 703 s X _ _ _ _ X _ _ , 704 s _ X _ _ X _ X _ , 705 s _ _ X X _ _ _ _ , 706 s _ _ _ _ _ _ _ _ , 707 s _ _ _ _ _ _ _ _ , 708 s _ _ _ _ _ _ _ _ , 709 s _ _ _ _ _ _ _ _ , 710 711 /* 0x27 ' */ 712 s _ _ _ _ _ _ _ _ , 713 s _ _ _ _ _ _ _ _ , 714 s _ _ _ _ _ _ _ _ , 715 s _ _ _ X _ _ _ _ , 716 s _ _ _ X _ _ _ _ , 717 s _ _ X _ _ _ _ _ , 718 s _ _ _ _ _ _ _ _ , 719 s _ _ _ _ _ _ _ _ , 720 s _ _ _ _ _ _ _ _ , 721 s _ _ _ _ _ _ _ _ , 722 s _ _ _ _ _ _ _ _ , 723 s _ _ _ _ _ _ _ _ , 724 s _ _ _ _ _ _ _ _ , 725 s _ _ _ _ _ _ _ _ , 726 s _ _ _ _ _ _ _ _ , 727 s _ _ _ _ _ _ _ _ , 728 729 /* 0x28 ( */ 730 s _ _ _ _ _ _ _ _ , 731 s _ _ _ _ _ _ _ _ , 732 s _ _ _ _ X _ _ _ , 733 s _ _ _ X _ _ _ _ , 734 s _ _ X _ _ _ _ _ , 735 s _ _ X _ _ _ _ _ , 736 s _ _ X _ _ _ _ _ , 737 s _ _ X _ _ _ _ _ , 738 s _ _ X _ _ _ _ _ , 739 s _ _ X _ _ _ _ _ , 740 s _ _ X _ _ _ _ _ , 741 s _ _ _ X _ _ _ _ , 742 s _ _ _ _ X _ _ _ , 743 s _ _ _ _ _ _ _ _ , 744 s _ _ _ _ _ _ _ _ , 745 s _ _ _ _ _ _ _ _ , 746 747 /* 0x29 ) */ 748 s _ _ _ _ _ _ _ _ , 749 s _ _ _ _ _ _ _ _ , 750 s _ _ X _ _ _ _ _ , 751 s _ _ _ X _ _ _ _ , 752 s _ _ _ _ X _ _ _ , 753 s _ _ _ _ X _ _ _ , 754 s _ _ _ _ X _ _ _ , 755 s _ _ _ _ X _ _ _ , 756 s _ _ _ _ X _ _ _ , 757 s _ _ _ _ X _ _ _ , 758 s _ _ _ _ X _ _ _ , 759 s _ _ _ X _ _ _ _ , 760 s _ _ X _ _ _ _ _ , 761 s _ _ _ _ _ _ _ _ , 762 s _ _ _ _ _ _ _ _ , 763 s _ _ _ _ _ _ _ _ , 764 765 /* 0x2a * */ 766 s _ _ _ _ _ _ _ _ , 767 s _ _ _ _ _ _ _ _ , 768 s _ _ _ _ _ _ _ _ , 769 s _ _ _ _ _ _ _ _ , 770 s _ _ _ _ _ _ _ _ , 771 s _ _ _ X _ _ _ _ , 772 s _ X _ X _ X _ _ , 773 s _ _ X X X _ _ _ , 774 s _ _ X X X _ _ _ , 775 s _ X _ X _ X _ _ , 776 s _ _ _ X _ _ _ _ , 777 s _ _ _ _ _ _ _ _ , 778 s _ _ _ _ _ _ _ _ , 779 s _ _ _ _ _ _ _ _ , 780 s _ _ _ _ _ _ _ _ , 781 s _ _ _ _ _ _ _ _ , 782 783 /* 0x2b + */ 784 s _ _ _ _ _ _ _ _ , 785 s _ _ _ _ _ _ _ _ , 786 s _ _ _ _ _ _ _ _ , 787 s _ _ _ _ _ _ _ _ , 788 s _ _ _ _ _ _ _ _ , 789 s _ _ _ X _ _ _ _ , 790 s _ _ _ X _ _ _ _ , 791 s _ X X X X X _ _ , 792 s _ _ _ X _ _ _ _ , 793 s _ _ _ X _ _ _ _ , 794 s _ _ _ _ _ _ _ _ , 795 s _ _ _ _ _ _ _ _ , 796 s _ _ _ _ _ _ _ _ , 797 s _ _ _ _ _ _ _ _ , 798 s _ _ _ _ _ _ _ _ , 799 s _ _ _ _ _ _ _ _ , 800 801 /* 0x2c , */ 802 s _ _ _ _ _ _ _ _ , 803 s _ _ _ _ _ _ _ _ , 804 s _ _ _ _ _ _ _ _ , 805 s _ _ _ _ _ _ _ _ , 806 s _ _ _ _ _ _ _ _ , 807 s _ _ _ _ _ _ _ _ , 808 s _ _ _ _ _ _ _ _ , 809 s _ _ _ _ _ _ _ _ , 810 s _ _ _ _ _ _ _ _ , 811 s _ _ _ _ _ _ _ _ , 812 s _ _ _ X _ _ _ _ , 813 s _ _ _ X _ _ _ _ , 814 s _ _ X _ _ _ _ _ , 815 s _ _ _ _ _ _ _ _ , 816 s _ _ _ _ _ _ _ _ , 817 s _ _ _ _ _ _ _ _ , 818 819 /* 0x2d - */ 820 s _ _ _ _ _ _ _ _ , 821 s _ _ _ _ _ _ _ _ , 822 s _ _ _ _ _ _ _ _ , 823 s _ _ _ _ _ _ _ _ , 824 s _ _ _ _ _ _ _ _ , 825 s _ _ _ _ _ _ _ _ , 826 s _ _ _ _ _ _ _ _ , 827 s _ X X X X X _ _ , 828 s _ _ _ _ _ _ _ _ , 829 s _ _ _ _ _ _ _ _ , 830 s _ _ _ _ _ _ _ _ , 831 s _ _ _ _ _ _ _ _ , 832 s _ _ _ _ _ _ _ _ , 833 s _ _ _ _ _ _ _ _ , 834 s _ _ _ _ _ _ _ _ , 835 s _ _ _ _ _ _ _ _ , 836 837 /* 0x2e _ */ 838 s _ _ _ _ _ _ _ _ , 839 s _ _ _ _ _ _ _ _ , 840 s _ _ _ _ _ _ _ _ , 841 s _ _ _ _ _ _ _ _ , 842 s _ _ _ _ _ _ _ _ , 843 s _ _ _ _ _ _ _ _ , 844 s _ _ _ _ _ _ _ _ , 845 s _ _ _ _ _ _ _ _ , 846 s _ _ _ _ _ _ _ _ , 847 s _ _ _ _ _ _ _ _ , 848 s _ _ _ _ _ _ _ _ , 849 s _ _ _ X _ _ _ _ , 850 s _ _ _ _ _ _ _ _ , 851 s _ _ _ _ _ _ _ _ , 852 s _ _ _ _ _ _ _ _ , 853 s _ _ _ _ _ _ _ _ , 854 855 /* 0x2f / */ 856 s _ _ _ _ _ _ _ _ , 857 s _ _ _ _ _ _ _ _ , 858 s _ _ _ _ _ _ _ _ , 859 s _ _ _ _ _ _ _ _ , 860 s _ _ _ _ _ _ _ _ , 861 s _ _ _ _ _ _ X _ , 862 s _ _ _ _ _ X _ _ , 863 s _ _ _ _ X _ _ _ , 864 s _ _ _ X _ _ _ _ , 865 s _ _ X _ _ _ _ _ , 866 s _ X _ _ _ _ _ _ , 867 s _ _ _ _ _ _ _ _ , 868 s _ _ _ _ _ _ _ _ , 869 s _ _ _ _ _ _ _ _ , 870 s _ _ _ _ _ _ _ _ , 871 s _ _ _ _ _ _ _ _ , 872 873 /* 0x30 0 */ 874 s _ _ _ _ _ _ _ _ , 875 s _ _ _ _ _ _ _ _ , 876 s _ _ _ _ _ _ _ _ , 877 s _ _ X X X _ _ _ , 878 s _ X _ _ _ X _ _ , 879 s _ X _ _ _ X _ _ , 880 s _ X _ _ X X _ _ , 881 s _ X _ X _ X _ _ , 882 s _ X X _ _ X _ _ , 883 s _ X _ _ _ X _ _ , 884 s _ X _ _ _ X _ _ , 885 s _ _ X X X _ _ _ , 886 s _ _ _ _ _ _ _ _ , 887 s _ _ _ _ _ _ _ _ , 888 s _ _ _ _ _ _ _ _ , 889 s _ _ _ _ _ _ _ _ , 890 891 /* 0x31 1 */ 892 s _ _ _ _ _ _ _ _ , 893 s _ _ _ _ _ _ _ _ , 894 s _ _ _ _ _ _ _ _ , 895 s _ _ _ X _ _ _ _ , 896 s _ _ X X _ _ _ _ , 897 s _ _ _ X _ _ _ _ , 898 s _ _ _ X _ _ _ _ , 899 s _ _ _ X _ _ _ _ , 900 s _ _ _ X _ _ _ _ , 901 s _ _ _ X _ _ _ _ , 902 s _ _ _ X _ _ _ _ , 903 s _ _ X X X _ _ _ , 904 s _ _ _ _ _ _ _ _ , 905 s _ _ _ _ _ _ _ _ , 906 s _ _ _ _ _ _ _ _ , 907 s _ _ _ _ _ _ _ _ , 908 909 /* 0x32 2 */ 910 s _ _ _ _ _ _ _ _ , 911 s _ _ _ _ _ _ _ _ , 912 s _ _ _ _ _ _ _ _ , 913 s _ _ X X X _ _ _ , 914 s _ X _ _ _ X _ _ , 915 s _ _ _ _ _ X _ _ , 916 s _ _ _ _ _ X _ _ , 917 s _ _ _ _ X _ _ _ , 918 s _ _ _ X _ _ _ _ , 919 s _ _ X _ _ _ _ _ , 920 s _ X _ _ _ _ _ _ , 921 s _ X X X X X _ _ , 922 s _ _ _ _ _ _ _ _ , 923 s _ _ _ _ _ _ _ _ , 924 s _ _ _ _ _ _ _ _ , 925 s _ _ _ _ _ _ _ _ , 926 927 /* 0x33 3 */ 928 s _ _ _ _ _ _ _ _ , 929 s _ _ _ _ _ _ _ _ , 930 s _ _ _ _ _ _ _ _ , 931 s _ X X X X X _ _ , 932 s _ _ _ _ _ X _ _ , 933 s _ _ _ _ X _ _ _ , 934 s _ _ _ X _ _ _ _ , 935 s _ _ X X X _ _ _ , 936 s _ _ _ _ _ X _ _ , 937 s _ _ _ _ _ X _ _ , 938 s _ _ _ _ _ X _ _ , 939 s _ X X X X _ _ _ , 940 s _ _ _ _ _ _ _ _ , 941 s _ _ _ _ _ _ _ _ , 942 s _ _ _ _ _ _ _ _ , 943 s _ _ _ _ _ _ _ _ , 944 945 /* 0x34 4 */ 946 s _ _ _ _ _ _ _ _ , 947 s _ _ _ _ _ _ _ _ , 948 s _ _ _ _ _ _ _ _ , 949 s _ _ _ _ X _ _ _ , 950 s _ _ _ X X _ _ _ , 951 s _ _ X _ X _ _ _ , 952 s _ X _ _ X _ _ _ , 953 s _ X _ _ X _ _ _ , 954 s _ X X X X X _ _ , 955 s _ _ _ _ X _ _ _ , 956 s _ _ _ _ X _ _ _ , 957 s _ _ _ _ X _ _ _ , 958 s _ _ _ _ _ _ _ _ , 959 s _ _ _ _ _ _ _ _ , 960 s _ _ _ _ _ _ _ _ , 961 s _ _ _ _ _ _ _ _ , 962 963 /* 0x35 5 */ 964 s _ _ _ _ _ _ _ _ , 965 s _ _ _ _ _ _ _ _ , 966 s _ _ _ _ _ _ _ _ , 967 s _ X X X X X _ _ , 968 s _ X _ _ _ _ _ _ , 969 s _ X _ _ _ _ _ _ , 970 s _ X _ _ _ _ _ _ , 971 s _ X X X X _ _ _ , 972 s _ _ _ _ _ X _ _ , 973 s _ _ _ _ _ X _ _ , 974 s _ _ _ _ _ X _ _ , 975 s _ X X X X _ _ _ , 976 s _ _ _ _ _ _ _ _ , 977 s _ _ _ _ _ _ _ _ , 978 s _ _ _ _ _ _ _ _ , 979 s _ _ _ _ _ _ _ _ , 980 981 /* 0x36 6 */ 982 s _ _ _ _ _ _ _ _ , 983 s _ _ _ _ _ _ _ _ , 984 s _ _ _ _ _ _ _ _ , 985 s _ _ X X X X _ _ , 986 s _ X _ _ _ _ _ _ , 987 s _ X _ _ _ _ _ _ , 988 s _ X _ _ _ _ _ _ , 989 s _ X X X X _ _ _ , 990 s _ X _ _ _ X _ _ , 991 s _ X _ _ _ X _ _ , 992 s _ X _ _ _ X _ _ , 993 s _ _ X X X _ _ _ , 994 s _ _ _ _ _ _ _ _ , 995 s _ _ _ _ _ _ _ _ , 996 s _ _ _ _ _ _ _ _ , 997 s _ _ _ _ _ _ _ _ , 998 999 /* 0x37 7 */ 1000 s _ _ _ _ _ _ _ _ , 1001 s _ _ _ _ _ _ _ _ , 1002 s _ _ _ _ _ _ _ _ , 1003 s _ X X X X X _ _ , 1004 s _ _ _ _ _ X _ _ , 1005 s _ _ _ _ _ X _ _ , 1006 s _ _ _ _ X _ _ _ , 1007 s _ _ _ X _ _ _ _ , 1008 s _ _ X _ _ _ _ _ , 1009 s _ _ X _ _ _ _ _ , 1010 s _ _ X _ _ _ _ _ , 1011 s _ _ X _ _ _ _ _ , 1012 s _ _ _ _ _ _ _ _ , 1013 s _ _ _ _ _ _ _ _ , 1014 s _ _ _ _ _ _ _ _ , 1015 s _ _ _ _ _ _ _ _ , 1016 1017 /* 0x38 8 */ 1018 s _ _ _ _ _ _ _ _ , 1019 s _ _ _ _ _ _ _ _ , 1020 s _ _ _ _ _ _ _ _ , 1021 s _ _ X X X _ _ _ , 1022 s _ X _ _ _ X _ _ , 1023 s _ X _ _ _ X _ _ , 1024 s _ X _ _ _ X _ _ , 1025 s _ _ X X X _ _ _ , 1026 s _ X _ _ _ X _ _ , 1027 s _ X _ _ _ X _ _ , 1028 s _ X _ _ _ X _ _ , 1029 s _ _ X X X _ _ _ , 1030 s _ _ _ _ _ _ _ _ , 1031 s _ _ _ _ _ _ _ _ , 1032 s _ _ _ _ _ _ _ _ , 1033 s _ _ _ _ _ _ _ _ , 1034 1035 /* 0x39 9 */ 1036 s _ _ _ _ _ _ _ _ , 1037 s _ _ _ _ _ _ _ _ , 1038 s _ _ _ _ _ _ _ _ , 1039 s _ _ X X X _ _ _ , 1040 s _ X _ _ _ X _ _ , 1041 s _ X _ _ _ X _ _ , 1042 s _ X _ _ _ X _ _ , 1043 s _ _ X X X X _ _ , 1044 s _ _ _ _ _ X _ _ , 1045 s _ _ _ _ _ X _ _ , 1046 s _ _ _ _ _ X _ _ , 1047 s _ _ X X X _ _ _ , 1048 s _ _ _ _ _ _ _ _ , 1049 s _ _ _ _ _ _ _ _ , 1050 s _ _ _ _ _ _ _ _ , 1051 s _ _ _ _ _ _ _ _ , 1052 1053 /* 0x3a : */ 1054 s _ _ _ _ _ _ _ _ , 1055 s _ _ _ _ _ _ _ _ , 1056 s _ _ _ _ _ _ _ _ , 1057 s _ _ _ _ _ _ _ _ , 1058 s _ _ _ _ _ _ _ _ , 1059 s _ _ _ _ _ _ _ _ , 1060 s _ _ _ _ _ _ _ _ , 1061 s _ _ _ X _ _ _ _ , 1062 s _ _ _ _ _ _ _ _ , 1063 s _ _ _ _ _ _ _ _ , 1064 s _ _ _ X _ _ _ _ , 1065 s _ _ _ _ _ _ _ _ , 1066 s _ _ _ _ _ _ _ _ , 1067 s _ _ _ _ _ _ _ _ , 1068 s _ _ _ _ _ _ _ _ , 1069 s _ _ _ _ _ _ _ _ , 1070 1071 /* 0x3b ; */ 1072 s _ _ _ _ _ _ _ _ , 1073 s _ _ _ _ _ _ _ _ , 1074 s _ _ _ _ _ _ _ _ , 1075 s _ _ _ _ _ _ _ _ , 1076 s _ _ _ _ _ _ _ _ , 1077 s _ _ _ _ _ _ _ _ , 1078 s _ _ _ _ _ _ _ _ , 1079 s _ _ _ _ _ _ _ _ , 1080 s _ _ _ X _ _ _ _ , 1081 s _ _ _ _ _ _ _ _ , 1082 s _ _ _ X _ _ _ _ , 1083 s _ _ _ X _ _ _ _ , 1084 s _ _ X _ _ _ _ _ , 1085 s _ _ _ _ _ _ _ _ , 1086 s _ _ _ _ _ _ _ _ , 1087 s _ _ _ _ _ _ _ _ , 1088 1089 /* 0x3c < */ 1090 s _ _ _ _ _ _ _ _ , 1091 s _ _ _ _ _ _ _ _ , 1092 s _ _ _ _ _ _ _ _ , 1093 s _ _ _ _ _ _ _ _ , 1094 s _ _ _ _ _ _ _ _ , 1095 s _ _ _ _ _ X _ _ , 1096 s _ _ _ _ X _ _ _ , 1097 s _ _ _ X _ _ _ _ , 1098 s _ _ X _ _ _ _ _ , 1099 s _ _ _ X _ _ _ _ , 1100 s _ _ _ _ X _ _ _ , 1101 s _ _ _ _ _ X _ _ , 1102 s _ _ _ _ _ _ _ _ , 1103 s _ _ _ _ _ _ _ _ , 1104 s _ _ _ _ _ _ _ _ , 1105 s _ _ _ _ _ _ _ _ , 1106 1107 /* 0x3d = */ 1108 s _ _ _ _ _ _ _ _ , 1109 s _ _ _ _ _ _ _ _ , 1110 s _ _ _ _ _ _ _ _ , 1111 s _ _ _ _ _ _ _ _ , 1112 s _ _ _ _ _ _ _ _ , 1113 s _ _ _ _ _ _ _ _ , 1114 s _ _ _ _ _ _ _ _ , 1115 s _ X X X X X _ _ , 1116 s _ _ _ _ _ _ _ _ , 1117 s _ X X X X X _ _ , 1118 s _ _ _ _ _ _ _ _ , 1119 s _ _ _ _ _ _ _ _ , 1120 s _ _ _ _ _ _ _ _ , 1121 s _ _ _ _ _ _ _ _ , 1122 s _ _ _ _ _ _ _ _ , 1123 s _ _ _ _ _ _ _ _ , 1124 1125 /* 0x3e > */ 1126 s _ _ _ _ _ _ _ _ , 1127 s _ _ _ _ _ _ _ _ , 1128 s _ _ _ _ _ _ _ _ , 1129 s _ _ _ _ _ _ _ _ , 1130 s _ _ _ _ _ _ _ _ , 1131 s _ _ X _ _ _ _ _ , 1132 s _ _ _ X _ _ _ _ , 1133 s _ _ _ _ X _ _ _ , 1134 s _ _ _ _ _ X _ _ , 1135 s _ _ _ _ X _ _ _ , 1136 s _ _ _ X _ _ _ _ , 1137 s _ _ X _ _ _ _ _ , 1138 s _ _ _ _ _ _ _ _ , 1139 s _ _ _ _ _ _ _ _ , 1140 s _ _ _ _ _ _ _ _ , 1141 s _ _ _ _ _ _ _ _ , 1142 1143 /* 0x3f ? */ 1144 s _ _ _ _ _ _ _ _ , 1145 s _ _ _ _ _ _ _ _ , 1146 s _ _ X X X _ _ _ , 1147 s _ X _ _ _ X _ _ , 1148 s _ X _ _ _ X _ _ , 1149 s _ _ _ _ _ X _ _ , 1150 s _ _ _ _ X _ _ _ , 1151 s _ _ _ X _ _ _ _ , 1152 s _ _ _ X _ _ _ _ , 1153 s _ _ _ _ _ _ _ _ , 1154 s _ _ _ X _ _ _ _ , 1155 s _ _ _ X _ _ _ _ , 1156 s _ _ _ _ _ _ _ _ , 1157 s _ _ _ _ _ _ _ _ , 1158 s _ _ _ _ _ _ _ _ , 1159 s _ _ _ _ _ _ _ _ , 1160 1161 /* 0x40 @ */ 1162 s _ _ _ _ _ _ _ _ , 1163 s _ _ _ _ _ _ _ _ , 1164 s _ _ _ _ _ _ _ _ , 1165 s _ _ _ _ _ _ _ _ , 1166 s _ _ _ _ _ _ _ _ , 1167 s _ _ X X X _ _ _ , 1168 s _ X _ _ _ X _ _ , 1169 s _ X _ X X X _ _ , 1170 s _ X _ X _ X _ _ , 1171 s _ X _ X X X _ _ , 1172 s _ X _ _ _ _ _ _ , 1173 s _ _ X X X X _ _ , 1174 s _ _ _ _ _ _ _ _ , 1175 s _ _ _ _ _ _ _ _ , 1176 s _ _ _ _ _ _ _ _ , 1177 s _ _ _ _ _ _ _ _ , 1178 1179 /* 0x41 A */ 1180 s _ _ _ _ _ _ _ _ , 1181 s _ _ _ _ _ _ _ _ , 1182 s _ _ _ X X _ _ _ , 1183 s _ _ X _ _ X _ _ , 1184 s _ X _ _ _ _ X _ , 1185 s _ X _ _ _ _ X _ , 1186 s _ X _ _ _ _ X _ , 1187 s _ X X X X X X _ , 1188 s _ X _ _ _ _ X _ , 1189 s _ X _ _ _ _ X _ , 1190 s _ X _ _ _ _ X _ , 1191 s _ X _ _ _ _ X _ , 1192 s _ _ _ _ _ _ _ _ , 1193 s _ _ _ _ _ _ _ _ , 1194 s _ _ _ _ _ _ _ _ , 1195 s _ _ _ _ _ _ _ _ , 1196 1197 /* 0x42 B */ 1198 s _ _ _ _ _ _ _ _ , 1199 s _ _ _ _ _ _ _ _ , 1200 s _ X X X X X _ _ , 1201 s _ X _ _ _ _ X _ , 1202 s _ X _ _ _ _ X _ , 1203 s _ X _ _ _ _ X _ , 1204 s _ X X X X X _ _ , 1205 s _ X _ _ _ _ X _ , 1206 s _ X _ _ _ _ X _ , 1207 s _ X _ _ _ _ X _ , 1208 s _ X _ _ _ _ X _ , 1209 s _ X X X X X _ _ , 1210 s _ _ _ _ _ _ _ _ , 1211 s _ _ _ _ _ _ _ _ , 1212 s _ _ _ _ _ _ _ _ , 1213 s _ _ _ _ _ _ _ _ , 1214 1215 /* 0x43 C */ 1216 s _ _ _ _ _ _ _ _ , 1217 s _ _ _ _ _ _ _ _ , 1218 s _ _ X X X X _ _ , 1219 s _ X _ _ _ _ X _ , 1220 s _ X _ _ _ _ _ _ , 1221 s _ X _ _ _ _ _ _ , 1222 s _ X _ _ _ _ _ _ , 1223 s _ X _ _ _ _ _ _ , 1224 s _ X _ _ _ _ _ _ , 1225 s _ X _ _ _ _ _ _ , 1226 s _ X _ _ _ _ X _ , 1227 s _ _ X X X X _ _ , 1228 s _ _ _ _ _ _ _ _ , 1229 s _ _ _ _ _ _ _ _ , 1230 s _ _ _ _ _ _ _ _ , 1231 s _ _ _ _ _ _ _ _ , 1232 1233 /* 0x44 D */ 1234 s _ _ _ _ _ _ _ _ , 1235 s _ _ _ _ _ _ _ _ , 1236 s _ X X X X X _ _ , 1237 s _ X _ _ _ _ X _ , 1238 s _ X _ _ _ _ X _ , 1239 s _ X _ _ _ _ X _ , 1240 s _ X _ _ _ _ X _ , 1241 s _ X _ _ _ _ X _ , 1242 s _ X _ _ _ _ X _ , 1243 s _ X _ _ _ _ X _ , 1244 s _ X _ _ _ _ X _ , 1245 s _ X X X X X _ _ , 1246 s _ _ _ _ _ _ _ _ , 1247 s _ _ _ _ _ _ _ _ , 1248 s _ _ _ _ _ _ _ _ , 1249 s _ _ _ _ _ _ _ _ , 1250 1251 /* 0x45 E */ 1252 s _ _ _ _ _ _ _ _ , 1253 s _ _ _ _ _ _ _ _ , 1254 s _ X X X X X X _ , 1255 s _ X _ _ _ _ _ _ , 1256 s _ X _ _ _ _ _ _ , 1257 s _ X _ _ _ _ _ _ , 1258 s _ X X X X _ _ _ , 1259 s _ X _ _ _ _ _ _ , 1260 s _ X _ _ _ _ _ _ , 1261 s _ X _ _ _ _ _ _ , 1262 s _ X _ _ _ _ _ _ , 1263 s _ X X X X X X _ , 1264 s _ _ _ _ _ _ _ _ , 1265 s _ _ _ _ _ _ _ _ , 1266 s _ _ _ _ _ _ _ _ , 1267 s _ _ _ _ _ _ _ _ , 1268 1269 /* 0x46 F */ 1270 s _ _ _ _ _ _ _ _ , 1271 s _ _ _ _ _ _ _ _ , 1272 s _ X X X X X X _ , 1273 s _ X _ _ _ _ _ _ , 1274 s _ X _ _ _ _ _ _ , 1275 s _ X _ _ _ _ _ _ , 1276 s _ X X X X _ _ _ , 1277 s _ X _ _ _ _ _ _ , 1278 s _ X _ _ _ _ _ _ , 1279 s _ X _ _ _ _ _ _ , 1280 s _ X _ _ _ _ _ _ , 1281 s _ X _ _ _ _ _ _ , 1282 s _ _ _ _ _ _ _ _ , 1283 s _ _ _ _ _ _ _ _ , 1284 s _ _ _ _ _ _ _ _ , 1285 s _ _ _ _ _ _ _ _ , 1286 1287 /* 0x47 G */ 1288 s _ _ _ _ _ _ _ _ , 1289 s _ _ _ _ _ _ _ _ , 1290 s _ _ X X X X _ _ , 1291 s _ X _ _ _ _ X _ , 1292 s _ X _ _ _ _ _ _ , 1293 s _ X _ _ _ _ _ _ , 1294 s _ X _ X X X X _ , 1295 s _ X _ _ _ _ X _ , 1296 s _ X _ _ _ _ X _ , 1297 s _ X _ _ _ _ X _ , 1298 s _ X _ _ _ _ X _ , 1299 s _ _ X X X X _ _ , 1300 s _ _ _ _ _ _ _ _ , 1301 s _ _ _ _ _ _ _ _ , 1302 s _ _ _ _ _ _ _ _ , 1303 s _ _ _ _ _ _ _ _ , 1304 1305 /* 0x48 H */ 1306 s _ _ _ _ _ _ _ _ , 1307 s _ _ _ _ _ _ _ _ , 1308 s _ X _ _ _ _ X _ , 1309 s _ X _ _ _ _ X _ , 1310 s _ X _ _ _ _ X _ , 1311 s _ X _ _ _ _ X _ , 1312 s _ X X X X X X _ , 1313 s _ X _ _ _ _ X _ , 1314 s _ X _ _ _ _ X _ , 1315 s _ X _ _ _ _ X _ , 1316 s _ X _ _ _ _ X _ , 1317 s _ X _ _ _ _ X _ , 1318 s _ _ _ _ _ _ _ _ , 1319 s _ _ _ _ _ _ _ _ , 1320 s _ _ _ _ _ _ _ _ , 1321 s _ _ _ _ _ _ _ _ , 1322 1323 /* 0x49 I */ 1324 s _ _ _ _ _ _ _ _ , 1325 s _ _ _ _ _ _ _ _ , 1326 s _ _ X X X _ _ _ , 1327 s _ _ _ X _ _ _ _ , 1328 s _ _ _ X _ _ _ _ , 1329 s _ _ _ X _ _ _ _ , 1330 s _ _ _ X _ _ _ _ , 1331 s _ _ _ X _ _ _ _ , 1332 s _ _ _ X _ _ _ _ , 1333 s _ _ _ X _ _ _ _ , 1334 s _ _ _ X _ _ _ _ , 1335 s _ _ X X X _ _ _ , 1336 s _ _ _ _ _ _ _ _ , 1337 s _ _ _ _ _ _ _ _ , 1338 s _ _ _ _ _ _ _ _ , 1339 s _ _ _ _ _ _ _ _ , 1340 1341 /* 0x4a J */ 1342 s _ _ _ _ _ _ _ _ , 1343 s _ _ _ _ _ _ _ _ , 1344 s _ _ _ X X X _ _ , 1345 s _ _ _ _ X _ _ _ , 1346 s _ _ _ _ X _ _ _ , 1347 s _ _ _ _ X _ _ _ , 1348 s _ _ _ _ X _ _ _ , 1349 s _ _ _ _ X _ _ _ , 1350 s _ _ _ _ X _ _ _ , 1351 s _ _ _ _ X _ _ _ , 1352 s _ X _ _ X _ _ _ , 1353 s _ _ X X _ _ _ _ , 1354 s _ _ _ _ _ _ _ _ , 1355 s _ _ _ _ _ _ _ _ , 1356 s _ _ _ _ _ _ _ _ , 1357 s _ _ _ _ _ _ _ _ , 1358 1359 /* 0x4b K */ 1360 s _ _ _ _ _ _ _ _ , 1361 s _ _ _ _ _ _ _ _ , 1362 s _ X _ _ _ _ X _ , 1363 s _ X _ _ _ X _ _ , 1364 s _ X _ _ X _ _ _ , 1365 s _ X _ X _ _ _ _ , 1366 s _ X X _ _ _ _ _ , 1367 s _ X X _ _ _ _ _ , 1368 s _ X _ X _ _ _ _ , 1369 s _ X _ _ X _ _ _ , 1370 s _ X _ _ _ X _ _ , 1371 s _ X _ _ _ _ X _ , 1372 s _ _ _ _ _ _ _ _ , 1373 s _ _ _ _ _ _ _ _ , 1374 s _ _ _ _ _ _ _ _ , 1375 s _ _ _ _ _ _ _ _ , 1376 1377 /* 0x4c L */ 1378 s _ _ _ _ _ _ _ _ , 1379 s _ _ _ _ _ _ _ _ , 1380 s _ X _ _ _ _ _ _ , 1381 s _ X _ _ _ _ _ _ , 1382 s _ X _ _ _ _ _ _ , 1383 s _ X _ _ _ _ _ _ , 1384 s _ X _ _ _ _ _ _ , 1385 s _ X _ _ _ _ _ _ , 1386 s _ X _ _ _ _ _ _ , 1387 s _ X _ _ _ _ _ _ , 1388 s _ X _ _ _ _ _ _ , 1389 s _ X X X X X X _ , 1390 s _ _ _ _ _ _ _ _ , 1391 s _ _ _ _ _ _ _ _ , 1392 s _ _ _ _ _ _ _ _ , 1393 s _ _ _ _ _ _ _ _ , 1394 1395 /* 0x4d M */ 1396 s _ _ _ _ _ _ _ _ , 1397 s _ _ _ _ _ _ _ _ , 1398 s X _ _ _ _ _ X _ , 1399 s X _ _ _ _ _ X _ , 1400 s X X _ _ _ X X _ , 1401 s X X _ _ _ X X _ , 1402 s X _ X _ X _ X _ , 1403 s X _ X _ X _ X _ , 1404 s X _ _ X _ _ X _ , 1405 s X _ _ X _ _ X _ , 1406 s X _ _ _ _ _ X _ , 1407 s X _ _ _ _ _ X _ , 1408 s _ _ _ _ _ _ _ _ , 1409 s _ _ _ _ _ _ _ _ , 1410 s _ _ _ _ _ _ _ _ , 1411 s _ _ _ _ _ _ _ _ , 1412 1413 /* 0x4e N */ 1414 s _ _ _ _ _ _ _ _ , 1415 s _ _ _ _ _ _ _ _ , 1416 s _ X _ _ _ _ X _ , 1417 s _ X X _ _ _ X _ , 1418 s _ X X _ _ _ X _ , 1419 s _ X _ X _ _ X _ , 1420 s _ X _ X _ _ X _ , 1421 s _ X _ _ X _ X _ , 1422 s _ X _ _ X _ X _ , 1423 s _ X _ _ _ X X _ , 1424 s _ X _ _ _ X X _ , 1425 s _ X _ _ _ _ X _ , 1426 s _ _ _ _ _ _ _ _ , 1427 s _ _ _ _ _ _ _ _ , 1428 s _ _ _ _ _ _ _ _ , 1429 s _ _ _ _ _ _ _ _ , 1430 1431 /* 0x4f O */ 1432 s _ _ _ _ _ _ _ _ , 1433 s _ _ _ _ _ _ _ _ , 1434 s _ _ X X X X _ _ , 1435 s _ X _ _ _ _ X _ , 1436 s _ X _ _ _ _ X _ , 1437 s _ X _ _ _ _ X _ , 1438 s _ X _ _ _ _ X _ , 1439 s _ X _ _ _ _ X _ , 1440 s _ X _ _ _ _ X _ , 1441 s _ X _ _ _ _ X _ , 1442 s _ X _ _ _ _ X _ , 1443 s _ _ X X X X _ _ , 1444 s _ _ _ _ _ _ _ _ , 1445 s _ _ _ _ _ _ _ _ , 1446 s _ _ _ _ _ _ _ _ , 1447 s _ _ _ _ _ _ _ _ , 1448 1449 /* 0x50 P */ 1450 s _ _ _ _ _ _ _ _ , 1451 s _ _ _ _ _ _ _ _ , 1452 s _ X X X X X _ _ , 1453 s _ X _ _ _ _ X _ , 1454 s _ X _ _ _ _ X _ , 1455 s _ X _ _ _ _ X _ , 1456 s _ X _ _ _ _ X _ , 1457 s _ X X X X X _ _ , 1458 s _ X _ _ _ _ _ _ , 1459 s _ X _ _ _ _ _ _ , 1460 s _ X _ _ _ _ _ _ , 1461 s _ X _ _ _ _ _ _ , 1462 s _ _ _ _ _ _ _ _ , 1463 s _ _ _ _ _ _ _ _ , 1464 s _ _ _ _ _ _ _ _ , 1465 s _ _ _ _ _ _ _ _ , 1466 1467 /* 0x51 Q */ 1468 s _ _ _ _ _ _ _ _ , 1469 s _ _ _ _ _ _ _ _ , 1470 s _ _ X X X X _ _ , 1471 s _ X _ _ _ _ X _ , 1472 s _ X _ _ _ _ X _ , 1473 s _ X _ _ _ _ X _ , 1474 s _ X _ _ _ _ X _ , 1475 s _ X _ _ _ _ X _ , 1476 s _ X _ _ _ _ X _ , 1477 s _ X _ _ _ _ X _ , 1478 s _ X _ _ X _ X _ , 1479 s _ _ X X X X _ _ , 1480 s _ _ _ _ X X X _ , 1481 s _ _ _ _ _ _ _ _ , 1482 s _ _ _ _ _ _ _ _ , 1483 s _ _ _ _ _ _ _ _ , 1484 1485 /* 0x52 R */ 1486 s _ _ _ _ _ _ _ _ , 1487 s _ _ _ _ _ _ _ _ , 1488 s _ X X X X X _ _ , 1489 s _ X _ _ _ _ X _ , 1490 s _ X _ _ _ _ X _ , 1491 s _ X _ _ _ _ X _ , 1492 s _ X _ _ _ _ X _ , 1493 s _ X X X X X _ _ , 1494 s _ X _ X _ _ _ _ , 1495 s _ X _ _ X _ _ _ , 1496 s _ X _ _ _ X _ _ , 1497 s _ X _ _ _ _ X _ , 1498 s _ _ _ _ _ _ _ _ , 1499 s _ _ _ _ _ _ _ _ , 1500 s _ _ _ _ _ _ _ _ , 1501 s _ _ _ _ _ _ _ _ , 1502 1503 /* 0x53 S */ 1504 s _ _ _ _ _ _ _ _ , 1505 s _ _ _ _ _ _ _ _ , 1506 s _ _ X X X X _ _ , 1507 s _ X _ _ _ _ X _ , 1508 s _ X _ _ _ _ _ _ , 1509 s _ X _ _ _ _ _ _ , 1510 s _ _ X X X X _ _ , 1511 s _ _ _ _ _ _ X _ , 1512 s _ _ _ _ _ _ X _ , 1513 s _ _ _ _ _ _ X _ , 1514 s _ X _ _ _ _ X _ , 1515 s _ _ X X X X _ _ , 1516 s _ _ _ _ _ _ _ _ , 1517 s _ _ _ _ _ _ _ _ , 1518 s _ _ _ _ _ _ _ _ , 1519 s _ _ _ _ _ _ _ _ , 1520 1521 /* 0x54 T */ 1522 s _ _ _ _ _ _ _ _ , 1523 s _ _ _ _ _ _ _ _ , 1524 s _ X X X X X _ _ , 1525 s _ _ _ X _ _ _ _ , 1526 s _ _ _ X _ _ _ _ , 1527 s _ _ _ X _ _ _ _ , 1528 s _ _ _ X _ _ _ _ , 1529 s _ _ _ X _ _ _ _ , 1530 s _ _ _ X _ _ _ _ , 1531 s _ _ _ X _ _ _ _ , 1532 s _ _ _ X _ _ _ _ , 1533 s _ _ _ X _ _ _ _ , 1534 s _ _ _ _ _ _ _ _ , 1535 s _ _ _ _ _ _ _ _ , 1536 s _ _ _ _ _ _ _ _ , 1537 s _ _ _ _ _ _ _ _ , 1538 1539 /* 0x55 U */ 1540 s _ _ _ _ _ _ _ _ , 1541 s _ _ _ _ _ _ _ _ , 1542 s _ X _ _ _ _ X _ , 1543 s _ X _ _ _ _ X _ , 1544 s _ X _ _ _ _ X _ , 1545 s _ X _ _ _ _ X _ , 1546 s _ X _ _ _ _ X _ , 1547 s _ X _ _ _ _ X _ , 1548 s _ X _ _ _ _ X _ , 1549 s _ X _ _ _ _ X _ , 1550 s _ X _ _ _ _ X _ , 1551 s _ _ X X X X _ _ , 1552 s _ _ _ _ _ _ _ _ , 1553 s _ _ _ _ _ _ _ _ , 1554 s _ _ _ _ _ _ _ _ , 1555 s _ _ _ _ _ _ _ _ , 1556 1557 /* 0x56 V */ 1558 s _ _ _ _ _ _ _ _ , 1559 s _ _ _ _ _ _ _ _ , 1560 s _ X _ _ _ X _ _ , 1561 s _ X _ _ _ X _ _ , 1562 s _ X _ _ _ X _ _ , 1563 s _ X _ _ _ X _ _ , 1564 s _ _ X _ X _ _ _ , 1565 s _ _ X _ X _ _ _ , 1566 s _ _ X _ X _ _ _ , 1567 s _ _ _ X _ _ _ _ , 1568 s _ _ _ X _ _ _ _ , 1569 s _ _ _ X _ _ _ _ , 1570 s _ _ _ _ _ _ _ _ , 1571 s _ _ _ _ _ _ _ _ , 1572 s _ _ _ _ _ _ _ _ , 1573 s _ _ _ _ _ _ _ _ , 1574 1575 /* 0x57 W */ 1576 s _ _ _ _ _ _ _ _ , 1577 s _ _ _ _ _ _ _ _ , 1578 s X _ _ _ _ _ X _ , 1579 s X _ _ _ _ _ X _ , 1580 s X _ _ _ _ _ X _ , 1581 s X _ _ _ _ _ X _ , 1582 s _ X _ X _ X _ _ , 1583 s _ X _ X _ X _ _ , 1584 s _ X _ X _ X _ _ , 1585 s _ _ X _ X _ _ _ , 1586 s _ _ X _ X _ _ _ , 1587 s _ _ X _ X _ _ _ , 1588 s _ _ _ _ _ _ _ _ , 1589 s _ _ _ _ _ _ _ _ , 1590 s _ _ _ _ _ _ _ _ , 1591 s _ _ _ _ _ _ _ _ , 1592 1593 /* 0x58 X */ 1594 s _ _ _ _ _ _ _ _ , 1595 s _ _ _ _ _ _ _ _ , 1596 s _ X _ _ _ _ X _ , 1597 s _ X _ _ _ _ X _ , 1598 s _ _ X _ _ X _ _ , 1599 s _ _ _ X X _ _ _ , 1600 s _ _ _ X X _ _ _ , 1601 s _ _ _ X X _ _ _ , 1602 s _ _ X _ _ X _ _ , 1603 s _ _ X _ _ X _ _ , 1604 s _ X _ _ _ _ X _ , 1605 s _ X _ _ _ _ X _ , 1606 s _ _ _ _ _ _ _ _ , 1607 s _ _ _ _ _ _ _ _ , 1608 s _ _ _ _ _ _ _ _ , 1609 s _ _ _ _ _ _ _ _ , 1610 1611 /* 0x59 Y */ 1612 s _ _ _ _ _ _ _ _ , 1613 s _ _ _ _ _ _ _ _ , 1614 s _ X _ _ _ X _ _ , 1615 s _ X _ _ _ X _ _ , 1616 s _ X _ _ _ X _ _ , 1617 s _ X _ _ _ X _ _ , 1618 s _ _ X _ X _ _ _ , 1619 s _ _ X _ X _ _ _ , 1620 s _ _ _ X _ _ _ _ , 1621 s _ _ _ X _ _ _ _ , 1622 s _ _ _ X _ _ _ _ , 1623 s _ _ _ X _ _ _ _ , 1624 s _ _ _ _ _ _ _ _ , 1625 s _ _ _ _ _ _ _ _ , 1626 s _ _ _ _ _ _ _ _ , 1627 s _ _ _ _ _ _ _ _ , 1628 1629 /* 0x5a Z */ 1630 s _ _ _ _ _ _ _ _ , 1631 s _ _ _ _ _ _ _ _ , 1632 s _ X X X X X X _ , 1633 s _ _ _ _ _ _ X _ , 1634 s _ _ _ _ _ _ X _ , 1635 s _ _ _ _ _ X _ _ , 1636 s _ _ _ _ X _ _ _ , 1637 s _ _ _ X _ _ _ _ , 1638 s _ _ X _ _ _ _ _ , 1639 s _ X _ _ _ _ _ _ , 1640 s _ X _ _ _ _ _ _ , 1641 s _ X X X X X X _ , 1642 s _ _ _ _ _ _ _ _ , 1643 s _ _ _ _ _ _ _ _ , 1644 s _ _ _ _ _ _ _ _ , 1645 s _ _ _ _ _ _ _ _ , 1646 1647 /* 0x5b [ */ 1648 s _ _ _ _ _ _ _ _ , 1649 s _ _ _ _ _ _ _ _ , 1650 s _ _ X X X _ _ _ , 1651 s _ _ X _ _ _ _ _ , 1652 s _ _ X _ _ _ _ _ , 1653 s _ _ X _ _ _ _ _ , 1654 s _ _ X _ _ _ _ _ , 1655 s _ _ X _ _ _ _ _ , 1656 s _ _ X _ _ _ _ _ , 1657 s _ _ X _ _ _ _ _ , 1658 s _ _ X _ _ _ _ _ , 1659 s _ _ X X X _ _ _ , 1660 s _ _ _ _ _ _ _ _ , 1661 s _ _ _ _ _ _ _ _ , 1662 s _ _ _ _ _ _ _ _ , 1663 s _ _ _ _ _ _ _ _ , 1664 1665 /* 0x5c */ 1666 s _ _ _ _ _ _ _ _ , 1667 s _ _ _ _ _ _ _ _ , 1668 s _ _ _ _ _ _ _ _ , 1669 s _ _ _ _ _ _ _ _ , 1670 s _ _ _ _ _ _ _ _ , 1671 s _ _ _ _ _ _ _ _ , 1672 s _ X _ _ _ _ _ _ , 1673 s _ _ X _ _ _ _ _ , 1674 s _ _ _ X _ _ _ _ , 1675 s _ _ _ _ X _ _ _ , 1676 s _ _ _ _ _ X _ _ , 1677 s _ _ _ _ _ _ X _ , 1678 s _ _ _ _ _ _ _ _ , 1679 s _ _ _ _ _ _ _ _ , 1680 s _ _ _ _ _ _ _ _ , 1681 s _ _ _ _ _ _ _ _ , 1682 1683 /* 0x5d ] */ 1684 s _ _ _ _ _ _ _ _ , 1685 s _ _ _ _ _ _ _ _ , 1686 s _ _ _ X X X _ _ , 1687 s _ _ _ _ _ X _ _ , 1688 s _ _ _ _ _ X _ _ , 1689 s _ _ _ _ _ X _ _ , 1690 s _ _ _ _ _ X _ _ , 1691 s _ _ _ _ _ X _ _ , 1692 s _ _ _ _ _ X _ _ , 1693 s _ _ _ _ _ X _ _ , 1694 s _ _ _ _ _ X _ _ , 1695 s _ _ _ X X X _ _ , 1696 s _ _ _ _ _ _ _ _ , 1697 s _ _ _ _ _ _ _ _ , 1698 s _ _ _ _ _ _ _ _ , 1699 s _ _ _ _ _ _ _ _ , 1700 1701 /* 0x5e ^ */ 1702 s _ _ _ _ _ _ _ _ , 1703 s _ _ _ _ _ _ _ _ , 1704 s _ _ _ _ _ _ _ _ , 1705 s _ _ _ _ _ _ _ _ , 1706 s _ _ _ X _ _ _ _ , 1707 s _ _ X _ X _ _ _ , 1708 s _ X _ _ _ X _ _ , 1709 s _ _ _ _ _ _ _ _ , 1710 s _ _ _ _ _ _ _ _ , 1711 s _ _ _ _ _ _ _ _ , 1712 s _ _ _ _ _ _ _ _ , 1713 s _ _ _ _ _ _ _ _ , 1714 s _ _ _ _ _ _ _ _ , 1715 s _ _ _ _ _ _ _ _ , 1716 s _ _ _ _ _ _ _ _ , 1717 s _ _ _ _ _ _ _ _ , 1718 1719 /* 0x5f _ */ 1720 s _ _ _ _ _ _ _ _ , 1721 s _ _ _ _ _ _ _ _ , 1722 s _ _ _ _ _ _ _ _ , 1723 s _ _ _ _ _ _ _ _ , 1724 s _ _ _ _ _ _ _ _ , 1725 s _ _ _ _ _ _ _ _ , 1726 s _ _ _ _ _ _ _ _ , 1727 s _ _ _ _ _ _ _ _ , 1728 s _ _ _ _ _ _ _ _ , 1729 s _ _ _ _ _ _ _ _ , 1730 s _ _ _ _ _ _ _ _ , 1731 s _ _ _ _ _ _ _ _ , 1732 s X X X X X X X X , 1733 s _ _ _ _ _ _ _ _ , 1734 s _ _ _ _ _ _ _ _ , 1735 s _ _ _ _ _ _ _ _ , 1736 1737 /* 0x60 ` */ 1738 s _ _ _ _ _ _ _ _ , 1739 s _ _ _ _ _ _ _ _ , 1740 s _ _ _ _ _ _ _ _ , 1741 s _ _ _ X _ _ _ _ , 1742 s _ _ _ X _ _ _ _ , 1743 s _ _ _ _ X _ _ _ , 1744 s _ _ _ _ _ _ _ _ , 1745 s _ _ _ _ _ _ _ _ , 1746 s _ _ _ _ _ _ _ _ , 1747 s _ _ _ _ _ _ _ _ , 1748 s _ _ _ _ _ _ _ _ , 1749 s _ _ _ _ _ _ _ _ , 1750 s _ _ _ _ _ _ _ _ , 1751 s _ _ _ _ _ _ _ _ , 1752 s _ _ _ _ _ _ _ _ , 1753 s _ _ _ _ _ _ _ _ , 1754 1755 /* 0x61 a */ 1756 s _ _ _ _ _ _ _ _ , 1757 s _ _ _ _ _ _ _ _ , 1758 s _ _ _ _ _ _ _ _ , 1759 s _ _ _ _ _ _ _ _ , 1760 s _ _ _ _ _ _ _ _ , 1761 s _ X X X X _ _ _ , 1762 s _ _ _ _ _ X _ _ , 1763 s _ _ X X X X _ _ , 1764 s _ X _ _ _ X _ _ , 1765 s _ X _ _ _ X _ _ , 1766 s _ X _ _ _ X _ _ , 1767 s _ _ X X X _ X _ , 1768 s _ _ _ _ _ _ _ _ , 1769 s _ _ _ _ _ _ _ _ , 1770 s _ _ _ _ _ _ _ _ , 1771 s _ _ _ _ _ _ _ _ , 1772 1773 /* 0x62 b */ 1774 s _ _ _ _ _ _ _ _ , 1775 s _ _ _ _ _ _ _ _ , 1776 s _ X _ _ _ _ _ _ , 1777 s _ X _ _ _ _ _ _ , 1778 s _ X _ _ _ _ _ _ , 1779 s _ X _ X X X _ _ , 1780 s _ X X _ _ _ X _ , 1781 s _ X _ _ _ _ X _ , 1782 s _ X _ _ _ _ X _ , 1783 s _ X _ _ _ _ X _ , 1784 s _ X X _ _ _ X _ , 1785 s _ X _ X X X _ _ , 1786 s _ _ _ _ _ _ _ _ , 1787 s _ _ _ _ _ _ _ _ , 1788 s _ _ _ _ _ _ _ _ , 1789 s _ _ _ _ _ _ _ _ , 1790 1791 /* 0x63 c */ 1792 s _ _ _ _ _ _ _ _ , 1793 s _ _ _ _ _ _ _ _ , 1794 s _ _ _ _ _ _ _ _ , 1795 s _ _ _ _ _ _ _ _ , 1796 s _ _ _ _ _ _ _ _ , 1797 s _ _ X X X X _ _ , 1798 s _ X _ _ _ _ X _ , 1799 s _ X _ _ _ _ _ _ , 1800 s _ X _ _ _ _ _ _ , 1801 s _ X _ _ _ _ _ _ , 1802 s _ X _ _ _ _ X _ , 1803 s _ _ X X X X _ _ , 1804 s _ _ _ _ _ _ _ _ , 1805 s _ _ _ _ _ _ _ _ , 1806 s _ _ _ _ _ _ _ _ , 1807 s _ _ _ _ _ _ _ _ , 1808 1809 /* 0x64 d */ 1810 s _ _ _ _ _ _ _ _ , 1811 s _ _ _ _ _ _ _ _ , 1812 s _ _ _ _ _ _ X _ , 1813 s _ _ _ _ _ _ X _ , 1814 s _ _ _ _ _ _ X _ , 1815 s _ _ X X X _ X _ , 1816 s _ X _ _ _ X X _ , 1817 s _ X _ _ _ _ X _ , 1818 s _ X _ _ _ _ X _ , 1819 s _ X _ _ _ _ X _ , 1820 s _ X _ _ _ X X _ , 1821 s _ _ X X X _ X _ , 1822 s _ _ _ _ _ _ _ _ , 1823 s _ _ _ _ _ _ _ _ , 1824 s _ _ _ _ _ _ _ _ , 1825 s _ _ _ _ _ _ _ _ , 1826 1827 /* 0x65 e */ 1828 s _ _ _ _ _ _ _ _ , 1829 s _ _ _ _ _ _ _ _ , 1830 s _ _ _ _ _ _ _ _ , 1831 s _ _ _ _ _ _ _ _ , 1832 s _ _ _ _ _ _ _ _ , 1833 s _ _ X X X X _ _ , 1834 s _ X _ _ _ _ X _ , 1835 s _ X _ _ _ _ X _ , 1836 s _ X X X X X X _ , 1837 s _ X _ _ _ _ _ _ , 1838 s _ X _ _ _ _ X _ , 1839 s _ _ X X X X _ _ , 1840 s _ _ _ _ _ _ _ _ , 1841 s _ _ _ _ _ _ _ _ , 1842 s _ _ _ _ _ _ _ _ , 1843 s _ _ _ _ _ _ _ _ , 1844 1845 /* 0x66 f */ 1846 s _ _ _ _ _ _ _ _ , 1847 s _ _ _ _ _ _ _ _ , 1848 s _ _ _ _ X X X _ , 1849 s _ _ _ X _ _ _ _ , 1850 s _ _ _ X _ _ _ _ , 1851 s _ _ _ X _ _ _ _ , 1852 s _ _ X X X X _ _ , 1853 s _ _ _ X _ _ _ _ , 1854 s _ _ _ X _ _ _ _ , 1855 s _ _ _ X _ _ _ _ , 1856 s _ _ _ X _ _ _ _ , 1857 s _ _ _ X _ _ _ _ , 1858 s _ _ _ _ _ _ _ _ , 1859 s _ _ _ _ _ _ _ _ , 1860 s _ _ _ _ _ _ _ _ , 1861 s _ _ _ _ _ _ _ _ , 1862 1863 /* 0x67 g */ 1864 s _ _ _ _ _ _ _ _ , 1865 s _ _ _ _ _ _ _ _ , 1866 s _ _ _ _ _ _ _ _ , 1867 s _ _ _ _ _ _ _ _ , 1868 s _ _ _ _ _ _ _ _ , 1869 s _ _ X X X X X _ , 1870 s _ X _ _ _ _ X _ , 1871 s _ X _ _ _ _ X _ , 1872 s _ X _ _ _ _ X _ , 1873 s _ X _ _ _ _ X _ , 1874 s _ _ X X X X X _ , 1875 s _ _ _ _ _ _ X _ , 1876 s _ _ _ _ _ _ X _ , 1877 s _ _ X X X X _ _ , 1878 s _ _ _ _ _ _ _ _ , 1879 s _ _ _ _ _ _ _ _ , 1880 1881 /* 0x68 h */ 1882 s _ _ _ _ _ _ _ _ , 1883 s _ _ _ _ _ _ _ _ , 1884 s _ X _ _ _ _ _ _ , 1885 s _ X _ _ _ _ _ _ , 1886 s _ X _ _ _ _ _ _ , 1887 s _ X _ X X X _ _ , 1888 s _ X X _ _ _ X _ , 1889 s _ X _ _ _ _ X _ , 1890 s _ X _ _ _ _ X _ , 1891 s _ X _ _ _ _ X _ , 1892 s _ X _ _ _ _ X _ , 1893 s _ X _ _ _ _ X _ , 1894 s _ _ _ _ _ _ _ _ , 1895 s _ _ _ _ _ _ _ _ , 1896 s _ _ _ _ _ _ _ _ , 1897 s _ _ _ _ _ _ _ _ , 1898 1899 /* 0x69 i */ 1900 s _ _ _ _ _ _ _ _ , 1901 s _ _ _ _ _ _ _ _ , 1902 s _ _ _ _ _ _ _ _ , 1903 s _ _ _ _ X _ _ _ , 1904 s _ _ _ _ _ _ _ _ , 1905 s _ _ _ _ X _ _ _ , 1906 s _ _ _ _ X _ _ _ , 1907 s _ _ _ _ X _ _ _ , 1908 s _ _ _ _ X _ _ _ , 1909 s _ _ _ _ X _ _ _ , 1910 s _ _ _ _ X _ _ _ , 1911 s _ _ _ _ X _ _ _ , 1912 s _ _ _ _ _ _ _ _ , 1913 s _ _ _ _ _ _ _ _ , 1914 s _ _ _ _ _ _ _ _ , 1915 s _ _ _ _ _ _ _ _ , 1916 1917 /* 0x6a j */ 1918 s _ _ _ _ _ _ _ _ , 1919 s _ _ _ _ _ _ _ _ , 1920 s _ _ _ _ _ _ _ _ , 1921 s _ _ _ _ _ X _ _ , 1922 s _ _ _ _ _ _ _ _ , 1923 s _ _ _ _ _ X _ _ , 1924 s _ _ _ _ _ X _ _ , 1925 s _ _ _ _ _ X _ _ , 1926 s _ _ _ _ _ X _ _ , 1927 s _ _ _ _ _ X _ _ , 1928 s _ _ _ _ _ X _ _ , 1929 s _ _ _ _ _ X _ _ , 1930 s _ X _ _ _ X _ _ , 1931 s _ _ X X X _ _ _ , 1932 s _ _ _ _ _ _ _ _ , 1933 s _ _ _ _ _ _ _ _ , 1934 1935 /* 0x6b k */ 1936 s _ _ _ _ _ _ _ _ , 1937 s _ _ _ _ _ _ _ _ , 1938 s _ X _ _ _ _ _ _ , 1939 s _ X _ _ _ _ _ _ , 1940 s _ X _ _ _ _ _ _ , 1941 s _ X _ _ _ _ X _ , 1942 s _ X _ _ _ X _ _ , 1943 s _ X _ _ X _ _ _ , 1944 s _ X _ X _ _ _ _ , 1945 s _ X X _ X _ _ _ , 1946 s _ X _ _ _ X _ _ , 1947 s _ X _ _ _ _ X _ , 1948 s _ _ _ _ _ _ _ _ , 1949 s _ _ _ _ _ _ _ _ , 1950 s _ _ _ _ _ _ _ _ , 1951 s _ _ _ _ _ _ _ _ , 1952 1953 /* 0x6c l */ 1954 s _ _ _ _ _ _ _ _ , 1955 s _ _ _ _ _ _ _ _ , 1956 s _ _ _ X _ _ _ _ , 1957 s _ _ _ X _ _ _ _ , 1958 s _ _ _ X _ _ _ _ , 1959 s _ _ _ X _ _ _ _ , 1960 s _ _ _ X _ _ _ _ , 1961 s _ _ _ X _ _ _ _ , 1962 s _ _ _ X _ _ _ _ , 1963 s _ _ _ X _ _ _ _ , 1964 s _ _ _ X _ _ _ _ , 1965 s _ _ _ X _ _ _ _ , 1966 s _ _ _ _ _ _ _ _ , 1967 s _ _ _ _ _ _ _ _ , 1968 s _ _ _ _ _ _ _ _ , 1969 s _ _ _ _ _ _ _ _ , 1970 1971 /* 0x6d m */ 1972 s _ _ _ _ _ _ _ _ , 1973 s _ _ _ _ _ _ _ _ , 1974 s _ _ _ _ _ _ _ _ , 1975 s _ _ _ _ _ _ _ _ , 1976 s _ _ _ _ _ _ _ _ , 1977 s X X X _ X X _ _ , 1978 s X _ _ X _ _ X _ , 1979 s X _ _ X _ _ X _ , 1980 s X _ _ X _ _ X _ , 1981 s X _ _ X _ _ X _ , 1982 s X _ _ X _ _ X _ , 1983 s X _ _ X _ _ X _ , 1984 s _ _ _ _ _ _ _ _ , 1985 s _ _ _ _ _ _ _ _ , 1986 s _ _ _ _ _ _ _ _ , 1987 s _ _ _ _ _ _ _ _ , 1988 1989 /* 0x6e n */ 1990 s _ _ _ _ _ _ _ _ , 1991 s _ _ _ _ _ _ _ _ , 1992 s _ _ _ _ _ _ _ _ , 1993 s _ _ _ _ _ _ _ _ , 1994 s _ _ _ _ _ _ _ _ , 1995 s _ X X X X X _ _ , 1996 s _ X _ _ _ _ X _ , 1997 s _ X _ _ _ _ X _ , 1998 s _ X _ _ _ _ X _ , 1999 s _ X _ _ _ _ X _ , 2000 s _ X _ _ _ _ X _ , 2001 s _ X _ _ _ _ X _ , 2002 s _ _ _ _ _ _ _ _ , 2003 s _ _ _ _ _ _ _ _ , 2004 s _ _ _ _ _ _ _ _ , 2005 s _ _ _ _ _ _ _ _ , 2006 2007 /* 0x6f o */ 2008 s _ _ _ _ _ _ _ _ , 2009 s _ _ _ _ _ _ _ _ , 2010 s _ _ _ _ _ _ _ _ , 2011 s _ _ _ _ _ _ _ _ , 2012 s _ _ _ _ _ _ _ _ , 2013 s _ _ X X X X _ _ , 2014 s _ X _ _ _ _ X _ , 2015 s _ X _ _ _ _ X _ , 2016 s _ X _ _ _ _ X _ , 2017 s _ X _ _ _ _ X _ , 2018 s _ X _ _ _ _ X _ , 2019 s _ _ X X X X _ _ , 2020 s _ _ _ _ _ _ _ _ , 2021 s _ _ _ _ _ _ _ _ , 2022 s _ _ _ _ _ _ _ _ , 2023 s _ _ _ _ _ _ _ _ , 2024 2025 /* 0x70 p */ 2026 s _ _ _ _ _ _ _ _ , 2027 s _ _ _ _ _ _ _ _ , 2028 s _ _ _ _ _ _ _ _ , 2029 s _ _ _ _ _ _ _ _ , 2030 s _ _ _ _ _ _ _ _ , 2031 s _ X _ X X X _ _ , 2032 s _ X X _ _ _ X _ , 2033 s _ X _ _ _ _ X _ , 2034 s _ X _ _ _ _ X _ , 2035 s _ X _ _ _ _ X _ , 2036 s _ X X _ _ _ X _ , 2037 s _ X _ X X X _ _ , 2038 s _ X _ _ _ _ _ _ , 2039 s _ X _ _ _ _ _ _ , 2040 s _ _ _ _ _ _ _ _ , 2041 s _ _ _ _ _ _ _ _ , 2042 2043 /* 0x71 q */ 2044 s _ _ _ _ _ _ _ _ , 2045 s _ _ _ _ _ _ _ _ , 2046 s _ _ _ _ _ _ _ _ , 2047 s _ _ _ _ _ _ _ _ , 2048 s _ _ _ _ _ _ _ _ , 2049 s _ _ X X X _ X _ , 2050 s _ X _ _ _ X X _ , 2051 s _ X _ _ _ _ X _ , 2052 s _ X _ _ _ _ X _ , 2053 s _ X _ _ _ _ X _ , 2054 s _ X _ _ _ X X _ , 2055 s _ _ X X X _ X _ , 2056 s _ _ _ _ _ _ X _ , 2057 s _ _ _ _ _ _ X _ , 2058 s _ _ _ _ _ _ _ _ , 2059 s _ _ _ _ _ _ _ _ , 2060 2061 /* 0x72 r */ 2062 s _ _ _ _ _ _ _ _ , 2063 s _ _ _ _ _ _ _ _ , 2064 s _ _ _ _ _ _ _ _ , 2065 s _ _ _ _ _ _ _ _ , 2066 s _ _ _ _ _ _ _ _ , 2067 s _ X _ X X X _ _ , 2068 s _ X X _ _ _ X _ , 2069 s _ X _ _ _ _ _ _ , 2070 s _ X _ _ _ _ _ _ , 2071 s _ X _ _ _ _ _ _ , 2072 s _ X _ _ _ _ _ _ , 2073 s _ X _ _ _ _ _ _ , 2074 s _ _ _ _ _ _ _ _ , 2075 s _ _ _ _ _ _ _ _ , 2076 s _ _ _ _ _ _ _ _ , 2077 s _ _ _ _ _ _ _ _ , 2078 2079 /* 0x73 s */ 2080 s _ _ _ _ _ _ _ _ , 2081 s _ _ _ _ _ _ _ _ , 2082 s _ _ _ _ _ _ _ _ , 2083 s _ _ _ _ _ _ _ _ , 2084 s _ _ _ _ _ _ _ _ , 2085 s _ _ X X X X _ _ , 2086 s _ X _ _ _ _ X _ , 2087 s _ X _ _ _ _ _ _ , 2088 s _ _ X X X X _ _ , 2089 s _ _ _ _ _ _ X _ , 2090 s _ X _ _ _ _ X _ , 2091 s _ _ X X X X _ _ , 2092 s _ _ _ _ _ _ _ _ , 2093 s _ _ _ _ _ _ _ _ , 2094 s _ _ _ _ _ _ _ _ , 2095 s _ _ _ _ _ _ _ _ , 2096 2097 /* 0x74 t */ 2098 s _ _ _ _ _ _ _ _ , 2099 s _ _ _ _ _ _ _ _ , 2100 s _ _ _ _ _ _ _ _ , 2101 s _ _ X _ _ _ _ _ , 2102 s _ _ X _ _ _ _ _ , 2103 s _ X X X X _ _ _ , 2104 s _ _ X _ _ _ _ _ , 2105 s _ _ X _ _ _ _ _ , 2106 s _ _ X _ _ _ _ _ , 2107 s _ _ X _ _ _ _ _ , 2108 s _ _ X _ _ _ X _ , 2109 s _ _ _ X X X _ _ , 2110 s _ _ _ _ _ _ _ _ , 2111 s _ _ _ _ _ _ _ _ , 2112 s _ _ _ _ _ _ _ _ , 2113 s _ _ _ _ _ _ _ _ , 2114 2115 /* 0x75 u */ 2116 s _ _ _ _ _ _ _ _ , 2117 s _ _ _ _ _ _ _ _ , 2118 s _ _ _ _ _ _ _ _ , 2119 s _ _ _ _ _ _ _ _ , 2120 s _ _ _ _ _ _ _ _ , 2121 s _ X _ _ _ _ X _ , 2122 s _ X _ _ _ _ X _ , 2123 s _ X _ _ _ _ X _ , 2124 s _ X _ _ _ _ X _ , 2125 s _ X _ _ _ _ X _ , 2126 s _ X _ _ _ _ X _ , 2127 s _ _ X X X X X _ , 2128 s _ _ _ _ _ _ _ _ , 2129 s _ _ _ _ _ _ _ _ , 2130 s _ _ _ _ _ _ _ _ , 2131 s _ _ _ _ _ _ _ _ , 2132 2133 /* 0x76 v */ 2134 s _ _ _ _ _ _ _ _ , 2135 s _ _ _ _ _ _ _ _ , 2136 s _ _ _ _ _ _ _ _ , 2137 s _ _ _ _ _ _ _ _ , 2138 s _ _ _ _ _ _ _ _ , 2139 s _ X _ _ _ _ X _ , 2140 s _ X _ _ _ _ X _ , 2141 s _ X _ _ _ _ X _ , 2142 s _ X _ _ _ _ X _ , 2143 s _ X _ _ _ _ X _ , 2144 s _ _ X _ _ X _ _ , 2145 s _ _ _ X X _ _ _ , 2146 s _ _ _ _ _ _ _ _ , 2147 s _ _ _ _ _ _ _ _ , 2148 s _ _ _ _ _ _ _ _ , 2149 s _ _ _ _ _ _ _ _ , 2150 2151 /* 0x77 w */ 2152 s _ _ _ _ _ _ _ _ , 2153 s _ _ _ _ _ _ _ _ , 2154 s _ _ _ _ _ _ _ _ , 2155 s _ _ _ _ _ _ _ _ , 2156 s _ _ _ _ _ _ _ _ , 2157 s X _ _ _ _ _ X _ , 2158 s X _ _ _ _ _ X _ , 2159 s X _ _ _ _ _ X _ , 2160 s X _ _ X _ _ X _ , 2161 s X _ _ X _ _ X _ , 2162 s X _ X _ X _ X _ , 2163 s _ X _ _ _ X _ _ , 2164 s _ _ _ _ _ _ _ _ , 2165 s _ _ _ _ _ _ _ _ , 2166 s _ _ _ _ _ _ _ _ , 2167 s _ _ _ _ _ _ _ _ , 2168 2169 /* 0x78 x */ 2170 s _ _ _ _ _ _ _ _ , 2171 s _ _ _ _ _ _ _ _ , 2172 s _ _ _ _ _ _ _ _ , 2173 s _ _ _ _ _ _ _ _ , 2174 s _ _ _ _ _ _ _ _ , 2175 s _ X _ _ _ _ X _ , 2176 s _ X _ _ _ _ X _ , 2177 s _ _ X _ _ X _ _ , 2178 s _ _ _ X X _ _ _ , 2179 s _ _ X _ _ X _ _ , 2180 s _ X _ _ _ _ X _ , 2181 s _ X _ _ _ _ X _ , 2182 s _ _ _ _ _ _ _ _ , 2183 s _ _ _ _ _ _ _ _ , 2184 s _ _ _ _ _ _ _ _ , 2185 s _ _ _ _ _ _ _ _ , 2186 2187 /* 0x79 y */ 2188 s _ _ _ _ _ _ _ _ , 2189 s _ _ _ _ _ _ _ _ , 2190 s _ _ _ _ _ _ _ _ , 2191 s _ _ _ _ _ _ _ _ , 2192 s _ _ _ _ _ _ _ _ , 2193 s _ X _ _ _ _ X _ , 2194 s _ X _ _ _ _ X _ , 2195 s _ X _ _ _ _ X _ , 2196 s _ X _ _ _ _ X _ , 2197 s _ X _ _ _ _ X _ , 2198 s _ _ X X X X X _ , 2199 s _ _ _ _ _ _ X _ , 2200 s _ _ _ _ _ _ X _ , 2201 s _ _ X X X X _ _ , 2202 s _ _ _ _ _ _ _ _ , 2203 s _ _ _ _ _ _ _ _ , 2204 2205 /* 0x7a z */ 2206 s _ _ _ _ _ _ _ _ , 2207 s _ _ _ _ _ _ _ _ , 2208 s _ _ _ _ _ _ _ _ , 2209 s _ _ _ _ _ _ _ _ , 2210 s _ _ _ _ _ _ _ _ , 2211 s _ X X X X X X _ , 2212 s _ _ _ _ _ _ X _ , 2213 s _ _ _ _ _ X _ _ , 2214 s _ _ _ X X _ _ _ , 2215 s _ _ X _ _ _ _ _ , 2216 s _ X _ _ _ _ _ _ , 2217 s _ X X X X X X _ , 2218 s _ _ _ _ _ _ _ _ , 2219 s _ _ _ _ _ _ _ _ , 2220 s _ _ _ _ _ _ _ _ , 2221 s _ _ _ _ _ _ _ _ , 2222 2223 /* 0x7b { */ 2224 s _ _ _ _ _ _ _ _ , 2225 s _ _ _ _ _ _ _ _ , 2226 s _ _ _ _ X _ _ _ , 2227 s _ _ _ X _ _ _ _ , 2228 s _ _ _ X _ _ _ _ , 2229 s _ _ _ X _ _ _ _ , 2230 s _ _ X _ _ _ _ _ , 2231 s _ X _ _ _ _ _ _ , 2232 s _ _ X _ _ _ _ _ , 2233 s _ _ _ X _ _ _ _ , 2234 s _ _ _ X _ _ _ _ , 2235 s _ _ _ X _ _ _ _ , 2236 s _ _ _ _ X _ _ _ , 2237 s _ _ _ _ _ _ _ _ , 2238 s _ _ _ _ _ _ _ _ , 2239 s _ _ _ _ _ _ _ _ , 2240 2241 /* 0x7c | */ 2242 s _ _ _ _ _ _ _ _ , 2243 s _ _ _ X _ _ _ _ , 2244 s _ _ _ X _ _ _ _ , 2245 s _ _ _ X _ _ _ _ , 2246 s _ _ _ X _ _ _ _ , 2247 s _ _ _ X _ _ _ _ , 2248 s _ _ _ X _ _ _ _ , 2249 s _ _ _ X _ _ _ _ , 2250 s _ _ _ X _ _ _ _ , 2251 s _ _ _ X _ _ _ _ , 2252 s _ _ _ X _ _ _ _ , 2253 s _ _ _ X _ _ _ _ , 2254 s _ _ _ X _ _ _ _ , 2255 s _ _ _ X _ _ _ _ , 2256 s _ _ _ X _ _ _ _ , 2257 s _ _ _ _ _ _ _ _ , 2258 2259 /* 0x7d } */ 2260 s _ _ _ _ _ _ _ _ , 2261 s _ _ _ _ _ _ _ _ , 2262 s _ _ X _ _ _ _ _ , 2263 s _ _ _ X _ _ _ _ , 2264 s _ _ _ X _ _ _ _ , 2265 s _ _ _ X _ _ _ _ , 2266 s _ _ _ _ X _ _ _ , 2267 s _ _ _ _ _ X _ _ , 2268 s _ _ _ _ X _ _ _ , 2269 s _ _ _ X _ _ _ _ , 2270 s _ _ _ X _ _ _ _ , 2271 s _ _ _ X _ _ _ _ , 2272 s _ _ X _ _ _ _ _ , 2273 s _ _ _ _ _ _ _ _ , 2274 s _ _ _ _ _ _ _ _ , 2275 s _ _ _ _ _ _ _ _ , 2276 2277 /* 0x7e ~ */ 2278 s _ _ _ _ _ _ _ _ , 2279 s _ _ _ _ _ _ _ _ , 2280 s _ _ _ _ _ _ _ _ , 2281 s _ _ _ _ _ _ _ _ , 2282 s _ _ _ _ _ _ _ _ , 2283 s _ _ _ _ _ _ _ _ , 2284 s _ _ X _ _ _ X _ , 2285 s _ X _ X _ X _ _ , 2286 s X _ _ _ X _ _ _ , 2287 s _ _ _ _ _ _ _ _ , 2288 s _ _ _ _ _ _ _ _ , 2289 s _ _ _ _ _ _ _ _ , 2290 s _ _ _ _ _ _ _ _ , 2291 s _ _ _ _ _ _ _ _ , 2292 s _ _ _ _ _ _ _ _ , 2293 s _ _ _ _ _ _ _ _ , 2294 2295 /* 0x7f */ 2296 s _ _ _ _ _ _ _ _ , 2297 s _ _ _ _ _ _ _ _ , 2298 s _ _ _ _ _ _ _ _ , 2299 s _ _ _ _ _ _ _ _ , 2300 s _ _ _ _ _ _ _ _ , 2301 s _ _ _ _ _ _ _ _ , 2302 s _ _ _ _ _ _ _ _ , 2303 s _ _ _ _ _ _ _ _ , 2304 s _ _ _ _ _ _ _ _ , 2305 s _ _ _ _ _ _ _ _ , 2306 s _ _ _ _ _ _ _ _ , 2307 s _ _ _ _ _ _ _ _ , 2308 s _ _ _ _ _ _ _ _ , 2309 s _ _ _ _ _ _ _ _ , 2310 s _ _ _ _ _ _ _ _ , 2311 s _ _ _ _ _ _ _ _ , 2312 }; 2313 2314 #undef s 2315 #undef X 2316 #undef _
1 // ------------------ 汉字字模的数据结构定义 ------------------------ // 2 struct typFNT_GB16 // 汉字字模数据结构 3 { 4 unsigned char Index[3]; // 汉字内码索引 5 unsigned char Msk[32]; // 点阵码数据 6 }; 7 8 ///////////////////////////////////////////////////////////////////////// 9 // 汉字字模表 // 10 // 汉字库: 宋体16.dot,横向取模左高位,数据排列:从左到右从上到下 // 11 ///////////////////////////////////////////////////////////////////////// 12 code struct typFNT_GB16 codeGB_16[] = // 数据表 13 { 14 15 /*-- 文字: 上 --*/ 16 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 17 "上",0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF8,0x01,0x00, 18 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE,0x00,0x00, 19 20 /*-- 文字: 海 --*/ 21 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 22 "海",0x21,0x00,0x11,0x00,0x11,0xFE,0x02,0x00,0x97,0xF8,0x52,0x88,0x52,0x48,0x12,0x08, 23 0x2F,0xFE,0x22,0x88,0xE2,0x48,0x22,0x08,0x23,0xFE,0x20,0x08,0x20,0x28,0x20,0x10, 24 25 /*-- 文字: 浩 --*/ 26 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 27 "浩",0x20,0x40,0x10,0x40,0x12,0x40,0x03,0xFC,0x8A,0x40,0x4C,0x40,0x50,0x40,0x17,0xFE, 28 0x10,0x00,0x20,0x00,0xE3,0xFC,0x22,0x04,0x22,0x04,0x22,0x04,0x23,0xFC,0x22,0x04, 29 30 /*-- 文字: 豚 --*/ 31 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 32 "豚",0x00,0x00,0x7F,0xFE,0x48,0x40,0x48,0x88,0x79,0x8C,0x4E,0x50,0x48,0xA0,0x49,0x30, 33 0x7A,0x70,0x4C,0xA8,0x49,0x28,0x4A,0x26,0x4C,0x24,0x48,0x20,0xA8,0xA0,0x90,0x40, 34 35 /*-- 文字: 电 --*/ 36 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 37 "电",0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08, 38 0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x02,0x01,0x02,0x00,0xFE,0x00,0x00, 39 40 /*-- 文字: 子 --*/ 41 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 42 "子",0x00,0x00,0x3F,0xF0,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x01,0x00,0x01,0x04, 43 0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00, 44 45 /*-- 文字: 科 --*/ 46 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 47 "科",0x06,0x08,0x78,0x88,0x08,0x48,0x08,0x48,0xFE,0x08,0x18,0x88,0x1C,0x48,0x2A,0x48, 48 0x28,0x0E,0x48,0x78,0x8B,0x88,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, 49 50 /*-- 文字: 技 --*/ 51 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 52 "技",0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x14,0x20,0x19,0xFC,0x31,0x08, 53 0xD0,0x88,0x10,0x90,0x10,0x60,0x10,0x60,0x10,0x90,0x11,0x0E,0x56,0x04,0x20,0x00, 54 55 /*-- 文字: 有 --*/ 56 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 57 "有",0x01,0x00,0x01,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x0F,0xF0,0x18,0x10,0x28,0x10, 58 0x4F,0xF0,0x88,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,0x08,0x90,0x08,0x70,0x08,0x20, 59 60 /*-- 文字: 限 --*/ 61 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 62 "限",0x00,0x00,0xFB,0xF8,0x92,0x08,0x93,0xF8,0xA2,0x08,0xA2,0x08,0x93,0xF8,0x8A,0x80, 63 0x8A,0x48,0xAA,0x50,0x92,0x20,0x82,0x20,0x82,0x10,0x82,0x8E,0x83,0x04,0x82,0x00, 64 65 /*-- 文字: 公 --*/ 66 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 67 "公",0x00,0x00,0x04,0x40,0x06,0x40,0x04,0x40,0x08,0x20,0x08,0x10,0x10,0x18,0x22,0x0E, 68 0x43,0x04,0x02,0x00,0x04,0x20,0x08,0x10,0x11,0xF8,0x3F,0x18,0x10,0x10,0x00,0x00, 69 70 /*-- 文字: 司 --*/ 71 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 72 "司",0x00,0x00,0x3F,0xFC,0x00,0x04,0x00,0x04,0x7F,0xE4,0x00,0x04,0x00,0x04,0x3F,0xC4, 73 0x20,0x44,0x20,0x44,0x3F,0xC4,0x20,0x44,0x20,0x04,0x00,0x14,0x00,0x08,0x00,0x00, 74 75 /*-- 文字: 专 --*/ 76 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 77 "专",0x01,0x00,0x01,0x00,0x3F,0xF8,0x02,0x00,0x02,0x00,0xFF,0xFE,0x04,0x00,0x08,0x20, 78 0x0F,0xF0,0x00,0x20,0x00,0x40,0x02,0x80,0x01,0x00,0x00,0x80,0x00,0x40,0x00,0x00, 79 80 /*-- 文字: 业 --*/ 81 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 82 "业",0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x44,0x44,0x46,0x24,0x4C,0x24,0x48,0x14,0x50, 83 0x1C,0x50,0x14,0x60,0x04,0x40,0x04,0x40,0x04,0x44,0xFF,0xFE,0x00,0x00,0x00,0x00, 84 85 /*-- 文字: 开 --*/ 86 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 87 "开",0x00,0x00,0x7F,0xFE,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0xFF,0xFE,0x04,0x20, 88 0x04,0x20,0x04,0x20,0x08,0x20,0x08,0x20,0x10,0x20,0x20,0x20,0x40,0x20,0x00,0x00, 89 90 /*-- 文字: 发 --*/ 91 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 92 "发",0x02,0x00,0x22,0x40,0x22,0x30,0x22,0x10,0x7F,0xFE,0x24,0x00,0x04,0x00,0x07,0xE0, 93 0x0C,0x20,0x0A,0x20,0x0A,0x20,0x11,0x40,0x20,0x80,0x41,0x60,0x86,0x1C,0x18,0x08, 94 95 /*-- 文字: 板 --*/ 96 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 97 "板",0x10,0x1C,0x11,0xE0,0x11,0x00,0x11,0x00,0xFD,0x00,0x11,0xFC,0x39,0x84,0x35,0x48, 98 0x55,0x48,0x52,0x30,0x92,0x10,0x12,0x30,0x14,0x48,0x10,0x8E,0x11,0x04,0x00,0x00, 99 100 /*-- 文字: 工 --*/ 101 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 102 "工",0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00, 103 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00, 104 105 /*-- 文字: 控 --*/ 106 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 107 "控",0x10,0x00,0x10,0x20,0x10,0x10,0xFD,0xFE,0x11,0x04,0x10,0x50,0x14,0x8C,0x19,0x04, 108 0x30,0x00,0xD1,0xFC,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x53,0xFE,0x20,0x00, 109 110 /*-- 文字: 设 --*/ 111 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 112 "设",0x40,0x00,0x21,0xF0,0x31,0x10,0x21,0x10,0x01,0x10,0x01,0x10,0xE2,0x0E,0x25,0xF8, 113 0x21,0x08,0x21,0x08,0x20,0x90,0x20,0x90,0x28,0x60,0x30,0x90,0x23,0x0E,0x0C,0x04, 114 115 /*-- 文字: 备 --*/ 116 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 117 "备",0x08,0x00,0x0F,0xF0,0x08,0x20,0x14,0x20,0x22,0x40,0x41,0x80,0x02,0x40,0x0C,0x30, 118 0x30,0x1E,0xDF,0xF4,0x11,0x10,0x1F,0xF0,0x11,0x10,0x11,0x10,0x1F,0xF0,0x10,0x10, 119 120 /*-- 文字: 技 --*/ 121 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 122 "技",0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x14,0x20,0x19,0xFC,0x31,0x08, 123 0xD0,0x88,0x10,0x90,0x10,0x60,0x10,0x60,0x10,0x90,0x11,0x0E,0x56,0x04,0x20,0x00, 124 125 /*-- 文字: 术 --*/ 126 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 127 "术",0x01,0x00,0x01,0x20,0x01,0x10,0x01,0x00,0xFF,0xFE,0x01,0x00,0x03,0x80,0x05,0x40, 128 0x05,0x20,0x09,0x10,0x11,0x18,0x21,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00,0x00,0x00, 129 130 /*-- 文字: 支 --*/ 131 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 132 "支",0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x00,0x01,0x00,0x1F,0xF8,0x08,0x10, 133 0x04,0x20,0x04,0x20,0x02,0x40,0x01,0x80,0x02,0x40,0x0C,0x30,0x70,0x0E,0x00,0x04, 134 135 /*-- 文字: 持 --*/ 136 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 137 "持",0x10,0x40,0x10,0x40,0x13,0xFC,0xFC,0x40,0x10,0x40,0x17,0xFE,0x14,0x10,0x18,0x10, 138 0x37,0xFE,0xD0,0x10,0x11,0x10,0x10,0xD0,0x10,0x90,0x10,0x10,0x50,0x50,0x20,0x20, 139 140 /*-- 文字: 论 --*/ 141 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 142 "论",0x40,0x40,0x20,0x40,0x30,0xA0,0x20,0x90,0x01,0x08,0x02,0x06,0xE5,0x04,0x21,0x10, 143 0x21,0x38,0x21,0xC0,0x21,0x00,0x25,0x00,0x29,0x04,0x31,0x04,0x20,0xFC,0x00,0x00, 144 145 /*-- 文字: 坛 --*/ 146 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 147 "坛",0x00,0x00,0x11,0xFC,0x10,0x00,0x10,0x00,0x10,0x00,0xFC,0x00,0x13,0xFE,0x10,0x40, 148 0x10,0x60,0x10,0x80,0x1C,0x88,0x31,0x04,0xC2,0x7E,0x07,0xC6,0x02,0x04,0x00,0x00, 149 150 151 152 153 };
1 #include"reg52.h" 2 3 #define WINDOW_XADDR_START 0x0050 // Horizontal Start Address Set 4 #define WINDOW_XADDR_END 0x0051 // Horizontal End Address Set 5 #define WINDOW_YADDR_START 0x0052 // Vertical Start Address Set 6 #define WINDOW_YADDR_END 0x0053 // Vertical End Address Set 7 #define GRAM_XADDR 0x0020 // GRAM Horizontal Address Set 8 #define GRAM_YADDR 0x0021 // GRAM Vertical Address Set 9 #define GRAMWR 0x0022 // memory write 10 11 sbit CS=P2^2; //片选 12 sbit RES=P2^1; //复位 13 sbit RS=P2^4; //数据/命令选择 14 sbit RW=P2^5; 15 //数据口使用P0 16 //====================================================// 17 void main (void); 18 void ILI9325_Initial(void); 19 void show_colour_bar (void); 20 void Write_Cmd_Data(unsigned char x, unsigned int y); 21 void Write_Cmd(unsigned char DH,unsigned char DL); 22 void Write_Data(unsigned char DH,unsigned char DL); 23 void delayms(unsigned int tt); 24 void show_photo(void); 25 void Show_RGB (unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1,unsigned int Color); 26 unsigned char code pic[]; 27 void Write_Data_U16(unsigned int y); 28 static void LCD_SetPos(unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1); 29 void ClearScreen(unsigned int bColor); 30 void LCD_PutChar8x16(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor); 31 void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor); 32 void LCD_PutString(unsigned short x, unsigned short y, char *s, unsigned int fColor, unsigned int bColor); 33 34 void LCD_PutChar8x8(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor); 35 void PutGB1616(unsigned short x, unsigned short y, unsigned char c[2], unsigned int fColor,unsigned int bColor); 36 //================================================// 37 unsigned int w,o; 38 void main(void) 39 { 40 CS=1; 41 delayms(5); 42 RES=0; 43 delayms(5); 44 RES=1; 45 delayms(5); 46 ILI9325_Initial(); 47 48 while(1) 49 { 50 /*Show_RGB(0x0000); 51 Show_RGB(0xffff); 52 Show_RGB(0xf800); 53 Show_RGB(0x07e0); 54 Show_RGB(0x001f);*/ 55 56 //LCD_SetPos(48,68,29,69); 57 ClearScreen(0xf800);//用某种颜色刷屏 58 //Show_RGB (0,240,0,320,0xf800); 59 /*Show_RGB (0,120,0,160,0x001f); 60 Show_RGB (0,120,161,320,0xffff); 61 Show_RGB (121,240,161,320,0x07e0); 62 Show_RGB (121,240,0,160,0x0000); 63 */ 64 show_colour_bar();//显示7个横条的函数 65 66 67 //这里仅支持几个汉字,在gb1616里有定义,想更多要找汉字库 68 LCD_PutString(40,140,"1234567890",0x001f,0xf800);//放置string,位置,tring,前景,背景 69 LCD_PutString(0,160,"abcdefghijklmnopqistuvwxyz",0x001f,0xf800); 70 LCD_PutString(0,180,"`,./<>';:[]{}|?)(-=+*&^%$",0x001f,0xf800); 71 /**/ 72 //show_colour_bar(); 73 //show_photo(); 74 while(1); 75 } 76 } 77 /* 78 用某种颜色刷屏 79 参数:4位16进制数 80 */ 81 void ClearScreen(unsigned int bColor) 82 { 83 unsigned int i,j; 84 LCD_SetPos(0,240,0,320);//定义显示窗体,x0,x1,y0,y1 85 for (i=0;i<320;i++) 86 { 87 for (j=0;j<240;j++) 88 Write_Data_U16(bColor); 89 } 90 } 91 92 ///////////////////////////////////////////////////////////// 93 #include "8X16.h" 94 void LCD_PutChar8x16(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor) 95 { 96 unsigned int i,j; 97 LCD_SetPos(x,x+8-1,y,y+16-1); 98 for(i=0; i<16;i++) { 99 unsigned char m=Font8x16[c*16+i]; 100 for(j=0;j<8;j++) { 101 if((m&0x80)==0x80) { 102 Write_Data_U16(fColor); 103 } 104 else { 105 Write_Data_U16(bColor); 106 } 107 m<<=1; 108 } 109 } 110 } 111 void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor) { 112 LCD_PutChar8x16( x, y, c, fColor, bColor ); 113 } 114 ///////////////////////////////////////////////////////////// 115 #include "GB1616.h" //16*16汉字字模 116 117 void PutGB1616(unsigned short x, unsigned short y, unsigned char c[2], unsigned int fColor,unsigned int bColor){ 118 unsigned int i,j,k; 119 120 LCD_SetPos(x, x+16-1,y, y+16-1); 121 122 for (k=0;k<64;k++) { //64标示自建汉字库中的个数,循环查询内码 123 if ((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])){ 124 for(i=0;i<32;i++) { 125 unsigned short m=codeGB_16[k].Msk[i]; 126 for(j=0;j<8;j++) { 127 if((m&0x80)==0x80) { 128 Write_Data_U16(fColor); 129 } 130 else { 131 Write_Data_U16(bColor); 132 } 133 m<<=1; 134 } 135 } 136 } 137 } 138 } 139 /* 140 在屏上显示字符串 141 参数:x,y,*s,fColor,bColor 142 实现:遍历字符串,对于每一个字符判断是汉字还是字符,分别用PutGB1616(...)或LCD_PutChar(...)实现显示 143 */ 144 void LCD_PutString(unsigned short x, unsigned short y, unsigned char *s, unsigned int fColor, unsigned int bColor) { 145 unsigned char l=0; 146 while(*s){//遍历字符串 147 if(*s < 0x80)//非汉字 148 { 149 LCD_PutChar(x+l*8,y,*s,fColor,bColor); 150 s++;l++;//++1 151 } 152 else//汉字 153 { 154 PutGB1616(x+l*8,y,(unsigned char*)s,fColor,bColor); 155 s+=2;l+=2;//++2 156 } 157 } 158 } 159 160 //==================== 显示R G B 顔色 ====================// 161 /* 162 在特定矩形内显示颜色 163 参数:x0,x1,y0,y1,16进制颜色 164 */ 165 void Show_RGB (unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1,unsigned int Color) 166 { 167 unsigned int i,j; 168 //address_set(); 169 LCD_SetPos(x0,x1,y0,y1);//定义显示窗体[矩形] 170 for (i=y0;i<=y1;i++) 171 { 172 for (j=x0;j<=x1;j++) 173 Write_Data_U16(Color); 174 175 } 176 } 177 //====================== 显示彩条 ======================// 178 /* 179 显示7个彩条 180 */ 181 void show_colour_bar (void) 182 { 183 int V,H; 184 LCD_SetPos(0,240,0,320);//320x240 185 186 for(H=0;H<240;H++) 187 for(V=0;V<40;V++) 188 Write_Data(0xf8,0x00); 189 for(H=0;H<240;H++) 190 for(V=40;V<80;V++) 191 Write_Data(0x07,0xe0); 192 for(H=0;H<240;H++) 193 for(V=80;V<120;V++) 194 Write_Data(0x00,0x1f); 195 for(H=0;H<240;H++) 196 for(V=120;V<160;V++) 197 Write_Data(0xff,0xe0); 198 for(H=0;H<240;H++) 199 for(V=160;V<200;V++) 200 Write_Data(0xf8,0x1f); 201 for(H=0;H<240;H++) 202 for(V=200;V<240;V++) 203 Write_Data(0x07,0xff); 204 for(H=0;H<240;H++) 205 for(V=240;V<280;V++) 206 Write_Data(0xff,0xff); 207 for(H=0;H<240;H++) 208 for(V=280;V<320;V++) 209 Write_Data(0x00,0x00); 210 } 211 212 void show_photo(void) 213 { 214 unsigned char j; 215 unsigned int i; 216 unsigned long s=0; 217 218 LCD_SetPos(0,240,0,320);//320x240 219 220 for (i=0;i<75;i++) 221 { 222 for (j=0;j<240;j++) 223 Write_Data(0xff,0xff); 224 225 } 226 227 for (i=0;i<170;i++) 228 { 229 for (j=0;j<55;j++) 230 Write_Data(0xff,0xff); 231 232 for (j=0;j<130;j++) 233 Write_Data(pic[s++],pic[s++]); 234 235 for (j=0;j<55;j++) 236 Write_Data(0xff,0xff); 237 } 238 239 for (i=0;i<75;i++) 240 { 241 for (j=0;j<240;j++) 242 Write_Data(0xff,0xff); 243 244 } 245 246 } 247 248 //=======================================================// 249 void Write_Cmd_Data(unsigned char x,unsigned int y) 250 { 251 unsigned char m,n; 252 m=y>>8; 253 n=y; 254 Write_Cmd(0x00,x); 255 Write_Data(m,n); 256 } 257 /* 258 用4位16进制写数据 259 参数:4位16进制:如:0xf800 260 */ 261 void Write_Data_U16(unsigned int y) 262 { 263 unsigned char m,n; 264 m=y>>8; 265 n=y; 266 Write_Data(m,n);//H,L 267 } 268 /* 269 写命令函数 270 参数:DH,DL 271 功能: 272 */ 273 void Write_Cmd(unsigned char DH,unsigned char DL) 274 { 275 CS=0; 276 RS=0; 277 278 P0=DH; 279 RW=0; 280 RW=1; 281 282 P0=DL; 283 RW=0; 284 RW=1; 285 286 CS=1; 287 } 288 /* 289 写数据函数 290 参数:DH,DL 291 功能: 292 */ 293 void Write_Data(unsigned char DH,unsigned char DL) 294 { 295 CS=0; 296 RS=1; 297 298 P0=DH; 299 RW=0; 300 RW=1; 301 302 P0=DL; 303 RW=0; 304 RW=1; 305 306 CS=1; 307 } 308 //======================================================= 309 void delayms(unsigned int count) 310 { 311 int i,j; 312 for(i=0;i<count;i++) 313 { 314 for(j=0;j<260;j++); 315 } 316 } 317 318 319 320 //===================== 初始化代码 =======================// 321 322 void ILI9325_Initial(void) 323 { 324 delayms(50); 325 Write_Cmd_Data(0x0001,0x0100); 326 Write_Cmd_Data(0x0002,0x0700); 327 Write_Cmd_Data(0x0003,0x1030); 328 Write_Cmd_Data(0x0004,0x0000); 329 Write_Cmd_Data(0x0008,0x0207); 330 Write_Cmd_Data(0x0009,0x0000); 331 Write_Cmd_Data(0x000A,0x0000); 332 Write_Cmd_Data(0x000C,0x0000); 333 Write_Cmd_Data(0x000D,0x0000); 334 Write_Cmd_Data(0x000F,0x0000); 335 //power on sequence VGHVGL 336 Write_Cmd_Data(0x0010,0x0000); 337 Write_Cmd_Data(0x0011,0x0007); 338 Write_Cmd_Data(0x0012,0x0000); 339 Write_Cmd_Data(0x0013,0x0000); 340 //vgh 341 Write_Cmd_Data(0x0010,0x1290); 342 Write_Cmd_Data(0x0011,0x0227); 343 //delayms(100); 344 //vregiout 345 Write_Cmd_Data(0x0012,0x001d); //0x001b 346 //delayms(100); 347 //vom amplitude 348 Write_Cmd_Data(0x0013,0x1500); 349 //delayms(100); 350 //vom H 351 Write_Cmd_Data(0x0029,0x0018); 352 Write_Cmd_Data(0x002B,0x000D); 353 354 //gamma 355 Write_Cmd_Data(0x0030,0x0004); 356 Write_Cmd_Data(0x0031,0x0307); 357 Write_Cmd_Data(0x0032,0x0002);// 0006 358 Write_Cmd_Data(0x0035,0x0206); 359 Write_Cmd_Data(0x0036,0x0408); 360 Write_Cmd_Data(0x0037,0x0507); 361 Write_Cmd_Data(0x0038,0x0204);//0200 362 Write_Cmd_Data(0x0039,0x0707); 363 Write_Cmd_Data(0x003C,0x0405);// 0504 364 Write_Cmd_Data(0x003D,0x0F02); 365 //ram 366 Write_Cmd_Data(0x0050,0x0000); 367 Write_Cmd_Data(0x0051,0x00EF); 368 Write_Cmd_Data(0x0052,0x0000); 369 Write_Cmd_Data(0x0053,0x013F); 370 Write_Cmd_Data(0x0060,0xA700); 371 Write_Cmd_Data(0x0061,0x0001); 372 Write_Cmd_Data(0x006A,0x0000); 373 // 374 Write_Cmd_Data(0x0080,0x0000); 375 Write_Cmd_Data(0x0081,0x0000); 376 Write_Cmd_Data(0x0082,0x0000); 377 Write_Cmd_Data(0x0083,0x0000); 378 Write_Cmd_Data(0x0084,0x0000); 379 Write_Cmd_Data(0x0085,0x0000); 380 // 381 Write_Cmd_Data(0x0090,0x0010); 382 Write_Cmd_Data(0x0092,0x0600); 383 Write_Cmd_Data(0x0093,0x0003); 384 Write_Cmd_Data(0x0095,0x0110); 385 Write_Cmd_Data(0x0097,0x0000); 386 Write_Cmd_Data(0x0098,0x0000); 387 Write_Cmd_Data(0x0007,0x0133); 388 // Write_Cmd_Data(0x0022);// 389 } 390 /*===========================================================*/ 391 392 /************************************************************* 393 函数名称:LCD_DefineDispWindow 394 功 能:定义显示窗体 395 参 数: 396 x0: 窗体中X坐标中较小者 397 x1: 窗体中X坐标中较大者 398 y0: 窗体中Y坐标中较小者 399 y1: 窗体中Y坐标中较大者 400 返 回 值:无 401 *************************************************************/ 402 static void LCD_SetPos(unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1) 403 { 404 Write_Cmd_Data(WINDOW_XADDR_START,x0); 405 Write_Cmd_Data(WINDOW_XADDR_END,x1); 406 Write_Cmd_Data(WINDOW_YADDR_START,y0); 407 Write_Cmd_Data(WINDOW_YADDR_END,y1); 408 Write_Cmd_Data(GRAM_XADDR,x0); 409 Write_Cmd_Data(GRAM_YADDR,y0); 410 Write_Cmd (0x00,0x22);//LCD_WriteCMD(GRAMWR); 411 }