Text content (OCR)
Releasing the power to everyone.
. My TwoBits
Tom Welshaar
InfoWorld's John Dvorak did a two-part
series last fall on the characteristics of suc-
cessful personal computers (Oct. 15, 1984,
Page 88; Oct. 22, 1984, page 80). After ex-
amining a number of features of successful
machines and showing that all of them were
available on the failures as well, Dvorak
argued that the "real common denominator
for success’ is “heavy hobbyist enthusiasm
and subsequent third-party software
support”
Thus, Dvorak said, the successful personal
computer, "has to have an easy-to-use pro-
gramming language." He continued:
There is no successful machine (and there never will be in our lifetimes) that
cannot be programmed in Basic, the people's language.
Though Basic isnot the world’s greatest language, I submit that its ease of use
makes it the perfect helpmate for the “guy with the idea.” This means the
nonprogrammer who has an idea for a program.
He writes the Basic program and shows (maybe sells) a compiled version—
that is essentially the prototype. A sharpie can come in later and recode it. This
is the key to third-party support—support by the masses.
Although professional programmers and computer snobs won't admit it,
there are more good ideas among the 230 million U.S. laypersons than among
all the professional programmers in the world. If the masses of enthusiastic
laypersons (a subset of the general public) aren’t encouraged to support a
computer —it's dead.
The Apple Il, of course, has always had a wealth of third-party support. Dvorak
calls itand the IBM-PC the “all-time supersuccessful machines.’ And he's right.
But nearly every personal computer ever built has been able to run Basic. |
agree that any successful personal computer will have to include an easy-to-use
programming language, and Basic is also my choice, but Basic hardly divides the
successful computers from the losers. There is, in fact, another element that
separates the machines that attract technically-inclined laypeople from the
machines that can't find a market. It's not Basic and it’s not any specific hardware
feature, for many of the dead machines can match or better the successful ones in
those categories.
This mysterious factor is the willingness and ability ofthe manufacturer
to expose the inner flesh of a machine to light of day. Assuming a new
machine has a reasonable amount of features and a reasonable price, its success
with “hobbyists” (and consequently with the general public) will depend on the
quality of the information and development tools that are available to mere
mortals.
In the beginning, both Apple and IBM explained in great, readable detail how
their machines worked. At one time Apple included this information in a refer-
ence manual that came in the box with its computer. The Apple Il, of course, also
came with built-in Monitor software (examined at length in the February and
March Open-Apples), which helped thousands of people to better understand
how the machine worked.
May 1985.
Vol. 1, No. 4
Measure the latest, greatest products against this standard — the availability, to
the general public, of the information and the tools needed to build hardware and
software enhancements and to connect them to the operating system—and
you'll be able to tell whether a machine will be a success or not.
IfApple had released a decent development language and decent documenta-
tion for the Macintosh the day they announced that computer, its sales goals
would have been shattered. Even the Apple lle and flc would be in stronger
positions today if the reference manuals for those machines had been more
readily available the last two years.
While Addison-Wesley's deal to distribute Apple's manuals, reported here last
month, should vastly improve the availability of information about the Apple II to
the general public, the machine has also been hurt because newcomers with
technical questions can’t get support from Apple. Apple's current policy is that
members of the general public with technical questions should go to their
dealers.
What is the most elementary kind of technical support a dealer can
provide? Stocking the reference manuals would be one of the easiest and most
helpful things a dealer could do. But many dealers don't do even that. They say
Apple makes them buy the books fiveat a time and this meansan investmentofa
little more than $200 to keep the Ile and IIc reference manuals in stock, so they
don't doit. Many even refuse to accept special orders for the manuals. Where does
dealer-based technical support go from here? (For much more on this issue, see
the Letters in the April 1985 Byte, page 23 and following,)
The dealers and Apple can argue all they want that the general public doesn't
want detailed technical information. It is obvious that most computer users could
care less whether the microprocessor inside their machines is a 6502 ora DC-10.
But that still leaves thousands of people, none of whom are certifiable "software
developers,” who want technical information. The rapid success of Open-Apple,
the hundreds of user groups around the country, and the best-selling status of
books like Beneath Apple DOS amply demonstrate that there is a significant
market for detailed technical information about the Apple Il.
| suspect the real reason dealers and Apple's marketing wizards don’t recog-
nize the size of this markets that they don’t personally find technical information
useful. Let's face it, most sales engineers (there are notable exceptions) are
novice computer users. The resultis situations such as the one that occurred with
the ProDOS Technical Reference Manual. Apple's documentation department had
itwritten, published, and ready to ship a full month before ProDOS was released
to the public in January 1984, But by February the entire stock of books had been
sold out. Apple's “System Software Product Marketing” department apologized in
a letter to one of our readers for the difficulty he encountered in obtaining a
manual and noted, “we underestimated the demand.” Indeed, they did.
But the crux of this issue isn’t that there is a market for techncial information, it
is that the long-term success of a computer is directly related to the amount and
quality of technical information available to the general public It really doesn’t
matter whether those who desire technical information make up a significant
portion of the market for a computer, the point is that if a computer company
doesn't get and keep the technically inclined layperson interested in its
machine by providing for his or her needs, no one else will be interested in it
either.
The importance of the technically inclined layperson is twofold. First, these are
the people the general public tums to for advice about personal computers. The
word-of-mouth advertising these people can put behind a product is priceless.
Secondly, these are the people who end up writing the software, both public
domain and commercial, and designing the hardware that makes a personal
computer worth having, (Consider, for example, the impact on Apple if Dan
Bricklin and Paul Lutus, the two mere mortals who came out of nowhere to
develop VisiCalcand Apple Writer, had written programs for Atari instead.)
34 © Open-Apple
What are the limits of the Apple II's success? In an interview in InfoWorld
(April 15, 1985, page 54), Del Yocam, head of Apple's Apple II Division, said:
Thave yet to find anyone willing to put an X where he believes the Apple Il is in
its product life cycle. We really believe the Apple II can live forever. But we also
realize it is incumbent upon us to make that happen. We are putting $30 million
to $40 million into research and development for the Apple II product family to
make sure that we incorporate those things that are exciting and necessary to
keep the machine's viability intact.
For eight years now, Apple has been able to enhance the original Apple II design
and keep the machine endowed with a reasonable amount of features at a
reasonable price. For eight years now, Apple has been able to keep the technically
inclined layperson interested in its machine. Like Yocam, | really believe Apple
could continue this forever (at least in computer-time), if it does things right.
Apple broke a considerable limitation to continued interest, that of confined
extemal storage space, when it released ProDOS. Third-party developers have
broken a second major limitation, that of confined RAM, with advanced memory
cards. We'll take an extensive look at one of these and its implications in this issue
of Open-Apple. The third major limitation of the Apple II is its microprocessor,
the 6502. Typical of people’s feelings is this comment from one of our readers,
“We ask a lot of our little 6502-based Apples. Is it my imagination, or do I really
hear these little &-bit machines panting as they execute integrated software
packages such as AppleWorks?”
‘Apple appears to have enough money to break through the hardware limita-
tions of the Apple II and appears, based on Yocam’s comments, headed in that
direction. But the major question at this juncture is whether Apple has enough
sense to actively and purposefully "expose the inner flesh” of these machines to
interested members of the general public. That is the factor that has been shown
to determine the ultimate success of any personal computer, and that includes
present and future models of the venerable Apple Il.
RAMworks
transforms
AppleWorks
Apple and its dealers have become very fond of selling the tle asa “system” that
includes disk drives, a monitor, and other peripherals. While the Ile itself is still
one of the best computer buys anywhere, improved (and less expensive) versions
ofall that other stuff are widely available from third-party vendors. Notice that First
Class Peripheral's 10 megabyte hard drive (reviewed here in February, page 10) is
$30 cheaper than Apple’s DuoDisk floppy and you'll quickly get the picture.
Right now Apple's competition is particularly fierce in the area of extended
memory 80-column cards. Apple sells two versions of its own extended memory
‘card, Both include 64K of RAM (bringing the fles they're installed on up to 128K).
‘The difference between the two cards is that one has the necessary connections
for attaching an RGB color monitor to the computer (more about RGB later in this
letter); the other doesn’t. Since the price difference between the two cards is a
mere $4 ($295 vs $299), it appears at first glance that the "AppleColor Card" is a
steal not to be missed.
For just $179, however, you can buy a card from Applied Engineering (P.O. Box
798, Carrollton, Texas 75006; support and credit card orders: 214-492-2027, 8
am to 11 pm central time, seven days a week) that does what Apple's standard
card does, but hasa fewextra capabilities. First of all, an RGB option can be added
to the card later, when and if you need it, for $129 ($308 total; $9 more than the
AppleColor Card).
More importantly, however, the amount of memory on Applied Engineering's
card, which is called RAMworks, can be increased at any time (in 64K and 256K
increments) up to 1 megabyte (1,024K). Apple's card, on the other hand, can’t
expand.
y expanding the amount of memory in your Apple Ile you can tum it from a
meek little machine built around 8-year-old technology into an incredible power-
Vol. 1, No.4
house that amazes everyone. Old-timers may not believe this reincarnation is
possible, however, because of a major problem extended memory cards for the
Apple Il have had in the past—there was precious little software around that
actually used them.
People who bought these cards expecting Applesoft to allow larger programs
were always disappointed; Applesoft was designed for a maximum of 48K of RAM
and isn't ever going to be able to use more than that unless someone rewrites it.
In fact, no high-level language for the Apple I! that I know of has built-in support
for more than 128K of memory.
This leaves essentially four ways to take advantage of an extended
memory card.
First, you can write your own assembly language programs that use it. This is
pretty rare, but it happens.
Less rare, but not by much, are commercial programs that look for extended
memory and use it when it's available. A good example of existing software that
does this is MagiCalc (sold by user groups under the names JACcalc and The
Spreadsheet). The reason this kind of software is rare is that extended memory
cards from different manufacturers are usually incompatible with each other. Up
till now, no single manufacturer has sold enough cards to seta standard.
Third, you can use an extended memory card as a RAMAisk. This makes the
card act like a very fast disk drive. Such drives have their limits, however — data
stored on a RAMdisk can't survive a power failure. RAMdisk users have to copy all
the files they're working on to the RAMAisk after tumiing the computer on, and, if
the files are changed, save them back to floppy before tuming the computer off.
An additional problem is that most commercial software, especially the copy
protected kind, provides no way to connect or use a RAMdisk, even when lots of
RAM is available. On the other hand, a RAMdisk can be used to enhance the
performance of high level languages. One way to create a large Basic program is
to break it into pieces, store the pieces on a RAMdisk, and use Basic-system’s
CHAIN command to switch among the pieces when necessary. Ifswitching s kept
toaminimum, the program will execute only slightly slower than normal, because
RAMdisks are so fast. This technique can also be used with DOS 3.3, but the
procedure for CHAINing under DOS 3.3 is more complicated.
The fourth way to use extended memory is to modify existing commercial
software so that it recognizes and uses all of the memory available. Applied
Engineering's RAMworks comes with a disk of modifications for AppleWorks. Itis
this particular combination of AppleWorks, RAMworks, and Applied Engineering's
AppleWorks patches that suddenly make memory expansion on the Apple Il a
wonder to behold.
Tounderstand the power of this combination, you have to know a little
about AppleWorks. AppleWorks provides its users with a “desktop” onto which
files can be placed. These files can be spreadsheet files, word processor files, or
data base files. Up to 12 files can be placed on the desktop at once. By using a
builtin “clipboard”, data can be moved between files of the same type. Data can
also be moved from any kind offile into the word processor. But more importantly,
when two files are on the desktop, a user can switch between them without having
to waste time saving or loading either. Ifyou've ever been working on a document
with a word processor and needed to refer to numbers in aspreadsheet, you know
how time consuming switching data and programs can be.
But with AppleWorks and RAMworks, the switch can be instantaneous. Here's a
real example. Over the past few years, I've developed spreadsheet templates for
the various income tax forms I have to file. This year I was able to load all these
templates onto the AppleWorks desktop at once and switch between them
instantly. This gave me the ability to enter figures and fix mistakes in all relevant
templates at the same time, rather than trying to remember the changes I'd made
on little scraps of paper. This saved me hours of bewilderment.
Reviewers of AppleWorks have tended to concentrate on what it can't do (that
stand-alone packages can) rather than on the synergistic effects of having three
powerful programs available at the same time. | still use the more-powerful Apple
Writer for most word processing chores—but I write for a living, Each of Apple-
Works’ modules has plenty of capability for most of us and more than enough for
the rest of us.
With a 64K extended memory card in place, AppleWorks has a 55K desktop.
With a 128K card, the desktop increases to 101K.
‘The real power increase comes with a 256K RAMworks, however. At this point
you not only have a 200K desktop, but the entire AppleWorks program can be
loaded onto the card as well. Startup time increases under this option, but
response time once the program is running is immediate.
Applied Engineering sels its card with 256K of RAM already installed for $399.
The top-ofthedine card, with 1 megabyte of RAM, costs $1,199. However,
remember that when the Apple I! was introduced in 1977, 16K RAM chips cost
almost as much as 256K chips cost today. Look for the price of 256K chips to
Downloaded from www.AppleaOnline.com
May 1985
come down —the cost of filling the empty sockets on a RAMworks card will come
down with it.
The latest version (3.4) of the RAMworks software also offers users the option of
making three other changes to AppleWorks. Normally, if you choose to “let the
newinformation replace the old’ when savingan AppleWorksfile, the old file isnot
actually deleted until the new file has been saved. Because of this feature, the
largest file that can be saved on a loppy is 70K — one-half the capacity of the disk.
By opting to delete this feature, you can store 140K files on a standard floppy.
If this isn’t enough, another possibility is to let the RAMworks software modify
‘AppleWorks so that files can be larger than one disk.
The third option available increases the number of records allowed in an
AppleWorks data base file from the normal 1.350 to 4.285. Using this option, a1
megabyte RAMworks, and three files, itis feasible to have 10 to 12 thousand
records on the AppleWorks desktop at the same time.
In addition to the AppleWorks modification package, Applied Engineering
offers three other software packages that work with RAMworks, but these three
cost extra, They include RAMdisk software for ProDOS, DOS 3.3, and Pascal;
RAMAisk software for CP/M;and a VisiCalc Ile expander (up to 437K with Advanced
VisiCalc and a 512K RAMworks). People who have earlier versions of the Apple-
Works modification package can get an update by sending in their old disk and
$10.
Ifyou own an Apple lic, allis not lost. Applied Engineering has ust announced a
card that goes inside alc (somehow) and that adds both CP/M capability and up
to 512K of memory to that model. This card, which I haven't tested, comes with
both the RAMdisk and the AppleWorks modification software and costs $449 for
the 256K version or $649 for the 512K version (or $159 for CP/M alone— Pascal
freaks, add up the price of this card and the $69.95 that Borland Intemational
charges for its TurboPascal and compare it to the $250 that Apple charges for
‘Apple Pascal 12. You'll find yet another place to both save money and get higher-
quality product).
The technical details of the RAMworks card are that it has room for four
banks of memory chips. Two of these banksare on the main card and two are ona
piggy-back card that plugs into the main one. Each bank contains sockets for
eight RAM chips.
People tend to get confused at this point, because it takes eight 64K chips to
make 64K bytes of memory. The "K" used to describe RAM chipsis a count of bits
on the chips. It takes eight bits to make a byte and eight chips to make a bank of
RAM memory (chype?). The RAMworks card can use either 64K or 256K chips, as
long as you don't try to mix different sized chips ina single bank.
Thus the minimum memory configuration is one 64K bank. This can be
expanded to four 64K banks. Or you can have one or more 256K banks and one or
more 64K banks mixed together. If you already have an extended memory card of
some other type, you can pull the RAM chips off of it (they're probably the most
expensive part of the card anyhow) and put them on a RAMworks card.
‘Once the RAMworks card is in use, it is invisible to software written for 48K or
64K systems. Software that looks for a 128K Apple will find RAMworks and can
interact with it in exactly the same way as with Apple's card.
From a software standpoint, the additional memory on a RAMworks card is
organized as extra 64K auxiliary banks of memory. A program can select which
64K bank should appear by writing the desired bank number (0 through 15) to
address $C073 (49267). After the bank is selected, a program can use the built-in
auxiliary memory sofiswitches on a Ile to select the various options for reading
from or writing to the selected bank. Thus a program can transfer data between
main memory and any of the auxiliary banks by itself or by using the Apple lle's
built-in memory-move routines. Data transfers between different 64K banks,
however, must be done by using an intermediate move to main memory.
Bank zero contains the 80-column and double hi-res video pages. Video
information is always displayed from bank zero of RAMworks, even ifanother 64K
bank is active. Applied Engineering has applied for a patent on this feature.
However, when storing information on the 80-column or double hi-res video
pages, bank zero must be the active auxiliary bank, as usual,
The address RAMworks uses for selecting memory banks also triggers the
Apple II “paddle stobe”, which is used to read the paddles. This means pro-
grammers should always insert a 5 millisecond delay before trying to read the
paddle /joystick position. This should be standard programming procedure any-
how, since multiple paddle-reads without a delay can create bad reads (for the
details on this see Nibbling at the Game Paddle Port, by Peter Baum in the
October 1984 Nibble, page 100).
Unfortunately, the contents of the RAMworks bank register can’t be read.
Programs must keep track of the current bank number. Applied Engineering
recommends that this be done by storing the bank number in reserved locations
inside each bank and suggests $FFFO and $47B be used for this.
Open-Apple 35
The bank register is automatically initialized as zero during power-up, but not
after a reset. This means that programs that use other banks should store a zero
in the bank register after areset. Programs that use interrupts must also install an
interrupt handler in each bank of memory. When an interrupt occurs on an Apple
Il, the microprocessor jumps to the address in the interrupt vector at $FFFE.On a
‘megabyte Apple, there are 16 $FFFEs in auxiliary memory, plus 1 inROMand 1 in
RAM in main memory. Thus interrupts get complicated, but they can still work if
everything is thought out carefully.
Seeing red in RGB
In North America, there are three different technologies available for displaying
Apple II screen output. In this article we'll examine each of them, talk about their
advantages and disadvantages, and examine some technical details pro-
grammers need to knowtouse the most expensive of the three, RGB, with double-
resolution graphics,
If you already own a television set, the cheapest way to display what's on
your Apple's mind is to use a device called an "RF Modulator” This gadget takes
the video signal coming out of your Apple and puts it on a “channel” so your TV
can receive it. After makingall the connections, you can watch your Apple think by
tuning in channel 3 or 4 or 33 or whatever,
RF Modulators are available for all models of Apple II. On the IIc, the modulator
plugs into the back-panel connector with the color-TV icon. On other models the
modulator usually installs inside the case and is wired to a special set of pins
called the “Auxiliary Video Output Connector.’ Modulator prices vary from about
$30 to about $60.
The primary disadvantage of using an RF modulator is that 80-column text is
unreadable on a television set. Even 40-column text is fuzzy on some sets.
Advantages of this technology are a relatively low price, color displays (if you are
using a color TV), and the ability to change channels and watch Laverne and
Shirley reruns when you get discouraged with computing. With a IIc and an RF
modulator, you can also route your Apple's sounds through the TVs speaker; the
sound quality I've gotten has been disappointing, however.
‘The composite monitor is the most widely used display technology
among Apple Il users. In the US.,an “ordinary” composite monitor is one that
accepts a video signal compatible with a standard known as NTSC (National
Television Standards Committee). Outside North America other standards, (CCIR,
PAL, SECAM) are used. A major advantage of composite monitors is that they can
be directly connected to the small round video connector found on the back of all
Apple Ils; no additional equipment is necessary. Composite monitors are avail-
able in monochrome and full-color versions.
Monochrome monitors have two primary advantages. First, they are relatively
cheap—about $100 to about $250. Secondly, they provide the sharpest display
available for work involving 80-column text. Their primary disadvantage Is that
they cannot display full-color graphics. The fashionable display color for mono-
chrome monitors appears to be amber this week, but green and plain old white
are also popular.
Full-color composite monitors do color graphics somewhat better than a color
television. They have no other known advantages. They are expensive, 80-column
textis bad, and you can’t change the channel.
The third available technology is RGB (red-green-blue). This is the only
system that allows both full-color graphics and readable 80-column text on the
same display screen. The price you pay for this technology, however, is high. An
RGB monitor costs $400 to $600 and you also have to buy a special RGB adapter
to plug into your Apple.
The RGB adapter goes into the connector with the color-TV icon on the Ic, into
the auxiliary slot on the Ile, or into slot 7 on a IF-Plus. If you are using an Apple
memory card in the auxiliary slot ofa Ile, you'll need to replace itto use RGB color.
The RAMworks card discussed elsewhere in this letter can be adapted to provide
RGB signals with the addition of a special piggy-back card that can be added at
any time.
(Actually, if this is a piggy-back card, then the card for adding extra memory
chips to RAMworks must be a piggy-stomach card, since it goes on the other side
—they can both be used at the same time. The whole thing looks like a ham
sandwich. You can also get a card into slot 1, but the fit is very tight— the cards
touch each other. So maybe you better make that a grilled ham sandwich.)
With Applied Engineering's RGB option for RAMworks, incidentally, the color of
text displays is switch selectable. You can make your expensive color monitor
appear to be a white, green, amber, or blue monochrome monitor when working,
with text only. However, 80-column RGB text is not as sharp as what monochrome
monitor users are used to.
36 © Open-Apple
The biggest surprise of using RGB with an Apple Il is that double-
resolution graphics don't always work. While standard single-resolution
Apple graphics always come in loud and clear on an RGB system, double-
resolution graphics don't. In order to see anything when double-resolution
graphics are displayed, you must have both an RGB card that supports double-
resolution graphics and software that turns on the RGB card's double-resolution
feature.
And yes, don't fool yourself, there are RGB cards around that don’t support
double-resolution graphics and there are commercially available double-
resolution graphics programs that don't turn on RGB. So there you go, Bo-Bo; you
Just spent $600 on an RGB system and sometimes it doesn’t even do what a $250
color television can do.
One of the programs that does support RGB double-esolution is Beagle
Graphics, Mark Simonsen wrote Beagle Graphics, and he says Apple-compatible
RGB cards are supposed to support at least three modes of double-high-
resolution. The monochrome mode has a resolution of 560 x 192 pixels (one bit
per pixel) and no colors; the colormode has resolution of 140 x 192 pixels (four
bits per pixel) with 16 colors; and the mixed mode combines these two.
{In mixed mode, the RGB card looks at the high bit of each byte to determine
whether it should decipher the bits in that byte as color (high bit on) or mono-
chrome (high bit off). In the other double-resolution modes the high bit of each
byte is ignored (it doesn’t even matter whether you're talking RGB or NTSC
composite). In standard single-resolution graphics, of course, the high bit is a
color-selection bit. Ifyou don't know what all this means, don’t worry about it)
“Turning the various RGB modes on and off is a matter of peeking or poking at
softswitches. The softswitches used to control RGB are the 80-column off and on
switches at 49164 and 49165 ($COOC-COOD) and the single-resolution offand on
switches at 49246 and 49247 ($COSE-CO5F; these also control annunciator 3).
‘These four switches are accessed in different sequences to tum on different RGB
double-resolution display modes. The control sequences should be executed
each time doublehigh-resolution graphics are turned on. Execution should
occur after the standard switches for graphics ($C052, $C057, $C050) have been
thrown,
Double-high-resolution programmers note carefully: If you want your
software to work on RGB systems, you must use the following control
‘sequences to turn on double-high-resolution:
‘monachrome color eixed
20C0L of F 80COL on BOCOL of F
SNGL.RES of f SNOL.RES of F SNGL.RES of F
SNGL.-RES- on SNGL.RES on SNGL-RES on
SNGL.RES off SNGL.RES of f BOCOL on
SNGL-RES on SNGL.RES on, SNGL.RES of fF
0C0L on SNGL.RES of F SNGL.RES on
SNGL.RES off SNGL.RES off
In addition to these three modes, some RGB cards may have additional modes.
Vol. 1, No. 4
Sixteen-color 40-column text (using the display page in auxiliary memory for
color infomation) anda 160 x 192 mode that has two 16-color pixels per byte (and
a straightforward screen-mapping) are two possibilities that have been men-
tioned, but not yet documented.
Lutus puts editor in public domain
Paul Lutus, author of Apple Writer, has placed a rudimentary version of this
widely-used word processor in the public domain. The new program is ProDOS-
based and is called Freewrrter. Itwas recently distributed to Apple user groups by
the International Apple Corps on IAC disk 43; many groups have released or are
releasing /IAC.43 to their members as a disk of the month.
Freewriter's appearance and command structure are very similar to those of
Apple Writer. Ituses standard ProDOS text files. If you've been looking for a cheap
way to peep into text files while using ProDOS, this may be it.
Like Apple Writer, Freewriter has a status line at the top of the screen that shows.
howmuch memory has been used (maximum file size isa little more than 50,000
characters). It uses an 80-column display when run on an Apple fle with 80-
column card or on an Apple IIc with the 80/40 switch in the down position. It uses
a 40-column display otherwise.
‘Commands are included to load and save full or partial files, to find and replace,
to jump to the beginning or end of a file, to erase a file from memory, and to
embed control characters within a file. The right and left arrows can be used in
conjunction with the open-apple key to delete characters and recover them.
Freewriter has one command heretofore available only in the newest version of
Apple Writer, it allows you to select a page width from 1 to 240 characters—ifa
width wider than the display screen is selected, horizontal scrolling keeps the
cursor in view. Freewriteralso has a built-in tutor.
But that's it. Here are some of the things Freewriter doesn't have that Apple
Writer does: case-change mode; find carriage retums or wildcards; the glossary
(macro) function; tabbing; disk commands (Freewriter has only load, save, and
catalog); printing (wait! I'll explain in a minute); word processing language;
everything that appears on Apple Writer's additional functions menu (control-Q)
except quit; replace characters mode; delete word and delete line; and the split-
screen function.
While Freewriterincludes no facility for printing files, a separate Lutus freeware
program on /IAC.43, this one written in Basic and called PRINTER, slowly prints
text files created with Freewriter (or any other program, for that matter). It allows
you to enter a page header if desired (including page number), and to choose
margins and page length. (/IAC.43 also includes several other free Lutus pro-
grams written in Basic for your perusal and enjoyment.)
Freewriter will boot and run on any Apple having at least 64K of memory, but
special problems occur on older Apples because they lack some necessary keys.
In particular, deletion (which wasn't very good to start with) becomes impossible,
since there is no delete key and no open-apple key. Button zero on a joystick or
eine et eee
cnc hemeior
See
_ pon cep nia aaron ne ny
© {followed by a least one Return, more doesn't hurt here), so that the Basic
fe _vsion ofthe program vile saved to lk automaticaly aswel
May 1985
game paddle can be used to take the place of the open-apple key, but it's no fun.
Other problems on older Apple IIs include the impossibility of entering lower-
case letters without an enhanced keyboard, a tutorial thatis unreadable withouta
lower-case chip, and the lack of up and down arrow keys (but you can use control-
Kand control instead).
Assembly language programmers should be particularly interested in this
disk for two reasons. In addition to Freewriter, /IAC.43 also includes the first 14 of
the 16 ProDOS technical notes that have been released by Apple. These are
additions to and amplifications of the material in the ProDOS Technical Reference
Manual. If you are interested in writing assembly language programs that run
under ProDOS, this material is essential.
The second reason assembly language programmers might want this disk isto
disassemble Freewriter.| cut my assembly language teeth by taking apart Lutus’s
Apple Writer 10 several years ago. You can learn a lot by studing a master like
Lutus. (In fact, if you'd like to watch a master disassemble a master, get a copy of
Call -A.PPL.E. In Depth #4, All About Applewriter Ile, by Don Lancaster. The book.
takes you through a step by step disassembly of Apple Whiter Ile.)
What I leamed at MACUL
I spent a couple days near the end of March in Detroit. | was giving speeches
about the Apple Il at the annual meeting of the Michigan Association for Compu-
ter Users in Leamiing,
It was enlightening to meet people who are using Apples in education and to
hear about their trials and successes. And when not giving speeches myself, Iwas
able to sneak into some of the other sessions and pick up some interesting
tidbits.
One of the speakers was Sue Talley, whose speech was called “Apple's Commit-
ment to Education.” Talley is one of Apple's marketing wizards; she specializes in
the education market. She faced some tough questions from the audience about
Apple's commitment to keeping future models in the Apple II family compatible
with what schools have today.
She responded that computer models change every two to three years while
educational institutions tend to update technology on a much slower cycle:
every ten years or so, Thus, “changing technology will cause you some problems,’
she admitted. But the primary market for the Apple Il is in schools, and Apple
currently holds over half of that market. Consequently, Apple is also committed to
compatibility.
“We realize a lot you have software on 5-1/4 inch disks. We won't leave you
behind as we change technology,’ Talley said,
Talley also confirmed that Apple has an Apple II version of its Apple Talk
network under development.
MACUL's Keynote speaker was David Thornberg of Stanford University,
‘Thorberg invented the Koala Pad and the Muppet Learning Keys, and has written
a bunch of books on personal computing, Thornberg also gave several sessions
on Logo that lattended.
His Logo sessions were very informative, and confirmed my suspicions that the
language goes Beyond Turtle Graphics (the title ofa new Thornberg book due out
this summer). His keynote speech, on the other hand, struck a few sour notes
when he attacked Basic and insisted that it should be dropped from school
curricula. The standing ovation he got, however, means a lot of people in
education agree with him. | don’t.
The point that Thornberg makes is that there are better languages for teaching
students organized problem solving than Basic, My point is that while learning
organized problem solving is important, it is not a star that all computer
education must revolve around.
People have got to get away from the idea that there is a single language that is
“pest” for all situations. Basic, for example, is not well suited for large institutional
programs written by several different people. Pascal,on the other hand, is not well
suited for the short and sweet personal programs typical of the software compu
ter users write for themselves. Neither Basic nor Pascal is good for mass market
commercial software, which is almost all written in assembly language. And
assembly language stinks for any program thatwon't be run at least 10,000 times
because it takes so long to write.
‘And there isn’t any computer language that gives the average mugwumpon the
street the number crunching power of a good spreadsheet program, or the data
‘storage power of a good data base program.
‘Thomberg is well intentioned, but he lives in an ivory tower totally concemed
with developing the abstract thinking ability of students. I can appreciate that; the
world needs abstract thinkers. But that’s not all itneeds. Besides, who leams the
importance of good organization any better than someone who attempts to write
along program in Basic?
Open-Apple 37
Itisn't impossible to write structured Applesoft programs, as was amply
demonstrated by JoAnne McVicar and Lary Dove, teachers from the Livonia,
Michigan public schools. They did a session on the objectives and course content
of the Livonia Public Schools’ introductory programming course for high school
students,
‘The course is called "Computer Math 1”. The course description goes like this,
“Computer Math 1 introduces students to concepts designed to help them
become computer literate. Students will use the computer to solve problems in
mathematics appropriate to their individual mathematical experience. Students
will learn the Basic language using a structured approach to programming” The
course was developed by a group of teachers from different Livonia high schools.
Besides McVicar and Dove the group included Dan Kinczkowski, Ed Segowshi,
and Jim Winebrenner, who is the district's computer coordinator.
Atthe beginning of the school year, Computer Math 1 students are given a disk
with a skeleton Applesoft program on it. Here's what the program looks like:
200 REN f2¥eeeenerey
210 REM DICTIONARY
220 REN HexteeHeReE
5000 REM ¥exeeey
5010 REM INPUT
5020 REM xexKeex
10008 REM xexeeKOKE
toeie REN SPACE BAR
10020 REM xxseKsexaey
1000 REN ¥eereE
1010 REM PAIN BODY
1020 REN *xreexeeee
6000 REM Hxxeexxereae
6010 REM PROCESSING
6020 REM eexeeennerey
15000 REN Hexnxxaee
15010 REM SORTING
15020 REN *eeeeeex
2000 REM aeeevexseenves
2018 REM INSTRUCTIONS
2020 REM PexHeeReeeene®
7000 REM #¥xseee
7010 REM OUTPUT
7020 REM xxxeex
20000 REM eexwexx
20010 REM MUSIC
20020 REN #exeeKk
3008 REM sexe eneree
3010 REM INITIALIZE
3020 REM VARIABLES
3030 REN sxteexceee
8000 REM Hx HaHEE
8010 REM GRAPHICS
8020 REM exxeeeeee
65535 REM student's
name enbedded
here
9000 REM #xxHee
9010 REM DATA
9020 REN xHHe
4000 REM eKEH EXE
4010 REM HEADINGS
4020 REM seeKaexaee
Each projecta student does has to use this skeleton. Many projects, particularly
early ones, won't use the whole thing; in that case the student can delete
unneeded headings. One thing most students have trouble deleting, however, is
the last line of the program. Normally Applesoft doesn’tallow line numbers above
63999. McVicar and Dove said they leamed this trick from the "Bigliner” program
on the Beagle Bros Utility City disk.
Students also receive a style sheet that explains in greater detail what finished
programs should look like. Ail programs are to begin with an “identification
block’ (there’s no heading for this, since it is itself the “heading” for the whole
Program) at line 100. This block uses REM statements to identify the title and
author of the program, the date it was last revised, and the name and hour of the
class it was written for.
The dictionary that follows line 200 is a listing of all the variables used in the
program and what they are for. ifthe program uses functions, they must also be
defined here.
The main body directs the flow of the program, and usually consists almost
entirely of GOSUBS.
The instructions section is for code that displays instructions to the program's
user. All programs are screen-oriented, so these instructions must always appear
on the screen. Skills such as centering, preventing screen scrolling, and other
tricks for formatting output are taught as a part of the course.
The initialization section is used to dimension arrays, define functions, and
initialize ail variables. The headings section is for placing "permanent instruc-
tions and data on the input and output screens.
‘The input section is for INPUT and READ statements, for checking the validity of
input data, and for loading files from disk. The processing section is for doing
calculations and file manipulations. The output section is for placing answers on
the screen and for saving files to disk.
The graphics section is for code that displays graphics. The data section is for
all DATA statements. The space bar section is for a set of subroutines, provided by
the teachers when necessary, that prevent scrolling, provide for screen and
graphic dumps to a printer, and include a quit option. The sort and music
sections are also for subroutines usually provided by the teachers. Line numbers
after 30000 can be used by students to generate any other subroutines needed
as the course develops.
Enhanced Ile and AE Pro
I have installed the new enhanced Ile chips and
have been very satisfied. | know others will not have
my experience, but ALL of the standard software | use.
daily works just fine with the newchips, so compatibil-
ity has not been a problem for me. I also have a llc,
and have had no compatibility problems with it
either.
Regarding the use of ASCII Express version 4.20
with the new chips, I have had no trouble using it with
either the enhanced Ile or the llc. However, after
installing the new chips I did have to run the INSTALL
program and change my local console selection
(select “L” from the main INSTALL menu). The auto
selection under console types (number 0) is what I
chose. You might try changing the console type to see
ifthat eliminates your problem. I have been using AE
Pro on the IIc for six months and on the enhanced Ile
for two weeks and it works great. That does not,
however, mean yours will work the same as mine (as
we well know).
Although | like the new chips, | really doubt that
most people will want to run out and get the upgrade.
Unless your application requires the new chips, you
probably don’t need them—although there is a sig-
nificant improvement in 80-column mode.
Steve Muncy
Dallas, Texas
Amazing. That works on mine, too. Ok, folks,
Open-Apple’s Ile now uses the enhanced ROMs full-
time.
Dealers bend rules
I was lucky enough to get a Ile enhancement kit
from a dealer who let me install the chips myself, so I
still have the old chips. I wouldn't buy it without the
right to keep the old chips, even ifthe dealer insisted
on installing them himself. James Patton
Littleton, Colo.
‘Many dealers are apparently willing to sell the kit
(at the “installed” price) without installing it, even
though Apple has asked them not to, highly recom-
mend you buy the kit this way so that you can be
‘sure you have your old chips. The kit comes with
installation instructions. You'll need a small flat-
blade screwdriver to slip under the old chips so you
can gently pry them out. Be careful not to get a chip's
pins bent out of line, not to put a chip in backwards,
and not to zap a chip with static electricity and you
should have no trouble.
Whatever you do, don’t pay a dealer extra to install
the chips. Apple's suggested retail price is supposed
to include installation.
Lower case for DOS 3.3
1 enjoyed your article on the Ile enhancement
ROMs in the April issue, As you mentioned, its nice to
have Applesoft and the Monitor accept lower case
input, which of course also applies to ProDOS. Unfor-
tunately, DOS 3.5 still does not accept lower case. |
got tired of getting SYNTAX ERRORs every time |
forgot to press the CAPS LOCK key, so | worked outa
modification to DOS 3.3 to make it accept lower case.
Here itis in the form of an Applesoft program:
10 REM Louer case for O05 3.3 (uses S€CDF)
20 FOR 1=@ TO 16 : READ J : POKE 4835141. : NEXT
30 POKE 4136976 : POXE 41370,223 + POKE 41371,168
40 DATA 201,224, 144,2,41,223,201, 141,240,6,232,142,
93,170,201 172,96
1 suggest booting with a DOS 3.3 System Master
disk to be sure you have a clean copy of DOS before
running this program.
J. Morris Prosser
Pebble Beach, Calif.
Your program sticks the lower-case conversion
routine inside a normally empty space inside DOS at
$BCDF. Many other programs have been designed to
use that space as well.
1, too, am tired of CAPS LOCK, but I use $BCDF for
something else. | looked around for some other
Place to stick your routine, but there aren’t any left
that haven't already been used for something, Then!
decided to gulp great big and get rid of something
close to my heart that | actually haven't used in a
tong time, Integer Basic. Here's a version of your
routine that should work with even highly-modified
copies of DOS 3.3;
10 REM Lower case for DOS 3.3 (deletes Integer Basic)
15 POKE 40268,121 : REN make INT do FP
20 FOR I= 10.9 : READ J : POKE 40290+1,J : NEXT
"30 POKE 41374,32 : POKE 41375,98 : POKE 41376,157
4@ DATA 142,93,178,201,224,144,2,41,223,96
Ofcourse, there are other ways to solve this prob-
tem, too...
Old bugeyes writes
When I read my Basic Programming with ProDOS:
‘manual, | saw two things thatalmost convinced me to
abandon DOS 3.3...
1 Page 154 and 206: ProDOS makes an HGR or
HGR2 command protect the hi-tes pages so your
Applesoft program and variables won't overwrite
them.
2. Page 207: ProDOS lets Applesofts INPUT state-
ment accept anything, including commas and
colons,
‘Apparently the writer of this manual has been sit-
ting on his head too long, Do you have any inside info
about this?
Incidentally, a recent reader asked you about how
to make his Ile accept lower case keyboard com-
mands. One solution, as you stated, is a Ile enhance-
ment kit. Another solution, with many more benefits,
is GPLE.
While we're on the subject, try this apparently illegal
statement on your IIc or enhanced Ile:
print 2-2
(
",as it tums out, isa lower case “"”.)
Bert Kersey
Beagle Bros, Inc.
The two ProDOS features you mention were
included in early versions of Basic.system, but were
Vol. 1, No. 4
removed because of intractable bugs. Somehow,
they didn't get removed from the manual, however.
Speaking of bugs, ...
Wrong number
The phone number listed for Sunset Software last
month (page 30) isn't right. Do you have a correction?
Bob Leedom
Glenwood, Md.
Indeed, | seem to have copied the area code down
wrong. It should be 213-476-0245.
HUMANTEXT errors
| have just installed the enhancement on my Ile
and on entering your HUMANTEXT DEMO from the
April issue (page 27) | kept getting errors in lines 110
and 120. | changed them to read as follows:
110 NS=CHRS(27)
caused an error. Why?
By the way, | was not able to configure the Sider with
a MicroSoft Ile Premium card in slot 3. CP/M will not
work and I've seen some strange sights with Apple
Pascal.
Warren L. Posey
Santa Ana, Calif.
1 found those same bugs in the HUMANTEXT DEMO
when I tested it, but somehow the corrections never
got into the file | sent to the printer. Here is how the
lines appeared in the Aprit issue:
110 MTS=CHRS(27);CHRS(15}: : REM turn on mousetext
120 NRS=CHRS(24) ;CHRS(14); : REM turn off mousetext
The semicolons are the problem. The first semi-
colon in each line should be a plus sign; the second
semicolon in each line should be removed. This is a
common error, at least around here. The confusion
stems from the use of semicolons in PRINT state-
ments. If these lines said PRINT instead of MT$= and
NR$=, the semicolons would be correct. Outside of
PRINT statements, however, you must connect
strings with the plus sign, not with the semicolon.
(Alternatively, plus signs are legal for connecting
strings inside PRINT statements, but can’t be used at
the end to suppress a carriage return.)
Thaven't tested the Sider with either CP/M or Pas-
cal. Yours is the first report of problems with either
‘one that I've heard, however, and I've seen many
reviews lately. The Sider manual does say you
‘should put the CP/M card in slot 4.
To flip or not to flip
I have a question for you that might be of interest
to other readers: Is the practice of flipping over a
floppy disk and using the other side as an economy
measure a good habit?
Benjamin Day
San Marino, Calif,
I was hoping nobody would ever ask. No matter
how I answer, half of you will argue that I'm dead
wrong. At least you didn'task about copy protection.
J've been using the flip side of disks for a couple of
years now. I haven't experienced any problems.
Over the course of time and many, many disks I've
run into a few bad ones, but they were bad right out
May 1985
of the box and they were bad on the side you were
supposed to use. It appears to me that if one side
works, the other side will work too.
1 got started at this by stealing a one-hole paper
‘punch out of my daughter's pencil box. All you have
to do is punch a notch where there ought to be one
and put the disk in the drive upside down.
There are a few theoretical reasons why this
should cause problems. | think that the reason it
doesn't is that disks fill up with data long before the
problems start, Estimate how many hours your
most-used disk has actually spent spinning inside a
drive. I don't think | have a disk that has spun for
more than a couple hours. The kinds of programs |
use always load a whole file into memory in a few
seconds and save them back in afew seconds.
Ifyou have a program that really makes disks spin
—the kind of program that works with disk-based
data rather than data loaded into memory —it might
be better not to flip the disks you use with that
program. Othenwise, | can’t see any problems.
Seeing as printers see
I neglected to include a joke on my subscription
postcard, so here:
“How many programmers does it take to change a
lightbulb?"
“None, that's a hardware problem.”
Here’sa briefnote about the discovery ofan undoc-
umented feature of Apple's Imagewriter printer. The
manual describes a printer selftest, triggered by hold-
ingin the “form feed’ button while poweringup. What
is not described is the hexadecimal dump feature. If
one holdsin the “line feed” button while powering up,
the printer will will print the hexadecimal codes for all
characters it receives instead of doing normal print-
ing, This feature is useful for debugging sequences of
printer control codes, etc.
Incidentally, this is a standard feature of Epson FX
printers and C. Itoh 8510 printers. The fact that the
Imagewriter is a C. Itoh with modified firmware
prompted me to try this out.
Bemard Goodman
Cambridge, Mass.
immediately tried your tip on an Apple Dot Matrix
Printer and an Apple Scribe and it works on both of
those, too. (On the Scribe you have to hold in on
select” while powering up because “line feed” and
“form feed” are the same, self-test generating,
button.)
1 can think of several uses for this feature in addi-
tion to debugging printer control sequences. How
about using it to figure out the codes graphic dump
programs are sending to a printer? Witha little work,
you could even put a serial printer where a serial
modem is supposed to be and debug modem-
command sequences,
Text file splitter
ve got an early word processor (Magic Window I1)
which has the drawback of not being able to read a
text file that is larger than memory. Because of this,
when I create large text files (logging from a data-
base), 1 can only view the first 12 pages, or so. My
question is twofold; first is there away to “split” a text
file into more managable bytes? Second, if | happen
to shell out for a 2-80 board and start running XMO-
DEM for file transfer, does using that protocol also
create text files which you then EXEC, or doesit create
some other type of file?
Maybe the whole problem is my word processing
Program and | should just buy (ouch!) anew one with
better features? Bill Curtis
BBZ618
Using the CP/M program XMODEM for file transfer
will get you a bunch of CP/M files. You'll have to
convert the CP/M files to DOS 3.3 before you can
EXEC them. Most CP/M cards come with a disk utility
that will do this.
Here's a simple program that will (very slowly)
split a text file into more managable pieces:
Le REN *8* TEXT FILE SPLITTER 1
100 S=CHRS(4)
110 NFL=5000 : REM new File length, in bytes
120 IF PEEK(978)=157 THEN 005=3.3 : GOTO 200
130 IF PEEK(978)0O190 THEN PRINT
“ACTIVE 00S NOT RECOGNIZED.” : END
200 HONE ; VTAB 10
21@ PRINT “THIS PROGRAM SPLITS LONG TEXT FILES”
220 PRINT ~ INTO SMALLER PIECES. WHAT'S THE”
230 PRINT “NAME OF THE TEXT FILE YOU WANT”
240 PRINT “TO SPLIT?”
25@ PRINT
260 INPUT FS:
270 IF LEN(FS)=@ THEN END
300 PRINT 08; "OPEN" Fs
310 ONERR GOTO S00
320 PRINT : PRINT
330 PRINT “OK. NOM THIS WILL TAKE SOME TIME...”
340 PRINT * (ABOUT 20 SECONDS PER SECTOR)~
350 PRINT
400 FOR N=1 0 108
410 : PRINT “NOW WORKING
IF 0053.3 THEN POKE 43602,0
PRINT DS; "READ":
BET AS
IF 05=3.3 THEN POKE 43602,0
PRINT DS; “MRITE":FS:
PRINT AS:
xT 1
F DGS=3.3 THEN POKE 43602,0
480 = PRINT 08;“CLOSE"SFS;~.3N
490 NEXT N
5@0 PRINT DS;“CLOSE”
510 IF PEEK(222) = 5 THEN S30
520 PRINT “ERROR 4”; PEEK(222);" IN LINE “;
PEEK(218) + PEEK(219)#256
530 POKE 216,0 : END
Feel free to change the value of NFL in line 110 to
whatever is suitable for your word processor. This
Program doesn't check the contents of the file, itjust
splits after the amount of characters you specify
with NFL have been processed, so youcan expect the
splits to come in mid-sentence or mid-program line.
You should be able to use your word processor to fix
such stuff, however.
Be prepared to go watch TV or put your kids to bed
while this program is running. It takes about 20
seconds per sector. Your computer will appear to be
locked up for most of that 20 seconds, but then your
disk drive will come on to reassure you everything is
working fine.
The POKE 43602,0 in tines 435 and 450s a “brute
force carriage retum” for DOS 3.5. Notice that the
FOR loop causes the READ command in line 440 to
follow the PRINT in line 460. But the PRINT ends with
a return-suppressing semicolon. Uncle DOS will not
respond to the READ command unless a retum pre-
ceeds it. But if you print a return, it will be written to
Open-Apple 39
the new file (we would then have a retum after every
character). The forceful, decisive way to get around
this problem is to cheat and reset the carriage-return
flag inside DOS by hand. This is what the POKE does.
Likewise, the WRITE command in line 455 will
never be recognized unless it is preceeded by a
retum because of the GET in line 445. (DOS com-
mands always cause trouble after GET.) And the
CLOSE command in line 480 needs a returnless
retum, as well.
The POKE 216,0 in line 530 simply tums off the
ONERR GOTO.
POKE 1403 problems
I've discovered a bug involving the POKE 1403
statement to position the cursor horizontally on the
80-column Ile. (POKE 1403,X-1 does what HTAB Xis
supposed to do but doesn’t on the original Ile) For
some unknown mysticreason, the first (and only the
first) POKE 1405 after a DOS command, including
red. If you know why this is or how to
avoid it I'd enjoy reading about it.
My own solution is to do a dummy VIAB Y : POKE
1405,Xto an unused screen location after each DOS
operation. Clumsy, butit works.
Mike Fredericks
Littleton, Colo.
Thanks for pointing this out. Lots of people report
trouble with TAB, HTAB, and POKE 1403. Maybe this
is the primary problem.
I don't know why, but another solution seems to
be to PRINT a retum after every DOS command. For
example, PRINT D$;"PR#3” : PRINT.
Changes coming to $C020
The Apple Il Group is seeking ways to expand the
capabilities of our Apple II line, We would like to do
this with a minimum of impact on existing products.
We have determined that our future needs will require
that we change the function of a series of soft
switches, In the past the locations $C020 to $CO2F
(only $C020 was documented) were used for writing
to the cassette port. We have decided that the func-
tions of these locations need to change. We areletting
you know of these changes now so that you can make
needed changes to your software as part of your
normal product updates.
In the future, if you read from or write to these
locations the current ROM configuration may be
banked out. This means the loss of Applesoft, the
Monitor ROM and 80-column ROM. It is very impor-
tant then that your products stop using these
locations.
Verylittle software uses the cassette portto actually
write to the cassette. However, some software does
write to or read from this portas a way of maintaining
Program speed when sound is turned off. In these
cases sound is tumed off by redirecting the poke to
the speaker toggle to a poke to the cassette port.
Such programs would have to be changed to poke to
an internal location or a known “safe” ROM or RAM
location.
Apple II Technical Support Group
Cupertino, Calif.
By incrementing the high byte of speaker address
‘you would make it point to $C130, an address within
the ROM space of the card in slot 1—one of the few
memory areas that is always guaranteed to be
“safe.”
40 Open-Apple
ProDOS bugs
Here are some bugs that have been discovered in
ProDOS that you might want to mention to your
readers:
1L In Basic.system 11, ifyou BSAVE over an existing
file the old load address and length are retained. |
have reverted to 0, which does not have this prob-
Jem, but use the PRODOS 1.11 kernel.
2. CONVERT applied to ProDOS —>DOS 3.5 onafile
requiring more than one track/sector list (i.e. a file
more than 61 blocks long) does not properly set up
the track/sector list link or offset to subsequent
track/sector lists. It takes a knowledgeable person
anda disk zap to make such a file readable.
Glen Bredon
Princeton, NJ.
A representative of Apple's Technical Support
Group says the BSAVE problem is a true bug that wilt
be fixed soon. Apparently there are also a couple of
very exotic bugs in Basic.system 11 that Apple's
programmers would like to figure out and fix before
‘putting out another release. You can overcome the
BSAVE problem for now by deleting a binary file
before saving—much as is done with text files.
The CONVERT problem is quite interesting. Com-
bine it with the problem described in the next letter
relating to the lic System Utilities and youl find
there is currently no way to convert long text files
from ProDOS to DOS 3.5.
Mousetext apologist surfaces
Dawgonnit, with all the neat stuffin your newsletter,
it's almost impossible not to write back with a few
thousand or so comments.
Perhaps | can add to the rodent discussion. Maybe
the reason Apple put the mousetext characters
where they did was so that assembly language pro-
grammers who desired to store inverse characters
directly on the screen could use the original inverse
capital set in the $0-$1F range. This retains compati-
bility with older Apples. Looking at it this way, the
altemate character set replaces flashing characters
with two sets of special characters, mousetext at $40-
‘$5F and inverse lower-case at $60-$7F.
Keep in mind that the ASCII character set and the
screen display character set are two independent and
unrelated (execpt by sequence) groups of characters.
‘And just for fun, note that the two groups of “normal”
caps in the screen display set are not the same.
‘Those (control) characters in the $80-$9F range can-
Open-Apple
Cony 985
y
Tom Weishaar
Published monthly.
World-wide price:
US$24/year
Send all
correspondence to:
Open-Appie
10026 Roe Ave.
Overtand Park, Kans.
Qpen-Apple 1s a trademark of Open-Appie newsletter Apple
Computer and Open-Apple are two diferent, unrelated. inde-
pendent companies that wish everyone in the world had an
Apple
not be traced over using the arrow key. POKE
1025128 and see!
‘There are substantial differences between the
enhanced Ile Monitor and the Ic Monitor. The ability
to enter ASCII characters using the apostrophe is
great, as is the mini-assembler for quick and dirty
stuff. For those who may be interested, Apple has
published identity bytes that can be checked to deter-
mine which Monitor (and thus which machine) a
program is running on, as shown in the following
table:
3083 SrBCesFBIE
Apple 11 38
Apple I1-Plus eR D
Apple III (in enulation mode] ER 8A
Apple Ile (original) os fA
Apple Ile (enhanced) 06 fe
Apple Lc 06 0
The Apple lic System Utilities disk is really el-neato;
it does everything that FILER and CONVERT should,
but don‘tdo. You don’t have to tell itvolume names or
identify a disk as 3.3 or ProDOS, etc. Unfortunately it
has a couple of major bugs. From ProDOS to DOS, it
will fll all sectors of a text file after the 46th with
garbage instead of data, and from 5.3 to ProDOS, a
long binary file will cause an unrecoverable system
crash, .
Val Golding
Et Cajon, Calif,
You make a good point about mousetext, but in the
wisdom of hindsight | think Apple's wizards should
have put it in the $80-$9F range where the useless
normal capitals are. Your point about not being able
to trace over that range would even be an advantage,
since it makes no sense to trace over mousetext
characters anyhow.
Lam a’la Ruth
In February (page 12) you showed readers how to
use the Lam technique for entering Monitor com-
mands from within Basic programs. Some time ago I
wrote a Mockingboard speech editor in which |
wanted to enter strings of phonemes in the form of
hexadecimal numbers. | planned to use the Lam
routine to put the numbers into memory. However,
repetitious use of Lam to handle lengthy Monitor
commands tumed into a serious drawback because
of the routine’s slow execution speed.
The routine's sluggishness comes from its use of
the MIDS function to extract characters from C$, one
at a time, and poke them into the keyboard input
buffer. Applesoft string operations are notoriously
slow, and including them in a loop is one of the best
ways I've found to waste time.
I circumvented this problem by using the normal
Applesoft version of the Lam routine to create a
machine language version of itself. This way the slow
Lam is executed only once, and all subsequent Lam
requirements are handled by Lam a’la Ruth. The *
speed improvement is phenomenal!
‘The Cé string in the following program creates Lam
a‘la Ruth. It uses Monitor commands to install a
machine language routine at $300 and to connect
the routine to the Ampersand hook, After C$ has
been installed using the standard Lam technique
(line 10), this program installs ita second time using
the new technique (line 130). Beeps will give you a
Clear idea of the speed improvement.
10 REM #** LAM ALA RUTH
100 BELLS=CHRS (7)
Vol. 1 No. 4
118 CS="300:A5 71 48
AB AS 84
22 20 04
08 03 80
ee 91 71
65 71 60
AS 72 48
85 AC AS
£5 60 00
20 £3 OF
ee 85 71
89 08 02
99 00 2 C8 D0 FL A9 BD AO
84 4B 20 70 FF 68 85 72 6B
N 35:40 00 3 N D9CES™
AS 83 85
93 02 8S
30 0A FO
200
210
PRINT BELLS
FOR I=L TO LEN(CS) + POKE SL1+T,ASC(MIOS(CS.1)}
+128: NEXT : POKE 72,0 = CALL -144
PRINT BELLS
acs
PRINT BELLS
230
240
Here's a listing of the machine code installed at
$300. Note the liberal use of Applesoft’s own internal
routines to accomplish the task. Not everything in
Applesoftis slow. Instead of picking C$ apart piece by
piece, the routine moves it en masse into the buffer.
This is where all that time gets saved. Since Applesoft
stores strings in low-value ASCII (0-127) and the
Monitor expects its commands in high-value ASCII
(128-255), extra code (from $31C to $32C) is used to
make the conversion.
e302: A571 LOR $71 Save the temporary string
e302: 48 PR pointers on the stack.
e303: 95 72 «LOR $72
e305: 48 PA
306: 20 £3 OF JSR SOFE3 (PIRGET) Find specified
string and point to it.
303: AS 62 LOR $83 Transfer string pointer
2308: 85 AB STR SAB From uhere PTRGET put
300: AS 84 LOR $84 it to where MOVINS can
O30F: BSAC STAAL find it.
0311: A9 @@ «LOA HS@9- Tel] MOVINS ue want to
0313: 85 71 © STA$71_—smove It to page 2
0315: A922 LOR HS@2_—( the keyoard input
0317: 85 72 ©«STA$72.—buffer).
0319: 20 04 ES JSR SESD4 (MOVINS) Oo the move.
@31C: A@ 2 © — LOY #500 Examine relocated string.
@31e: 89 20 2 LOA $0200,
0321: 30.¢A = BNI $0320 IF low-value ASCIT
0323: Fo @8 BEN $0320 or mull, we're done.
0325; @9 88 ORR HSE Convert low-value ASCII
9327: 99 08 02 STA $0200,¥ to high-value
0328: 08 Iw Continue till umole string
0328: D0 F1 «BNE SORE_——or all of page 2 is done.
0320: A360 LOR HS8D Place $80 (return) at the
ose: 98 0@ © — LOY Hse end of string ($71 points
0331: SL 71 STA (571),.¥ there after MOVINS).
0333: 86 48 STY $48 Poke 72,8
0335: 20 70 FF JSR STF70 Call -144
0338: 68 PLA
0339: 85 72 STA.$72__—Restore original teaporary str:
0338: 68 PLA pointer before returning ta
0330; 85 71 STA $71 Applesoft.
033: 60 RTS
Once the standard Lam has installed Lam a‘la
Ruth, your subsequent Lam applications need only
define C$ and then & CS. Better fasten your seat belt!
Clay Ruth
Dyer, Indiana
Of the several methods available for entering
machine language programs from within Basic pro-
grams (POKE,POKE,POKE; READ DATA POKE; LAM),
I've always preferred the Lam technique because tt is
very efficient in terms of keystrokes. The other
methods did have speed advantages, however, until
now. Thanks for this improvement of an old
technique.