Fetching latest commit…
Cannot retrieve the latest commit at this time
|Failed to load latest commit information.|
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!