Previous 15994 Revisions Next

r8940 Sunday 29th August, 2010 at 16:06:58 UTC by Curt Coder
[COSMICOS] Downgraded to not working because of direct update regression.
[src/mess/drivers]cosmicos.c

src/mess/drivers/cosmicos.c
r8939r8940
2121
2222    TODO:
2323
24   - fix direct update handler to make system work again
2425    - display interface INH
2526    - 2 segment display
2627    - single step
r8939r8940
154155/* Memory Maps */
155156
156157static ADDRESS_MAP_START( cosmicos_mem, ADDRESS_SPACE_PROGRAM, 8 )
157   AM_RANGE(0x0000, 0xbfff) AM_RAMBANK("bank1")
158   AM_RANGE(0xc000, 0xcfff) AM_ROM
159   AM_RANGE(0xff00, 0xffff) AM_RAMBANK("bank2")
158   AM_RANGE(0x0000, 0xbfff) AM_RAM
159   AM_RANGE(0xc000, 0xcfff) AM_ROM AM_REGION(CDP1802_TAG, 0)
160   AM_RANGE(0xff00, 0xffff) AM_RAM
160161ADDRESS_MAP_END
161162
162163static ADDRESS_MAP_START( cosmicos_io, ADDRESS_SPACE_IO, 8 )
r8939r8940
266267{
267268   cosmicos_state *state = machine->driver_data<cosmicos_state>();
268269   address_space *program = cputag_get_address_space(machine, CDP1802_TAG, ADDRESS_SPACE_PROGRAM);
270   UINT8 *ram = messram_get_ptr(machine->device("messram"));
269271
270272   if (state->ram_disable)
271273   {
272      memory_unmap_read(program, 0xff00, 0xffff, 0, 0);
273      memory_unmap_write(program, 0xff00, 0xffff, 0, 0);
274      memory_unmap_readwrite(program, 0xff00, 0xffff, 0, 0);
274275   }
275276   else
276277   {
277278      if (state->ram_protect)
278279      {
279         memory_install_read_bank(program, 0xff00, 0xffff, 0, 0, "bank2");
280         memory_unmap_write(program, 0xff00, 0xffff, 0, 0);
280         memory_install_rom(program, 0xff00, 0xffff, 0, 0, ram);
281281      }
282282      else
283283      {
284         memory_install_read_bank(program, 0xff00, 0xffff, 0, 0, "bank2");
285         memory_install_write_bank(program, 0xff00, 0xffff, 0, 0, "bank2");
284         memory_install_ram(program, 0xff00, 0xffff, 0, 0, ram);
286285      }
287286   }
288287}
r8939r8940
527526   dm9368_rbi_w(state->dm9368, 1);
528527
529528   /* setup memory banking */
530   memory_configure_bank(machine, "bank1", 0, 1, memory_region(machine, CDP1802_TAG), 0);
531   memory_set_bank(machine, "bank1", 0);
532
533   memory_configure_bank(machine, "bank2", 0, 1, memory_region(machine, CDP1802_TAG) + 0xff00, 0);
534   memory_set_bank(machine, "bank2", 0);
535
536529   switch (messram_get_size(machine->device("messram")))
537530   {
538531   case 256:
r8939r8940
540533      break;
541534
542535   case 4*1024:
543      memory_install_readwrite_bank(program, 0x0000, 0x0fff, 0, 0, "bank1");
544536      memory_unmap_readwrite(program, 0x1000, 0xbfff, 0, 0);
545537      break;
546
547   case 48*1024:
548      memory_install_readwrite_bank(program, 0x0000, 0xbfff, 0, 0, "bank1");
549      break;
550538   }
551539
552   memory_install_readwrite_bank(program, 0xff00, 0xffff, 0, 0, "bank2");
540   set_ram_mode(machine);
553541
554542   /* register for state saving */
555543   state_save_register_global(machine, state->cdp1802_mode);
r8939r8940
641629/* ROMs */
642630
643631ROM_START( cosmicos )
644   ROM_REGION( 0x10000, CDP1802_TAG, 0 )
632   ROM_REGION( 0x1000, CDP1802_TAG, 0 )
645633   ROM_SYSTEM_BIOS( 0, "hex", "Hex Monitor" )
646   ROMX_LOAD( "hex.ic6",   0xc000, 0x0400, BAD_DUMP CRC(d25124bf) SHA1(121215ba3a979e1962327ebe73cbadf784c568d9), ROM_BIOS(1) ) /* typed in from manual */
647   ROMX_LOAD( "hex.ic7",   0xc400, 0x0400, BAD_DUMP CRC(364ac81b) SHA1(83936ee6a7ed44632eb290889b98fb9a500f15d4), ROM_BIOS(1) ) /* typed in from manual */
634   ROMX_LOAD( "hex.ic6",   0x000, 0x400, BAD_DUMP CRC(d25124bf) SHA1(121215ba3a979e1962327ebe73cbadf784c568d9), ROM_BIOS(1) ) /* typed in from manual */
635   ROMX_LOAD( "hex.ic7",   0x400, 0x400, BAD_DUMP CRC(364ac81b) SHA1(83936ee6a7ed44632eb290889b98fb9a500f15d4), ROM_BIOS(1) ) /* typed in from manual */
648636   ROM_SYSTEM_BIOS( 1, "ascii", "ASCII Monitor" )
649   ROMX_LOAD( "ascii.ic6", 0xc000, 0x0400, NO_DUMP, ROM_BIOS(2) )
650   ROMX_LOAD( "ascii.ic7", 0xc400, 0x0400, NO_DUMP, ROM_BIOS(2) )
637   ROMX_LOAD( "ascii.ic6", 0x000, 0x400, NO_DUMP, ROM_BIOS(2) )
638   ROMX_LOAD( "ascii.ic7", 0x400, 0x400, NO_DUMP, ROM_BIOS(2) )
651639ROM_END
652640
653641/* System Drivers */
r8939r8940
659647   if (state->boot)
660648   {
661649      /* force A6 and A7 high */
662      return address | 0xc0c0;
650      direct.explicit_configure(0x0000, 0xffff, 0x3f3f, memory_region(machine, CDP1802_TAG) + 0xc0);
651      return ~0;
663652   }
664653
665654   return address;
r8939r8940
673662}
674663
675664/*    YEAR  NAME        PARENT  COMPAT  MACHINE     INPUT       INIT        COMPANY             FULLNAME    FLAGS */
676COMP( 1979, cosmicos,   0,      0,      cosmicos,   cosmicos,   cosmicos,   "Radio Bulletin",   "Cosmicos",   GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
665COMP( 1979, cosmicos,   0,      0,      cosmicos,   cosmicos,   cosmicos,   "Radio Bulletin",   "Cosmicos",   GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )

Previous 15994 Revisions Next


© 1998-2018 The MESS Team