Pong in ASM (Buttons moving players bat)

A project log for AVR Asm Exam

Doing the "exam" of the AVR assembly course

Michael MöllerMichael Möller 03/27/2021 at 22:130 Comments

Deadlines. They make this nice "whoooosh" sound as they go past. I want to avoid that, so I am shifting gears a bit here. Concentrating on making the assembler/simulator version, but only the bare minimum.

I used to earn my living as an assembler programer some - ehrm ... <cough cough > ... over 40 years ago. Compiled programs were slower, bigger, had overhead, required an Operating system, and I was coding for standalone systems, and had some realtime requirements. Anyhow, doing the AVR assembly has been a little uphill with the instruction/register set, although I am sort of getting into its mindset.

Today I am uploading the next to last version, I am only missing detecting end game condtition. I may do another version with the NPC being close to unbeatable (It is easy to make it unbeatable now) and/or adding a counter how long the game has lasted before the player inevitably looses (due to sleep deprivation)

This is not my proudest code - style and paragdims are inconsistent. Detecting that one button has been pushed is my most obscure code relying on the Z-flag state for many instructions. I could avoid using SRAM, but wanted to do some memory access. Subroutines which are only called once is ineffcient (though it improves modularization) - one saves all register states quite needlessly and so on.

See the v04 file