Previous 15994 Revisions Next

r7364 Monday 15th February, 2010 at 20:25:08 UTC by Robbbert
[SUPER80] Reduced the number of vs2008 warnings
[src/mess/video]super80.c

src/mess/video/super80.c
r7363r7364
1/* Super80.c written by Robbbert, 2005-2009. See the MESS wiki for documentation. */
1/* Super80.c written by Robbbert, 2005-2010. See the MESS wiki for documentation. */
22
33/* Notes on using MAME MC6845 Device (MMD).
44    1. Speed of MMD is about 20% slower than pre-MMD coding
r7363r7364
1616static UINT8 current_charset;   /* for super80m */
1717
1818static const UINT8 *FNT;
19static UINT8 chr,col,gfx,fg,bg;
20static UINT16 mem,x;
2119static UINT8 options;
2220extern UINT8 *super80_colorram;
2321
r7363r7364
122120            gfx = FNT[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
123121
124122            /* Display a scanline of a character (8 pixels) */
125            *p = ( gfx & 0x80 ) ? 1 : 0; p++;
126            *p = ( gfx & 0x40 ) ? 1 : 0; p++;
127            *p = ( gfx & 0x20 ) ? 1 : 0; p++;
128            *p = ( gfx & 0x10 ) ? 1 : 0; p++;
129            *p = ( gfx & 0x08 ) ? 1 : 0; p++;
130            *p = ( gfx & 0x04 ) ? 1 : 0; p++;
131            *p = ( gfx & 0x02 ) ? 1 : 0; p++;
132            *p = ( gfx & 0x01 ) ? 1 : 0; p++;
123            *p++ = ( gfx & 0x80 ) ? 1 : 0;
124            *p++ = ( gfx & 0x40 ) ? 1 : 0;
125            *p++ = ( gfx & 0x20 ) ? 1 : 0;
126            *p++ = ( gfx & 0x10 ) ? 1 : 0;
127            *p++ = ( gfx & 0x08 ) ? 1 : 0;
128            *p++ = ( gfx & 0x04 ) ? 1 : 0;
129            *p++ = ( gfx & 0x02 ) ? 1 : 0;
130            *p++ = ( gfx & 0x01 ) ? 1 : 0;
133131         }
134132      }
135133      ma+=32;
r7363r7364
163161            gfx = FNT[((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
164162
165163            /* Display a scanline of a character (8 pixels) */
166            *p = ( gfx & 0x80 ) ? 1 : 0; p++;
167            *p = ( gfx & 0x40 ) ? 1 : 0; p++;
168            *p = ( gfx & 0x20 ) ? 1 : 0; p++;
169            *p = ( gfx & 0x10 ) ? 1 : 0; p++;
170            *p = ( gfx & 0x08 ) ? 1 : 0; p++;
171            *p = ( gfx & 0x04 ) ? 1 : 0; p++;
172            *p = ( gfx & 0x02 ) ? 1 : 0; p++;
173            *p = ( gfx & 0x01 ) ? 1 : 0; p++;
164            *p++ = ( gfx & 0x80 ) ? 1 : 0;
165            *p++ = ( gfx & 0x40 ) ? 1 : 0;
166            *p++ = ( gfx & 0x20 ) ? 1 : 0;
167            *p++ = ( gfx & 0x10 ) ? 1 : 0;
168            *p++ = ( gfx & 0x08 ) ? 1 : 0;
169            *p++ = ( gfx & 0x04 ) ? 1 : 0;
170            *p++ = ( gfx & 0x02 ) ? 1 : 0;
171            *p++ = ( gfx & 0x01 ) ? 1 : 0;
174172         }
175173      }
176174      ma+=32;
r7363r7364
204202            gfx = FNT[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
205203
206204            /* Display a scanline of a character (8 pixels) */
207            *p = ( gfx & 0x80 ) ? 1 : 0; p++;
208            *p = ( gfx & 0x40 ) ? 1 : 0; p++;
209            *p = ( gfx & 0x20 ) ? 1 : 0; p++;
210            *p = ( gfx & 0x10 ) ? 1 : 0; p++;
211            *p = ( gfx & 0x08 ) ? 1 : 0; p++;
212            *p = ( gfx & 0x04 ) ? 1 : 0; p++;
213            *p = ( gfx & 0x02 ) ? 1 : 0; p++;
214            *p = ( gfx & 0x01 ) ? 1 : 0; p++;
205            *p++ = ( gfx & 0x80 ) ? 1 : 0;
206            *p++ = ( gfx & 0x40 ) ? 1 : 0;
207            *p++ = ( gfx & 0x20 ) ? 1 : 0;
208            *p++ = ( gfx & 0x10 ) ? 1 : 0;
209            *p++ = ( gfx & 0x08 ) ? 1 : 0;
210            *p++ = ( gfx & 0x04 ) ? 1 : 0;
211            *p++ = ( gfx & 0x02 ) ? 1 : 0;
212            *p++ = ( gfx & 0x01 ) ? 1 : 0;
215213         }
216214      }
217215      ma+=32;
r7363r7364
267265               gfx = FNT[0x1000 | ((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
268266
269267            /* Display a scanline of a character (8 pixels) */
270            *p = ( gfx & 0x80 ) ? fg : bg; p++;
271            *p = ( gfx & 0x40 ) ? fg : bg; p++;
272            *p = ( gfx & 0x20 ) ? fg : bg; p++;
273            *p = ( gfx & 0x10 ) ? fg : bg; p++;
274            *p = ( gfx & 0x08 ) ? fg : bg; p++;
275            *p = ( gfx & 0x04 ) ? fg : bg; p++;
276            *p = ( gfx & 0x02 ) ? fg : bg; p++;
277            *p = ( gfx & 0x01 ) ? fg : bg; p++;
268            *p++ = ( gfx & 0x80 ) ? fg : bg;
269            *p++ = ( gfx & 0x40 ) ? fg : bg;
270            *p++ = ( gfx & 0x20 ) ? fg : bg;
271            *p++ = ( gfx & 0x10 ) ? fg : bg;
272            *p++ = ( gfx & 0x08 ) ? fg : bg;
273            *p++ = ( gfx & 0x04 ) ? fg : bg;
274            *p++ = ( gfx & 0x02 ) ? fg : bg;
275            *p++ = ( gfx & 0x01 ) ? fg : bg;
278276         }
279277      }
280278      ma+=32;
r7363r7364
404402VIDEO_UPDATE( super80v )
405403{
406404   framecnt++;
407   speed = mc6845_reg[10]&0x20, flash = mc6845_reg[10]&0x40, bg=0;         // cursor modes
405   speed = mc6845_reg[10]&0x20, flash = mc6845_reg[10]&0x40;         // cursor modes
408406   cursor = (mc6845_reg[14]<<8) | mc6845_reg[15];               // get cursor position
409407   options=input_port_read(screen->machine, "CONFIG");
410408   output_set_value("cass_led",(super80_shared & 0x20) ? 1 : 0);
r7363r7364
414412
415413MC6845_UPDATE_ROW( super80v_update_row )
416414{
415   UINT8 chr,col,gfx,fg,bg=0;
416   UINT16 mem,x;
417417   UINT16  *p = BITMAP_ADDR16(bitmap, y, 0);
418418
419419   for (x = 0; x < x_count; x++)            // for each character
r7363r7364
452452      gfx = super80_pcgram[(chr<<4) | ra] ^ inv;
453453
454454      /* Display a scanline of a character (7 pixels) */
455      *p = ( gfx & 0x80 ) ? fg : bg; p++;
456      *p = ( gfx & 0x40 ) ? fg : bg; p++;
457      *p = ( gfx & 0x20 ) ? fg : bg; p++;
458      *p = ( gfx & 0x10 ) ? fg : bg; p++;
459      *p = ( gfx & 0x08 ) ? fg : bg; p++;
460      *p = ( gfx & 0x04 ) ? fg : bg; p++;
461      *p = ( gfx & 0x02 ) ? fg : bg; p++;
455      *p++ = ( gfx & 0x80 ) ? fg : bg;
456      *p++ = ( gfx & 0x40 ) ? fg : bg;
457      *p++ = ( gfx & 0x20 ) ? fg : bg;
458      *p++ = ( gfx & 0x10 ) ? fg : bg;
459      *p++ = ( gfx & 0x08 ) ? fg : bg;
460      *p++ = ( gfx & 0x04 ) ? fg : bg;
461      *p++ = ( gfx & 0x02 ) ? fg : bg;
462462   }
463463}
464464

Previous 15994 Revisions Next


© 1998-2018 The MESS Team