Skip to content
forked from kcozens/dis68k

Modernised version of a public domain 68000 disassembler.

Notifications You must be signed in to change notification settings

nonarkitten/dis68k

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dis68k

dis68k is a public domain disassembler for the 68000 by W. de Waal, originally developed in 1991 and written in era-appropriate unstandardised C. It was released into the public domain in 1993.

This fork of dis68k was created by Kevin Cozens from the Thomas Harte fork. The following changes were made:

  • map files only need the region start address
  • added more region types
  • outputs a warning if regions overlap
  • generated op-codes line up properly
  • fixed some bugs including one that locked up the program

The Thomas Harte fork seeked to modernise the original source code written by W. de Waal:

  • to ensure that it builds with modern compilers;
  • to give it normative command-line invocation; and
  • where possible, to adapt the code to utilise more modern language constructs.

Usage

dis68k < file.rom > disassembly.txt

This disassembler reads from stdin and writes to stdout. You can therefore use the usual means of composition to disassemble directly from compressed files and/or to compress the output: zcat file.gz | dis68k > disassembly.txt or similar.

By default the disassembler will assume that the input begins at address 0 and that execution begins at address 0. You can modify that assumption with a map file.

Map Files

Example map file:

romstart = FC0000
FC0000,byte
FC0030,code
FF0000,end

This says:

  1. the input file data should be located at address FC0000.
  2. treat the region starting at FF0000 and ending at FC002F as bytes.
  3. treat the region starting at FC0030 and ending at FEFFFF as code.
  4. stop processing any more data upon reaching address FF0000.

The region types that can be specified are: byte, word, long, text, rsvd, code, and end.

Use rsvd to skip a region of memory where the contents don't matter. Use end to mark the end of the input data. The address specified, and all later data, will not be decoded and included in the output.

Map files are specified to the disassembler using the -m option, e.g.

dis68k -m file.map < file.rom > disassembly.txt

About

Modernised version of a public domain 68000 disassembler.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.8%
  • Makefile 0.2%