computer - apple2 · '70 /the best ofthe user group newsletters for 1978 el cid plaza -171 e....
TRANSCRIPT
COMPUTER
'70 /the best of the user group newsletters For 1978
El Cid Plaza - 171 E.Thousand Oaks Blvd.Thousand OaksCA.91360(805) 495-3554
10. APPLE-BIZMelvin Wong301 BalboaSan FranciscoCA.94118(415) 221-8500
11. APPLE CORE AVIDDELECTRONICS2210 Bellflower Rd.Long BeachCA.90815(213) 598-0444
12. APPLE COREScott KaminsBox 48i6San FranciscoCA.94101
13. APPLE USERS GROUPMark WozniakCOMPUTERS PLUS1324 S. MarySunnyvaleCA.94087(408) 735-1199
14. COMPUTERLAND OFLOS ALTOSSarkis Kouzoujian4546 EICamino RealLos AltosCA.94022(415) 941-8154
15. NORTH ORANGECOUNTY COMPUTERCLUBDavid Smith607 North TwilightPlacentiaCA.92670(714) 993-9939
9. APPLE COREMarion A. ClarkeCOMPUTERLAND OFTHOUSAND OAKS
8. APPLE BYTE USERSGROUPLOY SPURLOCKAPPLE BYTEPROGRAMMERSCOMPUTER FORUM14052 E. Firestone Blvd.Santa Fe SpringsCA.90670(213) 921-2111 & (714)739-0711
7. APPLE USERS GROUPSCOTT STARKWEATHER11074 San Pablo AvenueEl CerritoCA.94530(415) 233-5010
ARKANSAS3. DATABITS
C. JohnsonC/O DATACOPE5706A W. 12th StreetLittle RockAR.72204(501) 666-8588
5. ABACUS USERS GROUPBYTE SHOP1122 B St.HaywardCA.94541(415) 886-2980
6. THE APPLE PICKERSSANTA ROSA COMPUTER CENTER604 Seventh StreetSanta RosaCA.95404
CALIFORNIA4. L. A. APPLE USERS
GROUP11911 Wilshire Blvd.CA.90025
Apple's stillspringing up
ALASKA1. APPLE-HOLICS
G. K. InmanSRA Box 1313AnchorageAK.99502(907) 344-1300
ALABAMA2. APPLE CORPS
Terry WoodwardComputer Center, Inc.433 Valley Avenue PlazaBirminghamAL.35209(205) 942-8567
Many APPLE user groupshave sprung up during 1978, andmore are in the germinationstage. Following is a list of thosewe knew about at the end of theyear. If there is no group inyour area and you want to startone, talk to your APPLE dealer.Chances are he knows most ofthe local APPLE II owners, andcan help bring them together foryour kickoff meeting. He mighteven want to host the meetingson a continuing basis. Ask him.
If you have formed (or wantto form) a local user group,let us know. We can publicizeyour efforts and help you getoff to a good start.
2
ConOOC["iO /the best of the user group newsletters for 1978
16. SILICON APPLEPROGRAMMINGSOCIETY2485 Rossotto Dr.San JoseCA.95130(408) 354-6120
17. VIDEO GAMES &COMPUTERS301 BalboaSan FranciscoCA.94118(415) 221-8500
CONNECTICUT18. APPLE USER GROUP
Glen BrennanCOMPUTERLAND OFFAIRFIELD2475 Blackbrook TurnpikeFairfieldCT.06430(208) 374-2227
DELAWARE19. COMPUTERLAND OF
NEWARKJames H. HigginsAstro Shopping CenterKirkwood HighwayNewarkDE.19711(302) 738-9656
FLORIDA20. Victor Steeb
SOUTHERNMICROCOMPUTER CO.5901E Northwest 151st St.Miami LakesFL.33160(305) 821-7401
21. APPLE USER GROUPPat Fiorentino2201 Ponce De Leon Blvd.Coral GablesFL.33134
FRANCE22. APPLE OEDIP
Schraen Dominique8 - Place Ste-Opportune 75001ParisFRANCE508-46-21 - 508-47-71.
GEORGIA23. APPLE USER GROUP
Preston LoveDATAMART INC.3001 N. Fulton Dr.AtlantaGA.30305(404) 266-0336
HAWAII24. APPLE USER GROUP
Dennis Nyhagen7110 C Ohana-Nui CircleHonoluluHI.96818
IOWA25. Earl Keyser
22 Clover LaneMason CityIA.50428
IDAHO26. Larry Bugbee
2874 IthacaBoiseID.83705(208) 362-9132 (Home) &(208) 384-6100 (Work)
ILLINOIS27. APPLE PIE
Jerry Feil17318 S. LocustTinley ParkILL.60477(312) 532-8244 (Home)
28. NORTHWEST SUBURBANAPPLE USERS GROUP
Ken Rose & Steve Uh1C/O COMPUTERLAND OFARLINGTON HTS.Arlington Hts.ILL.60004(312) 359-6723 & (312)882-4567
INDIANA29. INDY APPLE PICKERS
Doug McIntoshC/O HOME COMPUTERCENTER2115 E. 62 StreetIndianapolisIN.46220
30. Joe Torzewski51625 Chestnut Rd.GrangerIN.46530
LOUISIANA31. SOUTHEASTERN
SOFTWARE7270 Culpepper Dr.New OrleansLA.70126
MASSACHUSETTS32. APPLESEED
Donald M. Isaac17 Saxon Rd.WorcesterMA.01602
MARYLAND33. MARYLAND APPLE
CORPS.Kevin ParksCOMPUTERS ETC.13A Allegheny AvenueTowsonMD.21264(301) 296-0520
3
, ....Ii''lII:"''''1''1:" '70 /the best of the user group newsletters for 1978
4
MINNESOTA34. MINI'APP'LES
Dan Buchler13516 Grand Avenue SouthBurnsvilleMN.55337(612) 890-5051
MISSOURI35. APPLE JACKS
Creighton CalfeeP.O. Box 8452St. LouisMO.63132
NEW JERSEY36. APPLE GROUP-NEW
JERSEYSteve Toth1411 Greenwood Dr.PiscatawayN.J.08854(201) 968-7498
37. COMPUTER LAB OFNEW JERSEYDan Fischler141 Route 46Budd LakeNJ.07828(201) 691-1984
NORTH CAROLINA38. APPLE CORE COMPUTER
CLUBAlex Popper3915 E. Independence Blvd.CharlotteNC.28205(704) 523-5107
NEBRASKA39. APPLESAUCE OF
LINCOLN/OMAHARuss GenzmerC/O TEAMELECTRONICS2055 '0' Street
LincolnNE.68510
NEW MEXICO40. THE APPLE CORPS
Earl J. NielsenPERSONALIZEDCOMPUTER SERVICES1803 Corte Del RancheroAlamogordoNM.88310(505) 437-8447
NEW YORK41. NYC USERS GROUP
Neil ShapiroC/O COMPUTER/MARTOF NEW YORK118 Madison AvenueNew YorkNY.10016(212) 686-7923
42. Charles Kollett32 N. Brewster LaneBellport-LI.NY.11713(516) 286-0198
OHIO43. APPLE-SIDER
John Anderson5707 Chesapeake WayFairfieldOH.45014(513) 829-1340
OKLAHOMA44. APPLE II USERS GROUP
Jerry Henshaw PRESIDENTC/O THE TULSACOMPUTER SOCIETYP:O. Box 1133TulsaOK.74101(918)
OREGON45. APPLE PORTLAND
PROGRAM LIBRARYEXCHANGEKen Hoggatt - PRESIDENT9195 S.W. Elrose CourtTigardOR.977.23(503) 639-5505 (Home) &(503) 644-0161 - X6136(Work)
PENNSYLVANIA46. COMPUTERLAND OF
HARRISBURG4644 Carlisle PikeMechanicsburgPA.17055
47. APPLE USERS GROUPNeil LipsonPHILADELPHIA AREACOMPUTER SOCIETY29 S. New Ardmore AvenueBroomallPA.19008(215) 825-3800 - X278(Work) & (215) 356-6183(Home)
TENNESSEE48. APPLE PI
Richard C. Secrist(FORMERLYAPPLEACHIAN USERSGROUP)RT. #12 - Cherokee HillsSeviervilleTN.37862
TEXAS49. APPLE BARREL
R. V. Collins12502 BexleyHoustonTX.77099
50. THE APPLE CORPS.Bobbie FerrellGreenhill School
"iD /the best of the user group newsletters for 1978
14255 Midway Rd. - FultonBldg.DallasTX.75240(214) 661-1211 (Work) &(214) 243-6347 (Home)
51. APPLE CORPS.COMPUTER LAND OFAUSTIN3300 Anderson LandAustinTX.78757(412) 452-5701
52. APPLE SEEDBill HydeTHE COMPUTER SHOP6812 San PedroSan AntonioTX.78216(512) 828-0553
53. PHILIP W. JACKSONC/O COMPUTERSOLUTIONSSuite 124A - 9200BroadwaySan AntonioTX.78217(512) 828-1455 & (800)292-7652 (TOLL FREE)
WASHINGTON54. APPLE PUGET SOUND
PROGRAM LIBRARYEXCHANGEVal Golding6708 39th Ave. SouthwestSeattleWASl-1.98136(206) 937-6588 (Home) &(206) 623-7966
WISCONSIN55. WISCONSIN APPLE
USERSKen BlochowickC/O Cybernetic MechanismP.O. Box 11463MilwaukeeWI.53211(414) 964-6645
In case you are itchy to addto your Apple II system (or evenjust to learn moreaboutit),here'swhat's coming up.
BASIC PROGRAMMINGMANUAL-This is a beginner'sguide to Apple BASIC, completewith lots of examples and illustra tions. It will be mailed to allusers who have warranty cardson file with us, starting late thismonth.
COMMUNICATIONS CARD-A card that lets your APPLE IItalk over the phone with othercomputers will become availablein April. For $180, this intelligen t in terface will allow thecomputer to control any 110 or300 baud serial device throughan industry standard RS-232Cinterface port. Look for a datasheet in the next newsletter.
NEW APPLESOFT-It's coming, and it's going to be great!The new APPLESOFT fixes bugsin the existing version, and addsfeatures such as data save/load,high-resolution plotting capability, ON ERR GOTO capability,and much more. It will be available on cassette in May, at $10.The ROM version, on a plug-incard (for slot #0), will be out inJune at $99. The card will have aswi tch to allow you to choosebetween Apple BASIC andAPPLESOFT.
FLOPPY DISK-The newmini-floppy should be on dealers'shelves by early .I uly, at a priceof less than $700 for the con-
5
Inc.
ready-to-run. And those packageswill be accompanied by documentation that sets the industrystandard for completeness andclarity.
It's been a good year; and weowe a great deal to you, our customers. We plan to grow substantially during 1979 by bringingyou products that will enhancethe usefulness of your Apple investment. We thank you, andhope to continue earning yoursupport.
A FUNNY THING HAPPENEDON THE WAY HERE.....
This is the first of an irregularly published series of newsletters aimed at filling you in onwhat's happening at Apple; andat soliciting the feedback, product ideas, and people we need toservice you, our customer base.In the past, we occasionally letour enthusiasm carry us away.It is often easy to forget how difficult it is to actually bring quality products into production.(And that's especially true whenyou're doubling in size every fewmon ths and still can't hire peoplefast enough to do everything thatneeds doing.) But on the wayhere, we've learned a bit. And werealize success hinges upon meeting commitments. So from nowon, you'll see more conservativeschedules from us; and we'llusually beat them.
This newsletter marks thestart of an official APPLE IIUser Group: one that we trustwill grow strong and healthy thisyear. But there's a lot of workyet to do. A major portion of ithas to do with classifying anddocumen ting all the software wehave received over the pastmon ths. It really hasn't been lost.All 200 tapes are sitting in a box,waiting for us to look at them.While our goal was to publish asoftware list, descri ption of theSoftware Bank, and Contributor'sForm with this newsletter, westarted too late. Instead, it'll bein the next newsletter. For sure.
Apple Computer has grown
hobbyists than ever; but nowthey share the computer storeswith businessmen, educators, andindustrial users. This change hasresulted in demands for usefulapplication software that has putconsiderable pressure on our industry. While few programs actually emerged during 1978, a greatnumber of them were specifiedand contracted for.
On the manufacturing side,the free ride was over. Poorproduct design, erratic quality,and inadequate financial strengthtook their toll. Some vendors fellprey to acquisition or reorganization, and ceased to be factors inthe market. But the combinedefforts of the industry soldaround 180,000 systems. AppleComputer expanded productiondrama tically while building upan order backlog that reached 12weeks during the Christmas buying spree. We grew rapidly; andprofits were reinvested to financeproduction expansions, newproduct development, and bettercustomer support.
The product line ma turedtoo. In January, we offered onlythe APPLE II system, at $1695(l6K RAM). By the end of theyear we had introduced newmanuals, modems, and printers;the Applesoft ROM Card; andour most popular peripheral, thefloppy disk. Declining component costs and manufacturingeconomies of scale let us keepprofit margins stable while webrought the price of a 16K system down to $1195. And mostimportant, we were able to startseveral major software effortstha t will yield dividends to everyApple user in '79.
What lies ahead? Throughoutthe industry, 1979 should be theYear of Software. More than twodozen companies presently market APPLE programs, and thatnumber should swell to 100 during '79. We are planning severalmajor announcements that spanthe gamut from languages andoperating systems to businessand education packages supplied
I
troller card and one drive. (Eachcard will handle up to two drives.)The software, which works witheither version of BASIC, will beable to load and store namedfiles and provide disk directorylists. Look for more details twoissues from now.
SERIAL INTERFACECARD-This is a high-speed (to9600 baud), programmable serialinterface; designed to connectfast, half-duplex devices (printers,plotters, etc.) to the APPLE II.More details will be available twoissues from now, and the deviceitself will be out in July. Noprice has been set.
And nowit's your turn
As we enter 1979, it is rewarding to look back and seehow far we've come in these lasttwelve months. If you've joinedour Apple family recently, I'dlike to welcome you and share alittle historical perspective withyou.
At the start of 1977, personalcomputers sold largely to hobbyists. Most products were S-IOObus systems without the reliability, packaging, or software required to address other markets.Integrated systems (like APPLEII) were still a new idea. Indeed,some trade publications actuallystated that such products weretoys because they didn't have theexpansion capability of the oldS-IOO systems! A year later,integrated systems dominateretail sales; and Apple hasemerged as the premiere manufacturer in the quality-orientedsegment of the market.
While that was happening,the market itself was changingcharacter. Today there are more
by Phil Roybal,Marketing Mgr.
(001:(1([ "iO /the best of the user group newsletters for 1978
6
com:OCi:'iO /the best of the user group newsletters for 1978 ClDlDk:! computar Inc.
from two men in a garage to 40people in a modern 20,000 sq. ft.building, in less than two years.You made that possible, and wethank you. In the coming yearwe will continue to earn yoursupport; and to actively solicityour inputs so that our effortsstay on target. It's important tous. We learned that on the wayhere.
000 wherein programbugs stompedupon
If (in the DOS) you try toload a program that had beensaved under RAM APPLESOFTII, but you are now using theROM card version, your programwill not run correctly. To getaround this problem, load yourprogram and then type
CALL 54514and your program will be correct.
Similarly, a program that wassaved onto diskette from theROM card version and later loaded under RAM APPLESOFT IIwill also cause problems. Simplytype
CALL 3314and your program will be correct.You can now save it onto tape.
The earliest production DOShad a problem: when in APPLESOFT II,any Read or Write statements with line numbers of 256or higher would be ignored. Tosolve this problem on any disksyou create from the DOS, bring
up the DOS, remove the WriteProtect sticker from your system's master diskette, and thentype:
>PR#n (boot your system)>BLOAD RAWDOS>(hit Reset)* 25D6:4C D5 3F* 25DC:2E* 3FD5 :E8 FO 1 60 4C DD 25* 3DOG>BSAVE RAWDOS,
A$l BOO, L$2500Any new masters created
./1"01n this original master diskettewill now work properly.
Cockpit errors and DOS
A high percentage -- 75 percent, to be precise ~ of diskerrors found so far are due tousers trying to run APPLESOFTII by typing "RUN APPLESOFT." This seems reasonable,but APPLE II doesn't see it quitethat way. As a result (amongother things) you cannot reloadprograms saved on disk.
To get things to come outright ~ all pointers where theyshould be, etc.-, from IntegerBASIC simply type
FP (Carriage Return)and you'll bring in APPLESOFT II, pointers and all.
To get back to IntegerBASIC simply type INT.
Making life easier inAPPLESOFT II
If you use APPLESOFT IIand enter a statement such asIF X == A THEN PRINT T,APPLE won't do what you wantit to do. That's because APPLESOFT II's parsing action causesthe statement to be read as ifyou entered IF X == AT HENPRINT T; a syntax error willappear and you won't know why.
To prevent this, simply enclose the A in parentheses, whichstops APPLESOFT II's parsingof the letter combination. Thus,enter the statement as IF X ==
(A) THEN PRINT T, and all willbe right with the world.
Had some printer card problems?Here's why, and thelix.
The original printer-cardfirmware uses the screen windowwidth as the controlling parameter to set the margin for BASIClistings and TAB functions. Thismeans that when your printer'sline length is set at 132 columns,for example, the system displayis set at 132 characters/line. Wedidn't think that this would causea problem, because printer margins greater than 40 charactersand screen displays are notallowed to co-exist.
But there's a catch when anyscreen clear functions are executed. The system uses windowwidth to bound the clearing operations, which is a direct command not detectable by the printer card. But the keyboard inputroutine executes a "clear to endof line" when it gets a carriagereturn. Since the window widthcan be at well beyond the 40columns, memory from the current cursor position to well pastthe normal boundary will be setto "space" ($AO). If the cursoris at the bottom of the screen,this can cause addresses from$800-up to be set to $AO. Simply setting the printer width onthe keyboard with IC 132 N(CR), with the cursor at the bottom of the screen will cause theselocations to be bombed becausethe window width gets set before the (CR) is executed. SinceAPPLESOFT starts at $800 andInteger BASIC variables start at$800, bad things will happen forsure.
So ... to reduce the possibility of problems with APPLE'sParallel Prin tel' card, do thesethings:
I-Home the cursor (ESC(a.',or CALL -936, in BASIC)prior to typing printercontrol sequences that set
7
/the best of the user group newsletters for 1978
8
the column width past 40columns.
2--Do not use any screen orline clear operations whenusing the printer with thecolumn width set past 40columns. Then be sure toreturn the line length to40 columns before turningoff the prin tel' card withPR#O.
If you're using the revisedprinter card with PROM PI-02,add this:
3-To perform the verticaltab in Integer or APPLESOFT BASIC on theprinter, the commandPOKE 36, (Tab distance)should be used in place ofthe TAB or VTAB command.
HIRES demo tape type
Somehow we managed to shipa number of HIRES GRAPHICSdemonstration tapes that carry atypographical error on the cassette labels. The error is in thebrief loading instructions printedon the label: *800.FFFR. Thisshould read: *C00.FFER. Notethat the numeral "8" should bethe letter "C". Programs on thetape will run correctly when youfollow the proper loading instructions.
From time to time, we turnup a program bug. Although thefixes are incorporated into futureversions of the program, oftenthey are simple enough that userscan "patch" their present programs to get improved performance. Here are patches for apopular program.
APPLESOFT CHANGESThe following patches to APPLESOFT will fix problems associated with the FRE, END, and DIMstatements; and will allow thelanguage to handle long programlines. The changes are made witha series of POKEs. They can bedone frol11 the command mode,or incorporated right into yourprogram.
CHANGESARRAY INDEXING PROBLEMFIX:
POKE6331,32 :POKE6332,150:POKE6333,41 :POKE6334,234
POKE10646,133 :POKE 10647,177 :POKEI 0648,162:POKEI0649,5 :POKE10650,165: POKE I 0651,132 :POKE10652,96
LONG LINE FIX:POKE 3050,234POKE 3054, 136POKE 3055,145POKE 3056,158POKE 3057, 208POKE 3052, 251
'END' STATEMENT FIX:POKE 2048,210
FRE( ) FUNCTION FIX:POKE 6143,5
APPLESOFT MANUALCORRECTION-A small typesetting disaster left us with an incomprehensible example on page22 of the APPLESOFT Manual.The example should read asshown here.
100 DIM A$( 15)110 FOR I = 1 TO 15: READ A$(l):
NEXT I120 LET F = 0: I = 1130 IF A$(I) < = A$II + 1) THEN
180140 LET T$ = AS(I + 1)150 LET AS(I + 1) = ASII)160 LET AS(I) = TI170 LET F = 1180 LET I = I + 1 IF I < 15 GO TO
130190 IF F = 1 THEN 120200 FOR 1=1 TO 15: PRINT AI(J)
NEXT I220 DATA APPLE, DOG,CAT,RANDOM,CO
MPUTER,BASIC2:30 DATA 110NDAY, "*if*ANSt~ERiHHt", "
FOO: "240 DATA COMPUTER,FOO,ELP,MILWAU
KEE,SEATTLE,ALBUGUERGUE
Document, document, document. It would be difficult foryou to give us too much informa··tion about a program that yousend up - we need to know asmuch (and sometimes more)about your program contributionas you can tell us. And never assume that potential users of yourprogram are as clever as you; instead, assume that they knownothing not even when to hitRETURN! Remember: The careyou take in explaining your program is the only guarantee thatit will be usable by anyone else.
SAVE, then SAVE again.SAVE your program twice, onerecording after the other, on thesame cassette. By doing this yougive yourself, and us, a safetyfactor in that if our computercannot read the first SAVE, perhaps it will be able to read thesecond. (As you know, not allrecorders are crea ted eq ual.)
By the way, please add yourname and address to the program listing with REM statements before you save it, so thatthere will be no question as towhose program we're runningwhen we try it out.
LOAD, check, then giveyourself credit. After you SAVEyour program, turn OFF theApple to clear the rnemory spaceyou've been using, then power itup and LOAD the program to besure that it does in fact load andrun.
Corlro~i: "'10 /the best of the user group newsletters for 1978 ClDlOk! comioult:a, Inc.
Finally, protect. After savingyour program, make sure that itcannot be erased. Every cassetteincludes a write/ protect featurein the form of two small plastictabs on the edge of the cassetteopposite its business end. Whenthese tabs are pushed in, pulledout, or otherwise gotten out ofthe way, the cassette can nolonger be written into.
Clearing the air. We make noprofit from your contributionsto the user portion of the APPLEsoftware bank. We set up thisportion of the bank simply to encourage and to ease the exchangeof programs among APPLE users.The honorarium that we pay forcontributions to this portion ofthe bank is merely our way ofencouraging such contributions.
From time to time, of course,APPLE does purchase software,and does so at the fair marketvalue. Such purchases are negotiated individually, based uponmarket conditions, applicabilityof the product, etc.
The good earthAPPLE II must be grounded
-either Fia its three-wire powercord inserted into a properlygrounded three-wire outlet, or bya wire inserted between APPLE'smetal base plate and one of thepia te 's mounting screws. In thelatter case, you must run theground wire to a (preferably Feryclose) ground - a long, longmetal rod driFen into the earth,and connected to APPLE Fia aheaFY wire, or a wire connectionto the cold-water system (butmake s,ure you have metal piping). Grounding eliminates anypossibility of the existence ofafloating potential, which can bedetrimental to you, to APPLE,and to proper tape cassetteoperation.
Get your head straightCassette tape recorders
whether expensive or inexpensive - often suffer a misalignment of their playback head during shipping and other handling.Such misalignment causes azi-
muth error, which is death tothe high-frequency response(particularly on units withouta tone control) so necessary toaccurately transfer data. But anyaudio shop technician can readjust the azimuth alignment; askilled ear alone is often sufficient to do the job. Your originalAPPLE prerecorded tapes areexcellent alignment references,because they are recorded withprofessional equipment maintained to the highest professional standards.
The colon as a listing formatterfor Applesoft
The basic description of thecolon's action is that it can beused to separate BASIC statements. But with the colon youcan structure your listing in anyway you desire, whether youneed vertical spacing or horizontal spacing-or both, as in tabulating data into blocks of rowsand columns.·
To do it, enter the line numbel', then the colon. If there is noinformation following the colonon the line, then the display willstep vertically. If informationdoes follow the colon, then thatinformation will be spaced to theright of the colon, allowing theinterior code of FOR... NEXTloops, etc., to be neatly indented.
You can see how the colon isused for this purpose in this issue's How To section. Note thenea t appearance of the listing.
Apple and Education
Apple Computer, Inc., announces the appointment ofRoger Cutler as Education Specialist for the company. Roger isorganizing an educators' usergroup. If you would like to be onhis mailing list, please write himat Apple. Our plans include aneducational software bank andadvice on writing computer assisted instruction programs.Watch CONTACT for furtherinformation about educationalapplications of the Apple 11.
CALLING ALL INTERFACECARD DESIGNERS
Now that several other companies have begun to marketinterfaces for the APPLE II, aword on our design philosophyis in order.
We are very interested in anydevices that plug into APPLE II,and are generally happy to provide information to prospectivemanufacturers. (Just write andask for our Prototyping BoardWrite-up.) Our own philosophy isto build devices that are in telligent (have all control routines inon-board ROM) and are slot independent. However, we mustsometimes compromise becauseof design considerations in thesystem. Therefore, we have madethe following restrictions on slotassignments:SLOT # ASSIGNMENT
o APPLESOFT BASICROM Card
5 Second Disk Controller Card
6 First Disk ControllerCard
In addition, slots 4 and 5 aretentatively reserved for productsthat may have to be slot-dependent. Therefore, other manufacturers should design peripheralswhich are either completely independent of slot number orwill work in slots 1-3. In tl1is waythey will avoid possible conflictswith existing or proposed AppleCompu ter prod ucts.
9
/the best of the user group neUJsletters for 1
Occasionally we documentsome wonderful feature in sucha way that nobody understandsit. As we identify those areas(recognizable by the stack ofassociated phone messages), thiscolumn will attempt to clarifythem.
24K SYSTEM PROGRAMLOADING
Normally, entering BASICwith the BC command resets thepointers to high and low memory(HIMEM & LOMEM), so thatthe monitor knows where tobegin loading programs. However, 24K systems need a littlehuman help to set the HIMEMpointer. Therefore, before loading or keying in programs, enterBASIC in the command mode
HIMEM:24576
When this step is omitted,the system believes it has a 32Kmemory to work in. Since BASICprograms are loaded starting fromthe top of memory, they tend tofall into the bit bucket and disappear forever. ....
PROGRAM LISTING WITHTHE TTY PRINTER ROUTINE
The hardware/software TTYinterface described on page 114of the APPLE II REFERENCEMANUAL provides an inexpensive method of printing on aTTY (output only). The exampleon page 116 shows how commands can be incorporated into a
10
BASIC program to produce hardcopy output.
Unfortunately, we left out anexample of how to LIST a program on the TTY. Here's how.Just enter the command mode ofBASIC and type:
CALL 880LISTPR#OThat sequence will enable the
TTY, list the program, and thenreturn output to the TV screen.
USING THE HI-RESROUTINES
A section of the new REFERENCE MANUAL describes theHI-RES plotting routines andmentions that they are availablein ROM and on tape. Althoughthe ROM's aren't available yet,many people don't know thatthey have the routines on tapealready. These programs are themachine language load at thestart of the HI-RES DEMO tape.If you load the machine languagepart and then skip loading theBASIC demo program, you willhave the routines in memory towork with.
While use of most of the programs is straightforward, theSHAPE routine gives some people problems because they don'tsee how to build and use a shapetable. Here's an explanation.
The SHAPE routine reproduces a figure from a set of instructions (the shape table) storedsomewhere in memory. But ithas to know where to find thattable. It has been written to assume that the shape table beginsat an address which is pointed toby memory locations 804 and805. What you insert in thoselocations depends upon whereyou built your shape table.
Let's use the table examplegiven in the REFERENCE MANUAL (page 53) to illustrate howto build an use the table. Hereare the steps to follow:1. Load the HI··RES routines
into memory (COO.FFFR).2. Build the shape table in mem-
ory, using the monitor. Let'sarbitrarily start at address 900hex, and fill in the data sequentially, just as shown inthe manual: *900: 12 3F 2064 2D 1536 IE 07 00 Thiswill put the table aboveBASIC's variable space andbelow the bottom of a BASICprogram.
3. Insert the shape table startingaddress into memory locations 804 and 805, as shownin line 10 of the sample program that follows (For moredetails, see the explanation inthe HOW TO section underLOADING MACHINE LANGUAGE PROGRAMS.... ).Then insert informa tion oncolor, scale, rotation, etc.,into the other memory locations specified in the REFERENCE MANUAL.
The following table presentsdecimal-number equivalents andAPPLE keyboard equivalents toASCII (American Standard Codefor Information Interchange)characters. That is, if you wereto scan the keyboard directly inBASIC, these are the charactersthat you would read; or, if youwere to go into memory, thesecharacters would appear asstring-variable values.
In the APPLE keyboardcolumn, read SMC as a SHIFT/CONTROL-M BC as CONTROL-B, etc. The decimal numberslisted are those before clearing ofthe keyboard strobe; after clearing of the strobe, the number isthe listed value minus 128 (e .g.,after clearing of the strobe, 145becomes 17). If an APPLE keyboard equivalent doesn't exist, orif there is no decimal equivalent,then the table shows a doubledash (--); if the keyboard equivalent is identical to the ASCIIcharacter itself, then the tableshows "sa.".
Such information can makeyour programming life mucheasier, because it lets you getkeyboard data directly into a
COOi:CKi: ";0 Ithe best of the user group newsletters for 1978
BASIC program without the useof an INPUT statement. 'As youknow, INPUT statements can belimiting as, for example, whenyou type in a line and the screenyells SYNTAX ERROR at you.Well, what is the error? It maytake a long time to find.
If, on the other hand, thekeystrokes are picked directly
off the keyboard then you ~ theprogrammer ~ are in commandevery step of the way; you makethe decisions as to what goes andwhat does not, and in a way thattells you exactly what's wrong asyou go wrong.
You can see one way inwhich this idea is applied in "Being Precise in INTEGER," in this
issue's HOW TO section. In thisMultiple Precision Arithmeticlisting, statements 2500 2610 input data directly from the keyboard; they tell you exactlywhat's happening, the nature ofany error you may have committed, etc. ~ and all by makinguse of the equivalence in thetable presented here.
TABLE OF ASCII CHARACTER VALUES FOR INTEGER BASIC(FOR APPLESOFT VALUES, SEE APPLESOFT MANUAL, APPENDIX K)
ASCII APPLE DEC ASCII APPLE DEC ASCII APPLE DEC ASCII APPLE DECCHAR KYBD EQUIV CHAR KYBD EQUIV CHAR KYBD EQUIV CHAR KYBD EQUIV
NUL SpC 128 SP Space 160 @ sa. 192 -- 224BarSOH AC 129 ! sa. 161 A 193 a 225STX BC 130 " 162 B 194 b 226ETX CC 131 # 163 C 195 c 227EOT DC 132 $ 164 D 196 d 228ENQ EC 133 % 165 E 197 e 229ACK FC 134 & 166 F 198 f 230BEL GC 135 , 167 G 199 g 231BS +- 136 ( 168 H 200 h 232HT IC 137 ) 169 I 201 i 233LF JC 138 * 170 J 202 j 234VT KC 139 + 171 K 203 k 235FF LC 140 , 172 L 204 1 236CR MC 141 173 M 205 m 237SO NC 142 174 N 206 n 238SI OC 143 / 175 0 207 0 239DLE pC 144 0 176 P 208 p 240DC1 QC 145 I 177 Q 209 q 241DC2 RC 146 2 178 R 210 r 242DC3 sC 147 3 179 S 211 s 243DC4 TC 148 4 180 T 212 t 244NAK UC 149 5 181 U 213 u 245SYN vC 150 6 182 V 214 v 246ETB WC 151 7 183 W 215 w 247CAN XC 152 8 184 X 216 x 248EM YC 153 9 185 Y 217 y 249SUB zC 154 186 Z 218 z 250ESC sa. 155 , 187 [ -- 219 251FS -- 156 < 188 \ -- 220 252GS SMC 157 = 189 ] SM 221 ALT -- 253RS SNC 158 > 190 t -- 222 -- 254US -- 159 ? II' 191 -- 223 DEL 255RUBOUt-
LF = Line Feed; CR =Carriage Return; SP = SPace; ESC = ESCape; sa. = Keyboard character same as ASCII character.
11
/the best of the user group newsletters for 1978
OPTION 1 wasGRAPHICS COMMANDS WITHOUTLET OR REM STATEMENTSOPTION 2 was LET ORSTATEMENTS, BUTNO GRAPHICS
After you answer you will beprompted to play the old program tape. After CONVERT hasfinished reading and processingthe old tape, it will ask you torecord a second tape. Thissecond tape will be your originalprogram converted into APPLESOFT II. If any errors are discovered during the conversionprocess, you will be given selfexplanat9.I'Y messages.
AN APPLESOFT CONVERTPROGRAM
Programs written in APPLESOFT BASIC and saved on tapecannot be LOADed and RUNwith APPLESOFT II. But thereis a way to use them withoutretyping-by means of our CONVERT program, which we listbelow.
The CONVERT programruns in Integer BASIC, accepts atape in APPLESOFT BASIC,and produces a new tape inAPPLESOFT II BASIC. To useCONVERT, LOAD the CONVERT tape. It will ask you ifthe old program (written inAPPLESOFT BASIC) used OPTION 1 01' OPTION 2.
CONVERT
manualtold you
LISTINGS-A LITTLE AT ATIME
There is a way to stopAPPLE II's LIST operation. Youmust go into the MONITOR andenter the following bytes of hex:
3DA:A9 E3 85 36 A9 03 853760 RETURN
:48ADOl CO 1008AD 11CO AD RETURN
:01 CO 10 FB AD 11 CO 684C FO RETURN
:FD 4C DA 03 RETURN
After loading the hex code, pressCONTROL Y to activate thisStopList routine.
Now we try listing memoryby entering O.FFF RETURN.Let some lines go by, then pressany key. If you've done everything correctly, the scrolling willhalt. Now press any other keyand the lines will again scroll.This routine will still work whenyou go back into BASIC. But iffor any reason you press RESET,you must reactivate the routineby going back into the MONITOR and pressing CONTROL y.
How does it work? Well, toprint a character on the screen,APPLE II uses a routine locatedin MONITOR. APPLE goes tothe routine by finding its addressin locations 54 and 55 (36 and37 in hex). But entering a CONTROL Y replaces this addresswith the address of the Stop Listroutine. Yau catch APPLE because it always checks for a StopList command before printingany character. Softwareengineers call such a feature ahook, and use it to make programmingjust a bit more handy.
Tony HughesTHE APPLE CORESan Francisco, Calif.
o TEXT CALL -936 VTAO 3 PR INT "APPLESOFT CONVERSION PROGRAM: "2 PRINT"
CONVERTS OLD APPLESOFT PROGRAMS TO" PR INT "APPLESOFT H FORMAT"3 PRINT"
CljflYRIGHT 1978 APPLE COMPUTER, INC
4 PRINT"
PUKE 34,105 PRINT "WAS PROGRAM WRITTEN If! OPTION lOR" PRINT "OPTION 2?
PRINT "OPTION 1 GRAPHICS COMMANDS l, ITHOUT"
6 PRINT" LET DR REM STATEMENTS" PRINT"OPTION 2' LET AND REM STATEMENTS BUT NO
GRAPHICS"7 INPUT "OPTION +t", Q. IF 0(>1 AND 0<:>2 THEN 7
10 CALL -936: PRINT "PUT APPLESOFT PROGRAM TAPE IN RECORDER," POKE 60, Z: POKE 61, Z: POKE 62,2 POKE 63, Z:F=1536B=4096
20 INPUT "PRESS THE PLAY BUTTON, THEN HIT RETURN", A$ CALL -25925 IF PEEK (1 >(128 THEN 30: PRINT"
TAPE READ ERROR'" PRINT "TRY RE-ADJUSTING VOLUME CONTROLS ONTAPEPLAYER, THEN RE-RUN THIS PROGRAM"
30 POKE 60, Z POKE 6 t, 16: E= PEE~ (Z) + PEEK (1) *256-6657: POKE 62, E MOD 256' POKE 63, E/256-CALL -259
35 CALL -936 PRINT "
CONVERTING40 IF ID=E THEN 1000. A"'" PEEK {B)+F MOD 256. POKE a, A MOD 256: POKE 8+1, PEEK (8+1 )+F/256+(A)
255)50 FOR B=B+4 TO B+999. T= PEEK (B) IF T<l33 THEN 250 IF TOl35 AND T0142 OR 0=2 THEN 200
C=B55 IF T<>142 THEN 60: T=137: GOTO 25060 C=C+l:U= PEEK (C) IF U=32 THEN 60 IF U=67 OR U=7I OR U=72 OR U=80 OR U=86 THEN GOTO U·
PRINT "BAD STATEMENT IN PROGRAM" GOTO 25067 T=160: GOTO 9071 T=136' GOTO 9072 T=142: GaTO 8780 T=141: GOTO 9086 T=I4387 CC=Z: D=B880=0+1: IF PEEK (0)<>44 AND PEEK (D):...:>58 AND PEEK (D) THEN 88: IF PEEK (0)=44 THEN 89·
PRINT "BAD STATEMENT IN PROGRAM'" GOTO 25089 CC=CC+I IF CC=I THEN 88 POKE 0, 19790 POKE C,32: GOTO 250
J99 REM :MAP OLD TOKENS TO NEW200 IF T>195 THEN 250:T=T+l+(T>134)*34+(T)139)+(T)160)+(T)177)*2250 POKE 8, T: IF 8/500*500=13 THEN PR INT "STILL CONVERTING I"
251 IF T()O THEN NEXT 13: I3=B+1 IF I3<E THEN 40878 CC=Z D=C
1000 CALL -936' POKE 60,2 POKE 61. Z POKE 62,2: POKE 63. Z: PRINT "DONE'INPUT "START RECORDING,
THEN HIT 'RETURN''',A'lOCJ1 POKE £-2. z· POKE E-1, z· POKE £, Z10050=E-4096: POKE 2,0 MOD 256: POKE 1,0/256 POKE 2, Z CALL -3071010 POKE 60, Z POKE 61,16: POKE 62.E MOD 256 POKE 63,£/256: CALL -3071020 PRINT "0, K
PRINT "THE TAPE JUST RECORDED CAN NOW BE LOADED INTO APPLESOFT H." END
12
HOW TO SET LOMEM WITHOUT HARDLY TRYING
LOMEM is the start of theInteger BASIC variables storehouse; HIMEM marks the top ofthe program store. Between thetwo is your working space. Entering BASIC with BC will setLOMEM to 2048, the normaldefault value. But there are times(when using the HeuristicsSpeechlab™ for instance) whenLOMEM must be set to a different value. The pro will incorpOl'ate such an operation rightinto his programs, rather thanleaving it to chance.
Well, then, is there an easyway to reset LOMEM inside aprogram? The answer is yes, andwe guarantee that your life willbe simpler as a result. Theexample below will set a newLOMEM within an existingBASIC program. Of course,doing so will destroy existingvariables, so do it before any aredefined in the program. You can,in fact, insert this little routineat the start of your program sothat it conveniently does thewhole job for you.
routine that gives Integer BASICthe equivalent of a CHR$ function. Insert it in your programswherever you wish to andpresto! - you can convert decimalnumbers to their ASCI! characterequiJialents.
TS ASCII CHA? EOUIVALENT
HOW TO GIVE A NUMBERSOME CHARACTER
Both APPLESOFT andAPPLESOFT II contain the functions ASC and CHR$. These areopposites-complementary functions, if you will--in that ASCreturns the decimal ASCII number equivalent of its designatedstring-variable argument, whileCHR$ returns a single characterequivalent of its designated decimal-ASCII number argument.
Examples: Say, M$="M" issome string variable of interest to
. us in APPLESOFT. When youtell APPLE to PRINT ASC(M$), APPLE responds with a"77" on its screen. (Remember,first character only; decimal 77in ASCII corresponds to theletter "M".) On the other hand,tell APPLE to PRINT CHR$(77), and you get the letter "M".
A rather simplemindedexample of the use of this pair offunctions could be to associatethem with the RaNDom functionin a program to generate randomalphanumeric sequences, exceptthat you cannot do it in IntegerBASIC because, alas, Integer contains only the ASC function. Butdon't despair, for all is not lost.Below we give you a very short
'70 /the best of the user group newsletters for 1978
STRING + STRING =CONCATENATION
A string is a series of charactel'S, zero to 255 characters inlength. To symbolize that it is astring being operated upon, astring-variable name ends withthe $ symbol. APPLE canoperate on string variables, inwhole or in part, just as itoperates on numeric variables.And this ability to manipulatestrings-to reformat them, etc.is a powerful tool.
Concatenation is an important facet of string manipulations. To concatenate stringsmeans to append one to another,to "series connect" hithertoindependent character sets inorder to operate upon them as asingle entity. The concatenationfunction does exist in APPLESOFT and APPLESOFT IIBASICs but, unfortunately, notin Integer BASIC.
There is, however, a simpleroutine that will let you concatenate strings with Integer BASIC.It's listed below, and operates bydefining each string, finding thelength of the first, and tellingAPPLE to tack the start of thesecond string to the end of thefirst string, and so on down theline. The example shown here isfor two strings only; the maximum length of any concatenatedstring is, of course, limited to255 characters.
1. Pick new LOMEM, I2. a=l MOD 256: b=I/2563. POKE 204,a: POKE 205,b
resets variable pointer4. POKE 74,a: POKE 75,b
resets LOMEM pointer
EXAMPLE
1. New LOMEM: 1-30002. a:=184, b=113. POKE 204,184: POKE 205,
II4. POKE 74, 184: POKE 75, II
Part of a personal computer'scharm lies in the fact that it is acreative tool. Each person uses it
TD /H
!: ... H
INTO STRING VARIABLE
&f CI}NVERTE~ PRINTING CHARReTE
END
BUILD B$
FINU LENGTH DF
STRING CONCATENA
.-. :...= n.:;,,:
CONTENTS
13
'70 /the best of the user group newsletters for 1978
differently, to accomplish different goals. Unfortunately, thismakes it difficult to write amanual that adequately coverseverything a person might wantto do with his system. The HOWTO section is therefore devotedto answering questions the manuals missed.
LOADING MACHINELANGUAGE AS PART OF ABASIC PROGRAM
Often we want to includemachine language data inside aBASIC program. A great manyApple tapes are made up thisway to simplify the loading process. Here's a recipe for doing ityourself with programs writtenin Apple BASIC.
Apple BASIC loads programsinto memory with the highestprogram line at the highest RAMlocation (HIMEM). Preceedinglines are located lower and lowerin RAM. The beginning of theprogram is PP, an address whichis held in memory locations CAand CB (hexadecimal), or 202and 203, decimal. When youtype SAYE, the computer transfers to tape everything betweenPP and HIMEM. Thus, to tuckmachine language into your program so that it can later beloaded like BASIC, it is merelynecessary to move the PP pointerdown below the beginning of theextra code, put in two POKESto reset the pointer before running the program, and typeSAYE. Later, you will be able toLOAD the whole thing just as ifit were all BASIC. Just followthese steps:
1. Get the BASIC program intomemory, just the way youwant it. If you make anychanges, you must re-do steps2 and 6.
2. In the command mode, type:PRINT PEEK(202), PEEK(203)and write down the results.Let's call them m and n, respectively.
14
3. Load your machine languagecode into memory using themonitor load capability(xxxx.yyyyR). This will putthe machine language programinto memory below the beginning of the BASIC program,starting at hexidecimaladdress xxxx.
4. Take the starting address ofthe machine language program and divide it into twoparts: xx xx. Convert eachpair of digits from hex todecimal values: a & b; corresponding to the left andright xx pairs, respectively.Write them down.
5. Now enter the BASIC command mode and type:POKE 202, b-l (value b fromstep 4, above)POKE 203, a (value a fromstep 4, above)POKE 204, 00POKE 205,8
6. You have now moved thepointers down below yourmachine language program,and must insert code to movethem back again when theprogram is run. To do thattype: 'oPOKE 202,m: POKE 203,n:GOTO qwhere m and n are the valuesfrom Step 2, and q is the firstline number in your BASICprogram. That line numbercan be O-it will not be erasedby the above entry.
7. Now you're done! Don't tryto list your program beforerunning it, because all you'llsee is a meaningless set ofnumbers and symbols. Justtype SAYE (before runningthe program), and it will allgo onto tape. Later a LOADcommand will bring it allback in.
CAUTION/Once you have RUN such a
program, you cannot SAYE itfor the pointers will have beel;moved. You can only save orcopy a program like this beforeit has been RUN.
... A Moving Experience
On occasion it is handy toknow how to move large blocksof data from one area of memoryto another. While this is simpleto do from the monitor (usingthe M command), it is a littlemore complex in BASIC. Beloware some handles on the monitorroutines that will let you usethem within your BASICprograms.
When would you use them?Well, they come in handy forcopying images from page 1(normal) to page 2 in standardresolution graphics. With twoslightly-different images on thetwo pages, it is possible to dosimple animations by switchingrapidly back and forth betweenpages. (NOTE: Be sure to setLOMEM to 3072 or higherbefore using page two ofgraphics, or your variable tablewill be destroyed.) Here's how.
POKE 60, (old startingaddress mod 256)POKE 61, (old startingaddress / 256)POKE 62, (old endingaddress mod 256)POKE 63, (old endingaddress / 256)POKE 66, (new startingaddress mod 256)POKE 67, (new startingaddress / 256)CALL -468 (the actualmove command)
Now, to use Page 2 (remember to set LOMEM to 3072 orhigher) :10 POKE 60,0:POKE 61,4:
POKE 62,255:POKE 63,7:POKE 66,0:POKE 67,8:CALL -468: POKE-16299,0
To switch back and forthbetween Pages 1 and 2:
POKE -16299,0 (displays Page2)POKE -16300,0 (displays Page1)
COIn:OCl:"iO!the best of the user group newsletters for 1
If both pages contain similargraphics figures, then switchingbetween the pages will yieldsimple animation; further effectsmay be gleaned from an inspection of the list of POKEs on page30 of the APPLE II ReferenceManual. (NOTE: Don't try thiswith APPLESOFT in RAM. Itstarts at hex 800-the secondpage ofgraphic space. A blockmove into that area will sendyour APPLESOFT BASIC intothe bit bucket/)
PRINTING LOWER-CASELETTERS WITH APPLE II
APPLE II cannot presentlydisplay lower-case characters onthe screen, but it has no troubleprinting them on most printers.To create a string of lower-casecharacters, simply generate thestring in upper case at a knownmemory location; and then gothrough and add 32 to the ASCIIvalue of each upper-case letter.
That will produce the lower-caseASCII equivalent. If you thenshove the modified code backinto the string variable in placeof the old value and print thestring, you will print lower casecharacters.
As you convert the string,you must test each character tosee that it is not a numeralpunctuation, etc. Obviously,only alphabetic characters can beconverted to lower-case. Here's asample program that does thejob.
This program works because,by defining A$ first, we know itsabsolute address in memory. Itsfirst letter is stored in address2053. (If this program were to beconverted to APPLESOFT, wewould have to manipulate ourcharacters entirely through thestring routines, since we cannotaccurately locate the string inmemory.)
10 DIM A$CSO): REM BUFFER... MUST BE FIRST VARIABLE DEFINED IN PROGRAI1
20 INPUT "ENTER DATA: ", A$30 FOR 1=1 TO LENIA$)40 C= PEEK 12052+1): REM SET C=ASC
I I VALUE OF THE "ITH" CHARACTERIN A$
50 IF C<193 THEN 70: REM TEST FORA NON-ALPHA CHARACTER. IF FOW~D,
DO NOTHING60 POKE 2052+I,C+32: REM CONVERT L
ETTER TO LOWER CASE AND INSERT BACK INTO A$
70 NEXT I80 CALL -936: REM CLEAR SCREEN90 PR#I: REM TURN PRINTER ON CREME
"'IBER, "PRINT D$; "PfHl1" FOR DISf\SYSTEMS
100 PRINT "80N": REI1 SET PRINTER FOR 80 CHARACTERS
110 PRINT A$120 PRINT "40N": REM RESET PRINTER
TO 40 CHARACTERS130 PR#O: REM SEE LINE 90 FOR DISK
SYSTEI1S140 END
15
'70 /the best of the user group newsletters for 1978
1040 GOSUB 21001050 POKE 30, X - INT (X I 256) * 256 POKE 31, X I 256: CALL - 307: REM
PUT (X) INTO LOCS 30&31, AND WROTE IT TO TAPE1060 REM (X) IS THE LENGTH OF THE STRING AREA.1070 POKE 60, PEEK (111): POKE 61, PEEK (112): POKE 62, PEEK (115): POKE
63, PEEK (116): CALL - 307tOqO REM HAVE NOW WRITTEN EVERYTHING.1090 PRINT "0. K. ": RETURN2000 RECALL BI: REM GOT POINTERS BACK.2010 GOSUB 2100: CALL - 259: REM GOT LENGTH OF STRING AREA2020 X = PEEK (30) + PEEK (31) * 256: REM XISLENGTH OF AREA TO READ IN2030 X = PEEK (115) + PEEK (116) * 256 - X2040 POKE 60, X - INT (X I 256) * 256: POKE 61, X I 2562050 POKE 62, PEEK (115): POKE 63, PEEK (116): CALL - 2592060 RETURN2100 POKE 60,30: POKE 61,0: POKE 62,31: POKE 63,0: RETURN REM SET CASS
ETTE ROUTINE POINTERS.
Being precise in INTEGER
The use of INTEGER BASIClimits you to the range of num-
-10.9-100. 19
-1000.119-10000 ·1119
LIST10 F=-IO: D=9: 0=915 A=F20 GOSUB 2000: PRINT" ";030 IF A>3000 THEN 100040 F=IO*F:D=D+A50 GOTO 15
1000 END2000 REM RIGHT-JUSTIFICATION ROUTINE
FOR APPLE BASIC2010 REM INPUT IS ASSUMED TO BE IN
VARIABLE "A"2020 REM THE RIGHTMOST CHARACTER WILL
APPEAR IN COLUMN CONTAINED INVARIABLE "D"
2100 AI=" ": IF ACO THEN AI="-": REMGET SIGN OF NUMBER
2110 A= ABS (A): REt1 CONVERT A TO POS. ~
2120 C=(A>IO)+(A>IOO)+(A>IOOO)+(A>IOOOO)'REM DETERMINE HOW FAR TOLEFT-SHIFT PRINTOUT
2130 TAB (B-C-I): PRINT AI; A; :REM RIGHT-JUSTIFY PRINTOUT
2140 RETURN
>RUN
Lining things up, point by point
Since most BASICs justify(i.e., line up) the left-mostcolumn, a display of multi-digit,decimal-pointed num bel'S can beawkward to read and somewhatunattractive.
A solution to this problemwould be to use a tabulationroutine that "justifies (or linesup) on the decimal point." Sucha routine would position thenumbers in a column so that thedecimal points are verticallyaligned. The short programlisted below does exactly that.
Statements 10 through 50are merely a demonstration routine that yields the sample runshown at the end of the listing.Statements 2000 through 2140contain the routine that actuallydoes the work. In effect, theroutine aligns the numbers byright-justifying to the digit leftof the decimal point, then tackson the decimal point and theremaining digits to the right ofthe decimal point.
These two fixes should clearup all the problems in the program.
high memory. One way is to useconcatenation:
20 A$(I) == A$(I) + " "
how far up the variables are;1050 writes out the length of thetape's string area; and 1070writes all the desired informationto tape.
Strings can also be created byestablishing string pointers thatpoint to the string definitionswithin the program itself ratherthan copying the string definition to high memory and pointing to it there. Strings created inthis way are not saved by thistechnique and if the saved stringsand pointers are used by a different program, these pointerswill point to meaningless portions of the new program. Thisproblem can be overcome byforcing the interpreter to copythe string item definitions to
THE NAME OF THE GAMEIS THE SAVING OF THENAME
If you're an APPLESOFT IIuser working with, say, an inventory list with names, then you'rein a bit of trouble if you want toSAVE the complete list tocassette tape, names and all:APPLESOFT II will save thenumbers but not the names(strings). (Of course, the nicestway to SAVE such a list is todisk.)
If you need to save strings totape however, the followingprogram will do the job verynicely. Note that statement 10creates space for the strings;1010 gives you informationabout free memory space and
~'SYNTAX ERRORJUST
REI12 REM PROGRAM TO SAVE STRINGS3 REM TO CASSETTE TAPE.4 REM BY R.WIGGINTON (6/78)5 REM10 DIM A$(10)20 PRINT "TYPE IN NINE STRINGS, SEPARATED BY": PRINT "CARRIAGE RETURNS. "3D FOR K = 1 TO 9: INPUT A$(K) NEXT K40 REM NOW SAVE A$ TO TAPE.50 GOSUB 100055 PRINT "STRINGS ARE NOW ON TAPE. TO RECALL, TYPE 'GOTO 100', REWIND
AND START TAPE, AND PRESS 'RTN'."57 PRINT "LET TAPE RUN UNTIL CURSOR RETURNS. "60 END100 REM THIS PART RECALLS THE101 REM STRINGS FROM TAPE.102 REM110 DIM B$(10)120 GOSUB 2000130 FOR K = 1 TO 9: PRINT B$(K): NEXT K140 END1000 REM STORE A$ TO TAPE.1003 PR INT "INSERT CLEAN TAPE, START RECORDING. "1005 PRINT "HIT ANY KEY WHEN READY": GET ZI1010 X = FRE (0): STORE A$: REM STORE AI REALLY STORES POINTERS1020 REM IN ORDER FOR THIS PROGRAM TO WORK, HIMEM MUST BE AT THE SAt1E1021 REM VALUE WHEN THE STRINGS ARE RECALLED AS WHEN THEY ARE STORED.1030 X = PEE~ (115) + PEEK (116) * 256 - PEEK (111) - PEEK (112) * 256
PRtlO
16
",0 /the best of the user group newsletters for 1978
bel's between -32767 and+32767. Such a limitation is, atits best, frustrating, and, at itsworst, infuriating. Consider, forexample, the businessman whodaily deals with foreign currencies, for which the basic monetary unit may be very, verysmall. What's a fella' to do?
Well, what he has to do is togo to multiple-precision arithmetic by means of a routine suchas we present here. While thisexample is for addition only, itis readily adaptable to subtraction, multiplication, and divisionby changes in statements 3000through 3080. The program doesits job on large numbers in thesame way as we do it by long-
.-; SYNTAX ERRI,:"r
hand arithmetic; that is, itoperates on one digit at a time,then carries to the next, and soon.
This particular listing is longand slow, because we wanted tomake it clear and easy to read sothat you could see what's happening. You may modify it torun much faster.
Incidentally, you can get abetter understanding of the program's operation by relatingcertain of its statemelats to theASCII conversion table that isin this issue's OUT OF THEMIST section. Statements 2500through 2520, for example,result in the keyboard being readdirectly. 2540 refers to CHAR =
141 ; reference to the table tellsyou that decimal 141 is actuallythe Carriage Return. Similarly,2545 excludes all charactersexcept for the digits 0 through9 (176 through 185). Again,statement 2550 converts theASCII characters to the numbersthemselves (Le., if CHAR = 181,then 181 - 176 = 5).
The final Disk OperatingSystem manual is in the works,and it's going to contain a lot ofinformation. But like all goodthings, it will take some time.Meanwhile, we have producedsome examples that show how tohandle the most asked-aboutsituations.
10) REM MULTIPLE PRECISION ARITHMETIC20 REM AN INTEGER BASIC EXAMPLE:10 REM THAT PROVIDES 20-DIGIT40 REM ARITHMETIC PRECISION50 REM --- - --------------------------
100 GOSUD 1000 REM INITIALIZE EVERYTHING.200 GQSUS GETA REM GET FIRST NUMBER INTO MATRIX A100 GOSUS GElD REM GET SECOND NUMBER INTO MATRIX B400 GOSUG ADDITION REM ADD MATRICES -- C=A+B',ri(1 GOSU13 pure REM PR I NT RESVL T.C0 END
1000 REM INITIALIZATION ROUTINESl (IDS REt1 -------------- -- _
1010 DIH A<3QI,B(3D),C(30),O(30),E(30)llj20 GETA""2007. GETO=2100 PUTC",,40101030 AODITION""30101090 RETURN2000 REM OE T A ROuT I NE2005 REH ~~---------------~~---
2\)07 PRINT "INPUT A", TAB 202010 GOsun 2500 REM GET INPUT INTO MATRIX E.1020 FOR 1=1 TO 30 A( I )=E( I) NEXT I REM MOVE NUMBER INTO A2\}30 RETURr42100 PRINT REM GET n ROUTINE2103 REH -------------~----------
2105 PRINT "INPUT B", TAO 20dl10 GOSUB 2500 REM GET WPUT INTO MATRIX E<~l20 FOR 1""1 TO 300(1)=£(1) NEXT I REM MOVE NUHBER INTO B;;:lJO RETURN2500 REf1 KEYBOARD INPUT ROUT INE2505 REH ---------------~---~----
2510 FOR 1=1 TO 30 E< I )=0 NEXT I CHAR=O OPTR=1 GOTO 2530:2520 CHAR= PEEK (-16384) REM READ KEYSTROKE2530 POv..E -16368,0 REM CLR LAST KEYSTROKE2540 IF CHAR=141 THEN 2590 RE/1 GOT ClR;;'545 IF (CHAR<176 OR CHAR)185) THEN 2520 REM NOT A NUt1BER, so IGNORE IT2550D<OPTR)cCHAR-176 REH CONVERT ASCII TO NUHDER AND SAVE2555 PR INT D<DPTR), DPTR=DPTR+l::'560 IF DPTR<21 THEN 2570 PRINT "INPUT TOO LONG--START OVER" POP POP
END;?S70 CHAR"'O, OOTO 2530 REM WAIT FOR NEXT KEYSTROII.E2590 EPTR""31: 1""1 REM WRAP UP TRANSFER D INTO E2~95 IF DPTR-I<O THEN RETURN2597 E(EPTR-I )=D(DPTR-I) 1=1+1 GOTO 2595 REM E=D, RIGHT-JUSTIFIED2610 RETURN REM LEAVE INPUT ROUTINES3000 REM ADDITION ROUTINES3005 REM -------------~-----
J;.)10 CARYIN=OJIJ20 FOR I ""30 TO 1 STEP -1J)30 CARYOUT=O,TEMP=A(I)+D(I)-tCARYIN REM ADD COLUMN PLUS CARYIN3'J40 IF TEMP(tO THEN 3060J:)50 CARYOUT=CARYOUT+l TEMP=TEHP-10 GOTO 3040J')60 C<I)=TEMP CARYIN=CARYOUT REM FINISHED ADJUSTING CARRY FIGURES3070 NEXT IJ080 RETURN4000 REM OUTPUT ROUTINE4U05 REM ----------------~-
4010 PRINT PRINT PRINT4020 1=14030 IF A{ I )00 THEN 4040 1""1+1 GOTO 4030, REM IGNORE LEADING ZEROS4040 TAO 1+8 FOR J=I TO 30 PRINT A(J); NEXT J4Q50 1=14060 IF B( I )00 THEN 4070,1=1+1 GOTO 4060: REt1 IGNORE LEADING ZEROS4070 PRINT TAB 1+8 FOR J=I TO 30 PRINT B(J); NEXT J4080 1=14090 IF C<I)()O THEN 41001=1+1· GOTO 4090· REM IGNORE LEADING ZEROS4100 PRINT TAB 1+7 FOR J=I TO 31 PRINT "_>l j NEXT J' PRINT4110 TAO 1+8 FOR J=I TO 30 PRINT C(J); NEXT J4115 PRINT PRINT'~120 PRINT PRINT "iHHHHH>ltllllltil<HHHt******II*_**.***.III1 ••*****". PRINT
RETURN
FlUN
!M'UT AIlll"UT D
98765432109999999999
98765432109999999999
DATA FORMAT
The first thing to understandabout the disk is its informationformat. Data can be written asfixed-length records or randomlength records. All data is writtenin ASCII. Fixed-length recordsare written when you OPEN thefile with an "L" parameter.OPEN DAN, L40 will create afile named DAN, whose recordsare all 40 bytes long. If you onlyput 20 bytes of information intoeach, you will waste 20 bytes perrecord of disk space.
Random-length records areactually one byte each, but aregrouped together into blocks(logical records) which can be upto 32K bytes long. Each logicalrecord ends with a carriagereturn. Note that this means thenumber" 1" will require 2 bytes(number followed by aRETURN), and the number 10will require 3 bytes. If you forgetthis and later replace" 1" with"10", you will destroy part ofthe following record (poor programming practice).
USING RANDOM-LENGTHRECORDS
19876543209
-;" -t' .·11 1t ... ·IlIt* ** JHHHI-. "'·11 IHHt'" IIif***II** IHHHIII* II
Example number one illustrates the writing of random-
17
COfl':OCi:"iO /the best of the user group newsletters for 1978
length records. We simply openthe file, then start printing. EachPRINT statement creates onelogical record, ending with a carriage return. Thus, to put itemsinto separate records, we mustprint them with separate PRINTstatements. Each record is justlong enough to hold the data youput in it.
Now run this program, usingstrings of less than 20 characters.It produces files called FILE andFILE.PTR, which are used in thefollowing examples.
Example two reads the filescreated by example one. It firstreads FILE.PTR, which tells ithow long the data file will be.Then (in lines 90-100) it reads inthat many records from FILE.This is a sequential read, whereeach INPUT statement brings inthe next record.
Lines 21 0-220 are randomaccess reads (this has nothing toto with random record length),where we read a particular recordfrom the middle of the file. Todo random reads, we specify the
5 REM THIS PROGRAM SHOWS HOW TOWRITE RANDOM-LENGTH RECORDS
10 HOME DIM A$(20), BI(20),A(20):N = 1
20 LET D$ = "": REM CTRL D30 PRINT "ENTER 'END' TO QUIT":
PRINT "ENTER STRING II"; N; :INPUT AI(N): IFAI(N) = "END" THEN 60
40 PRINT "ENTER ANOTHER STRING";:INPUT B$(N): PRINT "ENTER ANUt1BER ";: INPUT A(N)
50 PRINT:N = N + l' GOTO 3060 PRINT D$"OPEN FILE"70 PRINT D$"WRITE FILE"80 FOR X = 1 TO N - 190 PRINT A$(X)' PRINT BI(X):
PRINT A(X): NEXT100 PRINT D$"CLOSE FILE"110 PRINT DI"OPEN FILE. PTR"120 PRINT D$"WRITE FILE.PTR"130 PRINT N - 1140 PRINT DI"CLOSE FILE. PTR"150 END
5 REM THIS PROGRAM SHOWS HOW TOREAD BACK RANDOM-LENGTH RECORDS
10 LET D$ = "": REM CTRL D20 HOME DIM C$(20),D$(20),C(20)30 PRINT D$"OPEN FILE. PTR"40 PRINT D$"READ FILE. PTR"50 INPUT PTR60 PRINT D$"CLOSE FILE. PTR"70 PRINT D$"OPEN FILE"80 PRINT D$"READ FILE"90 FOR X = 1 TO PTR100 INPUT C$(X): INPUT D$(X):
INPUT C(X): NEXT210 PRINT D$"READ FILE.R3"220 INPUT C$(I),D$(I).C(I)
18
230 PRINT D$"CLOSE"235 PRINT PRINT PRINT240 PRINT C$(1).D$(I).C(I)1000 END
JRUN RNDREADEROPEN FILE. PTRREAD FILE. PTR'73CLOSE FILE. PTROPEN FILEREAD FILE?THIS IS?AN EXAt1PLE'71?OF RANDOM?RECORD'72?USAGE??3READ FILE,R3?S IS??AN EXAMPLE'nlCLOSE
S IS AN EXAMPLE
desired record, minus 1. Notehowever that the computerdoesn't know how long eachlogical record is. (They're random length, remember?)
Therefore, it uses thephysical record size, which is onebyte long. (All records arephysically one byte long, unlessspecified otherwise in an OPENstatement.) This means that ifwe say "READ FILE, R3," thenext INPUT statement will startreading at the fourth characterof the file. Try it and see.
USING FIXED-LENGTHRECORDS
Fixed-length records are allof the same size and format.They offer the advantage of easeof use, since they always presentinformation the same way. Onthe other hand, they are inflexible. You must know when youstart a file how big the largestrecord will be. Then, any smallerrecords will waste disk space(since all records are as long asthe longest one). Example threeshows the use of fixed-lengthrecords in both sequential andrandom access. Note that whenwriting into such a file (lines120-150), we must specify eachrecord number in a WRITEstatement. Once the file is
10 REM THIS PROGRAM PROVIDES ANEXAMPLE OF RANDot1 RECORD ACCESS
4060 REM INITIALIZATION70 DIM A$(40):D$ = CHR$ (4)80 PRINT DI, "NOMON C"90 REM CREATE FILE OF FIXED
LENGTH, 30-BYTE RECORDS, EACHCONTAINING SIMILAR
100 REM ASCII STRINGS.110 PRINT D$, "OPEN TEST2. L30"120 FOR I = 0 TO 5130 PR I NT DI i "vJR I TE TEST2. R", I140 PRINT "NAME ADDRESS "; I150 NEXT I160 REM NOW CHANGE ONE RECORD..170 PRINT D$; "WRITE TEST2,R3"180 PRINT "APPLE DOS VER 3.1"200 REM NOW READ THE FILE,
LOOlUNG FOR THE CHANGE.PRINT SOMETHING WHEN IT
210 REM IS FOUND220 FOR J = 0 TO 5230 PRINT D$, "READ TEST2. R"; J240 INPUT AI250 IF LEFT$ (AI. 51 = "APPLE"
THEN PRINT "THIS RECORD WASCHANGED"
260 NEXT J270 REM NOW CLOSE THE FILE. SO
YOU WON'T GET AN 'OUT OF DATA'ERROR WHEN
THE280 REM PROGRAM TERMINATES.290 PRINT DI; "CLOSE"300 END
JRUNNOMON CNAME ADDRESS 0NAME ADDRESS 1NAME ADDRESS 2NAME ADDRESS 3NAME ADDRESS 4NAME ADDRESS 5APPLE DOS VER 3. 1?NAME ADDRESS 0?NAME ADDRESS 1?NAME ADDRESS 2?APPLE DOS VER 3. 1THIS RECORD WAS CHANGED?NAME ADDRESS 4?NAME ADDRESS 5
conOOCi: '70 /the best of the user group newsletters for 1978
written, we can replace a randomrecord with another that contains more characters (lines 160180), so long as the new datadoes not exceed our 30-byterecord length.
After a change is made, wecan scan the whole file (lines200-260) to find the change,read it, and do something aboutit.
EXECUTE FILES
The last example concernsitself with EXEC files. Unlikeother files that contain programs or data, EXEC files contain commands, just exactly asthey would by typed on the keyboard by a computer operator.Thus, commands in this file arenot preceeded by a CTRL/D,
since that's not what you wouldtype on the keyboard. An EXECfile is created by a program madeup for the purpose. It simplyopens a file, and then PRINTseach command into it, just asyou would have typed it.Example 4 shows a typicalEXEC-builder program, whichcreates a file called COMMANDS. While most operationsare straightforward, puttingquotes into the file (for stringprinting, etc.) is tricky. Lines70-90 show how to do it.
After this program has run,you will have an EXEC file onyour disk. If you then say EXECCOMMANDS, it will take controlof the system, do the specifiedoperations, and return commandto the keyboard when finished.
10 REM THIS PROGRAM SHOWS HOWTO BUILD AN EXEC FILE
20 LET D$ = CHR$ (4) : REM CTRLD
30 PRINT D$I "OPEN COMMANDS"40 PRINT D$; "WRITE COMMANDS"50 PRINT IlFp lI
60 PRINT "FOR 1=0 TO 10: PRINT JNEXT I"
70 PRINT "RUN RNDREADER"80 LET Z$ = "THIS IS THE END OF
THE EXEC FILE. "90 LET Q$ = CHR$ (34) : REM HOW
TO INSERT QUOTES100 PRINT "PRINT";Q$; Z$IQ$110 PR INT D$I "CLOSE"120 END
Inc.
Example 5 illustrates the useof the APPEND command. Thiscommand will open a filewithout "rewinding" it back tothe beginning. Thus it allows youto build onto an existing file.The first item added to a fileafter it is appended will appearimmediately following the lastitem of old data in the file. Trythe following example to seehow it works.
JL 1ST
lCO REM APPEND FILE
110 HOME :D$ = "H. REM CTRL D120 INPUT "ENTER A STRING: "I A$130 IF A$ = "" THEN 200140 PRINT D$"APPEND TEST"150 PRINT D$"WRITE TEST"160 PRINT A$: PRINT D$"CLOSE"170 GOTO 120180190200 REM GET IT BACK OUT
210 ONERR GOTO 250220 PRINT D$"OPEN TEST"230 PRINT D$"READ TEST"240 INPUT A$: GOTO 240250 POKE 216,0: REM RESET FLAG260 PRINT D$"CLOSE"270280300 REM THIS PROGRAM DEMON310 REM STRATES THE USE OF320 REM THE 'APPEND' COMMAND3303~0 REM IT WILL CONTINUE TO350 REM APPEND THE 'TEST'360 REM FILE UNTIL A NULL370 REM STRING IS ENTERED.380390 REM AT THAT POINT IT ~ILL
400 REM READ THE RECORDS BACK410 REM FROM THE FILE.
19
According to its manufacturer, this new full-range joystickhas been designed to plug directly into APPLE's game I/O connector. With each joystick aretwo switches and two trim potsfor adjusting to any APPLE IIand any application. Completelyassembled, the single joysticksells for $39.95; a double joystick is available at $79.95.Quantity discounts are available,and delivery is 30 days ARO.Microproducts Company, 112819th St., Santa Monica, CA90403. (213) 393-8371.
Protect your investmentfrom dust, coffee spills, and idlefingers with a heavy duty beigevinyl cover, custom fitted toyour Apple II Computer. Foronly $6.95 (includes shipping)you can help to insure a long anduseful life for your investment.
TO ORDER send check ormoney order to:
Henwood Enterprises, Inc.1833 E. Crabtree Dr.Arlington Heights, Ill. 60004
OR call TOLL FREE 800-3237360 and use your MasterCharge, VISA, or AmericanExpress credit card.
JOYSTICK UNIT
ANALOG INPUT CARD
The AI-02 is a single-card,16-channel, analog data acquisition system for APPLE II. Eachchannel is individually addressable through software. The analogto-digital conversion takes70fJ,s (8-bit resolution), afterwhich an interrupt or a completion flag is activated and theconverted value can be acquiredby APPLE. Contact the manufacturer for more information onthe AI-02, as well as for information on other of the firm's products for APPLE, such as a videoinput interface, and inventoryand remote data entry softwarepackages. Interactive Structures
TAPE RECORDER CONTROL
ROR and Candex Pacifichave announced a relay activatorto start and stop audio taperecorders via the REMOTE jack.The activator plugs into theGAME I/O connector on theApple II, and is controlled withPEEK and POKE commands.Its connector allows the gamecontrols to plug into it so thatboth devices can be used simultaneously.
Retail price is $24.95, andquantity discounts are available.Delivery is 30 days ARO. Technical questions should beaddressed to Candex Pacific, 693Veterans Blvd., Redwood City,CA 94063.
connection to your televisionreceiver's antenna terminals, andit is powered by four AA cells,which the manufacturer claimswill last in excess of 1000 hours.Suggested price: $35, fromdealers or factory direct. ATVResearch, 13th and Broadway,Dakota City, NE 68731; (402)987-3771.
HARDO-COPY GRAPHICSTERMINAL
The Panographic-84 is a precision x-y plotter with 100-stepresolution in both directions; itis driven by zero-drift, adjustment-free stepping motors.Plotter programs can be writtenin BASIC or machine-language.Interface to APPLE is via ourParallel Printer card. Soon to beavailable is a chart reader thatwill allow you to use the plotteras an input device. Theassembled plotter, with computer-operated pen lifter andmolded cover, sells for $1400(delivery 60 days ARO); as a kit,without lifter and cover ($995(90-days delivery»; the pen lifterkit is $85; the cover, also $85.Pan Dynamics, Inc., 2950Nebraska Ave., Santa Monica,CA 90404; (213) 829-2332.
/the best of the user group newsletters for 1978
interest
NEW MODULATORS MEANNO MORE WAVY LINES
Some APPLE II users havenoticed wavy lines or colorpatches on their TV screenscaused by radiation from airplanes, motors, or the computeritself. A UHF modulators seemto solve these problems neatly.One new device, called theSup-R-Mod II, is available at$29.95, from
M&R ENTERPRISESP.O. Box 1011Sunnyvale, CA 94088The new modulator comes
completely assembled, ready toplug into the APPLE II.
Another modulator unit, thisone from ATV Research, is available to transform APPLE II'svideo output to a video-modulated UHF signal. For B/W orcolor, the unit-called the MicroVerter model MVX-500-outputsa signal tunable to one of fourchannels above television channel14. It does not req uire direct
This column is written as aservice to Apple customers, andcontains information onproducts that we feel to be ofinterest to the user community.Apple Computer Company doesnot in any way recommend theseproducts, or warrant their suitability for use with the APPLE IIcomputer.
•••
20
Ithe best of the user group newsletters for 1978
Inc., SUIte 204, Science Center, 5. CANDEX PACIFIC Ron Graff3401 Market St., Philadelphia, 693 Veterans Blvd. P.O. Box 622PA 19104. (215) 382-8296. Redwood City El Toro
INTERFACE BOARDCA. CA.94063 92630
A newly announced peri- (415) 364-8427 (714) 586-2246
pheral interface board containstwo 2716 PROMs, 20-mA and 6. CHARLES MANN & 14. M & R ENTERPRISES
RS232 interfaces, a real-time ASSOCIATES P.O. Box 1011
clock, and a parallel output port. 1926 South Veteran Ave. Sunnyvale
The board also has two 16-pin Los Angeles CA.
DIP sockets, which may be used CA. 94088
to connect the board to an 90025
external source. Contact the (213) 473-0244 15. MICROPRODUCTS
manufacturer for pricing 1024 - 17th St.
information on the complete 7. COMPUTER Hermosa Beach
board. A bare board-without COMPONENTS INC. CA.
components, but with assembly 6791 Westminster Ave. 90254
instructions, diagrams, and pro- Westminster (213) 374-1673
grams-is available for $29. CA.
Delivery, 3-4 weeks ARO. 92683 16. MOUNTAIN HARDWARE
Peripheral Interface, 173-1128 INC.
McKercher Dr., Saskatoon, 8. DAVID GORDON 5523 Scotts Valley Dr.
Sask. Canada S7H 4Y7. David Gordon Scotts Valley16956 Tupper St. CA.
THE GANG OUTSIDE THE Sepulveda 95066ORCHARD CA. (408) 438-4734
Here is a list of over 50 com- 91343
panies or groups that market soft- 17. PROGRAMMA
ware, hardware, or newsletters 9. ED AVELAR CONSULTANTS
for APPLE II owners. Ed Avelar 3400 Wilshire Blvd.2850 1ennifer Dr. Los Angeles
ARIZONA Castro Valley CA.1. PROGRAMMERS SOFT- CA. 90010
WARE EXCHANGE 945462110 North 2nd St. (415) 538-1235 (9-5) 18. QUALITY SOFTWARECabot 10. G2 PROGRAM LIBRARY -
10051 Odessa Ave.AR. GRTCORP.
Sepulveda72023 1286 North Lawrence
CA.
CALIFORNIA Station Rd.91343
2. AlA SOFTWARE SunnyvaleP.O. Box 2528 CA.
19. RAINBOW COMPUTING
Orange 94086INC.
CA.10723 White Oak Ave.
(714) 774-1270 11. GEORGE W. LEEGranada Hills
George W. LeeCA.
3. APPLE CORE 18803 S. Christina Ave.91344
Scott Kamins Cerritos(213) 360-2171
P.O. Box 4816 CA.San Francisco 90701
20. SOFTAPE SOFTWARE
CA. (213) 865-1639EXCHANGE
9410110756 Vanowen St.
12. HEURISTICS INC.North Hollywood
4. ASTRO GRAPHICS 900 North San Antonio Rd.CA.
SOFTWARE Los Altos91605
140 Willow Ave. #2 CA.(213) 985-5763
FairfaxCA. 13. INNOVATIVE COMPUTER94930 PROGRAMS
21
";0 /the best of the user group newsletters for 1978
21. STRICTLY SOFTWARE16720 Hawthorne Blvd.LawndaleCA.90260(213) 371-7144
22. WISE OWL WORKSHOPClifford T. Schafer1168 Avenida De Las PalmasLivervoreCA.94550
CANADA23. SPEAKEASY SOFTWARE
LTD.P.O. Box 1220Kemptville - OntarioCanadaKOG 130(613) 258-2451
CONNECTICUT24. PROGRAM DESIGN INC.
Carol Klitzner11 Idar CourtGreenwichCT.06830
FLORIDA25. DR. GEORGE L. HALLER
Dr. George L. Haller1500 Galleon Dr.NaplesFL.33490
26. TRANS-DATA CORP.161 Almeria Ave. - Dept.B-118Coral GablesFL.33134(305) 576-7666
ILLINOIS27. ELECTRIC KEYBOARD
LTD.1920 N. Lincoln Ave.ChicagoILL.60614(312) 751-1555
22
28. HENWOOD ENTERPRISESINC.1833 E. Crabtree Dr.Arlington Hts.ILL.60004(800) 323-7360
29. WALLACE ELECTRONICSINC.4921 N. Sheridan Rd.PeoriaILL.61614(309) 692-2616
IOWA30. EARL KEYSER
Earl Keyser22 Clover LaneMason CityIA.50401
LOUISIANA31. SOUTHEASTERN
SOFTWARE7270 Culpepper Dr.New OrleansLA.70126
MARYLAND32. COMPUTERS ETC.
9330 Georgia Ave.Silver SpringMD.20910(310) 588-3748
33. MICRO USERS SOFTWARE EXCHANGEINC.7112 Darlington Dr.BaltimoreMD.21234(301) 661-8531
34. U ASKED 4 ITStuart FragerP.O. Box 13331BaltimoreMD.21203
MASSACHUSETTS35. ERIC ROSENFELD
Eric Rosenfeld70 Lancaster Rd.ArlingtonMA.02174
36. PERSONAL SOFTWAREP.O. Box 136CambridgeMA.02138(617) 783-0694
MICHIGAN37. SYMETEC INC.
P.O. Box 462FarmingtonMl.48024
MINNESOTA38. NELSON R. CAPES
Nelson R. Capes586 Kent LaneShoreviewMN.55112
MISSOURI39. MILLIKEN COMMUNI
CATIONS CORP.Bodie Marx1100 Research Blvd.St. LouisMO.63132(800) 325-4136
NEBRASKA40. ATV RESEARCH
13th and BroadwayDakota CityNE.68731(402) 987-3771
NEVADA41. 6502 PROGRAM
EXCHANGE2920 MoanaRenoNV.89509
"iO Ithe best of the user group newsletters For 1978
NEW JERSEY42. CREATIVE COMPUTING
SOFTWAREP.O. Box 789-MMorristownNJ.07960(800) 631-8112 - in NJ.(201) 540-0445
NEW YORK43. EBC
P.O. Box 138FreevilleNY.13068
44. PRS THE PROGRAM OFTHE MONTH CORP.257 Central Park WestNew YorkNY.10024
PENNSYLVANIA45. ARESCO - THE RAINBOW
MAGAZINEP.O. Box 43 - Dept.RP-ll78AudubonPA.19407
46. INTERACTIVE STRUCTURES INC.3401 Market St. - Suite 204
Science CenterPhiladelphiaPA.19104(215) 381-8296
47. MICROTRONIXP.O. Box Q - Dept. SPhiladelphiaPA.19105(800) 523-4550
TEXAS48. B & G INTERFACE
P.O. Box 59364Northhaven StationDallasTX.75229
49. DALLAS APPLE CORP.- THE GREENHILLSCHOOLBob MatzingerP.O. Box 13446ArlingtonTX.76013
50. S-C SOFTWAREP.O. Box 5537RichardsonTX.75080
UTAH51. BASIC BUSINESS
SOFTWARE CO.P.O. Box 2032Sal t Lake Ci tyUTAH84110
VIRGINIA52. CH GALFO
602 Orange St.CharlottevilleVA.22901(804) 296-4832
53. HOME COMPUTERCENTER INC.2927 Virginia Beach Blvd.Virginia BeachVA.23452(804) 340-1977
WASHINGTON54. APPLE PUGET SOUND
PROGRAM LIBRARYEXCHANGEVal Golding6708 39th Ave. S.W.SeattleWA.98136(206) 937-6588 (Eves.)(206) 623-7966 (Days)
55. DARRELL'S APPLEWAREHOUSE17638 - 157th Ave. S.E.RentonWA.98055
56. PUGETSOUND PROGRAMLIBRARY EXCHANGE6708 - 39th Ave. S.W.WA.98136(206) 932-6588
23
24
"iO /the best of the user group newsletters for 1978
DIRECTORY
Here is the start of what wehope will become a comprehen-sive list of APPLE softwareavailable from outside sources.If you know about a productthat should be on this list andisn't, please tell us about it.These are the ones we knewabout in December, 1978.
EDUCATION
PROGRAM MEMORY MEDIA PRICE SOURCE
BASIC TUTORIAL TAPE $ 9.95 AJA SOFTWARE
ENGLISH GRAMMAR 1 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 2 IN PILOT TAPE $ 10.00 . Earl KeyserENGLISH GRAMMAR 3 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 4 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 5 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 6 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 7 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 8 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 9 IN PILOT TAPE $ 10.00 Earl KeyserENGLISH GRAMMAR 10 IN PILOT TAPE $ 10.00 Earl Keyser
GRADING ROUTINE 16k TAPE $ 7.95 Innovative Computer
GARDENING TAPE $ 10.00 Earl Keyser
IQ BUILDER: VOCABULARY TAPE $ 12.50 Program DesignIQ BUILDER: Number Series TAPE $ 9.50 Program DesignIQ BUILDER: Analogies TAPE $ 9.50 Program Design
INTEGER BASIC TUTORIAL TAPE $ 17.50 Puget Sound Program
LEARNING BASIC 16k TAPE $ 19.95 Innovative Computer
MORSE CODE TRAINER TAPE $ 10.00 Rainbow ComputingMatching Quiz 8k TAPE $ 6.95 Innovative ComputerMemory Aid 8k TAPE $ 6.95 Innovative Computer
Preschool IQ Builder TAPE $ 9.95 Program Design
Step-by-Step BASIC TAPE $ 29.95 Program DesignStory Builder/Word Master TAPE $ 9.50 Program DesignStudy Aid 8k TAPE $ 6.95 Innovative ComputerSell-3 Economic Simulators TAPE $ 10.00 Earl Keyser
Vocabulary Word Games (10) TAPE $ 15.00 Earl Keyser
Workshop Cassette TAPE $ 5.00 Puget Sound ProgramWordsmith. Wumpus TAPE $ 9.95 U ASKED 4 IT
/the best of the user group newsletters for 1978
FINANCIAL CALCULATIONS & DATA HANDLING
PROGRAM MEMORY MEDIA PRICE SOURCE
Apple Disk Business Systems DISK $ 35.00 AlA SOFTWAREApartment Building Cost Analysis(needs Applesoft) TAPE $ 15.00 Rainbow ComputingAsset Record Program $ 49.95 Charles MannApartment Billing TAPE $ 50.00 Darrell's ApplewareAmortization Schedule TAPE $ 24.00 Programmer Software
Business Inventory 10k TAPE $ 40.00 Computing ComponentsBusiness Inventory Package TAPE $160.00 Darrell's AppelwareBanking & Financial (20 programs) TAPE $ 19.95 Ed AvelarBudget Plan TAPE $ 5.95 AlA SoftwareBillings Management $ 89.95 Charles Mann
Check Verification Program $ 49.95 Charles MannCheck Book TAPE $ 20.00 Trans-dataCheck Book DISK $ 28.00 Trans-dataCheck Book TAPE $ 20.00 Rainbow Computing
Data Management Program $ 24.98 Charles Mann
Expense Account Records TAPE $ 50.00 Darrell's App1ewareExecutive Management Overview $ 49.95 Charles Mann
Financial Tutorial TAPE $ 24.00 Speakeasy SoftwareFiling System Cross-ReferenceFile TAPE $ 50.00 Darrell's ApplewareFile Use Tutorial TAPE $ 15.00 Trans-dataFile Use Tutorial DISK $ 23.00 Trans-dataFinances TAPE $ 15.00 Trans-dataFinances DISK $ 23.00 Trans-data
Home Improvement Records TAPE $ 50.00 Darrell's ApplewareHome Inventory Records TAPE $ 50.00 Darrell's App1ewareHome Financial Record Program TAPE $ 20.00 Computer Components
Inventory of Goods TAPE $ 20.00 Earl KeyserInventory $ 89.95 Charles MannInvoicing Program $ 59.95 Charles MannIncome Tax-1 040, A & B TAPE $ 25.00 Rainbow ComputingInventory TAPE $ 35.00 Rainbow ComputingInventory Package (Sort/POS/Recorder) $125.00 Darrell's Appleware
Ledger Record System $ 59.95 Charles MannLabel Print TAPE $ 10.00 Trans-dataLabel Print DISK $ 18.00 Trans-data
Mailing List System TAPE $ 50.00 Trans-dataMailing List Management $ 79.95 Charles Mann
Professional Secretary Package $ 89.95 Charles MannPersonal Secretary Package $ 59.95 Charles MannProfessional Time Management $ 59.95 Charles MannProgram 200 Maintain InventoryFile TAPE $ 50.00 Darrell's Appleware
25
",0 /the best of the user group newsletters for 1978
FINANCIAL CALCULATIONS & DATA HANDLING
PROGRAM MEMORY MEDIA PRICE SOURCE
Program 205 Sort on Part Number TAPE $ 20.00 Darrell's ApplewareProgram 210 Print Sales Slips &Updates TAPE $ 50.00 Darrell's ApplewareProgram 220 Generates RecordersReport TAPE $ 50.00 Darrell's Appleware
Retail Management System $ 59.95 Charles Mann
Software Pac #3 Statistics DISK $ 30.00 Basic BusinessSoftware Pac #4 FinanceCalculator TAPE $ 15.00 Basic BusinessSoft II, Financial Pkg & GolfHandicap TAPE $ 10.00 Dr. George L. HallerStock Market Anlysis TAPE $ 9.95 AlA Software
Tax Planning Program $ 89.95 Charles MannTax Planning TAPE $ 7.95 Ed AvelarUniversal Database TAPE $ 60.00 Darrell's Appleware
Vendor File TAPE $ 50.00 Darrell's Appleware
SCIENTIFIC CALCULATION & MATHEMATICS
PROGRAM MEMORY MEDIA PRICE SOURCE
METRIC Conversion TAPE $ 20.00 Trans-dataMETRIC Conversion DISK $ 28.00 Trans-dataMath Practice TAPE $ 5.00 Programmer Software
Number Converter Bases TAPE $ 5.00 Astro GraphicsNumber Cruncher $ 9.95 Micro UsersSuper Math TAPE $ 18.00 Trans-dataSuper Math DISK $ 25.00 Trans-dataSuper Math 16k TAPE $ 7.95 Innovative Computer
Talking Calculator TAPE $ 12.95 Softape Software
LANGUAGES
PROGRAM MEMORY MEDIA PRICE SOURCE
Apple FORTH TAPE $ 37.00 Programma Consultants
Co-resident Assembler Microproducts
FOCAL TAPE $ 25.00 The 6502 Program Exc
MICRO PRODUCTS AppleAssembler TAPE $ 20.00 Rainbow Computing
PILOT Interpreter TAPE $ 20.00 Earl Keyser
6k Assembler/Text Editor TAPE $ 29.95 ARESCO
26
-,
com::ClCi: ",0 /the best of the user group newsletters for 1978 Inc. !
ENTERTAINMENT
PROGRAM MEMORY MEDIA PRICE SOURCE
Appletalker TAPE $ 15.95 Softape SoftwareAppledian-Irish Jig TAPE $ 10.00 Rainbow ComputingApplevision-HIRES GRAPHIC/MUSIC DEMO TAPE $ 15.00 Rainbow ComputingAstrology (Emphemer is needed) TAPE $ 10.00 ASTRO GraphicsArtillery Duel TAPE $ 10.00 Programmer SoftwareAPPLEODIAN-5 OCTAVES& 12 VOICES TAPE $ 2.00 *SOFTAPE SOFTWAREAWARL TOWER OF HANOI,HEXPAWN TAPE $ 2.00 *SOFTAPE SOFTWARE
Bridge Challenger 16k TAPE $ 14.95 Personal SoftwareBowling TAPE $ 5.95 AlA SoftwareBingo TAPE $ 5.95 AlA SoftwareBlackjack TAPE $ 10.00 Rainbow ComputingBlackjack TAPE $ 2.00 *Softape SoftwareBob Bishop's Hires Starwars TAPE $ 15.00 COMPUTER COMPONENTSBob Bishop's Hires RocketLander TAPE $ 15.00 COMPUTER COMPONENTSBob Bishop's Hires SaucerInvasion TAPE $ 15.00 COMPUTER COMPONENTSBingo for a Printer TAPE $ 10.00 Darrell's ApplewareBeat the House TAPE $ 14.95 G2 Program LibraryBiorhythm TAPE $ 10.00 Programmer SoftwareBomber TAPE $ 9.95 Softape SoftwareBattleship/3D Tic-Tac-Toe TAPE $ 12.00 U-ASKED 4 ITBlackjack TAPE $ 10.00 George W. LeeBull & Bears TAPE $ 12.00 Softape SoftwareBattleship TAPE $ 7.50 Earl Keyser
Color Graphics Game TAPE $ 20.00 Programmer SoftwareCasino Royale TAPE $ 12.00 U ASKED 4 ITCode Breaker, Secret Writing TAPE $ 11.95 U ASKED 4 ITChristmas Carol 8k $ 12.95 Micro UsersCar Race Hires Graphics TAPE $ 7.50 Darrell's ApplewareClinic TAPE $ 14.95 G2 Program Library
Devils Dungeon TAPE $ 10.00 Rainbow ComputingDollars & Sense TAPE $ 14.95 G2 Program LibraryDr. Apple-ELIZA TAPE $ 5.00 Earl KeyserDrawing 8k TAPE $ 6.95 Innovative ComputerDOlOWO TAPE $ 10.00 Programmer SoftwareDesert/Arctic Survival TAPE $ 10.00 Earl KeyserDon't Fall 8k TAPE $ 6.95 Innovative ComputerDragon JI,'faze, Digital Derby,Saucer War TAPE $ 2.00 *Softape Software
Electric Crayon 8k $ 17.95 Micro UsersEscape 16k $ 12.95 Micro Users
Fast Gammon TAPE $ 20.00 Quality SoftwareForeign Legion Commando TAPE $ 9.95 U ASKED 4 ITFunonyms TAPE $ 12.00 Speakeasy SoftwareFly-Reaction Game TAPE $ 5.00 Earl Keyser
*Membership required to obtain these programs
27
/the best of the user group newsletters for 1978
----
ENTERTAINMENT
PROGRAM MEMORY MEDIA PRICE SOURCE
Graphics Package TAPE $ 3.00 ASTRa Graphics
Hangman/Concentration TAPE $ 12.00 U ASKED 4 ITHorse Race DISK $ 25.00 Trans DataHires Life TAPE $ 10.00 Rainbow ComputingHires Paddle Drawing Routine TAPE $ 20.00 Computer ComponentsHam Radio (Send/Receive) TAPE $ 18.00 C H GalfoHot Air Balloon TAPE $ 10.00 Earl KeyserHyper-Life, & Graphic Demo TAPE $ 2.00 Softape Software
King TAPE $ 10.00 Programer SoftwareKeyboard Organ TAPE $ 18.00 Trans-DataKeyboard Organ DISK $ 25.00 Trans-DataKeyboard Organ 4k TAPE $ 6.95 Innovative Computer
Life TAPE $ 5.00 Earl KeyserLife TAPE $ 6.50 ASTRa GraphicsLife (high speed, variable size) TAPE $ 12.00 C H Ga1fo
Maze Game 16k TAPE $ 12.95 MuseMusic Kaleidoscope TAPE $ 9.95 Softape SoftwareMicrochess 2. a 16k TAPE $ 19.95 Personal SoftwareMicrochess 2.0 TAPE $ 15.00 Rainbow ComputingModeler TAPE $ 10.00 Programmer SoftwareMusic Box 8k TAPE $ 12.95 Micro UsersMusic (3 Octaves) TAPE $ 20.00 Computer ComponentsMicrotriva TAPE $ 12.00 Softape SoftwareOthello Game TAPE $ 10.00 Computer ComponentsOregon Trail TAPE $ 10.00 Earl KeyserOthello, Mastermind, Seven(card game) TAPE $ 2.000 *Softape Software
Pinball TAPE $ 10.00 Earl Keyser
Quiz Baseball 16k TAPE $ 7.95 Innovative Computer
Robots Game TAPE $ 7.50 ASTRa GraphicsRocket Pilot, Saucer Invasion TAPE $ 12.95 Softape SoftwareRoad Race, Space War TAPE $ 9.95 Softape SoftwareSave-a-Sketch 8k TAPE $ 6.95 Innovative ComputerSave-a-S tory 8k TAPE $ 7.95 Innovative ComputerStar Wars, Space Maze TAPE $ 12.95 Softape SoftwareSIDE Shows 4k TAPE $ 12.95 MuseStar Trek/Star Wars TAPE $ 10.00 Rainbow ComputingStimulating Simulations-Applesoft II TAPE $ 14.95 Personal Software
Tank War 16k TAPE $ 12.95 Micro UsersTrap & Chase (with specialhardware) TAPE $ 49.95 B & G InterfacesTic-Tac-Talker, SpectrumAnalysis TAPE $ 19.95 Softape Software
*Mem bership required to obtain these programs
28
'-"········=,-,.c.,_··=·=,·,···,-
/the best of the user group newsletters for 1978
ENTERTAINMENT
PROGRAM MEMORY MEDIA PRICE SOURCE
U-Draw 16k TAPE $ 17.95 Micro-UsersUFO, Clean Sweep, Star Wars,Lunar Lander TAPE $ 2.00 *Softape Software
Warlords TAPE $ 12.00 Sothpe Software
10-4 Good Buddy TAPE $ 10.00 Earl Keyser21 TAPE $ 9.95 Softape Software
UTILITY & MISCELLANEOUS
PROGRAM MEMORY MEDIA PRICE SOURCE
Apple-Lis'ner TAPE $ 19.95 Softape SoftwareApple Box Mini-Modem TAPE $ 18.50 Puget Sound Program LibAutomatic Disk-to-TapeBack-up Copy TAPE $ 5.00 George W. LeeBest of Bishop DISK $ 39.95 Sothpe Software
Common BASIC Programs(Applesoft) DISK $ 22.00 Basic BusinessCircuit Logic Developmen t Aid(255 gates) TAPE $ 10.00 Rainbow ComputingCommon BASIC Programs TAPE $ 50.00 Programmer Software
Demos & Newsletter TAPE $ 6.45 Southeastern SoftwareDiet Planning TAPE $ 7.95 Ed AvelarDrug Store's Patient/Drug File TAPE $ 50.00 Darrell's ApplewareDaily Calendar TAPE $ 50.00 Darrell's ApplewareDemo Cassette with SpeechlabModel20A $189.00 Heuristics, Inc.Data Save to Cassette TAPE $ 20.00 Computer ComponentsDisk-Compatible Author-TitleIndex Program TAPE $ 10.00 George W. Lee
HIRES Drawing Program TAPE $ 12.00 ASTRa GraphicsHIRES Graphics for F.P. Basic 24k TAPE $ 30.00 Computer Components
Introl Super-Voice Control/graphics response DISK Mountain HardwareInstant Library DISK $ 39.95 Softape SoftwareInstant Library TAPE $ 39.95 Softape Software
Library Pak I TAPE $ 5.00 Puget Sound Program LibLibrary Pak 2 TAPE $ 5.00 Puget Sound Program Li bLibrary Pak 3 TAPE $ 5.00 Puget Sound Program LibLibrary Pak 4 TAPE $ 5.00 Puget Sound Program Lib
Menu TAPE $ 10.00 Earl KeyserMemory Verify TAPE $ 5.00 Rainbow ComputingMemory Aide TAPE $ 18.00 Trans-DataMemory Aide DISK $ 25.00 Trans-Data
*Membership required to obtain these programs
29
If'1"lJI"llr.nIf':r "8'8 /the best of the user group newsletters for 1978
UTILITY & MISCELLANEOUS
PROGRAM
No-RES Introl Demo-VoiceControl of 6 Devices
Rainbow's Pot-of-Gold (49BASIC Programs)
Programmed Exercise Program
Super-Talker-Voice Control/ResponseSlow Scan TV Receiver (nohardware required)
Text Pak # 1 (includingtypesetting)Trade Pak (6 for 6)Things To DoUtility SortUtility Pak #1
Variable Message
Word ProcessorWord Processor-Apple Editor
MEMORY MEDIA PRICE SOURCE
TAPE/DISK Mountain Hardware
TAPE $ 49.00 Rainbow Computing
$ 19.95 Charles Mann
TAPE/DISK Mountain Hardware
TAPE $ 18.00 C H Galfo
TAPE $ 4.95 Ed AvelarTAPE Trade Ed Avelar
$ 24.95 Charles MannTAPE $ 20.00 Darrell's ApplewareTAPE $ 5.95 Ed Avelar
8k TAPE $ 6.95 Innovative Computer
20k TAPE $ 50.00 Computer ComponentsTAPE $ 50.00 Darrell's Appleware
Carpenter, C.R., "Printing withthe Apple II", MICRO, No.3,pp 13-16, (Feb-Mar, 1978)
Carpenter, C.R., "Machine Language used in 'Ludwig von AppleII''', MICRO, No.3, p 8 (Feb Mar. 1978)
Notes on an assembled version of the machine languageused by Schwartz, MICRO,No.2, p 19 in his musicprogram.
Electronics Warehouse Inc.,1603 Aviation Blvd., RedondoBeach, CA 90278, New ProductAnnouncement.Scogin, Tom, "AppleSOFTBenchmarks: Fast!", Kilobaud,No. 15, p 12 (Mar 78)
TAPE
Ferruzzi, Arthur, "Inside theApple II", MICRO, No.1, pp 910 (Oct-Nov 1977)
Rankin, Roy and Wozniak, Stephen, "Floating Point Routinesfor 6502" Interface Age 1, No.12, pp. 103-111 (November1976)-See also DDJ 1, No.7,pp. 17-19 (August 1976)
Apple Computer Inc., 20863Stevens Creek Blvd., Cupertino,CA95014,Byte2,No.11,p252(Nov, 1977)
Schwartz, Marc, "Ludwig vonApple II", MICRO, No.2, p 19(Dec 77-Jan 78).
Wozniak, Stephen, "Sweet 16:The 6502 Dream Machine",Byte 2, No. 11, pp 150-159(Nov. 1977)
$ 2.00 *Softape Software
*Membership required to obtain these programs
Interface Age 1, No. 10, pp. 14- Feagans, John, "A Slightly Sour23 (September 1976) SWEET 16", Byte 3, No.2, p 93
(Feb. 1978). Correction of aslight bug in the Wozniak articlein Byte, Nov. 1977.
MOS Technology, Inc., 950 Rittenhouse Rd., Norristown, PA19401 "6502 ProgrammingManual"
Rankin, Roy and Wozniak, Steve,"Floating Point Routines for the6502" Dr. Dobbs Journa11,No.7, pp. 17-19 (August 1976)
3-D Plot, Etch-a-Sketch,Star Burst
Baum, Allen and Wozniak, Stephen, "A 6502 Dissembler"
MOS Technology, Inc., 950 Rittenhouse Rd., Norristown, PA19401 "6502 Hardware Manual"
Compiled by: William R. Dial
APPLE BIBLIOGRAPHYCourtesy of: MICROMICRO IS PUBLISHEDMONTHLY BY:The COMPUTERIST, IncP.O. Box 3Chelmsford, MA. 08124$12.00 for 12 issues
30
ConOOC['iO /the best of the user group newsletters for 1978
.,I
Holt, Rod, "The Apple II PowerSupply Revisited", MICRO, No.3, p 28 (Feb-Mar. 1978)
Bishop, Robert J. "Star Wars"Kilobaud No. 14 pp 52-56 (Feb.1978)
Helmers, Carl "An Apple toByte", BYTE 3, No.3, p. 18-46(Mar. 1978)
Anon., "Byte's Bits", BYTE 3,No.4, p 166 (April 1978)
Bishop, Robert J. "RocketPilot", Kilobaud No. 13, pg 90(Jan. 1978)
Peoples Computers 6, No.6(May/June 1978)
Cole, Phyllis "Apple II".
MICRO, Issue 4 (April/May1978)
Carpenter, C.R. "VariablesChart" .Carpenter, C.R. "Apple IIPrinting Update".Rowe, Mike "A Worm inthe Apple".Auricchio, Rick "An AppleII Programmer's Guide".
Creative Computing 4, No.4(July/August 1978).
North, Steve "Apple IIComputer".Dawkins, Gary D. "HighResolution Graphics for theApple II".
MICRO, Issue 5 (June/July 1978)Rowe, Mike "Half a Worm inthe Apple". See also EDNMay 20, 1978.Suitor, Richard F. "ApplayerMusic Interpreter".Carpenter, Chuck "Apple IIAccessories and Software".
People's Computers 7 No.2(Sept/Oct., 1978)
Gaines John "Apple Math".
Conway, John "A Tape-toMicrocomputer-Hardware Interface Requires a Wealth of Microtechniques". EDN 23 No.6pg. 101-110 (March 20,1978).
Hemenway, Jack E. "AddFloppies to Your Microcomputerto Form a Real MicrocomputerSystem". EDN 23 No. 12 pg 98107 (June 20, 1978)
Kilobaud Issue 23 (Oct., 1978)Bishop, Robert J, "TheRemarkable Apple II".
MICRO, No.7 (OcL/Nov., 1978)Auricchio, Rick "Breaker:An Apple II Debugging Aid".Watson, Allen III "MOS 16KRAM for the Apple II.Shryock, William H., Jr.,"Improved Star Battle SoundEffects".Schwartz, Marc, "Apple Callsand Hex-Decimal Conversion".Eliason, Andrew H. "AppleII High Resolution GraphicsMemory Organization".
Anon, "Tone Routine for AppleII". Southeastern SoftwareNewsletter Issue No.3 pg. 6(Oct., 1978)
Haller, George, "Storing and Recovering Data in Applesoft II".Southeastern Software Newsletter Issue No.2 pg. 4 (Sept,1978)
Call- APPLE 1 No.6Williams, Don "Key KlickerRoutine".Anon, "Routine to FindPage Length".Anon, "Printer Driver Fixes".Anon, "Apple II MiniAssembler".Aldrich, Darrell "Use ofColor Mask Byte in HIRES".Anon, "Memory Map-AppleII with Applesoft BasicLoaded".Anon, "List of HandyCalls".Apple Computer Staff"System Monitor".Huelsdonk, Bob "MemoryTest" .
Call- APPLE 1 No.7 (August,1978)
Golding, Val J. "A Disk
Utility Program".Backman, J.A. "Poor Man'sHEX-DECIMAL-HEX Converter" .Thyng, Mike "Basic FileHandling" .Apple Computer Staff"System Monitor".Anon "Applesoft Zero PageUsage".Huelsdonk, Bob "Routine toPrint Free Bytes".Huelsdonk, Bob "A Patch forDouble Loops".Apple Computer Staff"Loading Machine Languageas Part of a Basic Program".Reprinted from Contact No.1,May1978.
Call- APPLE 1 No.8 (Sept.,1978)
Aldrich, Ron "Convert".Thyng, Mike "Arrays".Chapman, Dan "Video Display Organization".Anon "Routine to Save anArray". (reprinted fromApple Stems Vol. 1 No.2July, 1978)Lam, S.H. "Monitor Commands from Basic".Williams, Don "LinkageRoutines for the Apple IIInteger Basic Floating PointPackage".Hill, Alan G. "Return toTEXT from Graphics".Anon "Integral Data IP 125225 Driver".Huelsdonk, Bob "PrinterDriver Fixes".
Call- APPLE 1 No.9 (Oct.,1978)
Cook, John B. "ApplesoftTone Routines".Scott, Michael M. "A BriefHistory of Apple".Anon, "Some Basic EntryPoints".Huelsdonk, Bob "SampleFile Handler".Golding, Val and Williams,Don "Apple II Integer Basic:Interpretation of Memory".Golding, Val "Applesoft IITokens".
31
10260 Bandley DriveCupertino. California 95CJ14
(408) 996~1010
· THIRD CLASSUS. Postage Paid
Permit No.3440
San Francisco, CA