BUGGY - nealcrook/multicomp6809 GitHub Wiki

BUGGY is Lennart Benschop's 6809 debug monitor.

I have ported BUGGY to Multicomp6809; two versions are available:

  • From CamelForth type BUGGY to load and start it. The process for loading and starting it is described here.
  • From FLEX load BUGGY.CMD -- usage notes below.

When you start up FLEX and type MON, it takes you straight back to the (FLEX) prompt.

But, if you first type BUGGY it will load the debug monitor into high memory and patch the MON command with an entry point in the monitor. Here is a simple session loading, entering and leaving buggy:

+++
+++MON
+++BUGGY
+++MON
BUGGY for Multicomp09, 2015Aug23 (type h for help)
.G CD03

+++

The buggy prompt is a dot (.)

G is the "go" command; G CD03 re-enters FLEX through its warm-start vector.

You only need to load it once. Use MON any time afterwards to go back to the monitor:

+++MON
BUGGY for Multicomp09, 2015Aug23 (type h for help)
.H

Asm    {Aaddr}
Unasm  {U or Uaddr or Uaddr,length}
Calc   {Chexnum1{+|-hexnum2}}
Dump   {D or Daddr or Daddr,length}
Enter  {E or Eaddr or Eaddr bytes or Eaddr "string"}
Break  {B or Baddr. B displays, Baddr sets or clears breakpoint}
Find   {Faddr bytes or Faddr "string"}
Go     {G or Gaddr}
Inp    {Iaddr}
Jump   {Jaddr}
Move   {Maddr1,addr2,length}
Prog   {P}
Regs   {R or R<letter><hex>}
Srec   {SO<addr> or SS<addr>,<len> or S1<bytes> or S9<bytes>}
Trace  {T}
Xmodem {XSaddr,len XLaddr,len XX XOcrlf,filler, XSSaddr,len}
Help   {H}

Other command tips:

  • Just use the first letter of the command
  • Commands are a bit fussy about spaces and commas in their arguments
  • For the line assembler, use "." to exit
  • For e (edit memory) a byte needs 2 characters (eg; 04 not 4)
  • For e use "." to exit, or "-" to skip back by one location.
  • Breakpoints work but you cannot spin around a loop using a single breakpoint: you need to use 2 (see the source code for explanation why)
  • Trace uses the hardware SingleStep
  • Xmodem is untested (and likely to remain that way).

Rebuilding from source

You can find the original source elsewhere on github. The source code for my port is in multicomp/flex/multicomp09_flex_buggy.asm and you can use as9 to assemble it. I found about 4 places where buggy would not work because the original assembler was not compatible with the assembler as9. I found one zero-day bug which made the assembler hang on bad syntax.

TODO document the process of building it, generating a binary and putting it on the SDcard (contact me if you are in urgent need of this information).

Back to software overview.

⚠️ **GitHub.com Fallback** ⚠️