trunk/src/mess/drivers/apc.c
| r19073 | r19074 | |
| 185 | 185 | static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text ) |
| 186 | 186 | { |
| 187 | 187 | apc_state *state = device->machine().driver_data<apc_state>(); |
| 188 | | int xi,yi; |
| 188 | int xi,yi,yi_trans; |
| 189 | 189 | int x; |
| 190 | 190 | UINT8 char_size; |
| 191 | 191 | // UINT8 interlace_on; |
| r19073 | r19074 | |
| 220 | 220 | |
| 221 | 221 | for(yi=0;yi<lr;yi++) |
| 222 | 222 | { |
| 223 | yi_trans = (yi==0)?lr-1:yi-1; |
| 223 | 224 | for(xi=0;xi<8;xi++) |
| 224 | 225 | { |
| 225 | 226 | int res_x,res_y; |
| r19073 | r19074 | |
| 232 | 233 | continue; |
| 233 | 234 | |
| 234 | 235 | // tile_data = secret ? 0 : (state->m_char_rom[tile*char_size+interlace_on*0x800+yi]); |
| 235 | | tile_data = (state->m_char_rom[(tile & 0x7f)+((tile & 0x80)<<4)+((yi & 0xf)*0x80)+((yi & 0x10)<<8)]); |
| 236 | /* |
| 237 | Addr bus: C BA98 7654 3210 |
| 238 | | |||| |\\\ \\\\- character number bits 0-6 |
| 239 | | |||| \--------- y' bit 0 |
| 240 | | |||\----------- y' bit 1 |
| 241 | | ||\------------ y' bit 2 |
| 242 | | |\------------- y' bit 3 |
| 243 | | \-------------- character number bit 7 |
| 244 | \---------------- y' bit 4 |
| 236 | 245 | |
| 246 | y to y' (assumed; this needs hardware tests since there could be one more 'blank' line between all char rows): |
| 247 | y = 0 1 2 3 ... 16 17 18 |
| 248 | y' = 18 0 1 2 ... 15 16 17 |
| 249 | |
| 250 | Data bus: 76543210 = pixels, in left->01234567->right order |
| 251 | */ |
| 252 | tile_data = (state->m_char_rom[(tile & 0x7f)+((tile & 0x80)<<4)+((yi_trans & 0xf)*0x80)+((yi_trans & 0x10)<<8)]); |
| 253 | |
| 237 | 254 | if(reverse) { tile_data^=0xff; } |
| 238 | 255 | if(u_line && yi == lr-1) { tile_data = 0xff; } |
| 239 | 256 | if(o_line && yi == 0) { tile_data = 0xff; } |