| 608 | } |
| 609 | |
| 610 | void smap_write16(u32 addr, u16 value) |
| 611 | { |
| 612 | if (addr >= SMAP_BD_TX_BASE && addr < (SMAP_BD_TX_BASE + SMAP_BD_SIZE)) |
| 613 | { |
| 614 | if (dev9.bd_swap) |
| 615 | value = (value >> 8) | (value << 8); |
| 616 | dev9Ru16(addr) = value; |
| 617 | /* |
| 618 | switch (addr & 0x7) |
| 619 | { |
| 620 | case 0: // ctrl_stat |
| 621 | DevCon.WriteLn("DEV9: TX_CTRL_STAT[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); |
| 622 | //hacky |
| 623 | dev9Ru16(addr) = value; |
| 624 | return; |
| 625 | case 2: // unknown |
| 626 | //DevCon.WriteLn("DEV9: TX_UNKNOWN[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); |
| 627 | dev9Ru16(addr) = value; |
| 628 | return; |
| 629 | case 4: // length |
| 630 | DevCon.WriteLn("DEV9: TX_LENGTH[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); |
| 631 | dev9Ru16(addr) = value; |
| 632 | return; |
| 633 | case 6: // pointer |
| 634 | DevCon.WriteLn("DEV9: TX_POINTER[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); |
| 635 | dev9Ru16(addr) = value; |
| 636 | return; |
| 637 | } |
| 638 | */ |
| 639 | return; |
| 640 | } |
| 641 | else if (addr >= SMAP_BD_RX_BASE && addr < (SMAP_BD_RX_BASE + SMAP_BD_SIZE)) |
| 642 | { |
| 643 | //int rx_index=(addr - SMAP_BD_RX_BASE)>>3; |
| 644 | if (dev9.bd_swap) |
| 645 | value = (value >> 8) | (value << 8); |
| 646 | dev9Ru16(addr) = value; |
| 647 | /* |
| 648 | switch (addr & 0x7) |
| 649 | { |
| 650 | case 0: // ctrl_stat |
| 651 | DevCon.WriteLn("DEV9: RX_CTRL_STAT[%d]: write %x", rx_index, value); |
| 652 | dev9Ru16(addr) = value; |
| 653 | if(value&0x8000) |
| 654 | { |
| 655 | DevCon.WriteLn("DEV9: * * PACKET READ COMPLETE: rd_ptr=%d, wr_ptr=%d", dev9Ru32(SMAP_R_RXFIFO_RD_PTR), dev9.rxfifo_wr_ptr); |
| 656 | } |
| 657 | return; |
| 658 | case 2: // unknown |
| 659 | //DevCon.WriteLn("DEV9: RX_UNKNOWN[%d]: write %x", rx_index, value); |
| 660 | dev9Ru16(addr) = value; |
| 661 | return; |
| 662 | case 4: // length |
| 663 | DevCon.WriteLn("DEV9: RX_LENGTH[%d]: write %x", rx_index, value); |
| 664 | dev9Ru16(addr) = value; |
| 665 | return; |
| 666 | case 6: // pointer |
| 667 | DevCon.WriteLn("DEV9: RX_POINTER[%d]: write %x", rx_index, value); |
no test coverage detected