Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rhetorica/chas
Assembler for the CHASM fantasy computer
https://github.com/rhetorica/chas
assembler assembly emulator fantasy-computer lisp-machine
Last synced: 2 days ago
JSON representation
Assembler for the CHASM fantasy computer
- Host: GitHub
- URL: https://github.com/rhetorica/chas
- Owner: rhetorica
- Created: 2024-09-14T22:41:15.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2024-11-04T05:00:04.000Z (2 days ago)
- Last Synced: 2024-11-04T05:19:21.000Z (2 days ago)
- Topics: assembler, assembly, emulator, fantasy-computer, lisp-machine
- Language: C++
- Homepage: http://lethe.rhetori.ca/hardware.star
- Size: 361 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CHAS Assembler for CHASM
This VS Code project implements an assembler for the CHASM CPU. It is written in mostly-procedural C++, with only a little OOP.
The code is very basic and has a lot of avoidable copy-and-pasting in it; CHAS is meant to be adequate, not good.
## Usage
CHAS has no dependencies. It should build with a simple `cmake -S src build; cmake --build build` in the project's root directory.
The syntax for running CHAS is:
`chas [--print-opcodes] [--base
] [--o ] ``--print-opcodes`: Emits a complete space-separated list of the instruction mnemonics currently supported by this version of CHAS.
`: Sets the base address. CHASM ROMs start at 0x3000 (the default). Userland programs in a multitasking OS start at 0x0000.
`--base
`--o ` or `--output `: Sets the output filename. Default is input filename with `.o` appended.
``: The last argument is the file to assemble.Arguments are parsed from left to right, so `--base` and `--o` must precede ``.
## The CHAS assembly language
The opcodes and instructions are defined in https://github.com/rhetorica/chas/blob/master/doc/chasm-spec.txt
The file `doc/CHAS.xml` provides syntax highlighting for Notepad++ in UDL format.
## Lethe
This repository is a component of the LETHE project, which aims to build a complete software stack based on the Dhar programming language. Read more at http://lethe.rhetori.ca/