|
Joined: Jan 2011
Posts: 266 Likes: 4
Senior Member
|
Senior Member
Joined: Jan 2011
Posts: 266 Likes: 4 |
I mentioned xhomer on the mess mailing list on Oct 23
|
|
|
|
Joined: Jan 2012
Posts: 1,180 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,180 Likes: 17 |
Where can I subscribe? Or do, to quote Augusto, "devs have all the fun"?
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Jan 2012
Posts: 1,180 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,180 Likes: 17 |
More info from Jeff Armstrong: From your screenshots, it appears you're receiving a few Main Board errors at boot. I'm not sure if you guys are aware, but the Rainbow's startup tests are quite particular about timing. The tests expect a cycle-perfect 8088, and they fail if they encounter anything else. A good example is replacing the CPU with an NEC V20, a pin-compatible chip with the 8088. The V20, though, is slightly faster, and it leads to some serious failures when booting. Therefore, some ROM modifications are necessary to get the chip to work. Have a look at: ftp://ftp.update.uu.se/pub/rainbow/doc/v20prom.txtWhile this isn't exactly the same scenario, it provides an example of the pickiness of the Rainbow tests. Additionally, talking with my father (one of the Rainbow's engineers), he pointed out that there are a significant number of "no-ops in the ROM to account for timing issues during self-tests." I'm not sure how accurate the 8088 emulation in MESS/MAME is, but it might lead to issues on the Rainbow. -Jeff Seems that FTP server has gone missing ... the document's here, though ... https://dl.dropboxusercontent.com/u/55419307/v20prom.txt
Last edited by rfka01; 11/22/13 11:19 PM.
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Apr 2012
Posts: 193
Senior Member
|
Senior Member
Joined: Apr 2012
Posts: 193 |
I have updated my ROM disassemblies. The Language ROM is also contained, and most of the functions are now known - https://dl.dropboxusercontent.com/u/37819653/DEC_100B_ROM-DISASSEMBLIES_Nov2013.zipConcerning the NEC V20 upgrade and hard coded CPU loops. I suggested alternate (better) patch values in my 6th, recent source submission (for 26365) Problem is: the machine i tested it on is a methusalem. Nobody knows how far it is off-spec.It's really, really time we make progress with the emulation. Recently an administrator talked about hardware failures. First, the hard discs fail. Then the PSUs. Then the motherboards.My machines (have 2) seem to take the opposite direction... -- screenshots from MESS with latest patches: https://dl.dropboxusercontent.com/u/37819653/keyboard_selector.pnghttps://dl.dropboxusercontent.com/u/37819653/Rainbow_boot_selector.pngFinally, most if not all attributes work, VT-100 code could benefit from this.Pokes to obtain these (not an official patch of course):
Rainbow.c - near line 310
UINT8 *rom = memregion("maincpu")->base();
// Test-DEBUG: rom[0xf5a14]=0xeb; // kill keyboard test result (=>ERROR 50)
// Patches to access international keyboard selector
rom[0xf4174]=0xeb; // jmps RAINBOW100_LOGO__loc_33D
rom[0xf4175]=0x08; //
rom[0xf4363]=0x90; // NOP out : 0363 WAIT_FOR_BIT3__loc_35E
rom[0xf4364]=0x90; // (do not wait for ??)
// *** UNCOMMENT TO SHOW BOOT SELECTOR:
// rom[0xf4384]=0xeb; // JMPS to BOOT80 ( selector )
Last edited by Bavarese; 11/23/13 12:29 AM.
|
|
|
|
Joined: Jan 2012
Posts: 1,180 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,180 Likes: 17 |
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Apr 2012
Posts: 193
Senior Member
|
Senior Member
Joined: Apr 2012
Posts: 193 |
The Rainbow-100 boots now! See attached picture of the Diagnostic Disk - live from the emulator. https://dl.dropboxusercontent.com/u/37819653/Diagnostic_Disc_Menu.jpgTests are capable enough to reveal very subtle emulation bugs - and they do ;-) Other CP/M or DOS (2.x) disks begin to boot, but soon hang (8088 HLT and / or Z80 HLT). In fact, the Diag Disk is the only one booting. Is anybody willing to lend a hand? Need help with slot devices and the debugging of the Z80 or 8088 loaders in the context of MESS.Currently, my code is not mature enough to submit to SVN. A hack to fill the keyboard buffer must be used. Most progress has been made in the field of the WD17xx hookup. The processor flags INT88L + INTZ80L could still be wrong (these states are reused elsewhere).
// 8088 reads port 0x00. See page 133 (4-34)
READ8_MEMBER(rainbow_state::i8088_latch_r)
{
// printf("Read %02x from 8088 mailbox\n", m_8088_mailbox);
m_i8088->set_input_line(INPUT_LINE_INT0, CLEAR_LINE);
INTZ80L = false; // WAS: INT88L = false;
return m_8088_mailbox;
}
// 8088 writes port 0x00. See page 133 (4-34)
// Interprocessor interrupt from the 8088 CPU. The vector placed
// on the bus is F7 (hex) which causes a
// RST 30 instruction to be executed in interrupt mode 0.
WRITE8_MEMBER(rainbow_state::i8088_latch_w)
{
// printf("%02x to Z80 mailbox\n", data);
m_z80->set_input_line_and_vector(0, ASSERT_LINE, 0xf7);
m_z80_mailbox = data;
INTZ80L = true;
}
// Z80 reads port 0x00
// See page 134 (4-35)
READ8_MEMBER(rainbow_state::z80_latch_r)
{
// printf("Read %02x from Z80 mailbox\n", m_z80_mailbox);
m_z80->set_input_line(0, CLEAR_LINE);
INT88L = false; // WAS: INTZ80L = false;
return m_z80_mailbox;
}
// Z80 writes to port 0x00 - see page 134 (4-35) of TM.
WRITE8_MEMBER(rainbow_state::z80_latch_w)
{
// printf("%02x to 8088 mailbox\n", data);
m_i8088->set_input_line_and_vector(INPUT_LINE_INT0, ASSERT_LINE, 0x27);
m_8088_mailbox = data;
INT88L = true;
}
Last edited by Bavarese; 11/29/13 03:45 PM.
|
|
|
|
Joined: Jan 2012
Posts: 1,180 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,180 Likes: 17 |
Here are pictures of the NCR DMV's diagnostic module which I don't own ... I've contacted the guy (again) ... maybe he's willing to dump the ROM contents.
http://www.flickr.com/photos/50322765@N04/5012848897/in/photostream/
Robert
Last edited by rfka01; 12/01/13 11:29 AM.
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Jan 2012
Posts: 1,180 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,180 Likes: 17 |
Sometimes small wonders happen ... I was given the DMV diagnostic module by a guy who used to work for NCR ... he has already ditched the module case, but miraculously kept the PCB. This archive contains the dumps of the two EPROMS. DMV Diagnostics module The DMV is a highly modular computer - the mainboard has 7 (or max. 9) slots into which massive modules are plugged. You can see the mainboard and modules here: NCR DMV pictures Everything, from serial ports, a RTC, mouse adapter to memory expansions gets plugged into those slots in the back. So the DMV would benefit massively from slot-ifying the driver. I've prepared two files that could, once they're filled with actual code, reside in emu/bus/dmv ... one is dmvbus.c, the other is dmvdiag.c, both contained in the above archive. At the moment they only contain ASCII graphics of the bus connector resp. the PCB layout of the diagnostics module. Also included is the PDF about the diagnostics module from the documentation and a picture of the PCB. Robert
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Mar 2001
Posts: 17,234 Likes: 260
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,234 Likes: 260 |
Bavarese: most of your submitted patch was applied. The keyboard hack was more gross than I wanted to deal with; I will attempt to get the LK201 to work correctly instead, and failing that do the keyboard hack "correctly": inside dec_lk201, without ROM patching.
|
|
|
|
Joined: Apr 2012
Posts: 193
Senior Member
|
Senior Member
Joined: Apr 2012
Posts: 193 |
Ok, accepted. Thank you very much. Hope my keyboard mappings help a bit. I still think the 8048 version and the 6805 version do not differ too much in terms of the wiring. Found 2 tables in the 6805 ROM (named 23-00159-00.bin) that look like the mapping i typed in on the basis of the official 8048 specs. https://dl.dropboxusercontent.com/u/37819653/TABLE%202%20vs%20TABLE%201.png(left: TABLE 1 - middle: TABLE 1 compared to TABLE 2 - right: decoding of KBD02 according to official specs) Highlighted is a bunch of 16 bytes (one keyboard line?). Table 1 begins at offset $0e2e Table 2 begins at offset $0f4e in ROM 23-00159-00.bin Each table has a length of 288 bytes (18 KBD lines x 16). Also disassembled it (code start $100), here is the result (including notes): https://dl.dropboxusercontent.com/u/37819653/6805.txtThis was also helpful https://dl.dropboxusercontent.com/u/37819653/KEY_GROUPS_AND_CODES.png
Last edited by Bavarese; 12/20/13 04:09 PM.
|
|
|
2 members (AJR, 1 invisible),
159
guests, and
0
robots. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,328
Posts122,128
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|