Assembly Language Fundamentals
Courses
Guides
Disk Images
Resources
Dev tools
Directory
Blog
Links
About
Contact
Difficulty
Name
Description
Category
Version
Updated Date
Beginner
Introduction
Introduces the Z80 assembly course, its goals, tools, and audience, and sets up the environment to start building basic programs and games on the Tatung Einstein.
Introduction
1.1
November 20, 2025
Beginner
Hello World
Learn to write, assemble and run your first Z80 program by printing HELLO. Understand key instructions, ASCII, arithmetic, and how programs interact with the emulator.
Introduction
1.0
November 13, 2025
Beginner
Jump (JP)
Learn how to control program flow with the JP instruction. Jump to memory addresses to skip code, repeat sections or call routines, and understand how this affects the program counter and memory layout.
Flow Control
1.1
November 17, 2025
Beginner
Jump Relative (JR)
Learn how to use JR for short jumps in memory, ideal for loops and nearby branches. Combine it with labels to simplify code, avoid manual address calculations, and make programs easier to read and maintain.
Flow Control
1.1
November 17, 2025
Beginner
Conditional Jumps and Loops
Learn to control program flow with conditional jumps. Use flags like Z to decide when to jump, combine DEC and JR NZ for loops that stop at zero, and build counters for repeated actions.
Flow Control
1.1
November 17, 2025
Beginner
Labels
Learn how to use labels to replace hardcoded jump addresses. Labels make code clearer, easier to maintain, and automatically update if instructions move, removing the need for manual address tracking.
Flow Control
1.1
November 17, 2025
Beginner
Subroutines‍
Learn to create reusable subroutines with CALL and RET. Use them to organise code, avoid repetition, and simplify updates. Subroutines act like functions, returning control after execution and can also be called conditionally.
Flow Control
1.1
November 17, 2025
Beginner
Reading Key Input
Learn how to read a single key press using the MCAL KEYIN routine, convert its ASCII value, and display the corresponding character on screen.
User Input
1.0
November 17, 2025
Beginner
Reading Line Input
Learn how to capture a full line of text with ZGETLIN, store it in memory, and process or display it character by character.
User Input
1.0
November 17, 2025
Beginner
Register Pairs
Explains how to use register pairs for 16-bit data, store and retrieve values in memory, and draw graphics lines with MCAL routines.
Data Access & Addressing
1.1
November 17, 2025
Intermediate
Indirect Addressing
Covers indirect addressing, where register pairs act as pointers to memory. It shows how to store, read, and process data or strings efficiently without hardcoding addresses.
Data Access & Addressing
1.0
November 17, 2025
Intermediate
Indexed Addressing
Learn how indexed addressing uses IX or IY as a base plus an offset to access memory efficiently, ideal for working with data tables, arrays, or structured memory layouts in Z80 assembly.
Data Access & Addressing
1.0
November 17, 2025
Next