From an idea developed by Marco Munari for MS-DOS
Amiga implementation by Piero Filippin
WHAT IS MACRO?
Macro is a small utility that records a sequence of keypress and, if
required, reinsert at current cursor position (even if another window).
This is version 1.0 - no configurable and slow - but it hasn't major bugs
(known) and work even with Kick 2.0. It uses only (!?!) 12 KBytes (4 for
buffer, 4 for stack and some for info window and code).
HOW MUST I USE MACRO?
Using is very simple:
Call it from CLI without using RUN: MACRO puts itself in background (I used
When MACRO status is IDLE you can record some chars into buffer (LeftALT
LeftShift CTRL [, status: Recording), or erase if not empty (LeftALT
LeftShift CTRL e, status: Buffer cleared).
When recording, type what do you want, then press LeftALT LeftShift CTRL ]
(status: Recording) to terminate. Now you are ready to insert this text
everywhere you like pressing LeftALT LeftShift CTRL i (status: Buffer
The buffer isn't cleared if not specified: if you start recording and there
are some chars in buffers, new chars will be appended to buffer (so don't
forget to delete it if needed!).
The program install a new input handler with a priority greater than
intuition handler. When an event occours in the system, control is passed
to myhandler(). This function checks event list until if find a RAWKEY
event. If the event is a MACRO control code, the function removes it from
list and send proper signal to main program, else it don't remove the event
(so it can be handled by Intuition). The function RawKeyInsert inserts a
new event into event-not-already-handled-by-intuition-routines.
To compile I used Lattice C 5.10:
lc -L -rr <-dINFOWINDOW> <-dDEBUG> <-dBUFFER=buffersize> macro.c
(It probably can be compiled only under recent Lattice versions)
If you defines INFOWINDOW, a window will be opened telling you MACRO current
states. You can also define DEBUG, that print to CLI launch window some
debug infos, but it makes start window unusable (I used it only for debug,
when I haven't yet decided to use a window). With BUFFER, you can change
the default size of the buffer (remember: key_stored=buffersize/4 ).
LIMITATION AND BUGS
MACRO loss 2728 bytes when you quit (I don't know why)
MACRO has a standard buffer size of 4 KBytes; this means that it can record
4000/(sizeof(code)+sizeof(qualifier)) = 1000 keypress!
MACRO uses RAWKEY, so it is not setmap-sensitive. It makes no differences
when you record-insert, but command keys can change: q , e , i , [, ]
refers to a standard gb keyboard (they are TAB - row keys).
TAB q w e r t y u i o p [ ] RET
MACRO sources are supplied, but it don't includes any #include (he he); I
used precompiled headers ( -Hname under Lattice).
Multiple macro definitions
Possibility of saving useful macros
Macro display in info window
Keymap mapped control codes
This program is Public Domain. You can copy, distribute, spread if only
with its doc and source. You cannot sell it. I encourage to read the
source, and use parts of it in your programs if they are PD else it requires
I don't require money if you use it, but it is obiously pleased (or if you
prefer other PD software, greeting cards or your sister photo (if really
nice), suggestion for improvement...)
I'm sorry for lots of error in this doc
My home address is:
Via G.Cantore 10
Conegliano Veneto (TV)
My InterNet e-Mail address is:
omegasabrina.dei.unipd.it (at Padova university)
*** END OF FILE ***