Orientation (this section written in 2007)

Congratulations, you would like to learn more about BEX. How do you figure out how this thing works? This is not easy. You need to learn a lot about the Apple 2 computer, both from conventional manuals and from the BEX documentation. BEX is like Swiss cheese. So much happens in assembly language. In fact, it was the existence of the "permenant" assembly language segment INOUT.BIN that is the key technology that made the difference between BRAILLE-EDIT and BEX.

Since one person wrote and maintained the code, there was no need for extensive documentation. In fact, versions of this document were all David Holladay needed to keep details of the software straight, Now, 25 years later, and it takes a little searching around to see how this all works.

Several disks in this collection contain source code. If you do a catalog, you see the files MXFLS and ASM.CODE. Taken together, these are the LISA assembler. In the assembler, source code is located starting at $1800. The object code is at $800-$17FF. Thus, modules are limited to 1000 hex long. In BEX, most modules are stored from $7200-$81FF, which is 1000 hex long.

Boot a source code disk, at the DOS prompt, type BRUN MXFLS. The Lisa assembler is run. It has an exclamation point (!) prompt. At the prompt, type LOAD (file name). You can assemble the file by entering A followed by Enter. To save the object code, type (control-D)BSAVE QQQ,A$800,L$3FF (Enter). Of course, change the file name and the length as appropriate. In BEX, the file name of the major assembly language modules was MOD followed by a number.

In the BEX BASIC programs, the variable U contains the start of the configuration bytes. If you see PEEK(U+69), take the 69 and convert decimal to hex, and you get $45. As you see below, $1E45 contained the slot of the VersaBraille. Of course, POKE means to place a new value in a memory location. Now you can see how to read and write from parts of the BEX configuration from BASIC.

U -- location for the configuration area

UQ -- location for the messages byte, to output text to the screen and other default devices

ST -- the location $8200, the start of the page buffer (where text page is loaded)

CD -- the location $7200, the start of the current code module (notice that modules 1,2 and 3 are stored in auxillary memory to speed up disk access)

DK -- the number of disk drives in the configuration

L2 -- 0 if at the Learner level, 1 if at the User or Master Level

L3 -- 0 if at the Learner or User Level, 1 if at the Master Level

Some Locations in the Main Program


100 Main option Loop
110 POKE UQ,15: CALL EC + 24 -- This places a 15 in memory location UQ, and then executes the messages output -- this is the Main Menu prompt
390 pressed illegal option, output message 23
340 handle space for access to Start or MathematiX Menu
320 handle A, F, and T options (VersaBraille)
1800 handle Back translation
220 handle Copy chapters
6500 Disk catalog
2500 Editor
1600 Grade two translation
1680 Heading Test
1055 Mult-function Print
1000 Print
199 Quit
3000 Replace characters
360 Second Menu
350 Page Menu
8000 Remember Mode
8100 Save for Remember Mode
8200 Execute a Remember chapter
7000 select source chapter(s)
7100 load a chapter directory file in $9500
7200 load a page file in $8200
5400 select target chapter names
5500 execute a list of source and target files
999 and 9200 emergency save a page file

So how does BEX work? It has large amounts of assembly language. At anyone time, there is only one BASIC program loaded at a time. For the Main disk, there are four BASIC programs: MAIN, SECOND, PAGEMENU and TAPE-VB. These are the three menus of the Main Side of BEX.

To understand all the patches to Apple DOS 3.3, you need to make use of the book Beneath Apple DOS.

Remember, most of these notes and the source code were written about 25 years ago. A few details will be hard to come by. Good luck. The following notes are from the late 1980's.


Memory Allocation

06/10/88

Auxillary Memory allocation

Stuff in page one

2gs banks $E0 and $E1

$1E00 CONFIGURATION BYTES

06/10/88

$1F00 Configuration Bytes

Codes and Values 06/10/88

Screen Mode (Configuration Byte $1E08)

