Hammer Protocol

Hammer Protocol Commands

These are commands recognized by debugging stub in Newton:

  • Open <0,..>
  • Close <1,...>
  • ReadMemory <2,addr,count>
  • WriteMemory <3,addr,count,data+>
  • ReadARM600Registers <8>
  • WriteARM600Registers <9,data+>
  • Execute <0x10,...>
  • Info
  • ReadPhysicalMemory <24,add,count>
  • WritePhysicalMemory <24,addr,count,data+>
  • SpecOperation <0x1a, cmd, data+>
    • GetAndClearPreDebuggerPackageInfo <0x1a,0,val,val>
    • SetgWantSerialDebuging <0x1a,1,val,val>
    • ChangePrimaryMappingToPages <0x1a,2,val,val>
    • RestorePrimaryMapping <0x1a,3,...>
    • ChangePageMapping <0x1a,4,...>
    • RestorePageMapping <0x1a,5,...>
  • Stop <27, S, T, O, P>
  • Go <0x1c, (long)>
  • Ack <0x40>
  • XOpen
  • DownloadBootLoader
  • ImageCommand
  • Ping <120>

To each command Newton responds with one of these:

  • Pong <121>
  • Result <95,...,status>
  • Error <96,error>
  • Fatal <94,...>
  • ImageCommandDone
  • StopWithStatus <0x20,...>
  • Reset <127>
  • Inquiry <128>

Hammer link protocol

Hammer commands are transported exactly as Docking protocol frames, that is every frame starts with SYN DLE STX, every DLE in data is followed by another DLE, and at the end of frame is DLE ETX CRC16_CHECKSUM.

Establishing a Connection

-> 0x80
<- 0x1a 0x09 0x00 0x05 0x00 0x00 0x00 0x00 0x82 0x00 0x00