942 lines
32 KiB
Plaintext
942 lines
32 KiB
Plaintext
|
|
|
|
======================================================================
|
|
Using the Turbo Editor Macro Compiler
|
|
======================================================================
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
Table of Contents
|
|
----------------------------------------------------------------------
|
|
1. Operation
|
|
2. Editor macro language syntax
|
|
3. Example scripts
|
|
MakeFuncText
|
|
MakeStub
|
|
4. Built-in commands
|
|
Functional index
|
|
Block macros
|
|
Deletion/insertion
|
|
Search macros
|
|
Hot key macros
|
|
Screen movement
|
|
System macros
|
|
Alphabetical reference
|
|
5. Error messages
|
|
6. Warning message
|
|
----------------------------------------------------------------------
|
|
|
|
The Turbo Editor Macro Language (TEML) is a powerful utility that
|
|
you can use to enhance or change the IDE's editor. Using the
|
|
140-odd built-in macros, you can define new ones that perform
|
|
sophisticated editing tasks and that can bind keystrokes to these
|
|
tasks.
|
|
|
|
NOTE: SetReturnCode macros are designated with an asterisk (*).
|
|
These special macros terminate the macro and give a return code.
|
|
It is an error to specify a command following a SetReturnCode
|
|
macro.
|
|
|
|
==============
|
|
1. Operation
|
|
==============
|
|
|
|
In order to use TEML, you first write a macro script in a text
|
|
editor. You then compile the script using the Turbo Editor Macro
|
|
Compiler (TEMC). The compiled file is used as a configuration
|
|
file in Turbo Pascal's IDE.
|
|
|
|
The Turbo Editor Macro Compiler expects as input an ASCII file
|
|
containing definitions and binding conforming to the TEML
|
|
specification. The output is placed in a configuration file
|
|
that can be used by the Integrated Development Environment.
|
|
The changes from TEMC are incremental; this means that if you
|
|
just change the definition of one key, only that key will be
|
|
changed in the configuration file. Everything else will stay
|
|
as it was.
|
|
|
|
Here is the syntax for the TEMC utility:
|
|
|
|
TEMC scriptfile outputconfigfile
|
|
|
|
You can use any text editor (including Turbo Pascal's) to create
|
|
the ASCII scriptfile. You use the outputconfigfile by naming it
|
|
TPCONFIG.TP and placing it in the directory you will be in when
|
|
starting TURBO.EXE.
|
|
|
|
|
|
=================================
|
|
2. Editor macro language syntax
|
|
=================================
|
|
|
|
TEML has a simple syntax based on Pascal and C. Here are the
|
|
basic syntax rules of the macro language:
|
|
|
|
o Statements in a script file are separated with a semicolon.
|
|
|
|
o Reserved words in TEML are:
|
|
|
|
ALT BEGIN
|
|
CTRL END
|
|
MACRO SCRIPT
|
|
SHIFT
|
|
|
|
o Comments are designated in the C style between /* and */ marks.
|
|
|
|
o In strings, the user can place any legal C backslash (\)
|
|
sequence; for example, "\xD".
|
|
|
|
|
|
The rest of this section describes how each possible component of
|
|
the syntax fits into the overall scheme. In this list, the symbol
|
|
::= means that the object on the left side is composed of the
|
|
objects on the right side. If the list of objects on the right
|
|
side of the ::= begins with the | symbol, then the object on the
|
|
left can be composed of nothing or one of the listed items.
|
|
|
|
Script: ::= ScriptName ScriptItems
|
|
|
|
ScriptName ::= |
|
|
SCRIPTIdentifier ;
|
|
|
|
ScriptItems ::= |
|
|
ScriptItems ScriptItem
|
|
|
|
ScriptItem ::= KeyAssignment | MacroDefinition
|
|
|
|
KeyAssignment ::= KeySequence : Command ;
|
|
|
|
KeySequence ::= KeySpecifier|KeySequence +
|
|
KeySpecifier|KeySequence + ^ KeySpecifier
|
|
|
|
KeySpecifier ::= Key | KeyModifier Key
|
|
|
|
Key ::= Number | Identifier | END
|
|
|
|
KeyModifier ::= | CTRL - | ALT - | SHIFT -
|
|
|
|
Command ::= BEGIN CommandList OptSemicolon END|
|
|
MacroCommand
|
|
|
|
CommandList ::= Command |
|
|
CommandList ; Command
|
|
|
|
MacroCommand ::= CommandName |
|
|
CommandName (ParamList)
|
|
|
|
CommandName ::= Identifier
|
|
|
|
ParamList ::= Param |
|
|
ParamList , Param
|
|
|
|
Param ::= Number | String
|
|
|
|
MacroDefinition ::= MACRO CommandName CommandList
|
|
OptSemicolon END ;
|
|
|
|
OptSemicolon ::= | ;
|
|
|
|
Number ::= Digit | Number Digit
|
|
|
|
Digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
|
|
|
|
Identifier ::= Letter | Identifier LetterDigit
|
|
|
|
Letter ::= A to Z | a to z | _
|
|
|
|
LetterDigit ::= Letter | Digit
|
|
|
|
String ::= " AnyCharacterNotQuote "
|
|
|
|
|
|
====================
|
|
3. Example scripts
|
|
====================
|
|
|
|
This example sets up a host of WordStar-like keyboard shortcuts.
|
|
|
|
Script WordStar;
|
|
|
|
|
|
Macro NewLine
|
|
RightOfLine;
|
|
InsertText("\xD");
|
|
End;
|
|
|
|
/* Key Assignments */
|
|
Ctrl-A : WordLeft;
|
|
Ctrl-C : PageDown;
|
|
Ctrl-D : CursorCharRight;
|
|
Ctrl-E : CursorUp;
|
|
Ctrl-F : WordRight;
|
|
Ctrl-G : DeleteChar;
|
|
Ctrl-H : BackSpaceDelete;
|
|
Ctrl-J : CursorDown;
|
|
Ctrl-K+^B : SetBlockBeg;
|
|
Ctrl-K+^C : CopyBlock;
|
|
Ctrl-K+^H : ToggleHideBlock;
|
|
Ctrl-K+^K : SetBlockEnd;
|
|
Ctrl-K+^Q : Exit;
|
|
Ctrl-K+^R : ReadBlock;
|
|
Ctrl-K+^V : MoveBlock;
|
|
Ctrl-K+^W : WriteBlock;
|
|
Ctrl-K+^Y : DeleteBlock;
|
|
Ctrl-K+1 : SetMark(1);
|
|
Ctrl-K+2 : SetMark(2);
|
|
Ctrl-K+3 : SetMark(3);
|
|
Ctrl-L : RepeatSearch;
|
|
Ctrl-N : BreakLine;
|
|
Ctrl-O : NewLine; /* This is not a WordStar keystroke */
|
|
Ctrl-P : LiteralChar;
|
|
Ctrl-Q+^A : Replace;
|
|
Ctrl-Q+^B : MoveToBlockBeg;
|
|
Ctrl-Q+^C : EndCursor;
|
|
Ctrl-Q+^D : RightOfLine;
|
|
Ctrl-Q+^E : TopOfScreen;
|
|
Ctrl-Q+^F : GetFindString;
|
|
Ctrl-Q+^K : MoveToBlockEnd;
|
|
Ctrl-Q+^P : MoveToPrevPos;
|
|
Ctrl-Q+^R : HomeCursor;
|
|
Ctrl-Q+^S : LeftOfLine;
|
|
Ctrl-Q+^X : BottomOfScreen;
|
|
Ctrl-Q+^Y : DeleteToEol;
|
|
Ctrl-Q+1 : begin
|
|
MoveToMark(1);
|
|
CenterFixScreenPos;
|
|
end;
|
|
|
|
Ctrl-Q+2 : begin
|
|
MoveToMark(2);
|
|
CenterFixScreenPos;
|
|
end;
|
|
Ctrl-Q+3 : begin
|
|
MoveToMark(3);
|
|
CenterFixScreenPos;
|
|
end;
|
|
Ctrl-R : PageUp;
|
|
Ctrl-S : CursorCharLeft;
|
|
Ctrl-T : DeleteWord;
|
|
Ctrl-V : ToggleInsert;
|
|
Ctrl-W : ScrollDown;
|
|
Ctrl-X : CursorDown;
|
|
Ctrl-Y : DeleteLine;
|
|
Ctrl-Z : ScrollUp;
|
|
Home : LeftOfLine;
|
|
UpAr : CursorUp;
|
|
PgUp : PageUp;
|
|
LfAr : CursorCharLeft;
|
|
RgAr : CursorCharRight;
|
|
End : RightOfLine;
|
|
DnAr : CursorDown;
|
|
PgDn : PageDown;
|
|
Ins : ToggleInsert;
|
|
Ctrl-End : BottomOfScreen;
|
|
Ctrl-PgDn : EndCursor;
|
|
Ctrl-Home : TopOfScreen;
|
|
Ctrl-PgUp : HomeCursor;
|
|
|
|
MakeFuncText
|
|
==============
|
|
|
|
MakeFuncText creates a commented area for descriptive text
|
|
associated with a function, assumes the cursor is positioned
|
|
immediately after the name, and the name is at the left of the
|
|
screen.
|
|
|
|
Script util;
|
|
|
|
macro MakeFuncText
|
|
InsertText("\n\n"); /* add some whitespace */
|
|
CursorUp;
|
|
CursorUp;
|
|
LeftOfLine; /* go before beginning of
|
|
intended function name */
|
|
SetBlockBeg; /* mark function name */
|
|
WordRight;
|
|
SetBlockEnd;
|
|
LeftOfLine;
|
|
CursorDown;
|
|
CopyBlockRaw; /* copy for prototyping */
|
|
CursorUp;
|
|
LeftOfLine;
|
|
InsertText("\nFunction "); /* add "Function" to comment |area*/
|
|
RightOfLine;
|
|
InsertText(":"); /* .. and colon at end */
|
|
CursorUp; /* put in comment lines fore and |aft */
|
|
LeftOfLine; /* add comment divider lines */
|
|
InsertText("{*********");
|
|
InsertText("*********");
|
|
CursorDown;
|
|
RightOfLine;
|
|
InsertText("\n");
|
|
InsertText("\tDescription:\n");
|
|
InsertText("**********");
|
|
InsertText("*********}\n");
|
|
CursorDown; /* go back to end of name */
|
|
RightOfLine;
|
|
end; /* MakeFuncText */
|
|
|
|
Alt-T : MakeFuncText;
|
|
|
|
|
|
======================
|
|
3. Built-in commands
|
|
======================
|
|
|
|
The names of the built-in commands describe their actions.
|
|
Commands with the word screen in them generally only affect the
|
|
screen.
|
|
|
|
Commands that have the word raw in them perform fewer housekeeping
|
|
tasks than their "raw-less" counterparts. For example, in a long
|
|
macro, using raw commands saves time in that they don't constantly
|
|
update the screen display to reflect each change in cursor
|
|
position. However, you would only use the raw macros as
|
|
intermediate steps in combination with other macros.
|
|
|
|
Macro names are not case-sensitive. A few macros require
|
|
parameters in parentheses, as discussed in the descriptions.
|
|
|
|
Remember, you can use these primitive macros to build more
|
|
complicated ones.
|
|
|
|
Functional index
|
|
==================
|
|
|
|
This section lists the built-in macros by function. The following
|
|
section is a straight alphabetical list.
|
|
|
|
|
|
Block macros
|
|
--------------
|
|
|
|
These macros affect blocks of text.
|
|
|
|
You should use SetPrevPos or FixScreenPos, or both, at the end of
|
|
the raw macros for housekeeping purposes.
|
|
|
|
CopyBlock MoveToBlockEnd
|
|
DeleteBlock MoveToBlockEndRaw
|
|
DeleteBlockRaw *ReadBlock
|
|
HighlightBlock SetBlockBeg
|
|
MoveBlock SetBlockEnd
|
|
MoveToBlockBeg ToggleHideBlock
|
|
MoveToBlockBegRaw *WriteBlock
|
|
|
|
Deletion/insertion
|
|
--------------------
|
|
|
|
These macros delete, undelete, and insert text.
|
|
|
|
BackspaceDelete DeleteToEOL
|
|
ClipClear DeleteChar
|
|
ClipCopy DeleteWord
|
|
ClipCut EditMenu
|
|
ClipPaste InsertText
|
|
ClipShow LiteralChar
|
|
DeleteBlock RestoreLine
|
|
DeleteBlockRaw SetInsertMode
|
|
DeleteLine ToggleInsert
|
|
|
|
Search macro
|
|
--------------
|
|
|
|
These macros deal with searching.
|
|
|
|
GetFindString RepeatSearch
|
|
MatchPairForward Replace
|
|
MatchPairBackward SearchMenu
|
|
|
|
|
|
Hot key macros
|
|
----------------
|
|
|
|
These macros duplicate the hot keys in the Integrated
|
|
Development Environment.
|
|
|
|
*AddWatch *ResetProgram
|
|
*CloseWindow *RunProgram
|
|
*CompileFile *RunToHere
|
|
*Help *SaveFile
|
|
*LastHelp *SetBreakpoint
|
|
*Menu *Step
|
|
*Modify *Trace
|
|
*NextWindow *ZoomWindow
|
|
*OpenFile
|
|
|
|
|
|
Screen movement
|
|
-----------------
|
|
|
|
These macros control cursor movement and screen movement.
|
|
|
|
BottomOfScreen MoveToPrevPos
|
|
BottomOfScreenRaw PageDown
|
|
CenterFixScreenPos PageUp
|
|
CursorCharLeft PageScreenDown
|
|
CursorCharRight PageScreenUp
|
|
CursorDown RightOfLine
|
|
CursorLeft ScrollDown
|
|
CursorRight ScrollUp
|
|
CursorUp ScrollScreenDown
|
|
EndCursor ScrollScreenUp
|
|
EndCursorRaw SetMark
|
|
FixCursorPos SetPrevPos
|
|
FixScreenPos SwapPrevPos
|
|
HomeCursor TopOfScreen
|
|
HomeCursorRaw TopOfScreenRaw
|
|
LeftOfLine WordLeft
|
|
MoveToMark WordRight
|
|
|
|
|
|
System macros
|
|
---------------
|
|
|
|
These macros affect certain system functions.
|
|
|
|
*Exit *Quit
|
|
FullPaintScreen SmartRefreshScreen
|
|
PaintScreen
|
|
|
|
|
|
Alphabetical reference
|
|
========================
|
|
|
|
This section is an alphabetical list of all the built-in macros. If
|
|
you need to see how the macros are grouped by function, refer to
|
|
the preceding section.
|
|
|
|
AddWatch - This macro is the same as pressing Ctrl-F7 or
|
|
Debug|Watches|Add Watch.
|
|
|
|
BackspaceDelete - Moves the cursor back one character and deletes
|
|
it (typically defined to be Backspace).
|
|
|
|
BottomOfScreen - Moves the cursor position to the lower left
|
|
corner of the screen. This macro automatically sets the starting
|
|
cursor position so that you can go back there with the
|
|
MoveToPrevPos macro.
|
|
|
|
BottomOfScreenRaw - Moves the cursor to the lower left corner of
|
|
the screen. As opposed to the BottomOfScreen macro, this command
|
|
does not change the "previous cursor" location, which you access
|
|
with the SwapPrevPos and MoveToPrevPos macros.
|
|
|
|
BreakLine - Insert a line break at the current cursor location
|
|
leaving the cursor on the beginning of the next line. This macro
|
|
is the same as pressing Enter.
|
|
|
|
CenterFixScreenPos - Corrects the screen image position relative
|
|
to the cursor. This command moves the screen image so that the
|
|
cursor is in the middle of it.
|
|
|
|
ClipClear - Removes the selected text but does not change the
|
|
Clipboard. This macro is the same as pressing Ctrl-Del or
|
|
choosing Edit|Clear.
|
|
|
|
ClipCopy - Copies the selected text so you can paste a copy of it
|
|
elsewhere. This macro is the same as pressing Ctrl-Ins or
|
|
choosing Edit|Copy.
|
|
|
|
ClipCut - Cuts the selected text. This macro is the same as
|
|
pressing Shift-Del or choosing Edit|Cut.
|
|
|
|
ClipPaste - Pastes the last-cut or last-copied text. This macro is
|
|
the same as pressing Shift-Ins or choosing Edit|Paste.
|
|
|
|
ClipShow - Opens the Clipboard window.
|
|
|
|
*CloseWindow - Close the current editor. This macro is the same as
|
|
pressing Alt-F3.
|
|
|
|
CompileFile - Compiles the current file. This macro is the same as
|
|
pressing Alt-F9 or choosing the Compile|Compile to OBJ command.
|
|
|
|
CopyBlock - Inserts a copy of the current block at the cursor
|
|
position. Unlike the CopyBlockRaw macro, this macro makes
|
|
sure that the cursor remains visible.
|
|
|
|
CopyBlockRaw - Copies the block without ensuring the cursor
|
|
remains visible.
|
|
|
|
CursorCharLeft - Moves the cursor one character to the left. (If
|
|
the cursor is at the beginning of a line, this command makes it
|
|
wrap to the previous printing character.)
|
|
|
|
CursorCharRight - Moves the cursor one character to the right. (If
|
|
the cursor is at the end of a line, this command makes it wrap
|
|
to the next printing character.)
|
|
|
|
CursorDown - Moves the cursor one line down, keeping it in the
|
|
same column.
|
|
|
|
CursorLeft - Moves the cursor one column to the left.
|
|
|
|
CursorRight - Moves the cursor one column to the right (even if
|
|
there are no characters there). If the cursor is at the edge of
|
|
the screen, this command moves the cursor off the visible
|
|
screen.
|
|
|
|
CursorSwitchedLeft - Move the cursor one character left paying
|
|
attention to the roaming cursor mode. This macro is the same as
|
|
pressing Left Arrow or ^E.
|
|
|
|
CursorSwitchedRight - Move the cursor one character right paying
|
|
attention to the roaming cursor mode. This macro is the same as
|
|
pressing Right Arrow or ^D.
|
|
|
|
CursorUp - Moves the cursor one line up, keeping it in the same
|
|
column.
|
|
|
|
DeleteBlock - Deletes the current block. Unlike the DeleteBlockRaw
|
|
macro, DeleteBlock leaves the cursor fixed in one spot on the
|
|
screen (it doesn't move when the block is deleted).
|
|
|
|
DeleteBlockRaw - Deletes the current block. Unlike the DeleteBlock
|
|
macro, this "raw" macro doesn't fix the cursor in one spot on
|
|
the screen (it can move when the block is deleted).
|
|
|
|
DeleteChar - Deletes the character at the cursor position.
|
|
|
|
DeleteLine - Deletes the line the cursor is on.
|
|
|
|
DeleteToEOL - Deletes from the cursor position to the end of the
|
|
line.
|
|
|
|
DeleteWord - Deletes the word the cursor is on plus the space
|
|
characters after it.
|
|
|
|
EndCursor - Moves the cursor to the end of the file. This macro
|
|
automatically sets the previous cursor position so that you can
|
|
go back there with the MoveToPrevPos macro.
|
|
|
|
EndCursorRaw - Moves the cursor to the end of the file. As opposed
|
|
to the EndCursor macro, this command does not reset the
|
|
"previous cursor" location, which you access with the
|
|
SwapPrevPos and MoveToPrevPos macros.
|
|
|
|
Exit - Exits from the editor.
|
|
|
|
FixCursorPos - Corrects the cursor position in respect to the
|
|
screen. This command moves the cursor to the visible screen by
|
|
making the least amount of movement possible, the result being
|
|
that the cursor appears at the start or the end of the screen.
|
|
|
|
FixScreenPos - Corrects the screen position in respect to the
|
|
cursor. This command moves the screen image to the cursor by
|
|
making the least amount of movement possible, the result being
|
|
that the screen appears above or below the cursor position.
|
|
|
|
FullPaintScreen - Forces a full refresh of the screen. This paints
|
|
out to the edge of the screen; it is slower than PaintScreen.
|
|
|
|
GetFindString - Opens the Find dialog box so you can search for a
|
|
text string. The search begins at the current cursor position.
|
|
|
|
Help - Opens the Help window, just like the Help|Table of Contents
|
|
command. This macro is the same as pressing F1.
|
|
|
|
HighlightBlock - Highlights the current marked block.
|
|
|
|
HomeCursor - Moves the cursor position to the beginning of the
|
|
file. This macro automatically sets the starting cursor position
|
|
so that you can go back there with the MoveToPrevPos macro.
|
|
|
|
HomeCursorRaw - Moves the cursor to the beginning of the file. As
|
|
opposed to the HomeCursor macro, this command does not change
|
|
the "previous cursor" location, which you access with the
|
|
SwapPrevPos and MoveToPrevPos macros.
|
|
|
|
IndentBlock - Indents a block one space. This macro is the same as
|
|
pressing ^K^I.
|
|
|
|
InsertText("string") - Inserts string at the current cursor
|
|
position. The double quotes are required around string; string
|
|
can be up to 4,096 characters long.
|
|
|
|
LastHelp - Opens the Help window that was last viewed, just like
|
|
the Help|Previous Topic command. This macro is the same as
|
|
pressing Alt-F1.
|
|
|
|
LeftOfLine - Moves the cursor to the beginning of the line
|
|
(typically defined to be Home).
|
|
|
|
LiteralChar - Inserts the next key pressed verbatim into the file
|
|
(such as Ctrl-P).
|
|
|
|
*MakeProject - To a make of the current editor or primary file.
|
|
This macro is the same as pressing F9.
|
|
|
|
MarkLine - Set the block mark to mark the current line. This macro
|
|
is the same as pressing ^K^L.
|
|
|
|
MarkWord - Mark the word at the location of the cursor. This macro
|
|
is the same as pressing ^K^T.
|
|
|
|
MatchPairBackward - Finds the matching delimiter character that
|
|
complements the one at the current cursor position. Searches
|
|
backward (to the beginning) in the file.
|
|
|
|
MatchPairForward - Finds the matching delimiter character that
|
|
complements the one at the current cursor position. Searches
|
|
forward (to the end) in the file.
|
|
|
|
*Menu - Makes the menu bar active. This macro is the same as
|
|
pressing F10.
|
|
|
|
Modify - This macro is the same as pressing Ctrl-F4 or
|
|
Debug|Evaluate/Modify.
|
|
|
|
MoveBlock - Moves the current block to the cursor position. Unlike
|
|
the MoveBlockRaw macro, this macro highlights the new block.
|
|
|
|
MoveBlockRaw - Moves a block without ensuring the cursor remains
|
|
visible.
|
|
|
|
MoveToBlockBeg - Moves the cursor to the beginning of the current
|
|
block. Unlike the MoveToBlockBegRaw macro, this macro updates
|
|
the cursor on the screen and changes the "previous cursor"
|
|
location, which you access with the SwapPrevPos and
|
|
MoveToPrevPos macros.
|
|
|
|
MoveToBlockBegRaw - Moves the cursor to the beginning of the
|
|
current block. Unlike the MoveToBlockBeg macro, this "raw" macro
|
|
doesn't update the cursor onscreen and doesn't change the
|
|
"previous cursor" location, which you access with the
|
|
SwapPrevPos and MoveToPrevPos macros.
|
|
|
|
MoveToBlockEnd - Moves the cursor to the end of the current block.
|
|
Unlike the MoveToBlockEndRaw macro, this macro updates the
|
|
cursor onscreen and changes the "previous cursor" location,
|
|
which you access with the SwapPrevPos and MoveToPrevPos macros.
|
|
|
|
MoveToBlockEndRaw - Moves the cursor to the end of the current
|
|
block. Unlike the MoveToBlockEnd macro, this "raw" macro doesn't
|
|
update the cursor onscreen and doesn't change the "previous
|
|
cursor" location, which you access with the SwapPrevPos and
|
|
MoveToPrevPos macros.
|
|
|
|
MoveToMark(number) - Moves the cursor to the location designated
|
|
by the SetMark(number) macro. You can set 10 marks by passing
|
|
SetMark a parameter of 0 to 9. You move the cursor to any of the
|
|
10 marks by passing the corresponding number (0-9) to the
|
|
MoveToMark(number) macro.
|
|
|
|
MoveToPrevPos - Moves the cursor to the position designated by the
|
|
SetPrevPos macro.
|
|
|
|
MoveToTempPos - Moves to the temporary mark position.
|
|
|
|
*NextWindow - Make the window in the window list active. This
|
|
macro is the same as pressing F6.
|
|
|
|
OpenFile - Displays the Open dialog box. This macro is the same as
|
|
pressing F3.
|
|
|
|
OpenLine - Break the line at the current location leaving the
|
|
cursor at the end of the current line.
|
|
|
|
OutdentBlock - Unindents a block one space. This macro is the same
|
|
as pressing ^K^U.
|
|
|
|
PageDownRaw - Page the display and cursor down one screen but does
|
|
not ensure the screen is displaying the cursor.
|
|
|
|
PageDownScrolls - both the screen and cursor down one page.
|
|
|
|
PageScreenDown - Moves the screen down one screenful, possibly
|
|
moving the cursor out of view (typically defined to be PgDn).
|
|
|
|
PageScreenUp - Moves the screen up one screenful, possibly moving
|
|
the cursor out of view (typically defined to be PgUp).
|
|
|
|
PageUp - Scrolls both the screen and cursor up one page.
|
|
(Typically defined to be PgUp.)
|
|
|
|
PageUpRaw - Page the display and cursor up one screen but does not
|
|
ensure the screen is displaying the cursor.
|
|
|
|
PaintScreen - Forces a full refresh of the screen. PaintScreen
|
|
only paints lines from the buffer; it assumes it knows how to
|
|
blank end-of-lines. It's faster than FullPaintScreen.
|
|
|
|
*PrintBlock - Print the currently marked block. This macro is the
|
|
same as pressing ^K^P.
|
|
|
|
Quit - Exits from the integrated environment. If you've made
|
|
changes you haven't saved, you'll be given a chance to save them
|
|
before quitting. This macro is the same as pressing Alt-X.
|
|
|
|
ReadBlock - Lets you open a text file and insert it at the cursor
|
|
position. The ReadBlock macro automatically opens the Open
|
|
dialog box so you can choose a file to open.
|
|
|
|
RepeatSearch - Searchs for the text string that was last entered
|
|
in the find dialog box using the GetFindString macro.
|
|
|
|
Replace - Opens the Replace dialog box so you can search for and
|
|
replace text.
|
|
|
|
ResetProgram - Resets the current program. This macro is the same
|
|
as pressing Ctrl-F2 or choosing Run|Program Reset.
|
|
|
|
RestoreLine - Inserts the line deleted with the DeleteLine macro.
|
|
If the cursor has moved to another line since the DeleteLine
|
|
macro, this macro does nothing.
|
|
|
|
RightOfLine - Moves the cursor to the end of the line (typically
|
|
defined to be End).
|
|
|
|
RightOfWord - Moves the cursor to the right of a word.
|
|
|
|
RunProgram - Runs the current program. This macro is the same as
|
|
pressing Ctrl-F9 or choosing the Run|Run command.
|
|
|
|
RunToHere - Runs a program up to the line containing the cursor.
|
|
This macro is the same as pressing F4 or choosing Run|Go to
|
|
Cursor.
|
|
|
|
SaveFile - Saves the file in the current window. This macro is the
|
|
same as pressing F2 or choosing the File|Save command.
|
|
|
|
ScrollDown - Scrolls the screen down one line. This macro will not
|
|
allow the cursor to scroll out of view.
|
|
|
|
ScrollScreenDown - Moves the screen down one line, leaving the
|
|
cursor at the same relative position in the file. This command
|
|
will allow the cursor to scroll out of view.
|
|
|
|
ScrollScreenUp - Moves the screen up one line, leaving the cursor
|
|
at the same relative position in the file. This command will
|
|
allow the cursor to scroll out of view.
|
|
|
|
ScrollUp - Scrolls the screen up one line. This command will not
|
|
allow the cursor to scroll out of view.
|
|
|
|
SetAutoIndent - Turn on auto-indent mode. The following macro will
|
|
turn off auto-indent mode,
|
|
|
|
Macro ClearAutoIndent
|
|
SetAutoIndent;
|
|
ToggleAutoIndent;
|
|
end;
|
|
|
|
SetAutoOutdent - Turn on auto-outdent mode. The following macro
|
|
will turn off auto-outdent mode,
|
|
|
|
Macro ClearAutoOutdent
|
|
SetAutoOutdent;
|
|
ToggleAutoOutdent;
|
|
end;
|
|
|
|
SetBlockBeg - Marks the current cursor position as the beginning
|
|
of a block. Unlike the SetBlockBegRaw macro, this macro
|
|
highlights the new block.
|
|
|
|
SetBlockBegRaw - Sets the beginning of the block without showing
|
|
the block.
|
|
|
|
SetBlockEnd - Marks the current cursor position as the end of a
|
|
block. Unlike the SetBlockEndRaw macro, this macro highlights
|
|
the new block.
|
|
|
|
SetBlockEndRaw - Sets the end position of the block without
|
|
showing the block.
|
|
|
|
SetBreakpoint - Sets a breakboint at the cursor position. This
|
|
macro is the same as pressing Ctrl-F8 or choosing Debug|Toggle
|
|
Breakpoint.
|
|
|
|
SetInsertMode - Turns insert mode on. To turn it off, type
|
|
|
|
BEGIN SetInsertMode; Toggle Insert END;
|
|
|
|
SetMark(number) - Sets the current cursor position so that you can
|
|
return to it using the MoveToMark(number) macro. You can set
|
|
number to any number from 0 to 9. You move the cursor to any of
|
|
the 10 marks by passing the corresponding number (0-9) to the
|
|
MoveToMark(number) macro.
|
|
|
|
SetOptimalFillMode - Turn on optimal fill mode. The following
|
|
macro will turn off optimal fill mode,
|
|
|
|
Macro ClearOptimalFillMode
|
|
SetOptimalFillMode;
|
|
ToggleOptimalFillMode;
|
|
end;
|
|
|
|
SetPrevPos - Marks the current cursor position as the place to
|
|
return to when you use the SwapPrevPos or MoveToPrevPos macros.
|
|
Many macros implicitly set the "previous position" (the notable
|
|
exceptions are "raw" macros).
|
|
|
|
SmartRefreshScreen - Refreshes only the parts of the screen that
|
|
have changed.
|
|
|
|
SetRoamingCursorMode - Turn on roaming cursor mode. The following
|
|
macro will turn off roaming cursor mode,
|
|
|
|
Macro ClearRoamingCursorMode
|
|
SetRoamingCursorMode;
|
|
ToggleRoamingCursorMode;
|
|
end;
|
|
|
|
SetTabbingMode - Turn on tabbing mode. The following macro will
|
|
turn off tabbing mode,
|
|
|
|
Macro ClearTabbingMode
|
|
SetTabbingMode;
|
|
ToggleTabbingMode;
|
|
end;
|
|
|
|
SetTempPos - Sets the temporary mark position.
|
|
|
|
SmartTab - Smart tab is the default binding of the Tab key. It
|
|
will either insert spaces or a tab character depending on the
|
|
tabbing mode.
|
|
|
|
Step - Runs a program one statement at a time but stepping over
|
|
subroutines. This macro is the same as pressing F8 or choosing
|
|
Run|Step Over.
|
|
|
|
SwapPrevPos - Switches the current cursor position with the spot
|
|
designated by the SetPrevPos macro.
|
|
|
|
ToggleAutoIndent - Toggles the auto-indent mode. This macro is the
|
|
same as pressing ^O^I.
|
|
|
|
ToggleAutoOutdent - Toggles the auto-outdent mode. This macro is
|
|
the same as pressing ^O^U.
|
|
|
|
ToggleHideBlock - Highlights or hides the current marked block.
|
|
|
|
ToggleInsert - Switches insert modes, from Insert to Overwrite or
|
|
from Overwrite to Insert.
|
|
|
|
ToggleOptimalFillMode - Toggle the optimal fill mode. This macro
|
|
is the same as pressing ^O^F.
|
|
|
|
ToggleRoamingCursorMode - Toggle the roaming cursor mode. This
|
|
macro is the same as pressing ^O^R.
|
|
|
|
ToggleTabbingMode - Toggle the tabbing mode. This macro is the
|
|
same as pressing ^O^T.
|
|
|
|
TopOfScreen - Moves the cursor to the upper left corner of the
|
|
screen. This macro automatically sets the previous cursor
|
|
position so that you can go back to it with the MoveToPrevPos
|
|
macro.
|
|
|
|
TopOfScreenRaw - Moves the cursor to the upper left corner of the
|
|
screen. screen. As opposed to the TopOfScreen macro, this
|
|
command does not change the "previous cursor" location, which
|
|
you access with the SwapPrevPos and MoveToPrevPos macros.
|
|
|
|
Trace - Runs a program one statement at a time, moving into
|
|
subroutines as necessary. This macro is the same as pressing F7
|
|
or choosing Run|Trace Into.
|
|
|
|
ViewUserScreen - Switches views to the User Screen. This macro is
|
|
the same as pressing Alt-F5 or choosing the Window|User Screen
|
|
command.
|
|
|
|
*WordHelp - Bring up help on the word at the current cursor
|
|
position.
|
|
|
|
WordLeft - Moves the cursor one word to the left, placing it on
|
|
the first character of that word.
|
|
|
|
WordRight - Moves the cursor one word to the right, placing it on
|
|
the first character of that word.
|
|
|
|
WriteBlock - Lets you save the current block to a file. The
|
|
WriteBlock macro automatically opens the Write Block to File
|
|
dialog box so you can enter a file name.
|
|
|
|
*ZoomWindow - Zoom the current editor. This macro is the same as
|
|
pressing F5.
|
|
|
|
|
|
===================
|
|
5. Error messages
|
|
===================
|
|
|
|
While coding your macros, you may encounter certain errors.
|
|
Knowing the compiler capacity may help you avoid some of those
|
|
errors, which are given after this list of memory requirements.
|
|
|
|
o each macro invocation takes 1 byte
|
|
|
|
o each integer parameter takes 2 bytes
|
|
|
|
o each character parameter takes (number_of_characters_in_string +
|
|
1) bytes
|
|
|
|
o each macro requires 1 byte for end
|
|
|
|
|
|
Cannot allocate memory for file.
|
|
Not enough memory is available to process the file. TEMC needs
|
|
about 100K of available space to compile a file.
|
|
|
|
Expected item.
|
|
The line indicated is most likely missing the specified item.
|
|
|
|
File filename could not be created.
|
|
The file specified for output cannot be created. Either the disk
|
|
is full or you do not have rights to the current network drive or
|
|
the name specified is not legal.
|
|
|
|
File filename is empty.
|
|
The file passed to TEMC to compile has nothing in it.
|
|
|
|
File filename larger than 64K.
|
|
The script file is larger than the maximum 64K in size.
|
|
|
|
File filename not found.
|
|
The file specified does not exist.
|
|
|
|
Invalid key.
|
|
Key specified is not recognized.
|
|
|
|
Invalid symbol.
|
|
The symbol specified is not a valid TEMC symbol.
|
|
|
|
Out of memory.
|
|
Not enough memory is available to process the file. TEMC needs
|
|
about 100K of available space to compile a file.
|
|
|
|
Read error on file filename.
|
|
TEMC could not read the file source file.
|
|
|
|
Redefinition of key.
|
|
This key is defined elsewhere in the file.
|
|
|
|
Redefinition of macro macro.
|
|
This macro is defined elsewhere in the file.
|
|
|
|
Parameters to a macro call illegal.
|
|
Macros cannot have parameters. Trying to pass a parameter to a
|
|
Script too complex. One or more of the following conditions need
|
|
to be corrected:
|
|
|
|
o Too many keys defined.
|
|
|
|
o String parameter is too long (the maximum string length is 256
|
|
characters).
|
|
|
|
o Too many parameters.
|
|
|
|
o Macro size may be too large (the maximum size allowed is 1,024
|
|
bytes).
|
|
|
|
Undefined symbol symbol.
|
|
The symbol specified has not yet been defined.
|
|
|
|
Unexpected item.
|
|
The indicated line most likely would be correct if the item
|
|
specified was deleted or changed.
|
|
|
|
Unexpected end of file.
|
|
The last macro or BEGIN/END pair was not terminated.
|