Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Various utilities around the DCPU-16 architecture
C Assembly
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
assembler
common
emulator
testcode
Makefile
README
TODO

README

dcpu16tools contains various utlities involving the DCPU-16 architecture for
the upcoming game 0x10c (http://www.0x10c.com).

As of now, the following programs and features have been (or are planned to be)
implemented:

  Emulator/Disassembler:
     * Rudimentary endianness switching (on the top of the "FIXME" list)

     * Slightly sophisiticated disassembling
        - Disassembles instructions only, since origin offsets and data sections
          are usually generated via assembler macros and can not be detected
          in bytecode

     * Auto-Halting, halts the CPU if PC did not change after executing an
       instruction.

     * Some slighty fancy output if verbose mode is enabled

     * Video emulation via ncurses

     * Hexdump-like input

     * PLANNED: Actual clock cycle emulation

  Assembler:
     * "Above average" error messages (and warnings if "--paranoid" is given)

     * Label support as literals, references and offset registers
         (i.e. JSR label, JSR [label], JSR [label + A])

     * Data sections (".dat" can also be written as "dat")
         (i.e. :data .dat "Hello, World!", 0)

     * Origin offsets
         i.e.:
           SET [vram + A], 0x42
           ADD A,          1
           SET [vram + A], 0x43

           .org 0x8000    ; can also be written as "org"
           :vram

     * Can generate little and big endian code.

     * Hexdump-like output format


All programs are written to be easily modified to accomodate DCPU-16 spec
changes in future and to be easily hackable and understandable, at the expense
of code length (the assembler code is about 1.5 times longer than other DCPU-16
assemblers written in C that I have found).

The programs have been tested on Linux and should work without modification on
most POSIX compatible systems and Windows with some minor changes (getopt_long
related).

This project is licensed under the GPL v2 or any later version. Feel free to
toy around with this as you please!
Something went wrong with that request. Please try again.