Section 1: Welcome to the Master Level!

Get ready to plug in to the best features of BEX! Master Level BEX is only available when your Apple has at least 128K memory. All Apple IIc's and IIgs's qualify; no Apple II Plus can. If you have an Apple IIe without an extended 80 column card, you will have to install an extended 80 column card to make use of the Master Level. Appendix 4 discusses sneaky ways to take advantage of some Master Level features when your Apple has only 64K memory.

What to Expect from this Manual

To use the Master Level, we assume that you have read, understood, and practiced the material in the User Level. We expect that you are familiar with chapter selection, editing, printing, and Replace characters. The User Level summarized much of the material that you learned at the Learner Level. But at the Master Level, we focus solely on the new features. A summary of all the features available at the Master Level is in the booklet we call the Thick Reference Card.

Part 1: Overview of Master Level Features

BEX's prompts are much shorter at the Master Level. Instead of prompting Main Menu: BEX prompts Main: Whenever BEX wants a chapter name or drive number, the prompt is simply Chapter: If that's not brief enough for you, read Section 9 to learn how to change BEX's prompts yourself. And if you're feeling truly adventurous, Section 9 also explains how to change the braille translation tables.

Speeding Up BEX

Section 2 introduces the Ready chapter. Up to now, the chapters you have worked have always been stored on disk. The Ready chapter is stored in the Apple's memory. You can copy its contents to disk when you want to. For the Apple IIe and IIc, the Ready chapter can be six BEX pages; for the Apple IIgs, the Ready chapter is 20 BEX pages. Because moving between pages in the Ready chapter happens totally in memory, it's a lot faster.

Section 3 explores extended disk systems. In addition to two 5.25-inch disk drives, at the Master Level you can use 3.5-inch disk drives, the Sider hard disk system, and RAM drives. When you load your BEX program disk on to a RAM drive, BEX really flies!

Greater Input/Output Control

At the Master Level, you can turn any of BEX's four output channels off and on when you wish. You can also change screen size at the Menus as well as in the Editor. You can have a braille or print device capture a small part of the computer dialogue for future reference.

You can set up automatic procedure chapters that record your keystrokes as you use BEX. At a later point you can replay these auto chapters, similar to running a player piano.

As you configured at the Learner and User Level, you probably wondered what a class S - Specific printer was. Well, Master Level Section 5 tells all. There's a new group of format commands that send escape codes to a specific printer. Section 5 also explains how to embed format commands within words; how to insert discretionary hyphens in your text, and even how to write about BEX format commands.

Contextual Replace

The largest Section in the whole of BEX is Master Level Section 6. That's because it provides the ins and outs of Contextual Replace. You can turn replacing on and off within a chapter. You can specify whole classes of characters in one stroke. You can ask for much more restrictive conditions than are possible with regular Replace characters. Without a doubt, Contextual Replace is the most intricate and powerful part of BEX. Contexual Replace made it possible for us to produce this manual in both large print and braille from one set of data.

Part 2: Advancing to the Master Level

The way to tell BEX to unlock all these new features is by creating a Master Level configuration. To set up a Master Level configuration, answer the Enter configuration: prompt with the & ampersand character. The configuration questions at the Master Level are identical to the User Level questions with one exception: the final question is Do you have an extended disk system? You definitely want to answer Y when you have 3.5-inch drives or an extra memory card in your Apple. See Section 3 for the details.

Enjoy!

Section 2: The Ready Chapter

The Ready chapter is a special chapter which you can create and use only at the Master Level. We call it the Ready chapter because it is always ready to use, and because you specify it using the right bracket, which the Echo speaks as "ready." The Ready chapter does not exist on any disk drive; instead, it exists in the auxiliary memory created by your extended 80-column card. The size of the Ready chapter depends on your Apple model. BEX keeps up to six Ready chapter BEX pages in the auxiliary memory with Apple IIc and the Apple IIe; with the Apple IIgs, the Ready chapter is 20 pages long.

You create and manipulate the Ready chapter much as you would any other BEX chapter. Because manipulations on the Ready chapter do not involve floppy disk access, they happen in a flash. Moving from one Ready chapter page to another, for example, is just about instantaneous. Using the Ready chapter minimizes disk swapping when you have a one-drive system.

Gone in a Flash

The Ready chapter also disappears in a flash when you turn off computer power. However, it remains intact when you do a warm boot; that is, when you reboot without interrupting power. You can do a warm boot by depressing control and open-Apple, then pressing the Reset key; or by entering PR#6 at the BASIC prompt. Because a warm boot does not change the Ready chapter, you can reboot with a different configuration or establish a new configuration without erasing the Ready chapter. However, we recommend you save the Ready chapter to disk, if possible, before doing a warm boot, in case of loss.

The chapter name for the Ready chapter is just one keystroke: ] known as the right bracket. To use the Ready chapter with any BEX function, enter its single right bracket name at any Chapter: prompt. The crucial difference between the Ready chapter and a chapter on disk is permanence. When you want a lasting version of the information in the Ready chapter, you must copy it to a disk chapter with a different name.

When you turn on power and boot BEX or when you kill the Ready chapter, it has no pages. Until you turn off power (or your neighbor blows a fuse) BEX keeps track of it. Because you can lose the Ready chapter easier than a chapter on disk, we recommend you back up the chapter often.

Part 1: Uses for the Ready Chapter

There are as many uses for the Ready chapter as there are for any BEX chapter. When you are doing a lot of work on one chapter, it is very efficient to copy it into the Ready chapter and proceed to edit and operate on the Ready chapter. The Master Level requires the additional 64K memory from an extended 80-column card, so in addition to the Ready chapter, the routines for printing, the Editor and Replace characters are always loaded in RAM. These operations and some others, like Copy chapters, do not require disk access. When you use the Ready chapter, BEX glides along with barely a disk access.

The main hurdle in using the Ready chapter is remembering that it is there. Now that you are at the Master Level, you are encouraged to change your habits and use the Ready chapter.

Whenever BEX prompts for Chapter: you can use the Ready chapter: in Print chapters or Multi-function print, as the source or target for braille translation or Replace, in Input through slot, or even as a transformation chapter or automatic procedure chapter. If you have a one-drive system, you can use it as the target chapter when reading a ProDOS textfile into BEX.

Suppose you want to produce a letter in both print and braille. You write it in print form in the Ready chapter. You then copy it to a chapter called ULTIMATUM on disk. Then you use the Ready chapter as both source and target chapter for grade 2 translation and replacing with a transformation chapter. You copy the Ready chapter, now containing your final braille, to the ULTIMATUM2 chapter.

The Ready chapter is perfect for temporary information. For example, to address an envelope, you can write the address material in the Ready chapter and then print the Ready chapter. You never have to save it to disk.

Editing the Ready Chapter

Editing with the Ready chapter is a treat. Moving between pages, and in and out of the Editor do not entail disk access time.

When you enter ] at the Editor Chapter: prompt, you create a fresh Ready chapter if it is not already occupied. To use the Ready chapter for editing something already on disk, copy the disk chapter to the Ready chapter.

When you edit in the Ready chapter, you still have a regular-size clipboard of up to 4096 characters. As in any other chapter, the editing work on your current page is only in the page buffer until you save the page in memory. The current page is saved in memory when you change pages, enter control-P 0, or press control-Q.

When you leave the Editor with control-Q, your current Ready page is saved, but not on disk. When you want to save it to disk, use Copy chapters with ] as the source chapter.

You may have more pages in your Ready chapter than your computer's Ready chapter page limit. BEX automatically saves extra pages to disk. We discuss this further in Part 2: Ready Chapter File Structure below. Of course, you are making most efficient use of the Ready chapter when you keep to the page number limit, which is 20 for the Apple IIgs, and six for the Apple IIc or IIe.

When you want to clear the Ready chapter, so that it contains no text, you can use Kill chapters on the Second Menu. Kill chapters deletes any pages in the Ready chapter which happen to be saved on disk.

You Can't Change the Ready Chapter's Name

There is, however, one operation which does not work with the Ready chapter. This is option N - Name change for chapters on the Second Menu. You can't specify ] as either the source or target chapter. The Ready chapter must be called ] and only the Ready chapter can. Therefore, you can't specify ] as either source or target for option N - Name change for chapters on the Second Menu.

Part 2: Ready Chapter File Structure

The file structure for the Ready chapter resembles the ordinary chapter file structure. Its page files are lettered sequentially: ].A then ].B and so on. The files ].A through ].F (or ].A through ].T on the Apple IIgs) are stored in auxiliary memory instead of on disk. Each of these files is actually a pocket of auxiliary memory which can hold up to 4096 characters. The directory for the Ready chapter is also kept in memory. Files ].G (or ].U on the Apple IIgs) and beyond, are disk files saved on your default data drive.