Keyboard Modes (see configuration byte $1E19)

Voice Types (see configuration byte $1E09)

Circuit Card Types(see configuration byte $1E61-$1E67)

Memory Move Items

Module numbers

Special Output Drivers (See configuration byte $1E50)

Messages

Words for Characters

Configuration Questions

General Messages

1-60 Questions

Entry Points 06/10/88

Input/Output (INOUT.BIN)

Starting Menu (START.BIN)

Auxilliary Software (AUX.BIN)

Edit Module (MOD1)

Print Modules (MOD0 and MOD2)

Replace Charaters (MOD3)

Grade Two Translator (MOD4)

Back Translator (MOD5)

Transfer To VB (MOD6)

Load From VB (MOD7)

Input through Slot (MOD8)

Textfile Read (MOD9)

Adjust Pages (MOD10)

BEX DOCUMENTATION 06/10/88

Creating BEX DOS 3.3 Disk

BEX copy protection

Every sector of a DOS 3.3 disk has three bytes which must be present for DOS to accept that a sector has been read correctly. These bytes are $D5 $AA and $AD. On a legal BEX disk, each side has one bad sector, track 2, sector 15. One that sector, the three bytes are $D5 $AD and $AD. Most of the sector contains an anti-piracy lecture. Byte $FF gives the status ($29 is pickle slicer, $A3 is master, and $18 is a copy). For a master disk, byte $FE gives the number of copies remaining. Program PUTIN on the serialization disk puts in the bad sector. Program START.BIN on the BEX boot side properly copies a BEX disk.

The serialization information is stored on the VTOC (track 17, sector 0). Bytes $07-$26 of the VTOC contain the serialization. These bytes are not used by DOS 3.3. DOS 3.3 copies these bytes when a disk is initialized or copies. The serialization data is scrambled (add 7 then exclusive or with $FF). Here is the list:

Note that after BEX is booted, a copy of the serialization information is located in the VTOC sector buffer. The location of the serialization information in DOS is $B3C2-$B3E1. If $B3E0 and $B3E1 are both zero during "hard initialization" (and a Sider is not being used) then the "interlock is set at zero. The interlock $1E37 is set at $D5 if serialization information is found and the bad sector exists. A soft initialization sets $1E17 to $D5. During a screen initialization, $1E17 is copied onto $B8E7. If $B8E7 is not $D5, then DOS cannot read floppy disk. This interlock prevents a FID copy of BEX from working.

Booting BEX

The BEX disk contains a standard DOS 3.3 modified by ProntoDOS for faster operations, and further modified to spiff up the DOS catalog header. If TEXTALKER is booted, it modified DOS as well.

First program HELLO is run. HELLO does 3 simple things: It displays a message, it POKEs some values into zero page to change the location of BASIC programs, and then loads program LOADCON. The following locations are modified:

Note that program HELLO loads into $800 and program LOADCON loads into $4000.

Program LOADCON is quite complicated. The following happens before line 20: set MAXFILES to 2 (this frees up 512 bytes of RAM $9600-$97FF), load files CHAR, INOUT.BIN, START.BIN, clear configuration area and do first scan, complain if no language card, load 3 modules into auxillary memory, decide if zippy chapter should be clobbered or not, load appropriate TEXTALKER if appropriate, reload START.BIN, and scan for Textalker patches. Next, prompt for a configuration. For the purposes of this documentation, assume that we are not setting up a new configuration. If there is a error, list configurations, and reprompt. If configuration is found, then rescan the system (CD+3), load the appropriate MESSAGES page (CD+15), and do a hard initialization (CD+18). Finally, set the Echo parameters and run program MAIN (Starting Menu)

Setting up a New Configuration

