
//      Config file for the text mode user interface
//      ********************************************

// __TXT__ symbol is defined when this file is parsed
//
//      Screen configuration
//      --------------------

#ifdef __MSDOS__

SCREEN_MODE             = 0x0003        // Screen mode to use
                                        // 0 - don't change screen mode
                                        // DOS: AL for INT 10

SCREEN_MODES  = {                       // Allowed screen modes
                                        // The mode value is the same
                                        // as AL for INT 10
  0x3:  "Window size: Normal window (80x25)"
  0x55: "Window size: Wide window  (132x25)"
  0x54: "Window size: Big window   (132x43)"
}

#else

SCREEN_MODE             = 0x5019        // Screen mode to use
                                        // high byte - cols, low byte - rows
                                        // i.e. 0x5020 is 80cols, 32rows
SCREEN_MODES  = {                       // Allowed screen modes
  0x5019: "Window size: Normal (80x25)"
  0x6423: "Window size: Medium (100x35)"
  0x8419: "Window size: Wide (132x25)"
  0x842B: "Window size: Big (132x43)"
  0x8464: "Window size: Huge (132x100)"
  0xFF64: "Window size: Ultra wide (255x100)"
}

#endif

SCREEN_PALETTE          = 0             // Screen palette:
                                        // 0 - automatic
                                        // 1 - B & W
                                        // 2 - Monochrone
                                        // 3 - Color
                                        //

SCREEN_CURSOR           = 0             // = 0 normal cursor
                                        // = 1 block cursor

AUTOSAVE                = 100           // After 100 user actions
                                        // IDA flushes its buffers to disk
                                        // Note that IDA flushes its
                                        // buffers every 5 minutes anyway.

WINDIR                  = "c:\\windows" // Default directory to look up for
                                        // MS Windows DLL files
                                        // IDA will search subdirs
                                        //      "dll"
                                        //      "system"
                                        //      "system32"
                                        // of this dir automatically

OS2DIR                  = "c:\\os2"     // OS/2 main directory (is used to
                                        // look up DLLs)


HELPFILE                = "sample.hlp"  // Name of help file used by Ctrl-F1
                                        // Please change it as shown below:
//HELPFILE                = "WIN32.HLP"


ASK_EXIT_UNPACKED       = YES           // Ask confirmation if the user
                                        // wants to exit the database without
                                        // packing it

TEXT_SEARCH_CASE_SENSITIVE = NO         // Search in the disassembly text
BIN_SEARCH_CASE_SENSITIVE = YES         // Search in the input file

#define CONFIRM_UNDEFINE_NO     -1      // Never confirm
#define CONFIRM_UNDEFINE_YES     0      // Always confirm
#define CONFIRM_UNDEFINE_BLOCK   1      // Confirm only if selected

CONFIRM_UNDEFINE_COMMAND = CONFIRM_UNDEFINE_YES  // Confirm the "undefine" command
CONFIRM_SETFUNCEND_COMMAND = YES        // Confirm the "set function end" command (E hotkey)

//
//      Novice mode. The novice mode effectifely disables a lot of
//      IDA functions to make it easier to learn IDA.
//

NOVICE                  = NO

//
//      Keyboard hotkey definitions
//      ---------------------------
//

"ReloadFile"            =       0               // Reload the same input file
"LoadFile"              =       0               // Load additional file into database
"LoadIdsFile"           =       0               // Load IDS file
"LoadDbgFile"           =       0               // Load DBG file
"LoadPdbFile"           =       0               // Load PDB file
"LoadSigFile"           =       0               // Load SIG file
"LoadHeaderFile"        =       "Ctrl-F9"       // Load C header file
"Execute"               =       "Ctrl-F3"       // Execute IDC file
"ExecuteLine"           =       "Shift-F2"      // Execute IDC line
#ifndef __MSDOS__
"Shell"                 =       "Alt-Z"
#endif
"About"                 =       0
"SaveBase"              =       "Ctrl-W"
"SaveBaseAs"            =       0
"Abort"                 =       0               // Abort IDA, don't save changes
"Quit"                  =       "Alt-X"         // Quit to DOS, save changes

"ProduceMap"            =       0               // Produce MAP file
"ProduceAsm"            =       "Alt-F10"
"ProduceInc"            =       0
"ProduceLst"            =       0
"ProduceExe"            =       0
"ProduceDiff"           =       0               // Generate difference file
"DumpDatabase"          =       0               // Dump database to IDC file
                                                // This IDC file contains all
                                                // information to recreate
                                                // the database from scratch
                                                // (executable file will be
                                                //  needed)
"DumpTypes"             =       0               // Dump typeinfo to IDC file

