[Coco] Parallel Computing with a Tandy Color Computer Emulator.
johnmarkmelanie at gmail.com
johnmarkmelanie at gmail.com
Wed Dec 7 00:13:55 EST 2022
All,
How about parallel computing with a Tandy Color Computer emulator? I ran 6
instances or copes of XRoar and loaded the same virtual floppy in each
computer and ran the same program on each computer. And it worked. Now if I
could communicate to each computer somehow, then I could do parallel
computing. One idea is to communicate through the virtual floppy files.
Another idea is to communicate through the serial port, virtual serial port,
FIFO queue, or some such thing. Another idea is communicate through the
becker port. Another idea is communicate through a parallel port. Another
idea is communicate through an emulated dual-port ram. Perhaps there are
other ideas.
Now how about emulating something like Grant's 6-chip 6809 computer. And
have it run at about 200 MHz. And replace the BASIC ROM with an assembly
langue monitor and debugger ROM.
Link: http://searle.x10host.com/6809/Simple6809.html
I would also like an emulator for a 6809 computer with a front panel
interface similar to the IMSAI 8080 or the MITS Altair 8800. It could use a
monitor program to drive the front panel interface (like the MOS Technology,
Inc. KIM-1) or it could simulate hardware to halt the CPU and be able to
read and write the memory and then run the software by un-halting the CPU.
As well as allowing single step mode.
I think you can virtually connect the virtual serial ports, FIFO queue or
some such thing together using a Linux program called socat. That way you do
not have to connect a number of USB-to-serial ports together outside the
computer.
I wrote a program to emulate a 32-bit CPU on a 6809. I wrote it in 6809
assembly. For example, it will run a 32-bit ADC instruction and then set the
condition code register to the proper setting for a 32-bit add. The only
tricky part is getting the Z/zero flag represent a 32-bit zero. Then you can
run any 6809 branch instruction.
Example:
; It works something like this
; take the 32-bit value that X points to and add it to the 32-bit value that
Y points and
; store it in the 32-bit value that U point to.
LDX #$4000
LDY #$4004
LDU #$4008
JSR ADC32
BEQ SKIP1
I wrote 32-bit instruction for most all 6809 instructions. I have yet to
write MUL32, SMUL32, and DEV32. There are actual may types of divide
instructions. They have different ways of reporting the divisor and the
remainder. I seam to remember that you could have type of a division that
sometimes had a negative remainder. I got a book on the Fourth programming
langue that had about 4 different integer divide instructions.
Ex types of division: https://harry.garrood.me/blog/integer-division/
I wrote an article about Cmp32 in the Glenside Color Computer Club, Inc.
Newsletter.
Your Goggle search - Cmp32
site:https://www.glensideccc.com/coco-123-newsletters/ filetype:pdf - did
not match any documents. Well, that did not work. Let's see if I can find
it.
https://www.glensideccc.com/coco-123-newsletters/
2015 Gccc35_2nl
https://www.glensideccc.com//wp-content/uploads/2020/03/gccc35_2nl.pdf
Now look on Page 15 and look for "Assembly 32-bit Compare Subroutine" by
John Mark Mobley.
But now I need a way to test the code. So this is where the emulator comes
in. I have 8 cores and 16 logical processors. I could write a C program to
randomly pick two 32-bit numbers and add them together and compare the
results that the emulator gives. It could write a number of math problems to
a specific granule on a virtual floppy using toolshed and read another
specific granule of the floppy to see if the answer is ready and what the
answer is. You can use sequential message numbers to insure you have a new
message. You can checksum/CRC the message to ensure the message is correct.
And you can read the message twice to insure you read it right. You may also
what to use a retry logic where you tell the user this is retry number 2.
I somewhat remember testing the idea in Linux using MAME/MESS or XRoar and
toolshed. And then I got busy with life or just not feeling well and have
not looked at it for a long time.
So what do think about building a parallel computer using 6809 emulators?
John Mark Mobley
More information about the Coco
mailing list