Previous Thread
Next Thread
Print Thread
Page 1 of 3 1 2 3
Didact #103065
12/18/15 11:17 AM
12/18/15 11:17 AM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
I have recently obtained a very interesting board as scrap but with the proms (2 x 512 bytes) intact that I managed to dump.
The board is a 6800 in a series of school computers intended for college grade students aiming at becoming embedded engineers,
learning assembler and how to control and meassure the physical world. You can see the scrap board and prom adapter here: Didact mp68A

An assembled system of some newer model looks like this:


I intend to collect as many versions as possible in the driver and also support other designs from Didact: the Esselte 100 (BASIC) and Candela (OS9 etc) computers but they are more regular CRT/Keyboard based systems so no worries there.

Now, is there some system in MESS already similar to the Didact mp68A or "Mikrodator 6802" as it was named later? Especially the keypad and the BCD display is of interest to emulate so any pointers is appreciated.

Re: Didact [Re: Edstrom] #103066
12/18/15 12:43 PM
12/18/15 12:43 PM
Joined: Apr 2004
Posts: 1,554
J
judge Offline
Very Senior Member
judge  Offline
Very Senior Member
J
Joined: Apr 2004
Posts: 1,554
kim1 ?

Re: Didact [Re: Edstrom] #103067
12/18/15 12:44 PM
12/18/15 12:44 PM
Joined: Jun 2001
Posts: 397
somewhere else entirely
O
Olivier Galibert Offline
Senior Member
Olivier Galibert  Offline
Senior Member
O
Joined: Jun 2001
Posts: 397
somewhere else entirely
Cute, a raspberry pi ancestor :-)

The sym-1 seems to follow a similar idea. Have a look at http://www.mess.org/artwork/

OG.

Re: Didact [Re: Edstrom] #103068
12/18/15 12:46 PM
12/18/15 12:46 PM
Joined: May 2004
Posts: 874
Germany
D
Duke Offline
Senior Member
Duke  Offline
Senior Member
D
Joined: May 2004
Posts: 874
Germany
There are a few of those systems already in MAME. For example, the Synertek Systems Corp. SYM-1 or the MOS KIM-1.

Re: Didact [Re: Edstrom] #103069
12/18/15 12:56 PM
12/18/15 12:56 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Nice, the artwork page! smile I got some examples to work from there, thx /JLE

Re: Didact [Re: Edstrom] #103290
12/28/15 08:45 PM
12/28/15 08:45 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
I have traced the keyboard now, it uses two 74LS148 and a 74LS00 aggregating a keypress into a three bit respons (PB0-PB2) to a three bit pattern written (PA4-PA6) aggregated through a transistor circuit that pull CB1 low on the PIA6820 when a key is pressed.

I have also checked the other hexpad implementations such as kim1, sym1 and tec1. They all seems to use the device timer to interrupt the PIA on a layout interactions, eg I click on a key on the artwork.

Is this the way to do it? The artwork being polled?

There is no artwork call back that can be installed from the driver that can be called when I click?

Last edited by Edstrom; 12/28/15 08:45 PM.
Re: Didact [Re: Edstrom] #103502
01/05/16 05:02 PM
01/05/16 05:02 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
So finally I have a working driver for the Didact mp68a supporting keypad, display and clickable artwork. Artwork and roms

It is going in as a pull request aswell but can be found also on my fork and branch didact_r2

Last edited by Edstrom; 01/05/16 05:06 PM.
Re: Didact [Re: Edstrom] #103806
01/25/16 08:38 PM
01/25/16 08:38 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Precompiled single driver Win-7 binaries for the Didact mp68a and md6802 is available here: Didact_m169.zip

- clickable artwork
- keyboard 0-9, A-Z, SHIFT and F12 (reset)
- 6 digit BCD display

Let me know how it works if you test it. I know about the keyboard lag in md6802 but the mp68a should be fine.

Re: Didact [Re: Edstrom] #106803
08/10/16 12:37 PM
08/10/16 12:37 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
What happens if two devices present data on the data bus at the same time? I think this is what happens here in the Esselte 100 keyboard i/o design and I am trying to figure out how to get the right result our from the operation. Presumably a low dataline sinks a high dataline so I get a kind of fast scan?

The circuit diagram has two PIA:s on the same chip select S1 which is the Y1 output from a 74138 when (A15=1, A14=1, A13=0, A12=0, A11=1) in the C8xx adress space. The neat detail is that the first PIA is selected by A4 and the second by A3, on PIA pin 22, which means both can be addressed at the same time! This makes sense for writes setting up both PIA:s with the same data driven by the CPU. But how will a read work when the 6820 PIA:s drives the bus and is it/can it be supported by MAME?

