Public Access
1
0
Files
emuz80disasmgo/README.md
2025-09-25 14:18:22 +03:00

1.3 KiB

Z80 Disassembler

A Go package for disassembling Z80 processor instructions.

Overview

This package provides a Z80 disassembler implementation that can decode Z80 machine code into human-readable assembly mnemonics. It supports all standard Z80 instructions including:

  • Unprefixed instructions
  • CB-prefixed instructions (bit manipulation, rotation, and shifting)
  • DD-prefixed instructions (IX register indexing)
  • ED-prefixed instructions (extended instructions)
  • FD-prefixed instructions (IY register indexing)

Installation

go get github.com/kiltum/emuz80/z80disasm

Usage

package main

import (
    "fmt"
    "github.com/kiltum/emuz80/z80disasm"
)

func main() {
    // Create a new disassembler
    d := disasm.New()
    
    // Decode a simple instruction (NOP)
    data := []byte{0x00}
    instruction, err := d.Decode(data)
    if err != nil {
        fmt.Printf("Error: %v\n", err)
        return
    }
    
    fmt.Printf("Mnemonic: %s\n", instruction.Mnemonic)
    fmt.Printf("Length: %d bytes\n", instruction.Length)
}

Features

  • Complete Z80 instruction set support
  • Detailed instruction information including length and address operands
  • Error handling for malformed or incomplete instructions
  • Comprehensive test suite

License

This project is licensed under the MIT License.