Close
0%
0%

Intel 8085 – KE6JMG ASCII Banner Display

An Intel 8085 assembly program displaying KE6JMG in large ASCII characters using a font table and SDK-85 emulator.

Similar projects worth following
0 followers
Intel 8085 – KE6JMG ASCII Banner Display

This project demonstrates how the vintage Intel 8085 microprocessor can generate large ASCII character banners using assembly language, character font tables, and serial terminal output.

The initial demonstration displays my amateur radio callsign, KE6JMG, using a custom machine-language program running on an emulated Intel SDK-85 development system.

The SDK-85 emulator was compiled under Ubuntu Linux using Windows Subsystem for Linux (WSL) on Windows 11.

The program reads character patterns from memory and converts them into large, multi-line ASCII characters for display on a serial terminal.

Project logs will document the Linux installation commands, emulator compilation, Intel 8085 machine-code listings, font tables, and modifications to the emulator.

A future goal is to connect the emulator to a real ASR-33 Teletype through a Teensy 4.1 serial interface operating at 110 baud.

Intel 8085 – KE6JMG ASCII Banner Display

Introduction

This project brings together vintage Intel 8085 microprocessor programming, an emulated Intel SDK-85 development system, and large-character ASCII banner generation.

The objective is to display my amateur radio callsign, KE6JMG, using an Intel 8085 machine-language program and a character font table.

The project also explores how a modern computer can communicate with vintage electromechanical equipment, particularly the ASR-33 Teletype.

The SDK-85 Emulator

The development environment uses an open-source Intel SDK-85 emulator compiled under Ubuntu Linux through Windows Subsystem for Linux (WSL) on Windows 11.

The emulator provides an environment for entering, examining, and executing Intel 8085 machine-code programs.

When started in serial terminal mode, the emulator displays:

SDK-85   VER 2.1

The SDK-85 monitor supports commands for examining memory, entering machine code, and executing programs.

For example:

.D2000
.I2000
.G2000

These commands allow the banner program to be developed and tested without requiring a physical SDK-85 board.

Character Generation

The banner generator uses a font table stored in the emulated 8085 memory.

Each character is represented by a series of patterns describing its shape. The 8085 program reads these patterns and produces multiple rows of printable ASCII characters.

The initial demonstration generates the callsign:

KE6JMG

The design is intended to be expanded to support a complete character set, including uppercase letters, numbers, punctuation, and spaces.

A table-driven approach allows new messages to be displayed without rewriting the entire character-generation routine.

Emulator Development

The SDK-85 emulator was compiled using standard Linux development tools.

Additional work has included developing a startup menu with options for:

  1. Serial / TTY mode
  2. SDK-85 keypad and display mode
  3. Rebuilding the emulator
  4. Exiting the program

A planned enhancement is to load the banner program and font table automatically when the emulator starts.

This will eliminate the need to manually enter machine-code bytes each time the program is demonstrated.

ASR-33 Teletype Interface

A future demonstration will connect the emulator to a real ASR-33 Teletype.

The ASR-33 uses 110-baud serial communication and a 20 mA current-loop interface.

A Teensy 4.1 microcontroller provides serial conversion between the computer and the Teletype, including character translation and timing adjustments.

The goal is to have the Intel 8085 program generate the KE6JMG banner while the ASR-33 prints the characters mechanically.

Documentation

The project logs and build instructions will include:

  • Ubuntu and WSL installation instructions
  • Linux compilation commands
  • SDK-85 emulator configuration
  • Intel 8085 machine-code listings
  • Character font tables and memory maps
  • Emulator menu modifications
  • Serial communication experiments
  • ASR-33 Teletype integration

Computer-specific usernames, hostnames, and private directory paths will be replaced with generic examples in the published documentation.

Conclusion

This project demonstrates that classic 8-bit microprocessor programming remains useful for learning about memory organization, character generation, serial communication, and embedded software design.

