Skip to main content

Open Apple Vol 3 No 10 NOV 1987

  • PublicationApple Periodicals
  • Date1987-11-01
  • Pages8
  • SourceOpen_Apple-Vol_3_No_10-NOV_1987.pdf
← Magazines Open Apple Vol 3 No 10 NOV 1987
/ 8
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
_Oper-Apple Reality and Apple's vision ‘The Apple I was introduced in 1977 at the first West Coast Computer Faire. The show opened on April 16 in the San Francisco Civic Auditorium, Ten years, four million computers, and.a few months later, the same auditorium was the site of September's AppleFest. Apple was distributing buttons that read “Ten Years Strong” Finally, after ten years, no one was predicting the imminent death of the Apple II. AppleFest’s opening keynote speech was given by Del Yocam, Executive Vice President and Chief Operating Officer of Apple. Yocam’s speech was tiled “Apple Home Movies” and was dedicated to celebrating the tenth birthday of the Apple Il, Yocam’s presentation included clips from old Apple commercials and videos, “You know” Yocam said, “the Apple II might have lived and died just another gadget if it hadn't been for two circumstances, First, people could leamto program on an Apple IJ using BASIC, a relatively simple programming language, without having to load the language into memory....And second, the floppy disk drive developed by Woz in 1978 assured the Apple II along life «The Disk II and its disk controller card opened the floodgates for Apple II software. And it was the software that brought millions of new customers to the Apple Il. “The rest of Apple II history is largely a history built on software that we didn't even develop. That is what | think is the most remarkable thing about our success....The success of the early software, like VisiCalc and Apple Writer, demonstrated to programmers how lucrative programming could be. The floodgates were open. Programmers developed, customers bought Apple I's, and the circle went ‘round..., “In the eight years I've been at Apple, we've built five generations of Apple IIs....In all that time, there was never a doubt on our part that there would be a next generation Apple Il, There are over 4 million Apple IIs in the world today. But you can stil] run Apple II software from 1977 on a IIgs. In my mind our greatest achievement is to advance the technology and take our customers with us, 2 : “The Apple II exemplifies our dream to bring the power of computers to individuals... We've spent the last ten years making the Apple II better, all the while fulfilling our dream of building great, truly personal computers. ».Without a doubt, the Apple II is advancing....From Apple's point of view | can tell you that in ten years the technology will be to today’s technology what the Ilgs technology is to the Apple I Woz built for the Homebrew Computer Club. We'll advance the Apple II in networking and communications, in performance, in new types of peripherals, and in system software and programming tools....We are working on multi-media; CD-ROM, and videodisc technology.” : AtAppleFest I was enthused by Yocam's enthusiasm for the Apple Il. | was struck by his vision of what the Apple Il will become in the next 10 years. Back home, however, reviewing the text of Yocam's speech, I awoke to the fact that Yocam had celebrated the past. and future of the Apple II without once mentioning AppleWorks. AppleWorks was introduced in late April 1984, about three months after the Macintosh, The program was originally written for the Apple III by Robert Lissner, an independent developer who had previously done Quick File for Apple. While AppleWorks was under development, Steve Jobs was flying a pirate flag over the Macintosh building and outfitting that machine with the famous interface developed by Xerox researchers. Over on the Apple II side of the street, Apple's own researchers were using human subjects sitting at Apple November 1987 Vol. 3, No. 10 ISSN 0885-4017 newstand price: $2.00 photocopy charge per page: $0.15 keyboards to refine a user interface based on cursor pointing, retum key selection, and a “desktop” with a “clipboard” for transferring data between files. Lissner incorporated the results of this research into AppleWorks, However, according to popular legend, after AppleWorks was finished Apple atterupted to find an independent company to publish the program. Apple itself had two major problems with AppleWorks. First, Apple was trying very hard to get the big MS-DOS developers to work with the Macintosh. One of the reasons these developers gave for their reluctance to work on the Mac was their fear that Apple itself would compete with them—<Apple, obviously, had tremendous advantages in terms of distribution and access to inside information. Apple had a reputation for developing applications software for its machines that would kill the market for similar software— Apple Writer {which was at the top of the Apple I software charts at the time) and a complete set of applications software for the Lisa being major examples. Powerful voices inside Apple wanted the company to get out of the applications software business. Secondly, Apple was pouring all of its energy into promoting the graphics based Xerox interface used on the Macintosh. Among the people who were to decide how Apple's marketing dollars would be spent, there was little hope for, and less interest in, the text-based interface used by AppleWorks. But, the legend goes, no independent company with the resources and willingness to publish AppleWorks could be found. And on a warm spring evening, in a joyous moment of weakness that followed months of intense attention to its new Macintosh and Apple Ilc babies, Apple let AppleWorks slip out the door. Apple's punishment for its indiscretion was immediate — within six weeks its illegitimate child sat at the top of the Apple II best-seller lists. AppleWorks achieved this without the benefits of a mother's love—it succeeded in spite of, not because of, Apple's meager marketing efforts in its behalf. Since AppleWorks was released, for example, Apple has run 26 pages of ads in A+ magazine. The word “AppleWorks” appears in those ads exactly zero times. Four of the ads show screen shots of AppleWorks. Take a look at Apple's figs ad in the September 1987 At if you have one handy (pages 33- 39). AppleWorks appears in the gutter between the pages and is the only one of the 25 programs shown that isn’t mentioned by name. This is typical of the treatment Apple's bastard child gets from its mother. Yocam didn’tmentionit or Lissner in his birthday speech, and John Sculley, Apple's president, doesn’t mention it or Lissner in his new book, Odyssey. RXGTENNANT —~ Sy “ALRIGHT, STEADY EVERYONE. MARGO, GO OVER TO TOMS COMPUTER AND PRESS ‘ESCADE? .. VERY CAREFULLY!” 3.74 Open-Apple Before the end of 1984, the year of the Macintosh, a software product for an Apple computer had dislodged the almighty Lotus 1-2-5 from the number 1 position in monthly retail software sales. One would expect no’end to the ballyhoo. But the Lotus-killer was AppleWorks, and corporate Apple celebrated the triumph with silence. During 1985, 1986, and 1987, corporate Apple's reaction to its illegitimate child has been to continue to pretend that it doesn’t exist. AppleWorks, in tum, acts like a child of Satan as far as Apple is concerned. Not only does the program's success heap scom on the Xerox interface, AppleWorks eats third- party software alive, In Cupertino, the fact that since mid-1984 Apple itself has eamed a large proportion of the profits available in the Apple II software market has been a matter of concem rather than a matter of glory. It’s time for Apple to stop pretending, to modify its vision, and to admit to the reality of what the Apple Il has become since the Macintosh was introduced. In the three years since January 1984 more than 2 million Apple IIs have been produced and sold —weil over half of all Apple Its in existence. Just as VisiCalcmade the Apple II-Plus, justas Lotus 1- 25 made the IBM-PC, just as desktop publishing has made the Macintosh, AppleWorks made the Ile and IIc. Reality is that AppleWorks has become the essential characteristic, the defining characteristic, of the Apple II family. They laughed when AppleWorks sat down to play integrated software on an 8-bit computer, but nowhere has integrated software met near the success that it has on the Apple Il. AppleWork’s speed, ease of use, and seamless integration have set standards for all Apple {Is of the future. Reality is that more humans have learned the AppleWorks interface during the last three and half years than have leamed the Xerox interface—even though the Macintosh had a three-month head start Apple's insistence that the Xerox interface is the only interface in Apple's future is as stupid as saying that the only legitimate music is rock and roll or that the only legitimate literary form is the romantic novel. General Motors got to the straits it is in today by removing the distinctions between its automotive families, not by letting a Chevrolet be a Chevrolet and a Pontiac be a Pontiac. Reality is that the productivity area (word processors, data bases, spreadsheets, and similar programs) of the Apple II software market is a shambles, Apple has not only taken all the profit out of this market for three. and a half years — it has put nothing back in. Pretending and wishing that it wasn't happening, which has been Apple's primary reaction to date, has us on the edge of a disaster. (A secondary reaction has been spinning off a Macintosh software company and attempting to sweep AppleWorks under its skirts.) Only one established vendor of productivity software, Word Perfect, attended AppleFest. Where will future Apple II productivity software come from? Ata dinner for developers the night before AppleFest, Sculley said that the Apple II software market is the only one left in which small, independent developers aren't totally dominated by larger companies. That's true and, in general, that’s good. But if Apple couldn't find a company strong enough to publish AppleWorks in 1984, before it spent three years soaking up all the profits in this market, how could there be one now? Sculley thinks there are companies in the Apple II market with the resources to develop a product such as Hypercard, which took a team of the brightest stars at Apple three years to develop for the Macintosh, But Sculley said he’s looking to independent developers to provide that product for the Apple Il. Given the amount of money eamed by Apple II developers during the last three years, the idea is ludicrous. Reality is that homes are the final large market for personal computers, As the number of computers in schools and businesses mounts, we are approaching a threshold across which millions of people will decide to purchase computers for their homes. The Apple II's dominance in schools will put pressure on parents to buy Apples. However, the dominance of MS- DOS in businesses will put pressure on parents to buy clones. Apple is giving a large share of the home market away to the clones by not marketing the Apple Il as a machine capable of giving both kids and aduits the power to be their bestat home. For example, on October 12 Apple sponsored a network television celebration of the bicentennial of the U.S. Constitution. Of the twelve commercials shown, eight had to do with the Apple Ilgs and kids or education, two with Apple itself, and one with Apple Ils and the disabled. The sixth commercial shown was titled “The Home Office.” It alone promoted the idea of computer use by adults and it alone promoted the Macintosh. Taken as a whole, Apple's message was that the Apple II isn’t suitable for use at home by adults, This isn'ta message that will maximize Apple's share of the home market, nor is it a message that reflects the reality of hundreds of thousands of Apple IIs in homes tight now giving adults the power to be their best Apple will never acknowledge the existence ofits illegitimate child or begin Vol. 3, No. 10 to show that child love without first bringing its corporate vision in line with Teality, What Apple must incorporate into its vision is what Apple Il users realized months ago—that AppleWorks has shifted the distinction between “systems software” and “applications software.’ AppleWorks is the systems software that Apple II users want built into their machines — AppleWorks is the ‘platform’ that applications developers want to build from. Here are the ideas I would champion if I worked for Apple. First, corporate Apple should acknowledge Robert Lissner’s contribution to the Apple Il. He should be an Apple Fellow, like Bill Atkinson, developer of MacPaintand Hypercard;and Alan Kay, developer of the Xerox icons. Second, corporate Apple should acknowledge what Apple I users already realize, that the “operating system” of the Apple II ends on the AppleWorks desktop. AppleWorks should be in the box with current Apple lis and should be built into the ROM of new Apple Is (with plenty of RAM-based hooks for independent developers to get their teeth into). For example, a developer of application languages should be able to allow users to write programs with the AppleWorks word processor. When the user is ready to run the program, open-apple-K could compile and execute the program. The program should be able to take control of the screen, to request AppleWorks desktop memory, to access files on the desktop and on. disk, to use all-other operating system tools, and’so on. For example, a developer of communications software should be able to add a communications capability to the AppleWorks word processor. A developer of graphics software should be able to write a program that is activated whenever a graphics file is added to the AppleWorks desktop. A developer of spelling checkers should be able to write a program that works inside AppleWorks. And these developers should be able to do these things without worrying that Apple will add those features to a future version of AppleWorks and cut their market out from under them, (For additional information on what “applications software” is ifAppleWorks itself is “system software,’ take-a look at the programs in Beagle Bros’ new Time Out Series. Contrary to the popular expectation that IIgs products would dominate AppleFest, most of the people | talked to said they considered the Time Out Series to be the big hit of the show.) Apple is reportedly investing a large part of its research and development funds in system software technology. A fair portion of that money should go into a system software “platform” based on AppleWorks that defines an Apple II, rather than one that defines a Macintosh. Third, corporate Apple should acknowledge the havoc its illegitimate child has caused in the Apple II software market. Apple should reinvest the dollars it has made from AppleWorks in a Marshall Plan’ for Apple II software developers. The plan should be directed at small one- and two-programmer companies that are committed to the concept of Apple Il Forever, rather than at large companies that are primarily Macintosh and MS-DOS developers. The plan must be designed as an investment in the future of the Apple II rather than as a profit center. The plan should include strengthening Apple Il Developer Technical Support to the point that it can provide training by correspondence (rather than by a trip to California that is too expensive in both dollars and time). Developer support should also provide electronic forums for the discussion and implementation of software standards, an interface between software, developers and Apple's own hardware and systems software engineers, and a continuation of its current technical help by electronic mail, In addition to technical help, Apple II developers need marketing help. Presently this kind of help goes only to Apple II developers who share Apple's vision of the Apple II as a toy Macintosh. This help has to be extended to all Apple Il developers, no matter what their vision. In the Apple II kingdom, it has always been developers and customers who have, in the end, determined the direction of the Apple Il. Apple’s help should be available to ali. Since 1984, Apple's vision of the Apple Ill and the reality ofthe Apple Ihave been getting farther and farther apart. It’s time for Apple to blow away the Macintosh smoke and look at what the Apple II has actually become. ‘The reality is a machine defined by AppleWorks. The good part of that reality is that the Apple Ii has developed its own identity, distinct from Macintosh and MS-DOS machines. The future of the Apple II will be unlimited if corporate Apple builds on reality by making AppleWorks part of the Apple IT “system. software platform” and markets the power of that reality to adults with the enthusiasm it has heretofore generated only for the Macintosh. The bad part of that reality is that Yocam’s observations about why the Apple II was a success are no longer true. Few software companies besides Apple itself have profited from Apple II developmentin the last three years. If Apple is serious about producing advanced Apple Ils ten years from now, it should invest its AppleWorks profits now in rebuilding the Apple II software industry. November 1987 Control-I(nterface) S(tandards), continued innnng...rinnng...Hey you, get up there. This is Oscar the Grouch and I'm telling you it's time to get up. And don’t forget to wind the clock so I can wake you up again tomorrow....Rinnnng...Rinnng...Heyyou....” Early feedback on last month's lead article indicate it was a sleeper, especially for those of you among our readers who don’t write programs. | hope you'll understand that I occasionally have to resort to articles like that to make your lives easier in the future. Based on the mail we get. making a printer do what the salesman said it would still seems to be one of the primary problems in the Apple kingdom. Most of these problems are rooted inalack of standards for printers and printer interface cards. Open-Apple’s readers extend from those of you who don’t program, up thorough novice and intermediate programmers, up through commercial hardware and software developers, and right into the labs where Apple's engineers are designing future Apple Ils. We are all, ultimately, Apple II users. Things will go smoother for all of us if the programmers, developers, and engineers among us can agree on, understand, and follow a few more standards than we have in the past. Open-Apple is in no position to promulgate Apple IT standards, but I do want to provide a forum for raising issues, for uncovering problems, and for providing pressure for better Apple II standards. That's part of what you're paying for when you subscribe to Open-Apple (and alittle nap now and then is healthy, they say). Atany rate, this month's quest should be more interesting to most ofyou. Instead of looking at interface cards from the programmer's polnt of view, we're going to look at them from the user's point of view. We're going to investigate in detail the user commands that control Apple's three most popular serial interface “cards” or “ports.” There are significant differences in what these commands do and how they work. Detailing these differences here in Open-Apple should help users get the most out of their interface cards, should help programmers and developers understand how to get their programs to work on any Apple II (even yours), and should help Apple's engineers to stay consistent. ‘The three interfaces we'll be examining are the Super Serial Card, which is used in II-Pluses and Iles, and the serial ports on the Apple IIc and IIgs. The firmware for the Super Serial Card was written by Apple's Larry Kenyon. The Hc serial firmware was written primarily by Apple's Rich Williams, And the IIgs serial firmware was written primarily by Apple’s Mike Askins. Consistency with the Super Serial Card was not the highest priority in the design of the IIc or I[gs serial firmware. Particularly with the original Apple IIc, the limited amount of space for firmware was supposed to make ernulation impossible (the Ic had to fit firmware for two serial ports and the mouse in same amount of address space the Super Serial Card used), Though he was supposed to design just a simple serial interface, Williams managed to squeeze much of the functionality of the Super Serial Card into the original IIc. He did such a good job that today people wonder why the clown who wrote the IIc serial firmware didn’t emulate the Super Serial Card exactly, rather than wondering how the hero who wrote the IIc serial firmware managed to squeeze all that stuff into such a small space. Modes and defaults. All three serial interfaces can operate in either a “printer mode” or a “communications mode.” Printer mode is used for one- way transmission, as from your computer to a printer. Communications mode is used for two-way transmission, as from your computer toa modem and back. The mode that an interface operates in has to be set up ahead of time—it cannot be changed with a command. With the Super Serial Card, you specify the mode by selting a dip-switch on the card itself. The manual tells you how. With the IIc, you specify the mode using the Ic System Utilities program. With the IIgs, you specify the mode using the control panel. The llc and figs default to printer mode on port 1 and communications mode on port 2. This is what you'll always get when you tum on the IIc. The ligs, on the other hand, stores its control panel settings in battery RAM, so if you change these default modes it will remember your new choice while turned off. Ifyou change the IIc power-on defaults with the System Utilities program, what actually happens is thatsome valuesin the “auxiliary memory screen holes” are modified. The new values will be remembered as long as the IIc is tumed on. Every time you initialize a IIc serial port, the finmware Jooks in these screen holes to see what the current “dip-switch settings” are, Youcan modify these values with your own programs — for more information, see our November 1985 issue, pages 1.86 and 187. In addition to mode, all three interfaces support a number of other variable characteristics. Each device figures out the default characteristics you want the same way it figures out its mode—dip-switch settings for the Open-Apple 3.75 Super Serial Card, auxmem screen hole values for the IIc, and control pane! settings for the Ilgs. Some of these variable characteristics include baud rate, data format, parity, echo, line width, and handling of carriage returns and line feeds. In most situations, your goal as a user should be to set these defaults to values that support your equipment and leave them alone. !fyou succeed at this, you don’t need to know anything more about serial interfaces. Command syntax. The rest of us will now leam about how to send commands that cause an interface to change its characteristics from their default values to something else. The Super Serial Card and the serial ports on the IIc and IIgs can all be controlled by embedding “command strings” in your printed output. The idea is that the serial firmware will recognize and intercept these strings of ASCII characters, then act on them rather than passing them on to the printer or modem, This’is a common method for controlling devices attached to a computer — your printer and modem probably have their own command strings that they react to. Even the Apple's disk operating system, when used from Applesoft, is controlled by command strings. Both the Basic Interface and the Advanced Interface (also known as Pascal 1.1—see last month’s article for more information) on Apple's serial firmware respond to command strings. Though common, the technique isn't foolproof. “Control-D(efeated)” in our December 1986 issue, page 2.85-86, discusses a number of specific problems with the embedded command string technique. On the other hand, the technique is quite flexible and allows for a great deal of compatibility, AppleWorks, for example, provides a way for you to enter an interface card command string that will be sent each time you print something. Since you are able to completely control the contents of the command string, you can adapt AppleWorks to any interface card that reacts to them. The alternative methods of controlling devices, such as POKEing controlling values into memory or CALLing command routines, provide finer control but less ease of use and less compatibility. The Ilgs serial firmware, incidentally, does support control calls as well as command strings, as discussed here last month, but the Super Serial Card and the IIc alfow only command strings. Apple has used three different formats for serial interface command strings. All begin with a command character (usually control-I or controkA, more about this later). In the first format, the command character is followed by a single, non-control character, for example “controH R” In the second format, the command character is followed by a decimal number, which is immediately followed {no space character allowed) by a single, non-control character, for example “controll 80N." In the third format, the command character is followed by single, non-control character, a space, and either “E” (enable) or “D” (disable), for example, “controll L E” (the Ic technical reference manual says there should be “no intervening space” with this syntax, however, the IIc actually ignores spaces; the Super Serial Card requires them), The Super Serial Card, the IIc, and the llgs each has its own special rules about whether extra characters, spaces, or lower-case are allowed within a command string, To keep your software as compatible as possible, always use upper-case characters and never include spaces or extra characters ina command string, except for the space that is required immediately before “E” or “D." (If you are writing firmware, on the other hand, you'll get the greatest compatibility by allowing the lower-case versions of command characters as well as upper and by making spaces optional anywhere in the command string.) Apple's firmware will accept commands whether they are sent in high-value ASCII or low-value ASCII. Ifyou are writing firmware, make sure yours does as well. An important difference between the Super Serial Card and the IIcand IIgs serial firmware is that the Super Serial Card requiresa Retum at the end ofa command string. The Super Serial Card considers everything between the command character and the Return character to be part of the command string. None of this, including the Retum ttself, is sent to the printer or modem. Even if the command is unrecognized, the Super Serial Card will eat it all. On the llc and IIgs, on the other hand, at least some portion of an unrecognized command is usually passed on to the printer or modem. In addition, the IIc, Ilgs, and most other Apple II interfaces do not require a Retum at the end of the command string (the Super Serial Card is the non- standard device). Ifa Return is included, it is always passed on to the printer. ‘Thus, any program that uses interface card commands and thatis interested in controlling the position of the paper in the printer must figure out if itis using a Super Serial Card or not. Ifso, it should puta Retum at the end of all commands (whoops—except three “parallel card” commands and the “change command-character command,’ all noted later). If the program is 3.76 Oper-Apple running on allc or IIgs, on the other hand, Retums at the end of commands should always be suppressed (whoops — except after a special version of the line width command, more later). For example, ifyou are setting up an interface card command string within AppleWorks, you have to know whether the command requires a Retum or not If it does and you leave the Return off, the command will either not be executed or will cause other problems. If it doesn’t and you put one there anyhow, your paper will be advanced one line without AppleWorks knowing about it Another problem is that since the IIc and IIgs don’t require a Return, they allow command strings to be strung together, such as “control-I 80N control- ILE” This doesn’t work with the Super Serial Card because the required Retum at the end of each command is missing. The command character, As mentioned, each command string must begin with a “command character.” The command character defaults to control-l in printer mode and control-A in communications mode with all. three of Apple's devices. You. cannot specify a different default command character. However, all three devices allow you to change the command character after initialization by printing the current character and following it with any other control character except a carriage return. “Control-I control- 7" (CHRS(9);CHRS(26)) for example, will change the printer mode command character to control-Z. “Control-1 Return” (CHR&(9);CHR$(13)) does nothing, “Control controlZ Retum” (CHRS(9);CHRS(26);CHR8(13)) changes the command character to control-Z and passes a Return to the printer—even with the Super Serial Card. On the lc, “control-I control-0” (CHR$(9),CHR$(0)) has the undocumented feature of executing the primary feature of the “Zap” command, about which we'll talk more later. So don’t use control-@. Another character that causes problems is control-D. It interferes with DOS. Various Apple manuals also recommend against control-A. -B, -C, -H,-1,-J,-L-M, and -¥.Control-Z is frequently used. ‘The firmware in the llc and in the Iigs resets the command character to its default value every time the firmware is initialized. This means that after every PR# (IN*) or INIT call (the INIT call is available under the Advanced Interface) the IIc/Ilgs command character is reset to control-! or contro-A. The Super Serial Card, on the other hand, does not reset the command character to the default value. With the Super Serial Card in printer mode, do aPR*1, change the command character to control-Z, and do another PR#1— the command character will stil! be control-Z, On the IIc and Ilgs, your second PR#1 will reinitialize the command character to controH. [n this respect the IIc.and llgs are like most other Apple II interface cards —the Super Serial Card is the non-standard device. This difference is at the root of a fair proportion of “printer” problems and is important to understand. It applies not only to the command character, but to all Super Serial Card default characteristics except “Zap” status. After a PR*1 or the equivalent, the Super Serial Card will reset itself to its dip- switch defaults only if this is the first initialization following power-up, following control-reset, or following the Super Serial Card's R(eset) command. Inall other cases, PR*1 leaves the Super Serial Card's characteristics as they were when the firmware was last used. Consequently, any program that uses the Super Serial Card and that changes the default settings must also unchange them. If it doesn’t subsequent programs, or even the same program run a second time, may find the Super Serial Card unresponsive to commands. For example, if a program changes the command character to control-Z and neglects to change it back to control, contol-1 commands from programs run later will not be recognized by the Super Serial Card. If the same program is run a second time, for instance, it will send the. control-| control-Z code again. The control will be sent to the printer and the control-Z will be recognized as the beginning ofa command. Pretend the next thing sentis a command to add linefeeds to carriage returns, “control-Z LE.’ When the Super Serial Card sees the two control-Zs in a row it will send the second one to the printer. Thus, the control-l, the second control-Z, and the “L E’ will be received by the printer—not the program's intention at all. None of this is a problem with the IIc or Iigs, but to make your program compatible with the Super Serial Card and third party cards that emulate it you must always change the command character back to control if you change it to anything else. Make sure that it gets changed back even ifyour user Stops printing in mid-page. If, as a user, you find a commercial program in your library that doesn’t retum the Super Serial Card to its default settings, the only thing you can do to set things right is to tum the computer off or press control-reset after Tunning the program. There's a chance you could use the Super Serial Card's Vol. 3, No, 10 “contol-I R” reset command (more later) but if the command character has been changed, even this command will go unrecognized. ‘The feature whereby two command characters in a row sends one of them to the printer works only on the Super Serial Card. Neither the IIc nor the Tigs support this, so don’t use it. While you might expect that all third-party cards would use control] and controlA as the default command characters, it isn’t so. The popular Grappler-Plus uses control for commands sent to its Advanced Interface {see "Go, Logo, Go,’ September 1987, page 3,64 for a good example of the kind of problems this causes). Firmware authors — please stick with control- Tand control-A. Reset. All three interfaces under discussion here support the “reset firmware” command. This command tells the firmware to reset itself to its “dip-switch” (auxmem, control-panel) defaults the next time it is initialized. However, on the Ilc and Ilgs this always happens automatically, whether you've used the R command or not. The R command also disconnects the interface firmware. With a Super Serial Card, this will jolt your screen out of 80-column mode ifit's in it Thus, Reset is an ill-behaved command that has no useful effect except with the Super Serial Card. Nonetheless, anyprogram that uses other command strings should issue this command as part of its QUIT routine, so that the next program that nuns can assume a “normal” serial interface. The syntax is, for example, “control-A R” To avoid the 80- column jolt. try a program-ending sequence like this one: 9990 REM 9991 HOME 9993 PRINT CHRS(21) 9995 PRINT CHRS(4);“t 9996 PRINT CHRS(' 9999 PRINT CHRS(: ss.end of program + REN clear screan to avoid Jolt on 8¢/4@ suitch + REM turn oFF 88 columns just to be safe "REM turn on serial port : REN reset defaults and turn serial port off YE” : REM back to the program selector Zap. The Zap command was designed to solve some of the problems that occur with devices that use embedded command strings. After you issue a Zap command, the interface firmware will stop intercepting command strings and will pass everything it receives on to the printer or modem. The Zap command is handy, for example, when you want to send strings of binary data to a printer for a graphics printout or for a downloaded character set. Without Zap, problems occur ifyour binary data accidentally includes a value that duplicates the interface firmware command code. That byte and an indeterminate number of the following bytes will get swallowed by the firmware and your picture or character set will have a hole in it. The syntax for Zap is, for example “control-| Z.” To tum Zap off, simply do another PR# (IN#) command or make the Advanced Firmware INIT call. This works even with the Super Serial Card. There is no command string for turing Zap off. obviously, because the firmware is ignoring all command strings when Zap is on. Because the Zap command is typically used before sending binary data, many programmers make the assumption that in addition to telling the firmware not to eat any characters, it also tells the firmware not to burp any additional characters into the character stream. This is not the case. Apple's serial firmware can be set up to automatically burp both linefeeds and carriage retums into a character stream. Linefeeds, if burped, are burped after Returns. Returns, if burped, are burped when a specified number of characters have passed without a Retum. This is for line-length control, With the Super Serial Card, the Zap command has no effect on either linefeed or Return insertion. With the Ilcand IIgs firmware, the Zap command automatically tums off Return insertion, but has no effect on linefeed insertion. ‘Thus, ifyou are using the Zap command to pass binary data toa printer or modem and you don’t want occasional extra bytes inserted into your data, you should tum off both Retum and linefeed insertion before executing the Zap command. If you do this with a Super Serial Card, don’t forget to have your program turn the printer back on and issue the Reset command during its QUIT routine. Linefeeds. A “linefeed” is a control character that tells a printer to advance the paper one line. Many printers require a linefeed after each carriage retum, since all they do in response to the Return is move to the left edge of the paper, All three of Apple's serial interfaces have the ability to either add or not add a linefeed after each carriage retum you send. In general, the default setting for linefeed insertion is ON with printer mode and OFF with communications mode. However, the Super Serial Card allows you to control this default with a dip-switch in printer mode, and the Ilc and Ilgs, using the IIc’s auxmem screen hole values and the ligs‘s control-panel, allow default control in both printer and communications modes. November 1987 If the default setting isn’t what you want or if you aren’t sure of the default, you can force linefeed insertion to OFF with the K command. This is one of the three “parallel” commands that don’t require a Retum on the Super Serial Card. (IF you put a Retum after this command it will be passed to the printer.) On the Super Serial Card this command, like all parallel card commands, works only in printer mode. On the IIc and llgs it works in communications mode, too. See “One of the first interface cards designed for the Apple II” in last month's issue, page 3.65, for more information on the heritage of this and the other parallel card commands. Unfortunately, there is no universal way to tum lnefeeds ON with Apple's firmware. The Super Serial Card, the 3.5 ROM Ilc, and the Ilgs support an enable/disable linefeed command that goes, for example, “controH L E” ({command-code, Linefeed, Enable) or “control-! LD” (command-code, Linefeed, Disable). The original IIc doesn’t support this syntax. The original IIc firmware does support an L command, however, that will tum linefeed insertion on. It goes, for example, “control-A L.’ The 3:5 ROM lic firmware sort of supports the original IIc’s L command, but not very well (the 3.5 version 's to require either another command character or a Return after the ‘itgets a Return it eats it, although the original IIc firmware would pass it through). Neither the Super Serial Card nor the IIgs supportthe "L“ version at all. In addition to inserting linefeeds into the data it sends out, all Apple serial firmware can also delete linefeeds from data coming In from outside the computer, Obviously, this has no meaning in printer mode, so it applies only to communications mode. The defauit setting for this feature is amish-mash. The Basic Interface on the Super Serial Card and both versions of the Ilc firmware default to deleting incoming linefeeds. The Advanced Interface on the Super Serial Card and both interfaces on the IIgs firmware default to allowing incoming linefeeds to pass through unmolested. With the Super Serial Card, the 3.5 ROM Ilc, and the IIgs, you can use a “Mask linefeeds” command to control linefeed deletion. For example, “control-AM E” (command code, Mask, Enable) causes incoming linefeeds to be deleted; “control-A M D” (command-code, Mask, Disable) causes incoming linefeeds to be passed. With the original IIc, there is no way to change the default— incoming linefeeds are always deleted. Screen echo, line width, and Return. “Screen echo” has to do with whether the data you send out from your computer appears on your screen as you send it In the context of serial ports, this characteristic is also sometimes called ‘video.’ Some commands for turing screen echo on and off also affect “line width.’ Line width affects how often Retums are burped into the character stream being output. However, on some interfaces, line width isn’t the only variable that controls Return insertion. First lets look at Retum insertion. The Super Serial Card, the Ic in ‘communications mode, and the IIgs all default to NOT adding Returns when the specified line width has been reached. The original IIc firmware in printer mode (and most parallel card firmware), on the other hand, does insert a Retum when the specified line width has been reached, This can be a problem when using condensed characters with software such as AppleWorks. At 17 characters-per-inch you can get 136 characters on an 8 inch piece of paper. If the interface firmware adds a Return after every 80 characters, however, what you'll see on your printout won't be what you expected, in most applications today, you want Retum insertion tumed OFF. However, neither the Super Serial Card nor the original IIc have acommand for doing this. With the Super Serial Card this isn’t a major problem, since it defaults to no Retum insertion, anyhow. With the original IIc, however, which defaults the other way, itis a problem. The IIc manual mentions a POKE you can use to tum off Retum insertion, but we're not allowing POKEs in this article. The only command-based alternative for turning off Return insertion on the original IIc is to use the Zap command, There are nocommand-based alternatives for turning off Retum insertion on the Super Serial Card, not even Zap does this~so don't turn it on unless you really need it While most applications work best with Return insertion OFF, LISTing Applesoft programs on a printer works best with Retum insertion ON. This way the ends oflines that are more than 80 characters long are “wrapped” to the following line rather than being printed on top ‘of the beginning of the line. The IIc and most parallel cards do this automatically, The Super Serial Card and the Ilgs, however, require two commands to implement this. One is to set the line length to something other than zero and the second is to tum on. Return insertion. To turn ON Return insertion with the Super Serial Card, the command is “¢” as in “contol! C” This syntax works only on the Super Serial Card, however. The 3.5 ROM Ic and the IIgs support an enable/disable command Open-Apple 3.77 for this, as in “control-1 C E.” On both versions of the IIc you can also turn on Retum insertion simply by setting the fine width to anon-zero value. (The 3.5 ROM llc’s “C E/D” command sets the line width to zero when you choose disable and sets line width to the initialization default when you choose enable. Thus, if the default line width is zero, as it is in communications mode, the “C E” command has no effect. Not to worry, use one of the line width commands to set a positive line width instead.) To summarize: with the IIc (and most parallel cards), Return insertion always occurs unless the line width is set to zero (unfortunately, however, the original lIchas no command for setting the tine width to zero other than Zap). With all other Apple interfaces, Return insertion requires botha non-zero line width and enabled Retum insertion. Line width is controlled by a variety of commands, only one of which is nearly universal. The “I” command, asin “control-I I,’ sets the line width to 40 on the Super Serial Card (it also affects echo; more about that in a moment). On the IIc and the IIgs the “I” command has no effect on line width. Both versions of the [cand the IIgs supporta line width command that consists of a decimal number, between 1 and 255 inclusive, followed immediately by a Retum. The Return is eaten by the firmware and the line width is set to the decimal number. This command has no affect on Echo. The Super Serial Card doesn’t support this command, however. The nearly universal version of the line width command is “nN,’ as in “control-I nN,’ where the small “n’ is again a decimal number between 1 (IIc/ Ilgs) or 40 (SSC) and 255 inclusive, What prevents this command from being universal is that it doesn’t work in communications mode on the Super Serial Card. Another feature of the “nN” command (which is one of the “parallel card commands” that never requires a Retum after it) is that it disables Echo. ‘There are also a variety of ways to control Echo. The simplest is the Echo enable/disable command, asin “contol-AE D,’ for example. This command isn’t available on any version of the IIc, however, nor is it available from printer mode on the Super Serial Card. The “I” command mentioned earlier (which is the third and final of the parallel commands that never require a Retum) enables Echo on all interfaces except the Super Serial Card in communications mode, In printer mode on the Super Serial Card, it also changes the line width. The “nN” command disabies Echo on all interfaces except the Super Serial Card in communications mode. It also changes the line width. When you are using a program suchas AppleWorks, you wantyour interface card's Echo disabled and Retum insertion off. (Echo disabled so that what you print doesn’t appear on the AppleWorks screen; Return insertion off so that AppleWorks has complete control over Return placement) The “nN” command is the universal “no Echo” command. Unfortunately, there is no universal “no Retum” command —in fact, as we have seen, the Super Serial Card and the original IIc don’t have any command for this at all. On some third-party parallel cards, “control-I ON” does the trick. However, the Super Serial Card ignores this command completely; the IIc and IIgs respond by disabling Echo but leaving the line width unchanged. The closest thing to a universal interface card command for AppleWorks and similar programs would be “control-] 255N.’ This disables Echo and, while it doesn’t tum off Retur insertion totally, it will suffice until we have printers that can fit more than 255 characters on one line. While AppleWorks and similar programs prefer Echo and Return insertion OFF, Applesoft programmers often prefer to have them both ON. This is so that you can see what you're typing after you enteraPR*1 command from the keyboard (if Echo is disabled what you type appears only on the printer), and so that long lines wrap correctly, as mentioned earlier. There are no universal commands to accomplish this, either. On the Super Serial Card you must execute the “control- C’ command to get return insertion to work at all. If you next do a “control | to enable Echo, that command also sets the line width to 40. Ifyou try to change the line width to something longer with a “nN” command, that will tum Echo back off. Gotcha —the Super Serial Card won't let you have both Echo and Retum insertion unless the line width is 40. On the IIc, Retum insertion works whenever the line width is non-zero, soan "nN" command to set the line width you want followed by an “I” command to enable Echo will get you where you want to go. Finally, on the IIgs, you first must enable Return insertion with a “control-l C E” command, set the line width you want with an “nt” command, and enable Echo with either an “I” or an “EE” command. In communications mode, whether you want Echo or not depends on whether you are working with a “full duplex” or “half-duplex” host computer. Under the typical fulljuplex arrangement, the host computer echos the 3.78 — Open-Apple characters it receives from you back to you and it is the echoed characters that appear on your screen. (You type “A”’ it goes out your serial port, through your modem, down the telephone line, through the receivers modem and serial port, to the host computer, which echos it back through its serial port and modem, over the telephone line, through your modem and serial port, and onto your screen—makes you appreciate the speed of electrons, Incidentally, if both computers are set up to echo everything they receive, the “A” flies back and forth like a ping-pong ball and the communications link seems to freeze up.) Under full-duplex you want your local Echo disabled, or else all the characters will appear on your screen twice. A half-duplex host, on the other hand, does not echo your characters back to you. For this you want. local Echo enabled, or else you won't be able to see what you are typing, Note that in communications mode the Super Serial Card does support the "E E/ D” command, as does the IIgs. The !Ic and the Super Serial Card in printer mode don't have this command; again, your only recourse is to control Echo with the “I” and “nN” commands. Baud, data format, and parity, For most applications there is no reason to have to change baud, data format, or parity by command. You should be able to set up your system so that the correct characteristics are chosen by default. With the Super Serial Card, you choose the defaults by setting dip- switches, with the Ilgs you choose the defaults with the control panel, With the IIc you choose the defaults with the System Utilities program. Ifyou’d rather not have to run the System Utilities program every time you tum your IIc on, simply make your printer, modem or whatever match the Ic’s default defaults —9600 baud, 8 data bits, no parity for port 1; 300 baud, 8 data bits, no parity for port 2 (for more information on data format and parity see Uncle DOS's introductory comments in last month's issue, page 3.69). Ifyou must change one or more of these characteristics by command, at least you'll find near perfect consistency in the commands available to do this. Baud is changed with an “nB” command; data format with an “nD” command, and parity with an “nP” command, where § ni-teud rate rOedata format sPaparity data/stop bits @* use default @ B11 @ none i se 1 2 4 1 odd +4 7 2 6b 2 none 3 ne a 51 3 even 4 134.5 * 6 2orl 4* none 5 150 5 72 5 TBR 6 we 6 6 2 &* none 7 fo) ” 5 2orl-V2 ‘7* SPACE B 1200 3 1800 * NOTES: @8 resets baud to dip-sui tch/control-panel we 2408 é S8C/LIgs, drives Tie crazy. lL 3600 4D has 1 stop bit with parity options 4-7. 12 4300 70 has 1-1/2 stop bits with parity options @-3, 13 7208 59C ang Tle only a4 9600 4P-7P not available on IIgs 15 19200 As almost always, the Super Serial Card expects a Return after these commands, the IIc and IIgs don’t. Handshaking, Handshaking is a morass I'd just as soon not get into, but since serial devices don’t work well withoutit 1 quess we'll have to. Here's the idea of handshaking—you are printing an AppleWorks spreadsheet on your printer and your interface and printer have been set up to communicate at 9600 baud. Although your printer can communicate at that speed, it can’t actually print anywhere near that fast. Most printers have at least a small amount of memory for storing a few of the characters waiting to be printed, but for large amounts of characters the printer has to have some way to tell the computer to stop and wait. Once the printer has caught up, italso needs away to tell the computer to proceed. This is what handshaking is all about. Serial devices have several different hardware protocols that go by narnes such as “data carer detect” (DCD), “data set ready/data terminal ready” (DSR/DTR), and “request to send/clear to send” (RTS/CTS). These protocols involve electrical signals on special wires running between the sending and receiving devices. With the Super Serial Card and the ‘Apple IIc the commands for changing hardware protocols involve a pair ofwire cutters and a soldering iron. The Apple Ilgs allows you to independently tum DCD and DSR/DTR handshaking on and off using the contro-panel defaults or using control calls to the Advanced Interface, but provides no command strings for this. In addition to hardware protocols, there are software handshaking protocols. These involve the receiving device sending command strings to the sending device that tell it when to start and stop. The version of this Vol. 3, No. 10 protocol used by Apple's interfaces is called XON/XOFF. It is available on all the interfaces we're discussing here except the original IIc, which doesn’t supportit The command for tuming it on and off is "XE/D.’ Italways defaults to off, Applesoft TABs. The Super Serial Card and the ligs include a command that causes the Monitor's horizontal position counter to be left equal to the column count. Normally both the Super Serial Card and the Apple II 80- column firmware force this counter to zero. To get the Applesoft PRINT TAB command to work correctly when sending stuff to your printer, itis necessary to PRINT CHR§(21) to the screen to tum off the 80-column firmware and then to issue the serial interface Tab command. This command has the enable/ disable syntax. With the Super Serial Card the command letter is “T’ with the {Igsitis “A,” so for example, “control-lA E’ would enable Tabs on the Ilgs. Itis also a good idea to disable Echo when using the command, otherwise the first few lines of your Applesoft program, which lie adjacent to the memory area used for the text screen, can get poked full of holes as characters are displayed beyond the 40th column of the 40-column screen. Neither version of the llc has a Tab command, For some more universal solutions to this problem, see “PRINT TAB alternatives” in our March 1987 issue, page 3.14. Communications mode. All three interfaces include “dumb terminal” software. This lets you talk over a modem quite easily. None of your session is saved anywhere, however, so you can't use this for “downloading” material any faster than you can read it or copy it onto a sheet of paper. For all three interfaces, the command for entering the terminal is “T’ as in “control-AT.’ To exit the terminal, use “control-A Q” All three interfaces also support “remote-control” terminal commands, This means that if a control-T comes in from a remote device, your serial firmware will jump into terminal mode and stay there until itsees a contro-R. I can't quite figure out what the practical value of this feature is, but somebody somewhere obviously once thought it was important. It can bea troublesome feature if you are trying to receive binary data through the serial firmware and the data accidentally includes a control-T, because further data (up to the next control-R) will be lost A similar problem occurs if you have XON/XOFF handshaking enabled and you receive a control-S or control-Q {the XOFF and XON characters). In that case, at the very least the control-S or control-Q will be eaten. In some cases, all data after the control-S and before the next control-Q may be lost. With the Super Serial Card you can avoid both problems by turning off XON/XOFF protocol (conversely, this means contro-T works only if XON/ XOFF is enabled). On the IIc, a Zap command will prevent control-T and controFR from working, The Ilgs doesn’t have a way to prevent control-T and controFR from working that | can find. Another potential problem that occurs when you are receiving data from a remote device is corruption of the data by accidental taps on your keyboard. Normally the serial firmware accepts input from the remote device and the keyboard simultaneously. A program can temporarily disable the keyboard by issuing a “control-A F D” command. After this command, keyboard pecks will be ignored. The keyboard can be re-enabled with “control-A F £,” but obviously this will have to come from your program —you can’t type itin and expect anything to happen. One other feature you may find useful in communications mode is the power to send a BREAK signal. This signal consists of 235 milliseconds worth of zero bits and is used by some computer systems for signoff. On the Super Serial Card, the command for this is “control-A B Return.” On the IIc and Iigsit's “contro-A S.” | can tell from the Super Serial Card and lic source code that their versions of BREAK are shorter than 233 milliseconds when an accelerator is used; I suspect this was fixed on the IIgs but | can’t figure outa way to testit. Other commands. The Super Serial Card supports several more commands notalready mentioned, Three of these are for adding delays after cariage retums, linefeeds, and formfeeds. Printers without memory buffers require these delays or they skip characters that come in while the printer is moving the print head or the paper. Neither the IIcnor the IIgs support these commands. The Super Serial Card also has a command that allows your Apple to be connected to a modem in one slot and an external terminal in another and a command that can cause conversions between upper- and lower-case. Of more interest is a command new the IIgs, a command that enables input and output buffering, Issue a command such as “control-A B E” and you suddenly have 2,048-byte buffers for both input and output (assuming the memory manager has that much memory available—if not, you'll get November 1987 128-byte buffers). The size of these buffers can be changed using Advanced Interface contro! calls. Here's how the buffers work —whenever an incoming character arrives or an outgoing character has been transmitted, the serial chip will send an interrupt signal to the firmware. The firmware collects incoming characters and puts them in the input buffer and takes characters out of the output buffer and transmits them. Like other IIgs serial firmware features, buffering status after port initialization can be controlled with the control-panel. Note, however, that if your control-pane] default is set to no buffering and you set up buffers by command, those buffers will disappear if you reinitialize the port with a PR# command or the equivalent. Applesoft programs can get incoming characters from the input buffer or Open-Apple 3.79 put outgoing characters into the output buffer with normal INPUT and PRINT commands. The advantage of an input buffer is that normally Applesoft can’t do INPUTs fast enough at high baud rates to capture all incoming characters. Butwith a buffer and handshaking, the serial firmware effectively slows down the rate of transmission so that Applesoft can handle it error-free. The advantage of an output buffer is that you can PRINT a chunk of text and go about your business while the firmware sends it out at a slow baud rate. Using Advanced Interface control calls with the ligs serial firmware, you can build on the buffering routines to do fancy stuff such as create large printer buffers for background printing, The ligs can feed characters to your printer at whatever speed it requires while you go on about your business. If last month's article made you sleepy, this month’s might give you insomnia. | hope not Pull up the covers, Bobo. Ask (or tell) Uncle DOS If you've ever daydreamed of having a job like Uncle DOS, if you're good, and if you're committed tothe Apple I, senda resume to Jim Merritt, Manager; Apple if Developer Technicat Support MS-27-T; Apple Computer Inc; 20525 Mariani Ave; Cupertino, CA 95014. Mopping up EMI Television interference (TV), radio interference (RFI), and broadcast interference (BCI) are three of the biggest problems that plague home computer owners, as mentioned in last month’s letter “Apple Makes Family Grumpy’ (page 3.70). As a group, they are known as electro magnetic interference (EMI). I am a ham radio operator and have had to lean quite a bit about what causes the problems and what can be done to fix them. Sometimes, fixes are relatively easy. Other times they are simply impossible, Some-reading material that Open-Apple readers who have EMI problems might find interesting are the Apple Ii-Plus/ile Troubleshooting & Repair Guide, by Robert C. Brenner, pages 189-194 (H.W. Sams, $19.95), Radio Frequency Interference (American Radio Relay League, $4), and the October 1987 issue of PC Resource magazine. Computers create EMI because they have oscillators —components that create electronic signals that “vibrate” on and off very rapidly. The Apple lie's main oscillator vibrates at a speed of just over 1 MHz (1 million vibrations per second). The Apple II's power supply also generates electronic vibrations in the 10- 100 kHz range (10 to 100 thousand vibrations per second). If you have a speed-up card, it also has an oscillator, In a perfect world, the frequencies mentioned would not be ina range that would cause interference with radios and TVs. However, the oscillators also create harmonics that will extend far beyond the fundamental frequency. These harmonics usually are where EMI and other problems occur. EMI can be “conducted” (passed through wires— usually the AC power line) or “radiated” (passed through space like radio signals). Some simple ideas that can solve conducted EMI are to make sure the computer and TV are on separate AC circuits and to connect traps or line filters between the power outlet and the TV or computer or both. If your problem is radiated EMI, some simple solutions may be to locate the computer farther away from the TY, to rotate or reposition your TV antenna, to replace the TVs twin-lead antenna cable with 75 ohm TY cable-or to subscribe to cable television, Oryou can unplug all the cables from your computer and see if that helps. Cables can and do act like antennas — they radiate the computer's intemal EMI to the outside world. With the computer on and no cables connected, see if you still have interference. If not, you can reduce radiation from your cables {including the power cord) with “ferrite cores.” If your computer dealer has a sharp technician, they may keep them in stock. A good electronics supply house should have them too. Computer Radio, Box 282, Pine Brook, NJ 07058 sells a splitting choke that is very easy to install and is specially designed for computer EMI applications. For $17 ppd you get a package of four cores. These cores are split so that cables with connectors can be wound in them. Wind the cable two to four times around the core. From this point on fixes get more difficult. My Apple Ile is by far not the worst computer in my house. | have an MS-DOS clone that completely obliterates all TVs in the house. But that's another Stony J.Craig Clark Jt Ham Radio Magazine Greenville, N.H. Patch instructions patchy a1 can't get-the “AppleWorks as copy machine” patch (October 1987, page 3.71) to work. The patch didn’tinclude loading directions for the SEG.M1 file... Lee Hayward Denver, Colo. ..October's “AppleWorks as copy machine” letter instantly appealed to me. But there must be a few introductory steps before one types the patch instruc- tions. This poor soul isn’t even able to load SEG.M1... Robert J. Net Canton, Ohio The secret to the patch as published is that you don't have to load SEG.ML I should have made that clear. Since the patch is only one byte long, Bird just pokes that new value, 255, into memory at byte 768, then “BSAVEs" that byte into the correction locations inthe program. Here's an explanation: cod SAVE Notice that the length of what's being saved is 1 byte tong. The A parameter tells Basic.system to Filename SEG.NL, adr byte A768, 836074 Filetype 1508, Length u, look for that byte at memory cell 768. The B parameter tells Basic.system to stuff that byte into the 36,074th byte of SEG.M1, which has a file type of $00 (if you don't specify the file type, Basic.system will give you a FILE MISMATCH error, since BSAVE normally expects to work with a BiNary file). Under DOS 3.5 this command syntax would erase the old SEG.M1 and replace tt with a Lbyte file. Basic.system, however, leaves SEG.M1 just as it is except for overlaying the 36,074th byte with the new value, For more on this see “The binary savior,” and “It's painful to B misunderstood” in the July 1985 Open-Apple, page 151. All AppleWorks patches should be performed on backup copies, of course, in case one of us makes a mistake. Ifyou use Pinpoint or one of the AppleWorks expansion programs it is usually necessary to make this patch, and others like it published here, to an original copy of AppleWorks, then reinstalf Pinpoint or your expansion program. The reason this is necessary is that Pinpoint and the expansion programs tend to move things around inside the AppleWorks files; what the patch expects to change at byte 36074 may now be elsewhere inside the file. Two lines too cryptic The two-telephone discussion in your July 1987 issue (page 3.42-43) is intriguing, but too cryptic for me. Could you explain it again? Gary Smith Claremont, Calif. Call your local phone company and ordera “second line” for your house. This line will be separate from your first and will have a different phone number. The phone company wil! run a new cable to your house that will end on an outside wail somewhere in a box called a “network connection.” This is where the phore company’s property ends and yours begins. Somewhere inside your house you should be able to find a “junction” where a cable running from your first phone's network connection joins cables coming from all the phone jacks in your house. If you can’t find this junction get professional help. Run a new cable (available from Kadio Shack, hardware stores, phone stores...) from your second line’s network connection to the interior junction. At the network connection, attach the new cable's four wires according to the colors listed on the network connection box. At your junction bax, disconnect the yellow and black wires from your first telephone line and leave them unconnected. Connect a multimeter to the remaining yellow and black wires that nin to your Phones from the junction box. They should have no voltage and infinite resistance. If they don't, get Professional help. 3.80 Open-Appie Now connect the red wire from your new phone line to the yellow wires running to your phones. Connect the green wire from your second line to your phones’ black wires. Leave the new phone line's yellow and biack wires unconnected. Everyjack in your house now has both phone lines available, Existing phones will siill be connected to your old number. To hook a phone to your new second Une, you either need a two-line phone that will plug into a modular jack and receive both lines, or yout will need a “two-line modular jack” to stick into an existing jack. It will give you two outlets to plug phones or modems into—one for the old line and one for the new tine. Frigid flaw Bill Basham trick of wiping out a byte in the keyboard microprocessor’s RAM to fool the Memory Manager into doing a “frigid” reboot is extremely dangerous ("Reboot, cold reboot, frigid reboot” July is written, edited, published, and © Copyright 1987 by Tom Weishaar Business Consultant Richard Barger Technical Consultant Dennis Doms Circulation Manager —_ Sally Tally Business Manager Sally Dwyer Most rights reserved. ll program's published in Opew-Appte are public domain and may be coped and disinbuled without charge. pale user greups and significant olhets may reprint articles Irom Time to time by specific writen request. Requests and other ecitora| material ineludingletiersto Uncle DOS, shouldbe senito Open-Apple P.O. Box 7651 Overland Park, Kansas 66207 U.S.A. Published monthly since January 1985 World. wide prices {in US. dollars, airmal delivery includes at no additional charge): $24 for | year, $44 tor 2 years; $60 for 3 years, All single Dack Issues are Currently avaiable for $2 each, bound, indexed editions of Volume + and Volume 2are $14.95 each. Volumes end withthe January issue an index for tre prior volume is included with the February issue. Please send all subseription-related correspondence to Oper-Apple P.O. Box 6331 Syracuse, N.Y.13217 U.S.A. nen Appt ail on dk rom Span Eseries PO 39¢7986, Houston, Texas 77270 (713-461-1686) Unlike mest commercial sofware, Open-Apple is sold in an unprotectes forma for your canvenionee, You ae eneguraged to make back-up archival copies or easy-to-read enlarged conies or our ow” use mihgul charge. You may ls0 ceby OpemApple for {isinbutien to elners. The disindut or fe is 15 cons per page Det pope uted. RANT AND LIMITATION OF LIABILITY. | warrantthal ost of ‘he information in eis usehul and correct, although devel and mistakes are (ncluded from ime to lime, usually Unintentiona'y Unsalishieg subscribers may ‘turn issues within 180days0" deliver for afl lund. Pease include rote from your Davanté or ehuiden confirming tht all archival copies Fave deen destroyed. The uruliied potion of ary paid subscription will be “elunded on request MY “IABILITY FORESROPS AND OMISSIONS 1S LIMITED i) THIS PUBLICATION’S PURCHASE PRICE, In no ase shall | or my conlnbuiors be iale for any incidental ongeqUetial damages ror or ary damages in excess ol ne oes paid by a subsector ISSN 0885-4017 Printed in the U.S.A. ‘Source Mall: TCF238 CompuServe: 70120,202 1987, page 3.48). This byte is currently sitting at the bottom of the stack used by the keyboard micro. If Apple ever.does a revision to the keyboard micro software, this location is almost guaranteed to change. Since the keyboard micro is tightly wound into the control panel and battery backed up RAM, Basham's trick could wreak havoc with future revisions and generations of the IIgs. The reason the Memory Manager uses the keyboard microprocessor's RAM to determine whether the Ilgs has been tumed offis that the regular RAM in the IIgs hasan uncanny ability to retain its state even alter the machine has been tumed off, When prototypes of the llgs were powered off, then quickly tured back on, the Memory Manager performed its power-off check, which usually verified, and assumed that the RAMdisk should be preserved, The system would then boot from the RAMdisk, which would crash the system, since the RAM was not 100 per cent intact To fix this, I came up with the idea of using the RAM in the keyboard microprocessor, which isa static RAM that dears quickly when the power is turned off. But since the keyboard RAM test was added after the keyboard micio’s code was done, it required the use ofan unused byte in the stack area. Peter Baum Ninth Wave Cupertino, Calif. Asan Apple employee, Baum designed the “Apple Desktop Bus,” which is used to connect the keyboard, mouse, and other input devices to the Apple ligs. He now runs an independent design and consulting firm and writes a monthly hardware column for Calf - AP.P.LE, Expanding Applesoft Inresponse to Dr. Stephen White's questions in the October Open-Apple about Applesoft memory lim- itations, there is a suggestion I might make. Ifall thatis really required is additional memory for variables and strings, may I suggest the use of The Beagle Compiter? Its not ProDOS 16, but the compiled code takes up Jess space than the original program. And while the compiled code still has to fit in the “lower 48,’ variables can be stored in the altemate 64K memory bank, in extended memory in auxiliary slotcards like RamWorks, or in standard-slot memory cards like RamFactor. This allows the use of much larger arrays of data. I have used string arrays dimensioned to more than 2,000 strings with numerous other dimensioned arrays of similar size for floating point and integer variables. The program itself was on the order of 24K in length. This will go a long way to solving a lot of problems. Incidentally, even disk-to-disk compilation is fast (measured in seconds) and execution times are greatly increased by the compiler. Robert L. Myers Fayetteville, WV. BASIC for the IIgs Contrary to your assertion on page 3.71 of the October issue that Apple has no plans to make BASIC available on the ligs, the Apple Programmer's and Developer's Association was selling a beta version of Apple ligs BASICat AppleFest. According to a product data sheet I picked up, the language is interpreted and supports structured programming (DO/WHILE, DO/UNTIL, labels rather than line numbers for GOTO and GOSUB); multiine, Vol. 3, No. 10 named procedures and functions with parameter passing, local labels, and recursion support; easy re- direction ofinputand output (character devices, such. as printers, and block devices, such as disks, are both treated as “files’), PRINT USING and INPUT USING with IMAGE statements; support for single- and double-precision floating point arithmetic using Apple's SANE (Standard Apple Numerics Environment) tools, as well as 16-, 32-, and 64-bit integer variables; arrays of up to 32,767 elements per dimension and up to four megabytes in size; complete support for the Ilgs Toolbox; and a licensable runtime version of the interpreter that allows distribution ofapplications to people who don’t have their own copy of the IIgs BASIC software. Some conversions may be necessary for Applesoft programs. Version 10 should be released to the public during the first quarter of 1988. Cliff Tuel San Jose, Calif. What J meant last month was that an enhanced version of Apptesoft for the Iigs wasn't in Apple's plans, not that an enhanced version of BASIC wasnt to be. In retrospect, I should have made that clearer, as lots of people assume the two words mean the same thing. The first-peek beta version of Apple Iigs BASIC is avaitable to APDA members for $50 plus $3.19 shipping (Apple Programmer's and Developer's Asso- clatlon, 290 SW 43rd St, Renton, WA 98055 206-251- 6548; membership is $20 a year U.S., $25 Canada/ Mexico, $35 elsewhere). As you mention, the finished product is expected sometime next year. A compiled version of this language Is also under development, but this will come from TML Systems in Jacksonville, Fla, AtAppleFest, APDA also announced the availabttity of the first non-beta version of the Apple Pro- grammer’s Workshop ($100 plus $4.19). This pro- vides what the professionals like to calla “command shell,” which ts fancy words for prompt-line-based file-manipulation commands such as those available at the Applesoft prompt (catalog, delete, rename, exec, PR#, and so on), as weil as a bunch more Basic.system doesn’ offer. APW also includes a full- screen text editor for writing programs, a 65816 macro assembler, and a “linker,” which can make one large executable file from separate program files created by any combination of the assembler or other APW languages (Apple's APW C, currently in beta version 7 for $75 plus $131; and TML Pascal, $119.95 plus $1.50, are the only APW languages at the moment). Beta versions of APW included a debugger and some desk accessories for peeking at data used by the memory manager and system loader during program execution. The debugger, which is stilt inits beta version, is no longer a part of APW, but is available separately under the name Apple Hgs Debugger ($15.95 plus $.94), ‘At AppleFest, APDA also released the Apple Figs System Disk 03.1 ($12.50 plus $.69), the Addison Wesley version of the Technical Introduction to the Apple ligs ($7.50 plus $1.50), and a first-peek photocopied version of the ier’s Intro- duction to the Apple lgs (957.50 plus $3.40). Previously available were the Addison-Wesley versions of the Apple ligs Firnuvare Reference ($18.50 plus $2.50) and the ProDOS 16 Reference Manual (521.95 plus $2.75). Also available in a photocopied beta draft is the Apple ligs Tootbax Reference ($60.00 plus $8.00).
mp.ls