As with ordinary BEX chapters, the correspondence between page numbers and the one-letter file extensions can vary. When cutting pages and Page Menu manipulations are not part of a chapter's history, the page file extensions for pages 1, 2, and so on are in alphabetical order. As you may recall, page manipulations change the correspondence between the page number and its letter extension. When you kill pages or move them in the Edito, the new pages keep their old extensions. When you cut a page or use Grab pages, each newly created page file takes the next available extension for that chapter. When you copy a chapter, the copy uses the same extensions as the original.

These considerations are equally true for ordinary BEX chapters and for the Ready chapter. They are just more crucial for the Ready chapter, since you want to use extensions .A through .F or .A through .T wherever possible.

Suppose you have a seven page chapter called MANIFESTO whose page file extensions are all in alphabetical order. You see its pages listed as MANIFESTO.A through MANIFESTO.G when you do a disk catalog. You then kill pages 3 and 4. When you do a file list, here is what you get:
MANIFESTO.A
MANIFESTO.B
MANIFESTO.E
MANIFESTO.F
MANIFESTO.G
MANIFESTO

Next, you copy chapter MANIFESTO to the Ready chapter. Page 5, with its G letter extension, is written to disk, even though you are not over the page limit. When you Copy chapters, the letter extensions remain the same. Any page with extension .G is always written to disk, no matter what page number it is in your chapter. If for some reason the first page of your Ready chapter has extension Go, that page is written on disk, and requires disk access whenever you move onto it.

Three options on the Second and Page Menus solve this problem. Options M - Merge chapters and A - Adjust page sizes on the Second Menu, and option G - Grab pages from another chapter on the Page Menu create new chapter directories. These options use alphabetical order for extensions as they create new page files.

For example, suppose you copy the chapter MANIFESTO using ] as your target chapter. When you do a file list of ] on the Page Menu, you see that page 1 has the letter extension Go, and is written to disk. Next, you use Merge chapters, specifying just MANIFESTO for the source chapter, and the Ready chapter for the target chapter. When you do a file list of the Ready chapter this time, you see that the page letter extensions are in alphabetical order. When you use Merge chapters instead of Copy chapters to move the chapter MANIFESTO into the Ready chapter, you solve your disk access problem. No pages are written to disk. This also happens with option A - Adjust page sizes on the Second Menu, and option G - Grab pages from another chapter on the Page Menu.

Page manipulations on the Ready chapter itself, as well as some Editor commands such as control-C control-P to cut pages, also take its page extensions out of alphabetical order. When you have unnecessary disk files, you may wish to straighten the page files. For example, you can use Merge chapters with chapter ] together with no chapter, or Grab pages from chapter ] into a disk chapter, and then copy that disk chapter back into the Ready chapter. In the process, you reletter your pages alphabetically, and you also back up the Ready chapter on disk.

Fix Chapters and the Ready Chapter

When you use Fix chapters on the Ready chapter, the result is different from Fix chapter with a disk chapter. Because there is no disk file for the file extensions A through Go, or A through T on the Apple IIgs, BEX can't know how many characters are in each page. Therefore, every Ready chapter page in memory is restored to 4095 characters. It is as if you did RUN 999 to all the pages in memory. When you need to use Fix chapters on the Ready chapter, you must delete excess material in the first six pages on the IIc or IIe, or the first 20 pages on the IIgs. However, Fix chapters works normally with any Ready chapter page written to disk.

Keep a Disk in the Default Data Drive

One of our staff was editing a six page Ready chapter without a disk in her default drive. When she cut a page, she created a seventh disk page, which needed to be written to disk. Since there was no disk in the drive, BEX could not save the page. She got the message Cannot write to disk. Insert a data disk in drive 1 and press any key. This created a one page chapter called SAVE on drive 1. Instead of saving the page as a part of her Ready chapter, it was saved into a separate chapter.

After getting over her panic, she realized there was a way to integrate her data. First, she copied chapter SAVE to a data disk in her default drive. Then she pressed S to move to the Second Menu. There, she used option M - Merge chapters, with source chapters ] and SAVE, with SALVATION as the target chapter. Now she had the seventh page along with the rest of the text from her Ready chapter. With that done, she deleted the SAVE chapter. As her last step, she copied the text in SALVATION back into her Ready chapter, only this time she had a disk in her data drive.

The moral of the tale is always have a disk in your default data drive when you work with the Ready chapter!

Section 3: Extended Disk Systems

In this Section you learn how to use more than two 5.25-inch floppy disk drives with BEX. Part 1 provides the conceptual framework, explaining the virtual drive number system BEX uses to keep track of disk drives. Part 2 explains how you answer the configuration questions concerning extended disk drive systems. In Part 3 you learn the ins and outs of RAM drives, which can dramatically speed up your BEX use. Part 4 deals with 3.5-inch disks, sometimes called microfloppies, which are easy to slip in your pocket and can hold almost 800K of data. Part 5 deals with the Sider, the only hard disk system that BEX supports. Finally, Part 6 provides four sample combinations of extended disk systems.

Part 1: Assigning Virtual Drive Numbers

At the Learner and User Levels of BEX, your disk drive options were simple: one or two. Either way, they had to be 5.25-inch floppy disk drives, connected to a single disk controller card. Now at the Master Level, you have many more options: You can have more than two 5.25-inch disk drives; you can have one or two 3.5-inch disks drives; you can set aside portions of memory to be used as RAM drives; and you can use a Sider hard disk drive. We use the term extended disk systems to include all these options.

When DOS 3.3, the Apple operating system, addresses a disk drive, it uses the combination of the slot where the disk controller card is plugged in and the number of the drive on that card. For the vast majority of Apple IIe systems, the first drive is slot 6, drive 1; the second drive is slot 6, drive 2. Even though the Apple IIc doesn't have slots, the same addresses are used: the internal disk drive is slot 6, drive 1; the external disk drive is slot 6, drive 2. Things are a little more complicated on the Apple IIgs because it often comes with 3.5-inch disk drives instead of or in addition to 5.25-inch disk drives--more on this in Part 4.

When you use a program, it would be awkward to always supply the full address of the disk drive, for example, "Give me chapter XYZ from the disk in slot 6, drive 2." And as you've learned using BEX, the program shortens the disk drive address to just one digit. At the Learner and User Levels of BEX, 1 means slot 6, drive 1; 2 means slot 6, drive 2. This is an example of a virtual drive number. The virtual drive number substitutes a shorter expression for the disk drive's full address. You enter a single digit, and the BEX program expands that to the full address that DOS 3.3 requires.

When you configure an extended disk system, BEX asks you to assign a slot and drive number to each virtual drive number. From then on, you access the disk in a particular slot and drive by the single virtual drive number you have assigned to that address.

Finally, before you configure an extended disk system, you need to know which drive the Apple boots from. Unless you have recently rearranged your disk drives or added new equipment, your Apple generally boots from the disk drive in slot 6, drive 1, which we refer to as the booting drive. You know this empirically, as you've been booting BEX successfully up to now.

For those with disk controllers in other slots, here's the nitty-gritty. The Apple IIe and IIc always attempt to boot from the first drive connected to the disk controller card in the highest numbered slot. When your disk drive controller is in slot 6, and slot 7 does not contain a disk controller card, the Apple boots from slot 6, drive 1. When you add another disk controller card with two drives in slot 5, the Apple still boots from slot 6, drive 1, because 6 is higher than 5. In short, the Apple IIe and IIc boot from the highest drive number.

On the Apple IIgs, booting is determined by one Control Panel setting. When the Control Panel Startup Disk function is set to Scan, then the IIgs searches for a bootable disk in any slot. You can also specify any numbered slot or a RAM or ROM drive for the startup disk. With BEX, you must set this Startup Disk function to your 5.25-inch floppy disk drive.

Part 2: Configuring an Extended Disk System

We'll demonstrate the general procedure with a straightforward example. Other configuration dialogues are shown in later Parts; Part 6 provides four sample combinations of various devices. Assume you have two 5.25-inch disk controller cards, one in slot 6 and one in slot 5. Each card has two disk drives plugged into it, for a total of four drives. After you have answered all the printer questions in a configuration, here's how the rest of the dialogue goes:
Do you have a extended disk system? Y <CR>
Virtual drive 1 is the Main program disk
For virtual drive 1
Enter slot: 6 <CR>
Enter drive: 1 <CR>
For virtual drive 2
Enter slot: 6 <CR>
Enter drive: 2 <CR>
For virtual drive 3
Enter slot: 5 <CR>
Enter drive: 1 <CR>
For virtual drive 4
Enter slot: 5 <CR>
Enter drive: 2 <CR>
For virtual drive 5
Enter slot: 0 <CR>
Enter a name for this configuration: FOURDISK

You may notice that this dialogue is similar to configuring printers. You assign a virtual drive number to the combination of slot and drive number. From then on, the virtual drive number is how you reference that disk drive. You end the naming process by entering zero for the slot number. BEX prompts you with the next virtual drive number in sequence until you supply eight addresses or enter zero.