The ultimate goal is to combine a working Intel 8085 software environment with authentic vintage Teletype hardware, bringing early microprocessor technology back to life.

  • Project Log #2

    Harold Moore • 2 hours ago • 0 comments

    Project Log #2 — Programming the Intel 8085 to Display KE6JMG

    Introduction

    With the Intel SDK-85 emulator successfully compiled and running under Ubuntu Linux, the next step was to develop an Intel 8085 machine-language program capable of producing a large ASCII-character banner.

    The objective was to display my amateur radio callsign:

    KE6JMG

    The program was developed using the SDK-85 monitor, with machine-code instructions entered directly into the emulator's memory.

    The finished demonstration produces an eight-line banner using printable ASCII characters and a compact method of encoding repeated spaces.

    This project log contains the recorded machine-code program, complete banner data, monitor commands, and terminal output.

    1. The Intel SDK-85 Emulator

    The emulator used for this project was originally developed by Kjetil, known as kobolt on GitHub.

    Original source repository:

    https://github.com/kobolt/sdk85emu

    The emulator is distributed under the MIT License.

    The software emulates the Intel 8085 processor and SDK-85 development environment, including the monitor and serial terminal facilities.

    My project uses this emulator to develop and execute an original ASCII banner demonstration.

    2. Program Design

    The banner generator separates the executable machine-code routine from the ASCII banner data.

    The executable program reads bytes sequentially from memory, interprets their values, and sends the resulting characters to the SDK-85 terminal.

    The program supports three important operations:

    1. Printing ordinary ASCII characters.
    2. Expanding encoded space characters into multiple spaces.
    3. Processing carriage returns to create multiple lines of output.

    A zero byte marks the end of the banner data.

    This approach reduces the amount of memory required to store large banners containing substantial blank space.

    3. Memory Organization

    The program uses the following memory locations:

    Purpose
    Executable Intel 8085 program
    Encoded KE6JMG banner data
    End-of-data terminator
    SDK-85 monitor output subroutine

    The machine-code routine begins at address 2010H.

    The banner data begins at 2800H and is processed sequentially.

    The program calls the SDK-85 monitor's output routines to generate the display.

    The byte at 2900H is set to zero, providing an end-of-data marker.

    4. Starting the Emulator

    Open the Ubuntu Linux terminal.

    Change to the SDK-85 emulator directory:

    cd ~/sdk85emu

    Start the emulator in serial terminal mode:

    ./sdk85emu -s

    The emulator displays:

    SDK-85   VER 2.1
    .

    The period is the SDK-85 monitor prompt.

    The following commands are entered into the SDK-85 monitor, not the Linux shell.

    5. Entering the Intel 8085 Machine-Code Program

    At the monitor prompt, enter:

    .I2010

    Then enter the following hexadecimal bytes:

    31 C2 20 21 00 28 7E 4F 23 FE 00 CA 90 05 07 DA
    34 20 0F FE 0D CA 2E 20 CD FA 07 C3 16 20 CD EB
    05 C3 16 20 0F E6 7F 57 0E 20 CD FA 07 15 C2 38
    20 C3 16 20 00

    Finish the memory-entry operation using:

    /*

    This is the machine-code sequence recorded during the successful development session.

    The program initializes its working registers, reads encoded banner data, and uses the SDK-85 monitor routines for terminal output.

    6. Entering the Complete KE6JMG Banner Data

    The banner data is stored separately from the executable instructions.

    At the monitor prompt, enter:

    .I2800

    Enter the following hexadecimal bytes exactly as shown:

    85 4B 20 20 4B 20 45 45 45 45 20 20 36 36 20 20
    20 4A 4A 4A 20 4D 20 20 20 4D 20 20 47 47 47 0D
    85 4B 20 4B 20 20 45 20 20 20 20 36 20 20 20 20
    20 20 20 4A 20 4D 4D 20 4D 4D 20 47 20 20 20 0D
    85 4B 4B 20 20 20 45 20 20 20 20 36 20 20 20 20
    20 20 20 4A 20 4D 20 4D 20 4D 20 47 20 20 20 0D
    85 4B 20 4B 20 20 45 45 45 20 20 36 36 36 20 20
    20 20 20 4A 20 4D 20 20 20 4D 20 47 20 47 47 0D
    85 4B 20 20 4B 20 45 20 20 20 20 36 20 20 36 20
    20 20 20 4A 20 4D 20 20 20 4D 20 47 20 20 47 0D
    85 4B 20 20 4B 20 45 20 20 20 20 36 20 20 36 20
    4A 20 20 4A 20 4D 20 20 20 4D 20 47 20 20...
    Read more »

  • Project Log #1

    Harold Moore • 2 hours ago • 0 comments

    Project Log #1 — Installing and Compiling the Intel SDK-85 Emulator Under WSL

    Introduction

    The first step in developing the KE6JMG ASCII Banner Display was establishing a working Intel SDK-85 emulator.

    The Intel SDK-85 was a development system designed around the Intel 8085 8-bit microprocessor. It provided a platform for experimenting with machine-language programming, memory operations, peripheral interfaces, and serial communications.

    For this project, I am using an open-source SDK-85 emulator running under Ubuntu Linux through Windows Subsystem for Linux (WSL) on a Windows 11 computer.

    This log explains how to obtain the original emulator, install the necessary development tools, compile the software, and run the SDK-85 monitor.

    1. Original Emulator and Author Credit

    The Intel SDK-85 emulator used in this project was originally developed by Kjetil, known as kobolt on GitHub.

    Original GitHub repository:

    https://github.com/kobolt/sdk85emu

    Original project documentation:

    https://kobolt.github.io/article-250.html

    The original emulator is distributed under the MIT License.

    Kjetil's software provides an emulated Intel 8085 processor, SDK-85 keyboard and display interface, serial terminal operation, memory support, and debugging facilities.

    The original emulator includes:

    • Intel 8085 CPU emulation
    • Intel 8279 keyboard/display interface
    • SDK-85 monitor ROM
    • Serial terminal operation
    • Debugging and breakpoint capabilities
    • Intel HEX ROM loading
    • Additional memory support

    Full credit for the original emulator belongs to Kjetil.

    My KE6JMG project builds upon this work by developing a custom Intel 8085 ASCII banner program, experimenting with character font tables, modifying the emulator startup environment, and investigating communication with an actual ASR-33 Teletype.

    The original copyright and license notices will be preserved in any redistributed modified emulator source code.

    2. Installing Windows Subsystem for Linux

    The development computer uses Windows 11.

    WSL allows Ubuntu Linux and its development tools to operate within Windows without requiring a separate Linux computer.

    Open Windows PowerShell as Administrator and enter:

    wsl --install -d Ubuntu

    Windows may request a restart.

    After restarting, open Ubuntu from the Windows Start menu.

    During the initial setup, Ubuntu will request a Linux username and password.

    To verify the installation, open PowerShell and enter:

    wsl --list --verbose

    The installed Ubuntu distribution should appear.

    3. Updating Ubuntu Linux

    Open the Ubuntu terminal.

    Update the package information:

    sudo apt update

    Upgrade installed packages:

    sudo apt upgrade -y

    These commands prepare the Linux environment for software development.

    4. Installing the Development Tools

    The SDK-85 emulator is written in C and uses terminal display libraries.

    Install the required development tools:

    sudo apt install -y build-essential make libncurses-dev git

    These packages provide:

    • GCC — GNU C compiler
    • Make — software build utility
    • ncurses — terminal display library
    • Git — source-code retrieval utility

    Verify that the compiler is available:

    gcc --version

    Verify Make:

    make --version

    Verify Git:

    git --version

    5. Downloading the Original SDK-85 Emulator

    The original source code is publicly available from Kjetil's GitHub repository.

    For a straightforward Linux installation, open the Ubuntu terminal and enter:

    cd ~

    Download the source:

    git clone https://github.com/kobolt/sdk85emu.git

    Enter the project directory:

    cd ~/sdk85emu

    Examine the downloaded files:

    ls -la

    The source directory contains several important files, including:

    Makefile
    main.c
    i8085.c
    i8085.h
    serial.c
    serial.h
    mem.c
    mem.h
    monitor.hex
    mcs85util.hex

    The monitor.hex file contains the SDK-85 monitor ROM image.

    The i8085.c source provides the Intel 8085 CPU emulation.

    The serial.c source handles serial communications.

    The Makefile contains the instructions required to compile the emulator.

    Note: During...

    Read more »

View all 2 project logs

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates