Previous Thread
Next Thread
Print Thread
Page 39 of 44 1 2 37 38 39 40 41 43 44
#107808 - 11/03/16 02:36 PM Re: Requirements? [Re: rfka01]  
Joined: Aug 2015
Posts: 312
Edstrom Offline
Senior Member
Edstrom  Offline
Senior Member

Joined: Aug 2015
Posts: 312
Yeah, that's the problem, the fifo doesn't work as expected so when more than one character is still in the DART device the order is reversed as it implements a stack rather than a FIFO. So as long as the Rainbow reads out the characters "fast enough" the board driver should work but if the characters are arriving too fast, eg little time between the characters, big confusion may happen.

My change fixes that and it should potentially also fix a lot of other board drivers that relies on polled serial routines or that has lots of higher level interrupts delaying the readout. Also try higher bit rates as it may increase the space between the characters, depending on your typing speed.

You can cherry pick my PR and see if it helps, I think it will.

#107814 - 11/04/16 01:24 PM Re: Requirements? [Re: rfka01]  
Joined: Aug 2015
Posts: 312
Edstrom Offline
Senior Member
Edstrom  Offline
Senior Member

Joined: Aug 2015
Posts: 312
I just merged the new fifo code in z80dart driver, please test it and see if it makes a difference.

#107824 - 11/06/16 11:57 AM Re: Requirements? [Re: rfka01]  
Joined: Aug 2015
Posts: 312
Edstrom Offline
Senior Member
Edstrom  Offline
Senior Member

Joined: Aug 2015
Posts: 312
I have decoded the 7201 setup: http://pastebin.com/6eRL5kU5

It resets the 7201 a lot and it even touches synchronous modes for a while which is not supported by the z80dart but settles as follows:

Code:
 - CLOCK BIT: 00
 * :upd7201:chaB 00 <- 18  Channel Reset command (011b)
 * :upd7201:chbB 04 <- 4d  Odd Parity enabled, Async mode 2 stop bits, 16x clock
 * :upd7201:chbB 03 <- 41  Receiver enabled, 7 bit 
 * :upd7201:chbB 05 <- 28  Transmitter enabled, 7 bit, DTR inactive
 * :upd7201:chbB 01 <- 15  Interrupt on received character, Ext Status, status affect vector
 * :upd7201:chbB 02 <- 00  No DMA, Non vectored interrupts D4 D3 D2, p10=RTSB
 
 * :upd7201:chaA 00 <- 18  Channel Reset command (011b)
 * :upd7201:chaA 02 <- 10  Interrupt vector
 * :upd7201:chaA 04 <- 45  Odd Parity enabled, Async mode 1 stop bit, 16x clock rate
 * :upd7201:chaA 03 <- 41  Receiver enabled, 7 bit 
 * :upd7201:chaA 05 <- 28  Transmitter enabled, 7 bit, DTR inactive
 * :upd7201:chaA 01 <- 10  Interrupt on received character

ff to COMM.CONTROL REGISTER 

 * :upd7201:chaA 00 <- 01  


As you can see it expects 7 bit communications with odd parity enabled on both channels but only 1 stop bit on channel A, so try that. Handshakes should hookup RTSB and this is already done in the rainbow driver. I didn't try the terminal, what does your command line look like?

#107825 - 11/06/16 01:06 PM Re: Requirements? [Re: rfka01]  
Joined: Apr 2012
Posts: 155
Bavarese Offline
Senior Member
Bavarese  Offline
Senior Member

Joined: Apr 2012
Posts: 155
Germany
I use the bit banger on Windows with a cmd.line like
mess64 -bitbngr socket.127.0.0.1:10000

Then, i connect to 127.0.0.1 with Putty/Windows.

I actually cant get a connection at other speeds than 9600, plus i have to disable handshake everywhere (via our GUI, and in PuTTY/Windows, where i selected 8,N,1, 9600 and XON/OFF software handshake).

Additionally, i must set FDXA (no flow control) in Rainbow SETUP (press F3, page down, set 8N, 9600 for both directions, ESC to leave, then please perform a full reset cycle). smile

I can send text from the Rainbow to Putty in Terminal Mode (T), but as soon as the Rainbow _receives_ text sent from Putty, transmission stops (nothing can be typed anymore).

FDXB (full modem control) does lockup (no transmission, and printf on the console goes crazy while the Rainbow BIOS tries to poke register $06 [comm_bitrate_w] repeatedly... which seems incorrect).

I could not get hardware handshake on a real machine either (KERMIT/Rainbow <-> KERMIT/W95)...

Part of the problem could be that no handshake (FDXA) is less than ideal, and full handshake (FDXB) requires a modem like setup (Carrier Detect and all) from a BIOS perspective.

Last edited by Bavarese; 11/06/16 01:56 PM.
#107828 - 11/06/16 02:08 PM Re: Requirements? [Re: rfka01]  
Joined: Aug 2015
Posts: 312
Edstrom Offline
Senior Member
Edstrom  Offline
Senior Member

