TMGIDE.m
From VistApedia
;"------------------------------------------------------------ ;"------------------------------------------------------------ ;" ;" GT.M Debug Tracer ;" ;" K. Toppenberg ;" 4-13-2005 ;" License: GPL Applies ;" ;" ;" This program will launch a shell for the TMG STEP TRAP debugger ;" It provides the user with a prompt, like this: ;" ;" (^ to quit) IDE> ;" ;" Any valid M code may be entered here. To use the tracing ;" ability, launch a function, like this: ;" ;" (^ to quit) IDE>do ^MyFunction ;" ;" ;" Dependancies: ;" Uses TMGTRSTP,TMGTERM ;" ;"------------------------------------------------------------ ;"------------------------------------------------------------ Start new ScrHeight set ScrHeight=10 ;"defined in ShowCode also new ScrWidth set ScrWidth=70 ;"defined in ShowCode also set ^TMP("TMGIDE",$J,"ScrWidth")=ScrWidth set ^TMP("TMGIDE",$J,"ScrHeight")=ScrHeight do SetGlobals^TMGTERM set ^TMP("TMGIDE",$J,"Normal Foreground Color")=TMGcYellow set ^TMP("TMGIDE",$J,"Normal Background Color")=TMGcBlack set ^TMP("TMGIDE",$J,"Debug Foreground Color")=TMGcBlack set ^TMP("TMGIDE",$J,"Debug Background Color")=TMGcWhite ;"write # ;"formfeed ;"do CUP^TMGTERM(1,ScrHeight+1) for i=1:1:80 write ! write !,"Welcome to the TMG debugging environment",! write "Enter any valid M command...",! set $ZTRAP="write !,""This is a ZTRAP line"",! break" set $ZSTATUS="" ;"Run modes: 0=fast mode 1=slow mode 2=Don't show code set ^TMP("TMGIDE",$J,"Run Mode")=0 new BlankLine set BlankLine=" " for i=1:1:ScrWidth-1 set BlankLine=BlankLine_" " do Prompt Done do ShutDown quit ;"------------------------------------------------------------------- Prompt new Line write !,BlankLine,! do CUU^TMGTERM(1) read "(^ to quit) IDE>",Line if Line="^" set $ZSTEP="" quit set $ZSTEP="do STEPTRAP^TMGTRSTP($ZPOS) zstep into zcontinue" zstep into xecute Line set $ZSTEP="" ;"turn off step capture goto Prompt ShutDown ;"do ShowCode("",1) kill ^TMP("TMGIDE",$J) do KillGlobals^TMGTERM quit