[Lancelot] New version of ABC80-in-FPGA

H. Peter Anvin hpa at zytor.com
Wed Feb 2 01:25:15 PST 2005


[För svensktalande, ursäkta engelskan...]

I have released a new version (16) of my ABC80 in an FPGA.  The big 
difference versus the previous version is that this one models the ABC80 
sound generator.

     ftp://ftp.zytor.com/pub/fpga/abc80/abc80-16.tar.bz2
     ftp://ftp.zytor.com/pub/fpga/abc80/abc80-16.zip

Complete list of changes:

Changes in release 16:
----------------------
* Support the ABC80 sound generator.  The original ABC80 had an
   SN76477 semianalog synthesizer chip, largely crippled by using fixed
   RC circuits for its adjustables.  For the FPGA, emulate the operation
   using digital logic, but I believe the correspondance should be very
   good, at least to the extent that the real SN76477 matches the
   datasheet.  There is clearly *some* differences, or "out 6,255"
   would be silent on ABC80.  I simply made a guess as to how those
   sounds should be generated.  If someone with a real ABC80 could
   record a set of files of all 128 sounds I might be able to get even
   closer.

   1 REM This program plays all 128 sounds in order
   2 FOR I%=1% to 255% STEP 2%
   3 GET Z$
   4 PRINT I%
   5 OUT 6%,0%,6%,I%
   6 NEXT I%
   7 GET Z$
   8 OUT 6%,0%

* The display now shows the frequency in MHz by default.

* The LEDs can now be controlled programmatically if desired.

   OUT 148,X    X = 1 to control single LEDs + 2 to control display
   OUT 149,L    Sets the individual LEDs
   OUT 150,A    Sets the right display (units)
   OUT 151,B    Sets the left display (tens)

   All of these can be read back via INP(port), too.

* Centralize all the non-ABC-compatible register handling (MMU, turbo,
   LEDs.)  The turbo can now be read back (via INP(144)), in addition
   to the MMU registers which have always been readable.

* For those sick enough to want it, the cassette port is now connected
   to the following pins on Prototype Connector 1 (J11):

   Relay   - pin 29
   Output  - pin 28
   Input   - pin 38
   Ground  - pin 26, 30 and 40

   These signals are 5V and TTL-compatible.  +5V is available on pin 2
   of J12.  See page 20 of the "Nios Development Board Reference
   Manual, Cyclone Edition" (version 1.0).



More information about the Lancelot mailing list