The 'sau' is a decompiler that takes
'nes' files, which contains iNes header information and executable codes for MOS 6502 CPU.
The aim is to create a readable source file.

By this decompiler, we can understand our own NES programs' logic which are written long time ago.


Command Line Option -- See application_option.hpp
-s[address]  set start address
-x	     output hex dump
-a	     output assembly
-q	     output quadruple
-b	     output basic block infos.
-r	     output routine infos.
-d	     output dominator infos.

The name 'sau' is inverse of 'nes'.
This software's former name is 'fdc';
Family Decompiler for C-like.



* nes_program_image.hpp: ...

ByteVector
MemoryImage
NesProgramImage

* ines_header.hpp: iostream, vector

INesHeader

* instruction_map.hpp: vector, map, shared_ptr

Instruction
InstructionMap

* opcode_info.hpp: 

opcode::Operation
opcode::AccessType
opcode::AddressingMode
opcode::AffectingProcessorEnum
opcode::AffectingProcessorStatus
opcode::OpcodeInfo
opcode::OperationInfo

* opcode_utility.hpp:

opcode::AddressingModeType
opcode::OperationType

* operand_info.hpp:

Operand
OperationInfoServer

* address_list.hpp: vector, list, iostream, sstream, algorithm

AddressMarker
AddressMap
AddressList
AddressListManipulator
AddressWorkList

* control_point.hpp

ControlPointList
ControlPointAnalyzer

* basic_block.hpp: 

BasicBlock
BasicBlockList
BasicBlockAnalyzer
BasicBlockBox

* routine_list.hpp: container_utility

Routine
RoutineList
RoutineAnalyzer

* dominator_list.hpp

DominatorList
DominatorLattice
DominatorAnalyzer

* loop_structure.hpp: vector, map

AddressArrowList
SentenceStructure
BranchStructure
LoopStructure
LoopSet
LoopAnalyzer


