Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Robo-1000 and IIgs compatibility?

467 views
Skip to first unread message

Antoine Vignau

unread,
May 23, 2012, 3:47:14 PM5/23/12
to
Dear All,
I own a Robo-1000 package (https://picasaweb.google.com/
104707687928913128396/AppleIIRobo1000), the first 3D device for the
Apple II.

I was wondering where to connect one of the connector on an Apple
IIgs, knowing that the 16-pin interface connects to the I/O port of an
Apple II. But the controller lead also includes a single wire breakout
which is to be connected to the +12V connector of the 4-pin auxiliary
video connector of an Apple II+ or IIe.

The question is: on an Apple IIgs, where should I connect that extra
cable?

Yours ideas are welcome,
Antoine.thesolderingking.edu

Polymorph

unread,
May 23, 2012, 6:45:16 PM5/23/12
to
The soldering king! (Woah!! I fell off my chair!) :-P

Seriously though, the IIgs fan connector provides +12V. Maybe you could use that? The 2 pin fan connector is towards the back left of the motherboard and should be marked as "Fan" or something similar.

Hope this helps!

Cheers,
Mike

Geoff Body

unread,
May 23, 2012, 7:56:04 PM5/23/12
to
Antoine are you becoming a hardware guy?

Steven Hirsch

unread,
May 24, 2012, 7:55:48 AM5/24/12
to
On 05/23/2012 03:47 PM, Antoine Vignau wrote:
> Dear All,
> I own a Robo-1000 package (https://picasaweb.google.com/
> 104707687928913128396/AppleIIRobo1000), the first 3D device for the
> Apple II.

Cool. I picked up a copy of the 2-D RoboCADD several years ago.

Hugh Hood

unread,
May 24, 2012, 9:55:02 AM5/24/12
to
Antoine:

I'm at work right now and can't presently provide a more detailed answer,
but I'm a Robo guy too.

I've got both the Robo Systems CAD 1+ and CAD 2 packages, and several years
ago I picked up a Robo 1000 package (I think equivalent to the U.S. CAD 1)
from a guy in Sweden complete with the BitStik you have in your picture.

For reasons I still can't explain, I still use that CAD system to do almost
all the 2-D scale drawings for my manufacturing plant. I've got a Mac and
spent $1000 for VectorWorks, but never took the time to master it. Robo
works fine for what I need.

Back to your question -- The interface stuff, IIRC, is there not only to
support the 3-axis joystick from the gameport, but also to power their
'protection' scheme dongle, which uses the annunciator line, etc. in
conjunction with a software check. I _think_ the power line is just to run
the light, but it may be to power the resister pack in the dongle.

Many years ago I tired of that setup and just patched the code so that it
was no longer required, both for the CAD 1+ package and for the CAD 2
package. If you'd like the details, let me know. It makes these runnable
without that blasted dongle on any computer that would otherwise support it.
For example, I use CAD 1+ on a IIGS (the 'plot' portion of the package - I
have many legacy drawings).

CAD 2 does _require_ a Saturn 128K card, and I've never had the time to
patch around that, unfortunately. I still run it on a IIe with a Transwarp,
and ditched the 3-axis joystick for the built-in Apple Mouse support.

Funny thing is (and I _thought_ nobody cared these days), several months ago
I wrote a patch to the CAD 1+ PLOT disk that would allow it to plot to .pdf
instead of just to a serially connected HP (HP/GL) or Houston Instruments
(DMPL) pen plotter.

Maybe some interest ... ? I know, probably not. <grin>





Hugh Hood



in article
8cf4b961-0e13-4e44...@em1g2000vbb.googlegroups.com, Antoine
Vignau at antoine...@laposte.net wrote on 5/23/12 2:47 PM:

Steven Hirsch

unread,
May 24, 2012, 9:58:42 AM5/24/12
to
On 05/24/2012 09:55 AM, Hugh Hood wrote:

> Back to your question -- The interface stuff, IIRC, is there not only to
> support the 3-axis joystick from the gameport, but also to power their
> 'protection' scheme dongle, which uses the annunciator line, etc. in
> conjunction with a software check. I _think_ the power line is just to run
> the light, but it may be to power the resister pack in the dongle.
>
> Many years ago I tired of that setup and just patched the code so that it
> was no longer required, both for the CAD 1+ package and for the CAD 2
> package. If you'd like the details, let me know. It makes these runnable
> without that blasted dongle on any computer that would otherwise support it.
> For example, I use CAD 1+ on a IIGS (the 'plot' portion of the package - I
> have many legacy drawings).

Ugh. I have honestly never tried to use the Cad 2 package, but I know I do
not have the dongle. Would you mind sharing the details on your patch?


Hugh Hood

unread,
May 28, 2012, 12:43:13 AM5/28/12
to
Antoine,

Thanks for your patience while I dug through my older Robo CAD stuff, and
for your excusing my earlier rambing 'answer', although this one may ramble
as well.