"EditFile"              =       0               // Small text editor

"JumpAsk"               =       'G'
"JumpName"              =       "Ctrl-L"
"JumpSegment"           =       "Ctrl-S"
"JumpSegmentRegister"   =       "Ctrl-G"
"JumpQ"                 =       "Ctrl-Q"
"JumpPosition"          =       "Ctrl-M"
"JumpXref"              =       "Ctrl-X"
"JumpOpXref"            =       "X"
"JumpFunction"          =       "Ctrl-P"
"JumpEntryPoint"        =       "Ctrl-E"
"JumpFileOffset"        =       0

"JumpEnter"             =       "Enter"         // jump to address under cursor
"Return"                =       "Esc"
"UndoReturn"            =       "Ctrl-Enter"    // undo the last Esc
"EmptyStack"            =       0               // make the jumps stack empty

"SetDirection"          =       "Tab"
"MarkPosition"          =       "Alt-M"
"UnmarkPosition"        =       0

"FindAllErrors"         =       0
"JumpError"             =       "Ctrl-F"
"FindAllSuspicious"     =       0
"JumpSuspicious"        =       "Ctrl-V"
"JumpCode"              =       "Ctrl-C"
"JumpData"              =       "Ctrl-D"
"JumpUnknown"           =       "Ctrl-U"
"JumpExplored"          =       "Ctrl-A"
"AskNextImmediate"      =       "Alt-I"
"JumpImmediate"         =       "Ctrl-I"
"AskNextText"           =       "Alt-T"
"JumpText"              =       "Ctrl-T"
"AskBinaryText"         =       "Alt-B"
"JumpBinaryText"        =       "Ctrl-B"
"JumpNotFunction"       =       0

"MakeAlignment"         =       'L'
"ManualInstruction"     =       "Alt-F2"
"ToggleBorder"          =       0

"MakeCode"              =       'C'
"MakeData"              =       'D'
"MakeAscii"             =       'A'
"MakeArray"             =       '*'
"MakeUnknown"           =       'U'

"SetAssembler"          =       0
"SetNameType"           =       0
"SetDemangledNames"     =       0
"SetColors"             =       0
"SetupCompiler"         =       0

"MakeName"              =       'N'
//"MakeAnyName"           =       "Ctrl-N"
"ManualOperand"         =       "Alt-F1"

"MakeFunction"          =       'P'
"EditFunction"          =       "Alt-P"
"AppendFunctionTail"    =       0
"RemoveFunctionTail"    =       0
"DelFunction"           =       0
"FunctionEnd"           =       'E'
"OpenStackVariables"    =       "Ctrl-K" // open stack variables window
"ChangeStackPointer"    =       "Alt-K"  // change value of SP
"RenameRegister"        =       'V'
"SetType"               =       'Y'

"MakeComment"           =       ':'
"MakeRptCmt"            =       ';'
"MakePredefinedComment" =       "Shift-F1"

"MakeExtraLineA"        =       "Ins"
"MakeExtraLineB"        =       "Shift-Ins"

"OpNumber"              =       '#'
"OpHex"                 =       'Q'
"OpDecimal"             =       'H'
"OpOctal"               =       0
"OpBinary"              =       'B'
"OpFloat"               =       0
"ToggleLeadingZeroes"   =       0
"OpChar"                =       'R'
"OpSegment"             =       'S'
"OpOffset"              =       'O'
"OpOffsetCs"            =       "Ctrl-O"
"OpAnyOffset"           =       "Alt-R"
"OpUserOffset"          =       "Ctrl-R"
"OpStructOffset"        =       'T'
"OpStackVariable"       =       'K'
"OpEnum"                =       'M'
"ChangeSign"            =       '-'
"BitwiseNegate"         =       '~'

"CreateSegment"         =       0
"EditSegment"           =       "Alt-S"
"KillSegment"           =       0
"MoveSegment"           =       0
"RebaseProgram"         =       0
"SegmentTranslation"    =       0

"SetSegmentRegister"    =       "Alt-G"
"SetSegmentRegisterDefault"     = 0

"ShowRegisters"         =       "Space"

"WindowOpen"            =       0
"OpenFunctions"         =       "Shift-F3"      // open functions window
"OpenNames"             =       "Shift-F4"
"OpenSignatures"        =       "Shift-F5"      // open signatures window
"OpenExports"           =       0
"OpenImports"           =       0
"OpenSegments"          =       "Shift-F7"
"OpenSegmentRegisters"  =       "Shift-F8"
"OpenSelectors"         =       0
"OpenXrefs"             =       0
"OpenStructures"        =       "Shift-F9"      // open structures window
"OpenEnums"             =       "Shift-F10"     // open enums window
"OpenProblems"          =       0
"OpenTypeLibraries"     =       "Shift-F11"
"OpenStrings"           =       "Shift-F12"

