Previous 199869 Revisions Next

r32933 Friday 24th October, 2014 at 21:20:10 UTC by Carl
upd7220: slanted chars [Carl]
[src/emu/video]upd7220.c
[src/mess/drivers]a5105.c apc.c dmv.c mz3500.c pc9801.c qx10.c vt240.c

trunk/src/emu/video/upd7220.c
r241444r241445
965965   int isize,psize;
966966   UINT16 tile_data = 0;
967967
968   LOG(("uPD7220 char check: %d %d %02x %08x %d %d\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc));
968   LOG(("uPD7220 char check: %d %d %02x %08x %d %d %02x\n",x,y,m_figs.m_dir,m_ead,m_figs.m_d,m_figs.m_dc,m_figs.m_figure_type));
969969
970970   isize = m_figs.m_d & 0x3ff;
971971   /* Guess: D has presumably upper bits for ysize, QX-10 relies on this (TODO: check this on any real HW) */
r241444r241445
985985               curpixel++;
986986            }
987987         }
988         x += x_dir[(m_figs.m_dir + 2) & 7];
989         y += y_dir[(m_figs.m_dir + 2) & 7];
988         if(m_figs.m_figure_type == 2)
989         {
990            x += x_dir[(m_figs.m_dir + 2) & 7];
991            y += y_dir[(m_figs.m_dir + 2) & 7];
992         }
993         else
994         {
995            x += x_dir[(m_figs.m_dir + 1) & 7];
996            y += y_dir[(m_figs.m_dir + 1) & 7];
997         }
990998      }
991999   }
9921000
r241444r241445
13321340      break;
13331341
13341342   case COMMAND_GCHRD: /* graphics character draw and area filling start */
1335      if(m_figs.m_figure_type == 2)
1343      if((m_figs.m_figure_type & 0xf) == 2)
13361344         draw_char(((m_ead % eff_pitch) << 4) | (m_dad & 0xf),(m_ead / eff_pitch));
13371345      else
13381346         logerror("uPD7220 '%s' Unimplemented command GCHRD %02x\n", tag(),m_figs.m_figure_type);
r241444r241445
13501358      break;
13511359
13521360   case COMMAND_CURD: /* cursor address read */
1361   {
1362      UINT16 dad = 1 << m_dad;
13531363      fifo_set_direction(FIFO_READ);
13541364
13551365      queue(m_ead & 0xff, 0);
13561366      queue((m_ead >> 8) & 0xff, 0);
13571367      queue(m_ead >> 16, 0);
1358      queue(m_dad & 0xff, 0);
1359      queue(m_dad >> 8, 0);
1368      queue(dad & 0xff, 0);
1369      queue(dad >> 8, 0);
13601370
13611371      m_sr |= UPD7220_SR_DATA_READY;
13621372      break;
1373   }
13631374
13641375   case COMMAND_LPRD: /* light pen address read */
13651376      fifo_set_direction(FIFO_READ);
r241444r241445
15301541         addr = sad + (y * m_pitch);
15311542
15321543         if (!m_draw_text_cb.isnull())
1533            m_draw_text_cb(bitmap, addr, y, wd, m_pitch, m_lr, m_dc, m_ead);
1544            m_draw_text_cb(bitmap, addr, (y * m_lr), wd, m_pitch, m_lr, m_dc, m_ead);
15341545      }
15351546
15361547      sy = y + 1;
r241444r241445
16011612               addr = (sad & 0x3ffff) + ((y / m_lr) * m_pitch);
16021613
16031614               if (!m_draw_text_cb.isnull())
1604                  m_draw_text_cb(bitmap, addr, (y + tsy) / m_lr, wd, m_pitch, m_lr, m_dc, m_ead);
1615                  m_draw_text_cb(bitmap, addr, y + tsy, wd, m_pitch, m_lr, m_dc, m_ead);
16051616            }
16061617         }
16071618      }
trunk/src/mess/drivers/a5105.c
r241444r241445
136136            int pen = (tile_data >> xi) & 1 ? color : 0;
137137
138138            res_x = x * 8 + xi;
139            res_y = y * lr + yi;
139            res_y = y + yi;
140140
141141            if(yi >= 8) { pen = 0; }
142142
trunk/src/mess/drivers/apc.c
r241444r241445
230230            int res_x,res_y;
231231
232232            res_x = (x*8+xi);
233            res_y = y*lr+yi;
233            res_y = y+yi;
234234
235235            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
236236               continue;
trunk/src/mess/drivers/dmv.c
r241444r241445
314314            int pen = (tile_data >> xi) & 1 ? 1 : 0;
315315
316316            res_x = x * 8 + xi;
317            res_y = y * lr + yi;
317            res_y = y + yi;
318318
319319            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
320320               continue;
trunk/src/mess/drivers/mz3500.c
r241444r241445
215215            }
216216
217217            res_x = x * 8 + xi;
218            res_y = y * lr + yi;
218            res_y = y + yi;
219219
220220            if(pen != -1)
221221            {
trunk/src/mess/drivers/pc9801.c
r241444r241445
926926               int res_x,res_y;
927927
928928               res_x = ((x+kanji_lr)*8+xi) * (m_video_ff[WIDTH40_REG]+1);
929               res_y = y*lr+yi - (m_txt_scroll_reg[3] & 0xf);
929               res_y = y+yi - (m_txt_scroll_reg[3] & 0xf);
930930
931931               if(!machine().first_screen()->visible_area().contains(res_x, res_y))
932932                  continue;
trunk/src/mess/drivers/qx10.c
r241444r241445
216216            int res_x,res_y;
217217
218218            res_x = x * 8 + xi;
219            res_y = y * lr + yi;
219            res_y = y + yi;
220220
221221            if(!machine().first_screen()->visible_area().contains(res_x, res_y))
222222               continue;
trunk/src/mess/drivers/vt240.c
r241444r241445
7979            if(yi >= 8) { pen = 0; }
8080
8181            res_x = x * 8 + xi;
82            res_y = y * lr + yi;
82            res_y = y + yi;
8383
8484            if(res_x > screen_max_x || res_y > screen_max_y)
8585               continue;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team