Previous 199869 Revisions Next

r36434 Sunday 15th March, 2015 at 16:46:47 UTC by hap
update tispeak.c display_update
[src/mess/drivers]hh_hmcs40.c hh_pic16.c hh_tms1k.c hh_ucom4.c ticalc1x.c tispeak.c

trunk/src/mess/drivers/hh_hmcs40.c
r244945r244946
8383   UINT64 m_plate;                     // VFD current column data
8484   
8585   UINT64 m_display_state[0x20];       // display matrix rows data
86   UINT16 m_7seg_mask[0x20];           // if not 0, display matrix row is a 7seg, mask indicates connected segments
86   UINT16 m_display_segmask[0x20];     // if not 0, display matrix row is a digit, mask indicates connected segments
8787   UINT64 m_display_cache[0x20];       // (internal use)
8888   UINT8 m_display_decay[0x20][0x40];  // (internal use)
8989
r244945r244946
104104   memset(m_display_state, 0, sizeof(m_display_state));
105105   memset(m_display_cache, 0, sizeof(m_display_cache));
106106   memset(m_display_decay, 0, sizeof(m_display_decay));
107   memset(m_7seg_mask, 0, sizeof(m_7seg_mask));
107   memset(m_display_segmask, 0, sizeof(m_display_segmask));
108108   
109109   m_inp_mux = 0;
110110   m_grid = 0;
r244945r244946
118118   save_item(NAME(m_display_state));
119119   save_item(NAME(m_display_cache));
120120   save_item(NAME(m_display_decay));
121   save_item(NAME(m_7seg_mask));
121   save_item(NAME(m_display_segmask));
122122
123123   save_item(NAME(m_inp_mux));
124124   save_item(NAME(m_grid));
r244945r244946
160160   for (int y = 0; y < m_display_maxy; y++)
161161      if (m_display_cache[y] != active_state[y])
162162      {
163         if (m_7seg_mask[y] != 0)
164            output_set_digit_value(y, active_state[y] & m_7seg_mask[y]);
163         if (m_display_segmask[y] != 0)
164            output_set_digit_value(y, active_state[y] & m_display_segmask[y]);
165165
166166         const int mul = (m_display_maxx <= 10) ? 10 : 100;
167167         for (int x = 0; x < m_display_maxx; x++)
trunk/src/mess/drivers/hh_pic16.c
r244945r244946
5959   int m_display_maxx;                 // display matrix number of columns
6060   
6161   UINT32 m_display_state[0x20];       // display matrix rows data
62   UINT16 m_7seg_mask[0x20];           // if not 0, display matrix row is a 7seg, mask indicates connected segments
62   UINT16 m_display_segmask[0x20];     // if not 0, display matrix row is a digit, mask indicates connected segments
6363   UINT32 m_display_cache[0x20];       // (internal use)
6464   UINT8 m_display_decay[0x20][0x20];  // (internal use)
6565
r244945r244946
7878   memset(m_display_state, 0, sizeof(m_display_state));
7979   memset(m_display_cache, 0, sizeof(m_display_cache));
8080   memset(m_display_decay, 0, sizeof(m_display_decay));
81   memset(m_7seg_mask, 0, sizeof(m_7seg_mask));
81   memset(m_display_segmask, 0, sizeof(m_display_segmask));
8282   
8383   m_b = 0;
8484   m_c = 0;
r244945r244946
9191   save_item(NAME(m_display_state));
9292   save_item(NAME(m_display_cache));
9393   save_item(NAME(m_display_decay));
94   save_item(NAME(m_7seg_mask));
94   save_item(NAME(m_display_segmask));
9595
9696   save_item(NAME(m_b));
9797   save_item(NAME(m_c));
r244945r244946
132132   for (int y = 0; y < m_display_maxy; y++)
133133      if (m_display_cache[y] != active_state[y])
134134      {
135         if (m_7seg_mask[y] != 0)
136            output_set_digit_value(y, active_state[y] & m_7seg_mask[y]);
135         if (m_display_segmask[y] != 0)
136            output_set_digit_value(y, active_state[y] & m_display_segmask[y]);
137137
138138         const int mul = (m_display_maxx <= 10) ? 10 : 100;
139139         for (int x = 0; x < m_display_maxx; x++)
r244945r244946
199199   m_display_maxx = 7;
200200   m_display_maxy = 2;
201201   
202   m_7seg_mask[offset] = 0x7f;
202   m_display_segmask[offset] = 0x7f;
203203   m_display_state[offset] = ~data & 0x7f;
204204   display_update();
205205}
trunk/src/mess/drivers/hh_tms1k.c
r244945r244946
126126   int m_display_maxx;                 // display matrix number of columns
127127   
128128   UINT32 m_display_state[0x20];       // display matrix rows data
129   UINT16 m_7seg_mask[0x20];           // if not 0, display matrix row is a 7seg, mask indicates connected segments
129   UINT16 m_display_segmask[0x20];     // if not 0, display matrix row is a digit, mask indicates connected segments
130130   UINT32 m_display_cache[0x20];       // (internal use)
131131   UINT8 m_display_decay[0x20][0x20];  // (internal use)
132132
r244945r244946
215215   memset(m_display_state, 0, sizeof(m_display_state));
216216   memset(m_display_cache, 0, sizeof(m_display_cache));
217217   memset(m_display_decay, 0, sizeof(m_display_decay));
218   memset(m_7seg_mask, 0, sizeof(m_7seg_mask));
218   memset(m_display_segmask, 0, sizeof(m_display_segmask));
219219   
220220   m_o = 0;
221221   m_r = 0;
r244945r244946
230230   save_item(NAME(m_display_state));
231231   save_item(NAME(m_display_cache));
232232   save_item(NAME(m_display_decay));
233   save_item(NAME(m_7seg_mask));
233   save_item(NAME(m_display_segmask));
234234
235235   save_item(NAME(m_o));
236236   save_item(NAME(m_r));
r244945r244946
291291   for (int y = 0; y < m_display_maxy; y++)
292292      if (m_display_cache[y] != active_state[y])
293293      {
294         if (m_7seg_mask[y] != 0)
295            output_set_digit_value(y, active_state[y] & m_7seg_mask[y]);
294         if (m_display_segmask[y] != 0)
295            output_set_digit_value(y, active_state[y] & m_display_segmask[y]);
296296
297297         const int mul = (m_display_maxx <= 10) ? 10 : 100;
298298         for (int x = 0; x < m_display_maxx; x++)
r244945r244946
395395   // R0-R7: 7seg leds
396396   for (int y = 0; y < 8; y++)
397397   {
398      m_7seg_mask[y] = 0x7f;
398      m_display_segmask[y] = 0x7f;
399399      m_display_state[y] = (m_r >> y & 1) ? (m_o >> 1) : 0;
400400   }
401401
r244945r244946
558558   // R8,R9: select digit
559559   for (int y = 0; y < 2; y++)
560560   {
561      m_7seg_mask[y] = 0x7f;
561      m_display_segmask[y] = 0x7f;
562562      m_display_state[y] = (m_r >> (y + 8) & 1) ? m_o : 0;
563563   }
564564   
r244945r244946
705705   // R5,7,8,9 are 7segs
706706   for (int y = 0; y < 10; y++)
707707      if (y >= 5 && y <= 9 && y != 6)
708         m_7seg_mask[y] = 0x7f;
708         m_display_segmask[y] = 0x7f;
709709   
710710   // update current state (note: R6 as extra column!)
711711   display_matrix(9, 10, (m_o | (m_r << 2 & 0x100)), m_r);
r244945r244946
848848void hh_tms1k_state::ebball_display()
849849{
850850   // R8 is a 7seg
851   m_7seg_mask[8] = 0x7f;
851   m_display_segmask[8] = 0x7f;
852852   
853853   display_matrix(7, 9, ~m_o, m_r);
854854}
r244945r244946
979979      m_display_state[y] = (m_r >> y & 1) ? m_o : 0;
980980
981981   // R0,R1 are normal 7segs
982   m_7seg_mask[0] = m_7seg_mask[1] = 0x7f;
982   m_display_segmask[0] = m_display_segmask[1] = 0x7f;
983983   
984984   // R4,R7 contain segments(only F and B) for the two other digits
985985   m_display_state[10] = (m_display_state[4] & 0x20) | (m_display_state[7] & 0x02);
986986   m_display_state[11] = ((m_display_state[4] & 0x10) | (m_display_state[7] & 0x01)) << 1;
987   m_7seg_mask[10] = m_7seg_mask[11] = 0x22;
987   m_display_segmask[10] = m_display_segmask[11] = 0x22;
988988   
989989   display_update();
990990}
r244945r244946
11261126
11271127   // R0-R6: select digit
11281128   for (int y = 0; y < 7; y++)
1129      m_7seg_mask[y] = 0x7f;
1129      m_display_segmask[y] = 0x7f;
11301130
11311131   display_matrix(7, 7, BITSWAP8(m_o,7,5,2,1,4,0,6,3), data);
11321132}
r244945r244946
12281228void hh_tms1k_state::starwbc_display()
12291229{
12301230   // R6,R8 are 7segs
1231   m_7seg_mask[6] = m_7seg_mask[8] = 0x7f;
1231   m_display_segmask[6] = m_display_segmask[8] = 0x7f;
12321232   
12331233   display_matrix(8, 10, m_o, m_r);
12341234}
r244945r244946
15271527   // R0-R5: select digit (right-to-left)
15281528   for (int y = 0; y < 6; y++)
15291529   {
1530      m_7seg_mask[y] = 0xff;
1530      m_display_segmask[y] = 0xff;
15311531      m_display_state[y] = (data >> y & 1) ? m_o : 0;
15321532   }
15331533
r244945r244946
17311731   UINT8 o = BITSWAP8(m_o,3,5,2,1,4,0,6,7) & 0x7f;
17321732   for (int y = 0; y < m_display_maxy; y++)
17331733   {
1734      m_7seg_mask[y] = 0x7f;
1734      m_display_segmask[y] = 0x7f;
17351735      m_display_state[y] = (data >> y & 1) ? o : 0;
17361736   }
17371737
trunk/src/mess/drivers/hh_ucom4.c
r244945r244946
6969   UINT32 m_plate;                     // VFD current column data
7070   
7171   UINT32 m_display_state[0x20];       // display matrix rows data
72   UINT16 m_7seg_mask[0x20];           // if not 0, display matrix row is a 7seg, mask indicates connected segments
72   UINT16 m_display_segmask[0x20];     // if not 0, display matrix row is a digit, mask indicates connected segments
7373   UINT32 m_display_cache[0x20];       // (internal use)
7474   UINT8 m_display_decay[0x20][0x20];  // (internal use)
7575
r244945r244946
118118   memset(m_display_state, 0, sizeof(m_display_state));
119119   memset(m_display_cache, 0, sizeof(m_display_cache));
120120   memset(m_display_decay, 0, sizeof(m_display_decay));
121   memset(m_7seg_mask, 0, sizeof(m_7seg_mask));
121   memset(m_display_segmask, 0, sizeof(m_display_segmask));
122122   
123123   memset(m_port, 0, sizeof(m_port));
124124   m_inp_mux = 0;
r244945r244946
133133   save_item(NAME(m_display_state));
134134   save_item(NAME(m_display_cache));
135135   save_item(NAME(m_display_decay));
136   save_item(NAME(m_7seg_mask));
136   save_item(NAME(m_display_segmask));
137137
138138   save_item(NAME(m_port));
139139   save_item(NAME(m_inp_mux));
r244945r244946
176176   for (int y = 0; y < m_display_maxy; y++)
177177      if (m_display_cache[y] != active_state[y])
178178      {
179         if (m_7seg_mask[y] != 0)
180            output_set_digit_value(y, active_state[y] & m_7seg_mask[y]);
179         if (m_display_segmask[y] != 0)
180            output_set_digit_value(y, active_state[y] & m_display_segmask[y]);
181181
182182         const int mul = (m_display_maxx <= 10) ? 10 : 100;
183183         for (int x = 0; x < m_display_maxx; x++)
trunk/src/mess/drivers/ticalc1x.c
r244945r244946
6161   int m_display_maxx;                 // display matrix number of columns
6262   
6363   UINT32 m_display_state[0x20];       // display matrix rows data
64   UINT16 m_7seg_mask[0x20];           // if not 0, display matrix row is a 7seg, mask indicates connected segments
64   UINT16 m_display_segmask[0x20];     // if not 0, display matrix row is a digit, mask indicates connected segments
6565   UINT32 m_display_cache[0x20];       // (internal use)
6666   UINT8 m_display_decay[0x20][0x20];  // (internal use)
6767
6868   TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick);
6969   void display_update();
70   void display_matrix_7seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 _7segmask);
70   void display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask);
7171   
7272   // calculator-specific handlers
7373   DECLARE_READ8_MEMBER(tisr16_read_k);
r244945r244946
101101   memset(m_display_state, 0, sizeof(m_display_state));
102102   memset(m_display_cache, 0, sizeof(m_display_cache));
103103   memset(m_display_decay, 0, sizeof(m_display_decay));
104   memset(m_7seg_mask, ~0, sizeof(m_7seg_mask)); // !
104   memset(m_display_segmask, ~0, sizeof(m_display_segmask)); // !
105105   
106106   m_o = 0;
107107   m_r = 0;
r244945r244946
116116   save_item(NAME(m_display_state));
117117   save_item(NAME(m_display_cache));
118118   save_item(NAME(m_display_decay));
119   save_item(NAME(m_7seg_mask));
119   save_item(NAME(m_display_segmask));
120120
121121   save_item(NAME(m_o));
122122   save_item(NAME(m_r));
r244945r244946
164164   for (int y = 0; y < m_display_maxy; y++)
165165      if (m_display_cache[y] != active_state[y])
166166      {
167         if (m_7seg_mask[y] != 0)
168            output_set_digit_value(y, active_state[y] & m_7seg_mask[y]);
167         if (m_display_segmask[y] != 0)
168            output_set_digit_value(y, active_state[y] & m_display_segmask[y]);
169169
170170         const int mul = (m_display_maxx <= 10) ? 10 : 100;
171171         for (int x = 0; x < m_display_maxx; x++)
r244945r244946
186186   display_update();
187187}
188188
189void ticalc1x_state::display_matrix_7seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 _7segmask)
189void ticalc1x_state::display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask)
190190{
191191   m_display_maxx = maxx;
192192   m_display_maxy = maxy;
r244945r244946
195195   UINT32 colmask = (1 << maxx) - 1;
196196   for (int y = 0; y < maxy; y++)
197197   {
198      m_7seg_mask[y] &= _7segmask;
198      m_display_segmask[y] &= segmask;
199199      m_display_state[y] = (sety >> y & 1) ? (setx & colmask) : 0;
200200   }
201201   
r244945r244946
387387WRITE16_MEMBER(ticalc1x_state::ti1270_write_r)
388388{
389389   // R0-R7: select digit (right-to-left)
390   display_matrix_7seg(8, 8, m_o, data, 0xff);
390   display_matrix_seg(8, 8, m_o, data, 0xff);
391391}
392392
393393WRITE16_MEMBER(ticalc1x_state::ti1270_write_o)
r244945r244946
474474{
475475   // note: 6th digit is custom(not 7seg), for math symbols, and 3rd digit
476476   // only has A and G for =, though some newer revisions use a custom digit too.
477   m_7seg_mask[3] = 0x41;
477   m_display_segmask[3] = 0x41;
478478   
479479   // R0-R8: select digit (right-to-left)
480   display_matrix_7seg(8, 9, m_o, data, 0x7f);
480   display_matrix_seg(8, 9, m_o, data, 0x7f);
481481}
482482
483483WRITE16_MEMBER(ticalc1x_state::wizatron_write_o)
r244945r244946
651651WRITE16_MEMBER(ticalc1x_state::ti30_write_r)
652652{
653653   // note: 1st digit only has segments B,F,G,DP
654   m_7seg_mask[0] = 0xe2;
654   m_display_segmask[0] = 0xe2;
655655
656656   // R0-R8: select digit
657   display_matrix_7seg(8, 9, BITSWAP8(m_o,7,5,2,1,4,0,6,3), data, 0xff);
657   display_matrix_seg(8, 9, BITSWAP8(m_o,7,5,2,1,4,0,6,3), data, 0xff);
658658}
659659
660660WRITE16_MEMBER(ticalc1x_state::ti30_write_o)
trunk/src/mess/drivers/tispeak.c
r244945r244946
303303      m_tms5100(*this, "tms5100"),
304304      m_tms6100(*this, "tms6100"),
305305      m_cart(*this, "cartslot"),
306      m_button_matrix(*this, "IN")
306      m_button_matrix(*this, "IN"),
307      m_display_wait(33),
308      m_display_maxy(1),
309      m_display_maxx(0)
307310   { }
308311
312   // devices
309313   required_device<tms0270_cpu_device> m_maincpu;
310314   required_device<tms5100_device> m_tms5100;
311315   required_device<tms6100_device> m_tms6100;
312316   optional_device<generic_slot_device> m_cart;
313317   required_ioport_array<9> m_button_matrix;
314318
315   UINT16 m_r;
316   UINT16 m_o;
319   // misc common
320   UINT16 m_r;                         // MCU R-pins data
321   UINT16 m_o;                         // MCU O-pins data
317322   int m_power_on;
323   int m_filament_on;
318324
319   UINT16 m_display_state[0x10];
320   UINT16 m_display_cache[0x10];
321   UINT8 m_display_decay[0x100];
325   // display common
326   int m_display_wait;                 // led/lamp off-delay in microseconds (default 33ms)
327   int m_display_maxy;                 // display matrix number of rows
328   int m_display_maxx;                 // display matrix number of columns
329   
330   UINT32 m_display_state[0x20];       // display matrix rows data
331   UINT16 m_display_segmask[0x20];     // if not 0, display matrix row is a digit, mask indicates connected segments
332   UINT32 m_display_cache[0x20];       // (internal use)
333   UINT8 m_display_decay[0x20][0x20];  // (internal use)
334
335   TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick);
322336   void display_update();
323   TIMER_DEVICE_CALLBACK_MEMBER(display_decay_tick);
337   void display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask);
324338
339   // cartridge
325340   UINT32 m_cart_max_size;
326341   UINT8* m_cart_base;
327342   DECLARE_DEVICE_IMAGE_LOAD_MEMBER(tispeak_cartridge);
r244945r244946
386401
387402***************************************************************************/
388403
389// The device strobes the filament-enable very fast, it is unnoticeable to the user.
404// The device may strobe the outputs very fast, it is unnoticeable to the user.
390405// To prevent flickering here, we need to simulate a decay.
391406
392// decay time, in steps of 1ms
393#define DISPLAY_DECAY_TIME 40
394
395407void tispeak_state::display_update()
396408{
397   int filament_on = (m_r & 0x8000) ? 1 : 0;
398   UINT16 active_state[0x10];
409   UINT32 active_state[0x20];
399410
400   for (int i = 0; i < 0x10; i++)
411   for (int y = 0; y < m_display_maxy; y++)
401412   {
402      // update current state
403      m_display_state[i] = (m_r >> i & 1) ? m_o : 0;
413      active_state[y] = 0;
404414
405      active_state[i] = 0;
406
407      for (int j = 0; j < 0x10; j++)
415      for (int x = 0; x < m_display_maxx; x++)
408416      {
409         int di = j << 4 | i;
410
411417         // turn on powered segments
412         if (m_power_on && filament_on && m_display_state[i] >> j & 1)
413            m_display_decay[di] = DISPLAY_DECAY_TIME;
418         if (m_power_on && m_filament_on && m_display_state[y] >> x & 1)
419            m_display_decay[y][x] = m_display_wait;
414420
415421         // determine active state
416         int ds = (m_display_decay[di] != 0) ? 1 : 0;
417         active_state[i] |= (ds << j);
422         int ds = (m_display_decay[y][x] != 0) ? 1 : 0;
423         active_state[y] |= (ds << x);
418424      }
419425   }
420426
421427   // on difference, send to output
422   for (int i = 0; i < 0x10; i++)
423      if (m_display_cache[i] != active_state[i])
428   for (int y = 0; y < m_display_maxy; y++)
429      if (m_display_cache[y] != active_state[y])
424430      {
425         output_set_digit_value(i, active_state[i] & 0x3fff);
431         if (m_display_segmask[y] != 0)
432            output_set_digit_value(y, active_state[y] & m_display_segmask[y]);
426433
427         // lampxyy where x=digit, y=segment
428         for (int j = 0; j < 0x10; j++)
429            output_set_lamp_value(i*100 + j, active_state[i] >> j & 1);
434         const int mul = (m_display_maxx <= 10) ? 10 : 100;
435         for (int x = 0; x < m_display_maxx; x++)
436            output_set_lamp_value(y * mul + x, active_state[y] >> x & 1);
430437      }
431438
432439   memcpy(m_display_cache, active_state, sizeof(m_display_cache));
r244945r244946
435442TIMER_DEVICE_CALLBACK_MEMBER(tispeak_state::display_decay_tick)
436443{
437444   // slowly turn off unpowered segments
438   for (int i = 0; i < 0x100; i++)
439      if (!(m_display_state[i & 0xf] >> (i>>4) & 1) && m_display_decay[i])
440         m_display_decay[i]--;
445   for (int y = 0; y < m_display_maxy; y++)
446      for (int x = 0; x < m_display_maxx; x++)
447         if (m_display_decay[y][x] != 0)
448            m_display_decay[y][x]--;
449   
450   display_update();
451}
441452
453void tispeak_state::display_matrix_seg(int maxx, int maxy, UINT32 setx, UINT32 sety, UINT16 segmask)
454{
455   m_display_maxx = maxx;
456   m_display_maxy = maxy;
457
458   // update current state
459   UINT32 colmask = (1 << maxx) - 1;
460   for (int y = 0; y < maxy; y++)
461   {
462      m_display_segmask[y] &= segmask;
463      m_display_state[y] = (sety >> y & 1) ? (setx & colmask) : 0;
464   }
465   
442466   display_update();
443467}
444468
r244945r244946
467491
468492WRITE16_MEMBER(tispeak_state::snspell_write_r)
469493{
470   // R0-R7: input mux and select digit (+R8 if the device has 9 digits)
471   // R15: filament on (handled in leds_update)
494   // R15: filament on
495   m_filament_on = data & 0x8000;
496   
472497   // R13: power-off request, on falling edge
473498   if ((m_r >> 13 & 1) && !(data >> 13 & 1))
474499      power_off();
475500
501   // R0-R7: input mux and select digit (+R8 if the device has 9 digits)
476502   // other bits: MCU internal use
477   m_r = data;
478   display_update();
503   m_r = data & 0x21ff;
504   display_matrix_seg(16, 16, m_o, m_r, 0x3fff);
479505}
480506
481507WRITE16_MEMBER(tispeak_state::snspell_write_o)
r244945r244946
483509   // reorder opla to led14seg, plus DP as d14 and AP as d15:
484510   // E,D,C,G,B,A,I,M,L,K,N,J,[AP],H,F,[DP] (sidenote: TI KLMN = MAME MLNK)
485511   m_o = BITSWAP16(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
486
487   display_update();
512   display_matrix_seg(16, 16, m_o, m_r, 0x3fff);
488513}
489514
490515
r244945r244946
505530   // reorder opla to led14seg, plus DP as d14 and AP as d15:
506531   // [DP],D,C,H,F,B,I,M,L,K,N,J,[AP],E,G,A (sidenote: TI KLMN = MAME MLNK)
507532   m_o = BITSWAP16(data,12,0,10,7,8,9,11,6,3,14,4,13,1,2,5,15);
508
509   display_update();
533   display_matrix_seg(16, 16, m_o, m_r, 0x3fff);
510534}
511535
512536
r244945r244946
515539WRITE16_MEMBER(tispeak_state::lantutor_write_r)
516540{
517541   // same as default, except R13 is used for an extra digit
518   m_r = data;
519   display_update();
542   m_filament_on = data & 0x8000;
543   m_r = data & 0x21ff;
544   display_matrix_seg(16, 16, m_o, m_r, 0x3fff);
520545}
521546
522547
r244945r244946
708733   memset(m_display_state, 0, sizeof(m_display_state));
709734   memset(m_display_cache, 0, sizeof(m_display_cache));
710735   memset(m_display_decay, 0, sizeof(m_display_decay));
736   memset(m_display_segmask, ~0, sizeof(m_display_segmask)); // !
711737
712738   m_r = 0;
713739   m_o = 0;
714740   m_power_on = 0;
741   m_filament_on = 0;
715742
716743   // register for savestates
717744   save_item(NAME(m_display_state));
718745   save_item(NAME(m_display_cache));
719746   save_item(NAME(m_display_decay));
747   save_item(NAME(m_display_segmask));
720748
721749   save_item(NAME(m_r));
722750   save_item(NAME(m_o));
723751   save_item(NAME(m_power_on));
752   save_item(NAME(m_filament_on));
724753
725754   // init cartridge
726755   if (m_cart != NULL && m_cart->exists())


Previous 199869 Revisions Next


© 1997-2024 The MAME Team