Anyway, my Robo CAD User Manual (for the U.S. CAD 1 and CAD 2 versions)
shows the single wire breakout for the +12V power connection to their
3-axis/3 button joystick (the large plastic-cased 'BitStik' on the older
versions like you have, and the sleeker, smaller metal-cased 'Robo
Controller' on the newer ones).

Unfortunately, my manual was written before the introduction of the IIgs, so
it only covers the II+ and IIe hookups. I noticed, however, that the later
sales literature published by Robo Systems shows the same packages as having
IIgs compatibility, so I _suspect_ that Robo also supplied a jumper cable to
connect the 12V lead to the fan connector (possibly a pass-through style to
allow simultaneous fan connection).

There may be another 12 Volt 'pin' on the IIgs motherboard that would also
work for this purpose, but I can't be sure. So, as the other guys here
suggested, the fan connector is probably your best bet.

After reading your question, I took the BitStik (that I purchased used from
a guy in Sweden) apart to look around a bit and saw a PCB with a few more
components than I would imagine most joysticks would require. I _think_
these extra components are part of the hardware protection scheme I
mentioned in my prior post.

{On a side note -- Robo also sold a version of CAD 1+ just for the IIc with
mouse, and considering how that machine has no 16 pin internal game
connector, I suspect they implemented the hardware protection differently}.

The latter 'Robo Controller' plugged into a separate 'interface module',
which in turn plugged into the 16-pin game connection. It provided the
hardware protection that the Robo software required in order to run. (FWIW,
the earlier versions of the software also were heavily protected on disk).

I suspect that the earlier 'BitStick' (as you own and as I just dissected)
must have had the hardware protection circuitry incorporated on the PCB I
mentioned, as I noticed no separate interface module on this BitStick.

FWIW, the later versions of Robo CAD (both 1+ and 2) supported the mouse,
but still required a hardware dongle 'interface module' to be in place.
The mouse-compatible versions of the software mapped the paddle X/Y to the
mouse X/Y, and mapped the 3rd paddle 'Z' to the up/down arrow keys (very
coarsely). The (3) game pushbuttons were mapped to the Open-Apple,
Closed-Apple and Mouse Click keys.

In conclusion (finally), I'd suggest that as an alternative to making your
own jumper cable to the +12V fan pin, you may wish to try operating your
BitStik without any connection at all to the +12V line. I imagine that it
controls the light, but I can't remember whether the power line is required
for the hardware protection to work. It can't hurt to try either way. Just
make sure to use a V.O.M on the GS fan pins to ensure that you get your
polarity right, of course.




Hugh Hood


P.S. - Robo was conceived and sold in the U.K. (Ewen, are you familiar with
these guys)?

Their U.S. Affiliate who sold Robo CAD for the Apple II (Robo Systems
International of Newtown, Pennsylvania) is still in business and now only
sells RoboCAD for Windows. Their program is called 'AccuCadd'. Caron
Williams there is an extremely pleasant and most helpful guy, but he makes
no secret of the fact that Robo left the Apple II behind 20 years ago. Not
that I blame them -- A guy has got to make a living.
<http://www.accucadd.com>

P.P.S. - Steve - I'm responding to your question in a separate post.




in article
8cf4b961-0e13-4e44...@em1g2000vbb.googlegroups.com, Antoine
Vignau at antoine...@laposte.net wrote on 5/23/12 2:47 PM:

Hugh Hood

unread,
May 28, 2012, 1:56:09 AM5/28/12
to
Steve,

I'd be happy to share the details of the software patches for the Robo CAD
1+ and CAD2 programs. After all these years, it's neat that anyone cares.

Do you recall which version of the Cad 2 software you have?

The latest version of the Drafting software was 2.7, while the latest
version of the Plotting software was 2.6. These support the mouse in
addition to the 3-axis joystick, and eliminate the disk-based copy
protection.

Since I only patched those versions, I suggest that I just send you disk
images of both the unpatched disk and the patched disk.

If you'll take the images and put them side-by-side in a modern hex editor,
I think you'll be able to see what I did. Frankly, I can't remember much
about them now.

IIRC, I did these one long weekend when my wife was out of town. (I mean,
what else should a man do on a long weekend with his wife out of town)?

Basically, I did disk searches for bytes that accessed the annunciators,
either NOPped ($EA) or jumped around the suspicious code, and tried again.

Robo did a good job putting in several separate checks for the hardware
dongle. Three or four, I think, all in different areas of the disk.

Here's a little more background -- Robo used a cut-down variant of DOS 3.3
for memory efficiency. They also hid some boot-up items in the screen holes,
and implemented some other of the 'usual suspects' from the copy protection
heydays.

You're a clever guy - find a way to patch around the Saturn 128K ram card
support (substituting either some RamWorks style bank switch card or IIGS
expanded memory back and forth moving) and I'll spring for a dinner out.

Heck, for that matter, has anyone here got any good ideas for patching a
program so that it intercepts calls to the Saturn card, jsr's to some small
routine to emulate a 16K bank switch, move the memory, etc, and rts?

As always, I digress.

Let me know if you'd like the images, and I'll get them to you.






Hugh Hood


P.S. - Disclaimer for 'legal' types

Hardware protection interface modules/dongles for the Robo Apple II packages
have been unavailable for many, many years. The patches discussed here allow
continued use of the software (and access to valuable engineering drawings
saved in a native Robo format not usable by any modern computer) in the
event of the failure or loss of the hardware module.




in article 8fadnVFagPAOoyPS...@giganews.com, Steven Hirsch at
snhi...@gmail.com wrote on 5/24/12 8:58 AM:

Antoine Vignau

unread,
May 28, 2012, 4:25:32 AM5/28/12
to
Hugh and others,
Thank you for your messages, I'll connect the beast to my Apple IIgs
and see the level of compatibility with it.

I'd be interested in getting your disk images, I am currently scanning
the manuals and imaging the disks in order to send everything to the
Apple II documentation project. FYI, my Robo-1500 disks are in a
really-really bad shape, mainly unreadable, grrrr! That is not related
to the protection but to a bad disk surface, I'll try to clean it up.

As far the on-disk protection is concerned on the Robo-1000 package,
what you wrote is correct. The first checks are inside the HELLO file
where the protection reads data from a weirdly-formatted track $11
sector $01. Replacing the JSR protection with a BIT protection is
sufficient as there are no values used as a flag. But, you get a
dongle check afterwards while reading the license information. I must
plug the bitstick to go deeper in the analysis.

Antoine

Antoine Vignau

unread,
May 28, 2012, 1:59:35 PM5/28/12
to

aiia...@gmail.com

unread,
May 28, 2012, 2:48:34 PM5/28/12
to
On Monday, May 28, 2012 10:59:35 AM UTC-7, Antoine Vignau wrote:
> And for curious people: http://www.brutaldeluxe.fr/documentation/manual/robocom/
> antoine

Youtube video of software in action?

Antoine Vignau

unread,
May 28, 2012, 3:16:00 PM5/28/12
to
That is the next step ;-)
av

