Previous 199869 Revisions Next

r29516 Thursday 10th April, 2014 at 19:40:11 UTC by Tafoid
(MESS) rainbow.c : unmap unavailable RAM. Hard limits and 'floating bus' code removed. [Bavarese]

(MESS) dec_lk201.c : KEYCODE_2 corrected.  RIGHT CONTROL now triggers DO. [Bavarese]
[src/mess/drivers]rainbow.c
[src/mess/machine]dec_lk201.c

trunk/src/mess/drivers/rainbow.c
r29515r29516
168168W17 pulls J1 serial  port pin 1 to GND when set (chassis to logical GND).
169169****************************************************************************/
170170
171// Define standard and maximum RAM sizes (A, then B model):
172//#define BOARD_RAM 0x10000  // 64 K base RAM  (100-A)
173//#define END_OF_RAM 0xcffff // very last byte (100-A) DO NOT CHANGE.
174
175// DEC-100-B probes until a 'flaky' area is found (BOOT ROM around F400:0E04).
176// It is no longer possible to key in the RAM size from within the 100-B BIOS.
177#define BOARD_RAM 0x20000  // 128 K base RAM (100-B)
178#define END_OF_RAM 0xdffff // very last byte (100-B) DO NOT CHANGE.
179
180// TROUBLESHOOTING RAM
181// Unexpected low RAM sizes are an indication of option RAM (at worst: 128 K on board) failure.
182// While motherboard errors often render the system unbootable, bad option RAM (> 128 K)
183// can be narrowed down with the Diagnostic Disk and codes from the 'Pocket Service Guide'
184// EK-PC100-PS-002 (APPENDIX B.2.2); pc100ps2.pdf
185
186
171187// Workaround DOES NOT APPLY to the 190-B ROM. Only enable when compiling the 'rainbow' driver -
172188//#define FORCE_RAINBOW_100_LOGO
173189
r29515r29516
203219      m_inp7(*this, "GRAPHICS OPTION"),
204220      m_inp8(*this, "MEMORY PRESENT"),
205221      m_inp9(*this, "MONITOR TYPE"),
222      m_inp10(*this, "J17"),
206223
207224      m_crtc(*this, "vt100_video"),
208225      m_i8088(*this, "maincpu"),
r29515r29516
232249   DECLARE_READ8_MEMBER(share_z80_r);
233250   DECLARE_WRITE8_MEMBER(share_z80_w);
234251
235   DECLARE_READ8_MEMBER(floating_bus_r);
236   DECLARE_WRITE8_MEMBER(floating_bus_w);
237
238252   DECLARE_READ8_MEMBER(hd_status_68_r);
239253
240254   DECLARE_READ8_MEMBER(i8088_latch_r);
r29515r29516
285299   required_ioport m_inp7;
286300   required_ioport m_inp8;
287301   required_ioport m_inp9;
302   required_ioport m_inp10;
288303
289304   required_device<rainbow_video_device> m_crtc;
290305   required_device<cpu_device> m_i8088;
r29515r29516
368383static ADDRESS_MAP_START( rainbow8088_map, AS_PROGRAM, 8, rainbow_state)
369384   ADDRESS_MAP_UNMAP_HIGH
370385   AM_RANGE(0x00000, 0x0ffff) AM_RAM AM_SHARE("sh_ram")
371   AM_RANGE(0x10000, 0x1ffff) AM_RAM
386   AM_RANGE(0x10000, END_OF_RAM) AM_RAM
372387
373   // test at f4e00 - f4e1c
374   AM_RANGE(0x20000, 0xdffff) AM_READWRITE(floating_bus_r,floating_bus_w)
375   AM_RANGE(0x20000, 0xdffff) AM_RAM
376
377388   // Documentation claims there is a 256 x 4 bit NVRAM from 0xed000 to 0xed040 (*)
378389   //   shadowed at $ec000 - $ecfff and from $ed040 - $edfff.
379390
r29515r29516
475486      PORT_DIPSETTING(    0x02, "GREEN" )
476487      PORT_DIPSETTING(    0x03, "AMBER" )
477488
489   // MEMORY, FLOPPY, BUNDLE, GRAPHICS affect 'system_parameter_r':
478490      PORT_START("MEMORY PRESENT")
479      PORT_DIPNAME( 0xF000, 0x2000, "MEMORY PRESENT")
480      PORT_DIPSETTING(    0x2000, "128 K (BOARD DEFAULT)" ) // NOTE: 0x2000 hard coded in 'system_parameter_r'
481      PORT_DIPSETTING(    0x3000, "192 K (MEMORY OPTION)" )
482      PORT_DIPSETTING(    0x4000, "256 K (MEMORY OPTION)" )
483      PORT_DIPSETTING(    0x5000, "320 K (MEMORY OPTION)" )
484      PORT_DIPSETTING(    0x6000, "384 K (MEMORY OPTION)" )
485      PORT_DIPSETTING(    0x7000, "448 K (MEMORY OPTION)" )
486      PORT_DIPSETTING(    0x8000, "512 K (MEMORY OPTION)" )
487      PORT_DIPSETTING(    0x9000, "576 K (MEMORY OPTION)" )
488      PORT_DIPSETTING(    0xA000, "640 K (MEMORY OPTION)" )
489      PORT_DIPSETTING(    0xB000, "704 K (MEMORY OPTION)" )
490      PORT_DIPSETTING(    0xC000, "768 K (MEMORY OPTION)" )
491      PORT_DIPSETTING(    0xD000, "832 K (MEMORY OPTION)" )
492      PORT_DIPSETTING(    0xE000, "896 K (MEMORY OPTION)" )
491      PORT_DIPNAME( 0xF0000, 0x20000, "MEMORY PRESENT")
492      PORT_DIPSETTING(    0x10000, "64  K (MINIMUM ON 100-A)" ) // see BOARD_RAM
493      PORT_DIPSETTING(    0x20000, "128 K (MINIMUM ON 100-B)" )
494      PORT_DIPSETTING(    0x30000, "192 K (MEMORY OPTION)" )
495      PORT_DIPSETTING(    0x40000, "256 K (MEMORY OPTION)" )
496      PORT_DIPSETTING(    0x50000, "320 K (MEMORY OPTION)" )
497      PORT_DIPSETTING(    0x60000, "384 K (MEMORY OPTION)" )
498      PORT_DIPSETTING(    0x70000, "448 K (MEMORY OPTION)" )
499      PORT_DIPSETTING(    0x80000, "512 K (MEMORY OPTION)" )
500      PORT_DIPSETTING(    0x90000, "576 K (MEMORY OPTION)" )
501      PORT_DIPSETTING(    0xA0000, "640 K (MEMORY OPTION)" )
502      PORT_DIPSETTING(    0xB0000, "704 K (MEMORY OPTION)" )
503      PORT_DIPSETTING(    0xC0000, "768 K (MEMORY OPTION)" )
504      PORT_DIPSETTING(    0xD0000, "832 K (MAX.MEM.ON -A)" ) // see END_OF_RAM
505      PORT_DIPSETTING(    0xE0000, "896 K (MAX.MEM.ON -B)" )
493506
494      PORT_START("GRAPHICS OPTION")
495      PORT_DIPNAME( 0x00, 0x00, "GRAPHICS OPTION") PORT_TOGGLE
496      PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
497      PORT_DIPSETTING(    0x04, DEF_STR( On ) )
507   // Floppy is always 'on', BUNDLE + GRAPHICS are not implemented yet:
508      PORT_START("FLOPPY CONTROLLER")
509      PORT_DIPNAME( 0x01, 0x01, "FLOPPY CONTROLLER") PORT_TOGGLE
510      PORT_DIPSETTING(    0x01, DEF_STR( On ) )
498511
499512      PORT_START("BUNDLE OPTION")
500513      PORT_DIPNAME( 0x00, 0x00, "BUNDLE OPTION") PORT_TOGGLE
501514      PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
502515      PORT_DIPSETTING(    0x01, DEF_STR( On ) )
503516
504   PORT_START("W13") // W13 - W18 affect 'system_parameter_r'
517      PORT_START("GRAPHICS OPTION")
518      PORT_DIPNAME( 0x00, 0x00, "GRAPHICS OPTION") PORT_TOGGLE
519      PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
520      PORT_DIPSETTING(    0x01, DEF_STR( On ) )
521     
522   // W13 - W18 are used for factory tests   and affect the boot process -
523   PORT_START("W13")
505524      PORT_DIPNAME( 0x02, 0x02, "W13 (FACTORY TEST A, LEAVE OFF)") PORT_TOGGLE
506525      PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
507526      PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r29515r29516
522541      PORT_WRITE_LINE_DEVICE_MEMBER("kbdser", i8251_device, write_dsr)
523542
524543   // J17 jumper on FDC controller board shifts drive select (experimental) -
525   PORT_START("FLOPPY CONTROLLER")
544   PORT_START("J17")
526545      PORT_DIPNAME( 0x02, 0x00, "J17 DRIVE SELECT (A => C and B => D)") PORT_TOGGLE
527546      PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
528547      PORT_DIPSETTING(    0x02, DEF_STR( On ) )
r29515r29516
548567
549568void rainbow_state::machine_reset()
550569{
570   /* configure RAM */
571   address_space &program = m_maincpu->space(AS_PROGRAM);
572   if (m_inp8->read() < END_OF_RAM)
573   {   program.unmap_readwrite(m_inp8->read(), END_OF_RAM);
574   }
575
551576   if (COLD_BOOT == 1)
552577   {
553578      COLD_BOOT = 2;
r29515r29516
603628   return 0;
604629}
605630
606// It is no longer possible to key in the RAM size on the 100-B.
607// The DEC-100-B boot ROM probes until a 'flaky' area is found (around F400:0E04).
608
609// Unexpected low RAM sizes are an indication of option RAM (at worst: 128 K on board) failure.
610// While motherboard errors often render the system unbootable, bad option RAM (> 128 K)
611// can be narrowed down with the Diagnostic Disk and codes from the 'Pocket Service Guide'
612// EK-PC100-PS-002 (APPENDIX B.2.2); pc100ps2.pdf
613// ================================================================
614// - Simulate floating bus for initial RAM detection -
615// FIXME: code valid ONLY within ROM section F4Exxx.
616//
617// NOTE: MS-DOS 2.x unfortunately probes RAM in a similar way.
618// => SET OPTION RAM to 896 K for unknown applications (and DOS) <=
619// ================================================================
620READ8_MEMBER(rainbow_state::floating_bus_r)
621{
622   int pc = space.device().safe_pc();
623
624   if ( ((pc & 0xFFF00) == 0xF4E00) &&
625         ( m_maincpu->state_int(I8086_DS) >= m_inp8->read() )
626      )
627   {
628      return (offset>>16) + 2;
629   }
630   else
631      return space.read_byte(offset);
632}
633
634WRITE8_MEMBER(rainbow_state::floating_bus_w)
635{
636      space.write_byte(offset,data);
637}
638
639631// interrupt handling and arbitration.  priorities currently unknown.
640632void rainbow_state::update_8088_irqs()
641633{
r29515r29516
746738    B F G M
747739   ( 1 means NOT present )
748740*/
749   // Hard coded value 0x2000 - see DIP switch setup!
750   return 0x0f - m_inp5->read()
751            - 0                 // floppy is hard coded in emulator.
752            - m_inp7->read()
753            - ((m_inp8->read() > 0x2000) ? 8 : 0);
741   return   (((m_inp5->read() == 1)      ? 0 : 1)  |
742       ((m_inp6->read() == 1)      ? 0 : 2)  |
743       ((m_inp7->read() == 1)      ? 0 : 4)  |
744       ((m_inp8->read() > BOARD_RAM)   ? 0 : 8)
745      );
754746}
755747
756748READ8_MEMBER(rainbow_state::comm_control_r)
r29515r29516
951943   int force_ready = ( (data & 4) != 0 ) ? 0 : 1;
952944
953945   int drive;
954   if ( m_inp6->read() && ((data & 3) < 2) )
946   if ( m_inp10->read() && ((data & 3) < 2) )
955947      drive = (data & 1) + 2;
956948   else
957949      drive = data & 3;
r29515r29516
12361228// 'Rainbow 100-A' (introduced May 1982) is first-generation hardware with ROM 04.03.11
12371229// - 64 K base RAM on board (instead of 128 K on 'B' model).  832 K RAM max.
12381230// - inability to boot from hard disc (mind the inadequate PSU)
1239// - cannot control bit 7 of IRQ vector (prevents DOS 2.0x from booting on unmodified hardware)
1231// - cannot control bit 7 of IRQ vector (prevents DOS >= 2.05 from booting on unmodified hardware)
12401232// - limited palette with color graphics option (4 instead of 16 colors)
12411233// - smaller ROMs (3 x 2764) with fewer routines (no documented way to beep...)
12421234
trunk/src/mess/machine/dec_lk201.c
r29515r29516
226226//  INPUT_PORTS( lk201 )
227227//-------------------------------------------------
228228
229/* [Foreign language caps] are referenced in software titles. Please leave them in.
230
231   DEC omitted terms like 'Interrupt', 'Break' and 'Data / Talk' on some keyboards,
232   so Fn numbers are definitely important for end users.
233 
234   === CURRENT SPECIAL KEYS ===
235   [PC-AT] ......=> [DEC]
236   LEFT CONTROL..=> Control
237   LEFT ALT .....=> Compose
238   
239   RIGHT ALT ....=> Help
240   RIGHT CONTROL => Do
241   ==============================================================================================
242   === (PC - AT ) keys above cursor block ===
243   * KEYCODE_INSERT * KEYCODE_HOME * KEYCODE_PGUP
244   * KEYCODE_DEL... * KEYCODE_END  * KEYCODE_PGDN
245
246   === (DEC LK 201 layout above cursor) ===
247   * Find   ........| Insert Here  | Remove
248   * Select.........| Prev   ..... | Next
249   ==============================================================================================
250   === CURRENT NUM PAD ASSIGNMENTS ===
251   [PF1] to [PF4] are mapped to NUM LOCK, SLASH etc. (=> 4 keys on top on num pad).
252   Num pad '+' gives         ',' on the DEC. 
253           ',' translates to '.' (=> more or less the layout of model 'LK-201-AG')
254         
255   Switch between 'full' and 'partial keyboard emulation' with Scroll Lock.
256*/
257
229258INPUT_PORTS_START( lk201 )
230259   PORT_START("KBD0")
231260   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
r29515r29516
245274   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
246275   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Compose") PORT_CODE(KEYCODE_LALT)
247276   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK)
248   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
277   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL)
249278
250279   PORT_START("KBD2")
251280   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_Z)
252281   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("A") PORT_CODE(KEYCODE_A)
253282   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Q") PORT_CODE(KEYCODE_Q)
254283   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1") PORT_CODE(KEYCODE_1)
255   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Esc") PORT_CODE(KEYCODE_TILDE)
284   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tilde") PORT_CODE(KEYCODE_TILDE) // E00
256285   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
257286   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
258287   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
259288
260289   PORT_START("KBD3")
261   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("<")
290   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("<") PORT_CODE(KEYCODE_BACKSLASH2) // B00
262291   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("X") PORT_CODE(KEYCODE_X)
263292   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("S") PORT_CODE(KEYCODE_S)
264293   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("W") PORT_CODE(KEYCODE_W)
265294   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB)
266295   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
267   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Z") PORT_CODE(KEYCODE_2)
268   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Hold Screen") PORT_CODE(KEYCODE_F1)
296   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2") PORT_CODE(KEYCODE_2)
297   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Hold Screen (F1)") PORT_CODE(KEYCODE_F1)
269298
270299   PORT_START("KBD4")
271300   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("C") PORT_CODE(KEYCODE_C)
272301   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("D") PORT_CODE(KEYCODE_D)
273302   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("E") PORT_CODE(KEYCODE_E)
274303   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3") PORT_CODE(KEYCODE_3)
275   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Setup") PORT_CODE(KEYCODE_F3)
304   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Setup (F3)") PORT_CODE(KEYCODE_F3)
276305   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
277   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Print Screen") PORT_CODE(KEYCODE_F2)
306   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Print Screen (F2)") PORT_CODE(KEYCODE_F2)
278307   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
279308
280309   PORT_START("KBD5")
r29515r29516
284313   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_R)
285314   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("4") PORT_CODE(KEYCODE_4)
286315   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
287   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Break") PORT_CODE(KEYCODE_F5)
288   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F4") PORT_CODE(KEYCODE_F4)
316   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Break (F5)") PORT_CODE(KEYCODE_F5)
317   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Data / Talk (F4)") PORT_CODE(KEYCODE_F4)
289318
290319   PORT_START("KBD6")
291320   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("B") PORT_CODE(KEYCODE_B)
292321   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("G") PORT_CODE(KEYCODE_G)
293322   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("T") PORT_CODE(KEYCODE_T)
294323   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("5") PORT_CODE(KEYCODE_5)
295   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Interrupt") PORT_CODE(KEYCODE_F6)
324   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Interrupt (F6) [X]") PORT_CODE(KEYCODE_F6)
296325   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
297326   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
298327   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
r29515r29516
302331   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("H") PORT_CODE(KEYCODE_H)
303332   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Y") PORT_CODE(KEYCODE_Y)
304333   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("6") PORT_CODE(KEYCODE_6)
305   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Resume") PORT_CODE(KEYCODE_F7)
334   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Resume (F7) [Fortsetzen]") PORT_CODE(KEYCODE_F7)
306335   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
307   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Cancel") PORT_CODE(KEYCODE_F8)
336   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Cancel (F8) [Zuruecknehmen]") PORT_CODE(KEYCODE_F8)
308337   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
309338
310339   PORT_START("KBD8")
r29515r29516
312341   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("J") PORT_CODE(KEYCODE_J)
313342   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("U") PORT_CODE(KEYCODE_U)
314343   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7") PORT_CODE(KEYCODE_7)
315   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Exit") PORT_CODE(KEYCODE_F10)
344   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Exit (F10) [Fertig]") PORT_CODE(KEYCODE_F10)
316345   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
317   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Main Screen") PORT_CODE(KEYCODE_F9)
346   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Main Screen (F9) [Hauptbild]") PORT_CODE(KEYCODE_F9)
318347   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
319348
320349   PORT_START("KBD9")
r29515r29516
324353   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("8") PORT_CODE(KEYCODE_8)
325354   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
326355   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
327   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F11") PORT_CODE(KEYCODE_F11)
356   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ESC (F11)") PORT_CODE(KEYCODE_F11)
328357   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
329358
330359   PORT_START("KBD10")
r29515r29516
332361   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("L") PORT_CODE(KEYCODE_L)
333362   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("O") PORT_CODE(KEYCODE_O)
334363   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("9") PORT_CODE(KEYCODE_9)
335   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F13") PORT_CODE(KEYCODE_PRTSCR)
364   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LF (F13)") PORT_CODE(KEYCODE_PRTSCR)
336365   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
337   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F12") PORT_CODE(KEYCODE_F12)
366   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BS (F12)") PORT_CODE(KEYCODE_F12)
338367   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
339368
340369   PORT_START("KBD11")
341   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH)
342   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON)
370   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH) 
371   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON)     
343372   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // FIXME - duplicate "Return"
344373   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("P") PORT_CODE(KEYCODE_P)
345374   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("0") PORT_CODE(KEYCODE_0)
346375   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
347   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete") PORT_CODE(KEYCODE_BACKSPACE)
348   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Additional Options (F14)") PORT_CODE(KEYCODE_SCRLOCK)
376   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete <X") PORT_CODE(KEYCODE_BACKSPACE)
377   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Additional Options (F14) [Zusaetze]") PORT_CODE(KEYCODE_PAUSE)
349378
350379   PORT_START("KBD12")
351380   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\\") PORT_CODE(KEYCODE_BACKSLASH)
r29515r29516
362391   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
363392   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("'") PORT_CODE(KEYCODE_QUOTE)
364393   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE)
365   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Previous") PORT_CODE(KEYCODE_END)
366   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Do (F16)")
394   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Previous [^]") PORT_CODE(KEYCODE_END)
395   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Do (F16) [Ausfuehren]") PORT_CODE(KEYCODE_RCONTROL)
367396   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("-") PORT_CODE(KEYCODE_MINUS)
368397   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert Here") PORT_CODE(KEYCODE_HOME)
369398
r29515r29516
374403   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num 7") PORT_CODE(KEYCODE_7_PAD)
375404   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP)
376405   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Remove") PORT_CODE(KEYCODE_PGUP)
377   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Next") PORT_CODE(KEYCODE_PGDN)
406   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Next [v]") PORT_CODE(KEYCODE_PGDN)
378407   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF1") PORT_CODE(KEYCODE_NUMLOCK)
379408
380409   PORT_START("KBD15")
r29515r29516
400429   PORT_START("KBD17")
401430   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER_PAD)
402431   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num ,") PORT_CODE(KEYCODE_PLUS_PAD)
403   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num -")
432   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Num -") // duplicate...see KBD13
404433   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PF4") PORT_CODE(KEYCODE_MINUS_PAD)
405   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F20") PORT_CODE(KEYCODE_PAUSE)
434   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F20")
406435   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
407436   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F19")
408437   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
r29515r29516
720749
721750//  printf("SPI %02x to %x (PC=%x)\n", data, offset, m_maincpu->pc());
722751}
752

Previous 199869 Revisions Next


© 1997-2024 The MAME Team