Contents | < Browse | Browse >

Nino Brunori - Visionary Unlimited!

    This is a preliminary technical description of the basic functions of
the ADAM computer and the Coleco/ADAM Emulator.

    February 25, 1995

    When the beta version is ready this message will be re-released to the
rest of the Amiga community.  Although this is a basic description of my
work, it still has a lot of my R&D, my intention is to excite the Amiga
community and show that the Amiga can emulate yet another cool computer
with ease and show that we are still the pioneers in the computer
mainstream, that in order to keep Amiga alive we need to develope more
versatile software and hardware.  Coleco screwed themselves, and Commodore
wasn't much better.  We need to help each other, and I need your support
in the development of this product, idea's for improvement, developement,
and BBS distribution.

    This emulator will be able to run all Coleco programs, but because of
obvious differances, hardware is simply impractical to impossible.

Here is a short breakdown of the ADAM computer.

ADAM Original (Revision 80):

8K Rom, 64K mem, 16K Video Mem
3.58 Mhz, Video 10.7 Mhz
2 160K Disk Drives, 2 256K Digital Data Drives (High Speed Tape using
specially formated cassettes), 300 Baud Modem, Serial/Parallel Card, Extra
64K Mem, Daisy Wheel Printer, Auto Dialer, Atari Emulator, 32K Max
Cartridge Software, Digital Joysticks, Digital Paddles, Special Driving
Module, Roller Controller (TrackBall), Super Action 4 Button Controller.

ADAM Description of Hardware and Emulation
------------------------------------------

Audio:        ADAM consists of 3 separate voices and 1 white noise.
              Emulation will be a step back in time for Amiga, but very
              easy to do.


Cartridges:   ADAM uses carts up to 32K, hardware restrictions forces me
              to make a backup of each cartridge and transfer them to the
              Amiga in order to use them.  Emulation for this software
              will be simple because these carts never accessed Disk
              Drives or the Keyboard.


Controllers:  The Coleco controllers are the hardest part to emulate, all
              options available are the usual up, down, left, right,
              fire 1 also fire 2, fire 3, fire 4, spinner x, spinner y,
              and a 12 digit keypad.  I have an idea as to it's emulation,
              but it's a closely guarded secret.  The Emulator will be
              able to use all Coleco Controllers, the exception with the
              Roller Controller is that the power supply runs off the
              machines with an adapter, I will supply voltage requirements
              for the controller for usage.


Clock Speed:  3.58 MHZ will be no problem.  Emulation will set timing to
              normal no matter what speed the Amiga runs at, a variable
              speed will be added to the external shell.


Drives:       Disk Drives were 51/4 DSDD 160K completely useless in todays
              society, the Digital Data Drives were High Speed Digital
              Audio Cassettes formated to 256K and were essentially disks
              in the form of Cassettes but a little slower, they had
              directories with 0-255 at 1024 bytes each block = 256K.  The
              emulator will emulate 2 digital data drives but dynamically,
              it will load a 256K data pack file in memory R/W will be in
              memory and at the end of a session any writes will be made
              to the file at the users discretion ie...  With an alert
              that the data pack has been changed.  Access time will be
              Amiga ram access speed, the faster the better.  All pack
              files and cart files will be loaded through the Emulator
              shell and a requestor.


Keyboard:     The Keyboard has 75 Keys, everything is on the Amiga
              Keyboard and some.  Emulation will be no problem.


Memory:       64K Ram is not much from the Amiga, Expansion memory went as
              high as 1/2 Meg.  Most of the software on the ADAM used only
              64K, but there were a few other programs that did use the
              64K expander for their personal use, with the high speed
              256K ram data packs, I'll limit the to the extra 64K.  Total
              128K mem. Which only kicks in through the Emulator shell.
              Added all together 2 256K drives + 128 + emulator = at least
              1 meg to run, there should be no Amiga users out there still
              running off 1/2 Meg, if there is, they don't deserve my work!