Hugh Hood

unread,
May 30, 2012, 1:57:02 AM5/30/12
to
Antoine:

Thanks so much for making the Robo 1000 and Robo 1500 docs available. I
really enjoyed comparing them with the U.S.- market manuals that I have.

You _may_ (or not) find the following observations interesting:

It appears that the European Robo 1000 System corresponds with the U.S. Robo
CAD-1 System, and that the European Robo 1500 System is the equivalent to
the U.S. Robo CAD-2 System.

As you know, the 1000/CAD-1 System runs on a 64K Apple II+ or better, while
the 1500/CAD-2 System requires a 64K Apple II+ or better _plus_ a
Saturn/Titan 128K Ram Card.

The 1500/CAD-2 System is much more powerful and is faster than the
1000/CAD-1 System, and allows precision scale drafting by entering numeric
dimensions (six figure precision) in addition to just drawing with the help
of scaled grids. It also adds Auto Dimensioning, and, in later versions
(V2.0 and up), a Trap/Window 'Find' feature (essential in my opinion) and a
'Hatch' fill function.

The U.S. Version of CAD-2 eventually was updated to support the Apple Mouse
in place of Robo's proprietary 3-axis joystick, which Robo decided to move
away from in order to support the Apple IIc (with their new U.S. CAD-1+),
and probably to allow them gracefully not to have to repair/service any more
of their one-of-a-kind joysticks, on which they eventually dropped all
support.

{I am not aware of a European equivalent to CAD-1+. It required a 128K IIe,
a IIc, or a IIgs (but no Saturn Card), and attempted to add _most_ of the
features of the CAD-2 package to the CAD-1 package, but unfortunately did
not include the Trap/Window Find or Hatch functions. As previously
mentioned, it did support the Apple Mouse}.

There appears to be one more difference between the early European and U.S.
Products -- while the 1000 and 1500 systems each had a separate manual, the
earlier CAD-2 manual was just a CAD-1 manual with colored 'update' pages
inserted into it to denote changed and/or added features. Not ideal, but I
guess it works. Steven Hirsh, who also has an earlier CAD-2 System,
confirmed that his CAD-2 manual follows the same format as mine, so I guess
it was standard practice for a while.

Robo also sold the following Apple II items for use with their CAD-1/CAD-2
Systems:

1. Plotter Drivers for HP, Houston Instrument, Calcomp and Roland;

2. A CNC interface for running a Bridgeport milling machine from an Apple
II;

3. The RoboDATA Bill of Materials Processor (database stuff);

4. The RoboVIEW 3D Wireframe Visualizer; and,

5. Many pre-drawn symbol libraries, including Analog Schematics, Digital
Schematics, PCB Artwork, Fluid Power Schematics, and Chemical Engineering
Process Schematics.


None of Robo's stuff was inexpensive, which is probably why it wasn't well
known. I never recall it being mentioned in an Apple II mag. I discovered it
in an old Creative Computing article, and I think our company paid almost
$2000 for the software alone back in 1985.

Robo had a fairly good presence in the education market, and a decent amount
of industry customers until AutoCAD became the rage, even though it was
_much_ harder to learn to use than RoboCAD.

Antoine, as time permits, I'll scan some of the old Robo sales brochures to
.pdf and send them to you. May I use the email address that you show in your
posts?






Hugh Hood





in article dd96af7f-5513-4662...@k5g2000vbf.googlegroups.com,
Antoine Vignau at antoine...@laposte.net wrote on 5/28/12 12:59 PM:

Anthonylambert

unread,
Jun 18, 2014, 4:35:44 PM6/18/14
to
Hi,
I programmed some of the Apple Robocom Cad system back in 81-83 time frame.
We really pushed the hardware back then. The Apple software was mainly assembler code. They developed a new PC package from scratch in C after that which became their main product. I always thought they should of sold the software to the main computer market but they sold into into the niche CAD market, so most PC users never really heard of it. If they had charged less and targeted the general market not sure AutoCAD would be the dominant player today. I think their software was a lot better at the time.
I implemented the software disk protection code and dongle reading routines! Glad you could circumvent them!
Anthony Lambert
http://compgroups.net/comp.sys.apple2/


Hugh Hood

unread,
Jun 19, 2014, 12:35:20 AM6/19/14
to
Anthony:

Thanks for contributing on the history of RoboCAD.

I've got to ask. Does the following from the BASIC loader code in the
RoboCAD Apple program reference you, or is it instead some 'other' Tony?


1120 GOSUB 10000: REM MAINMENU
1130 REM IF A$="CTRL-E" AND B$="CTRL-N" AND C$="CTRL-D" THEN GOSUB 40000 :
REM TONY'S BREAK-IN, REMMED OUT


