Prof. Dr. rer. nat. Peer Johannsen

Course Related Lecture Material for
Advanced Hardware Oriented C and Assembly Language Programming


Retro Programming - The 2017 Vectrex Project

General Information

  • Advanced Elective Course (2 SWS, 3 ECTS)
  • Fraunhofer IAIS Initiative "Roberta - Lernen mit Robotern" - 
  • Limited number of seats available
  • Advanced skills in programming, computer science, and calculus required

Schedule Spring Term 2017

  • Weekly appointments, Friday, 09:45 - 11:15
  • Location T2.2.05, seminar room
  • Location 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 28 at the latest. Earlier transmittal 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 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 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 OS or Linux
  • The ParaJVE Vectrex Emulator
  • The ParaJVD Vectrex Debugger
    • Password protected ZIP file
    • Licensed to Pforzheim University only
    • Preconfigured for Windows 64 Bit
    • Instructions on how to install and use the debugger will be given in the lecture.
  • Notepad++ source code editor
  • Geany Integrated Development Environment
  • Kingswood Consulting AS09 Cross Assembler
  • GCC compiler port to the Motorola 6809 processor (gcc6809)
  • 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)
  • Motorola S-Record File Format Converter (srec2bin)
  • VIDE - Vectrex Integrated Development Environment

Project Resources, Source Code and Examples

  • Syntax-highlighting for 6809 assembly language in Notepad++ (XML)
    • Use right-click and "save link as.."
    • In Notepad, go to "Sprachen" - "Eigene Sprachen definieren" - "Importieren" and import file
  • Game template (ZIP)

Vectrex Programming Documentation

  • Vectrex Programmer's Manual - Part 1 (PDF)
  • Vectrex Programmer's Manual - Part 2 (PDF)
  • Motorola MC6809 Programming Manual (PDF)
  • Motorola MC6809 Programmers Reference (PDF)
  • Kingswood AS09 Assembler Man Page (PDF)
  • Introduction to Vectrex Programming by Christoph Timber (PDF)

Vectrex Programming Online Resources

Vectrex Web Pages

Book References

  • "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

Disclaimer

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

Acknowledgements

  • 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. 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 05/20/2017, 08:10

  • Information regarding project deliverables and submission deadline added