Part 3: RAM drives

A RAM drive is a portion of the Apple's memory that acts like a floppy disk. RAM is an acronym for Random Access Memory. You can read and write information between a RAM drive and a floppy disk. A RAM drive is very similar in function to BEX's Ready chapter. All "disk" access happens in a flash, because you don't have to wait for the mechanical head on the disk drive to move around over a physical disk.

() Caution! The most important thing to remember about RAM drives is this: Any information on a RAM drive disappears when you turn off the power! When you want to keep a lasting version of your work, you must conscientiously copy chapters from the RAM drive to a physical disk drive.

At the Master Level, you can configure RAM drives to hold data, and you can also configure one RAM drive to hold the programs on BEX's Main side. Things speed up dramatically when BEX runs from a RAM drive--moving to the Page Menu, for example, takes just as long as loading the Editor or Print options.

In order to configure a RAM drive, your Apple must contain more than 128K of memory. You get this extra memory by plugging a memory card into your Apple IIe or IIgs. Although the Apple IIc does not have slots, it's possible for a computer dealer to install extra memory in a IIc, as well.

Two Kinds Of Memory Cards

There are two distinct types of memory cards: the auxiliary slot cards and the regular slot cards. The difference between them is where you plug them in and how they are partitioned. BEX works with both kinds of memory cards.

The auxiliary slot cards are plugged in to the auxiliary slot of the Apple IIe. They provide 80-column capability as well as extra memory. As with any 80-column card, the Apple addresses an auxiliary slot card as if it were in slot 3, even though it's not physically plugged in to slot 3. Some brand names are the RamWorks card from Applied Engineering and the MultiRAM card from Checkmate Technologies. Comparable cards are available for the Apple IIc, though it doesn't have slots. The Z-RAM card from Applied Engineering or the MultiRAM CX card from Checkmate Technologies can be installed in an Apple IIc. They act like an auxiliary slot card, and BEX treats them that way.

The Apple IIgs does not have an auxiliary slot; instead, it has a memory expansion slot. As far as BEX is concerned, a memory card plugged into the Apple IIgs's memory expansion slot is treated as if it were an auxiliary slot card in an Apple IIe. Apple IIgs users should follow the instructions for auxiliary slot cards.

The regular slot cards can be installed in slot 1 through slot 7 in the Apple IIe or IIgs. Examples of regular slot cards are the Apple Memory Card made by Apple, and the RamFactor card made by Applied Engineering. You can't use a regular slot card for DOS 3.3 RAM drives in a system that also contains a Sider hard disk.

Plain old DOS 3.3 does not have the capacity to create and work with RAM drives. However, it's possible to make minor disk operating system modifications, commonly called patches, that enable DOS 3.3 to work with RAM drives. BEX takes advantage of three different RAM drive patches. For auxiliary slot cards in the Apple IIe and Apple IIc, BEX uses RAMDRIVE, a program written and distributed by Applied Engineering. For expansion slot memory in the Apple IIgs, BEX uses RAM 3.3, a special patch written by David Holladay. For the Apple Memory Card in the Apple IIe or Apple IIgs, BEX uses patches located in the card's firmware. At the end of this Part, we discuss some of the idiosyncrasies you can encounter when working with regular slot memory cards.

Installing and Checking Out Your Card

For instructions on installing RAM cards, check Section 5, The Cookbook, in the Interface Guide. Turn off the power to your computer whenever you plug in cards! Don't try to install a card in an Apple IIc yourself. Have a trained technician install the card for you.

Once the card is installed, use option W - What is in this computer at the Starting Menu. When BEX says # RAM drives available through slot 3 then BEX has recognized an auxiliary slot card. If BEX does not display this message, then it has not recognized your memory card. Check to make sure the card is properly installed.

When you install a regular slot card, What is in this computer should list it as an Apple Memory Card in its appropriate slot. When you install a regular slot card in slot 5, yet BEX says it's an "unknown card," do not worry. Option R - Recognition of cards on the Starting Menu lets you teach BEX about cards it does not recognize. You use Recognition of cards to tell BEX that the "unknown card" in slot 5 is actually a "Regular Slot Memory Card." More details in Interface Guide Section 15.

Dividing the Memory Into RAM Disks

The memory on a regular slot card is treated as a single, large RAM drive. When you have a one megabyte Apple Memory Card in slot 5, its address for configuring purposes is slot 5, drive 1. Once configured, this RAM drive has a lot of room. You get 1480 sectors free when you press the number sign at any menu.

Both Apple Engineering's RAMDRIVE software and RDC'S RAM 3.3 program divide the memory into 192K RAM drives, holding more than 700 sectors. How many RAM drives you get depends on how much memory is in the card. To find out exactly how many sectors are in each of your RAM drives, press # at any BEX menu. The maximum amount of memory that RAMDRIVE or RAM 3.3 can manage is one megabyte--five full RAM drives. Any additional memory above one megabyte is ignored.

As you can see, most RAM drives hold significantly more data than a 5.25-inch floppy disk, which starts out with 140K or 528 sectors free. Because of this difference in storage capacity, a RAM drive cannot be either source or target in option C - Copy disks on the Starting Menu. To copy information from RAM drives to more permanent storage media, use any creative BEX option like Copy chapters, Replace characters or Grade 2 translator, or use the FID utility available from BEX's Starting Menu. (More details on FID appear in User Level Section 13.)

Configuring RAM Drives for Data

As with any extended disk system, you must establish a BEX configuration that references the RAM drives. In the following sample, all the RAM drives on an auxiliary slot card are used as data drives.
Do you have a extended disk system? Y <CR>
Virtual drive 1 is for the program disk.
For virtual drive 1
Enter slot: 6 <CR>
Enter drive: 1 <CR>
For virtual drive 2
Enter slot: 6 <CR>
Enter drive: 2 <CR>
For virtual drive 3
Enter slot: 3 <CR>
Enter drive: 1 <CR>
For virtual drive 4
Enter slot: 3 <CR>
Enter drive: 1 <CR>
<beep> Error! Illegal duplication with virtual drive
For virtual drive 4
Enter slot: 3 <CR>
Enter drive: 2 <CR>
For virtual drive 5
Enter slot: 3 <CR>
Enter drive: 8 <CR>
<beep> Error! Enter a number between 1 and 5; or zero to cancel
For virtual drive 5
Enter slot: 3 <CR>
Enter drive: 3 <CR>
For virtual drive 6
Enter slot: 0 <CR>
Enter a name for this configuration: RAM <CR>

In this configuration, the booting drive and the program drive are both in slot 6, drive 1. The default data drive is drive number 5. Unless all the chapters you create are completely disposable, it is absolutely crucial that you copy your chapters from a RAM data drive to a floppy disk before you turn off the power!

Also shown in this example are two of the error messages BEX provides when you enter nonsensical values. Remember, you can press <CR> for a summary of RAM drives available when BEX prompts for the slot number.

Configuring a RAM drive as the Program Drive

You can establish a configuration where the Main side of BEX is loaded to a RAM drive. If you have enough memory, you can have RAM data drives as well. When BEX is loaded on a RAM drive, moving between menus takes less than one second. Since you already have a floppy disk copy of your BEX program, loading the BEX Main side to a RAM drive requires less concentration on your part. It's like using an extra backup of your BEX disk. If lightning strikes and your Apple's power is affected, you won't be losing crucial data.

As we said in Part 2, BEX always looks for the program disk in virtual drive 1. When you load the Main side of BEX on the RAM drive, virtual drive 1 is not the booting drive. You can still boot BEX, because the Apple takes care of booting. Once BEX is booted and you enter the name of the configuration, BEX knows to look in virtual drive 1 for the Main side of BEX. Here's one possible arrangement for a 512K auxiliary slot card:

In this particular configuration, the default data drive is one of the two larger RAM drives. Notice that the virtual drive numbers do not have to follow the order of the full addresses of the disk drives. The program drive is always virtual drive 1, in this case, slot 3, drive 1. The booting drive is virtual drive 2, which is physically slot 6, drive 1. You could rearrange the virtual drives to suit your tastes; but to load BEX onto the RAM drive, you must assign virtual drive 1 to a RAM drive.

Once you set up a configuration with virtual drive 1 as a RAM drive, you're ready to go. With the Boot side still in the disk drive, press <space>. BEX checks to see if the Main side software is loaded on virtual drive 1. When it is loaded, you quickly move to the Main Menu. But when it's not loaded, BEX automatically uses FID to load the Main side software onto the RAM disk. At the appropriate time, BEX prompts you to insert the Main BEX disk and to press any key. When you need to access the Starting Menu, first go to the Main Menu and insert the Boot side of BEX into the booting disk drive, then press <space>. To get back to the Main Menu, press <space> at the Starting Menu. You can't load the Starting Menu on a RAM drive; you must access the Starting Menu from disk.