In program LOADCON, check for first character being ".", "*", or "&", set appropriate bytes $1E40 and $1E41 to set the level. Run program SETCON. Program SETCON mainly changes locations between $1E00-$1FFF (the configuration area). The QUESTIONS page is loaded in the area used by the MESSAGES page. After the configuration file is saved to disk, the appropriate MESSAGES page is reloaded, a hard initialization is done, the Echo parameters are set, and then program MAIN is run.

Accessing Disk Drives

There are two parallel ways to set the disk drive from assembly language. You can change the default drive by adjusting locations $AA68 and $AA6A, or you can directly read from the drive using the RWTS subroutine located at $BD00. BEX uses a single subroutine ($E15) to affect the appropriate locations. Location $AA68 contains the default disk drive number, and location $AA6A contains the default disk slot number. These are set up by the $E15 "Drive" routine in the I/O module. This routine translates the logical drive number into the physical slot and drive using the table located in $1FD0.

The RWTS subroutine uses a table of parameters the describe its action or reading or writing a disk sector. This table is located at $B7E8. When RWTS is used (Read textfiles, scan catalog for BEX chapters, etc.), the $E15 routine sets up some of the parameters. Then the track, sector, and buffer locations are set. Finally, the RWTS subroutine is called to do its thing. Here are the bytes in the RWTS table:

The $E15 code simultaneously sets up key bytes in the RWTS table and sets up the $AA68 and $AA6A bytes. The $E15 code deserves to be checked out line by line:

DOS PATCHES 06/10/88

Unmodified DOS 3.3

The correct entry point to the RWTS subroutine is $03D9. The RWTS subroutine reads and writes a sector of data to the floppy disk. By allowing expansions of this routine, it is possible to allow DOS 3.3 to work with additional mass storage devices. When RWTS is called, the Y register has the low byte and the A register has the high byte of the address of a table of parameters. Here is the unpatched version of the start of RWTS:

Catagories of Patches

There are three patching locations. Both the Sider and a regular slot memory card place a JMP instruction at $BD00. For this reason, a Sider hard disk and an Apple memory card cannot be placed in the same system. The RAMDRIVE program from Applied Engineering and David's Apple 2gs RAM drive program place a different JSR instruction at $B7B7. Since the Applied Engineering program cannot work on an Apple 2gs, and David's program only works on an Apple 2gs, this use of the same patching location causes absolutely no problems. Finally, AmDOS 3.5 patches DOS by placing a JMP instruction at $BD12. To my knowledge, no other DOS patch uses this location.

Sider Patch

The Sider patch does not require additional program space in DOS. At $BD00, a JMP instruction is placed to execute code in the card firmware. The card firmware examines the whole sequence of DOS patches, to find the SEI command followed by a JSR. If a patch is written that does not conform to this pattern, the Sider will crash the system. David's Apple 2gs patch had to be rewritten to work with the Sider.

Regular Slot Memory Card

The Regular slot memory card patch does not require additional program space in DOS. At $BD00, a JMP instruction is placed to execute code in the card firmware. The card is activated by a IN#5 (or whatever) command. BEX 3.0 does this automatically when it recognizes a regular slot memory card. The built in firmware disables the INIT command. BEX restores the INIT command.

Applied Engineering RAMDRIVE

The RAMDRIVE program substitutes a JSR $A583 for the JSR $BD00 at location $B7B7. The RAMDRIVE patch makes use of locations $A581 to $A5A2. According to BENEATH APPLE DOS, these areas of DOS 3.3 handle the FP and INT commands. However, there is no evidence that these commands are disabled with the use of RAMDRIVE. In the unmodified RAMDRIVE, any use of INIT disables the RAM drive patch. We supply a slightly modified version of RAMDRIVE which only clobbers the RAM drive if an attempt is made to INIT a disk in slot 3.

The actual patch at $A583 makes use of soft switches $C008, $C009, and $C073 to switch banks.

David's 2gs RAM drive

