Advertisement
brouhaha

mess patch for Apple1 with MC6800 CPU

Jul 18th, 2011
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.98 KB | None | 0 0
  1. diff -up mess-0.143/src/mess/drivers/apple1.c.apple1-mc6800 mess-0.143/src/mess/drivers/apple1.c
  2. --- mess-0.143/src/mess/drivers/apple1.c.apple1-mc6800 2011-07-18 01:50:07.000000000 -0600
  3. +++ mess-0.143/src/mess/drivers/apple1.c 2011-07-18 01:58:58.000000000 -0600
  4. @@ -69,6 +69,7 @@ $F000-$FFFF: ROM address space
  5.  
  6. #include "emu.h"
  7. #include "cpu/m6502/m6502.h"
  8. +#include "cpu/m6800/m6800.h"
  9. #include "machine/6821pia.h"
  10. #include "includes/apple1.h"
  11. #include "imagedev/snapquik.h"
  12. @@ -268,6 +269,59 @@ static MACHINE_CONFIG_START( apple1, app
  13.  
  14. MACHINE_CONFIG_END
  15.  
  16. +static MACHINE_CONFIG_START( apple1_mc6800, apple1_state )
  17. + /* basic machine hardware */
  18. + /* Actual CPU speed is 1.023 MHz, but RAM refresh effectively
  19. + slows it to 960 kHz. */
  20. + MCFG_CPU_ADD("maincpu", M6800, 960000) /* 1.023 MHz */
  21. + MCFG_CPU_PROGRAM_MAP(apple1_map)
  22. +
  23. + MCFG_MACHINE_RESET( apple1 )
  24. + MCFG_QUANTUM_TIME(attotime::from_hz(60))
  25. +
  26. + MCFG_SCREEN_ADD("screen", RASTER)
  27. + MCFG_SCREEN_REFRESH_RATE(60)
  28. + /* Video is blanked for 70 out of 262 scanlines per refresh cycle.
  29. + Each scanline is composed of 65 character times, 40 of which
  30. + are visible, and each character time is 7 dot times; a dot time
  31. + is 2 cycles of the fundamental 14.31818 MHz oscillator. The
  32. + total blanking time is about 4450 microseconds. */
  33. + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((int) (70 * 65 * 7 * 2 / 14.31818)))
  34. + MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
  35. + /* It would be nice if we could implement some sort of display
  36. + overscan here. */
  37. + MCFG_SCREEN_SIZE(40 * 7, 24 * 8)
  38. + MCFG_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1)
  39. + MCFG_SCREEN_UPDATE(apple1)
  40. +
  41. +
  42. + MCFG_GFXDECODE(apple1)
  43. + MCFG_PALETTE_LENGTH(2)
  44. + MCFG_PALETTE_INIT(black_and_white)
  45. +
  46. + MCFG_VIDEO_START(apple1)
  47. +
  48. + MCFG_PIA6821_ADD( "pia", apple1_pia0 )
  49. +
  50. + /* snapshot */
  51. + MCFG_SNAPSHOT_ADD("snapshot", apple1, "snp", 0)
  52. +
  53. + MCFG_CASSETTE_ADD( CASSETTE_TAG, apple1_cassette_interface )
  54. +
  55. + /* Note that because we always include 4K of RAM at $E000-$EFFF,
  56. + the RAM amounts listed here will be 4K below the actual RAM
  57. + total. */
  58. + /* internal ram */
  59. + MCFG_RAM_ADD(RAM_TAG)
  60. + MCFG_RAM_DEFAULT_SIZE("48K")
  61. + MCFG_RAM_EXTRA_OPTIONS("4K,8K,12K,16K,20K,24K,28K,32K,36K,40K,44K")
  62. +
  63. +MACHINE_CONFIG_END
  64. +
  65. +//static MACHINE_CONFIG_DERIVED( apple1_mc6800, apple1 )
  66. +// MCFG_CPU_REPLACE("maincpu", M6800, 960000)
  67. +//MACHINE_CONFIG_END
  68. +
  69. ROM_START(apple1)
  70. ROM_REGION(0x10000, "maincpu",0)
  71. /* 256-byte main monitor ROM, in two 82s129 or mmi6301 256x4 proms at A1 and A2 called APPLE-A1(bits D3-D0) and APPLE-A2(bits D7-D4) */
  72. @@ -281,6 +335,17 @@ ROM_START(apple1)
  73. ROM_LOAD("s2513.d2", 0x0000, 0x0200, CRC(a7e567fc) SHA1(b18aae0a2d4f92f5a7e22640719bbc4652f3f4ee)) // apple1.vid
  74. ROM_END
  75.  
  76. +ROM_START(apple1_mc6800)
  77. + ROM_REGION(0x10000, "maincpu",0)
  78. + /* 256-byte main monitor ROM, in two 82s129 or mmi6301 256x4 proms at A1 and A2 called APPLE-A1(bits D3-D0) and APPLE-A2(bits D7-D4) */
  79. + ROM_LOAD_NIB_HIGH( "a1m68hi.a2", 0xff00, 0x0100, CRC(30554641) SHA1(d75b053ed9cc7f7081654cd65b2ca588509c1e80))
  80. + ROM_LOAD_NIB_LOW( "a1m68lo.a1", 0xff00, 0x0100, CRC(f90aaa96) SHA1(80edc7508da317efe93375dd4416536b99378f2f))
  81. + // No MC6800 cassette ROM yet
  82. + /* 512-byte Signetics 2513 character generator ROM at location D2-D3 */
  83. + ROM_REGION(0x0200, "gfx1",0)
  84. + ROM_LOAD("s2513.d2", 0x0000, 0x0200, CRC(a7e567fc) SHA1(b18aae0a2d4f92f5a7e22640719bbc4652f3f4ee)) // apple1.vid
  85. +ROM_END
  86.  
  87. -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
  88. -COMP( 1976, apple1, 0, 0, apple1, apple1, apple1, "Apple Computer", "Apple I" , GAME_NO_SOUND )
  89. +/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
  90. +COMP( 1976, apple1, 0, 0, apple1, apple1, apple1, "Apple Computer", "Apple I", GAME_NO_SOUND )
  91. +COMP( 1976, apple1_mc6800, apple1, 0, apple1_mc6800, apple1, apple1, "Apple Computer", "Apple I w/ MC6800 CPU", GAME_NO_SOUND )
  92. diff -up mess-0.143/src/mess/machine/apple1.c.apple1-mc6800 mess-0.143/src/mess/machine/apple1.c
  93. --- mess-0.143/src/mess/machine/apple1.c.apple1-mc6800 2011-07-18 01:50:09.000000000 -0600
  94. +++ mess-0.143/src/mess/machine/apple1.c 2011-07-18 01:50:14.000000000 -0600
  95. @@ -47,7 +47,6 @@
  96. #include "emu.h"
  97. #include "includes/apple1.h"
  98. #include "machine/6821pia.h"
  99. -#include "cpu/m6502/m6502.h"
  100. #include "image.h"
  101. #include "imagedev/cassette.h"
  102. #include "machine/ram.h"
  103. diff -up mess-0.143/src/mess/mess.lst.apple1-mc6800 mess-0.143/src/mess/mess.lst
  104. --- mess-0.143/src/mess/mess.lst.apple1-mc6800 2011-07-18 01:50:06.000000000 -0600
  105. +++ mess-0.143/src/mess/mess.lst 2011-07-18 01:50:14.000000000 -0600
  106. @@ -367,6 +367,7 @@ nc200 // 1993 NC200
  107.  
  108. // Apple
  109. apple1 // Jul 1976 Apple 1
  110. +apple1_mc6800 // Apple 1 with MC6800 CPU
  111. apple2 // Apr 1977 Apple ][
  112. apple2p // Jun 1979 Apple ][+
  113. prav82 // Pravetz 82
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement