It is 50 years since the release of 8085 and tinyBASIC. Since I have some 8085 chips, I thought of making some simple and effective design.

There are many open source designs available online.  Most of them uses many components which are not available now or having large area of board.

I was looking for something similar to Lee Hart's 1802 or Z80 design. I came across a similar design based on 8085 microprocessor.

The board having only six ICs. Out of which three are just simple logic ICs. 

There are only three main components in the design. Microprocessor, 8kB RAM and 8kB ROM. The computer operates at 4.9152MHz using external crystal. So it is very easy to make.

The good thing about this design is it comes with circuit, layout and monitor program. It fits into a Altoids tin. Due to small available space, the board was designed in four layers. But signals uses only TOP and BOTTOM layers and the inner two layers used as power planes which simplifies easy routing.

The technical article was published in march 2019 Nuts and Volts magazine. The 8085 computer was  sold as a kit and currently not available. 

8085 computer - Components

As we see it uses very few components.

The assembled board looks like above picture.

It comes with inbuilt monitor program and tinyBASIC 1.0 with some additional commands.

The memory map is very simple.

Hardware Memory Map:
    0000H - 0EFFH    EPROM: TINY BASIC
    0F00H - 0FFFH    EPROM: ALTAIR TURNKEY MONITOR
    1000H - 1BFFH    EPROM: 8085 MONITOR
    1C00H - 1FFFH    EPROM: unused
    2000H - 3FFFH    SRAM
    4000H - 5FFFH    unavailable
    6000H - 7FFFH    RESERVED (decoded with I/O)
    8000H - FFFFH    OPEN

I/O Map:
    00H - 5FH    unavailable
    60H - 7FH    external I/O port
    80H - FFH    unavailable

Input Port:    60H
Output Port:    61H

Serial interface: 2400 baud, 8N1, Flow control: None

Because of processing of the serial data, sending text files from 
TeraTerm requires delays for character and lines.  I found the following 
settings very reliable:
Transmit delay =
    50 msec/char
    200 msec/line

 I have tried all the monitor options and all of them works well without any major issues.

The original design uses 8kB EEPROM 28C64 for ROM space. But I have used 8kB NVRAM DS1225 in initial testing.

PALO ALTAIDS TINY BASIC VER 1.0

OK
>PRINT "HELLO, WORLD!"
HELLO, WORLD!

The monitor program was assembled using A85 assembler which is available now and works with Windows 11.

MONITOR ADDRESS VECTORS
The ROM subroutine addresses below may be useful for writing programs 
on the Altaids computer.

MONITOR JUMP ADDRESSES
1000 COLD Monitor cold start
1003 WARM Tiny BASIC warm start

MONITOR VECTORS TO USEFUL ROUTINES (ENTER WITH CALL OPCODE)
1006 COUT Output char in A to serial port
1009 CIN Input char from serial port to A
100C PRTWD Output H,L as 4 Hex digits to serial port
100F PRTBY Output the byte in A as 2 Hex digits to serial port
1012 GETWD Get Hex word from serial port, return in H,L
1015 GETBY Get Hex byte from serial port, return in A
1018 PIN Get byte from input port, return in A
101B POUT Send byte in A to output port
101E DSPREG Display registers (registers are restored upon return)
1021 PUTSTR Send null terminated string pointed to by DE to serial port

 Sample Assembly Language program listing using A85 assembler.

                        ; DEMO.ASM
                        ;
                        ; ALTAIDS computer demo
                        ; based on Altair demo from Popular Electronics, Feb 1975
                        ;
                        ; COMMAND TO ASSEMBLE: 
                        ;    a85 demo.asm -l demo.prn -o demo.hex
                        ; 
                        ;
   2000                     ORG    2000H
   2000   3a 80 20      DEMO:    LDA    VAR1
   2003   47                MOV    B,A
   2004   3a 81 20          LDA    VAR2
   2007   80                ADD    B
   2008   27                DAA
   2009   32 82 20          STA    VAR3
   200c   c3 00 20          JMP    DEMO
                        ;    
   2080                     ORG    2080H
   2080   07            VAR1:    DB    07H
   2081   08            VAR2:    DB    08H
   2082   00            VAR3:    DB    0
                        
   2083                     END
2000  DEMO          2080  VAR1          2081  VAR2          2082  VAR3

We can easily download the HEX file into the computer using the monitor command L(Load). We can also enter the opcodes directly into memory locations in RAM using Enter option in the monitor menu. We can also directly run the machine code using G with starting address. If the system goes into endless loop or HALTED, then we can use hardware RESET button to restart.

I have used the TeraTerm for serial terminal. It is very easy to send BASIC in text format with TerTerm. It also supports the XMODEM which is useful for Saving a BASIC program or loading a BASIC program very fast.

The real test for the computer comes when it performs Mandelbrot Set using tiny BASIC. I have tried 2 different tinyBASIC programs. Both of them took same time to complete the task.

Mandelbrot Set - 8085
Mandelbrot Set - 8085

Since tinyBASIC can perform only Integer arithmetic, the results are different from the same code used in floating point arithmetic capable processors.

The 80C85 computer also performed good finding the prime numbers. There are two different methods and time taken differs by algorithm. Below is the results for primes upto 1000.

2nd run with difference algorithm

the above one is much faster than the previous one.

INTERFACING:

The output of the port contents are not static. We need to have additional latch to hold the value using IOW signal which is available on the header pin.

Tried 2 hexadecimal digit display using TIL311. Since TIL311 having a STROBE, we can directly connect to output port 61H.

TIL311 works well with Monitor IO command Oxx. Similarly OUTput PORT61H works with assembly code. But TIL311 not works with tinyBASIC output port commands.

Sojourner (rover)

The Sojourner rover was a vehicle that reached Mars on July 4, 1997 as part of the Mars Pathfinder mission. Sojourner was operational on Mars for 92 sols (95 Earth days), and was the first wheeled vehicle to operate on an astronomical object other than the Earth or Moon. The landing site was in the Ares Vallis channel in the Chryse Planitia region of the Oxia Palus quadrangle.

Sojourner's central processing unit (CPU) was an Intel 80C85 with a 2 MHz clock, addressing 64 kilobytes (Kb) of memory, and running a cyclic executive. It had four memory stores; 64 Kb of RAM made by IBM for the main processor, 16 Kb of radiation-hardened PROM made by Harris, 176 Kb of non-volatile storage made by Seeq Technology, and 512 Kb of temporary data storage made by Micron. The electronics were housed inside the rover's warm electronics box (WEB). The WEB is a box-like structure formed from fiberglass facesheets bonded to aluminum spars. The gaps between facesheets were filled with blocks of aerogel that worked as thermal insulation. The aerogel used on the Sojourner had a density of approximately 20 mg/cc. This insulator was designed to trap heat generated by rover's electronics; this trapped heat soaked at night through the passive insulation maintaining the electronics in the WEB at between −40 and 40 °C (−40 and 104 °F), while externally the rover experienced a temperature range between 0 and −110 °C (32 and −166 °F).

CONCLUSION:

It is a very simple and easy to build 8085 computer board. Both monitor and tinyBASIC are very useful and fun.

8085
8085 book + 8085 kit using PL2303 cable
OK
>RUN
 _____ _             ____    _    ____ ___ ____
|_   _(_)_ __  _   _| __ )  / \  / ___|_ _/ ___|
  | | | | '_ \| | | |  _ \ / _ \ \___ \| | |
  | | | | | | | |_| | |_) / ___ \ ___) | | |___
  |_| |_|_| |_|\__, |____/_/   \_\____/___\____|
               |___/

OK
>