Previous Thread
Next Thread
Print Thread
Page 16 of 48 1 2 14 15 16 17 18 47 48
Re: Requirements? [Re: rfka01] #91587 11/22/13 04:28 AM
Joined: Jan 2011
Posts: 205
Al Kossow Offline
Senior Member
Offline
Senior Member
Joined: Jan 2011
Posts: 205
I mentioned xhomer on the mess mailing list on Oct 23

Re: Requirements? [Re: rfka01] #91589 11/22/13 08:28 AM
Joined: Jan 2012
Posts: 1,064
rfka01 Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Jan 2012
Posts: 1,064
Where can I subscribe? Or do, to quote Augusto, "devs have all the fun"? smile


NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
Re: Requirements? [Re: rfka01] #91595 11/22/13 11:04 PM
Joined: Jan 2012
Posts: 1,064
rfka01 Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Jan 2012
Posts: 1,064
More info from Jeff Armstrong:

Quote:
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.txt

While 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
Re: Requirements? [Re: rfka01] #91596 11/23/13 12:02 AM
Joined: Apr 2012
Posts: 188
B
Bavarese Offline
Senior Member
Offline
Senior Member
B
Joined: Apr 2012
Posts: 188
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.zip

Concerning the NEC V20 upgrade and hard coded CPU loops. I suggested alternate (better) patch values in my 6th, recent source submission (for 26365) smile
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.png

https://dl.dropboxusercontent.com/u/37819653/Rainbow_boot_selector.png

Finally, most if not all attributes work, VT-100 code could benefit from this.

Pokes to obtain these (not an official patch of course):

Code:
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.
Re: Requirements? [Re: rfka01] #91597 11/23/13 12:19 AM
Joined: Jan 2012
Posts: 1,064
rfka01 Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Jan 2012
Posts: 1,064
Looks great, congrats!


NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
Re: Requirements? [Re: rfka01] #91676 11/29/13 03:26 PM
Joined: Apr 2012
Posts: 188
B
Bavarese Offline
Senior Member
Offline
Senior Member
B
Joined: Apr 2012
Posts: 188
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.jpg

Tests 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).

Code:
// 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.
Re: Requirements? [Re: rfka01] #91704 12/01/13 11:28 AM
Joined: Jan 2012
Posts: 1,064
rfka01 Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Jan 2012
Posts: 1,064
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
Re: Requirements? [Re: rfka01] #91751 12/02/13 11:32 PM
Joined: Jan 2012
Posts: 1,064
rfka01 Offline OP
Very Senior Member
OP Offline
Very Senior Member
Joined: Jan 2012
Posts: 1,064
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
Re: Requirements? [Re: rfka01] #91964 12/20/13 03:33 AM
Joined: Mar 2001
Posts: 16,470
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,470
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.

Re: Requirements? [Re: rfka01] #91966 12/20/13 03:50 PM
Joined: Apr 2012
Posts: 188
B
Bavarese Offline
Senior Member
Offline
Senior Member
B
Joined: Apr 2012
Posts: 188
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.txt

This was also helpful
https://dl.dropboxusercontent.com/u/37819653/KEY_GROUPS_AND_CODES.png

smile

Last edited by Bavarese; 12/20/13 04:09 PM.
Page 16 of 48 1 2 14 15 16 17 18 47 48

Who's Online Now
3 registered members (DarthMarino, RomKnight, 1 invisible), 39 guests, and 1 spider.
Key: Admin, Global Mod, Mod
ShoutChat Box
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,762
Posts115,156
Members4,888
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.3