src/mess/machine/aim65.c
| r766 | r767 | |
| 149 | 149 | |
| 150 | 150 | static READ8_HANDLER( aim65_riot_b_r ) |
| 151 | 151 | { |
| 152 | | int data = 0xff; |
| 152 | char portname[11]; |
| 153 | int row, data = 0xff; |
| 153 | 154 | |
| 154 | | if (!(riot_port_a & 0x01)) { |
| 155 | | if (KEY_SPACE) data &= ~0x01; |
| 156 | | //right? |
| 157 | | if (KEY_POINT) data &= ~0x04; |
| 158 | | if (KEY_M) data &= ~0x08; |
| 159 | | if (KEY_B) data &= ~0x10; |
| 160 | | if (KEY_C) data &= ~0x20; |
| 161 | | if (KEY_Z) data &= ~0x40; |
| 162 | | //right? |
| 155 | /* scan keyboard rows */ |
| 156 | for (row = 0; row < 8; row++) { |
| 157 | sprintf(portname, "keyboard_%d", row); |
| 158 | if (!(riot_port_a & (1 << row))) |
| 159 | data &= readinputportbytag(portname); |
| 163 | 160 | } |
| 164 | 161 | |
| 165 | | if (!(riot_port_a & 0x02)) { |
| 166 | | if (KEY_DEL) data &= ~0x01; //backspace 0x08 |
| 167 | | if (KEY_LF) data &= ~0x02; //0x60 |
| 168 | | if (KEY_L) data &= ~0x04; |
| 169 | | if (KEY_J) data &= ~0x08; |
| 170 | | if (KEY_G) data &= ~0x10; |
| 171 | | if (KEY_D) data &= ~0x20; |
| 172 | | if (KEY_A) data &= ~0x40; |
| 173 | | //right? |
| 174 | | } |
| 175 | | |
| 176 | | if (!(riot_port_a & 0x04)) { |
| 177 | | //right? |
| 178 | | if (KEY_PRINT) data &= ~0x02; // backslash |
| 179 | | if (KEY_P) data &= ~0x04; |
| 180 | | if (KEY_I) data &= ~0x08; |
| 181 | | if (KEY_Y) data &= ~0x10; |
| 182 | | if (KEY_R) data &= ~0x20; |
| 183 | | if (KEY_W) data &= ~0x40; |
| 184 | | if (KEY_ESC) data &= ~0x80; //0x1b |
| 185 | | } |
| 186 | | |
| 187 | | if (!(riot_port_a & 0x08)) { |
| 188 | | if (KEY_RETURN) data &= ~0x01; |
| 189 | | //right? |
| 190 | | if (KEY_MINUS) data &= ~0x04; |
| 191 | | if (KEY_O) data &= ~0x08; |
| 192 | | if (KEY_U) data &= ~0x10; |
| 193 | | if (KEY_T) data &= ~0x20; |
| 194 | | if (KEY_E) data &= ~0x40; |
| 195 | | if (KEY_Q) data &= ~0x80; |
| 196 | | } |
| 197 | | |
| 198 | | if (!(riot_port_a & 0x10)) { |
| 199 | | if (KEY_CRTL) data &= ~0x01; |
| 200 | | //right? |
| 201 | | if (KEY_COLON) data &= ~0x04; |
| 202 | | if (KEY_9) data &= ~0x08; |
| 203 | | if (KEY_7) data &= ~0x10; |
| 204 | | if (KEY_5) data &= ~0x20; |
| 205 | | if (KEY_3) data &= ~0x40; |
| 206 | | if (KEY_1) data &= ~0x80; |
| 207 | | } |
| 208 | | |
| 209 | | if (!(riot_port_a & 0x20)) { |
| 210 | | if (KEY_LEFT_SHIFT) data &= ~0x01; |
| 211 | | //right? |
| 212 | | if (KEY_0) data &= ~0x04; |
| 213 | | if (KEY_8) data &= ~0x08; |
| 214 | | if (KEY_6) data &= ~0x10; |
| 215 | | if (KEY_4) data &= ~0x20; |
| 216 | | if (KEY_2) data &= ~0x40; |
| 217 | | if (KEY_F3) data &= ~0x80; //^ 0x5e |
| 218 | | } |
| 219 | | |
| 220 | | if (!(riot_port_a & 0x40)) { |
| 221 | | if (KEY_RIGHT_SHIFT) data &= ~0x01; |
| 222 | | if (KEY_DEL) data &= ~0x02; //backspace 0x08 |
| 223 | | if (KEY_SEMICOLON) data &= ~0x04; |
| 224 | | if (KEY_K) data &= ~0x08; |
| 225 | | if (KEY_H) data &= ~0x10; |
| 226 | | if (KEY_F) data &= ~0x20; |
| 227 | | if (KEY_S) data &= ~0x40; |
| 228 | | if (KEY_F2) data &= ~0x80; |
| 229 | | } |
| 230 | | |
| 231 | | if (!(riot_port_a & 0x80)) { |
| 232 | | if (KEY_SLASH) data &=~0x04; |
| 233 | | if (KEY_COMMA) data &=~0x08; |
| 234 | | if (KEY_N) data &= ~0x10; |
| 235 | | if (KEY_V) data &= ~0x20; |
| 236 | | if (KEY_X) data &= ~0x40; |
| 237 | | if (KEY_F1) data &= ~0x80; |
| 238 | | } |
| 239 | | |
| 240 | 162 | return data; |
| 241 | 163 | } |
| 242 | 164 | |
| r766 | r767 | |
| 247 | 169 | } |
| 248 | 170 | |
| 249 | 171 | |
| 172 | void aim65_riot_irq(int state) |
| 173 | { |
| 174 | cpunum_set_input_line(0, M6502_IRQ_LINE, state ? HOLD_LINE : CLEAR_LINE); |
| 175 | } |
| 176 | |
| 177 | |
| 250 | 178 | static const struct riot6532_interface r6532_interface = |
| 251 | 179 | { |
| 252 | 180 | NULL, |
| 253 | 181 | aim65_riot_b_r, |
| 254 | 182 | aim65_riot_a_w, |
| 255 | | NULL |
| 183 | NULL, |
| 184 | aim65_riot_irq |
| 256 | 185 | }; |
| 257 | 186 | |
| 258 | 187 | |
| r766 | r767 | |
| 276 | 205 | |
| 277 | 206 | static READ8_HANDLER( aim65_via0_b_r ) |
| 278 | 207 | { |
| 279 | | return readinputport(4); |
| 208 | return readinputportbytag("switches"); |
| 280 | 209 | } |
| 281 | 210 | |
| 282 | 211 | |
src/mess/drivers/aim65.c
| r766 | r767 | |
| 1 | 1 | /****************************************************************************** |
| 2 | 2 | PeT mess@utanet.at Nov 2000 |
| 3 | 3 | Updated by Dan Boris, 3/4/2007 |
| 4 | Rewrite in progress, Dirk Best, 2007-07-31 |
| 4 | 5 | |
| 5 | 6 | ToDo: |
| 6 | 7 | - Printer. Tried to implement this but it was not working, currently disabled. |
| 7 | | - Artwork. |
| 8 | 8 | - Tape interface |
| 9 | | - User VIA (not really necessary since it only interfaces to external devices) |
| 10 | 9 | |
| 11 | 10 | ******************************************************************************/ |
| 12 | 11 | |
| 12 | |
| 13 | 13 | #include "driver.h" |
| 14 | 14 | #include "includes/aim65.h" |
| 15 | 15 | |
| r766 | r767 | |
| 26 | 26 | #include "aim65.lh" |
| 27 | 27 | |
| 28 | 28 | |
| 29 | |
| 30 | /****************************************************************************** |
| 31 | Memory Maps |
| 32 | ******************************************************************************/ |
| 33 | |
| 34 | |
| 29 | 35 | /* Note: RAM is mapped dynamically in machine/aim65.c */ |
| 30 | 36 | static ADDRESS_MAP_START( aim65_mem , ADDRESS_SPACE_PROGRAM, 8 ) |
| 31 | 37 | AM_RANGE( 0x1000, 0x9fff ) AM_NOP /* User available expansions */ |
| r766 | r767 | |
| 43 | 49 | ADDRESS_MAP_END |
| 44 | 50 | |
| 45 | 51 | |
| 52 | |
| 53 | /****************************************************************************** |
| 54 | Input Ports |
| 55 | ******************************************************************************/ |
| 56 | |
| 57 | |
| 46 | 58 | INPUT_PORTS_START( aim65 ) |
| 47 | | PORT_START |
| 48 | | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') |
| 49 | | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') |
| 50 | | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') |
| 51 | | PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') |
| 52 | | PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') |
| 53 | | PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') |
| 54 | | PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') |
| 55 | | PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') |
| 56 | | PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') |
| 57 | | PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 58 | | PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(':') PORT_CHAR('*') |
| 59 | | PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(UCHAR_MAMEKEY(F3)) |
| 60 | | PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PRINT") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(PRTSCR)) |
| 59 | PORT_START_TAG("keyboard_0") |
| 60 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') |
| 61 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 62 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') |
| 63 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') |
| 64 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') |
| 65 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') |
| 66 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') |
| 67 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 68 | |
| 69 | PORT_START_TAG("keyboard_1") |
| 70 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 71 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LF @") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(10) PORT_CHAR('@') |
| 72 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') |
| 73 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') |
| 74 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') |
| 75 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') |
| 76 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') |
| 77 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) |
| 78 | |
| 79 | PORT_START_TAG("keyboard_2") |
| 80 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 81 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PRINT") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(UCHAR_MAMEKEY(PRTSCR)) |
| 82 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') |
| 83 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') |
| 84 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') |
| 85 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') |
| 86 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') |
| 87 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(ESC)) |
| 61 | 88 | |
| 62 | | PORT_START |
| 63 | | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(ESC)) |
| 64 | | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') |
| 65 | | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') |
| 66 | | PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') |
| 67 | | PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') |
| 68 | | PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') |
| 69 | | PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') |
| 70 | | PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') |
| 71 | | PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') |
| 72 | | PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') |
| 73 | | PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') |
| 74 | | PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('-') PORT_CHAR('=') |
| 75 | | PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(UCHAR_MAMEKEY(F2)) |
| 76 | | PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) |
| 89 | PORT_START_TAG("keyboard_3") |
| 90 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) |
| 91 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 92 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('-') PORT_CHAR('=') |
| 93 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') |
| 94 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') |
| 95 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') |
| 96 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') |
| 97 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') |
| 77 | 98 | |
| 78 | | PORT_START |
| 79 | | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CRTL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) |
| 80 | | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') |
| 81 | | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') |
| 82 | | PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') |
| 83 | | PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') |
| 84 | | PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') |
| 85 | | PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') |
| 86 | | PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') |
| 87 | | PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') |
| 88 | | PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') |
| 89 | | PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') |
| 90 | | PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LF @") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(10) PORT_CHAR('@') |
| 91 | | PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(UCHAR_MAMEKEY(F1)) |
| 92 | | PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) |
| 99 | PORT_START_TAG("keyboard_4") |
| 100 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2) |
| 101 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 102 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(':') PORT_CHAR('*') |
| 103 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') |
| 104 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') |
| 105 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') |
| 106 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') |
| 107 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') |
| 93 | 108 | |
| 94 | | PORT_START |
| 95 | | PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) |
| 96 | | PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') |
| 97 | | PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') |
| 98 | | PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') |
| 99 | | PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') |
| 100 | | PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') |
| 101 | | PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') |
| 102 | | PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') |
| 103 | | PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') |
| 104 | | PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') |
| 105 | | PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') |
| 106 | | PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) |
| 107 | | PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') |
| 109 | PORT_START_TAG("keyboard_5") |
| 110 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LSHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) |
| 111 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 112 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0') |
| 113 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') |
| 114 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') |
| 115 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') |
| 116 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"') |
| 117 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(UCHAR_MAMEKEY(F3)) |
| 108 | 118 | |
| 109 | | PORT_START |
| 119 | PORT_START_TAG("keyboard_6") |
| 120 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RSHIFT") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) |
| 121 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("DEL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) |
| 122 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') |
| 123 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') |
| 124 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') |
| 125 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') |
| 126 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') |
| 127 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(UCHAR_MAMEKEY(F2)) |
| 128 | |
| 129 | PORT_START_TAG("keyboard_7") |
| 130 | PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) |
| 131 | PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNUSED) |
| 132 | PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') |
| 133 | PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') |
| 134 | PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') |
| 135 | PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') |
| 136 | PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') |
| 137 | PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR(UCHAR_MAMEKEY(F1)) |
| 138 | |
| 139 | PORT_START_TAG("switches") |
| 110 | 140 | PORT_DIPNAME(0x08, 0x08, "Terminal") |
| 111 | 141 | PORT_DIPSETTING( 0x00, "TTY") |
| 112 | 142 | PORT_DIPSETTING( 0x08, "Keyboard") |
| 113 | 143 | INPUT_PORTS_END |
| 114 | 144 | |
| 115 | 145 | |
| 146 | |
| 147 | /****************************************************************************** |
| 148 | Machine Drivers |
| 149 | ******************************************************************************/ |
| 150 | |
| 151 | |
| 116 | 152 | static MACHINE_DRIVER_START( aim65 ) |
| 117 | 153 | /* basic machine hardware */ |
| 118 | 154 | MDRV_CPU_ADD(M6502, 1000000) |
| r766 | r767 | |
| 128 | 164 | MACHINE_DRIVER_END |
| 129 | 165 | |
| 130 | 166 | |
| 167 | |
| 168 | /****************************************************************************** |
| 169 | ROM Definitions |
| 170 | ******************************************************************************/ |
| 171 | |
| 172 | |
| 131 | 173 | ROM_START(aim65) |
| 132 | 174 | ROM_REGION(0x10000,REGION_CPU1, 0) |
| 133 | 175 | ROM_LOAD_OPTIONAL ("aim65bas.z26", 0xb000, 0x1000, CRC(36a61f39) SHA1(f5ce0126cb594a565e730973fd140d03c298cefa) ) |
| r766 | r767 | |
| 138 | 180 | ROM_END |
| 139 | 181 | |
| 140 | 182 | |
| 183 | |
| 184 | /****************************************************************************** |
| 185 | System Config |
| 186 | ******************************************************************************/ |
| 187 | |
| 188 | |
| 141 | 189 | SYSTEM_CONFIG_START(aim65) |
| 142 | 190 | CONFIG_RAM_DEFAULT (4 * 1024) /* 4KB RAM */ |
| 143 | 191 | CONFIG_RAM (3 * 1024) /* 3KB RAM */ |
| r766 | r767 | |
| 146 | 194 | SYSTEM_CONFIG_END |
| 147 | 195 | |
| 148 | 196 | |
| 149 | | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME */ |
| 197 | |
| 198 | /****************************************************************************** |
| 199 | Drivers |
| 200 | ******************************************************************************/ |
| 201 | |
| 202 | |
| 203 | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */ |
| 150 | 204 | COMP(1977, aim65, 0, 0, aim65, aim65, aim65, aim65, "Rockwell", "AIM 65", 0) |