Preventing havoc when RAM drives share programs and data

Once you have loaded BEX onto the RAM drive, virtual drive 1 contains all the BEX program chapters as well as any data chapters you put there. When you have a regular slot memory card, which is treated as one vast RAM drive, then you definitely will be writing data chapters on your program drive. If you told BEX to perform an operation on all the chapters in virtual drive 1, you would change the BEX chapters ZQFOR and ZQREV which contain the translator tables. BEX recognizes a chapter by looking for a binary directory file that satisfies three criteria: Is it three sectors big? Is it unlocked? Is its second-to-last character not a period? You don't want to change the name of ZQFOR or ZQREV, and you can't make the directory file any bigger or smaller, but you can easily lock the directory file.

To prevent BEX from messing with any chapters on your Main side, lock their directory files before you install them on your RAM drive. You can use FID'S option 5 - Lock Files to lock every file on your Main side.

() Caution! Make sure to unlock any chapter from the Main side before editing: Quit BEX and type UNLOCK FILENAME,S#,D# <CR> using the appropriate slot and drive numbers. Then type RUN <CR> and edit your chapter successfully. When you edit a chapter and make any changes at all, BEX must change the information in its directory file. When you quit or move between pages, and the directory file is locked, BEX prompts: Cannot write to disk, insert data disk in program drive and press any key and saves the current page buffer in the SAVE chapter.

Using RAM Drives

BEX treats a RAM drive like any other data drive. When virtual drive 3 is a RAM drive, then editing chapter 3LETTER creates a chapter named LETTER on drive 3. One big difference is that RAM drive access is totally silent. This can be a little disconcerting. When you have an auxiliary slot or memory expansion card, there is a visual indicator of disk drive access. You only see this when you use a non-HI-RES screen; in the lower right-hand corner, an inverse W shows writing and an inverse R shows reading.

You can add an audible indicator as well. When you boot BEX, hold down the open-Apple key until you hear a sound. For an Apple IIe, it's a clicking sound; for the Apple IIgs it's a low moan. When you do this, you add an audible indicator for RAM drive access. You hear a quick clicking whenever you read from or write to the RAM drives. No visual or audible indicator is available for the RAM drive from a regular slot card.

The crucial thing to remember is you lose your data if you lose power. You must copy your chapters to disk before turning off your computer. In fact, we recommend that you routinely copy your chapters to disk at least every half-hour. In Section 4, Part 3, we explain how you can catalog more than one disk drive at the Page Menu. When you configure your RAM drives all in a row, use this feature to check to make sure you've saved all your RAM drive data.

You can use almost every BEX option with a RAM drive, with three exceptions:

() Hint! If you have a regular slot memory card, you can write DOS 3.3 chapters or textfiles to it, then quit BEX. Without turning off the power, start up QTC. You can then tell QTC that your source disk is in slot 4, drive whatever, and QTC quickly converts the DOS 3.3 BEX chapters on the DOS 3.3 RAM drive to ProDOS textfiles on disk. This won't work with an auxiliary or memory expansion slot card.

Redirecting virtual drive 1 at the Starting Menu

There's one additional complication when you run the Main side from a RAM drive. As we've stressed, virtual drive 1 is always the program drive. On the Main side, the programs BEX needs are on the RAM drive you've configured as virtual drive 1. But when you switch to the Starting Menu, the programs BEX needs are on the floppy disk in the booting drive. When you use the Starting Menu, virtual drive 1 is temporarily redirected to the booting drive. When you <space> back to the Main Menu, virtual drive 1 becomes the Main RAM drive again. As mentioned in Part 2, there's an on-line reminder of which virtual drive number references which physical disk drive. Press D at any BEX menu; when BEX responds Which drive? # enter question mark followed by <CR>. When you do this at the Starting Menu, you may press M to catalog the Main side RAM drive.

The 105 filenames barrier and regular slot cards

Two factors limit how much data can fit on a DOS 3.3 disk of any sort: the free sector count, and the number of filenames. Clearly, the free sector count is not a problem here; a regular slot memory card gives you lots or room. However, plain DOS 3.3 can only manage 105 filenames per "disk." Because the auxiliary and memory expansion card RAM drives are subdivided into drives, you usually don't bump into this 105 filename barrier. But on a one megabyte regular slot card, you're bound to encounter it sooner or later.

When you attempt to save the 106th file, DOS reports the DISK FULL error message, even if you have loads of sectors free. Each BEX chapter is composed of several files: one binary file for each BEX page, plus one more binary file for the chapter directory.

And this is where you can get into trouble. Suppose you have five 20-page BEX chapters. They are stored as 105 files on disk. Even if each of the pages of these five BEX chapters contained only one character, you would get a DISK FULL error message if you tried to save another BEX chapter to this disk. You must delete some files from the RAM drive to free up filename slots for a new chapter.

The limit of 105 filenames is particularly problematic when you have a regular slot memory card, and you load BEX's Main side onto a RAM drive. The BEX Main programs are at least 35 files; this leaves just 70 possible filename slots for your BEX chapters.

Can't write to disk errors in the Editor and RAM drives

Way back in Learner Level 5, we described how BEX attempts to salvage the page buffer when something goes wrong when you quit or move between pages. BEX uses the RUN 999 technique to save the page buffer in a one-page BEX chapter named SAVE on your program drive. Suppose you were editing one of the five 20-page chapters mentioned above. You enter control-C control-P to cut pages. You have just asked BEX to create another page file, but DOS 3.3 refuses to accept this 106th filename. Because BEX has received a DOS error, it swings into action, attempting to create a SAVE chapter--but DOS 3.3 refuses again. In this situation, BEX tells you Insert data disk in program drive and press any key endlessly. But you can't insert a different data disk, because it's a RAM drive. Here's how you recover:

Part 4: 3.5 Inch Disk Drives

The designers of DOS 3.3 never anticipated a device like the 3.5 inch disk drive. This is a pity, because these little disks are delightful: they are compact, sturdy, and they can hold almost 800K of data. But DOS 3.3 can never cope with more than 400K on one disk. Fortunately, Gary Little wrote a modified disk operating system named AmDOS, which allow access to 3.5 inch disks. Even more fortunately, Mr. Little licensed us to include AmDOS on the BEX disk. The AmDOS on the BEX disk has been slightly modified to work smoothly within BEX.

() Caution! The BEX program disk cannot be loaded onto a 3.5 inch disk. This means your Apple system must have at least one 5.25 inch disk drive in order for you to use BEX.

Refer to the Interface Guide, Section 1 on the Apple IIgs for information on connecting 3.5 inch drives to your system. If you are going to do a lot of work with 3.5 inch disks, you may want to purchase a full featured version of AmDOS at $20 US--check Appendix 5 for the address.

