1 // license:BSD-3-Clause 2 // copyright-holders:Juergen Buchmueller 3 #ifndef MAME_CPU_Z180_Z180_H 4 #define MAME_CPU_Z180_Z180_H 5 6 #pragma once 7 8 #include "machine/z80daisy.h" 9 10 11 enum 12 { 13 Z180_PC, 14 Z180_SP, 15 Z180_AF, 16 Z180_BC, 17 Z180_DE, 18 Z180_HL, 19 Z180_IX, 20 Z180_IY, 21 Z180_A, 22 Z180_B, 23 Z180_C, 24 Z180_D, 25 Z180_E, 26 Z180_H, 27 Z180_L, 28 Z180_AF2, 29 Z180_BC2, 30 Z180_DE2, 31 Z180_HL2, 32 Z180_R, 33 Z180_I, 34 Z180_IM, 35 Z180_IFF1, 36 Z180_IFF2, 37 Z180_HALT, 38 Z180_DC0, 39 Z180_DC1, 40 Z180_DC2, 41 Z180_DC3, 42 Z180_CNTLA0, 43 Z180_CNTLA1, 44 Z180_CNTLB0, 45 Z180_CNTLB1, 46 Z180_STAT0, 47 Z180_STAT1, 48 Z180_TDR0, 49 Z180_TDR1, 50 Z180_RDR0, 51 Z180_RDR1, 52 Z180_CNTR, 53 Z180_TRDR, 54 Z180_TMDR0, 55 Z180_TMDR1, 56 Z180_RLDR0, 57 Z180_RLDR1, 58 Z180_TCR, 59 Z180_ASEXT0, 60 Z180_ASEXT1, 61 Z180_FRC, 62 Z180_ASTC0, 63 Z180_ASTC1, 64 Z180_CMR, 65 Z180_CCR, 66 Z180_SAR0, 67 Z180_DAR0, 68 Z180_BCR0, 69 Z180_MAR1, 70 Z180_IAR1, 71 Z180_BCR1, 72 Z180_DSTAT, 73 Z180_DMODE, 74 Z180_DCNTL, 75 Z180_IL, 76 Z180_ITC, 77 Z180_RCR, 78 Z180_CBR, 79 Z180_BBR, 80 Z180_CBAR, 81 Z180_OMCR, 82 Z180_IOCR, 83 Z180_IOLINES /* read/write I/O lines */ 84 }; 85 86 enum 87 { 88 Z180_TABLE_op, 89 Z180_TABLE_cb, 90 Z180_TABLE_ed, 91 Z180_TABLE_xy, 92 Z180_TABLE_xycb, 93 Z180_TABLE_ex /* cycles counts for taken jr/jp/call and interrupt latency (rst opcodes) */ 94 }; 95 96 // input lines 97 enum { 98 Z180_INPUT_LINE_IRQ0, /* Execute IRQ1 */ 99 Z180_INPUT_LINE_IRQ1, /* Execute IRQ1 */ 100 Z180_INPUT_LINE_IRQ2, /* Execute IRQ2 */ 101 Z180_INPUT_LINE_DREQ0, /* Start DMA0 */ 102 Z180_INPUT_LINE_DREQ1 /* Start DMA1 */ 103 }; 104 105 class z180_device : public cpu_device, public z80_daisy_chain_interface 106 { 107 public: 108 bool get_tend0(); 109 bool get_tend1(); 110 111 protected: 112 // construction/destruction 113 z180_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool extended_io, address_map_constructor internal_map); 114 115 // device-level overrides 116 virtual void device_start() override; 117 virtual void device_reset() override; 118 119 // device_execute_interface overrides execute_min_cycles()120 virtual uint32_t execute_min_cycles() const noexcept override { return 1; } execute_max_cycles()121 virtual uint32_t execute_max_cycles() const noexcept override { return 16; } execute_clocks_to_cycles(uint64_t clocks)122 virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + 2 - 1) / 2; } execute_cycles_to_clocks(uint64_t cycles)123 virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * 2); } execute_input_lines()124 virtual uint32_t execute_input_lines() const noexcept override { return 5; } execute_default_irq_vector(int inputnum)125 virtual uint32_t execute_default_irq_vector(int inputnum) const noexcept override { return 0xff; } execute_input_edge_triggered(int inputnum)126 virtual bool execute_input_edge_triggered(int inputnum) const noexcept override { return inputnum == INPUT_LINE_NMI; } 127 virtual void execute_run() override; 128 virtual void execute_burn(int32_t cycles) override; 129 virtual void execute_set_input(int inputnum, int state) override; 130 131 // device_memory_interface overrides 132 virtual space_config_vector memory_space_config() const override; 133 virtual bool memory_translate(int spacenum, int intention, offs_t &address) override; 134 135 // device_state_interface overrides 136 virtual void state_import(const device_state_entry &entry) override; 137 virtual void state_export(const device_state_entry &entry) override; 138 virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; 139 140 // device_disasm_interface overrides 141 virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; 142 143 virtual uint8_t z180_read_memory(offs_t addr); 144 virtual void z180_write_memory(offs_t addr, uint8_t data); 145 virtual uint8_t z180_internal_port_read(uint8_t port); 146 virtual void z180_internal_port_write(uint8_t port, uint8_t data); 147 148 address_space_config m_program_config; 149 address_space_config m_io_config; 150 address_space_config m_decrypted_opcodes_config; 151 152 void set_address_width(int bits); 153 154 private: memory_wait_states()155 int memory_wait_states() const { return (m_dcntl & 0xc0) >> 6; } io_wait_states()156 int io_wait_states() const { return (m_dcntl & 0x30) == 0 ? 0 : ((m_dcntl & 0x30) >> 4) + 1; } is_internal_io_address(uint16_t port)157 bool is_internal_io_address(uint16_t port) const { return ((port ^ m_iocr) & (m_extended_io ? 0xff80 : 0xffc0)) == 0; } 158 159 const bool m_extended_io; 160 161 PAIR m_PREPC,m_PC,m_SP,m_AF,m_BC,m_DE,m_HL,m_IX,m_IY; 162 PAIR m_AF2,m_BC2,m_DE2,m_HL2; 163 uint8_t m_R,m_R2,m_IFF1,m_IFF2,m_HALT,m_IM,m_I; 164 uint8_t m_tmdr_latch; // flag latched TMDR0H, TMDR1H values 165 uint8_t m_read_tcr_tmdr[2]; // flag to indicate that TCR or TMDR was read 166 uint32_t m_iol; // I/O line status bits 167 uint8_t m_asci_cntla[2]; // ASCI control register A ch 0-1 168 uint8_t m_asci_cntlb[2]; // ASCI control register B ch 0-1 169 uint8_t m_asci_stat[2]; // ASCI status register 0-1 170 uint8_t m_asci_tdr[2]; // ASCI transmit data register 0-1 171 uint8_t m_asci_rdr[2]; // ASCI receive data register 0-1 172 uint8_t m_csio_cntr; // CSI/O control/status register 173 uint8_t m_csio_trdr; // CSI/O transmit/receive register 174 PAIR16 m_tmdr[2]; // PRT data register ch 0-1 175 PAIR16 m_rldr[2]; // PRT reload register ch 0-1 176 uint8_t m_tcr; // PRT control register 177 uint8_t m_frc; // free running counter (also time base for ASCI, CSI/O & PRT) 178 uint8_t m_frc_prescale; // divide CPU clock by 10 179 PAIR m_dma_sar0; // DMA source address register ch 0 180 PAIR m_dma_dar0; // DMA destination address register ch 0 181 PAIR16 m_dma_bcr[2]; // DMA byte register ch 0-1 182 PAIR m_dma_mar1; // DMA memory address register ch 1 183 PAIR m_dma_iar1; // DMA I/O address register ch 1 184 uint8_t m_dstat; // DMA status register 185 uint8_t m_dmode; // DMA mode register 186 uint8_t m_dcntl; // DMA/WAIT control register 187 uint8_t m_il; // INT vector low register 188 uint8_t m_itc; // INT/TRAP control register 189 uint8_t m_rcr; // refresh control register 190 uint8_t m_mmu_cbr; // MMU common base register 191 uint8_t m_mmu_bbr; // MMU bank base register 192 uint8_t m_mmu_cbar; // MMU common/bank area register 193 uint8_t m_omcr; // operation mode control register 194 uint8_t m_iocr; // I/O control register 195 offs_t m_mmu[16]; // MMU address translation 196 uint8_t m_tmdrh[2]; // latched TMDR0H and TMDR1H values 197 uint16_t m_tmdr_value[2]; // TMDR values used byt PRT0 and PRT1 as down counter 198 uint8_t m_nmi_state; // NMI line state 199 uint8_t m_nmi_pending; // NMI pending 200 uint8_t m_irq_state[3]; // IRQ line states (INT0,INT1,INT2) 201 uint8_t m_int_pending[11 + 1]; // interrupt pending 202 uint8_t m_after_EI; // are we in the EI shadow? 203 uint32_t m_ea; 204 memory_access<20, 0, 0, ENDIANNESS_LITTLE>::cache m_cprogram, m_copcodes; 205 memory_access<20, 0, 0, ENDIANNESS_LITTLE>::specific m_program; 206 memory_access<16, 0, 0, ENDIANNESS_LITTLE>::specific m_io; 207 uint8_t m_rtemp; 208 uint32_t m_ioltemp; 209 int m_icount; 210 int m_extra_cycles; /* extra cpu cycles */ 211 uint8_t *m_cc[6]; 212 213 typedef void (z180_device::*opcode_func)(); 214 static const opcode_func s_z180ops[6][0x100]; 215 216 inline void z180_mmu(); 217 inline u8 RM(offs_t addr); 218 inline u8 IN(u16 port); 219 inline void OUT(u16 port, u8 value); 220 inline void RM16( offs_t addr, PAIR *r ); 221 inline void WM16( offs_t addr, PAIR *r ); 222 inline uint8_t ROP(); 223 inline uint8_t ARG(); 224 inline uint32_t ARG16(); 225 inline uint8_t INC(uint8_t value); 226 inline uint8_t DEC(uint8_t value); 227 inline uint8_t RLC(uint8_t value); 228 inline uint8_t RRC(uint8_t value); 229 inline uint8_t RL(uint8_t value); 230 inline uint8_t RR(uint8_t value); 231 inline uint8_t SLA(uint8_t value); 232 inline uint8_t SRA(uint8_t value); 233 inline uint8_t SLL(uint8_t value); 234 inline uint8_t SRL(uint8_t value); 235 inline uint8_t RES(uint8_t bit, uint8_t value); 236 inline uint8_t SET(uint8_t bit, uint8_t value); 237 inline int exec_op(const uint8_t opcode); 238 inline int exec_cb(const uint8_t opcode); 239 inline int exec_dd(const uint8_t opcode); 240 inline int exec_ed(const uint8_t opcode); 241 inline int exec_fd(const uint8_t opcode); 242 inline int exec_xycb(const uint8_t opcode); 243 int take_interrupt(int irq); 244 uint8_t z180_readcontrol(offs_t port); 245 void z180_writecontrol(offs_t port, uint8_t data); 246 int z180_dma0(int max_cycles); 247 int z180_dma1(); 248 void z180_write_iolines(uint32_t data); 249 void clock_timers(); 250 int check_interrupts(); 251 void handle_io_timers(int cycles); 252 253 void op_00(); 254 void op_01(); 255 void op_02(); 256 void op_03(); 257 void op_04(); 258 void op_05(); 259 void op_06(); 260 void op_07(); 261 void op_08(); 262 void op_09(); 263 void op_0a(); 264 void op_0b(); 265 void op_0c(); 266 void op_0d(); 267 void op_0e(); 268 void op_0f(); 269 void op_10(); 270 void op_11(); 271 void op_12(); 272 void op_13(); 273 void op_14(); 274 void op_15(); 275 void op_16(); 276 void op_17(); 277 void op_18(); 278 void op_19(); 279 void op_1a(); 280 void op_1b(); 281 void op_1c(); 282 void op_1d(); 283 void op_1e(); 284 void op_1f(); 285 void op_20(); 286 void op_21(); 287 void op_22(); 288 void op_23(); 289 void op_24(); 290 void op_25(); 291 void op_26(); 292 void op_27(); 293 void op_28(); 294 void op_29(); 295 void op_2a(); 296 void op_2b(); 297 void op_2c(); 298 void op_2d(); 299 void op_2e(); 300 void op_2f(); 301 void op_30(); 302 void op_31(); 303 void op_32(); 304 void op_33(); 305 void op_34(); 306 void op_35(); 307 void op_36(); 308 void op_37(); 309 void op_38(); 310 void op_39(); 311 void op_3a(); 312 void op_3b(); 313 void op_3c(); 314 void op_3d(); 315 void op_3e(); 316 void op_3f(); 317 void op_40(); 318 void op_41(); 319 void op_42(); 320 void op_43(); 321 void op_44(); 322 void op_45(); 323 void op_46(); 324 void op_47(); 325 void op_48(); 326 void op_49(); 327 void op_4a(); 328 void op_4b(); 329 void op_4c(); 330 void op_4d(); 331 void op_4e(); 332 void op_4f(); 333 void op_50(); 334 void op_51(); 335 void op_52(); 336 void op_53(); 337 void op_54(); 338 void op_55(); 339 void op_56(); 340 void op_57(); 341 void op_58(); 342 void op_59(); 343 void op_5a(); 344 void op_5b(); 345 void op_5c(); 346 void op_5d(); 347 void op_5e(); 348 void op_5f(); 349 void op_60(); 350 void op_61(); 351 void op_62(); 352 void op_63(); 353 void op_64(); 354 void op_65(); 355 void op_66(); 356 void op_67(); 357 void op_68(); 358 void op_69(); 359 void op_6a(); 360 void op_6b(); 361 void op_6c(); 362 void op_6d(); 363 void op_6e(); 364 void op_6f(); 365 void op_70(); 366 void op_71(); 367 void op_72(); 368 void op_73(); 369 void op_74(); 370 void op_75(); 371 void op_76(); 372 void op_77(); 373 void op_78(); 374 void op_79(); 375 void op_7a(); 376 void op_7b(); 377 void op_7c(); 378 void op_7d(); 379 void op_7e(); 380 void op_7f(); 381 void op_80(); 382 void op_81(); 383 void op_82(); 384 void op_83(); 385 void op_84(); 386 void op_85(); 387 void op_86(); 388 void op_87(); 389 void op_88(); 390 void op_89(); 391 void op_8a(); 392 void op_8b(); 393 void op_8c(); 394 void op_8d(); 395 void op_8e(); 396 void op_8f(); 397 void op_90(); 398 void op_91(); 399 void op_92(); 400 void op_93(); 401 void op_94(); 402 void op_95(); 403 void op_96(); 404 void op_97(); 405 void op_98(); 406 void op_99(); 407 void op_9a(); 408 void op_9b(); 409 void op_9c(); 410 void op_9d(); 411 void op_9e(); 412 void op_9f(); 413 void op_a0(); 414 void op_a1(); 415 void op_a2(); 416 void op_a3(); 417 void op_a4(); 418 void op_a5(); 419 void op_a6(); 420 void op_a7(); 421 void op_a8(); 422 void op_a9(); 423 void op_aa(); 424 void op_ab(); 425 void op_ac(); 426 void op_ad(); 427 void op_ae(); 428 void op_af(); 429 void op_b0(); 430 void op_b1(); 431 void op_b2(); 432 void op_b3(); 433 void op_b4(); 434 void op_b5(); 435 void op_b6(); 436 void op_b7(); 437 void op_b8(); 438 void op_b9(); 439 void op_ba(); 440 void op_bb(); 441 void op_bc(); 442 void op_bd(); 443 void op_be(); 444 void op_bf(); 445 void op_c0(); 446 void op_c1(); 447 void op_c2(); 448 void op_c3(); 449 void op_c4(); 450 void op_c5(); 451 void op_c6(); 452 void op_c7(); 453 void op_c8(); 454 void op_c9(); 455 void op_ca(); 456 void op_cb(); 457 void op_cc(); 458 void op_cd(); 459 void op_ce(); 460 void op_cf(); 461 void op_d0(); 462 void op_d1(); 463 void op_d2(); 464 void op_d3(); 465 void op_d4(); 466 void op_d5(); 467 void op_d6(); 468 void op_d7(); 469 void op_d8(); 470 void op_d9(); 471 void op_da(); 472 void op_db(); 473 void op_dc(); 474 void op_dd(); 475 void op_de(); 476 void op_df(); 477 void op_e0(); 478 void op_e1(); 479 void op_e2(); 480 void op_e3(); 481 void op_e4(); 482 void op_e5(); 483 void op_e6(); 484 void op_e7(); 485 void op_e8(); 486 void op_e9(); 487 void op_ea(); 488 void op_eb(); 489 void op_ec(); 490 void op_ed(); 491 void op_ee(); 492 void op_ef(); 493 void op_f0(); 494 void op_f1(); 495 void op_f2(); 496 void op_f3(); 497 void op_f4(); 498 void op_f5(); 499 void op_f6(); 500 void op_f7(); 501 void op_f8(); 502 void op_f9(); 503 void op_fa(); 504 void op_fb(); 505 void op_fc(); 506 void op_fd(); 507 void op_fe(); 508 void op_ff(); 509 void cb_00(); 510 void cb_01(); 511 void cb_02(); 512 void cb_03(); 513 void cb_04(); 514 void cb_05(); 515 void cb_06(); 516 void cb_07(); 517 void cb_08(); 518 void cb_09(); 519 void cb_0a(); 520 void cb_0b(); 521 void cb_0c(); 522 void cb_0d(); 523 void cb_0e(); 524 void cb_0f(); 525 void cb_10(); 526 void cb_11(); 527 void cb_12(); 528 void cb_13(); 529 void cb_14(); 530 void cb_15(); 531 void cb_16(); 532 void cb_17(); 533 void cb_18(); 534 void cb_19(); 535 void cb_1a(); 536 void cb_1b(); 537 void cb_1c(); 538 void cb_1d(); 539 void cb_1e(); 540 void cb_1f(); 541 void cb_20(); 542 void cb_21(); 543 void cb_22(); 544 void cb_23(); 545 void cb_24(); 546 void cb_25(); 547 void cb_26(); 548 void cb_27(); 549 void cb_28(); 550 void cb_29(); 551 void cb_2a(); 552 void cb_2b(); 553 void cb_2c(); 554 void cb_2d(); 555 void cb_2e(); 556 void cb_2f(); 557 void cb_30(); 558 void cb_31(); 559 void cb_32(); 560 void cb_33(); 561 void cb_34(); 562 void cb_35(); 563 void cb_36(); 564 void cb_37(); 565 void cb_38(); 566 void cb_39(); 567 void cb_3a(); 568 void cb_3b(); 569 void cb_3c(); 570 void cb_3d(); 571 void cb_3e(); 572 void cb_3f(); 573 void cb_40(); 574 void cb_41(); 575 void cb_42(); 576 void cb_43(); 577 void cb_44(); 578 void cb_45(); 579 void cb_46(); 580 void cb_47(); 581 void cb_48(); 582 void cb_49(); 583 void cb_4a(); 584 void cb_4b(); 585 void cb_4c(); 586 void cb_4d(); 587 void cb_4e(); 588 void cb_4f(); 589 void cb_50(); 590 void cb_51(); 591 void cb_52(); 592 void cb_53(); 593 void cb_54(); 594 void cb_55(); 595 void cb_56(); 596 void cb_57(); 597 void cb_58(); 598 void cb_59(); 599 void cb_5a(); 600 void cb_5b(); 601 void cb_5c(); 602 void cb_5d(); 603 void cb_5e(); 604 void cb_5f(); 605 void cb_60(); 606 void cb_61(); 607 void cb_62(); 608 void cb_63(); 609 void cb_64(); 610 void cb_65(); 611 void cb_66(); 612 void cb_67(); 613 void cb_68(); 614 void cb_69(); 615 void cb_6a(); 616 void cb_6b(); 617 void cb_6c(); 618 void cb_6d(); 619 void cb_6e(); 620 void cb_6f(); 621 void cb_70(); 622 void cb_71(); 623 void cb_72(); 624 void cb_73(); 625 void cb_74(); 626 void cb_75(); 627 void cb_76(); 628 void cb_77(); 629 void cb_78(); 630 void cb_79(); 631 void cb_7a(); 632 void cb_7b(); 633 void cb_7c(); 634 void cb_7d(); 635 void cb_7e(); 636 void cb_7f(); 637 void cb_80(); 638 void cb_81(); 639 void cb_82(); 640 void cb_83(); 641 void cb_84(); 642 void cb_85(); 643 void cb_86(); 644 void cb_87(); 645 void cb_88(); 646 void cb_89(); 647 void cb_8a(); 648 void cb_8b(); 649 void cb_8c(); 650 void cb_8d(); 651 void cb_8e(); 652 void cb_8f(); 653 void cb_90(); 654 void cb_91(); 655 void cb_92(); 656 void cb_93(); 657 void cb_94(); 658 void cb_95(); 659 void cb_96(); 660 void cb_97(); 661 void cb_98(); 662 void cb_99(); 663 void cb_9a(); 664 void cb_9b(); 665 void cb_9c(); 666 void cb_9d(); 667 void cb_9e(); 668 void cb_9f(); 669 void cb_a0(); 670 void cb_a1(); 671 void cb_a2(); 672 void cb_a3(); 673 void cb_a4(); 674 void cb_a5(); 675 void cb_a6(); 676 void cb_a7(); 677 void cb_a8(); 678 void cb_a9(); 679 void cb_aa(); 680 void cb_ab(); 681 void cb_ac(); 682 void cb_ad(); 683 void cb_ae(); 684 void cb_af(); 685 void cb_b0(); 686 void cb_b1(); 687 void cb_b2(); 688 void cb_b3(); 689 void cb_b4(); 690 void cb_b5(); 691 void cb_b6(); 692 void cb_b7(); 693 void cb_b8(); 694 void cb_b9(); 695 void cb_ba(); 696 void cb_bb(); 697 void cb_bc(); 698 void cb_bd(); 699 void cb_be(); 700 void cb_bf(); 701 void cb_c0(); 702 void cb_c1(); 703 void cb_c2(); 704 void cb_c3(); 705 void cb_c4(); 706 void cb_c5(); 707 void cb_c6(); 708 void cb_c7(); 709 void cb_c8(); 710 void cb_c9(); 711 void cb_ca(); 712 void cb_cb(); 713 void cb_cc(); 714 void cb_cd(); 715 void cb_ce(); 716 void cb_cf(); 717 void cb_d0(); 718 void cb_d1(); 719 void cb_d2(); 720 void cb_d3(); 721 void cb_d4(); 722 void cb_d5(); 723 void cb_d6(); 724 void cb_d7(); 725 void cb_d8(); 726 void cb_d9(); 727 void cb_da(); 728 void cb_db(); 729 void cb_dc(); 730 void cb_dd(); 731 void cb_de(); 732 void cb_df(); 733 void cb_e0(); 734 void cb_e1(); 735 void cb_e2(); 736 void cb_e3(); 737 void cb_e4(); 738 void cb_e5(); 739 void cb_e6(); 740 void cb_e7(); 741 void cb_e8(); 742 void cb_e9(); 743 void cb_ea(); 744 void cb_eb(); 745 void cb_ec(); 746 void cb_ed(); 747 void cb_ee(); 748 void cb_ef(); 749 void cb_f0(); 750 void cb_f1(); 751 void cb_f2(); 752 void cb_f3(); 753 void cb_f4(); 754 void cb_f5(); 755 void cb_f6(); 756 void cb_f7(); 757 void cb_f8(); 758 void cb_f9(); 759 void cb_fa(); 760 void cb_fb(); 761 void cb_fc(); 762 void cb_fd(); 763 void cb_fe(); 764 void cb_ff(); 765 void illegal_1(); 766 void dd_00(); 767 void dd_01(); 768 void dd_02(); 769 void dd_03(); 770 void dd_04(); 771 void dd_05(); 772 void dd_06(); 773 void dd_07(); 774 void dd_08(); 775 void dd_09(); 776 void dd_0a(); 777 void dd_0b(); 778 void dd_0c(); 779 void dd_0d(); 780 void dd_0e(); 781 void dd_0f(); 782 void dd_10(); 783 void dd_11(); 784 void dd_12(); 785 void dd_13(); 786 void dd_14(); 787 void dd_15(); 788 void dd_16(); 789 void dd_17(); 790 void dd_18(); 791 void dd_19(); 792 void dd_1a(); 793 void dd_1b(); 794 void dd_1c(); 795 void dd_1d(); 796 void dd_1e(); 797 void dd_1f(); 798 void dd_20(); 799 void dd_21(); 800 void dd_22(); 801 void dd_23(); 802 void dd_24(); 803 void dd_25(); 804 void dd_26(); 805 void dd_27(); 806 void dd_28(); 807 void dd_29(); 808 void dd_2a(); 809 void dd_2b(); 810 void dd_2c(); 811 void dd_2d(); 812 void dd_2e(); 813 void dd_2f(); 814 void dd_30(); 815 void dd_31(); 816 void dd_32(); 817 void dd_33(); 818 void dd_34(); 819 void dd_35(); 820 void dd_36(); 821 void dd_37(); 822 void dd_38(); 823 void dd_39(); 824 void dd_3a(); 825 void dd_3b(); 826 void dd_3c(); 827 void dd_3d(); 828 void dd_3e(); 829 void dd_3f(); 830 void dd_40(); 831 void dd_41(); 832 void dd_42(); 833 void dd_43(); 834 void dd_44(); 835 void dd_45(); 836 void dd_46(); 837 void dd_47(); 838 void dd_48(); 839 void dd_49(); 840 void dd_4a(); 841 void dd_4b(); 842 void dd_4c(); 843 void dd_4d(); 844 void dd_4e(); 845 void dd_4f(); 846 void dd_50(); 847 void dd_51(); 848 void dd_52(); 849 void dd_53(); 850 void dd_54(); 851 void dd_55(); 852 void dd_56(); 853 void dd_57(); 854 void dd_58(); 855 void dd_59(); 856 void dd_5a(); 857 void dd_5b(); 858 void dd_5c(); 859 void dd_5d(); 860 void dd_5e(); 861 void dd_5f(); 862 void dd_60(); 863 void dd_61(); 864 void dd_62(); 865 void dd_63(); 866 void dd_64(); 867 void dd_65(); 868 void dd_66(); 869 void dd_67(); 870 void dd_68(); 871 void dd_69(); 872 void dd_6a(); 873 void dd_6b(); 874 void dd_6c(); 875 void dd_6d(); 876 void dd_6e(); 877 void dd_6f(); 878 void dd_70(); 879 void dd_71(); 880 void dd_72(); 881 void dd_73(); 882 void dd_74(); 883 void dd_75(); 884 void dd_76(); 885 void dd_77(); 886 void dd_78(); 887 void dd_79(); 888 void dd_7a(); 889 void dd_7b(); 890 void dd_7c(); 891 void dd_7d(); 892 void dd_7e(); 893 void dd_7f(); 894 void dd_80(); 895 void dd_81(); 896 void dd_82(); 897 void dd_83(); 898 void dd_84(); 899 void dd_85(); 900 void dd_86(); 901 void dd_87(); 902 void dd_88(); 903 void dd_89(); 904 void dd_8a(); 905 void dd_8b(); 906 void dd_8c(); 907 void dd_8d(); 908 void dd_8e(); 909 void dd_8f(); 910 void dd_90(); 911 void dd_91(); 912 void dd_92(); 913 void dd_93(); 914 void dd_94(); 915 void dd_95(); 916 void dd_96(); 917 void dd_97(); 918 void dd_98(); 919 void dd_99(); 920 void dd_9a(); 921 void dd_9b(); 922 void dd_9c(); 923 void dd_9d(); 924 void dd_9e(); 925 void dd_9f(); 926 void dd_a0(); 927 void dd_a1(); 928 void dd_a2(); 929 void dd_a3(); 930 void dd_a4(); 931 void dd_a5(); 932 void dd_a6(); 933 void dd_a7(); 934 void dd_a8(); 935 void dd_a9(); 936 void dd_aa(); 937 void dd_ab(); 938 void dd_ac(); 939 void dd_ad(); 940 void dd_ae(); 941 void dd_af(); 942 void dd_b0(); 943 void dd_b1(); 944 void dd_b2(); 945 void dd_b3(); 946 void dd_b4(); 947 void dd_b5(); 948 void dd_b6(); 949 void dd_b7(); 950 void dd_b8(); 951 void dd_b9(); 952 void dd_ba(); 953 void dd_bb(); 954 void dd_bc(); 955 void dd_bd(); 956 void dd_be(); 957 void dd_bf(); 958 void dd_c0(); 959 void dd_c1(); 960 void dd_c2(); 961 void dd_c3(); 962 void dd_c4(); 963 void dd_c5(); 964 void dd_c6(); 965 void dd_c7(); 966 void dd_c8(); 967 void dd_c9(); 968 void dd_ca(); 969 void dd_cb(); 970 void dd_cc(); 971 void dd_cd(); 972 void dd_ce(); 973 void dd_cf(); 974 void dd_d0(); 975 void dd_d1(); 976 void dd_d2(); 977 void dd_d3(); 978 void dd_d4(); 979 void dd_d5(); 980 void dd_d6(); 981 void dd_d7(); 982 void dd_d8(); 983 void dd_d9(); 984 void dd_da(); 985 void dd_db(); 986 void dd_dc(); 987 void dd_dd(); 988 void dd_de(); 989 void dd_df(); 990 void dd_e0(); 991 void dd_e1(); 992 void dd_e2(); 993 void dd_e3(); 994 void dd_e4(); 995 void dd_e5(); 996 void dd_e6(); 997 void dd_e7(); 998 void dd_e8(); 999 void dd_e9(); 1000 void dd_ea(); 1001 void dd_eb(); 1002 void dd_ec(); 1003 void dd_ed(); 1004 void dd_ee(); 1005 void dd_ef(); 1006 void dd_f0(); 1007 void dd_f1(); 1008 void dd_f2(); 1009 void dd_f3(); 1010 void dd_f4(); 1011 void dd_f5(); 1012 void dd_f6(); 1013 void dd_f7(); 1014 void dd_f8(); 1015 void dd_f9(); 1016 void dd_fa(); 1017 void dd_fb(); 1018 void dd_fc(); 1019 void dd_fd(); 1020 void dd_fe(); 1021 void dd_ff(); 1022 void illegal_2(); 1023 void ed_00(); 1024 void ed_01(); 1025 void ed_02(); 1026 void ed_03(); 1027 void ed_04(); 1028 void ed_05(); 1029 void ed_06(); 1030 void ed_07(); 1031 void ed_08(); 1032 void ed_09(); 1033 void ed_0a(); 1034 void ed_0b(); 1035 void ed_0c(); 1036 void ed_0d(); 1037 void ed_0e(); 1038 void ed_0f(); 1039 void ed_10(); 1040 void ed_11(); 1041 void ed_12(); 1042 void ed_13(); 1043 void ed_14(); 1044 void ed_15(); 1045 void ed_16(); 1046 void ed_17(); 1047 void ed_18(); 1048 void ed_19(); 1049 void ed_1a(); 1050 void ed_1b(); 1051 void ed_1c(); 1052 void ed_1d(); 1053 void ed_1e(); 1054 void ed_1f(); 1055 void ed_20(); 1056 void ed_21(); 1057 void ed_22(); 1058 void ed_23(); 1059 void ed_24(); 1060 void ed_25(); 1061 void ed_26(); 1062 void ed_27(); 1063 void ed_28(); 1064 void ed_29(); 1065 void ed_2a(); 1066 void ed_2b(); 1067 void ed_2c(); 1068 void ed_2d(); 1069 void ed_2e(); 1070 void ed_2f(); 1071 void ed_30(); 1072 void ed_31(); 1073 void ed_32(); 1074 void ed_33(); 1075 void ed_34(); 1076 void ed_35(); 1077 void ed_36(); 1078 void ed_37(); 1079 void ed_38(); 1080 void ed_39(); 1081 void ed_3a(); 1082 void ed_3b(); 1083 void ed_3c(); 1084 void ed_3d(); 1085 void ed_3e(); 1086 void ed_3f(); 1087 void ed_40(); 1088 void ed_41(); 1089 void ed_42(); 1090 void ed_43(); 1091 void ed_44(); 1092 void ed_45(); 1093 void ed_46(); 1094 void ed_47(); 1095 void ed_48(); 1096 void ed_49(); 1097 void ed_4a(); 1098 void ed_4b(); 1099 void ed_4c(); 1100 void ed_4d(); 1101 void ed_4e(); 1102 void ed_4f(); 1103 void ed_50(); 1104 void ed_51(); 1105 void ed_52(); 1106 void ed_53(); 1107 void ed_54(); 1108 void ed_55(); 1109 void ed_56(); 1110 void ed_57(); 1111 void ed_58(); 1112 void ed_59(); 1113 void ed_5a(); 1114 void ed_5b(); 1115 void ed_5c(); 1116 void ed_5d(); 1117 void ed_5e(); 1118 void ed_5f(); 1119 void ed_60(); 1120 void ed_61(); 1121 void ed_62(); 1122 void ed_63(); 1123 void ed_64(); 1124 void ed_65(); 1125 void ed_66(); 1126 void ed_67(); 1127 void ed_68(); 1128 void ed_69(); 1129 void ed_6a(); 1130 void ed_6b(); 1131 void ed_6c(); 1132 void ed_6d(); 1133 void ed_6e(); 1134 void ed_6f(); 1135 void ed_70(); 1136 void ed_71(); 1137 void ed_72(); 1138 void ed_73(); 1139 void ed_74(); 1140 void ed_75(); 1141 void ed_76(); 1142 void ed_77(); 1143 void ed_78(); 1144 void ed_79(); 1145 void ed_7a(); 1146 void ed_7b(); 1147 void ed_7c(); 1148 void ed_7d(); 1149 void ed_7e(); 1150 void ed_7f(); 1151 void ed_80(); 1152 void ed_81(); 1153 void ed_82(); 1154 void ed_83(); 1155 void ed_84(); 1156 void ed_85(); 1157 void ed_86(); 1158 void ed_87(); 1159 void ed_88(); 1160 void ed_89(); 1161 void ed_8a(); 1162 void ed_8b(); 1163 void ed_8c(); 1164 void ed_8d(); 1165 void ed_8e(); 1166 void ed_8f(); 1167 void ed_90(); 1168 void ed_91(); 1169 void ed_92(); 1170 void ed_93(); 1171 void ed_94(); 1172 void ed_95(); 1173 void ed_96(); 1174 void ed_97(); 1175 void ed_98(); 1176 void ed_99(); 1177 void ed_9a(); 1178 void ed_9b(); 1179 void ed_9c(); 1180 void ed_9d(); 1181 void ed_9e(); 1182 void ed_9f(); 1183 void ed_a0(); 1184 void ed_a1(); 1185 void ed_a2(); 1186 void ed_a3(); 1187 void ed_a4(); 1188 void ed_a5(); 1189 void ed_a6(); 1190 void ed_a7(); 1191 void ed_a8(); 1192 void ed_a9(); 1193 void ed_aa(); 1194 void ed_ab(); 1195 void ed_ac(); 1196 void ed_ad(); 1197 void ed_ae(); 1198 void ed_af(); 1199 void ed_b0(); 1200 void ed_b1(); 1201 void ed_b2(); 1202 void ed_b3(); 1203 void ed_b4(); 1204 void ed_b5(); 1205 void ed_b6(); 1206 void ed_b7(); 1207 void ed_b8(); 1208 void ed_b9(); 1209 void ed_ba(); 1210 void ed_bb(); 1211 void ed_bc(); 1212 void ed_bd(); 1213 void ed_be(); 1214 void ed_bf(); 1215 void ed_c0(); 1216 void ed_c1(); 1217 void ed_c2(); 1218 void ed_c3(); 1219 void ed_c4(); 1220 void ed_c5(); 1221 void ed_c6(); 1222 void ed_c7(); 1223 void ed_c8(); 1224 void ed_c9(); 1225 void ed_ca(); 1226 void ed_cb(); 1227 void ed_cc(); 1228 void ed_cd(); 1229 void ed_ce(); 1230 void ed_cf(); 1231 void ed_d0(); 1232 void ed_d1(); 1233 void ed_d2(); 1234 void ed_d3(); 1235 void ed_d4(); 1236 void ed_d5(); 1237 void ed_d6(); 1238 void ed_d7(); 1239 void ed_d8(); 1240 void ed_d9(); 1241 void ed_da(); 1242 void ed_db(); 1243 void ed_dc(); 1244 void ed_dd(); 1245 void ed_de(); 1246 void ed_df(); 1247 void ed_e0(); 1248 void ed_e1(); 1249 void ed_e2(); 1250 void ed_e3(); 1251 void ed_e4(); 1252 void ed_e5(); 1253 void ed_e6(); 1254 void ed_e7(); 1255 void ed_e8(); 1256 void ed_e9(); 1257 void ed_ea(); 1258 void ed_eb(); 1259 void ed_ec(); 1260 void ed_ed(); 1261 void ed_ee(); 1262 void ed_ef(); 1263 void ed_f0(); 1264 void ed_f1(); 1265 void ed_f2(); 1266 void ed_f3(); 1267 void ed_f4(); 1268 void ed_f5(); 1269 void ed_f6(); 1270 void ed_f7(); 1271 void ed_f8(); 1272 void ed_f9(); 1273 void ed_fa(); 1274 void ed_fb(); 1275 void ed_fc(); 1276 void ed_fd(); 1277 void ed_fe(); 1278 void ed_ff(); 1279 void fd_00(); 1280 void fd_01(); 1281 void fd_02(); 1282 void fd_03(); 1283 void fd_04(); 1284 void fd_05(); 1285 void fd_06(); 1286 void fd_07(); 1287 void fd_08(); 1288 void fd_09(); 1289 void fd_0a(); 1290 void fd_0b(); 1291 void fd_0c(); 1292 void fd_0d(); 1293 void fd_0e(); 1294 void fd_0f(); 1295 void fd_10(); 1296 void fd_11(); 1297 void fd_12(); 1298 void fd_13(); 1299 void fd_14(); 1300 void fd_15(); 1301 void fd_16(); 1302 void fd_17(); 1303 void fd_18(); 1304 void fd_19(); 1305 void fd_1a(); 1306 void fd_1b(); 1307 void fd_1c(); 1308 void fd_1d(); 1309 void fd_1e(); 1310 void fd_1f(); 1311 void fd_20(); 1312 void fd_21(); 1313 void fd_22(); 1314 void fd_23(); 1315 void fd_24(); 1316 void fd_25(); 1317 void fd_26(); 1318 void fd_27(); 1319 void fd_28(); 1320 void fd_29(); 1321 void fd_2a(); 1322 void fd_2b(); 1323 void fd_2c(); 1324 void fd_2d(); 1325 void fd_2e(); 1326 void fd_2f(); 1327 void fd_30(); 1328 void fd_31(); 1329 void fd_32(); 1330 void fd_33(); 1331 void fd_34(); 1332 void fd_35(); 1333 void fd_36(); 1334 void fd_37(); 1335 void fd_38(); 1336 void fd_39(); 1337 void fd_3a(); 1338 void fd_3b(); 1339 void fd_3c(); 1340 void fd_3d(); 1341 void fd_3e(); 1342 void fd_3f(); 1343 void fd_40(); 1344 void fd_41(); 1345 void fd_42(); 1346 void fd_43(); 1347 void fd_44(); 1348 void fd_45(); 1349 void fd_46(); 1350 void fd_47(); 1351 void fd_48(); 1352 void fd_49(); 1353 void fd_4a(); 1354 void fd_4b(); 1355 void fd_4c(); 1356 void fd_4d(); 1357 void fd_4e(); 1358 void fd_4f(); 1359 void fd_50(); 1360 void fd_51(); 1361 void fd_52(); 1362 void fd_53(); 1363 void fd_54(); 1364 void fd_55(); 1365 void fd_56(); 1366 void fd_57(); 1367 void fd_58(); 1368 void fd_59(); 1369 void fd_5a(); 1370 void fd_5b(); 1371 void fd_5c(); 1372 void fd_5d(); 1373 void fd_5e(); 1374 void fd_5f(); 1375 void fd_60(); 1376 void fd_61(); 1377 void fd_62(); 1378 void fd_63(); 1379 void fd_64(); 1380 void fd_65(); 1381 void fd_66(); 1382 void fd_67(); 1383 void fd_68(); 1384 void fd_69(); 1385 void fd_6a(); 1386 void fd_6b(); 1387 void fd_6c(); 1388 void fd_6d(); 1389 void fd_6e(); 1390 void fd_6f(); 1391 void fd_70(); 1392 void fd_71(); 1393 void fd_72(); 1394 void fd_73(); 1395 void fd_74(); 1396 void fd_75(); 1397 void fd_76(); 1398 void fd_77(); 1399 void fd_78(); 1400 void fd_79(); 1401 void fd_7a(); 1402 void fd_7b(); 1403 void fd_7c(); 1404 void fd_7d(); 1405 void fd_7e(); 1406 void fd_7f(); 1407 void fd_80(); 1408 void fd_81(); 1409 void fd_82(); 1410 void fd_83(); 1411 void fd_84(); 1412 void fd_85(); 1413 void fd_86(); 1414 void fd_87(); 1415 void fd_88(); 1416 void fd_89(); 1417 void fd_8a(); 1418 void fd_8b(); 1419 void fd_8c(); 1420 void fd_8d(); 1421 void fd_8e(); 1422 void fd_8f(); 1423 void fd_90(); 1424 void fd_91(); 1425 void fd_92(); 1426 void fd_93(); 1427 void fd_94(); 1428 void fd_95(); 1429 void fd_96(); 1430 void fd_97(); 1431 void fd_98(); 1432 void fd_99(); 1433 void fd_9a(); 1434 void fd_9b(); 1435 void fd_9c(); 1436 void fd_9d(); 1437 void fd_9e(); 1438 void fd_9f(); 1439 void fd_a0(); 1440 void fd_a1(); 1441 void fd_a2(); 1442 void fd_a3(); 1443 void fd_a4(); 1444 void fd_a5(); 1445 void fd_a6(); 1446 void fd_a7(); 1447 void fd_a8(); 1448 void fd_a9(); 1449 void fd_aa(); 1450 void fd_ab(); 1451 void fd_ac(); 1452 void fd_ad(); 1453 void fd_ae(); 1454 void fd_af(); 1455 void fd_b0(); 1456 void fd_b1(); 1457 void fd_b2(); 1458 void fd_b3(); 1459 void fd_b4(); 1460 void fd_b5(); 1461 void fd_b6(); 1462 void fd_b7(); 1463 void fd_b8(); 1464 void fd_b9(); 1465 void fd_ba(); 1466 void fd_bb(); 1467 void fd_bc(); 1468 void fd_bd(); 1469 void fd_be(); 1470 void fd_bf(); 1471 void fd_c0(); 1472 void fd_c1(); 1473 void fd_c2(); 1474 void fd_c3(); 1475 void fd_c4(); 1476 void fd_c5(); 1477 void fd_c6(); 1478 void fd_c7(); 1479 void fd_c8(); 1480 void fd_c9(); 1481 void fd_ca(); 1482 void fd_cb(); 1483 void fd_cc(); 1484 void fd_cd(); 1485 void fd_ce(); 1486 void fd_cf(); 1487 void fd_d0(); 1488 void fd_d1(); 1489 void fd_d2(); 1490 void fd_d3(); 1491 void fd_d4(); 1492 void fd_d5(); 1493 void fd_d6(); 1494 void fd_d7(); 1495 void fd_d8(); 1496 void fd_d9(); 1497 void fd_da(); 1498 void fd_db(); 1499 void fd_dc(); 1500 void fd_dd(); 1501 void fd_de(); 1502 void fd_df(); 1503 void fd_e0(); 1504 void fd_e1(); 1505 void fd_e2(); 1506 void fd_e3(); 1507 void fd_e4(); 1508 void fd_e5(); 1509 void fd_e6(); 1510 void fd_e7(); 1511 void fd_e8(); 1512 void fd_e9(); 1513 void fd_ea(); 1514 void fd_eb(); 1515 void fd_ec(); 1516 void fd_ed(); 1517 void fd_ee(); 1518 void fd_ef(); 1519 void fd_f0(); 1520 void fd_f1(); 1521 void fd_f2(); 1522 void fd_f3(); 1523 void fd_f4(); 1524 void fd_f5(); 1525 void fd_f6(); 1526 void fd_f7(); 1527 void fd_f8(); 1528 void fd_f9(); 1529 void fd_fa(); 1530 void fd_fb(); 1531 void fd_fc(); 1532 void fd_fd(); 1533 void fd_fe(); 1534 void fd_ff(); 1535 void xycb_00(); 1536 void xycb_01(); 1537 void xycb_02(); 1538 void xycb_03(); 1539 void xycb_04(); 1540 void xycb_05(); 1541 void xycb_06(); 1542 void xycb_07(); 1543 void xycb_08(); 1544 void xycb_09(); 1545 void xycb_0a(); 1546 void xycb_0b(); 1547 void xycb_0c(); 1548 void xycb_0d(); 1549 void xycb_0e(); 1550 void xycb_0f(); 1551 void xycb_10(); 1552 void xycb_11(); 1553 void xycb_12(); 1554 void xycb_13(); 1555 void xycb_14(); 1556 void xycb_15(); 1557 void xycb_16(); 1558 void xycb_17(); 1559 void xycb_18(); 1560 void xycb_19(); 1561 void xycb_1a(); 1562 void xycb_1b(); 1563 void xycb_1c(); 1564 void xycb_1d(); 1565 void xycb_1e(); 1566 void xycb_1f(); 1567 void xycb_20(); 1568 void xycb_21(); 1569 void xycb_22(); 1570 void xycb_23(); 1571 void xycb_24(); 1572 void xycb_25(); 1573 void xycb_26(); 1574 void xycb_27(); 1575 void xycb_28(); 1576 void xycb_29(); 1577 void xycb_2a(); 1578 void xycb_2b(); 1579 void xycb_2c(); 1580 void xycb_2d(); 1581 void xycb_2e(); 1582 void xycb_2f(); 1583 void xycb_30(); 1584 void xycb_31(); 1585 void xycb_32(); 1586 void xycb_33(); 1587 void xycb_34(); 1588 void xycb_35(); 1589 void xycb_36(); 1590 void xycb_37(); 1591 void xycb_38(); 1592 void xycb_39(); 1593 void xycb_3a(); 1594 void xycb_3b(); 1595 void xycb_3c(); 1596 void xycb_3d(); 1597 void xycb_3e(); 1598 void xycb_3f(); 1599 void xycb_40(); 1600 void xycb_41(); 1601 void xycb_42(); 1602 void xycb_43(); 1603 void xycb_44(); 1604 void xycb_45(); 1605 void xycb_46(); 1606 void xycb_47(); 1607 void xycb_48(); 1608 void xycb_49(); 1609 void xycb_4a(); 1610 void xycb_4b(); 1611 void xycb_4c(); 1612 void xycb_4d(); 1613 void xycb_4e(); 1614 void xycb_4f(); 1615 void xycb_50(); 1616 void xycb_51(); 1617 void xycb_52(); 1618 void xycb_53(); 1619 void xycb_54(); 1620 void xycb_55(); 1621 void xycb_56(); 1622 void xycb_57(); 1623 void xycb_58(); 1624 void xycb_59(); 1625 void xycb_5a(); 1626 void xycb_5b(); 1627 void xycb_5c(); 1628 void xycb_5d(); 1629 void xycb_5e(); 1630 void xycb_5f(); 1631 void xycb_60(); 1632 void xycb_61(); 1633 void xycb_62(); 1634 void xycb_63(); 1635 void xycb_64(); 1636 void xycb_65(); 1637 void xycb_66(); 1638 void xycb_67(); 1639 void xycb_68(); 1640 void xycb_69(); 1641 void xycb_6a(); 1642 void xycb_6b(); 1643 void xycb_6c(); 1644 void xycb_6d(); 1645 void xycb_6e(); 1646 void xycb_6f(); 1647 void xycb_70(); 1648 void xycb_71(); 1649 void xycb_72(); 1650 void xycb_73(); 1651 void xycb_74(); 1652 void xycb_75(); 1653 void xycb_76(); 1654 void xycb_77(); 1655 void xycb_78(); 1656 void xycb_79(); 1657 void xycb_7a(); 1658 void xycb_7b(); 1659 void xycb_7c(); 1660 void xycb_7d(); 1661 void xycb_7e(); 1662 void xycb_7f(); 1663 void xycb_80(); 1664 void xycb_81(); 1665 void xycb_82(); 1666 void xycb_83(); 1667 void xycb_84(); 1668 void xycb_85(); 1669 void xycb_86(); 1670 void xycb_87(); 1671 void xycb_88(); 1672 void xycb_89(); 1673 void xycb_8a(); 1674 void xycb_8b(); 1675 void xycb_8c(); 1676 void xycb_8d(); 1677 void xycb_8e(); 1678 void xycb_8f(); 1679 void xycb_90(); 1680 void xycb_91(); 1681 void xycb_92(); 1682 void xycb_93(); 1683 void xycb_94(); 1684 void xycb_95(); 1685 void xycb_96(); 1686 void xycb_97(); 1687 void xycb_98(); 1688 void xycb_99(); 1689 void xycb_9a(); 1690 void xycb_9b(); 1691 void xycb_9c(); 1692 void xycb_9d(); 1693 void xycb_9e(); 1694 void xycb_9f(); 1695 void xycb_a0(); 1696 void xycb_a1(); 1697 void xycb_a2(); 1698 void xycb_a3(); 1699 void xycb_a4(); 1700 void xycb_a5(); 1701 void xycb_a6(); 1702 void xycb_a7(); 1703 void xycb_a8(); 1704 void xycb_a9(); 1705 void xycb_aa(); 1706 void xycb_ab(); 1707 void xycb_ac(); 1708 void xycb_ad(); 1709 void xycb_ae(); 1710 void xycb_af(); 1711 void xycb_b0(); 1712 void xycb_b1(); 1713 void xycb_b2(); 1714 void xycb_b3(); 1715 void xycb_b4(); 1716 void xycb_b5(); 1717 void xycb_b6(); 1718 void xycb_b7(); 1719 void xycb_b8(); 1720 void xycb_b9(); 1721 void xycb_ba(); 1722 void xycb_bb(); 1723 void xycb_bc(); 1724 void xycb_bd(); 1725 void xycb_be(); 1726 void xycb_bf(); 1727 void xycb_c0(); 1728 void xycb_c1(); 1729 void xycb_c2(); 1730 void xycb_c3(); 1731 void xycb_c4(); 1732 void xycb_c5(); 1733 void xycb_c6(); 1734 void xycb_c7(); 1735 void xycb_c8(); 1736 void xycb_c9(); 1737 void xycb_ca(); 1738 void xycb_cb(); 1739 void xycb_cc(); 1740 void xycb_cd(); 1741 void xycb_ce(); 1742 void xycb_cf(); 1743 void xycb_d0(); 1744 void xycb_d1(); 1745 void xycb_d2(); 1746 void xycb_d3(); 1747 void xycb_d4(); 1748 void xycb_d5(); 1749 void xycb_d6(); 1750 void xycb_d7(); 1751 void xycb_d8(); 1752 void xycb_d9(); 1753 void xycb_da(); 1754 void xycb_db(); 1755 void xycb_dc(); 1756 void xycb_dd(); 1757 void xycb_de(); 1758 void xycb_df(); 1759 void xycb_e0(); 1760 void xycb_e1(); 1761 void xycb_e2(); 1762 void xycb_e3(); 1763 void xycb_e4(); 1764 void xycb_e5(); 1765 void xycb_e6(); 1766 void xycb_e7(); 1767 void xycb_e8(); 1768 void xycb_e9(); 1769 void xycb_ea(); 1770 void xycb_eb(); 1771 void xycb_ec(); 1772 void xycb_ed(); 1773 void xycb_ee(); 1774 void xycb_ef(); 1775 void xycb_f0(); 1776 void xycb_f1(); 1777 void xycb_f2(); 1778 void xycb_f3(); 1779 void xycb_f4(); 1780 void xycb_f5(); 1781 void xycb_f6(); 1782 void xycb_f7(); 1783 void xycb_f8(); 1784 void xycb_f9(); 1785 void xycb_fa(); 1786 void xycb_fb(); 1787 void xycb_fc(); 1788 void xycb_fd(); 1789 void xycb_fe(); 1790 void xycb_ff(); 1791 }; 1792 1793 class z80180_device : public z180_device 1794 { 1795 public: 1796 // construction/destruction 1797 z80180_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 1798 }; 1799 1800 class hd64180rp_device : public z180_device 1801 { 1802 public: 1803 // construction/destruction 1804 hd64180rp_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 1805 }; 1806 1807 class z8s180_device : public z180_device 1808 { 1809 public: 1810 // construction/destruction 1811 z8s180_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 1812 1813 protected: 1814 z8s180_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); 1815 1816 // device-level overrides 1817 virtual void device_start() override; 1818 virtual void device_reset() override; 1819 1820 // device_execute_interface overrides execute_clocks_to_cycles(uint64_t clocks)1821 virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return BIT(m_cmr, 7) ? (clocks * 2) : BIT(m_ccr, 7) ? clocks : (clocks + 2 - 1) / 2; } execute_cycles_to_clocks(uint64_t cycles)1822 virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return BIT(m_cmr, 7) ? (cycles + 2 - 1) / 2 : BIT(m_ccr, 7) ? cycles : (cycles * 2); } 1823 1824 virtual uint8_t z180_internal_port_read(uint8_t port) override; 1825 virtual void z180_internal_port_write(uint8_t port, uint8_t data) override; 1826 1827 private: 1828 uint8_t m_asci_ext[2]; // ASCI extension control register 0-1 1829 PAIR16 m_asci_tc[2]; // ASCI time constant ch 0-1 1830 uint8_t m_cmr; // clock multiplier 1831 uint8_t m_ccr; // chip control register 1832 }; 1833 1834 class z80182_device : public z8s180_device 1835 { 1836 public: 1837 // construction/destruction 1838 z80182_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 1839 }; 1840 1841 DECLARE_DEVICE_TYPE(Z80180, z80180_device) 1842 DECLARE_DEVICE_TYPE(HD64180RP, hd64180rp_device) 1843 DECLARE_DEVICE_TYPE(Z8S180, z8s180_device) 1844 DECLARE_DEVICE_TYPE(Z80182, z80182_device) 1845 1846 #endif // MAME_CPU_Z180_Z180_H 1847