This is a sample of current work and contains a VIC command.
This work is - copyrighted 1994, 1995 by: Timothy V. Rue
timrue@mindspring.com
(see copyright information at end of document)
---------------------------------------------------------------------
(PK) Place-Keeper
Brief:
PK - Track and alter a VIC reference data and sequence position.
Specific:
(PK) Place-Keeper - The concept of the Place-Keeper is to keep track
of the reference data and sequence position of a VIC parts
including itself. It does this through a PK-file. PK can also
directly alter the contents of the PK-file and change to another
PK-file.
The PK-file might be considered a process and environment type
of file. The PK-file is intended to always be changing, by at least
the changing SF running file@line# stack but in other ways too. Due
to this the actual PK-file is only updated, saved, at selected
times. If a watch window is open, then the contents of the watch
window is always updated.
The purpose of the PK-file, other than just keeping track of
a VIC reference data and sequence position, is to allow snap-shots
or frames of a VIC process to be taken and at selected positions
in a VIC process sequence. Doing this allows a VIC process to be
set aside, a frame to be saved, and picked up later or passed on
to one or more VICs to continue. This makes possible many types of
processing, such as using the concept of sub-processes, parrallel
or network processing, tree or parent/child processing, etc. All
done with the PK-file while also having the ability to communicate,
pass data and processes between VICs. And all of this is done by
simply changing the contents of the PK-file or the PK-file itself
via the PK command.
The best way to describe the PK-file and PK command is to take
a look at the file, go over it line by line and how to change the
lines using the PK command.
The PK-file structure:
----------------------------------------------------------
AI: AI-name.# ; PK-file directory ; Current Directory
PK: PK-filename ; last/alt. PK-filename ; opt. default PK-filename
OI: OI-filename ; last/alt. OI-filename ; opt. default OI-filename
IP: device ; preprocess,Class ; BOI,EOI : opt. last/alt. set
OP: device ; postprocess,Class ; BOO,EOO : opt. last/alt. set
SF: SF-LPC flags ; last/alt. flags ; SF-fname@line# : opt. last/alt. set
: SF-filename@line#,....>running stack>
IQ: IQ flags ; last/alt. flags ; IQ-fname@line# : opt. last/alt. set
: IQ-filename@line#,....>running stack>
ID: ID flags ; last/alt. flags ; ID-fname@line# : opt. last/alt. set
: ID-filename@line#,....>running stack>
KE: Master-teeth ; last/alt. M-teeth ; KE-fname : opt. last/alt. set
----------------------------------------------------------
Line, Field and Command descriptions:
-------------------------------------
The beginning two letter + colon (i.e. "AI:") are to identify the
lines and related command. Where there is a following line with just a
beginning colon `:', these are lines related to the previous line and
command. This format is for the users benefit.
GENERAL COMMANDS:
-----------------
"PK -?"
Opens the hypertext help system window, at PK help.
"PK -s "
Saves "frame", PK-file with optional new filename. A path may be
specified. This does NOT change the current PK-file name within
the continuing PK-file. But it does change, if new filename, the
listed current PK-filename in the new file. With no path option
used, the file is written to the "current directory". If the
current directory or path is another VIC room and the file already
exist, an error happens and follows the standard error process of
"VIC is put into step mode, the SF user interface is opened to the
error causing line and the error window list the error." If the
current directory or path is a non-VIC room or the executing VIC
then the file is written over any existing file by the same name,
unless the file is write protected causing the standard error
process to happen.
Note: this command is a forced save and functions differently than
the auto-save that happens.
"PK -rn "
Rename PK-file. If no filename is given, the current filename
extention is removed, if exist or other than an auto-count value,
and a three place extension is added. This consists of ".pk" and a
count value range of from 0-9 then A-Z (case insensitive but done
in Caps.) For a total of 36 different versions of a filename. This
count repeats, should the count go beyond "Z" and can be set, or
reset, to any auto extension value by simply using this command
with the specific filename and extension value. This does not save
the file but only renames it within the PK-file and is the name
used during auto-save or forced save without a filename given.
"PK -del filename"
Deletes given filename. No path is allowed and it only works on
"room" files not delete protected. If the file does not exist or
is a delete protected file, an error message will be posted to the
error window and the VIC process will continue. This is a simple
built-in delete. This works on any "room" file.
IN THE FOLLOWING COMMANDS, THE USE OF:
--------------------------------------
"-r" for "r"eturn
"-c" for "c"reate, "c"hange, "c"ancel
AI: LINE DESCRIPTION:
---------------------
AI: AI-name.# ; PK-file directory ; Current Directory
-----------------------------------------------------
This line contains information relative to the existance of this
VIC. It's name.#, where it got the PK-file from, and current directory.
COMMANDS:
--------
"PK AI -?"
Opens the hypertext help system window, at "PK AI" help.
*** This is only mentioned here for the possibility of making
available more direct command help. This is a programmers
option and will not be documented elsewhere except for
main commands help. Hey, with hypertext help, is it really
needed? But with non-hypertext help, it could be useful.
"PK AI -r"
Returns this AI: line.
AI: FIELD 1 DESCRIPTION:
------------------------
AI-name.#
This is the specific VIC name and number, it is also the
directory name of the specific VIC. The only time this field
changes is in the event this PK-file is given to another VIC,
where it will be giving that VIC name and number. This is an
automatic field change.
COMMAND:
--------
"PK AI -r1"
Returns this "AI-name.#".
AI: FIELD 2 DESCRIPTION:
------------------------
PK-file directory
This is the directory where this PK-file was obtained. Keep in
mind that when a PK-file is auto-saved, it is saved (unless
otherwise noted to be the VIC-HOME directory "assignment", i.e.
VIC-HOME:AI-name.#) to it's room directory. But any PK-file loaded
from it's "room" or the VIC-HOME directory "assignment" will NOT
have this field updated. Recall, if the PK-file is obtained from
the VIC-HOME directory but not through the VIC-HOME "assignment"
this will be as though it is NOT from the VIC-HOME. This is an
automatic field change and contains the complete path to the
directory the PK-file was obtained from.
COMMAND:
--------
"PK AI -r2"
Returns this "PK-file directory and path"
AI: FIELD 3 DESCRIPTION:
------------------------
Current Directory
This is the "current directory" and followed in the "search path"
sequence, as stated in the AI command reference. This field
contains the complete path to this directory.
COMMANDS:
---------
"PK AI -r3"
Returns this "current directory and path"
"PK AI -c3"
Causes current directory to be the VIC room directory.
"PK AI -c3 new.dir"
Sets the current directory to given directory. If the directory
does not exist the standard error process happens.
PK: LINE DESCRIPTION:
---------------------
PK: PK-filename ; last/alt. PK-filename ; opt. default PK-filename
------------------------------------------------------------------
This line contains the current PK-filename (self-reference), the
last or an alternate PK-filename, as well as an optional default
PK-filename.
COMMANDS:
---------
"PK -r"
Returns this PK: line.
"PK -c "
This in effect does several of the below mentioned actions. First
loads in the PK-file, then last/alt. PK-file, then the default
PK-file. Going thru and creation and error processes.
PK: FIELD 1 DESCRIPTION:
-------------------------
PK-filename
This is the current PK-file in use with this VIC. This is
self-referencing, the name of this file.
COMMANDS:
---------
"PK -r1"
Returns this "PK-filename"
"PK -c1"
Auto-saves the PK-file and loads in the "last/alt PK-file", if
exist, otherwise loads in the "default PK-file". If the default
does not exist it is created, following the method listed in the AI
command reference for default PK-file creation. This includes the
use of VIC-HOME:, PATH: and error actions.
*** This command does NOT update the "last/alt. PK-file" in the
PK-file it loads.
If this command is used with only the default PK-file position,
it does NOT auto-save but only loads the file, in effect it resets
the PK-file to the last saved contents of this file.
In a simple way, this command might be used to traverse a
circular linked-list of PK-files. But used along with other
commands and variables, more complex movement can be done. Keep in
mind that the PK-files are snap-shots or frames of a process and
environment, and at selected point in the process, processes that
may also be circular.
"PK -c1 PK-filename"
Saves the current PK-file and makes the given PK-file the current.
This also updates the now current PK-file's "last/alt. PK-file"
with the saved PK-file name. If the given PK-filename does not
exist it is created following the method listed in the AI command
reference. This includes the use of VIC-HOME:, PATH: and error
actions.
PK: FIELD 2 DESCRIPTION:
------------------------
last/alt. PK-filename
This is the last used or alternate PK-file used by this VIC.
COMMANDS:
---------
"PK -r2"
Returns the "last/alt. PK-filename"
"PK -c2"
Removes the "last/alt. PK-filename" from the PK-file.
"PK -c2 PK-filename"
Sets the "last/alt. PK-filename" to the given PK-filename. If
the given PK-filename does not exist it is created following the
method listed in the AI command reference. This includes the use of
VIC-HOME:, PATH: and error actions.
PK: FIELD 3 DESCRIPTION:
------------------------
opt. default PK-filename
This is the optional default PK-file used by this VIC.
COMMANDS:
---------
"PK -r3"
Returns the "Default PK-filename".
"PK -c3"
Removes the "Default PK-filename" from the PK-file.
"PK -c3 PK-filename"
Sets the "Default PK-filename" to the given PK-filename. If the
given PK-filename does not exist it is created following the method
listed in the AI command reference. This includes the use of
VIC-HOME:, PATH: and error actions.
OI: LINE DESCRIPTION:
---------------------
OI: OI-filename ; last/alt. OI-filename ; opt. default-filename
---------------------------------------------------------------
This line contains the current OI-filename, the last or alternate
OI-filename, as well as an optional default OI-filename. The OI-file
contains the list of variables, opt. variable class and variable
value, used by user defined processes.
COMMANDS:
---------
"PK OI -r"
Returns this OI: line
"PK OI -c "
Changes the OI line
OI: FIELD 1 DESCRIPTION:
------------------------
OI-Filename
This is the currently accessed OI-file within this VIC.
COMMANDS:
---------
"PK OI -r1"
Returns the OI-filename.
"PK OI -c1"
Removes the current OI-filename from the PK-file. In doing this,
the last/alt. OI-filename is moved to the current OI-filename
position, if exist. Otherwise, the default OI-filename is copied to
the current OI-filename position. If the default does not exist, it
is created and placed in the VIC room.
"PK OI -c1 OI-filename"
Sets the current OI-Filename to the given OI-filename. This command
also updates the last/alt. OI-filename to the previous current
OI-filename. If the given OI-file does not exist, it is created
following the standard file creation and use of VIC-HOME:, Path:
and error actions.
The command "PK OI -c1 running stack>
The SF running stack always shows the next line # to be processed
IQ: IQ flags ; last/alt. flags ; IQ-fname@line# : opt. last/alt. set
: IQ-filename@line#,....>running stack>
The IQ running stack always shows the next line # to be processed
ID: ID flags ; last/alt. flags ; ID-fname@line# : opt. last/alt. set
: ID-filename@line#,....>running stack>
The ID running stack always shows the next line # to be processed
KE: Master-teeth ; last/alt. M-teeth ; KE-fname : opt. last/alt. set
------------------------------------------------------------------------
COPYRIGHT INFORMATION:
------------------------------------------------------------------------
Although this work is copyrighted, the intent of the copyright is to
support the concept of giving credit where credit is due and to prevent
the wrongful constraint and/or abuse/exploitation and/or distortion/
manipulation of it's content. This work may be transfer and used
following these conditions:
1) This work may be transferred only in whole and so long as NO
consideration is received in return.
2) That proper credit is given to the Author(s) responsible for the
creation of the work.
3) That there is no intentional distortion or manipulation of the work
that in any way damages or harms the work or authors(s) responsible
for the creation of the work. And that in finding any unintentional
distortions or manipulations, correction(s) will be made A.S.A.P. and
with reasonable effort to communicate the correction(s) to all.
4) This work shall not be included in any for-profit product and/or
service without the written approval of the authors(s) responsible
for it's creation. The exception to this is, of course relates to the
world wide web, in that the work may be made available on and through
the W.W.W. so long as the other conditions are adhered to.
****
Email: timrue@mindspring.com