All Projects → ibara → a80

ibara / a80

Licence: ISC license
Intel 8080/Zilog Z80 assembler written in D.

Programming Languages

d
599 projects
assembly
5116 projects
Makefile
30231 projects

Projects that are alternatives of or similar to a80

awesome-list
Awesome Lists of retrocomputing resources (6502, Apple 2, Atari, ...)
Stars: ✭ 38 (+65.22%)
Mutual labels:  z80, retrocomputing, 8080
i8080-Space-Invaders
Intel i8080 Space Invaders Arcade Emulator
Stars: ✭ 19 (-17.39%)
Mutual labels:  intel, i8080, 8080
blog
retrohunblog
Stars: ✭ 46 (+100%)
Mutual labels:  i8080, retrocomputing, 8080
z80
Single header Z80 emulator for C++ (C++11 or later)
Stars: ✭ 17 (-26.09%)
Mutual labels:  z80, 8080
Learning Go
Source code repository for my book "Learning Go Programming"
Stars: ✭ 194 (+743.48%)
Mutual labels:  programming, coding
Effective Shell
Text, samples and website for my 'Effective Shell' series.
Stars: ✭ 204 (+786.96%)
Mutual labels:  programming, coding
Guide To Staying Productive
If you're looking for ways to stay motivated and focused, while still having fun, this guide is for you! Contributions and any kind of improvements are very welcome!
Stars: ✭ 116 (+404.35%)
Mutual labels:  programming, coding
monobit
Tools for working with monochrome bitmap fonts
Stars: ✭ 124 (+439.13%)
Mutual labels:  retro, retrocomputing
raster-master
Raster Master Sprite/Icon/Map editor for Windows 10/11 that generates RayLib code / Put image and map code for Open Watcom, gcc, AmigaBASIC, Amiga C, Amiga Pascal ,QuickBasic, QB64, Quick C, Turbo Pascal, freepascal, Turbo C, Turbo Basic, Power Basic, FreeBASIC, GWBASIC, BASICA, PC-BASIC,, DOS XLIB LBM/PBM
Stars: ✭ 40 (+73.91%)
Mutual labels:  retro, coding
64tass
64tass - cross assembler for 6502 etc. microprocessors - by soci/singular - [git clone from the original sourceforge repo]
Stars: ✭ 19 (-17.39%)
Mutual labels:  retro, retrocomputing
codeReads
goodReads (pun intended) for coding and programming
Stars: ✭ 29 (+26.09%)
Mutual labels:  programming, coding
Android Cheat Sheet
Cheat Sheet for Android Interviews
Stars: ✭ 1,891 (+8121.74%)
Mutual labels:  programming, coding
State Of The Art Shitcode
💩State-of-the-art shitcode principles your project should follow to call it a proper shitcode
Stars: ✭ 2,207 (+9495.65%)
Mutual labels:  programming, coding
Permissionsswiftui
A SwiftUI package to beautifully display and handle permissions.
Stars: ✭ 220 (+856.52%)
Mutual labels:  programming, coding
Competitiveprogrammingquestionbank
This repository contains all the popular competitive programming and DSA questions with solutions.
Stars: ✭ 122 (+430.43%)
Mutual labels:  programming, coding
apultra
Free open-source compressor for apLib with 5-7% better ratios
Stars: ✭ 84 (+265.22%)
Mutual labels:  z80, retrocomputing
Python-Fundamentals
Jupyter Notebooks for How to Think Like a Computer Scientist - Learning with Python 3 (RLE) Textbook
Stars: ✭ 30 (+30.43%)
Mutual labels:  programming, coding
Cs Fundamentals
🎓 Data structures and algorithms
Stars: ✭ 869 (+3678.26%)
Mutual labels:  programming, coding
Hackphiles
BruteForce Tool For both Instagram and Facebook
Stars: ✭ 57 (+147.83%)
Mutual labels:  programming, coding
spectrum128 cpm
zx spectrum 128 emulation on stm32f407 + Grant Searle's CP/M system port ili9341 16 bit display
Stars: ✭ 29 (+26.09%)
Mutual labels:  z80, cpm

a80

a80 is an assembler written in D for the Intel 8080 (and, by extension, the Zilog Z80) CPU.

a80 is developed on OpenBSD but should work on any system that D targets.

a80 is not an exact clone of any pre-existing CP/M assember, nor does it want to be. The differences will be explained in this document.

a80 also is quite conscious about its design practice and implementation. It is written to be the subject of a series of blog posts in which we attempt to demystify the building of programming tools, and as such very intentionally does not use some very obvious data structures. And it may make some seemingly peculiar design choices. My goal is to have written a real assembler for a real CPU that you can still purchase today (in the form of the Z80) that true beginners can come to understand.

After the blog series, if we want to turn this into a clone of an existing CP/M assembler, I'm all for it.

Bug reports are welcome at any time.

Usage

a80 file.asm

The output will be file.com.

Syntax

A line of assembly takes the following form:

[label:] [op [arg1[, arg2]]] [; comment]

Example assembly programs can be found in hello.asm, fib.asm, and mul.asm.

a80 only understands Intel 8080 opcodes.

The CP/M EQU directive is supported however you cannot use other labels as a value nor can you use expressions.

All op and arg must be lowercase, though labels may include capital letters.

Numbers

Numbers may be in decimal or hex.

Hex numbers must end with an h. If a hex number begins with a-f, it must be prefixed with 0. This is not too dissimilar compared to other CP/M assemblers.

Strings

The DB pseudo-op is available. Strings can be written within single quotes. The multi-comma syntax is not available.

Expression parser

There is none. That is to keep things simple.

The equ pseudo-op does allow for $ and very simple $+number expressions only. No spaces in expressions. Valid expression operands are +, -, *, /, and %.

License

ISC license. See LICENSE for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].