AmDOS gets around the 400K limitation in DOS 3.3 by dividing each 800K disk drive into two 400K disks. (It's yet another virtual drive scheme!) Even though the two 400K disks are physically on the same magnetic medium, they are treated as if they were two totally separate disks. The tricky part is how these 400K disks are addressed: both drive numbers on the first disk drive are always odd, and on the second disk drive they're always even.

Suppose your 3.5 inch disk controller card is plugged into slot 5. AmDOS treats the first 3.5 inch disk drive as if it were two distinct 400K drives: one in slot 5, drive 1 and the other in slot 5, drive 3. When you have a second 3.5 inch disk drive, then AmDOS addresses that 800K disk as two 400K disks, one in slot 5, drive 2, the other as slot 5, drive 4. This system has two potentially confusing aspects: one physical disk drive is divided into two addresses; and, the drives are not numbered sequentially. Fortunately, you only have to supply the full address to BEX when you configure; from then on, you can use BEX's single virtual drive number.

() Apple IIgs: When you have two 3.5 inch disk drives, you must modify a Control Panel setting to access the second disk drive. The bottom item on the Control Panel is RAM Drives: set both the minimum and maximum size to zero. You must turn off the power for this change to take effect. If you don't do this, then the IIgs will hide the second 3.5 inch disk drive.

Configuring BEX with 3.5 Inch Disk Drives

Let's say you have two disk drives in your system: one 5.25 inch floppy drive in slot 6, drive 1, and one 3.5 inch drive in slot 5, drive 1. You could configure this way:

Virtual drive 1: slot 6, drive 1

Virtual drive 2: slot 5, drive 1

Virtual drive 3: slot 5, drive 3

In this sample, your default data drive is virtual drive 3, one half of the disk in the 3.5 inch disk drive. And that information is always going to be on that half of the 3.5 inch disk. Suppose you established a different configuration that reversed the virtual drive numbers for the 3.5 inch disk, like this:

Virtual drive 1: slot 6, drive 1

Virtual drive 2: slot 5, drive 3

Virtual drive 3: slot 5, drive 1

You write a chapter on drive 3 in the first system. To print that same chapter with the second system, you look on drive 2.

Initializing and Using 3.5 Inch Disks

Once the AmDOS software is loaded into the Apple's memory, you can no longer initialize 5.25 inch floppy disks. So, it's important to understand when BEX loads the AmDOS software. There are two Starting Menu actions that make BEX load the AmDOS software:

You initialize a 3.5 inch disk using option I - Initialize disks. When you supply a virtual drive number corresponding to the 3.5 inch controller card, BEX realizes that you need AmDOS, and loads it. With the sample configuration above, after you start initializing, entering 2 or 3 at the Which drive? prompt loads AmDOS.

() Caution! AmDOS initializes both 400K drives at the same time. In our example here, initializing either drive 2 or drive 3 results in initializing both of them.

Once you have initialized a 3.5 inch disk, you can no longer initialize 5.25 inch disks until you reboot. You can't copy 5.25 inch disks either, because the first step in BEX's Copy disks is to initialize the target disk.

The other action that loads AmDOS is when you move from the Starting to the Main Menu. When you have done either of these actions, you simply can't initialize 5.25 inch disks. Therefore, before you begin using a configuration that includes 3.5 inch disks, sit down and initialize a stack of floppy disks! If you must initialize a floppy disk after AmDOS is loaded, then save your data and reboot BEX.

Can't copy entire disks

Besides the initializing disks issue, there's just one limitation on BEX use with 3.5 inch drives. You can not use option C - Copy disks to make copies of 3.5 inch AmDOS disks. (You can only use Copy disks for 5.25 inch floppies before you load AmDOS.) To get material on or off a 3.5 inch disk you must use the normal machinery of BEX (copy chapters, translation, replacing, etc.) or use FID. To use FID, AmDOS must be already loaded. All you need to do is move to the Main Menu and then move back to the Starting Menu and press F.

Textfiles and 3.5 inch disks

Option R - Read textfiles to chapters on BEX's Second Menu can read ProDOS textfiles stored on ProDOS 3.5 inch disks. With our sample, you would insert the ProDOS disk in the 3.5 inch drive, then enter either virtual drive number 2 or 3 when BEX prompts for the textfile to read. You can Read the textfile to a RAM drive, to the Ready chapter, or to a DOS 3.3 floppy disk. As mentioned in User Level 10, however, BEX can only read ProDOS textfiles that are stored at the root level of a ProDOS volume. If the 3.5 inch ProDOS disk was named /LETTERS BEX can read the textfile named /LETTERS/SANDY on that disk. But BEX cannot read the textfile named /LETTERS/JUNE/SANDY because the file SANDY is stored in the subdirectory named /LETTERS/JUNE/

Part 5: Sider Hard Disk

The Sider hard disk, manufactured by First Class Peripherals, is the only hard disk system supported by BEX. You can only configure a single Sider with BEX; BEX won't be able to work with additional Siders daisy chained on to the first Sider. You can configure an extended disk system that includes both auxiliary card RAM drives and the Sider. However, you can not load the Main side of BEX onto the RAM drive when your configuration includes the Sider.

With DOS 3.3, you cannot install a regular slot memory card and a Sider in the same system. The Sider disk controller card contains special patching software to work well with DOS 3.3. The regular slot memory card also patches DOS 3.3. Unfortunately, the DOS 3.3 patches are different, yet they occur at the same point in DOS. Section 13 of the Interface Guide is devoted to extensive installation instructions for the Sider, including tips on partitioning the Sider into different operating systems.

The DOS 3.3 partition of the Sider is further subdivided into numbered volumes. When you set up the Sider, you establish some number of small volumes containing approximately 140K or 528 sectors, as well as some number of large volumes containing approximately 400K or 1536 sectors. (Make sure you write down how many volumes you've created; you need the total number when you configure.) You install the Sider disk controller card in slot 7. The full address of Sider's volume 28, for example, is slot 7, drive 1, volume 28.

However, when you configure the Sider, you do not establish a distinct virtual drive number for each Sider volume. Instead, you enter one virtual drive number for the slot and drive of the Sider's disk controller card, and then provide the total number of DOS 3.3 volumes. You also provide the volume numbers for the Boot and Main sides of BEX.

Configuring the Sider

Once BEX has the Sider volume numbers, it automatically generates a list that pairs a virtual drive number with the Sider's volume number. Since the BEX Main program is contained on the Sider, you must make the Sider virtual drive 1. Since the Sider is usually installed in slot 7, virtual drive 1 is slot 7, drive 1. Here's the end of a sample configuration dialogue, after you've answered all the printer questions:
Do you have an extended disk system? Y <CR>
Virtual drive 1 is for the Main disk program disk.
For virtual drive 1
Enter slot: 7 <CR>
Sider Hard Disk
How many volumes: 48 <CR>
Boot side volume: 2 <CR>
Main side volume: 3 <CR>
For virtual drive 49
Enter slot: 6 <CR>
Enter drive: 1 <CR>
For virtual drive 50
Enter slot: 6 <CR>
Enter drive: 2 <CR>
For virtual drive 51
Enter slot: 0 <CR>
Enter a name for this configuration: SIDER <CR>

For the question about how many volumes, use the number from the Sider initialization (the sum of the small and large DOS 3.3 volumes). For the questions about the boot side volume and the main side volume, give the volume numbers where you copied the program disks. From that point on, you answer the virtual drive number questions as always.

Using the Sider

Whenever you boot from the Sider, you are presented with the Sider's Master Menu, which has seven choices. The default choice is number 3, Boot from DOS partition. Press <CR>, and you run the DOS 3.3 HELLO program. Following the instructions from the Interface Guide, you have modified this HELLO program to run BEX. So after you press <CR> at the Sider's Master Menu, the next thing you hear is your old friend BEX saying Enter configuration:

Moving between the Main and Starting Menus is the same as always: press <space>.

BEX treats each volume in the Sider as a separate disk drive. In the sample configuration, the default data drive is a floppy drive, virtual number 50. Virtual drives 2 through 48 are all Sider volumes, virtual drive 49 is also a floppy disk drive. As always, virtual drive 1 is the program disk. When you're at the Main, Second, or Page Menus, virtual drive 1 is redirected to the Sider volume containing the Main programs. When you're at the Starting Menu, virtual drive 1 is redirected to the Sider volume contains the Boot programs. See Part 3 of this Section, Redirecting Virtual Drive 1 at the Starting Menu for an explanation of what's going on.

Of course, it may take some time to get used to having many megabytes of storage on a hard disk at your disposal. Automatic procedure chapters, discussed in Section 8, are particularly handy tools when combined with the Sider. Section 4, Working with Chapters, discusses some Master Level features that help you keep track of all those Sider volumes.

Operating System Differences

BEX uses a patched DOS 3.3 that speeds up disk access. The Sider uses a more conventional version of DOS 3.3. You will notice that some accesses to floppy disks are slower on the Sider. On the Sider, you do not get the free sector count at the top of a catalog. But you can enter number sign at any BEX menu to obtain the free sector count on any of your virtual drives.

Part 6: Four Sample Configurations

The following four samples are based on Apple systems we use here at Raised Dot Computing. You will notice that, where possible, we load the Main side software on a RAM drive. This maneuver so speeds up the system that it's irresistible.

MB Apple IIe with four virtual drives

Combining a regular slot memory card with two floppy disks, this set-up is excellent for massive data manipulation with Contextual Replace. With a one megabyte card, you can copy BEX to the RAM drive and have plenty of room left for your data.

Virtual Drive 1: slot 5, drive 1 (Apple Memory Card)

Virtual Drive 2: slot 6, drive 1 (floppy drive 1 and booting drive)

Virtual Drive 3: slot 6, drive 2 (floppy drive 2)

MB Apple IIgs with eight virtual drives

The one megabyte of memory in the IIgs' memory expansion slot is divided into five RAM drives, attached to slot 3. A single 3.5 inch disk drive becomes two virtual drives; the 5.25 inch drive is basically only used to boot the system. In this configuration, the booting drive and the default data drive are the same.

521K Apple IIe with hard disk

In this configuration the Sider comes first, then the RAM drives, and then the floppy drives. You cannot load the Main side software onto a RAM drive when you boot from a Sider.

Virtual Drive 1: slot 7, drive 1 (Sider Hard Disk, booting and program drive)

Number of volumes: 43

Boot side volume: 2

Main side volume: 3

Virtual Drive 44: slot 3, drive 1 (RAM drive 1)

Virtual Drive 45: slot 3, drive 2 (RAM drive 2)

Virtual Drive 46: slot 3, drive 3 (RAM drive 3)

Virtual Drive 47: slot 6, drive 1 (floppy drive 1)

Virtual Drive 48: slot 6, drive 2 (floppy drive 2)

512K Apple IIc with four virtual drives

The Z-RAM from Applied Engineering acts just like an auxiliary slot memory card. With the Main side loaded in RAM, you only need to use the internal disk drive. This makes the Apple IIc reasonably portable.

Virtual Drive 1: slot 3, drive 1 (RAM drive 1)

Virtual Drive 2: slot 3, drive 2 (RAM drive 2)

Virtual Drive 3: slot 3, drive 3 (RAM drive 3)

Virtual Drive 4: slot 6, drive 1 (internal floppy drive and booting drive)

Section 4: Specifying Chapters

With the many drives that are available at the Master Level, knowledge of how to specify chapters and alter chapter names becomes all the more important. In this Section we discuss the many ways of specifying chapters. In Part 1 we review methods of chapter selection introduced in User Level Section 4, Part 1. In Part 2 we introduce two new target chapter naming methods. In Part 3 we discuss two methods of managing your data.

Part 1: The Chapter Prompt

Like most prompts at the Master Level, the prompts for chapters are quite short. BEX simply asks for Chapter: or Target chapter: or Naming method: For selecting chapters, all the User Level possibilities are available, with several features unique to the Master Level. We have already discussed how you can answer the chapter prompt with the right bracket to indicate that you are using the Ready chapter. You can have more than two disk drives at the Master Level. This means that you can answer the chapter prompt with 7CHAPTER or 8CHAPTER assuming that you have that many drives.

Whenever you type a chapter name or naming method, BEX assumes you're writing and reading on the default data drive. When you are using an extended disk system, the disk drive numbers you use at chapter prompts are the virtual drive numbers you established in your configuration. The highest virtual drive number is always your default data drive number. When you have configured with four drives, your default data drive number is 4.

The Ready Chapter

You can indicate ] for the Ready chapter at all but one chapter prompt: option N - Name change for chapters on the Second Menu. When you specify the Ready chapter with Fix chapter directory, BEX creates 4095 character pages for each Ready page in memory. See Section 2 for further explanations.

When you enter ] at many Chapter: prompts, BEX recognizes the Ready chapter. But BEX does not recognize ] as a chapter name after it has given a numbered list for a particular drive. When you're choosing numbers from a list, then ] at the Chapter: prompt is just like pressing <CR> alone.