I suppose that I did finally figure out the dongle stuff. Man, it seems like
you checked for that doggone dongle several times -- every time when I
thought I was done searching, disassembling and patching, I was in fact not
- good work!

What I could never figure out (and it still bothers me) is how to liberate
RoboCAD 2 from its dependence on the Saturn 128K RAM card and substitute
instead either Aux Slot or IIGS memory. My disassemblies never got me far
enough into discerning the program structure and logic in the memory manager
areas. In the early 1990's I tried to get Caron (who was in Pennsylvania
with Robo Systems) to let me peak at the source, but he (politely) declined.
Oh well ... I tried.

You're right about Robo's high cost and limited marketing. Our company paid
almost $2,000 for the Apple II software and the Saturn 128K Card, but no one
else with whom I ever talked had even heard of it.

And even the Apple II magazines, when they covered CAD software, hardly ever
mentioned it, in spite of it being very powerful and useful software,
capable of driving large format vector plotters. Even their PC MS-DOS
product got very little press, IIRC.

Finally, you're also right about it being better than AutoCAD was at that
time. After I had used RoboCAD for a year or so, I took an AutoCAD class at
a technical college and remember thinking that RoboCAD was a much more
intuitive program. I haven't played with AutoCAD in years, but I'm sure it's
much better today than it was back then.

Thanks again for sharing. FWIW, I still fire Robo up to plot some of my old
legacy drawings, either on a real plotter (we still have a working Houston
Instruments pen plotter), or to a Unix machine for pdf conversion with
HP2XX.

Regards,





Hugh Hood



in article Gsednbwe-ee9ZTzO...@giganews.com, Anthonylambert at
anthony...@mac.com wrote on 6/18/14 3:35 PM:

John Dallman

unread,
Mar 14, 2016, 8:55:25 PM3/14/16
to
In article <CFC7D2B8.EBF5%hugh...@earthlink.net>, hugh...@earthlink.net
(Hugh Hood) wrote:

> Thanks for contributing on the history of RoboCAD.

I may be able to add a bit more. I worked for Robocom 1984-87, and met
Tony a couple of times.

> I've got to ask. Does the following from the BASIC loader code in
> the RoboCAD Apple program reference you, or is it instead some 'other'
> Tony?

Pretty sure that's him.

> What I could never figure out (and it still bothers me) is how to
> liberate RoboCAD 2 from its dependence on the Saturn 128K RAM card and
> substitute instead either Aux Slot or IIGS memory. My disassemblies
> never got me far enough into discerning the program structure and
> logic in the memory manager areas.

That's going to be extremely difficult. 6502 machine code is not
position-independent, and code went into several of the memory banks of
the 128K card. Others were used for the drawing data: there was more than
64K of code in the 1500 system, so it could not spare any address space
full-time for memory. Memory was so tight that we copied the tiny DOS
clone we used (just under 4K of code) into a memory bank when we weren't
using it, and copied it back when we needed to access the disks.

The memory organisation of the //e and //gs is completely different. I
remember reading the //gs manuals and concluding it was *too* ingenious.
There was some kind of BitStik product for the //gs, but I don't remember
the details, since I was working on the MS-DOS C product by then.

> In the early 1990's I tried to get Caron (who was in Pennsylvania
> with Robo Systems) to let me peak at the source, but he (politely)
> declined. Oh well ... I tried.

I'm pretty sure he didn't have it. The programming and bug fixing was all
done in the UK.

> I haven't played with AutoCAD in years, but I'm sure it's
> much better today than it was back then.

It is.

John

Hugh Hood

unread,
Mar 15, 2016, 12:42:39 AM3/15/16
to
in article memo.20160315...@jgd.cix.co.uk, John Dallman at
j...@cix.co.uk wrote on 3/14/16 7:55 PM:

> In article <CFC7D2B8.EBF5%hugh...@earthlink.net>, hugh...@earthlink.net
> (Hugh Hood) wrote:
>
>> Thanks for contributing on the history of RoboCAD.
>
> I may be able to add a bit more. I worked for Robocom 1984-87, and met
> Tony a couple of times.
>

John:

Please accept my gratitude for your taking the time to offer up a few more
pieces of the Robo CAD story, particularly your insight into the code
itself.

>>
>> In the early 1990's I tried to get Caron (who was in Pennsylvania
>> with Robo Systems) to let me peak at the source, but he (politely)
>> declined. Oh well ... I tried.
>>

>
> I'm pretty sure he didn't have it. The programming and bug fixing was all
> done in the UK.
>

That explains so much about Caron's reluctance to entertain my request even
after I offered to pay a modest sum in exchange for a source code
'examination' license. He was most cordial and polite, though, and I enjoyed
dealing with him.

>>
>> What I could never figure out (and it still bothers me) is how to
>> liberate RoboCAD 2 from its dependence on the Saturn 128K RAM card and
>> substitute instead either Aux Slot or IIGS memory. My disassemblies
>> never got me far enough into discerning the program structure and
>> logic in the memory manager areas.
>>
>
> That's going to be extremely difficult. 6502 machine code is not
> position-independent, and code went into several of the memory banks of
> the 128K card. Others were used for the drawing data: there was more than
> 64K of code in the 1500 system, so it could not spare any address space
> full-time for memory. Memory was so tight that we copied the tiny DOS
> clone we used (just under 4K of code) into a memory bank when we weren't
> using it, and copied it back when we needed to access the disks.
>

I recall trying to trace and understand the mini-DOS you used, and wondered
if the non-code areas (drawing data) saved to the 128K card were accessed as
memory arrays, or whether you had actually set up a RAM disk on the Saturn
card that your mini-DOS could access. Of course, I certainly don't expect
you to remember that detail at this point, although you have already
impressed with your recall of some of the other points of the program!

