Previous 15994 Revisions Next

r15697 Sunday 29th July, 2012 at 11:05:54 UTC by Robbbert
LLC1: WIP
- Identified monitor keys
- Turns out new monitor rom is also a bad dump
- Added patches to make the system usable [Robbbert]
[src/mess/drivers]llc.c
[src/mess/machine]llc.c

src/mess/machine/llc.c
r15696r15697
6262   if (data & 0xf0)
6363      data = (data >> 4) | 0x80;
6464
65   return data;
65   return data | (state->m_porta & 0x70);
6666}
6767
6868static WRITE8_DEVICE_HANDLER (llc1_port1_a_w)
r15696r15697
9898   }
9999}
100100
101
101// timer 0 irq does digit display, and timer 3 irq does scan of the
102// monitor keyboard. Currently the keyboard is being scanned too fast.
103// No idea how the CTC is connected, so guessed.
102104Z80CTC_INTERFACE( llc1_ctc_intf )
103105{
104106   0,
src/mess/drivers/llc.c
r15696r15697
1/***************************************************************************
1/******************************************************************************
22
33        LLC driver by Miodrag Milanovic
44
55        17/04/2009 Preliminary driver.
66
7****************************************************************************/
7        July 2012, updates by Robbbert
88
9        Very little info available on these computers.
910
11        LLC1:
12        To start BASIC, G0800 (cold start) G0803 (warm start)
13        To see a monitor logo, G13BE
14        This machine has an 8-digit LED display with hex keyboard,
15        and also a 64x16 monochrome screen with full keyboard.
16        The monitor uses the hex keyboard, while Basic uses the full keyboard.
17        Monitor output is on the digits, but the single-step command displays
18        a running register dump on the main screen.
19        There are no storage facilities, and no sound.
20        The user instructions (in German) are here:
21        http://www.jens-mueller.org/jkcemu/llc1.html
22
23        ToDo:
24        - LLC1: Get good dump of monitor rom, has a number of bad bytes
25        - LLC1: In Basic, pressing enter several times causes the start
26          of the line to be shifted 1 or 2 characters to the right.
27        - LLC1: Go command crashes
28        - LLC1: Keyboard is horrible
29        - All keyboards are incomplete
30        - Lots of other things
31
32*******************************************************************************/
33
34
1035#include "emu.h"
1136#include "cpu/z80/z80.h"
1237#include "cpu/z80/z80daisy.h"
r15696r15697
6590      PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5)
6691      PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6")PORT_CODE(KEYCODE_6)
6792      PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7)
68      PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("REG") PORT_CODE(KEYCODE_G)
69      PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("START") PORT_CODE(KEYCODE_H)
70      PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("i")PORT_CODE(KEYCODE_I)
71      PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("j") PORT_CODE(KEYCODE_J)
93      PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("REG") PORT_CODE(KEYCODE_R)
94      PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M (Mem)") PORT_CODE(KEYCODE_M)
95      PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ST (Start)")PORT_CODE(KEYCODE_ENTER)
96      PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) // resets
7297   PORT_START("X6") // out F4,EF
7398      PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8)
7499      PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9)
75100      PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A")PORT_CODE(KEYCODE_A)
76101      PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)
77      PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("k") PORT_CODE(KEYCODE_K)
78      PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ES") PORT_CODE(KEYCODE_L)
79      PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("HP")PORT_CODE(KEYCODE_M)
80      PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("n") PORT_CODE(KEYCODE_N)
102      PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("ES (Step)") PORT_CODE(KEYCODE_S)
103      PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DL (Go)") PORT_CODE(KEYCODE_X)
104      PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("HP (BP)")PORT_CODE(KEYCODE_P)
105      PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) // does nothing
81106   PORT_START("LINE0")
82107      PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
83108      PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
r15696r15697
412437
413438ROM_START( llc1 )
414439   ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
415   // bad dump ROM_LOAD( "llc1-monitor.rom", 0x0000, 0x0800, CRC(0e81378d) SHA1(0fbb6eca016d0f439ea1c9aa0cb0affb5f49ea69) )
416   ROM_LOAD( "llc1mon.bin", 0x0000, 0x0800, CRC(e291dd63) SHA1(31a71bef84f7c164a270d0895cb645e078e9c6f2) )
440   //ROM_LOAD( "llc1-monitor.rom", 0x0000, 0x0800, BAD_DUMP CRC(0e81378d) SHA1(0fbb6eca016d0f439ea1c9aa0cb0affb5f49ea69) )
441   ROM_LOAD( "llc1mon.bin", 0x0000, 0x0800, BAD_DUMP CRC(e291dd63) SHA1(31a71bef84f7c164a270d0895cb645e078e9c6f2) )
417442   ROM_LOAD( "llc1_tb1.bin", 0x0800, 0x0400, CRC(0d9d4039) SHA1(b515e385af57f4faf3a9f7b4a1edd59a1c1ea260) )
418443   ROM_LOAD( "llc1_tb2.bin", 0x0c00, 0x0400, CRC(28bfea2a) SHA1(a68a8b87bfc931627ddd8d124b153e511477fbaf) )
419444   ROM_LOAD( "llc1_tb3.bin", 0x1000, 0x0400, CRC(fe5e3132) SHA1(cc3b191e41f5772a4b86b8eb0ebe6fce67872df6) )
445   ROM_FILL(0x23b, 1, 0x00) // don't reboot when typing in the monitor
446   ROM_FILL(0x2dc, 1, 0x0f) // fix display of AF in the reg command
420447   ROM_REGION(0x0400, "chargen",0)
421448   ROM_LOAD ("llc1_zg.bin", 0x0000, 0x0400, CRC(fa2cd659) SHA1(1fa5f9992f35929f656c4ce55ed6980c5da1772b) )
422449ROM_END

Previous 15994 Revisions Next


© 1998-2018 The MESS Team