trunk/hash/aquarius.xml
| r20467 | r20468 | |
| 9 | 9 | <publisher>TRS Hobbies, Inc.</publisher> |
| 10 | 10 | <info name="serial" value="4023" /> |
| 11 | 11 | <part name="cart" interface="aquarius_cart"> |
| 12 | | <dataarea name="rom" size="16384"> |
| 13 | | <rom name="treasue of tarmin.bin" size="16384" crc="2fe95594" sha1="e3e494b9dd9623c92f54cc7d12af29b1103f000f" offset="000000" /> |
| 12 | <dataarea name="rom" size="0x4000"> |
| 13 | <rom name="treasue of tarmin.bin" size="0x4000" crc="2fe95594" sha1="e3e494b9dd9623c92f54cc7d12af29b1103f000f" offset="0x0000" /> |
| 14 | 14 | </dataarea> |
| 15 | 15 | </part> |
| 16 | 16 | </software> |
| r20467 | r20468 | |
| 20 | 20 | <year>1982</year> |
| 21 | 21 | <publisher>Microsoft</publisher> |
| 22 | 22 | <part name="cart" interface="aquarius_cart"> |
| 23 | | <dataarea name="rom" size="8192"> |
| 24 | | <rom name="basic.bin" size="8192" crc="5cfa5b42" sha1="02c8ee11e911d1aa346812492d14284b6870cb3e" offset="000000" /> |
| 23 | <dataarea name="rom" size="0x2000"> |
| 24 | <rom name="basic.bin" size="0x2000" crc="5cfa5b42" sha1="02c8ee11e911d1aa346812492d14284b6870cb3e" offset="0x0000" /> |
| 25 | 25 | </dataarea> |
| 26 | 26 | </part> |
| 27 | 27 | </software> |
| r20467 | r20468 | |
| 32 | 32 | <publisher>Mattel</publisher> |
| 33 | 33 | <info name="serial" value="4003" /> |
| 34 | 34 | <part name="cart" interface="aquarius_cart"> |
| 35 | | <dataarea name="rom" size="16384"> |
| 36 | | <rom name="astrosmash.bin" size="16384" crc="ce76c898" sha1="f47034bbfacd3042090388f0e459d48a830ab9c6" offset="000000" /> |
| 35 | <dataarea name="rom" size="0x4000"> |
| 36 | <rom name="astrosmash.bin" size="0x4000" crc="ce76c898" sha1="f47034bbfacd3042090388f0e459d48a830ab9c6" offset="0x0000" /> |
| 37 | 37 | </dataarea> |
| 38 | 38 | </part> |
| 39 | 39 | </software> |
| r20467 | r20468 | |
| 44 | 44 | <publisher>Mattel</publisher> |
| 45 | 45 | <info name="serial" value="4673" /> |
| 46 | 46 | <part name="cart" interface="aquarius_cart"> |
| 47 | | <dataarea name="rom" size="16384"> |
| 48 | | <rom name="biorhythms.bin" size="16384" crc="47e1c47b" sha1="68fccc2c2cb0841496ea1c5681b17cb689ac102a" offset="000000" /> |
| 47 | <dataarea name="rom" size="0x4000"> |
| 48 | <rom name="biorhythms.bin" size="0x4000" crc="47e1c47b" sha1="68fccc2c2cb0841496ea1c5681b17cb689ac102a" offset="0x0000" /> |
| 49 | 49 | </dataarea> |
| 50 | 50 | </part> |
| 51 | 51 | </software> |
| r20467 | r20468 | |
| 56 | 56 | <publisher>Data East</publisher> |
| 57 | 57 | <info name="serial" value="4653" /> |
| 58 | 58 | <part name="cart" interface="aquarius_cart"> |
| 59 | | <dataarea name="rom" size="16384"> |
| 60 | | <rom name="burgertime.bin" size="16384" crc="be678f07" sha1="8b72793cd9cfdd3bd17412bdaf2411ca06bb1abd" offset="000000" /> |
| 59 | <dataarea name="rom" size="0x4000"> |
| 60 | <rom name="burgertime.bin" size="0x4000" crc="be678f07" sha1="8b72793cd9cfdd3bd17412bdaf2411ca06bb1abd" offset="0x0000" /> |
| 61 | 61 | </dataarea> |
| 62 | 62 | </part> |
| 63 | 63 | </software> |
| r20467 | r20468 | |
| 68 | 68 | <publisher>Mattel</publisher> |
| 69 | 69 | <info name="serial" value="4594" /> |
| 70 | 70 | <part name="cart" interface="aquarius_cart"> |
| 71 | | <dataarea name="rom" size="16384"> |
| 72 | | <rom name="chess.bin" size="16384" crc="0243e59f" sha1="7e7a47071d915c6e1408b3618d172daea889f02b" offset="000000" /> |
| 71 | <dataarea name="rom" size="0x4000"> |
| 72 | <rom name="chess.bin" size="0x4000" crc="0243e59f" sha1="7e7a47071d915c6e1408b3618d172daea889f02b" offset="0x0000" /> |
| 73 | 73 | </dataarea> |
| 74 | 74 | </part> |
| 75 | 75 | </software> |
| r20467 | r20468 | |
| 80 | 80 | <publisher>Microsoft</publisher> |
| 81 | 81 | <info name="serial" value="4392" /> |
| 82 | 82 | <part name="cart" interface="aquarius_cart"> |
| 83 | | <dataarea name="rom" size="16384"> |
| 84 | | <rom name="extended basic.bin" size="16384" crc="0dba1241" sha1="3559249c4ed6ed0662d44df64283cf15cdbd2561" offset="000000" /> |
| 83 | <dataarea name="rom" size="0x4000"> |
| 84 | <rom name="extended basic.bin" size="0x4000" crc="0dba1241" sha1="3559249c4ed6ed0662d44df64283cf15cdbd2561" offset="0x0000" /> |
| 85 | 85 | </dataarea> |
| 86 | 86 | </part> |
| 87 | 87 | </software> |
| r20467 | r20468 | |
| 91 | 91 | <year>1982</year> |
| 92 | 92 | <publisher>Microsoft</publisher> |
| 93 | 93 | <part name="cart" interface="aquarius_cart"> |
| 94 | | <dataarea name="rom" size="16384"> |
| 95 | | <rom name="dos basic.bin" size="16384" crc="10fb3dca" sha1="ea38ce45628c9d9e4e633c7638e8d860a40c3ffa" offset="000000" /> |
| 94 | <dataarea name="rom" size="0x4000"> |
| 95 | <rom name="dos basic.bin" size="0x4000" crc="10fb3dca" sha1="ea38ce45628c9d9e4e633c7638e8d860a40c3ffa" offset="0x0000" /> |
| 96 | 96 | </dataarea> |
| 97 | 97 | </part> |
| 98 | 98 | </software> |
| r20467 | r20468 | |
| 103 | 103 | <publisher>Mattel</publisher> |
| 104 | 104 | <info name="serial" value="4177" /> |
| 105 | 105 | <part name="cart" interface="aquarius_cart"> |
| 106 | | <dataarea name="rom" size="16384"> |
| 107 | | <rom name="fileform.bin" size="16384" crc="a7d29abd" sha1="e46a258628a38fe8b13f85fc56e9e687963a74a3" offset="000000" /> |
| 106 | <dataarea name="rom" size="0x4000"> |
| 107 | <rom name="fileform.bin" size="0x4000" crc="a7d29abd" sha1="e46a258628a38fe8b13f85fc56e9e687963a74a3" offset="0x0000" /> |
| 108 | 108 | </dataarea> |
| 109 | 109 | </part> |
| 110 | 110 | </software> |
| r20467 | r20468 | |
| 115 | 115 | <publisher>Mattel</publisher> |
| 116 | 116 | <info name="serial" value="4178" /> |
| 117 | 117 | <part name="cart" interface="aquarius_cart"> |
| 118 | | <dataarea name="rom" size="16384"> |
| 119 | | <rom name="finform.bin" size="16384" crc="366a6a5b" sha1="c6224efc44e5974684be88e093e6fc6d9a7ea2a8" offset="000000" /> |
| 118 | <dataarea name="rom" size="0x4000"> |
| 119 | <rom name="finform.bin" size="0x4000" crc="366a6a5b" sha1="c6224efc44e5974684be88e093e6fc6d9a7ea2a8" offset="0x0000" /> |
| 120 | 120 | </dataarea> |
| 121 | 121 | </part> |
| 122 | 122 | </software> |
| r20467 | r20468 | |
| 127 | 127 | <publisher>Mattel</publisher> |
| 128 | 128 | <info name="serial" value="4391" /> |
| 129 | 129 | <part name="cart" interface="aquarius_cart"> |
| 130 | | <dataarea name="rom" size="16384"> |
| 131 | | <rom name="logo.bin" size="16384" crc="0b8d198e" sha1="8e1fa06e81f9cc02d00fceb33a794591d5ea83cd" offset="000000" /> |
| 130 | <dataarea name="rom" size="0x4000"> |
| 131 | <rom name="logo.bin" size="0x4000" crc="0b8d198e" sha1="8e1fa06e81f9cc02d00fceb33a794591d5ea83cd" offset="0x0000" /> |
| 132 | 132 | </dataarea> |
| 133 | 133 | </part> |
| 134 | 134 | </software> |
| r20467 | r20468 | |
| 138 | 138 | <year>1982</year> |
| 139 | 139 | <publisher>Mattel</publisher> |
| 140 | 140 | <part name="cart" interface="aquarius_cart"> |
| 141 | | <dataarea name="rom" size="16384"> |
| 142 | | <rom name="demo.bin" size="16384" crc="bb922570" sha1="049efcd7771c3108e4ba6ed60434f8237fb60307" offset="000000" /> |
| 141 | <dataarea name="rom" size="0x4000"> |
| 142 | <rom name="demo.bin" size="0x4000" crc="bb922570" sha1="049efcd7771c3108e4ba6ed60434f8237fb60307" offset="0x0000" /> |
| 143 | 143 | </dataarea> |
| 144 | 144 | </part> |
| 145 | 145 | </software> |
| r20467 | r20468 | |
| 150 | 150 | <publisher>Mattel</publisher> |
| 151 | 151 | <info name="serial" value="4652" /> |
| 152 | 152 | <part name="cart" interface="aquarius_cart"> |
| 153 | | <dataarea name="rom" size="16384"> |
| 154 | | <rom name="melodychase.bin" size="16384" crc="6f99dbaf" sha1="8d0742149bf71620b2dd471bd5d05f1156fbd6a6" offset="000000" /> |
| 153 | <dataarea name="rom" size="0x4000"> |
| 154 | <rom name="melodychase.bin" size="0x4000" crc="6f99dbaf" sha1="8d0742149bf71620b2dd471bd5d05f1156fbd6a6" offset="0x0000" /> |
| 155 | 155 | </dataarea> |
| 156 | 156 | </part> |
| 157 | 157 | </software> |
| r20467 | r20468 | |
| 162 | 162 | <publisher>Mattel</publisher> |
| 163 | 163 | <info name="usage" value="Modem required" /> |
| 164 | 164 | <part name="cart" interface="aquarius_cart"> |
| 165 | | <dataarea name="rom" size="16384"> |
| 166 | | <rom name="modem terminal software.bin" size="16384" crc="052dd522" sha1="35230b695470d9df1c37233107c2b29a18124f7b" offset="000000" /> |
| 165 | <dataarea name="rom" size="0x4000"> |
| 166 | <rom name="modem terminal software.bin" size="0x4000" crc="052dd522" sha1="35230b695470d9df1c37233107c2b29a18124f7b" offset="0x0000" /> |
| 167 | 167 | </dataarea> |
| 168 | 168 | </part> |
| 169 | 169 | </software> |
| r20467 | r20468 | |
| 174 | 174 | <publisher>Mattel</publisher> |
| 175 | 175 | <info name="serial" value="4595" /> |
| 176 | 176 | <part name="cart" interface="aquarius_cart"> |
| 177 | | <dataarea name="rom" size="16384"> |
| 178 | | <rom name="night stalker.bin" size="16384" crc="032ae514" sha1="3183bb81a428ce68c9919d96d91be29fcc1aad3f" offset="000000" /> |
| 177 | <dataarea name="rom" size="0x4000"> |
| 178 | <rom name="night stalker.bin" size="0x4000" crc="032ae514" sha1="3183bb81a428ce68c9919d96d91be29fcc1aad3f" offset="0x0000" /> |
| 179 | 179 | </dataarea> |
| 180 | 180 | </part> |
| 181 | 181 | </software> |
| r20467 | r20468 | |
| 185 | 185 | <year>1983</year> |
| 186 | 186 | <publisher>Mattel</publisher> |
| 187 | 187 | <part name="cart" interface="aquarius_cart"> |
| 188 | | <dataarea name="rom" size="16384"> |
| 189 | | <rom name="shark.bin" size="16384" crc="ee805a79" sha1="ddcc085699c3862ad41155e7f1a7b72396129cc5" offset="000000" /> |
| 188 | <dataarea name="rom" size="0x4000"> |
| 189 | <rom name="shark.bin" size="0x4000" crc="ee805a79" sha1="ddcc085699c3862ad41155e7f1a7b72396129cc5" offset="0x0000" /> |
| 190 | 190 | </dataarea> |
| 191 | 191 | </part> |
| 192 | 192 | </software> |
| r20467 | r20468 | |
| 197 | 197 | <publisher>Mattel</publisher> |
| 198 | 198 | <info name="serial" value="4028" /> |
| 199 | 199 | <part name="cart" interface="aquarius_cart"> |
| 200 | | <dataarea name="rom" size="16384"> |
| 201 | | <rom name="snafu.bin" size="16384" crc="aed0ea34" sha1="d65b3d4b0e3abdc844ecabbaecc6d095a27aa982" offset="000000" /> |
| 200 | <dataarea name="rom" size="0x4000"> |
| 201 | <rom name="snafu.bin" size="0x4000" crc="aed0ea34" sha1="d65b3d4b0e3abdc844ecabbaecc6d095a27aa982" offset="0x0000" /> |
| 202 | 202 | </dataarea> |
| 203 | 203 | </part> |
| 204 | 204 | </software> |
| r20467 | r20468 | |
| 209 | 209 | <publisher>Mattel</publisher> |
| 210 | 210 | <info name="serial" value="4682" /> |
| 211 | 211 | <part name="cart" interface="aquarius_cart"> |
| 212 | | <dataarea name="rom" size="16384"> |
| 213 | | <rom name="space speller.bin" size="16384" crc="49a88710" sha1="9fc967addeba5280e5e5390eaf81c3fe9ff8ab10" offset="000000" /> |
| 212 | <dataarea name="rom" size="0x4000"> |
| 213 | <rom name="space speller.bin" size="0x4000" crc="49a88710" sha1="9fc967addeba5280e5e5390eaf81c3fe9ff8ab10" offset="0x0000" /> |
| 214 | 214 | </dataarea> |
| 215 | 215 | </part> |
| 216 | 216 | </software> |
| r20467 | r20468 | |
| 221 | 221 | <publisher>Walt Disney</publisher> |
| 222 | 222 | <info name="serial" value="4024" /> |
| 223 | 223 | <part name="cart" interface="aquarius_cart"> |
| 224 | | <dataarea name="rom" size="16384"> |
| 225 | | <rom name="tron deadly discs.bin" size="16384" crc="6d6ebd1d" sha1="8750fea11e97ae754be6134d9849e3b039b78f55" offset="000000" /> |
| 224 | <dataarea name="rom" size="0x4000"> |
| 225 | <rom name="tron deadly discs.bin" size="0x4000" crc="6d6ebd1d" sha1="8750fea11e97ae754be6134d9849e3b039b78f55" offset="0x0000" /> |
| 226 | 226 | </dataarea> |
| 227 | 227 | </part> |
| 228 | 228 | </software> |
| r20467 | r20468 | |
| 233 | 233 | <publisher>Mattel</publisher> |
| 234 | 234 | <info name="serial" value="4596" /> |
| 235 | 235 | <part name="cart" interface="aquarius_cart"> |
| 236 | | <dataarea name="rom" size="16384"> |
| 237 | | <rom name="utopia.bin" size="16384" crc="1fc3002e" sha1="b9244274929cad68afb978e991edde1fc282f172" offset="000000" /> |
| 236 | <dataarea name="rom" size="0x4000"> |
| 237 | <rom name="utopia.bin" size="0x4000" crc="1fc3002e" sha1="b9244274929cad68afb978e991edde1fc282f172" offset="0x0000" /> |
| 238 | 238 | </dataarea> |
| 239 | 239 | </part> |
| 240 | 240 | </software> |
| r20467 | r20468 | |
| 244 | 244 | <year>1986</year> |
| 245 | 245 | <publisher>Balen</publisher> |
| 246 | 246 | <part name="cart" interface="aquarius_cart"> |
| 247 | | <dataarea name="rom" size="16384"> |
| 248 | | <rom name="word processor.bin" size="16384" crc="807557d7" sha1="38ae9507c0d4b7765a678458acf6a894b8b47d29" offset="000000" /> |
| 247 | <dataarea name="rom" size="0x4000"> |
| 248 | <rom name="word processor.bin" size="0x4000" crc="807557d7" sha1="38ae9507c0d4b7765a678458acf6a894b8b47d29" offset="0x0000" /> |
| 249 | 249 | </dataarea> |
| 250 | 250 | </part> |
| 251 | 251 | </software> |
| r20467 | r20468 | |
| 256 | 256 | <publisher>Mattel</publisher> |
| 257 | 257 | <info name="serial" value="4895C" /> |
| 258 | 258 | <part name="cart" interface="aquarius_cart"> |
| 259 | | <dataarea name="rom" size="8192"> |
| 260 | | <rom name="zeroin.bin" size="8192" crc="277f1716" sha1="a256a18d5e9c5d03a8610c5de58cb8725de0247c" offset="000000" /> |
| 259 | <dataarea name="rom" size="0x2000"> |
| 260 | <rom name="zeroin.bin" size="0x2000" crc="277f1716" sha1="a256a18d5e9c5d03a8610c5de58cb8725de0247c" offset="0x0000" /> |
| 261 | 261 | </dataarea> |
| 262 | 262 | </part> |
| 263 | 263 | </software> |
| 264 | 264 | |
| 265 | <software name="quikdisk"> |
| 266 | <description>Quick Disk</description> |
| 267 | <year>198?</year> |
| 268 | <publisher>Radofin Electronics</publisher> |
| 269 | <part name="cart" interface="aquarius_cart"> |
| 270 | <dataarea name="rom" size="0x8000"> |
| 271 | <rom name="qd1_01.bin" size="0x4000" crc="06dc0ef3" sha1="94b18c2f3f4baca8f5ab0feb2458c88b1682f8b2" offset="0x0000" /> |
| 272 | <rom name="qd1_02.bin" size="0x4000" crc="10fb3dca" sha1="ea38ce45628c9d9e4e633c7638e8d860a40c3ffa" offset="0x4000" /> |
| 273 | </dataarea> |
| 274 | </part> |
| 275 | </software> |
| 276 | |
| 265 | 277 | </softwarelist> |
| | No newline at end of file |
trunk/src/mess/drivers/aquarius.c
| r20467 | r20468 | |
| 5 | 5 | |
| 6 | 6 | TODO: |
| 7 | 7 | |
| 8 | - slot interface for cartridges |
| 8 | 9 | - hand controllers |
| 9 | 10 | - scramble RAM also |
| 10 | 11 | - CAQ tape support |
| 11 | 12 | - memory mapper |
| 12 | 13 | - proper video timings |
| 13 | 14 | - PAL mode |
| 14 | | - floppy support |
| 15 | - floppy support (I/O 0xe6-0xe7 = drive 1, 0xea-0xeb = drive 2) |
| 15 | 16 | - modem |
| 16 | 17 | - "old" version of BASIC ROM |
| 17 | 18 | - Aquarius II |
| 18 | 19 | |
| 19 | 20 | ***************************************************************************/ |
| 20 | 21 | |
| 21 | | #include "emu.h" |
| 22 | 22 | #include "includes/aquarius.h" |
| 23 | | #include "cpu/z80/z80.h" |
| 24 | | #include "sound/ay8910.h" |
| 25 | | #include "sound/speaker.h" |
| 26 | | #include "imagedev/flopdrv.h" |
| 27 | | #include "formats/basicdsk.h" |
| 28 | | #include "imagedev/cartslot.h" |
| 29 | | #include "imagedev/cassette.h" |
| 30 | | #include "imagedev/printer.h" |
| 31 | | #include "machine/ram.h" |
| 32 | 23 | |
| 33 | 24 | /*************************************************************************** |
| 34 | 25 | CONSTANTS |
| r20467 | r20468 | |
| 61 | 52 | */ |
| 62 | 53 | READ8_MEMBER(aquarius_state::cassette_r) |
| 63 | 54 | { |
| 64 | | cassette_image_device *cassette = machine().device<cassette_image_device>(CASSETTE_TAG); |
| 65 | | return ((cassette)->input() < +0.0) ? 0 : 1; |
| 55 | return ((m_cassette)->input() < +0.0) ? 0 : 1; |
| 66 | 56 | } |
| 67 | 57 | |
| 68 | 58 | |
| r20467 | r20468 | |
| 73 | 63 | */ |
| 74 | 64 | WRITE8_MEMBER(aquarius_state::cassette_w) |
| 75 | 65 | { |
| 76 | | device_t *speaker = machine().device(SPEAKER_TAG); |
| 77 | | cassette_image_device *cassette = machine().device<cassette_image_device>(CASSETTE_TAG); |
| 78 | | |
| 79 | | speaker_level_w(speaker, BIT(data, 0)); |
| 80 | | cassette->output( BIT(data, 0) ? +1.0 : -1.0); |
| 66 | speaker_level_w(m_speaker, BIT(data, 0)); |
| 67 | m_cassette->output( BIT(data, 0) ? +1.0 : -1.0); |
| 81 | 68 | } |
| 82 | 69 | |
| 83 | 70 | |
| r20467 | r20468 | |
| 95 | 82 | */ |
| 96 | 83 | READ8_MEMBER(aquarius_state::vsync_r) |
| 97 | 84 | { |
| 98 | | screen_device *screen = machine().primary_screen; |
| 99 | | return screen->vblank() ? 0 : 1; |
| 85 | return m_screen->vblank() ? 0 : 1; |
| 100 | 86 | } |
| 101 | 87 | |
| 102 | 88 | |
| r20467 | r20468 | |
| 147 | 133 | { |
| 148 | 134 | UINT8 result = 0xff; |
| 149 | 135 | |
| 150 | | if (!BIT(offset, 8)) result &= ioport("ROW0")->read(); |
| 151 | | if (!BIT(offset, 9)) result &= ioport("ROW1")->read(); |
| 152 | | if (!BIT(offset, 10)) result &= ioport("ROW2")->read(); |
| 153 | | if (!BIT(offset, 11)) result &= ioport("ROW3")->read(); |
| 154 | | if (!BIT(offset, 12)) result &= ioport("ROW4")->read(); |
| 155 | | if (!BIT(offset, 13)) result &= ioport("ROW5")->read(); |
| 156 | | if (!BIT(offset, 14)) result &= ioport("ROW6")->read(); |
| 157 | | if (!BIT(offset, 15)) result &= ioport("ROW7")->read(); |
| 136 | if (!BIT(offset, 8)) result &= m_y0->read(); |
| 137 | if (!BIT(offset, 9)) result &= m_y1->read(); |
| 138 | if (!BIT(offset, 10)) result &= m_y2->read(); |
| 139 | if (!BIT(offset, 11)) result &= m_y3->read(); |
| 140 | if (!BIT(offset, 12)) result &= m_y4->read(); |
| 141 | if (!BIT(offset, 13)) result &= m_y5->read(); |
| 142 | if (!BIT(offset, 14)) result &= m_y6->read(); |
| 143 | if (!BIT(offset, 15)) result &= m_y7->read(); |
| 158 | 144 | |
| 159 | 145 | return result; |
| 160 | 146 | } |
| r20467 | r20468 | |
| 191 | 177 | |
| 192 | 178 | |
| 193 | 179 | /*************************************************************************** |
| 194 | | QUICK DISK DRIVE |
| 195 | | ***************************************************************************/ |
| 196 | | |
| 197 | | /* note: 0xe6-0xe7 = drive 1, 0xea-0xeb = drive 2 */ |
| 198 | | READ8_MEMBER(aquarius_state::floppy_r) |
| 199 | | { |
| 200 | | logerror("%s: floppy_r[0x%02x]\n", machine().describe_context(), offset); |
| 201 | | return 0xff; |
| 202 | | } |
| 203 | | |
| 204 | | WRITE8_MEMBER(aquarius_state::floppy_w) |
| 205 | | { |
| 206 | | logerror("%s: floppy_w[0x%02x] (0x%02x)\n", machine().describe_context(), offset, data); |
| 207 | | } |
| 208 | | |
| 209 | | |
| 210 | | /*************************************************************************** |
| 211 | 180 | DRIVER INIT |
| 212 | 181 | ***************************************************************************/ |
| 213 | 182 | |
| r20467 | r20468 | |
| 216 | 185 | /* install expansion memory if available */ |
| 217 | 186 | if (machine().device<ram_device>(RAM_TAG)->size() > 0x1000) |
| 218 | 187 | { |
| 219 | | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 188 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 220 | 189 | |
| 221 | 190 | space.install_readwrite_bank(0x4000, 0x4000 + machine().device<ram_device>(RAM_TAG)->size() - 0x1000 - 1, "bank1"); |
| 222 | 191 | membank("bank1")->set_base(machine().device<ram_device>(RAM_TAG)->pointer()); |
| r20467 | r20468 | |
| 247 | 216 | AM_RANGE(0xff, 0xff) AM_MIRROR(0xff00) AM_MASK(0xff00) AM_READWRITE(keyboard_r, scrambler_w) |
| 248 | 217 | ADDRESS_MAP_END |
| 249 | 218 | |
| 250 | | static ADDRESS_MAP_START( aquarius_qd_io, AS_IO, 8, aquarius_state ) |
| 251 | | AM_IMPORT_FROM(aquarius_io) |
| 252 | | AM_RANGE(0xe0, 0xef) AM_MIRROR(0xff00) AM_READWRITE(floppy_r, floppy_w) |
| 253 | | ADDRESS_MAP_END |
| 254 | 219 | |
| 255 | | |
| 256 | 220 | /*************************************************************************** |
| 257 | 221 | INPUT PORTS |
| 258 | 222 | ***************************************************************************/ |
| r20467 | r20468 | |
| 260 | 224 | /* the 'reset' key is directly tied to the reset line of the cpu */ |
| 261 | 225 | INPUT_CHANGED_MEMBER(aquarius_state::aquarius_reset) |
| 262 | 226 | { |
| 263 | | machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE); |
| 227 | m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE); |
| 264 | 228 | } |
| 265 | 229 | |
| 266 | 230 | static INPUT_PORTS_START( aquarius ) |
| 267 | | PORT_START("ROW0") |
| 231 | PORT_START("Y0") |
| 268 | 232 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("= +\tNEXT") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+') |
| 269 | 233 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x90 \\") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_CHAR('\\') |
| 270 | 234 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(": *\tPEEK") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') |
| r20467 | r20468 | |
| 273 | 237 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(". >\tVAL") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') |
| 274 | 238 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 275 | 239 | |
| 276 | | PORT_START("ROW1") |
| 240 | PORT_START("Y1") |
| 277 | 241 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("- _\tFOR") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_') |
| 278 | 242 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("/ ^") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('/') PORT_CHAR('^') |
| 279 | 243 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("0 ?") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('?') |
| r20467 | r20468 | |
| 282 | 246 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(", <\tSTR$") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') |
| 283 | 247 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 284 | 248 | |
| 285 | | PORT_START("ROW2") |
| 249 | PORT_START("Y2") |
| 286 | 250 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("9 )\tCOPY") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') |
| 287 | 251 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_CHAR(15) |
| 288 | 252 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("K\tPRESET") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_CHAR(11) |
| r20467 | r20468 | |
| 291 | 255 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("J\tPSET") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_CHAR(10) |
| 292 | 256 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 293 | 257 | |
| 294 | | PORT_START("ROW3") |
| 258 | PORT_START("Y3") |
| 295 | 259 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("8 (\tRETURN") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') |
| 296 | 260 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_CHAR(9) |
| 297 | 261 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("7 '\tGOSUB") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') |
| r20467 | r20468 | |
| 300 | 264 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("B\tMID$") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') PORT_CHAR(2) |
| 301 | 265 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 302 | 266 | |
| 303 | | PORT_START("ROW4") |
| 267 | PORT_START("Y4") |
| 304 | 268 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("6 &\tON") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') |
| 305 | 269 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_CHAR(25) |
| 306 | 270 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("G\tBELL") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_CHAR(7) |
| r20467 | r20468 | |
| 309 | 273 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F\tDATA") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') PORT_CHAR(6) |
| 310 | 274 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 311 | 275 | |
| 312 | | PORT_START("ROW5") |
| 276 | PORT_START("Y5") |
| 313 | 277 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("5 %\tGOTO") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') |
| 314 | 278 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("T\tINPUT") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') PORT_CHAR(20) |
| 315 | 279 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("4 $\tTHEN") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') |
| r20467 | r20468 | |
| 318 | 282 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("X\tDELINE") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') PORT_CHAR(24) |
| 319 | 283 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 320 | 284 | |
| 321 | | PORT_START("ROW6") |
| 285 | PORT_START("Y6") |
| 322 | 286 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("3 #\tIF") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') |
| 323 | 287 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("E\tDIM") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') PORT_CHAR(5) |
| 324 | 288 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("S\tSTPLST") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') PORT_CHAR(19) |
| r20467 | r20468 | |
| 327 | 291 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A\tCSAVE") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_CHAR(1) |
| 328 | 292 | PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 329 | 293 | |
| 330 | | PORT_START("ROW7") |
| 294 | PORT_START("Y7") |
| 331 | 295 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("2 \"\tLIST") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') |
| 332 | 296 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("W\tREM") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_CHAR(23) |
| 333 | 297 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("1 !\tRUN") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') |
| r20467 | r20468 | |
| 420 | 384 | MCFG_SOUND_CONFIG(aquarius_ay8910_interface) |
| 421 | 385 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 422 | 386 | |
| 423 | | /* printer */ |
| 424 | | MCFG_PRINTER_ADD("printer") |
| 425 | | |
| 426 | 387 | /* cassette */ |
| 427 | 388 | MCFG_CASSETTE_ADD( CASSETTE_TAG, aquarius_cassette_interface ) |
| 428 | 389 | |
| r20467 | r20468 | |
| 441 | 402 | MCFG_SOFTWARE_LIST_ADD("cart_list","aquarius") |
| 442 | 403 | MACHINE_CONFIG_END |
| 443 | 404 | |
| 444 | | static LEGACY_FLOPPY_OPTIONS_START(aquarius) |
| 445 | | /* 128K images, 64K/side */ |
| 446 | | LEGACY_FLOPPY_OPTIONS_END |
| 447 | 405 | |
| 448 | | static const floppy_interface aquarius_floppy_interface = |
| 449 | | { |
| 450 | | DEVCB_NULL, |
| 451 | | DEVCB_NULL, |
| 452 | | DEVCB_NULL, |
| 453 | | DEVCB_NULL, |
| 454 | | DEVCB_NULL, |
| 455 | | FLOPPY_STANDARD_5_25_DSHD, |
| 456 | | LEGACY_FLOPPY_OPTIONS_NAME(aquarius), |
| 457 | | NULL, |
| 458 | | NULL |
| 459 | | }; |
| 460 | | |
| 461 | | static MACHINE_CONFIG_DERIVED( aquarius_qd, aquarius ) |
| 462 | | |
| 463 | | MCFG_CPU_MODIFY("maincpu") |
| 464 | | MCFG_CPU_IO_MAP(aquarius_qd_io) |
| 465 | | |
| 466 | | MCFG_DEVICE_REMOVE("cart") |
| 467 | | MCFG_DEVICE_REMOVE("cart_list") |
| 468 | | |
| 469 | | MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(aquarius_floppy_interface) |
| 470 | | MACHINE_CONFIG_END |
| 471 | | |
| 472 | | |
| 473 | 406 | /*************************************************************************** |
| 474 | 407 | ROM DEFINITIONS |
| 475 | 408 | ***************************************************************************/ |
| r20467 | r20468 | |
| 492 | 425 | ROM_LOAD("aq2.u5", 0x000, 0x800, CRC(e117f57c) SHA1(3588c0267c67dfbbda615bcf8dc3d3a5c5bd815a)) |
| 493 | 426 | ROM_END |
| 494 | 427 | |
| 495 | | ROM_START( aquarius_qd ) |
| 496 | | ROM_REGION(0x10000, "maincpu", 0) |
| 497 | 428 | |
| 498 | | /* basic rom */ |
| 499 | | ROM_DEFAULT_BIOS("rev2") |
| 500 | | ROM_SYSTEM_BIOS(0, "rev1", "Revision 1") |
| 501 | | ROMX_LOAD("aq1.u2", 0x0000, 0x2000, NO_DUMP, ROM_BIOS(1)) |
| 502 | | ROM_SYSTEM_BIOS(1, "rev2", "Revision 2") |
| 503 | | ROMX_LOAD("aq2.u2", 0x0000, 0x2000, CRC(a2d15bcf) SHA1(ca6ef55e9ead41453efbf5062d6a60285e9661a6), ROM_BIOS(2)) |
| 504 | | |
| 505 | | /* quickdisk floppy drive */ |
| 506 | | ROM_LOAD("qd1_01.bin", 0xc000, 0x4000, CRC(06dc0ef3) SHA1(94b18c2f3f4baca8f5ab0feb2458c88b1682f8b2)) |
| 507 | | ROM_LOAD("qd1_02.bin", 0xc000, 0x4000, CRC(10fb3dca) SHA1(ea38ce45628c9d9e4e633c7638e8d860a40c3ffa)) |
| 508 | | |
| 509 | | /* charrom */ |
| 510 | | ROM_REGION(0x800, "gfx1", 0) |
| 511 | | ROM_LOAD("aq2.u5", 0x000, 0x800, CRC(e117f57c) SHA1(3588c0267c67dfbbda615bcf8dc3d3a5c5bd815a)) |
| 512 | | ROM_END |
| 513 | | |
| 514 | | |
| 515 | 429 | /*************************************************************************** |
| 516 | 430 | GAME DRIVERS |
| 517 | 431 | ***************************************************************************/ |
| 518 | 432 | |
| 519 | 433 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ |
| 520 | 434 | COMP( 1983, aquarius, 0, 0, aquarius, aquarius, aquarius_state, aquarius, "Mattel", "Aquarius (NTSC)", 0 ) |
| 521 | | COMP( 1983, aquarius_qd, aquarius, 0, aquarius_qd, aquarius, aquarius_state, aquarius, "Mattel", "Aquarius w/ Quick Disk (NTSC)", 0 ) |
| 522 | 435 | //COMP( 1984, aquariu2, aquarius, 0, aquarius, aquarius, driver_device, 0, "Mattel", "Aquarius II", GAME_NOT_WORKING ) |