Pardon this side comment -- In the Apple II community we currently have a
group of 'liberators' (of whom '4am' is the most prominent) who have taken
on the task of not only freeing 1980s-era game software from their copy
protection, but also of modifying them enough that that run under the more
modern ProDOS operating system, as opposed to the older Apple DOS 3.3 (and
its variants).

Should these crusaders ever tire of focusing on games, it sounds like a Robo
CAD 2 Saturn card liberation project would be quite a challenge, and perhaps
even test their considerable skills.

>
> There was some kind of BitStik product for the //gs, but I don't remember
> the details, since I was working on the MS-DOS C product by then.
>

I _think_ you may be referring to the variant that also ran on the 128K
Apple IIe and IIc, and in the US market was called Robo CAD 1+. It contained
almost all the features of the 128K Saturn Card version (Robo CAD 2/BitStik
1500), but unfortunately lacked the 'Trap Find' feature, which was really
needed for efficiently doing serious scale drafting work.

In closing, permit me to ask whether you are still in programming, or are
instead enjoying retirement.

Again, thanks for your contribution.







Hugh Hood






Steve Nickolas

unread,
Mar 15, 2016, 12:45:34 AM3/15/16
to
On Mon, 14 Mar 2016, Hugh Hood wrote:

> Pardon this side comment -- In the Apple II community we currently have a
> group of 'liberators' (of whom '4am' is the most prominent) who have taken
> on the task of not only freeing 1980s-era game software from their copy
> protection, but also of modifying them enough that that run under the more
> modern ProDOS operating system, as opposed to the older Apple DOS 3.3 (and
> its variants).

That's mostly, I think, me and qkumba doing the ProDOS stuff.

> Should these crusaders ever tire of focusing on games, it sounds like a Robo
> CAD 2 Saturn card liberation project would be quite a challenge, and perhaps
> even test their considerable skills.

It might be a bit much for someone as limited in 6502-fu as I, but...

-uso.

wss...@gmail.com

unread,
Mar 15, 2016, 1:17:14 AM3/15/16
to
On Tuesday, March 15, 2016 at 1:42:39 PM UTC+9, Hugh Hood wrote:
>
> group of 'liberators' (of whom '4am' is the most prominent) who have taken
> on the task of not only freeing 1980s-era game software from their copy
> protection, but also of modifying them enough that that run under the more
> modern ProDOS operating system, as opposed to the older Apple DOS 3.3 (and
> its variants).
>
> Should these crusaders ever tire of focusing on games, it sounds like a Robo
> CAD 2 Saturn card liberation project would be quite a challenge, and perhaps
> even test their considerable skills.

It guess it would probably be necessary to disassemble a lot, if not all, of the
program. And then in order to understand it, it would be very helpful to have
a pretty good idea from the user perspective how it works.

After disassembly, the software could be rewritten as necessary to use other
extended memory solutions (Ramworks compatible would probably be best),
and then rebuilt.

Maybe emulation would be a better solution?

If not, at least it is certain that no one will try to work on it without disk images
being available, and I couldn't find any around anywhere.

Antoine Vignau

unread,
Mar 15, 2016, 4:23:37 AM3/15/16
to
If that thread is reactivated then it may be the right time to dig into the code and its numerous protection levels...

John Dallman

unread,
Mar 15, 2016, 5:23:41 AM3/15/16
to
In article <D30CFCE9.121B1%hugh...@earthlink.net>,
hugh...@earthlink.net (Hugh Hood) wrote:

> He was most cordial and polite, though, and I enjoyed dealing with him.

He always was - a very good chap.

> I recall trying to trace and understand the mini-DOS you used, and
> wondered if the non-code areas (drawing data) saved to the 128K card
> were accessed as memory arrays, or whether you had actually set up
> a RAM disk on the Saturn card that your mini-DOS could access.

I don't think there was a RAM disk, but I can't be sure now.

> Should these crusaders ever tire of focusing on games, it sounds
> like a Robo CAD 2 Saturn card liberation project would be quite
> a challenge, and perhaps even test their considerable skills.

That will be fairly hard. The mini-DOS was used because it simply took up
less space. We were always short of memory, to the point where fixing a
bug often required doing other work to reduce the code size to make room
for the fix.

> I _think_ you may be referring to the variant that also ran on the
> 128K Apple IIe and IIc, and in the US market was called Robo CAD 1+.

Probably.

> In closing, permit me to ask whether you are still in programming,
> or are instead enjoying retirement.

I'm not yet old enough to be retired. I am still programming, and still
in CAD. Occasionally I notice that I'm explaining that the software I
work on organises its memory in a particular way which is slower than the
limits of possible speed, but means we can do useful work in 4GB RAM
rather than 512GB, and think things have changed.

Good CAD software can now work on a pretty normal office PC. One reason
why Robocom didn't try to sell to the general computing market very much
was that in the 80s and 90s, you tended to need fancier hardware than the
general market had.

John

John Dallman

unread,
Mar 15, 2016, 5:23:42 AM3/15/16
to
In article <5735799a-5be6-4191...@googlegroups.com>,
wss...@gmail.com () wrote:

> After disassembly, the software could be rewritten as necessary to
> use other extended memory solutions ...

That would be "quite a lot". Memory management was deeply embedded in the
code, and there were a lot of rules about what could be done in different
segments of the code that lived in different memory areas.

If I remember correctly, floating-point calculations were done using a
kind of p-code engine that ended up calling the floating-point routines
in the Applesoft Basic ROM, which meant you couldn't use floating point
in code that went in the upper 12K of address space, whichever bank it
was in.