David's RAM drive patch makes use of the fact that uses ProntoDOS. The DOS in BEX does not store a copy of DOS on initialized disks. Thus the routine at $B74A is never used. The routine at $B74A is described as "Put DOS on tracks 0-2". When the patch is placed in the system, location $B74A has an RTS instruction. The actual patch is placed in $B74B.

The patch consists of placing a JSR $B74B at $B7B7. Here is the patch:

For more information, see program AUX.BIN. Location $B00C sets up the RAM drive, location $B00F is used to actually load or save a sector into the Apple 2gs memory. These routines use the programming techniques described in the Open Apple article, they switch from code executed in auxiliary memory to fully native Apple 2gs code and back again.

AmDOS 3.5

The AmDOS code places a JMP $BEAF in location $BD12. The AmDOS patch replaces the code used to initialize floppy disks. See the documentation that comes with AmDOS for details. The AmDOS routines supplied with BEX are heavily modified to make them more appropriate for use with BEX. In particular, the file AMDOS on the Main side (modified copy of AMDOS.LOAD) uses the BEX slot information in $1E61-$1E67 to determine the which slot (if any) contains a controller card for a 3.5 inch disk. Be aware that the AmDOS software checks to see if the slot contains the appropriate signiture bytes for a 3.5 inch disk drive. It is possible for a user to "force BEX" to recognize a 3.5 inch drive which AmDOS would reject.

The file AMDOS.INIT.BEX is a modified copy of AMDOS.INIT. It also cuts down on the number of prompts. The program translates the BEX drive number to the appropriate slot and drive. The initiate command "I" was changed to a space to conform to BEX. The program was modified so that it would not save a greeting BASIC program. The program was changes so it could be called as a subroutine from a BASIC program (and the BASIC program would not halt). The original version had to be run from the BASIC prompt and would halt the execution of any BASIC program if an attempt was made to run it from another program.

Gary Little, the author of AmDOS was told of these modifications, and he approved the licensing of these modified versions. The initialization program contains a message explaining how to obtain a full featured version of AmDOS 3.5.

FID changes

The copy of FID supplied with BEX has been modified to accept drive numbers from 1-6. Previously, FID only accepted a drive number of 1 or 2.

The Print Program

A Guide the Labels used in the program

This assembly language program is used by both printed output and writting textfiles. This program is also called from the Editor if you hit control-V in the Editor (to show how things look like as you are editing). This program formats for either the screen or to a slot based device.

The following locations are set up by the BASIC program Main or by other assembly language modules:

The following are buffer locations:

The following are locations in the configuration area.

The following are zero page pointers used by the print program

The locations from RMAR\\ to Z$$\F are completely reset by $$d; $$vb; or $$vt.

