To: ZCPR3 users with BackGrounder ii
From: Bridger Mitchell and Jay Sage
Subject: BGii customization scripts
Date: 4/17/87
---------
Jay has contributed some excellent Z-system alias scripts for automating
the BGii startup and shutdown operations. In addition, he shows how
to change the names of BGii built-in commands. Useful in their own
right, these scripts are also a model of a well-designed system
environment.
You will need to modify the scripts to reflect your own system's
directory names and custom files. The FIXBG addresses will vary,
depending on BGii version and the disk parameters of your swap drive.
And BGHIST and BGERRH require BGHIST.OCP.
---------------------------------
Here are the ARUNZ (renamed to CMDRUN.COM) scripts I use for
the various BG-related operations.
1. script BG
This script is used to engage BGii. It goes to the required directory,
clears the shell stack if necessary because BGii will invoke BGHIST, and
then returns to the directory from which this alias was invoked. The
explicit directory references before some of the commands just speeds
things up a little.
SYS: ; Go to directory with LOADBG
IF SH ; If a shell is currently running
SYS:SHCTRL C ; Clear shell stack
FI
SYS:LOADBG ; Invoke BG (runs alias STARTBG)
$D0$U0: ; Return to original directory
2. script STARTBG
This script is the BGii startup alias.
TIME ON ; Turn on time display in prompt
KEYS GLOBAL ; Load my global key definitions
OCP BGHIST ; Load OCP with BGHIST and BGERRH
FIXBG (leading space) ; Script to patch BG swap file
BGHIST ; Load BG history shell
BGERRH ; Engage BG error handler
CLS ; Clear the screen
3. script FIXBG
This script makes the changes to the BG swap file to rename some of the
resident commands. It could be a part of the main STARTBG script, but I
prefer to keep this separate. I change the ECHO command to ECKO so that
my transient ECHO.COM, which runs at 8000H, will be used instead. I also
shorten PEEK to P and RESET to R.
SYS:DU GF,+9,CA53 K,W,+,CA5A ,CA7A ,W,X
Here are the operations performed by each of the disk utility commands:
GF ; Go to disk group 000F (the group
; ..containing the command dispatch table)
+9 ; Advance 9 records to the one containing
; ..the entry for the ECHO command
CA53 K ; Change-Ascii at byte 53H of the record,
; ..putting in a 'K' in place of the 'H'
W ; Write the changed record out to the disk
+ ; Advance to the next record on the disk
CA5A.... ; Another Change-Ascii (note four spaces,
; ..one to separate command from argument
; ..and three to replace 'EEK' in 'PEEK'
CA7A..... ; Another change in same record (five spaces
; ..in all, four to replace 'ESET' in
; ..'RESET')
W ; Write the changed record out to the disk
X ; Exit from DU3 disk utility
The actual records containg the command dispatch table varies with each
BGii release. What has confused me a bit lately is the appearance in the
swap file of two command lists that each look like a dispatch table. Only
one is, and the real table has to be determined by trial and error.
4. script BGOFF=OFF (two alternative names for same alias)
This script exits from BGii and reestablishes the ZCPR system. Since
my configuration of BGii uses the RCP space, I have to restore the
environment descriptor and the RCP code.
IF BG ; If BG is currently running
BG OFF ; BGii command to exit
SYS:SHCTRL C ; Clear shell stack (of BGHIST)
SYS:LDR SYS.ENV,SYS.RCP ; Restore environment and RCP
SYS:ERRSET SYS:VERROR ; Set up ZCPR error handler
ELSE ; Else if BG not running
ECHO BG NOT RUNNING ; Tell user
FI