> Maybe emulation would be a better solution?

If there is an Apple ][+ emulator that can emulate a 128Kb card, that
should be a lot easier than disassembling and rewriting the code.

John

Steve Nickolas

unread,
Mar 15, 2016, 8:09:41 AM3/15/16
to
On Tue, 15 Mar 2016, John Dallman wrote:

> If there is an Apple ][+ emulator that can emulate a 128Kb card, that
> should be a lot easier than disassembling and rewriting the code.
>
> John
>

The "Agat Emulator" can emulate the Apple ][+ and a Saturn card. Not sure
if it emulates a *128K* Saturn card.

-uso.

wss...@gmail.com

unread,
Mar 15, 2016, 10:41:22 AM3/15/16
to
I googled up the manual and the Saturn card is basically just a multibank
language card. It would be extremely easy to implement in any emulator
which already emulates a language card (i.e. - pretty much every emulator).

Then again, that might actually mean it wouldn't be too hard to modify the
program to use Ramworks-style memory expansion with 512k+ ram, because
you could probably get away with only modifying the bank select access.
You'd end up "wasting" 48k out of every 64 bank on the Ramworks, but who
cares, right?

Antoine Vignau

unread,
Mar 15, 2016, 2:44:08 PM3/15/16
to
Before you succeed in emulating the software, think about the bitstik, its dongle and other internal treasures of the beast ;-)

Ewen

unread,
Mar 16, 2016, 3:52:02 AM3/16/16
to
<wss...@gmail.com> wrote:

> I googled up the manual and the Saturn card is basically just a multibank
> language card. It would be extremely easy to implement in any emulator
> which already emulates a language card (i.e. - pretty much every emulator).

We had a Robo at college back then, and that was my memory of it, that
it was just a standard multibank language card that Robo had used. They
didn't make the card themsleves, and the Saturn card could be bought for
other uses.

The protection scheme was the same across all of the disks, so once you
figured out how to crack one, the others could be cracked in the same
way. It was not very complicated at all.

Cheers - Ewen

John Dallman

unread,
Mar 16, 2016, 5:04:08 AM3/16/16
to
In article <1mk71ms.1n8okgy9z8nkN%spectr...@nospam.com>,
spectr...@nospam.com (Ewen) wrote:

> We had a Robo at college back then, and that was my memory of it,
> that it was just a standard multibank language card that Robo had
> used. They didn't make the card themsleves, and the Saturn card
> could be bought for other uses.

This is quite correct. The only hardware Robo made was the BitStik and
the dongle. The Saturn card (or its clones) seem to have been selected
because they added a decent amount of capability; the same went for the
accelerator cards that were recommended.

John

TomCh

unread,
May 1, 2023, 7:20:40 AM5/1/23
to
Hi Hugh, Antoine,

NB. I'm necro-posting after more than a 7 year gap here!

Do either of you still have your BitStik + the "interface module" (aka protection dongle) ?

I'm interested in understanding the specifics of this "interface module" so that I can replicate its functionality under emulation (AppleWin being the target here).

From disk images available online, this one (on the Internet Archive) still has the protection check:
https://archive.org/details/a2__requires_bitstik_hardware_ROBO1000

And Antoine uploaded many Robocom disks in .a2r format here:
https://archive.org/details/Antoine_Applesauce_Vignau

So it's entirely possible that I could reverse engineer the "interface module" h/w from these images.

But ideally someone with the real h/w could assist in running tests against it.

btw, currently on ebay in the US there's one going for $499! I'll pass on that!
And in the UK (ebay again) one came up very recently.

Thanks,
Tom

Hugh Hood

unread,
May 1, 2023, 11:15:48 AM5/1/23
to
Tom,

I'm at work right now, but this evening I'll check my old notes on this.

Robo-1000 was the earlier version of the BitStik CAD program.