The following are locations inside and totally managed by this print program ((\\ means numeric value, \F means binary flag; 0=default value, 80=special value):

The following value is NOT changed by $$d et. al:

The following are various strings, conversion tables, address tables et. al used by the print program:

Still More Dox on the Print Program

- switch back to the regular print program

Misc. Stuff 06/10/88

Software Patches

TEXTALKER.OBJ for 3.1.2 is patched at $D8A2 to place three $EA (NOPs). For BEX 3.0, this patching happens automatically no matter what version of TEXTALKER is used.

SCAT.LC is $D00 in length. It loads at $8900 with $8A00-$95FF goes to $D000 language card. Location $DA03 is patched to load $C01F as the 40/80 column flag instead of SCAT internal flag. Location $D046 is patched to do nothing special for a PR#1. BEX software searches for 85 92 to know how to release control-R for use in the editor.

SCAT installs the following patches: $111 PR#; $117 IN#; $11D output character; and $123 input character

RAMDRIVE is patched at $64B5 through $64C9 to allow initializing floppy disks when RAM drive is loaded.

Lower Memory Print program

Page Two Stuff

TEXTALKER Structure TEXTALKER comes in two parts, TEXTALKER.RAM, and TEXTALKER.OBJ. TEXTALKER.RAM is a binary program that loads into $9300, and is $210 long. TEXTALKER.RAM is responsible for loading TEXTALKER.OBJ into the language card area of memory $D000-$FFFF, for installing the patches to DOS 3.3, and to maintaining the appropriate screen display. The program uses a subroutine inside the language card area of memory to locate an Echo or Cricket.

TEXTALKER.RAM Code

$BA69 patch

TEXTALKER.OBJ code

One thing I have learned is that the output code does not output to screen, it comes back to $BA88 (only for 40 column screen), apparently the program can output to 80 column screen from the LC code. Also, it does not strobe the keyboard to get a character. It only strobes the keyboard if a character is getting "lost" i.e. control-X or control-L or a screen review command.

Graphics Program Programmer's Documentation (pixCELLS) 11/11/88

STARTUP The Startup program sets the prefix to /GRAPHICS, loads the character set file /CHAR.BIN, and then does a BRUN AUX.BIN. Executing this code initializes many things:

Page 3 Values

Disk Menu Load Image

Preferences Embosser Type

Graphics Environment

KINDS File

BEX PROGRAM DEVELOPMENT

12/4/86 to 5/5/86

Bugs fixed on Feb. 2 1986 disk

Bugs created on Feb. 2 1986 disk

Bugs fixed by David on 4/10/86

Bugs fixed on 5/5/86

Bugs not fixed on 5/5/86

Features Desired

Files Changed since 12/4/85

BEX PROGRAM DEVELOPMENT 5/5/86 to 11/18/86

Cheating: Ex Post Facto Changes

New Features in BEX 2.2

Bugs Fixed in BEX 2.2

Bugs Not Fixed BY 11/18/86

Features Desired in Upcoming Suplemental disk

Files Changed Since 12/4/85

BEX Development

04/13/87 Improvements from 11/18/86 BEX to 4/1/87 BEX

Bugs and Glitches in BEX 3.0 06/13/88

Dealing with bad BEX Program disks Classified: SSTIDAAI (So Secret that I don't anything about it)

How We Make Good

For the sake of this discussion, assume that a customer has said that they totally lost one disk copy. They supply their master disk (all copied out) and 2 sets of legit copies. The Raised Dot Computing policy is to believe the customer (there are many legitimate ways in which a copy can be lost). We will supply a fresh master and 3 sets of copies, all copied out.

Notes on "Spanish Modified" BEX disks

The BEX disks have been modified to boot up with the Spanish Rules File for the SlotBuster. The Spanish rules are in a binary file on the boot side called SCAT TABLE. This table is in a special, BEX-specific format.

If you obtain a new Spanish Rules File, send us a copy. We will create an updated version of SCAT TABLE to send back to you with appropriate installation instructions. The TranscriBEX program describes a specific procedure for improving the quality of braille formatting and braille procedure. TranscriBEX chapters 8 and 17 explain how to improve the quality of braille translation. The material in these chapters can be applied to ordinary use of the BEX braille translator without using the "TranscriBEX MAKE$ transformation".

The chart on page 17-5 of the TranscriBEX manual gives the data entry codes for different accented letters. Notice that an e acute is handled differently in Frech and in Spanish. In most copies of BEX, we favor the French version. In your copies of BEX, we favor the Spanish version. Because of this change in the translator, you do not have to use the SPANISH FIX transformation described in chapter 17 of the TranscriBEX manual. To produce Spanish braille, start each chapter with the four characters space, underbar, lower case o, and space ( _o ). This switches the translator into grade one (preventing English grade two brialle contractions). For accented letters, use the entry codes shown on the chart on page 17-5 of the TranscriBEX manual. A question mark (?) comes out as a "dropped h" in the BEX translator. Spanish uses a "dropped e" for both the question mark and the upside down question mark. To get the Spanish version, enter the two characters >? for a question mark. The grade one translator takes the >? and puts in a "dropped e". The exclamation mark (!) is the same in English as in Spanish, so there is no need for any modification. We thought of modifying the BEX translator for you so that any ? became a "dropped e", but that would prevent the disks from being able to produce English braille.

On the Main Side of each of the BEX disks is a transformation chapter called ACCENT which will take text arranged for data entry and strip out the special codes for making an inkprint copy. For example, lets say you have a data file called BIOLOGY which has all the data entry codes for producing grade one Spanish braille. To make an inkprint copy with the accents placed on the words, do the following:

If you have any question about using these copies of BEX to meet your special needs, do not hesitate to contact us at our technical help line (608) 257-8833.

Producing Press Braille at National Braille Press Using RDC Software

National Braille Press can do production runs of interpoint press braille. They create the braille plates using three versions of Raised Dot Computing software: BETTE 1.40, BEX 2.1 or TranscriBEX plus BEX 2.2. RDC wants to help people take advantage of NBP's productive capacity. RDC is acting as a clearinghouse between you and NBP because we understand the software and formatting issues involved. This paper explains all the steps required:

Guidelines for Press Braille

Section 1: How NBP Creates Braille Plates

Raised Dot Computing has supplied National Braille Press with three programs: BETTE 1.40, BEX 2.1, and TranscriBEX with BEX 2.2. NBP connects an Apple 2c to its Triformation plate embossing device (PED). These plates are used to emboss press braille. While producing the plates is expensive, using the plates to emboss paper is relatively inexpensive. Press braille requires a minimum production run of 50; the cost per volume decreases with larger production runs.

Raised Dot Computing is acting as a go-between for National Braille Press. You don't send disks directly to NPB; you send them to RDC for us to check. We're interesting in encouraging this form of braille production, so we want to make sure that things go smoothly for National Braille Press. If you have any questions about how to format or how to set up your disks, please call Raised Dot Computing.

The RDC software that communicates to NBP's PED only works for a "magazine format" of 38 characters per line and 28 lines per page. The finished braille volume is 12-1/2 inches high by 10-1/2 inches wide. If you must have other formats, please contact Raised Dot Computing.

Section 2: How Press Braille Pages are Numbered

When you use RDC software to communicate with a Cranmer, MBOSS, VersaPoint or other "personal" braille printer, you don't have to concern yourself that much with page numbering. You put the appropriate format commands in your text, and the software creates the braille text line by line "on the fly."

The situation for press braille is quite different. Press braille is interpoint braille; braille appears on both sides of most sheets. Each sheet from the braille press measures 21 inches wide by 12-1/2 inches high; each "sheet" contains 4 braille "pages." After embossing, sheets are folded in half, gathered together, and stapled in the middle to create a braille volume 10-1/2 inches wide by 12-1/2 inches high. Since each sheet contains four braille pages, the number of braille pages in a volume is

divisible by four.

This fact imposes some constraints on how your text is divided into volumes, so it's important for you to understand the relationship between sheets and pages. Suppose you had a very short document, 12 braille pages long. When produced at NBP, this document would require 3 sheets. The outside sheet would contain page 1 backed with page 2 and page 11 backed with page 12. The middle sheet has page 3 backed with page 4 and page 9 backed with page 10. The inside sheet has page 5 backed with page 6 and page 7 backed with page 8. Once all three sheets are embossed, they are folded in half and stapled on the fold to create the booklet. If this concept doesn't make immediate sense to you, make a sample booklet. Take three sheets of paper, fold them in half and staple in the center fold. Now braille or write the page numbers sequentially from 1 to 12, moving from front to back in the stapled booklet. Remove the staples, and you'll find that the sheets are numbered just as described. (By the way, a booklet like this is called a "dummy" in the printing trades. Almost everyone feels like a "dummy" the first time they encounter this concept.)

Suppose your document was 14 pages long instead of 12. You can't add just 2 pages, because that would be half a sheet--there's no way to staple half a sheet. Instead, you must add another sheet, or four more pages. Fourteen pages of braille text requires 4 sheets, with two pages left blank. As it happens, press braille traditions dictate that certain pages in a volume are left blank--more details on this in section 3. All press braille volumes are made up of sheets with this pattern: on one half of the sheet, you're working up from the lowest page numbers, while on the other half, you're working down from the highest page numbers.

A comfortable size for a press braille volume is 120 braille pages, otherwise known as 30 press sheets. Fortunately, you do

have to create a physical "dummy" for work you have embossed by National Braille Press. But, you must understand two points:

Section 3: Formatting Text for NBP

Material formatted by BETTE does not print correctly with TranscriBEX, and vice versa. Note that BRAILLE-EDIT is NOT on the list. If you do not have one of these software packages, contact Raised Dot Computing. Your text must be appropriately formatted for output with a carriage width of 38 and a form length of 28. Configure a braille previewer (Video Mode Brailler) with a carriage width of 38 and a form length of 28, and use it to check your format before sending the disks anywhere. (For information on the Voice and Video or Video Mode Braillers, see: page 10 of the BETTE Manual; pages 7-2 and 7-3 of the TranscriBEX Manual; pages U6:5-9 in the User Level BEX Dox.)

Generally, your braille text is formatted for 40 or 41 cells by 25 lines; changing this to 38 cells by 28 lines can affect many things. You should make sure that long running heads still fit; you should check that the page breaks are still where you want them. If your document has a table of contents or index keyed to sequential braille page numbers, then you must recreate the table of contents or index. If you need help using the braille previewer options of your software, please contact Raised Dot Computing.

For press braille, the braille title page is embossed on the front cover; while this page is

as page 1, its page number is not embossed there. The inside front cover (page number 2) and the back cover are traditionally left blank. (You may violate this tradition if you wish, but you must loudly state that you're doing it in the Disk Diary.) This means text starts on braille page 3. You must prepare the title page for each volume as a separate disk chapter. This chapter will not have page numbering. For the first chapter of actual text in the first volume, use $$n3 or \\setnumber3 to establish the appropriate braille page numbering. (If these pages are preliminary pages, then you'll be starting with roman numeral iii instead of arabic numeral 3. This is fine, as long as you note this in the Disk Diary, detailed in section 4.)

Most braille volumes contain an inkprint title on the cover page. The inkprint is printed first, then the sheet is embossed. NBP can prepare the artwork for this if you wish; you must supply them with the title text if you want them to do this. Alternatively, you may prepare camera-ready copy for them to use. The title image area is 11 inches high by 10 inches wide; no part of the inkprint image may bleed off the edge of the sheet.

Section 4: Organizing Your Disks and the Disk Diary

Breaking your text into small chunks makes it possible for NBP to schedule work flow. When you prepare disks to send to RDC, limit each chapter to 19 braille pages. (This is less than 20,000 characters or six 3300-character

pages.)

NBP must be able to print each chapter separately. This means that all relevant format commands must be included at the beginning of each chapter. If your job is more than one volume, each volume should be on a separate disk. Usually, all pages in a multi-volume set are numbered consecutively.

Remember, though, that the first page of text in a press braille volume is always

The number of braille pages in each press braille volume is always at least two less than the total number of pages in that volume. You must start with a number divisible by four: 132, 128, 124, and 120 are good beginning places. Subtract two for the blank pages on the back of the title page and the back of the volume. The maximum number of pages containing braille text is then 130, 126, 122, or 118. When using BEX 2.0 or 2.1, use $$np to establish braille page numbering and $$n# to set the braille page number. For example, if the first chapter contains braille pages 3 through 20, the second chapter must start out: $$np$$n21.

When you are using BETTE or TranscriBEX, each chapter must begin with all the relevant \\ commands: \\bookformat or \\textbookformat, any \\runninghead or \\pp command, and the appropriate \\setnumber command. However, you do

send the \\ chapters to NBP; you always send a copy of the final formatted braille chapters. The Disk Diary: List of Disks, Chapters, and Braille Page Numbers Copy all your chapters to freshly initialized disk(s) in the order you want them printed. (NEVER send original disks: send a copy!) All chapters on the disk should be text you want embossed; don't include any other chapters. Name the chapters so each ends with a unique character indicating its order. For example SECTION-1, SECTION-2, etc. or PART-A, PART-B, PART-C, etc.

Prepare a separate chapter for the title page of each braille volume. If you have preliminary pages with distinct page numbering, then they should also be in a separate chapter. Each braille volume should be on a separate disk. Each chapter must begin with an

page number. This step helps you make sure that your text divides correctly into press braille volumes.

Prepare a Disk Diary that shows each disk and its label. For each disk, list each chapter name and the braille page numbers it creates. Note which pages are blank. If you are "breaking tradition" by putting text on the back of the title page or the back cover, clearly state this in the Disk Diary.

Here's a sample Disk Diary for a three-volume job. Each volume begins with preliminary pages with roman numeral page numbering; arabic page numbering continues throughout the job. Page numbers shown in parentheses are not embossed on the page.

Note: The last two pages of the second volume are blank, but still counted as pages 205 and 206. 206 minus 99 equals 107; 107 plus 1 (for page 99 itself) equals 108 text pages. 108 plus 8 preliminary pages equals 116 or 4 times 29. Disk Name: M. J. Prude 3 of 3

Note: The last three pages, 286 through 288, in the third volume are blank. 288 minus 207 equals 81; 81 plus 1 equals 82; 82 pages plus 6 preliminary pages equals 88 or 4 times 22. To create this Disk Diary, you must print each chapter to the preview brailler and note the starting and ending braille pages. (When you're using BETTE or TranscriBEX, make sure you check each chapter

If you print two chapters in a row, then the format information from the first carries over to the second. You must be sure that each chapter can stand on its own--you must clear information in the print formatter in between chapters.

Here's a quick way to do this: after you print a chapter, choose option E at the Main Menu. Just press Return when prompted for a chapter to edit, then choose P again. This

the Print program into memory, so you start out with a clean slate.)

With a label like "1 of 3," each disk clearly states how many disks comprise the job. There's also no doubt about what order the chapters should be printed in.

You must provide both print and braille versions of the Disk Diary when you send your disks to Raised Dot Computing.

Section 5: Calling for an Estimate

When (and only when) you have created your Disk Diary, you have enough information to call for an estimate. Call National Braille Press at 617-266-6160 and ask to speak with Phyllis Campana. Tell her the specifics of the job: how many braille pages divided into how many volumes; approximately when the disks will be sent to RDC; if you want a press proof; if you want NBP to proofread; when you need the final volumes.

She can prepare an estimate for various quantities. To save both of you time, ask for a range of estimates to cover the possibilities. For example, if you think you probably need 100 copies of a document, ask for estimates for 75, 100, 125, and 150. If you request it, you may obtain a press proof. This is a single copy of each page made (manually) from the punched plates. A press proof is additional, so be sure to mention that you want it when you call for an estimate.

If you do wish to change something, be aware that you will be charged to repunch the plate. Alternatively, you may pay NBP to proofread for you. If you decide midway through a job to cancel, NBP must still be compensated for the time, effort, and materials used. This "kill fee" is normally 50% of the estimate.

Section 6: Send Disks to RDC

To facilitate the whole process, RDC

check the disk(s) before we send them to NBP. RDC is checking for any software-related problems and major formatting irregularities. we are just making sure that you've understood how to format it correctly. After you've sent us disks, please don't call us with "just a few changes on page 36." We consider the text you send to us as your unalterable version.

If we encounter any trouble with your disk, we will notify you of the problem. Do not send a disk to NBP without clearing it with us; NBP will simply send the disk back to you. When you send your disks to RDC, please include the following items: