Skip to content

Instantly share code, notes, and snippets.

@0xabad1dea
Created April 26, 2012 20:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 0xabad1dea/2503027 to your computer and use it in GitHub Desktop.
Save 0xabad1dea/2503027 to your computer and use it in GitHub Desktop.
Studio Mintaka's CrissCross Cable
_ _
(_) _ | |
____ _ ____ _| |_ _____| | _ _____
| \| | _ (_ _|____ | |_/ |____ | *
| | | | | | | || |_/ ___ | _ (/ ___ | *
|_|_|_|_|_| |_| \__)_____|_| \_)_____| *
STUDIO MINTAKA : MANUFACTURER ID 0xABAD1DEA
___ ____ ____ ___ ___ ___ ____ _____ ___ ___
/ __)( _ \(_ _)/ __)/ __)\ / / __)( _ \( _ )/ __)/ __)
( (__ ) / _)(_ \__ \\__ \ X ( (__ ) / )(_)( \__ \\__ \
\___)(_)\_)(____)(___/(___// \ \___)(_)\_)(_____)(___/(___/
"CRISSCROSS" CROSSOVER CABLE: ITEM ID 0xCC00CC00
REVISION 0x0
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
CRISSCROSS is a simple cable with a logic board that attaches two separate
DCPU-16 systems and allows them to send and receive packets of 256 words.
INTERRUPTS
0 B - SETOUTGOING
1 B - SETINCOMING
2 - READY
3 - RECEIVE
Using it couldn't be simpler. First, make sure both computers are powered off,
and securely connect both ends of the CRISSCROSS to their serial ports.
From within your software, call interrupt 0 (SETOUTGOING) with a pointer in
register B to the 256-word region you wish the other end to be able to read
from. This is your OUTGOING buffer.
Next, call interrupt 1 (SETINCOMING) with a pointer in register B to the 256-
word region that the other end will write into. This is your INCOMING buffer.
Call interrupt 2 (READY) when you are currently not mucking around with your
OUTGOING and it may be safely copied. The CRISSCROSS will immediately copy
OUTGOING into its internal buffer on the logic board.
And whenever you want, call interrupt 3 (RECEIVE) to have the CRISSCROSS send
you the other end's most recently READY'd OUTGOING into your INCOMING. If it
has not changed, this will return immediately.
Calling interrupt 2 without having called interrupt 0 will cause CRISSCROSS to
store all zeroes. Calling interrupt 3 without having called interrupt 1 will
result in no data being written to your RAM.
If the other end calls interrupt 3 before you have set your OUTGOING, it will
RECEIVE all zeroes.
SETOUTCOMING and SETINCOMING may be raised at any time to change your current
buffer locations.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Coming soon: the MINTAKA CLOVERWHEEL star topology router and the MINTAKA
GREENBANK radio tranceiver!
by Abigail van der Polder, STUDIO MINTAKA
extracanonical:
actually by Melissa
@0xabad1dea / abadidea on freenode & reddit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment