(A Re-Run)
[ This is where I goofed not once, but twice. Blame it on the computer! Editor ]
For any who did a double-take …………… should have read:
OPEN_NEW #7,KEYS:PRINT #7,"HOT_GO": PRINT #7, "ALTKEY'#',CHR$(92)" :PRINT #7, "ALTKEY CHR$(39), CHR$(34)" :PRINT #7, "ALTKEY '3','#'":CLOSE
A line editor might also be used to create a file with an unnumbered series of commands such as these, although one type of QL editor I tried that has a TSR mode of operation (Terminate and Stay Resident in memory) does not work in QPC for me. Apparently there is a conflict between the memory address it uses and the one required by QPC. Neither can the Toolkit 2 ED be used to directly create a DO file, but it can be used as follows to make a listing of numbered statements which create the above KEYS file when RUN:
10 OPEN_NEW #7,KEYS
20 PRINT #7,"HOT_GO"
30 PRINT #7,"ALTKEY '#',CHR$(92)"
40 PRINT #7,"ALTKEY CHR$(39),CHR$(34)"
50 PRINT #7,"ALTKEY '3','#'"
60 PRINT #7,"LRUN BOOT"
70 CLOSE
The gremlins that nibbled at a few characters in my first article on QPC seem to have devoured whole pages from the mss. I sent by disk to Abed for the follow-up “More On QPC.” As the saying goes; “some assembly is required” to put together what was in ZQA! with what was not, using the following instructions:
In my previous observations about using WIN partitions on ZIP or other removable-media hard drives with QPC, I should have mentioned that such disks or cartridges cannot be switched once the emulation is started. Only the one originally in the drive will be recognized. Otherwise, when a DIR WINn_ or a RESET or exit of QPC is attempted the system will freeze up. A cold restart of the computer is then required in order to regain control. The only way I have found around this so far is to do an exit from QPC with the original disk in the drive, then make the switch and restart the emulation. Obviously, this is not a problem when a fixed hard drive is used to set up a WIN partition.
Some have had questions also about setting up the CONFIG.SYS and AUTOEXEC.BAT files as described in the QPC manual, without using the MENUITEM function. After installing QPC on hard drive d:, it may be called from a DOS boot disk in drive A: First format a new disk using FORMAT A: /S so the DOS system and COMMAND.COM files are installed on it. Then use your DOS EDIT program to set up the following CONFIG.SYS file on this disk:
LASTDRIVE=G
BUFFERS=15,0
FILES=50
STACKS=10,256
COUNTRY=044,,d:DOSCOUNTRY.SYS
DEVICE=d:DOSHIMEM.SYS/INT15=4096
Create the following AUTOEXEC.BAT file for the disk:
@ECHO OFF
PROMPT $P$G
PATH=d:DOS;d:QPC;A:;
d:DOSMOUSE
REM d:EPSONGUEST
d:
CDQPC
REM d:STACKER d:
QPC -R -W:5 -P:1
A:
Note that names of the respective (d:) drives given for LASTDRIVE and all drive-paths should be adjusted in these listings to conform to those used in your system setup. A mouse driver must be installed for QPC to load properly, even if you do not use a mouse with it. In the line that calls for QPC to be loaded from its hard drive directory, the -R switch skips a key press to confirm QPC startup, -W:5 looks first for a BOOT file in WIN5_ and -P:1 sets LPT1 as the default parallel printer port. The two commands shown in REM lines and described in the following paragraph may be ignored if you are not using a removable hard drive or Stacker.
The first REM line is where a ZIP drive would be activated if you have one. Mine is the parallel port Epson version made by Iomega, for which this line calls its universal GUEST driver, which is in the d:EPSON directory. If you are using a removable hard drive that auto-installs on system startup, then include the appropriate lines to do this in CONFIG.SYS and AUTOEXEC.BAT. If you have Stacker 4.0 installed on your system hard drive, be sure to include its DEVICE command in CONFIG.SYS, the necessary check-lines at the start of AUTOEXEC.BAT, and include d:STACKER in the PATH line. A Stacker-compressed disk or cartridge may also be activated independently by using the command in the second REM line, where d: is the drive-name for the medium with a Stacker Anywhere file. If no Stacker Anywhere file exists on the current cartridge, then QPC will install normally, with access to the WINn cartridge if there is one. However, the batch file processing will halt if Stacker Anywhere activation occurs, so QPC -R -W:n -P:1 must then be keyed in manually. Interestingly, after QPC emulation is terminated and EXIT is entered to end Stacker Anywhere, the batch file will try to start QPC again. It stops with an error report.
When using the extended storage of a WIN partition or an ED drive, it becomes more practical if not a necessity to set up file directories. One reason is that some programs may use same-name files that would otherwise be overwritten or conflict with one another if placed in the same root (primary) directory. Another reason is that data files may be stored for easier access in separate directories such as DOC1, DOC2, ABA, DBF, etc. For instance, when I transferred to a ZIP cartridge of the QPC system all of the QUILL and ABACUS files I had collected over the years, I put those in a DOC1 library directory that I would only occasionally refer to. All those in current use went into DOC2. ABACUS data files went into ABA, and so on.
The MAKE_DIR command (available also on Gold Cards) is used to create such directories. It uses the syntax MAKE_DIR WINn_dir_ in which n is the number of the WIN partition and dir is whatever name is given to the directory being created. A DIR will then show the new directory name followed by ->.
The PROG_USE, DATA_USE, and DEV_USE commands are provided to assist in directing a program to the proper devices and directories for its program and data files. In this respect, recent versions of programs such as XCHANGE v.3.90 are quite well-mannered and need only a PROG_USE and a DATA_USE definition in their boot file in order to switch to the proper directories. DEV_USE definitions might also be placed in the boot file for the respective QUILL, ABACUS, ARCHIVE, and EASEL data directories. For example, definitions such as DEV_USE 1,WIN5_DOC1_ and DEV_USE 2,WIN5_DOC2_ might be placed in the XCHANGE boot listing, followed by PROG_USE WIN5_XCHANGE_ and DATA_USE DEV1_ This causes XCHANGE to look in the proper directory for its HELP and printer data, and when QUILL is activated, WIN5_DOC1_ is the default directory for its .DOC files. To switch to DOC2_ only DEV2_ and the file name need to be entered at a SAVE, LOAD, or ? prompt. Other DEVn_ definitions may be put in the boot listing for the other programs included in the XCHANGE suite, as shown in the last listing below.
To make the computer do most of the work, I placed the following BOOT listing in the root directory of my WIN5 ZIP disk so, with the -W:5 switch installed, it brings up a menu of all programs on the disk whenever QPC is loaded or reset. Note that only the first 3 of the 36 available o$(n) definitions are shown here as examples, but the actual listing may include definitions in lines 1 through 36 as shown in line 2.
1 CLS: CLS #0: DIM o$(36,14): o$(1)="QUILL23"
2 o$(2)="XCHANGE"
3 o$(3)="DOkeys"
37 FOR j=1 TO 36
38 AT j-1-18*(j>18),20*(j>18): PRINT CHR$(j+47+39*(j>10));"=";o$(j)
39 END FOR j
40 AT #0,0,0: PRINT #0; " Key: 0-9 or a-z to LOAD"
41 slc=CODE(INKEY$): AT #0;1,15: PRINT #0;DATE$; " ";DAY$:IF slc=0 THEN GO TO 41
42 sls=slc-47-39*(slc>57)
43 IF o$(slc)="" THEN RUN
44 IF o$(slc)="DOkeys" THEN DO WIN5_KEYS: REMark KEYS in WIN5_
45 LD$="WIN5_" & o$(slc) & "_BOOT": LRUN LD$
46 DEFine PROCedure sv: SAVE WIN5_BOOT: RUN: END DEFine sv
Once your o$ definitions are entered, the above BOOT routine requires only a single keystroke to load the desired program boot routine in the specified directory. Note that the directory names must be exactly the same as those in the o$ array. The boot listing below is the one I use in the XCHANGE directory to load the XCHANGE program:
1 CLS: CLS #2
2 AT #2,0,0: PRINT "1 - QUILL use DOC1"
3 PRINT "2 - QUILL use DOC2"
4 PRINT "3 - ABAcus use ABA"
5 PRINT "4 - ARCHIVE use DBF"
6 PRINT "5 - EASEL use GRF"
7 n=CODE(INKEY$)-48: IF n<1 OR n>5 THEN GO TO 7
8 DEV_USE 1,WIN5_DOC1_
9 DEV_USE 2,WIN5_DOC2_
10 DEV_USE 3,WIN5_ABA_
11 DEV_USE 4,WIN5_DBF_
12 DEV_USE 5,WIN5_GRF_
13 SELect ON n
14 =1: DATA_USE WIN5_DOC1_
15 =2: DATA_USE WIN5_DOC2_
16 =3: DATA_USE WIN5_ABA_
17 =4: DATA_USE WIN5_DBF_
18 =5: DATA_USE WIN5_GRF_
19 END SELect
20 PROG_USE WIN5_XCHANGE_
21 PAR_USE SER
22 EX "WIN5_XCHANGE_XCHANGE_EXE"
23 STOP
24 DEFine PROCedure sv: SAVE WIN5_XCHANGE_BOOT: END DEFine sv
The apparent redundancy of repeating DEV_USE definitions in DATA_USE allows the default data directory to be pre-set, for example, to the primary program of QUILL, while at the same time allowing the WIN5_ABA_ directory to be used for ABACUS by prefixing any data file name with just DEV3_. An alternative would be to key F6 and return to the XCHANGE SET option to change the default data directory. For other BOOT routines that involve a single program, such as QUILL 2.30, DEV1_ and DEV2_ definitions allow selecting as the default either the library directory DOC1_ or the current files directory DOC2_. These definitions remain active after an exit from the program that used them, so doing a RESET is usually advisable. The little sv procedure is included to make it easier to save a copy of the listing while testing it just by typing sv.
Clarification
If you have Stacker 4.0 installed on your system hard drive, be sure to include its DEVICE command in CONFIG.SYS, the necessary check-lines at the start of AUTOEXEC.BAT, and include d:STACKER in the PATH line. Note that, while QL programs find their data may be stored in a Stacker-compressed partition., QPC itself must be installed in a non-compressed drive partition.
This completes the mss. I sent in but, as always, the learning curve on new devices or software such as QPC and SMSQ/E seems to be open to exceptions and additions. For instance, although the QPC manual emphasizes that the QPC emulator program must never be installed on a compressed hard drive partition, according to Norman Dunbar’s article in the Sept/Oct. QL Today, he made such an installation (before reading the instructions) and it worked OK. In Al Feng’s article QPC the Missing Link) is the comment that some say a 386 CPU will suffice to run QPC, but in the manual the reason for requiring a 486 or higher is that it is designed to use commands found only on CPUs higher than a 386.
I never tried networking with my QLs (it was exasperating enough to get even one working at a time) but the extended commands described in the SMSQ/E and QPC manuals seem to provide ways of doing it. In the SMSQ/E manual is the comment that SERNET provides low-cost networking like the Toolkit 2-Network, allowing you to connect two or more machines which run SMSQ/E via the serial ports. The QPC manual states that the COM-port to which a mouse or other device is connected must be configured to “none” in SMSQ/E. Also, the interrupt which is used by such a COM-port device cannot be used by any serial port (e.g, if a COM-port device uses INT4 then neither SER1 nor SER2 may use INT4).
Beyond quoting these comments, I cannot advise Al Feng on his questions, other than to contact Marcel Kilgus, the author of QPC, or Jochen Merz, publisher of QL Today and distributor of QPC through his Jochen Merz Software.