home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
BEEHIVE
/
ZSUS
/
Z3HELP-5.LBR
/
T.LBR
/
TEX.HZP
/
TEX.HLP
Wrap
Text File
|
2000-06-30
|
7KB
|
147 lines
;
TEX.COM
Size (recs) CRC Version Author/Latest Issue Disk
9k (70) 9D19 1.3 Jim Lill 8/89 Z3COM9
1- Syntax 2- TEX Commands 3- TEX.VAR 4- Notes 5- Examples of Use
Time EXecution is a time-scheduling program for ZCPR3. It allows entry of
entire command lines with associated absolute execution times and optional
repeat intervals. The maximum number of command lines allowable is at present
20 (but alterable in the source code). TEX operates as a ZCPR3 shell, whose
function is to determine when a command line should be executed and to put it
in ZCPR3's Multiple Command Line Buffer when it is due.
TEX requires a Z80 processor, ZCPR3 or ZCPR33, and a real-time clock. Vs
1.0 by Ron Murray (4/88).
:1
Syntax TEX [command file] /options
...where <command file> is an optional file containing TEX commands as
above (these can be prepared using a text editor, and can be useful for often-
used commands). Default filetype is .TEX if none is specified. The only
option at present is /C, which deletes any current TEX.VAR file and thus
starts TEX with no embedded commands.
After loading, TEX will install itself as a shell (if possible), then read
any specified input file. It will then try to read a TEX.VAR file (unless
disabled with the /C option) to load any pending commands. It will then
display the user prompt, which is similar to the standard ZCPR3 prompt
(including any named directory information), but preceded by the current time,
e.g. [21:55] B0:WORK>
This time is updated once each minute, to demonstrate that TEX hasn't
fallen over.
At this point normal commands and TEX commands can be typed. Note that
even a simple directory change requires reloading of TEX after completion:
all commands (except control-C) are loaded into the Multiple Command Line
Buffer and control is passed to the CCP. There are also some control
functions performed by single keys, as follows:
Control Keys
- Line-feed gives a short help display.
- ESCAPE will cause TEX to terminate (the current commands will be saved in
the TEX.VAR file).
- Control-D gives a display of current commands.
- Control-E will allow commands to be deleted. The user is prompted with a
request for the number of the command (obtained with the Control-D
command), the command line is displayed, and the user asked for confirma-
tion before the line is deleted.
:2
TEX Commands - 1/2
The general format of a TEX command line is:
TEX commands;required command line;other commands as normal
Note the semicolon required between the TEX commands and command line. TEX
will flag an error if this is omitted.
There are presently three TEX commands to specify execution details. Their
order in the command line is unimportant.
TEX Commands - 2/2
!X [dd:mm:yy] hh:mm[:ss]
- Specifies an absolute execution time. The date and seconds are
optional, as indicated by the brackets. If the date is not
supplied, execution will proceed on the current day. If no !X
command is supplied, execution commences immediately.
!R [/days] hh:mm[:ss]
- Specifies a time period for repeated execution of the command
line. Days and seconds are optional. If no !R command is
entered, the program is run once at the specified time, then
deleted from the execution list.
!P number
- Specifies a priority for the command, in the range 1 to 254, where
1 is the highest priority. If no !P command is entered, the
default priority (99) is used. Priority can be specified to
ensure that a given program executes before another, if they are
scheduled at the same time.
:3
TEX.VAR
When TEX executes a program, all current commands and their time
information are saved in a disk file called TEX.VAR. The distribution version
of TEX saves this file in the root directory, but either a re-assembly, or
your favorite patcher, will allow any other drive/user area combination to be
used. Either modify the source code at the rootfl: and nrdu: labels (comments
in the source will assist), or use a file patcher. To assist this, there are
two "signposts" just after the beginning of the code (at 0110h). The byte
after the ROOT> signpost should be set to 0ffh if the ROOT: directory is
required. If not, this byte should be set to zero, and the bytes after the
following signpost (DU:>) modified to the required drive and user area (drive
first, (A = 0), then user area 0-15 (16-31 might work; who knows?)). If you
have a RAM disk or hard disk, it's probably better to force the use of this as
TEX will load and save the TEX.VAR file more quickly.
:4
TEX Notes - 1/2
a. Since TEX is a shell, it can only schedule and run programs when it is
itself running (when all other programs have terminated). You can use
your computer normally while TEX is running, with a short delay after
each program is run while TEX reloads itself and loads its variable
file, but programs scheduled for execution while other programs are
running will not be executed until TEX is entered after the first
program terminates. TEX is not a multi-tasking system.
TEX Notes - 2/2
b. Vs. 1.1 updates
- fixed bug which stopped new commands from a .TEX file from being saved
in TEX.VAR if there were more commands on the command line.
- ASCII command file on invocation now defaults to .TEX
c. Vs 1.2 updates
- fixed bug in shell routine which resulted in bad command lines for
user numbers greater than 9
- fixed bug which caused bad time addition for repeated execution
d. Vs 1.3 updates
- replaced BCDBIN with JBCD2BN from ZSLIB
- modified GETTIME to use DSLIB/ZSLIB routines so ZSDOS, Z80DOS or CP/M+
clocks will all work
- assembled ok as-is with SLR Z80ASM
- tested with ZSDOS only, see excerpt from DSLIB.HLP below
:5
Examples of Use
a. !X 06:30 !R /1;SAK /B WAKE UP!
- schedules SAK to ring the console bell continuously every day at
6:30 am!
b. !R /2 10:5:3 !X 15/3/88 12:04;SEND NEATPROG.WOW;SAK /BP10 SENT
>> IT!;MAKE COFFEE
- schedules the program SEND at 12:04 pm on March 15, 1988 with the
parameter NEATPROG.WOW, then schedules SAK to ring the console for 10
seconds and type SENT IT!, then make the coffee (!). Finally the
whole sequence would be re-scheduled to occur again 2 days, 10 hours,
5 minutes and 3 seconds later.