It was followed (in the US) by RoboCAD 2 (Apple II + 128K Saturn Card)
and RoboCAD 1+ (Apple //e, IIc, IIgs with 128K total-aux mem).

I de-protected (from the dongle) both RoboCAD 2 and 1+ years ago so that
the interface module would not be required. Each version had a slightly
different interface module, IIRC.

Images of those de-protected disks are up on Asimov.

I had both a European BitStik (that I bought from a Swede) and also the
U.S. Robo Controller that I got with the RoboCAD 2 software when I
bought it years ago. I gave both (with the interface modules) to Sean
Fahey when I donated a truck's worth of hardware, software and
literature to him and to the Garage Giveaway a few years ago. He may
still have them.

Again, let me check my old notes.





Hugh Hood

Hugh Hood

unread,
May 2, 2023, 12:14:32 AM5/2/23
to
Tom,

OK. I surprised myself and found my notes from years ago on the mods I
made to the RoboCAD software to bypass the check for the interface
module in both the drafting and plotting software for both RoboCAD 2 and
RoboCAD 1+

Unfortunately, all they consist of is some scribbling on a few pages of
monitor dumps. I imagine I did this on one of those weekends when my
wife was out of town and I subsisted on a diet of Diet Dr Pepper,
peanuts and the Apple II. Very anti-social, but very productive, I suppose.

Anyway more to your question -- it appears I circled code that toggled
the annunciators ($C058-$C05F) and then did some type of 'check' routine.

It looks like I found this type of annunciator code in two different
programs on the RoboCAD disks and just sector patched in some NOP's and
a couple of JSR's after loading either X or A with a zero. Sorry, it's
been a long, long time.

Also, I looked at the ebay auction you mentioned:

<https://www.ebay.com/itm/225540356005?>

That is the USA controller that came with the USA RoboCAD software.

It was a pretty nice joystick in that it had (3) pushbuttons and also
used the 3rd paddle input as the zooming and rotation wheel.

When RoboCAD was later revised to use the Apple Mouse (v2.7), I switched
to using the mouse instead as there were less 'jitters', but I did miss
the 2nd and 3rd push buttons being on the controller.

One thing - the seller in the auction claims that controller also has
the security dongle, but I sure didn't see it in the picture. It is a
small device that plugs into the interior game port and then the
controller (if one is using the controller) piggybacks it.

If for some reason I run across one of those interface modules, would
you still like to see it? I think at one time I put an ohmmeter on the
thing and didn't really figure it out, so I instead just decided to
patch the software to bypass it.

Let me know if you have any questions on this, and thanks for all your
work on AppleWin, and for continuing to contribute to comp.sys.apple2.

One more thing -- if you do decide to run RoboCAD 2 on AppleWin, the
128K ram card must go in slots 1-7, and not slot 0. Also all the RoboCAD
programs (both 2 and 1+) use DOS3.3-style volume numbers, so you'll need
to provide for that as well.

RoboCAD was a great program in its time, and I still use it from time to
time when I need to access a drawing I made years ago. Now, though,
instead of plotter to a Houston Instruments plotter, I just stream the
plotter software's serial output to a Mac running HP2XX and create a pdf
with it.




Hugh Hood

TomCh

unread,
May 2, 2023, 3:54:52 PM5/2/23
to
Hi Hugh,

Thanks for all that extra and detailed information.

>One thing - the seller in the auction claims that controller also has
>the security dongle, but I sure didn't see it in the picture. It is a
>small device that plugs into the interior game port and then the
>controller (if one is using the controller) piggybacks it.

From the (completed) UK auction, the last picture is a good close up of the interface module:

https://www.ebay.co.uk/itm/ROBO-Bit-Stick-for-Apple-II-IIe-Computer-Systems-/125897854536?nma=true&si=NG%252FL1tTzS3sTl%252BCmpPBMl5laxdk%253D&orig_cvip=true&nordt=true&rt=nc&_trksid=p2047675.l2557

> One more thing -- if you do decide to run RoboCAD 2 on AppleWin, the
>128K ram card must go in slots 1-7, and not slot 0.

That's good to know. AppleWin only supports the Saturn card (assuming that what you mean) in slot-0, and therefore only for the Apple II/II+ models. But AppleWin also supports AE RamWorks-III, with support up to 8MB. Will this work with RoboCAD 2?

> Also all the RoboCAD programs (both 2 and 1+) use DOS3.3-style volume numbers,
> so you'll need to provide for that as well.

OK, so that just means .2mg or .woz format.

btw, I've taken a quick look at the protection check code (in the IA image "a2__requires_bitstik_hardware_ROBO1000"), and it looks like it uses the 4 annunciators to set the potentiometer value for the unused PDL(3). The check code runs through 8 combinations, calling PREAD(X=3) each time to check the PREAD result is within a certain tolerance.

Thanks,
Tom

Hugh Hood

unread,
May 2, 2023, 8:39:47 PM5/2/23
to
On 5/2/2023 2:54 PM, TomCh wrote:
>
> From the (completed) UK auction, the last picture is a good close up of the interface module:
>
> https://www.ebay.co.uk/itm/ROBO-Bit-Stick-for-Apple-II-IIe-Computer-Systems-/125897854536?nma=true&si=NG%252FL1tTzS3sTl%252BCmpPBMl5laxdk%253D&orig_cvip=true&nordt=true&rt=nc&_trksid=p2047675.l2557
>

Yep. That one does have the dongle. You'll notice that it has a bull
nose and machine pins.

I am, however, astounded that someone would pay 102 pound sterling for a
BitStik! The one I had (purchased used from Sweden) seemed like a big
piece of rather cheap plastic and the controls were pretty loose. By
contrast, the Robo Controller was a well-built little metal-cased unit.

>> One more thing -- if you do decide to run RoboCAD 2 on AppleWin, the
>> 128K ram card must go in slots 1-7, and not slot 0.

>
> That's good to know. AppleWin only supports the Saturn card (assuming that what you mean) in slot-0, and therefore only for the Apple II/II+ models. But AppleWin also supports AE RamWorks-III, with support up to 8MB. Will this work with RoboCAD 2?
>

Yes, even when used on the II/II+ models, RoboCAD required Slot 0 to
have a 16K Ram Card with the Saturn Card to be placed in one of the
other Slots.

To your question -- years ago I toyed with disassembling RoboCAD enough
to get it to work, if not with the RamWorks on the IIe, then with IIGS
memory. At the time I didn't have the great tools we have now (e.g.
BrkDown) and bogged down and forgot about it. I always thought it would
be something Mr. Ferrie could handle, given his prowess, but I doubt
there's as much interest for bringing a CAD program to the modern age as
there is for bringing many of the old games that so many love to play.

>
> btw, I've taken a quick look at the protection check code (in the IA image "a2__requires_bitstik_hardware_ROBO1000"), and it looks like it uses the 4 annunciators to set the potentiometer value for the unused PDL(3). The check code runs through 8 combinations, calling PREAD(X=3) each time to check the PREAD result is within a certain tolerance.
>

You're a quick study. I think you've got it whipped. Remember, they did
this at (2) different locations on the disk. I remember feeling so smug
when I bypassed the first check and thought I was home-free. That
smugness was oh-so-short-lived!

Let me know if there is anything else I can do for you on this.