Indeed the ROM uses this feature accessing the following adresses at startup:


The documented memory map says PIA1 is at C808-C80b and PIA2 at C810-C813 so I was puzzled by this startup code. Appreciate some insights on this.


Re: Didact [Re: Edstrom] #106804
08/10/16 12:57 PM
08/10/16 12:57 PM
Joined: May 2004
Posts: 874
Germany
D
Duke Offline
Senior Member
Duke  Offline
Senior Member
D
Joined: May 2004
Posts: 874
Germany
Yeah, usually a low signal wins. You can simply do something like this:

Code:
UINT8 data = 0xff;

data &= device1->read();
data &= device2->read();

return data;

Re: Didact [Re: Edstrom] #106805
08/10/16 01:28 PM
08/10/16 01:28 PM
Joined: Mar 2001
Posts: 16,163
USA
R
R. Belmont Online content
Very Senior Member
R. Belmont  Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,163
USA
In real life I can't imagine a read of both of them simultaneously would do anything useful; there'd be a bus fight that would potentially damage one of the PIAs.

Re: Didact [Re: Edstrom] #106806
08/10/16 02:55 PM
08/10/16 02:55 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Yeah, you are probably right, I haven't seen a dual device read so far and since the second PIA is optional it is unlikely that the rom code does it. However, just to be accurate I will split out the reads and log an error if it occurs, eg that both A4 and A3 are high in a read operation.

Re: Didact [Re: Edstrom] #106810
08/10/16 07:32 PM
08/10/16 07:32 PM
Joined: Mar 2006
Posts: 1,029
PA, USA
L
Lord Nightmare Offline
Very Senior Member
Lord Nightmare  Offline
Very Senior Member
L
Joined: Mar 2006
Posts: 1,029
PA, USA
The IAI Swyft does almost exactly the same thing with two PIAs, they use an address line each for /CS so it is possible to enable both at once and 'bad things' will happen.


"When life gives you zombies... *CHA-CHIK!* ...you make zombie-ade!"
Re: Didact [Re: Edstrom] #106811
08/10/16 10:18 PM
08/10/16 10:18 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
According to the debugger two overlapping writes are both executed as are the reads, so I let the writes work with the default behavior of MAME while I made a board specific read driver to catch an eventual dual, or even zero, device read. So far nothing that 'bad', lets see what happens when add the keyboard to the PIA.

Re: Didact [Re: Edstrom] #106812
08/11/16 12:56 AM
08/11/16 12:56 AM
Joined: Mar 2001
Posts: 16,163
USA
R
R. Belmont Online content
Very Senior Member
R. Belmont  Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,163
USA
Overlapping writes are fine, since only one thing's driving the bus in that case.

Re: Didact [Re: Lord Nightmare] #106816
08/11/16 03:13 PM
08/11/16 03:13 PM
Joined: Jan 2011
Posts: 180
A
Al Kossow Offline
Senior Member
Al Kossow  Offline
Senior Member
A
Joined: Jan 2011
Posts: 180
Originally Posted By Lord Nightmare
The IAI Swyft does almost exactly the same thing with two PIAs, they use an address line each for /CS so it is possible to enable both at once and 'bad things' will happen.


sounds like something you might want to watch for in a driver debug mode

Re: Didact [Re: Edstrom] #106817
08/11/16 03:26 PM
08/11/16 03:26 PM
Joined: Mar 2001
Posts: 16,163
USA
R
R. Belmont Online content
Very Senior Member
R. Belmont  Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,163
USA
Yeah, a logerror() would be nice in case the original programmers did something wrong and are getting away with it by accident.

Re: Didact [Re: Edstrom] #106818
08/11/16 03:33 PM
08/11/16 03:33 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
I use logerror if that happens, it hasn't so far. I couldn't see that the Swyft driver detects it but is isn't fatal in an emulator of course unless we have a smoke_callback() to the UI that is...

hmm, maybe if we emulated the heat generated from the system and compared that to the known cooling factor of the system and the room temperature we can generate smoke or boil emulated eggs on the Pentiums one day...

In any case, the logerror() of this multi device reads is just a curiosity which can reveal rom programming errors and of course driver programming errors, so it is kind of fun/useful I think.

