trunk/src/mess/video/upd7220.c
| r19055 | r19056 | |
| 1605 | 1605 | UINT32 addr, sad; |
| 1606 | 1606 | UINT16 len; |
| 1607 | 1607 | int im, wd, area; |
| 1608 | | int y, tsy = 0, bsy = 0; |
| 1608 | int y = 0, tsy = 0, bsy = 0; |
| 1609 | 1609 | |
| 1610 | | for (area = 0; area < 2; area++) |
| 1610 | for (area = 0; area < 4; area++) |
| 1611 | 1611 | { |
| 1612 | 1612 | get_graphics_partition(area, &sad, &len, &im, &wd); |
| 1613 | 1613 | |
| 1614 | | for (y = 0; y < len; y++) |
| 1614 | if (im || force_bitmap) |
| 1615 | 1615 | { |
| 1616 | | if (im || force_bitmap) |
| 1616 | get_graphics_partition(area, &sad, &len, &im, &wd); |
| 1617 | |
| 1618 | if(area >= 2) // TODO: correct? |
| 1619 | break; |
| 1620 | |
| 1621 | for (y = 0; y < len; y++) |
| 1617 | 1622 | { |
| 1618 | 1623 | addr = (sad & 0x3ffff) + (y * m_pitch * 2); |
| 1619 | 1624 | |
| 1620 | 1625 | if (m_display_cb) |
| 1621 | 1626 | draw_graphics_line(bitmap, addr, y + bsy, wd); |
| 1622 | 1627 | } |
| 1623 | | else |
| 1628 | } |
| 1629 | else |
| 1630 | { |
| 1631 | get_text_partition(area, &sad, &len, &im, &wd); |
| 1632 | |
| 1633 | if(m_lr) |
| 1624 | 1634 | { |
| 1625 | | /* TODO: text params are more limited compared to graphics */ |
| 1626 | | addr = (sad & 0x3ffff) + (y * m_pitch); |
| 1635 | for (y = 0; y < len; y+=m_lr) |
| 1636 | { |
| 1637 | addr = (sad & 0x3ffff) + ((y / m_lr) * m_pitch); |
| 1627 | 1638 | |
| 1628 | | if (m_draw_text_cb) |
| 1629 | | m_draw_text_cb(this, bitmap, addr, y + tsy, wd, m_pitch, 0, 0, m_aw * 8 - 1, len + bsy - 1, m_lr, m_dc, m_ead); |
| 1639 | if (m_draw_text_cb) |
| 1640 | m_draw_text_cb(this, bitmap, addr, (y + tsy) / m_lr, wd, m_pitch, 0, 0, m_aw * 8 - 1, len + bsy - 1, m_lr, m_dc, m_ead); |
| 1641 | } |
| 1630 | 1642 | } |
| 1631 | 1643 | } |
| 1632 | 1644 | |
| 1633 | 1645 | if (m_lr) |
| 1634 | | tsy += (y / m_lr); |
| 1646 | tsy += y; |
| 1635 | 1647 | bsy += y; |
| 1636 | 1648 | } |
| 1637 | 1649 | } |