Extension to Ben Eater's breadboard computer that allows saving/loading programs and works as a monitor, assembler and disassembler.
Project tutorial by David Hansel
Ever wanted to play with the computer that sparked the personal computer age but don't have the cash to buy an Altair?
Build your own!
Go into the Printer section of the configuration menu, set the printer type to C700 (Centronics). Set the "Map printer to interface" setting to a serial port - but not the one you are using for the regular input/output. So the Altair will send any output from LLIST or LPRINT to that serial port.
When starting 16K BASIC, enter "C" as the printer type so BASIC expects a Centronics printer.
Now you can connect any printer with a serial connection to that port (making port's baud rate and parameters match the printer's) and it should work.
Note that the Altair will just be sending plain ASCII text to the serial interface (no control codes or such - unless your software sends some). So to test this out you don't have to connect a printer - any terminal (program) will do. You could even just map the printer to the same interface you are using for regular I/O (i.e. "Primary). In that case any output produced by LPRINT or LLIST will just be sent to the regular output - i.e. they will behave the same as PRINT/LIST.
If you have further questions I would recommend posting them in the AltairDuino forum. There are many people there that are happy to help.
I use this library:
Note: it looks like I'm using version 1.0.05 (the code that's directly on that web page),
whereas the latest version in their GIT repository is 1.2.5. Not sure whether the newer version
would work or not.
For the EEPROM I'm using an Atmel AT24C256.
Of course you can just use the builtin eeprom but you'll have to modify the code
so it doesn't attempt to use the external EEPROM. The way it is currently set up it will
always try to use the external EEPROM for 8-bit programs.
To get rid of the boot delay you have to kill the boot loader. The way to do that is to upload the sketch to the Atmega via a programmer (ISP) instead of via the bootloader. Uploading a sketch deletes everything on the Atmega and uploading a sketch via ISP only programs the sketch, not the bootloader.
You can buy programmers online or you can just use another Arduino. There are many explanations about this on the internet - I like this one:
I suggest again to first upload just a "blink" sketch to see that it is working. After uploading you should see the light start blinking immediately after a reset (as opposed to the delayed start with the bootloader). You should be good with the fuses (no need to change them) since they are already set properly and they don't get erased when programming.
Once you got that working, you can do the followig:
- in the programmer.ino sketch, comment out the "#define HAVE_BOOT_DELAY"
statement in line 23
- move the wire to the "chip enable" EEPROM signal from pin A3 to pin D13
- upload the sketch to the Atmega (via the ISP)
After that you should be good to go!
If you ever want the bootloader back you can do so by selecting Tools->Burn Bootloader in the Arduino IDE, again using an Arduino as ISP.
Or connect with your social account:
New here? Create an account