Re: Didact [Re: Edstrom] #106819
08/11/16 03:56 PM
08/11/16 03:56 PM
Joined: Jan 2011
Posts: 180
A
Al Kossow Offline
Senior Member
Al Kossow  Offline
Senior Member
A
Joined: Jan 2011
Posts: 180
Originally Posted By Edstrom

In any case, the logerror() of this multi device reads is just a curiosity which can reveal rom programming errors and of course driver programming errors, so it is kind of fun/useful I think.


I think it would be helpful for people writing new code for a platform.

Re: Didact [Re: Edstrom] #106820
08/11/16 04:49 PM
08/11/16 04:49 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Absolutely, especially in this case since the PIA:s was intended to be the students play ground with lab expansion boards and such

Re: Didact [Re: Edstrom] #106923
08/18/16 07:25 PM
08/18/16 07:25 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
You were right RB, what I saw was not overlapping writes with dual device cs happening in MAME, the latter overloaded the first as you said. What I saw instead was a 16 bit write setting two registers. So effectively the esselte 100 sets four registers divided over two devices in a single 'stx $c818'! The Didact design team must have had fun doing this! smile

So I add a handler for writes too now and things should move forward..

Last edited by Edstrom; 08/18/16 07:26 PM.
Re: Didact [Re: Edstrom] #106961
08/23/16 10:05 PM
08/23/16 10:05 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Some progress with the Esselte 100, I got BASIC up and running. smile

Still a lot of stuff to fix but now it will be easier to find the corner cases.

Is the cassette interface capable of record BASIC programs or would that be the memory "snapshot" feature? How does it work?

Re: Didact [Re: Edstrom] #106969
08/24/16 07:25 AM
08/24/16 07:25 AM
Joined: Jan 2006
Posts: 3,687
Trondheim, Norway
etabeta78 Offline
Very Senior Member
etabeta78  Offline
Very Senior Member
Joined: Jan 2006
Posts: 3,687
Trondheim, Norway
for cassette, you need to find which bits are the cassette writes first... then the tape interface in the UI and its internal handling will direct it to a wav file

any home computer with a cassette drive is a good example for plain cassette hookups (things get a bit more complex only when you want to support "compressed" cassette formats created for emulators like CBM .tap, MSX .cas, etc.)

Re: Didact [Re: Edstrom] #106975
08/25/16 10:21 AM
08/25/16 10:21 AM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Great, that is the next thing I'll do, using save/load from the debugger now. Here is a clip of a animation(!) demo on a 2MHz 6802 with 16Kb ROM and 1Kb of RAM: Olympic Rings EDIT: Recorded in MAME with -aviwrite of course smile

Last edited by Edstrom; 08/25/16 10:57 AM.
Re: Didact [Re: Edstrom] #107064
09/01/16 01:34 PM
09/01/16 01:34 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Ok, so Esselte 100 PR posted including cassette save/load, thanks for all the help!

I have also uploaded a single driver beta binary for Windows 7 if someone want to play with it, it is available through my very sporadic blog http://frakaday.blogspot.se/

Last edited by Edstrom; 09/01/16 01:34 PM.
Re: Didact [Re: Edstrom] #114597
01/30/19 10:08 AM
01/30/19 10:08 AM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Another Didact design bites the dust, the Modulab. I came across a unit in an auction a year back or so and contacted one of the designers from back in the days that I'd had have some email conversations with on an Electronics forum. He found all sorts of documents including firmware sources and a technical manual so here it is and indeed the system I started this thread about:
[Linked Image] [Linked Image]

Re: Didact [Re: Edstrom] #114620
02/05/19 10:42 PM
02/05/19 10:42 PM
Joined: Aug 2015
Posts: 375
Edstrom Offline OP
Senior Member
Edstrom  Offline OP
Senior Member
Joined: Aug 2015
Posts: 375
Updating an old layout for the Didact md6802 design now that I start to get a hang of it, the repeat and grouping tags are really powerful and intuitive.

[Linked Image] [Linked Image] [Linked Image]

Page 1 of 3 1 2 3

Who's Online Now
2 registered members (Golden Child, Mr. Do), 159 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,645
Posts113,189
Members4,842
Most Online324
Dec 20th, 2018
Powered by UBB.threads™ PHP Forum Software 7.6.1.1
(Release build 20180111)
Page Time: 0.037s Queries: 14 (0.011s) Memory: 5.8937 MB (Peak: 6.2027 MB) Zlib enabled. Server Time: 2019-04-20 04:18:03 UTC