The STL Lambda Lounge Vending Machine for the Commodore 64
22b829c8 — Matt Stine 2 months ago
finish coin return
01736d1c — Matt Stine 2 months ago
add todo list
2abb8d07 — Matt Stine 2 months ago
additional README improvements


browse  log 



You can also use your local clone with git send-email.

#Vending Machine C64

This repo contains the beginnings of an implementation of the Vending Machine Specification from the St. Louis Lambda Lounge language shootout (May 2009). The spec itself is found in VendingMachineSpecification.pdf.

I've used this spec over this years as a bit of a coding kata, and I routinely use it as a relatively non-trivial problem to go beyond "Hello World" in learning new languages.

The code is implemented in 6510 machine language using KickAssembler, which provides an interesting JavaScript-like scripting language at "compile-time" to help generate code. In addition, I'm developing the code using TDD and an RSpec-like framework called 64spec.


  • Java (JDK) 8 or higher
  • VICE - the Versatile Commodore Emulator (tested with v3.7)
    • the x64sc executable should be on your path)


$ ./gradlew build

This will assemble the .prg files and run the 64spec specifications.

#Want to See Spec Output on the C64 in All of Its 8-Bit Glory?

Just jump into build.gradle.kts and uncomment this line:

//    viceHeadless = false

#TODO List

  • [X] Insert Money
  • [X] Coin Return
  • [X] Service
  • [ ] Get Item
  • [ ] Machine Responses
  • [X] Machine State Tracking