func Init() if(isdef(Enabled)) if(Mode) if(sys.gvarfind('breakpoint_is_set') = -1) stack &= block.select(BLK_DBG) gvar(breakpoint_is_set) fvar(project, debug, skips) println('Dim shell_debug') println('Set shell_debug = WScript.CreateObject("WScript.Shell")') debug = project_name() + '_debug.vbs' println('MakeDebugFile ', debug, ', ', 5) println('shell_debug.Run "%COMSPEC% /K ', code(Debugger), ' ', code(Params), ' """ & CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) & "\" & ', debug, '"", SW_NORMAL, False') println('WScript.Quit(0)') lng.begin_func('MakeDebugFile(dbg, skips)') println('Set fso = CreateObject("Scripting.FileSystemObject")') println('Set f = fso.OpenTextFile(WScript.ScriptFullName, 1, False)') println('For i = 1 To skips') block.inclvl() println('f.SkipLine') block.declvl() println('Next') println('Do While f.AtEndOfStream <> True') block.inclvl() println('data = data & f.ReadLine & VbCrLf') block.declvl() println('Loop') println('f.Close') println('Set f = fso.OpenTextFile(fso.GetSpecialFolder(2) + "\" + dbg, 2, True)') println('f.Write data') println('f.Close') lng.end_func(BLK_FUNC) block.select(_arr.pop(stack)) end else if(sys.gvarfind('debug_is_set') = -1) include('fso') include('shell') fvar(classpath) stack &= block.select(BLK_FUNC) gvar(debug_is_set) classpath = replace(sys.codedir() & 'classes\Debug.vbs','\\','\\\\') println(code(file2str(classpath))) block.select(BLK_OBJ) println('Set debug_form = form_0.CreateDialogForm(shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\Left"), shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\Top"), shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\Width"), shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\Height"), &h00CC0000)') println('WScript.ConnectObject debug_form, "debug_form_"') println('With debug_form') block.inclvl() println('.Text = "Debug information window"') println('.TopMost = True') block.declvl() println('End With') println('Set debug_table = debug_form.CreateListView(0, 0, 0, 0, &h50110001)') println('debug_table.OnColumnResize = GetRef("ColumnResize")') println('With debug_table') block.inclvl() println('.RowSelect = True') println('.GridLines = True') println('.Columns.Add("Name")') println('.Columns.Add("Value")') println('.Columns.Add("Type")') println('.Columns.Add("Count")') println('.Align = wso.Translate("AL_CLIENT")') println('.Columns.Item(0).Width = shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\wName")') println('.Columns.Item(1).Width = shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\wValue")') println('.Columns.Item(2).Width = shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\wType")') println('.Columns.Item(3).Width = shell.RegRead("HKEY_CURRENT_USER\Software\HiAsm\Debug\wCount")') block.declvl() println('End With') end block.select(BLK_GLOB) println('Dim ', EventCountData, ', ', EventCountVar) lng.begin_func('ColumnResize(Sender, Item)') println('shell.RegWrite "HKEY_CURRENT_USER\Software\HiAsm\Debug\w" + Sender.Columns.Item(Item.Index).Text, Sender.Columns.Item(Item.Index).Width, "REG_DWORD"') lng.end_func(BLK_EVENTS) lng.begin_func('debug_form_OnMove(Sender)') println('shell.RegWrite "HKEY_CURRENT_USER\Software\HiAsm\Debug\Left", Sender.Left, "REG_DWORD"') println('shell.RegWrite "HKEY_CURRENT_USER\Software\HiAsm\Debug\Top", Sender.Top, "REG_DWORD"') lng.end_func(BLK_EVENTS) lng.begin_func('debug_form_OnResize(Sender)') println('shell.RegWrite "HKEY_CURRENT_USER\Software\HiAsm\Debug\Width", Sender.Width, "REG_DWORD"') println('shell.RegWrite "HKEY_CURRENT_USER\Software\HiAsm\Debug\Height", Sender.Height, "REG_DWORD"') lng.end_func(BLK_EVENTS) block.select(_arr.pop(stack)) end end end func doEvent(_data) if(isdef(Enabled)) println('\'' + code(WEName) + ', id = ' + code(_id_)) println('\' _data_ = ', _data) if(Mode) println('STOP') else println(EventCountData, ' = ', EventCountData, ' + 1') println(res_, ' = Debug(', WEName, ', ', _data, ', ', EventCountData, ')') end end event(onEvent, _data_) end func Var() fvar(dt) dt = Data if(isdef(Enabled)) println('\'' + code(VDName) + ', id = ' + code(_id_)) println('\' _data_ = ', dt) if(Mode) println('STOP') else println(EventCountVar, ' = ', EventCountVar, ' + 1') println(res_, ' = Debug(', VDName, ', ', dt, ', ', EventCountVar, ')') end end return(dt) end