\ File: ODS.f \ Author: Dirk Busch \ Created: January 19th, 2004 - dbu \ Updated: January 24th, 2004 - dbu \ \ OutputDebugString() support for Win32Forth cr .( Loading Output-Debug-String support) anew ods.f INTERNAL VARIABLE ods? \ enable/disable ODS EXTERNAL : ods-on ( -- ) \ enable ODS ods? ON ; : ods-off ( -- ) \ disable ODS ods? OFF ; 1 PROC OutputDebugString : ods ( addr -- ) \ sends a string to the Windows Debug Window \ (e.g. 'DebugView' from www.sysinternals.com) \ for display ods? IF REL>ABS CALL OutputDebugString DROP ELSE DROP THEN ; : d.ods ( d -- ) { \ buf$ -- } (D.) DUP 1+ LOCALALLOC ASCII-Z TO buf$ buf$ ods ; : .ods ( n -- ) 0 d.ods ; : ods" ( -- -- ) STATE @ IF POSTPONE (Z") ," POSTPONE ods ELSE [char] " WORD NEW$ DUP>R OVER C@ 1+ MOVE R@ COUNT + OFF R> 1+ ods THEN ; IMMEDIATE ods-on \ enable ODS by default MODULE