Printer:      The ADAM's famous Daisy Wheel Printer, a loud obnoxious
              device that print 120 Words a minute, 16K buffer.  This
              piece of krap is not worth the 2 foot waste of space to
              emulate, so all print goes to the PRT: device.


Ports:        Serial/Parallel Port this option was a $50.00 board that was
              in limited supply, anyway there's no need whatsoever to
              emulate it.  The ADAMLink 300 Baud Modem had it's own
              special connection port.  The Auto Dialer, another piece of
              garbage like the ADAMLink used pulse dialing, check this
              out!  Turn ADAM on, put in software, hit reset, 2 minutes
              later software is booted, call up menu another minute,
              select number, pulse dial and then pick up the phone.  Best
              case scenario takes 5 minutes to dial someone.  The guy who
              thought of this one should have stayed in the cabbage patch
              dept.  The Side connecter expansion port is impossible to
              emulate without hardware, on the ADAM it was used primarily
              for the Atari 2600 emulator and the Auto Dialer, on the
              ColecoVision it was also used for the ADAM computer add on.


Video:        ADAM's Video consists of 16K memory buffer for patterns,
              256x192 and 15 colors for Border and Pixels also 32 separate
              sprites.  Emulation will be difficult because of the way in
              which ADAM setup and used it's video chip.  In studying the
              ADAM video scheme it seemed more like a hack but was
              revolutionary for its time.  The video itself was set up
              with 8x8 patterns with a 2 color state.  This makes out a
              32x24 8x8 patterns or 8 * 32 = 256, 8 * 24 = 192 which
              ultimately means you can only have 2 colors every 8 pixels,
              this is why most Coleco games never had colorful
              backgrounds.  Another drawback was only 4 Sprites to a
              horizontal line.  The Emulator fixes all of the downfalls of
              the the ADAM's video hardware architecture and greatly
              improves on them.

Any call to hardware not supported will return an error return code.


Summary
-------

    This whole program was almost scraped.  I recieved about 7 email
letters of support, one from california.  I was suprised because I was on
an IBM board and all of a sudden, WHAM, I got mail.  Anyway, I was
planning to use the original operating system for this emulator, then
after more R&D I found why should I translate the output of the operating
system and all of it's restrictions when I can just rewrite the EOS seeing
that the Jump tables call the functions and not the program itself.  See
ColecoFig1.iff for more info.  All which led to the development of ARTIE,
(ADAM Real Time Instruction Emulator) a highly optimized set of routines
that replaces the ADAM operating system and interfaces the ADAM output to
Amiga's output.  This code is the finishing touches before beta release.

    It was this code plus all my time in school which had set the release
date from last summer till 2 or 3 months from now.  That's Coding, Debug,
and Tweaking.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    This information is being released now in order to gauge the Amiga
community's response to another emulator for our great beloved machine.

    Visionary Unlimited!  will be looking for a few good beta testers.  A
limit of 5 beta testers will be used for the preliminary release.  All
beta testers will have to show proof of ownership of a Coleco Adam
computer (Possibly codes results from a simple program?) and will be
registered and have to return detailed bug reports on a timely basis.

    If you're interested in being a beta tester for the Coleco/ADAM
emulator, Visionary Unlimited!  would like to hear from you.  There's two
ways to get in contact with VU!

1     Last! Amiga BBS
      (305) 456-0126

      Leave a message to the SysOP that you'd like to be a beta tester
      for the Coleco/ADAM Emulator.  You'll be notified when beta test
      versions are ready.

2     Reply to pday@gate.net with your request to be a beta tester.  
      Please put the keyword BETATESTER in the message description when
      replying.  You'll get an answer back and be given a time frame for
      beta release.

    If you are interested in the Coleco/ADAM Emulator, but do not want to
be a beta tester, that's alright!  Leave a short message at either two of
the systems above, stating you'll just be interested in the Emulator, with
your name and address.  If there's enough response, there will be a
product flier mailed to all, otherwise it will be announced on the
InterNet and a short blurb will appear in the two leading Amiga magazines.

                                        Nino Brunori / Paul Day