src/mess/machine/3do.c
| r8552 | r8553 | |
| 91 | 91 | |
| 92 | 92 | |
| 93 | 93 | typedef struct { |
| 94 | screen_device *screen; |
| 95 | |
| 94 | 96 | UINT32 revision; /* 03400000 */ |
| 95 | 97 | UINT32 csysbits; /* 03400004 */ |
| 96 | 98 | UINT32 vint0; /* 03400008 */ |
| r8552 | r8553 | |
| 661 | 663 | case 0x0028/4: |
| 662 | 664 | return clio.cstatbits; |
| 663 | 665 | case 0x0030/4: |
| 664 | | return clio.hcnt; |
| 666 | return clio.screen->hpos(); |
| 665 | 667 | case 0x0034/4: |
| 666 | | { |
| 667 | | static const UINT32 irq_sequence[3] = { 0, 4, 12 }; |
| 668 | | static int counter = 0; |
| 669 | | |
| 670 | | return irq_sequence[(counter++)%3]; |
| 671 | | } |
| 672 | | return clio.vcnt; |
| 668 | return clio.screen->vpos(); |
| 673 | 669 | case 0x0038/4: |
| 674 | 670 | return clio.seed; |
| 675 | 671 | case 0x003c/4: |
| r8552 | r8553 | |
| 933 | 929 | } |
| 934 | 930 | } |
| 935 | 931 | |
| 936 | | void _3do_clio_init( running_machine *machine ) |
| 932 | void _3do_clio_init( running_machine *machine, screen_device *screen ) |
| 937 | 933 | { |
| 938 | 934 | memset( &clio, 0, sizeof(CLIO) ); |
| 935 | clio.screen = screen; |
| 939 | 936 | clio.revision = 0x02022000 /* 0x04000000 */; |
| 940 | 937 | clio.cstatbits = 0x01; /* bit 0 = reset of clio caused by power on */ |
| 941 | 938 | clio.unclerev = 0x03800000; |