Joined: Aug 2015
Posts: 312
I need the exact command line to be able to duplicate what you are doing, and instructions on how to manage the machine, eg how do I enter the "Rainbow setup"? Are you talking about the MAME menu or a menu in the Rainbow graphical UI?

8N9600 is the same number of bits as 7O9600 so it would seem to work until you get parity error where the 7201 would do need to issue a Error reset command.

Last edited by Edstrom; 11/06/16 02:37 PM.
#107830 - 11/06/16 04:32 PM Re: Requirements? [Re: rfka01]  
Joined: Apr 2012
Posts: 155
Bavarese Offline
Senior Member
Bavarese  Offline
Senior Member

Joined: Apr 2012
Posts: 155
Germany
Rainbow SET-UP can be invoked by hitting key F3 (*), page down TWICE, set 8N, 9600 for both directions.



Navigate from setup page to setup page with PAGE DOWN, use cursor keys, change values with UP and DOWN.
Finally save all parameters with SHIFT-S (quit SET-UP by pressing F3).


(*) You may want to reassign F3 to another key. See DEC_LK201.CPP and this one

A full reset cycle is required according to the manual if anything is changed beyond TX or RX baud rates.

You could also use the NVRAM file here

The bitbanger setup was described by "Rfka01" in the DMV thread. He also used XON/OFF btw.

The difference to DMV is that the Rainbow does not have slots (and i also do not use a virtual port). So the command line really is:

mess64 -window -debug rainbow -frameskip 10 -bitbngr socket.127.0.0.1:10000

Full documentation for the DEC Rainbow 100 B is at

http://www.os2site.com/dec/rainbow/doc2/index.html

Let me recommend two manuals:

a. Technical Documentation from April 1985

b. Technical Addendum for 100-A and 100-B

Putty is not invoked via command line. Instead, it is set to match the parameters used in SET-UP. My system is Win 7 Pro 64 bit.

If other questions arise, it might be easier to ask Shattered. He helped me with the baud rate generator.

Last edited by Bavarese; 11/06/16 04:55 PM.
#107831 - 11/06/16 05:29 PM Re: Requirements? [Re: rfka01]  
Joined: Aug 2015
Posts: 312
Edstrom Offline
Senior Member
Edstrom  Offline
Senior Member

Joined: Aug 2015
Posts: 312
Thanks, so let me guess that you are using this command line:

mame64.exe rainbow -rs232_a null_modem -bitbngr socket.127.0.0.1:1234 -window

The information in this line that I needed is that you use the 'rainbow' model, not rainbow100a or rainbow190 and that you connect to rs232_a not the rs232_b, and that is why I asked.

#107833 - 11/06/16 05:36 PM Re: Requirements? [Re: rfka01]  
Joined: Mar 2006
Posts: 995
Lord Nightmare Offline
Senior Member
Lord Nightmare  Offline
Senior Member

Joined: Mar 2006
Posts: 995
PA, USA
Technically the rainbow does have one slot: the fixed disk WD1010 controller card is optional inside. Its afaik the only card which can fit in said slot.

LN


"When life gives you zombies... *CHA-CHIK!* ...you make zombie-ade!"
#107834 - 11/06/16 05:58 PM Re: Requirements? [Re: rfka01]  
Joined: Aug 2015
Posts: 312
Edstrom Offline
Senior Member
Edstrom  Offline
Senior Member

Joined: Aug 2015
Posts: 312
Like the Mac SE Nubus slot, with room for a single Nubus card, but there were different cards of course.

I think I have the right hookup now, what am I expected to do at the putty terminal? I poke it and I get no characters going either way.

#107835 - 11/06/16 06:16 PM Re: Requirements? [Re: rfka01]  
Joined: Apr 2012
Posts: 155
Bavarese Offline
Senior Member
Bavarese  Offline
Senior Member

Joined: Apr 2012
Posts: 155
Germany
Oops, the section
-rs232_a null_modem
is missing in my invocation.

Instead, i see 4 lines in Rainbow.cpp saying
Code:
MCFG_DEVICE_MODIFY("rs232_a")
MCFG_SLOT_DEFAULT_OPTION("null_modem")

MCFG_DEVICE_MODIFY("rs232_b")
MCFG_SLOT_DEFAULT_OPTION("printer")


Putty connects directly to the bitbanger at 10000.





You may also have to specify "local echo" both in Putty and in Rainbow SETUP (on second screen after 1st Page Down).

This is also the place where the more obscure comms. features are hidden (Carrier Detect length, BREAK ...) smile

--- @Edstrom: if both machines are properly connected, you should be able to see what is typed on the other end.

(Putty requires an additional carriage return / line feed before it sends anything).

BUG: had to toggle "Handshake" On and Off in MESS' GUI (invoked by TAB) from time to time in my experiments (...).

Last edited by Bavarese; 11/06/16 06:38 PM.
Page 39 of 44 1 2 37 38 39 40 41 43 44

Who's Online Now
1 registered members (AJR), 9 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,389
Posts108,530
Members4,750
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.037s Queries: 14 (0.015s) Memory: 5.0353 MB (Peak: 5.2602 MB) Zlib enabled. Server Time: 2017-07-28 12:41:38 UTC