561
READ32_HANDLER( _3do_clio_r )
555
READ32_MEMBER(_3do_state::_3do_clio_r)
563
_3do_state *state = space->machine().driver_data<_3do_state>();
564
logerror( "%08X: CLIO read offset = %08X\n", cpu_get_pc(space->machine().device("maincpu")), offset * 4 );
557
logerror( "%08X: CLIO read offset = %08X\n", cpu_get_pc(machine().device("maincpu")), offset * 4 );
569
return state->m_clio.revision;
562
return m_clio.revision;
571
return state->m_clio.audin;
573
return state->m_clio.audout;
566
return m_clio.audout;
575
return state->m_clio.cstatbits;
568
return m_clio.cstatbits;
577
return state->m_clio.screen->hpos();
570
return m_clio.screen->hpos();
579
572
/* This needs to moved to a proper timer callback function */
580
if ( state->m_clio.screen->vpos() == 0 )
573
if ( m_clio.screen->vpos() == 0 )
582
state->m_clio.vcnt ^= 0x800;
575
m_clio.vcnt ^= 0x800;
584
return ( state->m_clio.vcnt & 0x800 ) | state->m_clio.screen->vpos();
577
return ( m_clio.vcnt & 0x800 ) | m_clio.screen->vpos();
586
return state->m_clio.seed;
588
return state->m_clio.random;
581
return m_clio.random;
590
return state->m_clio.hdelay;
583
return m_clio.hdelay;
592
return state->m_clio.adbio;
594
return state->m_clio.adbctl;
587
return m_clio.adbctl;
597
return state->m_clio.timer0;
590
return m_clio.timer0;
599
return state->m_clio.timerback0;
592
return m_clio.timerback0;
601
return state->m_clio.timer1;
594
return m_clio.timer1;
603
return state->m_clio.timerback1;
596
return m_clio.timerback1;
605
return state->m_clio.timer2;
598
return m_clio.timer2;
607
return state->m_clio.timerback2;
600
return m_clio.timerback2;
609
return state->m_clio.timer3;
602
return m_clio.timer3;
611
return state->m_clio.timerback3;
604
return m_clio.timerback3;
613
return state->m_clio.timer4;
606
return m_clio.timer4;
615
return state->m_clio.timerback4;
608
return m_clio.timerback4;
617
return state->m_clio.timer5;
610
return m_clio.timer5;
619
return state->m_clio.timerback5;
612
return m_clio.timerback5;
621
return state->m_clio.timer6;
614
return m_clio.timer6;
623
return state->m_clio.timerback6;
616
return m_clio.timerback6;
625
return state->m_clio.timer7;
618
return m_clio.timer7;
627
return state->m_clio.timerback7;
620
return m_clio.timerback7;
629
return state->m_clio.timer8;
622
return m_clio.timer8;
631
return state->m_clio.timerback8;
624
return m_clio.timerback8;
633
return state->m_clio.timer9;
626
return m_clio.timer9;
635
return state->m_clio.timerback9;
628
return m_clio.timerback9;
637
return state->m_clio.timer10;
630
return m_clio.timer10;
639
return state->m_clio.timerback10;
632
return m_clio.timerback10;
641
return state->m_clio.timer11;
634
return m_clio.timer11;
643
return state->m_clio.timerback11;
636
return m_clio.timerback11;
645
return state->m_clio.timer12;
638
return m_clio.timer12;
647
return state->m_clio.timerback12;
640
return m_clio.timerback12;
649
return state->m_clio.timer13;
642
return m_clio.timer13;
651
return state->m_clio.timerback13;
644
return m_clio.timerback13;
653
return state->m_clio.timer14;
646
return m_clio.timer14;
655
return state->m_clio.timerback14;
648
return m_clio.timerback14;
657
return state->m_clio.timer15;
650
return m_clio.timer15;
659
return state->m_clio.timerback15;
652
return m_clio.timerback15;
662
return state->m_clio.settm0;
655
return m_clio.settm0;
664
return state->m_clio.clrtm0;
657
return m_clio.clrtm0;
666
return state->m_clio.settm1;
659
return m_clio.settm1;
668
return state->m_clio.clrtm1;
661
return m_clio.clrtm1;
671
return state->m_clio.slack;
675
return state->m_clio.expctl;
668
return m_clio.expctl;
677
return state->m_clio.dipir1;
670
return m_clio.dipir1;
679
return state->m_clio.dipir2;
672
return m_clio.dipir2;
681
674
case 0x0500/4: case 0x0504/4: case 0x0508/4: case 0x050c/4:
682
675
case 0x0510/4: case 0x0514/4: case 0x0518/4: case 0x051c/4:
683
676
case 0x0520/4: case 0x0524/4: case 0x0528/4: case 0x052c/4:
684
677
case 0x0530/4: case 0x0534/4: case 0x0538/4: case 0x053c/4:
685
return state->m_clio.sel;
687
680
case 0x0540/4: case 0x0544/4: case 0x0548/4: case 0x054c/4:
688
681
case 0x0550/4: case 0x0554/4: case 0x0558/4: case 0x055c/4:
689
682
case 0x0560/4: case 0x0564/4: case 0x0568/4: case 0x056c/4:
690
683
case 0x0570/4: case 0x0574/4: case 0x0578/4: case 0x057c/4:
691
return state->m_clio.poll;
694
return state->m_clio.unclerev;
687
return m_clio.unclerev;
696
return state->m_clio.uncle_soft_rev;
689
return m_clio.uncle_soft_rev;
698
return state->m_clio.uncle_addr;
691
return m_clio.uncle_addr;
700
return state->m_clio.uncle_rom;
693
return m_clio.uncle_rom;
703
logerror( "%08X: unhandled CLIO read offset = %08X\n", cpu_get_pc(space->machine().device("maincpu")), offset * 4 );
696
logerror( "%08X: unhandled CLIO read offset = %08X\n", cpu_get_pc(machine().device("maincpu")), offset * 4 );
709
WRITE32_HANDLER( _3do_clio_w )
702
WRITE32_MEMBER(_3do_state::_3do_clio_w)
711
_3do_state *state = space->machine().driver_data<_3do_state>();
712
logerror( "%08X: CLIO write offset = %08X, data = %08X, mask = %08X\n", cpu_get_pc(space->machine().device("maincpu")), offset*4, data, mem_mask );
704
logerror( "%08X: CLIO write offset = %08X, data = %08X, mask = %08X\n", cpu_get_pc(machine().device("maincpu")), offset*4, data, mem_mask );
719
state->m_clio.csysbits = data;
711
m_clio.csysbits = data;
722
state->m_clio.vint0 = data;
725
state->m_clio.vint1 = data;
728
state->m_clio.audin = data;
730
722
case 0x0024/4: /* 03400024 - c0020f0f is written here during boot */
731
state->m_clio.audout = data;
723
m_clio.audout = data;
733
725
case 0x0028/4: /* 03400028 - bits 0,1, and 6 are tested (reset source) */
734
state->m_clio.cstatbits = data;
726
m_clio.cstatbits = data;
736
728
case 0x002c/4: /* 0340002C - ?? during boot 0000000B is written here counter reload related?? */
737
state->m_clio.wdog = data;
740
state->m_clio.hcnt = data;
743
state->m_clio.vcnt = data;
746
state->m_clio.seed = data;
749
state->m_clio.irq0 |= data;
752
state->m_clio.irq0 &= ~data;
744
m_clio.irq0 &= ~data;
755
state->m_clio.irq0_enable |= data;
747
m_clio.irq0_enable |= data;
758
state->m_clio.irq0_enable &= ~data;
750
m_clio.irq0_enable &= ~data;
761
state->m_clio.mode |= data;
764
state->m_clio.mode &= ~data;
756
m_clio.mode &= ~data;
767
state->m_clio.badbits = data;
759
m_clio.badbits = data;
770
state->m_clio.spare = data;
773
state->m_clio.irq1 |= data;
776
state->m_clio.irq1 &= ~data;
768
m_clio.irq1 &= ~data;
779
state->m_clio.irq1_enable |= data;
771
m_clio.irq1_enable |= data;
782
state->m_clio.irq1_enable &= ~data;
774
m_clio.irq1_enable &= ~data;
785
state->m_clio.hdelay = data;
777
m_clio.hdelay = data;
788
state->m_clio.adbio = data;
791
state->m_clio.adbctl = data;
783
m_clio.adbctl = data;
795
state->m_clio.timer0 = data & 0x0000ffff;
787
m_clio.timer0 = data & 0x0000ffff;
798
state->m_clio.timerback0 = data & 0x0000ffff;
790
m_clio.timerback0 = data & 0x0000ffff;
801
state->m_clio.timer1 = data & 0x0000ffff;
793
m_clio.timer1 = data & 0x0000ffff;
804
state->m_clio.timerback1 = data & 0x0000ffff;
796
m_clio.timerback1 = data & 0x0000ffff;
807
state->m_clio.timer2 = data & 0x0000ffff;
799
m_clio.timer2 = data & 0x0000ffff;
810
state->m_clio.timerback2 = data & 0x0000ffff;
802
m_clio.timerback2 = data & 0x0000ffff;
813
state->m_clio.timer3 = data & 0x0000ffff;
805
m_clio.timer3 = data & 0x0000ffff;
816
state->m_clio.timerback3 = data & 0x0000ffff;
808
m_clio.timerback3 = data & 0x0000ffff;
819
state->m_clio.timer4 = data & 0x0000ffff;
811
m_clio.timer4 = data & 0x0000ffff;
822
state->m_clio.timerback4 = data & 0x0000ffff;
814
m_clio.timerback4 = data & 0x0000ffff;
825
state->m_clio.timer5 = data & 0x0000ffff;
817
m_clio.timer5 = data & 0x0000ffff;
828
state->m_clio.timerback5 = data & 0x0000ffff;
820
m_clio.timerback5 = data & 0x0000ffff;
831
state->m_clio.timer6 = data & 0x0000ffff;
823
m_clio.timer6 = data & 0x0000ffff;
834
state->m_clio.timerback6 = data & 0x0000ffff;
826
m_clio.timerback6 = data & 0x0000ffff;
837
state->m_clio.timer7 = data & 0x0000ffff;
829
m_clio.timer7 = data & 0x0000ffff;
840
state->m_clio.timerback7 = data & 0x0000ffff;
832
m_clio.timerback7 = data & 0x0000ffff;
843
state->m_clio.timer8 = data & 0x0000ffff;
835
m_clio.timer8 = data & 0x0000ffff;
846
state->m_clio.timerback8 = data & 0x0000ffff;
838
m_clio.timerback8 = data & 0x0000ffff;
849
state->m_clio.timer9 = data & 0x0000ffff;
841
m_clio.timer9 = data & 0x0000ffff;
852
state->m_clio.timerback9 = data & 0x0000ffff;
844
m_clio.timerback9 = data & 0x0000ffff;
855
state->m_clio.timer10 = data & 0x0000ffff;
847
m_clio.timer10 = data & 0x0000ffff;
858
state->m_clio.timerback10 = data & 0x0000ffff;
850
m_clio.timerback10 = data & 0x0000ffff;
861
state->m_clio.timer11 = data & 0x0000ffff;
853
m_clio.timer11 = data & 0x0000ffff;
864
state->m_clio.timerback11 = data & 0x0000ffff;
856
m_clio.timerback11 = data & 0x0000ffff;
867
state->m_clio.timer12 = data & 0x0000ffff;
859
m_clio.timer12 = data & 0x0000ffff;
870
state->m_clio.timerback12 = data & 0x0000ffff;
862
m_clio.timerback12 = data & 0x0000ffff;
873
state->m_clio.timer13 = data & 0x0000ffff;
865
m_clio.timer13 = data & 0x0000ffff;
876
state->m_clio.timerback13 = data & 0x0000ffff;
868
m_clio.timerback13 = data & 0x0000ffff;
879
state->m_clio.timer14 = data & 0x0000ffff;
871
m_clio.timer14 = data & 0x0000ffff;
882
state->m_clio.timerback14 = data & 0x0000ffff;
874
m_clio.timerback14 = data & 0x0000ffff;
885
state->m_clio.timer15 = data & 0x0000ffff;
877
m_clio.timer15 = data & 0x0000ffff;
888
state->m_clio.timerback15 = data & 0x0000ffff;
880
m_clio.timerback15 = data & 0x0000ffff;
892
state->m_clio.settm0 = data;
884
m_clio.settm0 = data;
895
state->m_clio.clrtm0 = data;
887
m_clio.clrtm0 = data;
898
state->m_clio.settm0 = data;
890
m_clio.settm0 = data;
904
state->m_clio.slack = data & 0x000003ff;
896
m_clio.slack = data & 0x000003ff;
908
state->m_clio.dmareqdis = data;
900
m_clio.dmareqdis = data;
912
state->m_clio.expctl = state->m_clio.expctl | ( data & 0xca00 );
904
m_clio.expctl = m_clio.expctl | ( data & 0xca00 );
915
state->m_clio.expctl = state->m_clio.expctl & ~( data & 0xca00 );
907
m_clio.expctl = m_clio.expctl & ~( data & 0xca00 );
918
state->m_clio.type0_4 = data;
910
m_clio.type0_4 = data;
921
913
case 0x0500/4: case 0x0504/4: case 0x0508/4: case 0x050c/4:
922
914
case 0x0510/4: case 0x0514/4: case 0x0518/4: case 0x051c/4:
923
915
case 0x0520/4: case 0x0524/4: case 0x0528/4: case 0x052c/4:
924
916
case 0x0530/4: case 0x0534/4: case 0x0538/4: case 0x053c/4:
925
state->m_clio.sel = data & 0xff;
917
m_clio.sel = data & 0xff;
926
918
/* Start WRSEL cycle */
928
920
/* Detection of too many devices on the bus */