home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
pocketbk
/
utilsf
/
kmac091
/
EGKMA.TXT
next >
Wrap
Text File
|
1994-04-25
|
5KB
|
160 lines
EGKMA.TXT, discussion of some example KMAC macros
=================================================
See the associated file KMAC.TXT for a general introduction to KMAC
keyboard macros. This file (EGKMA.TXT) contains a brief commentary
on several possible example macros, and can be read as supplementary
information.
The "Toggle remote link" macro
------------------------------
MACRO Toggle Remote Link
KEY L
BACKGROUND
QUIET
CONTENTS
aSYS$SHLL.*
G
620 8, 258, 13
Comments: operates from any application, and toggles remote link
either on or off. (It assumes that the 3Link peripheral is
attached.) To see the effect, watch the Status Window of the current
foreground application.
The "aSYS$SHLL.*" line could be replaced by "gSystem".
The "G" line ensures the System Screen is in its ground state, before
proceeding.
The line "620 8, 258, 13" could be replaced by "S@l^R^C".
The "alloc monitor" macro
-------------------------
MACRO Alloc count
KEY A
QUIET
CONTENTS
A
Comments: very useful during program development. It causes an
infoprint to be displayed, giving the number of allocated cells in
the heap of the attached process, and the total size of all these
cells.
The "toggle show spaces" macro
------------------------------
MACRO Toggle show spaces
KEY Q
CONTENTS
xpWORD
625 8, 257, 257, 257, 258, 13
Comments: toggles whether spaces are shown in the Word Processor.
The line "xpWORD" means that the macro is harmless if executed
elsewhere than in the Word Processor.
The "Link paste" macro
----------------------
MACRO Link paste
KEY B
CONTENTS
QBring data now?
xd0
L
The "Start Agenda in Week View" macro
-------------------------------------
MACRO Start Agn
KEY Z
CONTENTS
QStart Diary?
xd0
cOAgenda#.AGN#LOC::A:\AGN\DIARY.AGN#
pROM::AGENDA.APP
S^0^+
Comments: Change the filename in the "c" line as required. The "^+"
in the "S" command is the Diamond key. It MUST be preceded by the
"pause" key, "^0", or else the application will not be ready to
receive it and will discard it.
The "Save as text" macro
------------------------
MACRO Save as text
KEY S
CONTENTS
xfWORD
609 8, 257, 114, 114, 114, 114, 114, 258
E%s.txt
257, 257, 258
Comments: Does nothing unless in native Word Processor mode. Brings
up the "Save as" dialog and tries to position to the "REM::E" drive,
by choosing 'R' repeatedly in the "Disk" line of the dialog. The
name given in the "File: Name" line is based on the current filename,
but has "TXT" as the extension. The macro does not include the final
ENTER since it gives the user a chance to check that all is well
before delivering this keypress personally.
The "Merge remote database" macro
---------------------------------
MACRO Merge
KEY M
QUIET
CONTENTS
eStartDbf
gLOC::M:\DAT\KMAC.DBF
F
S@m@4^T
SREM::E:\SIBOSDK\KMAC\KMAC.IMP
S@4^C^D^DT^C
S^Y@k
Comments: This works regardless of whether or not the database
KMAC.DBF is already running. The "eStartDbf" line catches the error
if the "g" line fails and makes amends.
The contents of STARTDBF.KMA would be
cOData#.DBF#LOC::M:\DAT\KMAC.DBF#
pROM::DATA.APP
Note the use of Ctrl-Tab ("S@4^T") and Ctrl-Enter ("S@4^C") to
circumvent any full-screen file selector.
The macro finishes by invoking the compress command, after first
"yielding" to allow the merge full time to complete.
The "Upper case selected text" macro
------------------------------------
MACRO Upper case
QUIET
KEY U
CONTENTS
o\OPO\UPPERC.OPO
Comments: This macro has all its intelligence in the "UPPERC.OPO" Opl
module. Source code for this is
PROC tupper:
GLOBAL lpcHand%,lpoHand%
LOCAL buf$(100)
LOADM "KMACLIB"
CALL($198d,100,0)
lpOpen:
lpWrite:(%f,"")
lpSend:(32,ADDR(buf$)+1,98,0)
POKEB ADDR(buf$),99
POKEB ADDR(buf$),LOC(buf$,chr$(0))-1
buf$=UPPER$(buf$)+chr$(0)
lpSend:(4,ADDR(buf$)+1,0,0)
lpClose:
ENDP
The two methods of LPCON used are methods 32 (O_LPC_BRING) and 4
(O_LPC_STRING). In between times, there is some conversion of
strings from ZTS format into LBC format, and application of the Opl
UPPER$ command to actually upper-case the string.
See OPLLPC.TXT for more discussion on use of LPC from OPL.