DEV Community 👩‍💻👨‍💻


Posted on

Introduction: Creating Sudoku Using eZ80 Assembly (While Learning ASM) [Puzzled Assembly #0]

Hello internet! My name is scoutchorton, and I am a proud, self-taught programmer of almost six years (as of early December). Here's the path I took to self-teach programming:

7th Grade (2013-2014)

  • ProcessingJS/JavaScript on Khan Academy (which is not strictly JavaScript nor is actual ProcessingJS)

8th Grade (2014-2015)

  • Python 2
  • HTML
  • CSS (little knowledge)
  • JavaScript (little knowledge in a DOM environment)

9th Grade (2015-2016)

  • CSS
  • JavaScript
  • Started with Linux (Ubuntu 12.04/14.04, Raspbian for my Raspberry Pi 2 B+)

10th Grade (2016-2017)

  • Google Apps Script (basically an API for JavaScript to work with GSuite products like Google Drive)

11th Grade (2017-2018)

  • Google Firebase (a Google product which offers database services, which has limits but is free, and has a JavaScript API for web applications)

12th Grade (2018-2019)

  • Node.js
  • eZ80 Assembly (both using an editor and entering raw hexadecimal instructions to my TI 84+ CE)

College (present)

  • Powershell
  • Python 3 (basically using Python 2 knowledge and ironing out different errors as I go)
  • More eZ80 Assembly, Python 2, and HTML/CSS/JavaScript/Node.js

I have a ton of all over the place knowledge. Not to mention, I also learned some Lua, Bash, and TI Basic while throwing in some electronics knowledge over the last summer. I'm literally all over the place, but I love it. Computers are pretty much my life, as with most people in the 21st century, but in a deep understanding and desire to know how they work. I honestly wish more people shared my same desire to learn.

Over the last two to four years, I have developed the skill of reading documentation. While it has been a rough journey (thanks Google), it has been an essential step and skill to learn.

The way I have been focusing my learning has been through many, many, many projects that don't normally become complete. Despite not finishing, I have learned so much. I recently wanted to get into eZ80 asm (assembly) for my TI 84+ CE. I was going to try to hijack Texas Instrument's OS (operating system), but it was becoming too much of a project. I was going to make a disassembler to help parse and understand the not-so-documented code to aid in the project. If you know the TI 83/84 line of graphing calculators, they have a catalog which shows different tokens you can use within the OS. We used a couple of these in my Calculus 2 class, and I was getting irritated because I would have to scroll through large sections to get to the function I needed. Since I am a programmer, let's solve that. Create an assembly program to hijack the catalog code and make a favorite system! Problem is, I didn't know where the code for the catalog is, and I wasn't sorting through the disassembly in the amazing emulator, CEmu, just to find the code. That project got a little out of hand (let me tell you, parsing PDF's with Python more difficult than you'd imagine), so I switched to a theoretically easier project.

I wanted to make Sudoku for the TI 84+ CE in eZ80 asm. Now, this project probably already exists by someone else, but this is my version. (I feel like this is something only a programmer could understand.) I have started working on the project, but I really wanted to blog and document my journey on this project. It will give me motivation to discover, learn, teach, reach out, and keep going until the project is complete.

I will publish in this series, and will try to include code examples and hopefully explain how eZ80 asm works. I would hope someone reading this would have some sort of knowledge about eZ80 asm, asm in general, and maybe even electronics (to understand things like a register or CPU cycles).

This has been an introduction to me and my project, so I hope you are interested in my progress to a (hopefully) fun and working game as a result! Stay tuned!

God Bless,

Top comments (0)

🌚 Friends don't let friends browse without dark mode.

Sorry, it's true.