Pong in Assembly

PongEE108B Project – Pong in Assembly
I coded pong in assembly as part of the undergraduate curriculum for Electrical Engineering at Stanford University. MIPS is an assembly language for RISC processors.  It was originally developed by John Hennessey, the current president of Stanford University in 1981.  As far as assembly languages go, it is by far one of the more straight-forward to program.  The class is actually for computer architecture and hardware.  The original pong was actually made in hardware using logic gates.

The lab was coded and tested in XSPIM, a perl MIPS emulator.  Both the VGA software interface and the player input controllers were made from scratch.  The handling was accomplished through memory-mapped I/O using a single VGA monitor and Sega gamepads.  We had to write our own assembly stack calls, register saves, and returns.  I made the program perform function calls for each major aspect of play which requires making my own stack frame and memory manipulations.  The final design was fully-playable Pong game in MIPS assembly code complete with middle divider and score counter.  I would post the code, but this class is still currently taught in the current Stanford curriculum.

Later labs constructed the MIPS architecture in hardware using Verilog and FPGA boards.  This lab was used to make sure future hardware components were functioning correctly.  Our version of pong had to work on our hardware.

Tags: , , , , , , , ,

Comments are closed.

Search

Websites

  • slide
  • slide
  • slide
  • slide