"PatchByte"             =       0
"PatchWord"             =       0
"Assemble"              =       0

"TextLook"              =       0           // set text representation
"SetAsciiStyle"         =       "Alt-A"     // set ascii strings style
"SetAsciiOptions"       =       0           // set ascii strings options
"SetCrossRefsStyle"     =       0           // set cross-referneces style
"SetDirectives"         =       0           // setup assembler directives
"ToggleDump"            =       "Ctrl-F4"   // show dump or normal view
"SetupData"             =       "Alt-D"
"SetAuto"               =       0           // background analysis

"ViewFile"              =       0
"Calculate"             =       '?'
"ShowFlags"             =       'F'
"SetupHidden"           =       0
"Hide"                  =       "Numpad-"
"Unhide"                =       "Numpad+"

"WindowMove"            =       "Ctrl-F5"
"WindowZoom"            =       "F5"
"WindowPrev"            =       "Shift-F6"
"WindowNext"            =       "F6"
"WindowClose"           =       "Alt-F3"
"WindowTile"            =       0
"WindowCascade"         =       0
#ifndef __LINUX__
"SetVideoMode"          =       0
#endif
"ExternalHelp"          =       "Ctrl-F1"
"KeyboardHelp"          =       0

"SetProcessor"          =       0

//
//      Structure manipulation commands
//

"AddStruct"             =       "Ins"           // add struct type
"CopyStruct"            =       0               // copy struct type
"DelStruct"             =       "Del"           // del struct type
"ExpandStruct"          =       "Ctrl-E"        // expand struct type
"ShrinkStruct"          =       "Ctrl-S"        // shrink struct type
"MoveStruct"            =       0               // move struct type
"DeclareStructVar"      =       "Alt-Q"         // declare struct variable
"ZeroStructOffset"      =       "Ctrl-Z"        // force zero field offset
"SelectUnionMember"     =       "Alt-Y"         // select union member

//
//      Enum manipulation commands
//

"AddEnum"               =       "Ins"           // add enum
"DelEnum"               =       "Del"           // del enum
"EditEnum"              =       "Ctrl-E"        // edit enum
"AddConst"              =       "Ctrl-N"        // add new enum member
"EditConst"             =       'N'             // edit enum member
"DelConst"              =       'U'             // delete enum member


//
//      Debugger commands
//

"ProcessStart"         =        "F9"
"ProcessPause"         =        0
"ProcessExit"          =        "Ctrl-F2"
"ToggleBreakpoint"     =        "F2"
"ProcessAttach"        =        0               // Attach to a process
"ProcessDetach"        =        0               // Detach from the debugged process
"TakeSnapshot"         =        0               // Take a memory snapshot to the database
"EditBreakpoint"       =        0
"AddWatch"             =        0
"DelWatch"             =        0
"ThreadStepInto"       =        "F7"
"ThreadStepOver"       =        "F8"
"ThreadRunToCursor"    =        "F4"
"ThreadSetCurrentIp"   =        "Ctrl-Y"
"ShowUserScreen"       =        "Shift-Tab"

"Debugger"             =        0 // "Ctrl-Alt-C"
"Breakpoints"          =        0 // "Ctrl-Alt-B"
"WatchList"            =        0 // "Ctrl-Alt-W"
"StackTrace"           =        0 // "Ctrl-Alt-S"
"Threads"              =        0 // "Ctrl-Alt-T"

"SetupProcess"         =        0
"SetupDebugger"        =        0

/***********************************************************/
/*      Macro definitions                                  */
/*      --------------------                               */
/***********************************************************/

// MACRO   "Alt-H"         // this sample macro jumps to "start" label
// {
//         "G"
//         's' 't' 'a' 'r', 't'
//         "Enter"
// }
// MACRO "alt-y" { "alt-x" "Enter" }
//
// MACRO   "Alt-5"         // this macro converts operand to offset from A5
// {                       // (many PlamPilot programs use A5 as ptr to data segment)
//         "Ctrl-R"
//         'A' '5' 'B' 'A' 'S' 'E'
//         "Enter"
// }

//-------------------------------------------------------------------------
//      User specific parameters
//-------------------------------------------------------------------------
//
//  If you don't want to modify IDATUI.CFG file then you can create a file
//  called IDAUSERT.CFG and place additional parameters there.
//
//  The IDAUSERT.CFG file should be placed either in the IDA/CFG directory.
//
#softinclude    <idausert.cfg>