Summary of Chapter Selection

This chart summarizes the chapter selection features available at the Master Level:

Part 2: Target Chapter Naming Methods

All the target chapter naming methods described in the User Level are available at the Master Level. In addition, you can always use the Ready chapter as a target chapter (except at option N - Name change for chapters). In fact, you can specify the Ready chapter when you use I to individually name the target chapters. At the Master Level, there are two additional naming method options: drive number 0 and the period prefix.

Disk Number Zero

Using drive number 0 in a target chapter naming method directs each target chapter to its home drive, the same drive as the source chapter generating it. For example, suppose you specify source chapters on both drive 2 and drive 3 and use naming method 0S. Each source chapter generates a target chapter by the same name on the same drive and thus overwrites itself. Drive number 0 is always available when you are naming one or more target chapters. However, it is most useful when you have specified source chapters from more than one drive.

The Period Prefix

The period prefix enables you to use a target chapter naming method even if you have given only one source chapter. When you have more than one source chapter, the period has no effect, and BEX operates as if you had specified a naming method without the period. The period character goes after the drive number, if present, and before the letter that specifies the naming method. It tells BEX, "This is a naming method, not a chapter name." For example:
Chapter: MASTERPIECE
Chapter: <CR>
Target chapter: 6.S

The result is a chapter named MASTERPIECE on drive 6.

This means that you have to type a chapter's name only once in its life: when you create it. After that you can always specify it by number, and modify its name using a target chapter naming method.

Limitations of the period prefix

You cannot use the period prefix to name a target chapter in a list of individually named target chapters. When you use target code I, you must type each target name. For example, suppose you are copying chapters from drive 3, a RAM drive, to drive 8, on disk. You have a list of three chapters, and use the I naming method:
Main: C
Copy chapters
Chapter: 3 <CR>
There are 3 chapters:
1 BIOPAPER
2 ESSAY2
3 CHEM NOTES
Use entire list? N Y <CR>
Naming method: I <CR>
For chapter BIOPAPER
Target chapter: 8.S <CR>
For chapter ESSAY2
Target chapter: 8.A-2 <CR>
For chapter CHEM NOTES
Target chapter: 8LAB NOTES <CR>
BEX begins to copy the chapters, then crashes with a SYNTAX ERROR message. BEX tried to name the BIOPAPER chapter .S and DOS 3.3 won't let a filename start with a period. At this point you type RUN <CR> and copy the chapters again, typing out the names.

Section 7 discusses using the period prefix in automatic procedure chapters. The period prefix enables the same procedure to work with a list containing one chapter or with a list containing many.

Target Codes

This chart summarizes the possibilities:

Combining Scanning Methods and Target Codes

Here's an example to show what you can do when you combine scanning methods and target codes: Suppose you have chapters on three separate drives, all of which you need to use Replace characters on, and you want to keep them on the same drives. Ordinarily, you would use Replace characters three separate times, once for each drive. But by using a combination of the plus sign when scanning for chapters, and drive number 0 when specifying the target chapter naming methods, you can do it in one step.

For this example, we use three drives: drives 1 and 2 are RAM drives, and drive 3 is a 5.25 inch disk drive. There are two chapters on each drive.

First, you scan each of the three drives for the chapters that need replacing, by using the plus sign before the drive number to tell BEX to select more chapters. You choose the chapters from the numbered list, then move onto the next drive, until you have specified all the chapters. Next, BEX asks for a target chapter naming method. You could use any naming method, but you use the S naming method, to make things simple.

Here's how the dialogue looks:
Main: R
Replace
Chapter: +1 <CR>
There are 2 chapters:
1 PURPLE
2 RED
Use entire list? N Y <CR>
Select more chapters
Chapter: +2 <CR>
There are 3 chapters:
1 GREEN
2 BLUE
3 BROWN
Use entire list? N <CR>
Select chapters by number
Chapter: 1 <CR>
GREEN
Chapter: 2 <CR>
BLUE
Chapter: <CR>
Select more chapters
Chapter: 3 <CR>
There are 2 chapters:
1 YELLOW
2 BLACK
Use entire list? N Y <CR>
Naming method: 0S <CR>
Use transformation chapter: 1REPLACE <CR>
Continue? Y <CR>
Chapter PURPLE done
Chapter RED done
Chapter GREEN done
Chapter BLUE done
Chapter YELLOW done
Chapter BLACK done
Replaced 50 times

Part 3: Two Features With Whole Disk Catalog

Since you can have many disk drives at the Master Level, you need more tools to help you manage data. Two features help you with option W - Whole disk catalog on the Page Menu.

Catalog More Than One Drive

When you press W for the Whole Disk Catalog on the Page Menu, you can obtain a catalog of a range of disk drives. This feature makes it easier to keep track of the many volumes in a Sider hard disk, or of chapters in RAM drives. This feature is available at all Levels, but is most useful when you have more than two disk drives.

As when you're specifying chapters on more than one drive, you use the plus sign + to catalog more than one drive. When you press W at the Page menu, you're prompted: Which drive? followed by your default data drive number. Answer with a plus sign followed by a drive number followed by <CR>:
Page Menu: W
Whole disk catalog
Which drive? 8 +6 <CR>
through:
At this prompt, you enter the number of the highest drive you wish to catalog:
through: 8 <CR>
Disk drive 6
501 free sectors
There are 2 chapters on this disk:
CHECKS 1 pages 322 size
ADDRESS 1 pages 86 size
Grand total 408 characters
Disk drive 7
398 free sectors
There are 2 chapters on this disk:
DIARY 2 pages 8122 size
PAPER 2 pages 4586 size
Grand total 12708 characters
Disk drive 8
456 free sectors
There are 1 chapters on this disk:
DATA 4 pages 11529 size
Grand total 11529 characters

You must enter the drive numbers in ascending order; if you entered +3 <CR> through 1 <CR> you would receive a Bad range error message.

Save Whole Disk Catalog

Using ampersand & before the drive number when specifying drives with option W - Whole disk catalog on the Page Menu allows you to save the screen output of the Whole disk catalogs in a BEX chapter. When you are prompted Which drive? enter an ampersand & followed by a drive number, then press <CR>. The ampersand, like the plus sign, allows you to scan multiple drives. It invokes the through: prompt and you enter the drive number of the highest drive you wish cataloged. When the catalogs are complete, you are prompted for a chapter name. Here is an example:
Page Menu: W
Whole disk catalog
Which drive? &2 <CR>
through: 3 <CR>
Disk drive 2
87 free sectors
There are 3 chapters on this disk:
Q-SAVE 4 pages 7566 size
WW 2 pages 4956 size
LETTER 6 pages10745 size
Disk drive 3
502 free sectors
There are 1 chapters on this disk:
REPLACE 1 pages 54 size
Grand total 26227 characters
Save list as
Chapter: CAT <CR>

