Prof. Dr. rer. nat. Peer Johannsen

Course Related Lecture Material for:
  • Advanced Hardware Oriented C and Assembly Language Programming
  • Advanced Software Development Project Implementation

Retro Programming - Vectrex Academy 2019

General Information

  • Advanced Elective Courses (twice 2 SWS / 3 ECTS, thus total of 4 SWS / 6 ECTS )
  • Fraunhofer IAIS Initiative "Roberta - Lernen mit Robotern" - 
  • Advanced skills in programming, computer science, and calculus required
  • Limited number of seats, entry test must be passed.


Schedule Spring Term 2019

  • Weekly appointments, Monday, 15:15 - 17:00 (timeslots still subject to change)
  • Location T2.2.05, seminar room, and T2.2.07, Computer Science and Robotics Lab

Project Deliverables and Submission Deadline

  • The project results are to be send in as zip file by July 31, 2019, at the latest. Earlier submission is welcome.
  • The zip file should contain:
    • the complete source code of your project (required)
    • the final game binary (required)
    • the game manual (required)
    • the game overlay (optional)
    • (the easiest way to do this is to zip and send your complete project directory)
  • The source code should be reasonably well documented by using inline comments. Further documentation is welcome, but not required.
  • Grading will be based upon the completeness of your project and upon the game itself, i.e. idea, realization, implementation, gameplay, manual, etc.
  • Including the optional game overlay will be positively rewarded.

Course Topics and Educational Objectives

  • Advanced knowledge of the C Programming Language
  • Advanced C Programming Skills
  • Inner workings of a C compiler
  • MC 6809 assembly language programming
  • Deeper understanding of how C is mapped to assembly language
  • Advanced machine oriented C-programming techniques
  • Memory efficient data structures, runtime efficient algorithms
  • Game development techniques, bit twiddling hacks
  • Vector graphics, the Vectrex system

Development Tools and Environment

  • Laptop, Windows, Linux or Mac
  • VIDE - Vectrex Integrated Development Environment
  • ParaJVE Vectrex Emulator
  • Geany Configurable Integrated Development Environment
  • Notepad++ source code editor

Project Resources

  • Vectrex Academy Game Project Template and Demo (
  • MinGW environment for running GCC under Windows (installer)
  • Install G++ (GCC) with MinGW (it is sufficient to install only the needed libraries, but no harm in installing everything)
  • In Windows, add C:\MinGW\bin to user and system path variable
  • How to edit environemt variables in Windows 10 (video)
  • Optional: configuration files for Visual Studio (Code) integration

Vectrex C Programming Interface

Vectrex Programming Documentation

  • Introduction to Vectrex Programming by Christoph Tumber (PDF)
  • Vectrex Programmer's Manual - Part 1 (PDF)
  • Vectrex Programmer's Manual - Part 2 (PDF)
  • Motorola MC6809 Programming Manual (PDF)
  • Motorola MC6809 Programmers Reference (PDF)

Vectrex Programming Online Resources

Vectrex Web Pages


Book References

  • Game Development and Retro Programming
    • "Making 8-Bit Arcade Games in C", Steven Hugg
    • "Game Design und Produktion", Gunther Rehfeld, Hanser Verlag
    • "Classic Game Design", Franz Lanzinger, Mercury Learning and Information
    • "Game Programming Patterns", Robert Nystrom, Genever Benning
  • MC6809 and Assembly Language Programming
    • "Der Mikroprozessor 6809", Jörg Zschocke, Springer Verlag, 1986
    • "Mikrocomputertechnik mit dem Prozessor 6809 und den Prozessoren 6800 und 6802", Günter Schmitt, Oldenbourg Verlag, 1994
    • "Advanced 8-Bit Microprocessor: MC6809", Rober J. Simpson, Raveendran Paramesran, Springer Verlag 1998
    • "6809 Assembly Language Programming", Lance A. Leventhal, Osborne / McGraw-Hill, 1981
    • "6809 Microcomputer Programming & Interfacing with Experiments", Andrew C. Staugaard, Blacksburg, 1981
    • "The MC6809 Cookbook", Carl D. Warren, Tab Books, 1980


  • Pforzheim University is not responsible for the contents of external websites.

Acknowledgements in no particular order

  • Many thanks go to Mr. Helmut Müller for supporting this project from the very beginning on and for generously donating parts of his Vectrex collection to the Computer Science Lab.
  • Also many thanks to Mr. Christopher Salomon for his great support and for integrating our C Setup (and several other whishes) into VIDE, he also generously donated parts of his personal Vectrex collection to the Computer Science Lab.
  • And many thanks to Mr. Franck Chevassu, the creator of the ParaJVE Vectrex emulator, for kindly providing us with his ParaJVD Vectrex debugger and for giving us free licenses for this tool.

Latest modification on 07/16/2019, 20:50

  • Submission deadline and project deliverables added to web page