Hugh Hood

TomCh

unread,
May 3, 2023, 5:07:43 PM5/3/23
to
Hi Hugh,

I will try to find some time to implement my understanding of the BitStik's "Interface Module" (ie. when my wife's out of town, and I have a good supply of Diet Dr Pepper! ;-)

And I'll keep you posted when I make some progress.

Thanks again for your responses and excellent level of detail.

Tom

TomCh

unread,
Jan 24, 2024, 9:28:56 AMJan 24
to
Hi Hugh,

Let me provide a brief update here.

I reverse engineered the Module Interface protection for the 3 Robo (BitStik) variants, and added support for them to AppleWin (the Windows-based Apple II emulator) here: https://github.com/AppleWin/AppleWin/releases.

I then went on to present a short (~10 minute) talk at KansasFest last year, titled: "Copy protection via the Game I/O connector", which includes a few slides on the Robo hardware (based on some of the info you supplied in this thread): https://www.youtube.com/watch?v=XXG6XKnaNZk&t=5632s

Thanks,
Tom

Hugh Hood

unread,
Jan 24, 2024, 1:46:12 PMJan 24
to
On 1/24/2024 8:28 AM, TomCh wrote:
>
> I then went on to present a short (~10 minute) talk at KansasFest
> last year, titled: "Copy protection via the Game I/O connector",
> which includes a few slides on the Robo hardware (based on some of
> the info you supplied in this thread):
> https://www.youtube.com/watch?v=XXG6XKnaNZk&t=5632s
>

Tom,

Thanks very much for linking your segment from that video. I enjoyed
your presentation very much and commend you for the effort you put into
making your slides.

We've all come a long, long way from the 'chalk and talk' method of
instructing and learning!

Regards,




Hugh Hood

Steven Hirsch

unread,
Jan 24, 2024, 8:07:41 PMJan 24
to
Do you have an idea what the equivalent circuit would look like to emulate a
Robocad dongle in hardware?


Hugh Hood

unread,
Jan 25, 2024, 1:05:29 PMJan 25
to
Steven,

I think you had addressed your question to Tom, as he's much more
knowledgeable on this than am I, but should you have both the time (and
desire) to reverse engineer a couple of Robo dongles that I still have
(one from RoboCAD 1+ and one from RoboCAD 2), I'd be happy to send them
to you as loaners. They do have serial #s on them, but surely they we're
so careful as to make changes based on that, right?

The guts are concealed by a potting compound, so I'm not sure you could
determine the circuitry without destroying them, but maybe that's not so
bad.

I bypassed that dongle check years ago in the RoboCAD programs. (And,
they're up on Asimov).

Amazingly, I still keep a RoboCAD 2 setup on a TransWarped IIe with a
Saturn card and a Houston Instruments plotter for an occasional re-plot
of something I did years ago.

{BTW, I'm still grateful to you for sending me all that CP/AM 5.1 stuff
years ago. Thanks}.

Regards,




Hugh Hood

TomCh

unread,
Jan 27, 2024, 6:15:00 AMJan 27
to
On Thursday 25 January 2024 at 18:05:29 UTC, Hugh Hood wrote:
> Steven,
>
> I think you had addressed your question to Tom, as he's much more
> knowledgeable on this than am I, but should you have both the time (and
> desire) to reverse engineer a couple of Robo dongles that I still have
> (one from RoboCAD 1+ and one from RoboCAD 2), I'd be happy to send them
> to you as loaners. They do have serial #s on them, but surely they we're
> so careful as to make changes based on that, right?
>

Hi Hugh,

Yes, I'd like to take you up on this offer of a loaner.

The Robocom protection code will detect PDL(3) values in a range (when using the Module Interface), so I'd like to experiment with this real Robo dongle to better understand and mimic its behaviour.

If possible can you contact me via email (tomcharlesworth26 AT gmail.com) to share further details.

Regards,
Tom

TomCh

unread,
Jan 27, 2024, 6:19:43 AMJan 27
to
On Thursday 25 January 2024 at 01:07:41 UTC, Steven Hirsch wrote:
> Do you have an idea what the equivalent circuit would look like to emulate a
> Robocad dongle in hardware?

Hi Steven,

My guess is a (simple) resistor network where each of the 3 annunciators (outputs) will enable a separate part of the network. So you can combine different parts to form 8 different networks (or total resistor values), each yielding different values when PDL(3) is read.

Tom

Hugh Hood

unread,
Jan 27, 2024, 12:34:22 PMJan 27
to
On 1/27/2024 5:14 AM, TomCh wrote:
>
> Yes, I'd like to take you up on this offer of a loaner.
>

Email sent.

FWIW, I donated to KansasFest (actually to Sean Fahey) an original UK
RoboCom Bitstik that I acquired from a gentleman in Sweden many years ago.

I don't recall whether it had a separate dongle, but it had a serial #
on it so I know it was protected. You may wish to contact Sean on
whether he still has it (among his *many* treasures).



Hugh Hood

Steven Hirsch

unread,
Jan 27, 2024, 9:33:10 PMJan 27
to
That's a very large solution space. If you can reverse engineer a circuit
topology from the software side I'll volunteer to solder one up and test.



TomCh

unread,
Jan 28, 2024, 6:42:53 AMJan 28
to
On Sunday 28 January 2024 at 02:33:10 UTC, Steven Hirsch wrote:
> That's a very large solution space. If you can reverse engineer a circuit
> topology from the software side

I'll give it a go!

> I'll volunteer to solder one up and test.

Great - I'll let you know if/when I make progress.

Tom
0 new messages