Chapter CAT now contains all the characters that appeared on the screen between entering 2 <CR> and the Chapter: prompt. This chapter cannot contain more than 2048 characters.

Section 5: Printing

Master Level printing features focus on some of the finer distinctions in your output. In this Section, we describe embedding $$ commands in words, controlling how lines break, and touch on embedding printer control codes in your chapter.

Part 1: The Special Spacing Commands

BEX's formatter divides your text into output lines. Before this, the lines always broke at the <space> or <CR> that defines a BEX word. <Control-S>, the sticky space token, lets you define a space that is not a word boundary. <Control-T>, the touching token, can replace the initial and final space in BEX $$ format commands.

Activating the Special Spacing Commands

Some printers use <control-S> and <control-T> as control codes; you must tell BEX when to pay attention to these two characters in your text. To have BEX recognize them, you must first activate the commands with a special format command: $$ss activates the sticky space token and the touching token (see below) for the rest of the print stream. To disable special spacing, use $$d or reload the print program. If you have entered the sticky space token and the touching token into your text but you did not enter $$ss also, no space appears between the characters surrounding the tokens.

You may want to use <control-S> or <control-T> as printer control codes in your chapter. When you do, place the $$ss after where the codes are entered in your text. Before the $$ss, the formatter sends the <control-S> and <control-T> codes through to your printer.

The Touching Token: <Control-T>

The <control-T> touching token allows you to omit the space before a $$ command, and still have that command executed. When enabled by $$ss, a <control-T> in your text allows you to embed format commands within words. Like a space or <CR>, it can introduce a format command to be recognized and executed by the formatter. The touching token is particularly useful for tricky underlining, and for superscripts and subscripts. However, the formatter does break a line at a touching token.

For example, to underline War and Peace inside of parentheses, type:
(<control-T>War and Peace<control-T>)

Recall from User Level Section 7, Part 8, that suppressing underlining before a final period, comma, semicolon, or colon happens automatically when enabled by $$sp, and does not require any fussing with <control-T>.

The Grade 2 translator treats any control character as a space. This is important to keep in mind when you are embedding BEX $$ commands within words and intend to translate this text. Suppose you want to emphasize the third syllable in the word computerized:
comput<control-T>$$eb<control-T>er<control-T>$$ec<con trol-T>ized

Since the <control-T> takes the place of the spaces required before and after any $$ command, this word prints with the third syllable in boldface. When you translate this word, the final <control-T> separates the syllable er from the format command $$eb. This separation turns the translator back on, so the translated result is
-put]iz$
But if you don't end the $$eb with <control-T> the translator is off for all the characters after the $$ until the next space. When your print is:
comput<control-T>$$eber<control-T>$$ecized
then the translator creates:
-mputerized

The Sticky Space Token: <Control-S>

The normal use of the <control-S> sticky space token is as a nonbreaking space. Enabled by $$ss, a <control-S> in your chapter is printed as a space in your output. However, the <control-S> is not treated as a word delimiter for printing. Text connected by sticky spaces is treated as one BEX word and is all printed on the same line. In other words, a <control-S> creates a space in your output that is not a space in your text.

For example, suppose a character in the story you're writing has three middle initials. It would be confusing if his name was broken between lines. when you type
General<space>Montgomery<control-S>
T.<control-S>M.<control-S>J.<control-S>
Hambone
then his full name is never broken between lines.

Writing about BEX $$ Commands Using <Control-S>

Using a program to write about itself is always a little tricky. When we write about BEX format commands, we use the sticky space token. A <control-S> sticky space before the dollar sign in a format command is not a real space. So the format command or indicator is not executed; it is appropriately spaced as an individual word in the text.

For example, when we wrote about the underline command in User Level, Section 7, we printed the command by typing: <control-S>

The sticky space token also makes it possible for us to write about the paragraph token with its parentheses: ( $p ) is typed in the text as eight keystrokes: ( <control-B> S $ p <control-B> S )

Remember that each <control-S> takes two keystrokes: control-C then S.

Part 2: Discretionary Hyphens and Linebreaks

These control characters provide the formatter with ways to break a line in the middle of a word.

The Discretionary Hyphen: <ASCII 31>

Use the discretionary hyphen to tell the formatter where to place a hyphen if it breaks that word between lines. If BEX doesn't break the word between lines, it won't print the hyphen.

To enter a discretionary hyphen in your text, hold down the control key and press the hyphen. In a HI-RES screen mode, a discretionary hyphen is represented in the Editor by a small, uppercase S with a vertical line down the right side and a horizontal line underneath: much like the <ESC> character in your text. When you arrow over a discretionary hyphen, the Echo says "ASCII 31," which sounds like "As-key three one."

You can enter a discretionary hyphen manually in extra-long words in the Editor, or you can write a transformation chapter to insert a discretionary hyphen at suitable syllable boundaries. If you write a transformation chapter, be cautious. If you asked to insert <ASCII 31> before ation for example, you'd get discretionary hyphens in n-ation and st-ation, as well as longer words. Also, this works best for print chapters.

() Caution! We don't recommend translating chapters containing this control character, as the translator treats <ASCII 31> as a space. If you typed know<ASCII 31>ledge then you get "k<ASCII 31>l$ge instead of k as you should get. Take out the discretionary hyphens before translating.

You can created an auto chapter that replaces <ASCII 31> with nothing and then runs the translator. See Section 7 for instructions about creating Auto chapters.

The Discretionary Linebreak: <ASCII 30>

The discretionary line break tells the printer that it's okay to break a line at that particular spot. For print output, this is a useful command to place after hyphens, dashes, and slashes that already appear in the text. For example, the paragraph above contains the word extra-long. Placing a discretionary line break after the hyphen allows the line to break there without printing an extra hyphen.

Hold down the control key and press the number 6 to enter a discretionary line break in your text. In the Editor, a discretionary linebreak is represented by a small uppercase R with a vertical line down the right side, and a horizontal line underneath: like the discretionary hyphen and the <ESC> character. The Echo speaks a discretionary linebreak as "ASCII 30", which sounds like "as-key three zero."

You only have to do this in chapters for print output. BEX's Grade 2 translator automatically places discretionary line breaks after hyphens and before and after dashes when it translates.

Activating Discretionary Hyphens and Linebreaks

For either of these control characters to work, you have to activate them at the beginning of your chapter with a $$sd command. This is just like using $$ss to activate sticky spaces. However, you may want to use <ASCII 30> or <ASCII 31> as printer control codes in your chapter. When you do, place the $$sd after where the codes are entered in your text. Before the $$sd, the formatter sends the <ASCII 30> and <ASCII 31> codes through unmodified.

In braille chapters, you do not need to enter $$sd. All output devices configured as braillers automatically include $$sd when printing.

Part 3: Repeat a Character

The format command $$vrX repeats the character X to the end of the current line (as defined by whatever margins are in effect). X may be an underline, dash, the space character, or any other printable character. Only one $$vrX command works on any one line. Use a hard <CR>, or a paragraph ( $p ) or a new-line ( $l ) idicator to termiate the line properly. You may place other characters on the line using the $$t# tab or $$p# positioning commands.

For example, a form requires the word City at the left margin, the word State two-thirds of the way across the line, and the word ZIP almost at the right margin. Wherever words don't appear, you want underlines. With a carriage width of 65, these commands would do the trick:
City $$vr_ $$p40 State $$p53 ZIP <CR>

Kram a Word

Kram one BEX word on the right margin: $$vk is used in combination with $$vrX in tables of contets or menus. For example:
Ham and Eggs: $$vr. $$vk $1.00 <CR>

You can use the sticky space token if you want more than one word at the end of the line. For example:
Ham and Eggs: $$vr. $$vk $1.00<control-S>(Fridays<control-S>Only)<CR>

The sticky space makes the three words into one BEX word. They appear as three separate words in the printed text. There is a limit, however. The word you have crammed to the right margin with $$vk cannot be more than 32 characters

Part 4: Embedding Printer Control Commands in Your Text

Many printers allow you to print fun things like boldface fonts, superscripts, subscripts and foreign language letters; you can change line spacing, use fancy vertical tabs, and turn on headline mode. Diligent study of your printer manual will yield what characters you need to enter to print these wonders. Since you can type any ASCII character in a chapter, it's easy to embed the commands into your text: you just type them in like regular BEX words. BEX doesn't recognize them as commands, and sends them through to your printer. Once the printer gets them it starts doing the fancy stuff.

However, since BEX doesn't recognized the embedded printer control characters as commands, there are some drawbacks. The formatter counts these embedded commands as characters on the line: it doesn't know your printer won't print them. So, the printer control commands take up space on the line; the amount of space depends on the length of the command. When the commands are more than a couple characters, the lines containing the commands are noticeably shorter. You cannot solve this problem with a $$p# command; BEX formats each line before the printer gets it, so if you position the next word back over the control command, the command is erased and the printer never receives it. One solution for this is to use the $$eX command, disussed in the next Part.

