8-bit CPU with 16-bit addressing

redo eaae7bb2d2 Merge branch 'master' of Auios/8608 into master 1 year ago
emulator 365071072b fix carry and shifts in hardware, misc 1 year ago
examples 64a98f6add Examples 1 year ago
.gitignore 64a98f6add Examples 1 year ago
arch8608.ods 5fe3adca2a initial commit 2 years ago
assembler-8608.lua 365071072b fix carry and shifts in hardware, misc 1 year ago
instructionList.txt 365071072b fix carry and shifts in hardware, misc 1 year ago
memoryMap.md 971f8a326c Update memoryMap.md 1 year ago
readme.md 4af1b92d05 Update readme.md 1 year ago
rom-8608-defs.lua 365071072b fix carry and shifts in hardware, misc 1 year ago
rom-8608.lua 46e5b83cef add aliases, fix cond jumps 2 years ago
utf8table.txt c67a88e7d0 add utf-8 to codepage mapping, change some asm syntax 2 years ago

readme.md

8608 - An 8-bit data, 16-bit address, CISC architecture.

For a list of instructions, see instructionList.txt.

How to use the assembler:

  1. Install bllua3 from https://notabug.org/redo/bllua3
  2. Download this repo into Add-Ons/8608 or anywhere within one of Blockland's main directories.
  3. In BL console, execute: luaexec("Add-Ons/8608/assembler-8608.lua");
  4. To assemble a program, place a 1x1f ghost brick on the top-left corner of the ROM, face forward, and in BL console do:

    AssembleBuildFile("Add-Ons/8608/examples/program.asm", "RomX RomY RomZ");
    

    where RomX is the width of the ROM, RomY is the depth front to back, and RomZ is the height in bits, i.e., "16 16 8".

    You can also run the assembler from the command line to get a memory dump and disassembly in stdout, if you have lua installed:

    luajit "Add-Ons/8608/assembler-8608.lua" "Add-Ons/8608/examples/program.asm"
    

How to use the emulator:

  1. Install love2d from https://love2d.org
  2. Open a command prompt in the "emulator" folder and run: love . C:/path/filename.asm

Memory Map

memory map