/asmpong

Pong in your terminal written in assembly

Primary LanguageAssembly

asmpong

CI Badge

I'd never made a game in "pure" x86 assembly, so I decided I wanted to. It's built for a 30x80 terminal.

Allowed C/POSIX library functions

  • putchar
  • fcntl
  • tcgetattr
  • tcsetattr
  • malloc
  • free
  • poll
  • read

This list will diminish over time as I reduce dependencies on the C/POSIX library, but likely not by much.

There's PYTHON! What's that about?

I used python to write the launch file and test driver. The game is entirely written in assembly and works without either of these scripts.

Structure

The project structure is documented in project.md.

Usage

On 64-bit macOS:

./launch

Pass -h to view usage information:

./launch -h

A cross-platform (that is, Intel vs. Silicon) make can be done using ./launch MAKE.

Testing

Run make test to run the CLI tests, which depend on toml.