Another drawback is that some printers default to normal print after every <CR>, which is usually at the end of every line. Every time characters printed with the control command are broken between lines, the characters on the second line revert back to normal. Also in this case BEX cannot help you.

() Caution! Printer control commands are treated like spaces in the Grade 2 translator. Remove them from your text before you translate. If you don't remove them from your text, they may cause translation errors.

When your printer control commands include characters such as <ASCII 30>, <ASCII 31>, <control-S> or <control-T>, your printer will not receive them if $$ss or $$sd is active. When you need to deactivate the commands in order to send a control command to your printer, you must reset the formatter to default with $$d.

Part 5: Using a Specific Printer

When you define a printer in your configuration, you have seven printer classes to choose from. When you declare your printer as a specific printer, you can make use of 11 more format commands. These format commands control boldface, superscripts, subscripts, and other tasks. The essential difference between generic and specific printers is that BEX can command a printer configured as specific to execute these special tasks.

In all, there are five possible tasks. The various tasks are listed below. Your printer may not support all five, so you still have to refer to your printer manual. For example, the original Apple ImageWriter does not support subscripts and superscripts. BEX ignores any request for subscripts or superscripts sent to an original ImageWriter.

How does BEX know what codes to send? When you define a printer as specific in your configuration, BEX reads the control code information for your specific printer from the PRINTERS chapter on the Boot side into your configuration chapter. This information is read into your computer's memory when you boot BEX. Then, when the formatter encounters any of the 11 $$eX commands in your text, it reads the specific control code from memory, and executes it. It is possible to alter the PRINTERS chapter to suit your taste. For example, while BEX defines $$e0 as 10 pitch for any specific printer, you could modify the table to make $$e0 mean headline mode. Altering the PRINTERS chapter is discussed in Part 6.

Printer Features Supported

You enter $$eX format commands in your text; BEX transforms into the appropriate printer control codes. The commands control the following features:

Not every printer has the ability to execute every one of these features. When the printer is not capable of executing a format command, then BEX doesn't send out any codes to the printer.

In contrast with putting your printer's own escape codes right in your text, using a $$eX command accomplishes the task very cleanly. In particular, the code that your printer gets from a $$eX command may contain several control characters, but the $$eX command does not increase the formatter's character count for the line of output. Thus the formatter considers only the characters of text when it decides where to break lines.

Also, any $$eX command in your text gets appropriate handling no matter what kind of printing device you are using. They do nit affect printing to the screen, voice and video review mode, etc. The same $$eX command has the appropriate result with whichever specific printer you use (as long as the particular task works on that specific printer). So you get the advantages of exotic printer codes without having to change your text for different printing devices. What's more you do not even have to know the printer's escape codes, except for deciding how to declare your printer in your configuration.

The $$eX commands do not work in running headers or footers. When you need bold type in a running header or footer, you have to include the appropriate escape sequence in your text, and not a $$eX command.

For a list of printers supported by BEX, see Section 4 of the Interface Guide. Part 6 tells how to add a new printer to the list of specific printers by modifying the PRINTERS chapter.

Configuring a Specific Printer

There is room in a configuration for only one list of escape codes. This means that you cannot configure one printer to be an Apple ImageWriter and another printer to be a Diablo 630. You can set up two different configurations, one for the ImageWriter and a second configuration for the Diablo.

However, you can configure two different printers in one configuration when one of the printers is configured as a generic printer. For example, configuring a Diablo as a specific printer plus an ImageWriter as a generic printer is okay in one configuration.

When you want to configure a specific printer, answer S when BEX prompts for a printer class. You are then asked Is this a dot matrix printer? Answer N for a daisy wheel printer. When BEX prompts Enter printer code: press <CR> for your choices. In Part 6 we explain how you can add a specific printer in the PRINTERS chapter. When you do, its number is automatically added to the list of specific printer codes.

When Your Printer is not Listed

There are hundreds of printers on the market. Obviously, this list only covers a small number of printers. If your printer is not on this list, it is probably compatible with one of the listed printers. Check your printer manual. You may find an explicit statement of compatibility or printer emulation. When the manual says a printer emulates an FX-80, for example, then configure it as an FX-80.

When your printer manual is lacking any statement of compatibility, it still may be compatible. You will have to do some research in your printer manual. First, look up the control codes for underlining and bold face printing in your printer manual. Next, boot up BEX and use option P - Printer control code display. Choose the type of printer, dot matrix or letter quality. As BEX lists each printer and its control codes, compare the codes to those of your own printer. When you find one that has codes that match perfectly with those of your printer, make note of that printer. Configure your printer as a class S - Specific printer, using that name. Everything should work well. When no listed printer is completely compatible, see Part 6: Adding your Printer to the List.

Specific Printer Commands

Eleven BEX $$ commands begin with $$e. These commands signal BEX to send out the printer control codes from the PRINTERS table. The letter e is a mnemonic for the fact that these commands usually generate escape codes for your printer. The letter X represents the number or letter for each specific command. All $$eX commands are suppressed when sent to any printer class except printers configured as a class S - Specific printer. For commands represented by letters, BEX uses the next letter in the alphabet for the "off" command. For example, $$eb is turn on boldface, and $$ec is turn off boldface.

Changing characters per inch

Only the following three values for the number of characters per inch (cpi) are supported:

These commands behave very differently from the conventionaland commands. The Grade 2 translator cannot use their appearance to place italics signs, and they are not affected by the $$sp special punctuation mode mentioned previously. In general, useand where ever possible.

However, two situations call for using the escape code underlining: when your printer does not interpret control-H to mean "back up one character" (some dot-matrix printers fall in this class) or if you're printing a form with many characters underlined and desire speedier output.

Printer commands and the touching token

Many applications of subscript and superscript will require using the touching token. Here's an example using subscripts:
H<control-T> $$el 2<control-T> $$em<control-T>O
(in words, that's uppercase Have, subscript, the digit 2, stop subscript, uppercase O; otherwise known as the formula for water).

Part 6: Adding Your Printer to the List

Option P - Printer control code display on the Starting Menu prints the contents of the PRINTERS chapter to the HI-RES screen. For clearer voice output BEX spells each entry, using the arrowing vocabulary. BEX prints the table entries in order. Press <space> for the next printer; press <ESC> to return to the Starting Menu. When your printer does not match any of these combinations, do not panic. You can add to the table in BEX that contains the specific printer control codes.

The chapter called PRINTERS on the Boot side of your BEX disk contains the escape codes for the specific printers. You can inspect and add to these lists. To get a list of the escape commands for supported printers, use option P - Printer control code display on the Starting Menu. This prints the contents of chapter PRINTERS:
Starting: P
This option displays the control
sequences for different brand name
printers.
Display codes for Dot Matrix?
Answer Y to this prompt only when you have a dot matrix printer. When you have a daisy wheel printer, answer N to this prompt. For example, answer Y when you have an ImageWriter; you answer N when you have a Diablo 630. Consult your printer manual if you are unsure about your type of printer.
After you answer the dot matrix question, BEX displays the list of control codes for each printer. If any command is not available for that printer, BEX tells you. You press any key to move to the next printer listed.

To add your printer to the PRINTERS chapter, first make a backup copy of PRINTERS. Treat chapter PRINTERS like any other BEX chapter. Use the Editor to change the PRINTERS chapter. Page one is for letter quality printers, page two is for dot matrix printers. Page three is for the Apple LaserWriter Postscript Driver. If you're interested in how this works, write us for details.

Each item in the table is separated by a delete character. The end of the table is indicated by two backslashes. Each printer name starts with a backslash. To add a new printer to the list, delete the last backslash, then type in the printer codes. Type the codes in the order listed below. After each item, enter <DEL>. When the printer does not support a feature, enter <DEL> alone for that item.

To make it easier, make a block copy of one printer's list as an outline for your own, and clipboard it onto the end of the list. When you do this, make sure you have altered each entry. End the page with <DEL> for the last entry, then two backslashes to signal the end of the list: <DEL>\\

Here are the fourteen items required for each printer:

There are 14 delete characters in each printer's entry. Don't forget to finish the page with <DEL> and double backslash. Once you are sure you have the right codes in the table formatted properly, set up a new configuration referencing your specific printer.

You have two tests to see if you've entered the codes correctly: The first is to see if option P - Printer control code display on the Starting Menu lists your printer. This means BEX can use the table, because you've entered the correct number of <DEL>s and backslashes. The second test is in using your printer. Only by using your printer will you know for sure that you have entered the right codes.

As we mentioned at the start, BEX uses the entries from this table when it executes all $$eX commands. For example, the third entry, 10 characters per inch, defines what BEX sends to your printer as it executes the $$e0 command. If you want to, you can enter the escape codes that start double wide printing in place of the codes for ten characters per inch. When you do, $$e0 turns on double wide printing for that printer.