trunk/src/mess/machine/esqvfd.c
| r20069 | r20070 | |
| 331 | 331 | |
| 332 | 332 | void esq2x40_sq1_t::write_char(int data) |
| 333 | 333 | { |
| 334 | if (data == 0x09) // musical note |
| 335 | { |
| 336 | data = '^'; // approximate for now |
| 337 | } |
| 338 | |
| 334 | 339 | if (m_Wait87Shift) |
| 335 | 340 | { |
| 336 | | // printf("87Shift got %02x\n", data); |
| 337 | | if (data == 0x00) // clear |
| 338 | | { |
| 339 | | m_cursx = m_cursy = 0; |
| 340 | | memset(m_chars, 0, sizeof(m_chars)); |
| 341 | | memset(m_attrs, 0, sizeof(m_attrs)); |
| 342 | | memset(m_dirty, 1, sizeof(m_dirty)); |
| 343 | | } |
| 344 | | |
| 341 | m_cursy = (data >> 4) & 0xf; |
| 342 | m_cursx = data & 0xf; |
| 345 | 343 | m_Wait87Shift = false; |
| 346 | 344 | } |
| 345 | else if (m_Wait88Shift) |
| 346 | { |
| 347 | m_Wait88Shift = false; |
| 348 | } |
| 347 | 349 | else if ((data >= 0x20) && (data <= 0x7f)) |
| 348 | 350 | { |
| 349 | 351 | m_chars[m_cursy][m_cursx] = data - ' '; |
| r20069 | r20070 | |
| 369 | 371 | { |
| 370 | 372 | m_Wait87Shift = true; |
| 371 | 373 | } |
| 374 | else if (data == 0x88) |
| 375 | { |
| 376 | m_Wait88Shift = true; |
| 377 | } |
| 372 | 378 | else |
| 373 | 379 | { |
| 374 | 380 | // printf("SQ-1 unhandled display char %02x\n", data); |
| r20069 | r20070 | |
| 380 | 386 | m_rows = 2; |
| 381 | 387 | m_cols = 40; |
| 382 | 388 | m_Wait87Shift = false; |
| 389 | m_Wait88Shift = false; |
| 383 | 390 | } |