SCLU
SCreen Layout Utility

SCLU ("skloo") is a neat little utility program which allows you to quickly and easily design 40 column screens of text. Using the SCLU editor, you simply type the text onto the screen as you want it to appear in your BASIC program. The editor allows you to enter normal, inverse, flashing and MouseText characters. (More about MouseText below.)  It also has several word-processor-like commands to help you design your screen. When you are finished, you quit the editor with <esc>, and SCLU will translate what you have typed on the screen into lines of BASIC code. These lines of BASIC are written into a text file that you can then EXEC to enter them into any BASIC program. SCLU lets you experiment with a variety of screen layouts, without having continually to "round trip" between editing and testing your program. SCLU is useful for designing more-or-less elaborate "title page" screens, and for situations that call for one or a few screenfuls of neatly formatted text.

The SCLU editor:
A brief summary of the editor's commands appears on SCLU's title page. Here is a full description of the SCLU editor:

Control-N:
Text entered will be normal.

Control-I:
Text will be inverse; only upper case can be entered (the 40 column mode firmware doesn't allow lower case inverse).

Control-F:
Text will be flashing; upper case only.

Control-A:
("A" for "Apple".) Text will be MouseText. Note that the 40 column firmware doesn't allow both flashing and MouseText characters on the same screen.

Arrow keys:
Move the cursor; II+ users will have to use control-K/control-J in place of the up/down arrow keys.

<Return>:
Moves the cursor to the beginning of the next line; doesn't effect the content of either line.

Control-P:
("Push/Pull") Enter insert mode; text to the right of the cursor will be pushed forward when new text is entered. If a character is deleted, text to the right of the delete will be pulled back. This mode is usually off, and will be turned off by using any arrow key or <return>. Because SCLU is in BASIC, it's pretty slow while in insert mode.

<Delete>/Control-D:
Delete character to the left of the cursor; with pull-back if the control-P insert mode is active. II+ users can use control-D in place of the <delete> key. Deleting resets the text mode to normal.

Control-B:
("Beginning") Cursor jumps to the left-hand side of the screen.

Control-E:
("End") Cursor jumps to the right of the last character on the line.

Control-S:
("Shorten") All text to the right of the cursor is erased.

Control-Z:
("Zip") The character to the left of the cursor is repeated to the right-hand edge of the screen. This is useful for drawing the tops and bottoms of boxes. Typing a space and control-Z can be used to jump the cursor to the right-hand side of the screen.

Control-L:
("Lift/Lower") If you've entered a line of text and then decide it should be lower or higher on the screen, you can move it by first pressing Control-L and then the up or down arrow key. The line the cursor is on will be erased and re-written on the next line up (if you pressed up-arrow) or down (down-arrow). The line that was previously in the next-up or next-down position will be replaced by the line you are moving.

Control-G:
A "GET G$" will be executed at the cursor's position. This will appear on the editor's screen as an un-blinking cursor character. Only one Control-G is allowed on a page.

Control-C and Control-T
("C" for "Commands" and "T" for "Title Screen".) Either of these control keys will do the same thing: display the title screen with its list of editor commands to jog your memory. You can then press <return> to return to the screen you were working on. There are two control key options for this command to make it harder to forget. (I couldn't use Control-H(elp), because a Control-H is a backspace.)

<Esc>:
Quit the editor. You will be prompted with "DONE? Y/N".


The SCLU "translator":
When you exit from the editor, SCLU prompts you for the starting line number for the program lines it will create, the amount by which to increment the line numbers, and the name to use for the text file it will write the lines to. If SCLU detects that it is running under ProDOS, it will have a default file name for the EXEC file it creates of "/RAM/SCLU.FILE". If your Apple has a RAM disk, you can press <return> at the file name prompt to accept this name. The translating of your screen layout into BASIC may take a minute or two. After completing the translation, SCLU removes itself from memory. You can then LOAD the program that you want the SCLU-written code added to, and EXEC the file SCLU has created.

The BASIC lines that SCLU writes will not always be the most efficient possible. It may use a "NORMAL: PRINT SPC ( xx)" where an "HTAB yy" would be more sensible, for example. Just goes to show that, in this case at least, programmers are smarter than programs. SCLU's code will, however, (barring bugs) do the job of recreating your screen design.

Limits:
SCLU can't handle absolutely all possible screen displays. For example, if you fill a screen line with alternating MouseText and normal characters, SCLU will crash with a "STRING TOO LONG" error. Other overly fancy shenanigans may cause SCLU to write an illegally long BASIC line. Be half-way reasonable, and SCLU won't sclu things up.

About MouseText:
As many of you will know, MouseText is a set of graphics characters available on the IIgs, IIc, and "enhanced" IIe. IIe's manufactured after March, '85 are enhanced; older IIe's need a ROM upgrade to display MouseText. I believe that all of the currently available Apple II clones have a MouseText character set. The MouseText characters consist of open and solid apples, a variety of arrows, lines for drawing boxes, etc. If you have one of the MouseText-capable machines, the title page you see when you run SCLU uses MouseText. From within a BASIC program, it can be determined whether an Apple can display MouseText with the following PEEKS: If peek(64435)<>6 then II+; no MouseText. If peek(64448)=234 then un-enhanced IIe; no MouseText. To use MouseText with SCLU, you'll need to know which letter corresponds to which MouseText character. A letter-to-MouseText listing is included on the Beagle Bros. "Peeks, Pokes and Pointers" chart, and in many Apple-oriented books and manuals. Also, if you have an Apple ImageWriter II printer, the program "IMAGE2.MOUSETXT" on this disk will print out a similar listing.

Karl Bunker
October '87