Enter #,

revious, or elp?8 Entering GEnie*Basic Services |||||| |||||| || || |||||| |||||| || || ||| || || || || ||| |||| |||||| || |||| Your || || || || ||| || || |||||| |||||| || || |||||| |||||| GEnieLamp A2Pro || |||||| || || |||||| RoundTable || || || ||| ||| || || || |||||| |||||||| |||||| RESOURCE! || || || || || || || ||||| || || || || || ~ WELCOME TO THE A2Pro GENIELAMP! ~ ~ORCA/PASCAL V2.0 ~ MD-BASIC V2.0 ~ TWILIGHT II V1.1 ~ ~ NATE C. TROST JOINS GENIELAMP A2PRO ~ LARRY RAMBLES ONCE AGAIN ~ ~ BLUE PLATE SPECIAL CONTEST ~ GNO PROGRAMMING SERIES ~ ~ NEW DEVELOPERS JOIN THE A2PRO FAMILY IN CATEGORY 29 ~ ~ HOT NEWS ~ HOT MESSAGES ~ HOT VIEWS ~ Press or croll?s ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ GEnie Lamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.1, Issue 04 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Publisher.................................GEnie Information Services Senior Editor..........................................John Peters Editor.................................................Jim Couch ~ GEnieLamp IBM ~ GEnieLamp [PR]/TX2 ~ GEnieLamp ST ~ GEnieLamp A2 ~ ~ GEnieLamp MacPRO ~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ ~ Member Of The Disktop Publishing Association ~ ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ >>> WHAT'S HAPPENING IN THE APPLE A2Pro ROUNDTABLE? <<< """"""""""""""""""""""""""""""""""""""""""""""""""""""" ~ May 1, 1993 ~ FROM MY DESKTOP ......... [FRM] A2PRO ROUNDTABLE STAFF . [DIR] Notes From The Editor. Staff Directory. HEY MISTER POSTMAN ...... [HEY] DEVELOPER'S CORNER ...... [DEV] Is That A Letter For Me? News from A2Pro Developers. RTC WATCH ............... [RTC] A2U CAMPUS GREEN ........ [A2U] A2Pro RTC News. Your GEnieLamp guide to A2U. LIBRARY BIT BONANZA ..... [LIB] RAMBLINGS................ [RAM] HOT Files You Can Download. Ramblings of a Wannabe Programmer. THE MANAGER TIPS ........ [MAN] TO OUR INTERNET FRIENDS .. [INT] Programing for The Manger. Comp.sys.apple2.programmer. GNO TUTORIAL SERIES ..... [GNO] LOG OFF ................. [LOG] Programming the serial ports. GEnieLamp Information. [IDX]""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" READING GEnieLamp GEnieLamp has incorporated a unique indexing """"""""""""""""" system to help make reading the magazine easier. To utilize this system, load GEnieLamp into any ASCII word processor or text editor. In the index you will find the following example: HUMOR ONLINE ............ [HUM] [*]GEnie Fun & Games. To read this article, set your find or search command to [HUM]. If you want to scan all of the articles, search for [EOA]. [EOF] will take you to the last page, whereas [IDX] will bring you back to the index. MESSAGE INFO To make it easy for you to respond to messages re-printed """""""""""" here in GEnieLamp, you will find all the information you need immediately following the message. For example: (SMITH, CAT6, TOP1, MSG:58/M530) _____________| _____|__ _|O__ |____ |_____________ |Name of sender CATegory TOPic Msg.# Page number| In this example, to respond to Smith's message, log on to page 475 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1. A message number that is surrounded by brackets indicates that this message is a "target" message and is referring to a "chain" of two or more messages that are following the same topic. For example: {58}. ABOUT GEnie GEnie costs only $4.95 a month for unlimited evening and """"""""""" weekend access to more than 100 services including electronic mail, online encyclopedia, shopping, news, entertainment, single-player games, multi-player chess and bulletin boards on leisure and professional subjects. With many other services, including the largest collection of files to download and the best online games, for only $6 per hour (non-prime-time/2400 baud). To sign up for GEnie service, call (with modem) 1-800-638-8369. Upon connection type HHH. Wait for the U#= prompt. Type: XTX99368,GENIE and hit RETURN. The system will then prompt you for your information. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" [EOA] [FRM]////////////////////////////// FROM MY DESKTOP / ///////////////////////////////// Notes From The Editor """"""""""""""""""""" By John Peters [GENIELAMP] CHANGES, CHANGES, CHANGES! Change is good, right? Well, I certainly """""""""""""""""""""""""" hope so, 'cause there is a whole lot of changing going on here at GEnieLamp. I suppose the best place to start is the changes that have taken place on page 515, our home, the GEnieLamp RoundTable. (Keep in mind that many of these changes are happening as I write this - the changes outlined below are subject to change!) First off, the RoundTable is no longer a RoundTable but just a single page. Here's the new menu you will find when on page 515: GEnie GENIELAMP Page 515 Computing on GEnie Newsletter 1.[*]GEnieLamp IBM Magazine 2.[*]GEnieLamp Atari Magazine 3.[*]GEnieLamp Mac Magazine 4.[*]GEnieLamp MacPRO Magazine 5.[*]GEnieLamp Apple II Magazine 6.[*]GEnieLamp A2Pro Magazine 7.[*]FEEDBACK to GEnieLamp 8. Digital Publishing RoundTable As you can see the bulletin board, libraries and information files are gone and all that is available is the GEnieLamp Magazines, Feedback and a gateway to the new DigiPub RoundTable. (More on that later.) On the negative side, this means that Aladdin no longer works on this page. This goes for previous GET THE LAMP scripts as well. On the positive side, our resident script writer, Jim Lubin has come up with a new Aladdin script which will be available in the DigiPub library as well as the Aladdin support RoundTables within the next couple of weeks. But The Big News Is... Now, instead of capturing GEnieLamp, you can """""""""""""""""""""" DOWNLOAD the magazine. No more waiting through a long capture session! Just download GEnieLamp as you would any other file here on GEnie. (We recommend Zmodem for best results.) If you prefer the old method, just turn on your capture buffer and [L]ist the magazine to you computer. (Again, this is in the planning stage and may not be implemented in time for the May 1st issue release. However, the option to _download_ GEnieLamp is coming RSN!) PLUS! Starting with this issue GEnieLamp Online Magazine is going to a """"" twice a month publishing schedule. Now you can get your favorite version of GEnieLamp (GEnieLamp ST, Mac, IBM and A2) on the 1st and the 15th of every month. AND BEST OF ALL... ~ GEnieLamp IS STILL GEnie*Basic! ~ """""""""""""""""" [*][*][*] WHY A NEW ROUNDTABLE? The GEnieLamp RoundTable was originally set up """"""""""""""""""""" primarily for the distribution of GEnieLamp Magazine. Our secondary purpose was to promote and distribute other online newsletters. But electronic publishing goes much deeper then just magazines and newsletters. Therefore, we came to the conclusion that the time has come for electronic publishing and hence, the Digital Publishing RoundTable came online. The Digital RoundTable (or DigiPub for short) is a GEnie*Value RT here on GEnie for people who are interested in pursuing publication of their work electronically whether here on GEnie or via disk-based media. For those looking for online publications, the DigiPub library offers online magazines, newsletters, short-stories, poetry, informational text files and other various text oriented articles for downloading to your computer. Also available are writers' tools and 'Hyper-utilties' for text presentation on most computer systems. In the DigiPub bulletin board you can converse with people in the digital publishing industry, meet editors from some of the top electronic publications and get hints and tips on how to go about publishing your own digital online book. As an added bonus, the DigiPub RoundTable is the official online service for the Digital Publishing Association. (Whew!) Until next month... John Peters [GENIELAMP] [*][*][*] ,_____ ,_____ (__ | (__ | || | | | | ( \ ^| |^^^^^^^^^^| | /X ^^^ \ ( \,,,,,, <_=_________________________________> Title: Never Bite a Computer Mouse Lying in the Sink Medium: Phospor Artist: Rod Martin [EOA] [DIR]////////////////////////////// A2PRO ROUNDTABLE STAFF / ///////////////////////////////// By Jim B. Couch [J.COUCH2] ______________________________________________ APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE _____ ______ ______________________________________________ /_____|/______\ /__/|__| ___|__| Head Sysop: Matt Deatherage (M.DEATHERAGE) /__/_|__| /_____/ Assistants: Steve Gunn (A2PRO.STEVE) /________|/__/ __ __ __ Greg Da Costa (A2PRO.GREG) /__/ |__|__/______ /_//_// / Todd P. Whitesel (A2PRO.TODDPW) /__/ |__|________// / \/_/ [EOA] [HEY]////////////////////////////// HEY MISTER POSTMAN / ///////////////////////////////// Is That A Letter For Me? """""""""""""""""""""""" By Jim B Couch [J.COUCH2] o BULLETIN BOARD HOT SPOTS o A2PRO ODDS & ENDS o WHAT'S NEW? o PROGRAMMER'S CORNER o HOT TOPICS o MESSAGE SPOTLIGHT >>>BULLETIN BOARD HOT SPOTS <<< """"""""""""""""""""""""""""""" [*] CAT12, TOP24, MSG{4}..................Dynamic Slot Arbitration [*] CAT29, TOP2, MSG{1}.....About DYA/DigiSoft Innovations Online [*] CAT29, TOP8, MSG{1}..........About Simplexity Software Online [*] CAT29, TOP14, MSG{1}.....About Quality Computers Q-LABS Online [*] CAT29, TOP20, MSG{1}..........About DreamWorld Software Online [*] CAT29, TOP26, MSG{1}............About METAL/FV Software Online [*] CAT32, TOP3, MSG{1}..................................MD-BASIC [*] CAT34, TOP3, MSG{64}........................Ultra Programming [*] CAT36, TOP10, MSG{41}..............................ORCA/Pascal [*] CAT36, TOP32, MSG{1}......................................LOGO >>> A2PRO ODDS & ENDS <<< """"""""""""""""""""""""" WOW! What a busy month! I am sure that you notice this month's A2Pro GEnielamp is the biggest we have ever had. It has been very busy in the A2Pro Roundtable, and the activity is reflected in the size of this month's Lamp. Nate C. Trost (who was introduced last month) officially reports for duty this issue. Look for his fine coverage of Apple II University, the Real Time Conferences, and the A2Pro library. This issue features some tips for making your programs compatible with Seven Hills Software's The Manager, a host of new online developers, the first in a series of lessons on Procyon's GNO environment and another report from Larry Elseman, our own rambling programmer. Of course we also have all the great tips, tricks, and messages we are becoming famous for. There is a lot here, so let's get down to it! WIN A FREE WEEK IN THE BLUE PLATE SPECIAL CONTEST! It's so easy to put a """""""""""""""""""""""""""""""""""""""""""""""""" nifty file for programmers on A2Pro's main menu with our handy dandy "Blue Plate Special File" that we've decided to run a little contest to see who can upload the niftiest file for our next Blue Plate Special. The crack A2Pro staff, especially our crack librarian Todd Whitesel, will look at all the files uploaded since March 1st and pick the one we think is the neatest and niftiest file for all the programmers who hang around here, and on May 15th we'll put it up as the Blue Plate Special File. The person who uploaded that file will get a FREE WEEK in A2Pro. Bulletin board, RTC, Library -- the whole thing is free of charge for an entire week. Note that this person doesn't have to be the _author_ of the file -- just the uploader. If there are duplicates, they'll be resolved in favor of the earlier uploader. Also note that if you've uploaded a really nifty file since March 1st, you're already entered! No penalties for sharing your information soon around here! So if there's something you haven't uploaded yet because you're not sure anyone wants to see it, upload it now! You never can tell. (Of course, being the programming forum, we're after things that help programmers, not normal programs [unless they include source code]. A2 still wants all your regular programs, graphics, sounds and more besides!) --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT1, TOP16, MSG:46/M530) THE POWER OF GEnie's COMMAND LINE EXPOSED! Here in A2Pro, we sometimes """""""""""""""""""""""""""""""""""""""""" discuss how graphical user interfaces are easier to learn and use than command lines, but how people who know how to use the command lines can often accomplish more things easily. In fact, because most of us are programmers, many of us tend to _favor_ the command line (and confuse our users in the process). Well, the A2Pro bulletin board is a great example of how a command line can be intimidating at first but powerful if you know the options. A lot of people simply use the basic bulletin board commands -- BROwse to read all new messages, or RAM (for "Read All Marked") to read all new messages in topics you've marked. However, there are lots of options to each command if you care to type "HELP " to see what GEnie has to say about it (or check your GEnie user manual, if you have one). For example, look at some of the options you can append to READ: NOText -- just show the header, not the message NOReply -- don't stop at the end of each topic for a reply. (GEM uses this) DAT>YYMMDD -- only show messages after YYMMDD. For example, DAT>930228 would only show messages posted in March 1993 or later. You can also use DAT=YYMMDD or DAT930315 AUT=BYTEWORKS Kinda nifty. There are all kinds of things you can do with the information in our bulletin board if you want to: o BROwse CATegory will show you all new messages in the current category only o INDex will give you a formatted index of _all_ categories and topics on GEnie you can visit. o SEArch lets you search all the topic headers looking for the word of your choice -- great when trying to find answers on things! o NAMe lets you set the nickname that appears at the top of each of your messages. o IGNore lets you tell GEnie "I don't want to see any new messages in this topic again." You can cancel this with UNIgnore -- any IGNored topics will not show up in scans of new messages. o You can do the same thing for entire categories with the "CANcel" command. Be careful, though, because if you CANcel participation in a private category (like one of A2Pro's many running beta-test categories), you'll have to be reinvited before you can change your mind. To rejoin a public category, simply SETcategory to it. In addition to all this, we archive all messages from A2Pro topics into our library when they become old, so they're still available for you to peruse without taking up space and making the bulletin board large and ponderous. You can find them all in the library, some messages going back years. Want to see messages from when System 5.0 was in development? We have some! :) If you have any questions about the bulletin board, please feel free to post a message; we'd be happy to assist you in using it better. Or send GEnie mail to A2PRO.HELP if you're uncomfortable asking a question publicly. --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT1, TOP11, MSG:2/M530) MORE POWER (FROM THE COMMAND LINE) In fact, the IGNore option is more """""""""""""""""""""""""""""""""" robust than I posted -- you use "IGNore PERmanently" to tell GEnie "I don't want to see new messages in this topic again". Without the "PERmanently" option, it simply marks new messages as "read" so they won't show up when reading new messages. GEnie automatically does an "IGNore ALL NEW" command when you first join a roundtable's bulletin board (or when you reenter after having been absent for 30 days) so you don't have tens of thousands of messages to be marked as new. You can also ask it to ignore all messages in the current category, or specific topics (like 3-5), or by using "ALL" ignore in all categories (like in IGNore ALL NEW). Appending "PERmanently" makes GEnie never bother you again with that topic, so be careful. :) --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT1, TOP11, MSG:3/M530) >>> WHAT'S NEW? <<< """"""""""""""""""" TWILIGHT II IS SHIPPING! In case you haven't already heard, Twilight II """""""""""""""""""""""" v1.1 is shipping! Finally! The number of Twilight II modules included is hovering at around forty. But this doesn't take into consideration the loads of YouDrawIt! animation files, or a few other goodies. Anyhow, my point is, now that we're shipping, G2MF and T2 IPC documentation is a step closer! You'll be impressed by the specific powers we offer from a programming standpoint! -Jim Maricondo, DigiSoft Innovations (DYA [DigiSoft:Jim], CAT29, TOP3, MSG:6/M530) ORCA/PASCAL V2.0 DISKS MASTERED I just finished mastering the disks for """"""""""""""""""""""""""""""" Pascal 2.0 yesterday, and we even have a few manuals back. Patty is meeting with a new printer as I type this in hopes of getting manuals faster. The first few flyers for Pascal 2.0 have already been mailed, and we'll continue to mail them for the next several weeks, staggering them a bit in hopes of keeping up with Pascal 2.0 orders better than we did with C 2.0 orders. In short, Pascal 2.0 is here -- but it may be a while before you get your update notice. If you're desperate (I hope! :) here's a brief rundown: o You get the 2.0 development environment, with Shell 2.0.1, PRIZM 2.0.1, Rez, DeRez, and all the other 2.0 level programs. o It's Object Pascal, now! ORCA/Pascal 2.0 implements all of the object extensions used by Macintosh Pascal compilers. As far as I know, this makes ORCA/Pascal the first object oriented language for the GS. o You get the new code generator you've heard about from C people. Here's a few execution times to wet your appetite: ORCA/Pascal 1.4 TML Pascal 2 ORCA/Pascal 2.0 fib 11.70 30.70 11.56 float 39.93 (37.29) 23.27 gamm 18.12 (13.00) 15.83 imath 16.25 50.91 0.28 prime 23.75 68.62 22.75 quick 13.20 28.30 13.20 savage 32.08 () 32.08 sets 14.34 7.84 0.53 All times are in seconds on an accelerated (8MHz) GS. All benchmarks are from the ORCA/Pascal samples disk, and all but sets are originally from Byte magazine. Times shown in parenthesis are for programs that did not run properly, either hanging or giving an incorrect result. o No more 64K limit on arrays! Arrays can now be as large as available memory. o Direct support for HyperCard XCMDs and HyperStudio NBAs. o Support for the FPE floating-point card. o Extern variables. The update is $50 plus shipping, which is $5 in the U.S. There is also a special introductory offer for folks who don't already own ORCA/Pascal, and we have bundle prices if you are ordering the Learn to Program in Pascal course or the Toolbox Programming in Pascal course. If you're interested in more specifics, and either aren't on our mailing list or don't want to wait, let me know. I can either answer questions here or send you a copy of the flyer a little early. -Mike Westerfield (BYTEWORKS, CAT36, TOP10, MSG:41/M530) SYSTEM DISK 4.0.2 RELEASE NOTES It seems (via precedent) that it's now """"""""""""""""""""""""""""""" OK to put the System Disk 4.0.2 release notes online, so here they are: Apple II System Disk 4.0.1 November 3, 1992 Contents of /UTILITIES (3.5" disk) /UTILITIES Blocks PRODOS 35 Updated to version 2.0.2 LAUNCHER.SYSTEM 16 Version changed to 4.0, copyright extended to 1992 SYSUTIL.SYSTEM 3 No change FASTCOPY.SYSTEM 41 Updated to version 1.0.1 to fix bugs copying 1.4 meg disks BASIC.SYSTEM 21 Updated to version 1.5 from System Software 6.0 UTIL.0 87 No change UTIL.1 62 No change UTIL.2 4 No change SETTINGS 1 No change COPY.ME 1 No change CLOCK.PATCH 16 New AppleSoft program. Fixes ProDOS date stamping past 1996. Contents of /UTILITIES (5.25" disk) Same as 3.5" disk, except CLOCK.PATCH is omitted because there's no room. What changed: ProDOS o ProDOS 8 v2.0.2. o KVersion ($BFFF) is $22 for version 2.0.2. o Slot 3, Drive 2 is always reserved for /RAM. The SmartPort remapping code never maps a device into slot 3, drive 2. o The message "RELOCATION/CONFIGURATION ERROR" is uppercase again (like it was in 1.9) so it will be legible on an Apple II+. After displaying the message, it now hangs with a BMI again instead of BRA, for pre-65C02 processors. o Changed the copyright message at $BF40 to start with a $00, to prevent crashes when applications use the code in the ProDOS 8 Technical Reference to remove /RAM. This code assumes there is a $00 after the last device number, which was previously not true if 14 devices were present. o Changed page-3-init table to initialize $3FB (NMI) to $00 $40 $00 instead of JMP $FF59. BASIC.System o Version 1.5 (unchanged from Apple IIgs System Software 6.0). Launcher.System o Version 4.0. The only change is the version number and copyright date. FastCopy.System o Version 1.0.1. o FastCopy now correctly determines the capacity of source and destination disks before copying. Attempting to copy between varying sizes results in the message "Disk must be same type..." and the destination disk being ejected and the user prompted for another disk. o ROM 03 Apple IIgs's using FastCopy 1.0 were forced to have disks in any drives they wished to use for copying at the time they launched version 1.0. Any drives without disks in them were ignored and not available for copying. Now allows any available drive to be used for ROM 01 and ROM 03. o The number of blocks copied from a source disk was not the actual number of blocks on the source disk but the number of blocks on the disk in the drive when version 1.0 was launched. If a 400K disk was in the drive when FastCopy 1.0 was launched, then an 800K disk copied, only 400K of the disk was actually copied. Now it reads the number of blocks on the disk at the actual time of the copy. Clock.Patch o Updated to patch 2.0.2 as well as 1.9 and 2.0.1. The year table in 2.0.2 is in the same place as in 2.0.1. Copy.Me o Unchanged from Apple II System Software 3.2. SysUtil.System Util.0 Util.1 Util.2 Settings o System Utilities version 3.1, unchanged from Apple II System Software 3.2. --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT7, TOP6, MSG:43/M530) >>> PROGRAMMER'S CORNER <<< """"""""""""""""""""""""""" PROCYON LOOKING FOR PROGRAMMER Apple IIGS software publishing and """""""""""""""""""""""""""""" development company is looking for a programmer to write direct-SCC access serial port drivers for the Apple IIGS computer. We will pay REAL $$$ for quality work. Please call or write: (303) 781-3273 Programmer c/o Procyon Enterprises, Inc. P.O. Box 620334 Littleton, CO 80162-0334 (Message, CAT13, TOP8, MSG:/M530) NEW XCMND NEEDED Time for a new Xcmd, and a chance for someone to make """""""""""""""" some money! I want a replacement Xfcn for DisplayList. What I need is to be able to use keyboard navigation (like standardFile) to move through the list, and I want to control both the height and width of the dialog. Also Command-Selecting or Shift-Selecting must be supported to select more then one item from the list. The Syntax should be: xDisList prompt, width, height, list, btn1[, btn2[, btn3...]] Prompt: The prompt at the top of the dialog (ex. "Choose a color...") Width: Defines how wide the dialog will be (ex. 190) Height: Defines how tall the dialog will be (ex. 160) List: A RETURN delimted list (ex. "Black" & return & "Blue"...) BtnX: Button[s] to the right of the scrolling list (ex. "OK") The last button named should be the default (ex. --"Cancel","OK"-- The "OK" btn is the default btn) The function should return the buttonName, followed by the user's choice[s] in a RETURN delimited list. Ex. if the user selects "Black" from the list and then clicks "OK", the function would return OK Black If the user had also selected "Blue" it would return OK Black Blue Hmmm, another thing that I don't like about DisplayList is that when it opens up, no item is selected. Just like SFGet, the first item in the list should be selected. Of course if you want extra credit for this assignment, how about a paramter to choose which item in the scrolling list is hilighted when it opens ! So whatcha'll think? Someone want a quick programming project that'll make them some $$? It's also a nice thing to have on a resume ("Wrote software that was published worldwide."). -- HangTime [Script-Central] B-)> (A2.HANGTIME, CAT18, TOP5, MSG:29/M530) HOW DO I KEEP MY SLEEPING MACRO ALIVE? I know that a sleeping macro gets """""""""""""""""""""""""""""""""""""" killed by . It appears that and also zap it. Anyone know of a workaround? Such as a peek to determine if a macro is sleeping and which macro is sleeping and what time it's supposed to wake? That would at least allow one to store the information somewhere, then re-issue the when you returned from the call or link. ::Dan:: (D.CRUTCHER, CAT34, TOP3, MSG:64/M530) HERE ARE THE SLEEPING MACRO PEEK LOCATIONS The sleeping macro name is at """""""""""""""""""""""""""""""""""""""""" $FF00, minutes at $FF01, hours at $FF02. Have fun. (BRANDT [Randy], CAT34, TOP3, MSG:65/M530) THE INFO IS STILL THERE AFTER A LAUNCH $ff00,$ff01, and $ff02 don't get """""""""""""""""""""""""""""""""""""" overwritten when you launch another task file, the info's still there concerning the macro to wake and the time. The sleep status just gets reset. So what you could do is put a macro to sleep, launch ( and I assume call or link ) another macro set then return to the original macro set and restore the sleep status. $10d6 holds the sleep status. > 127 means a macro is sleeping. < 128 = no sleeping macros. So you could do something like A:! restore sleep flag As long as you don't put anything to sleep in the macro you , , or everything should be OK. (S.BEVILLE [Steve], CAT34, TOP3, MSG:66/M530) THANKS FOR THE HELP, HERE IS A FIX Thanks for the peeks. I've """""""""""""""""""""""""""""""""" come up with the following, admittedly imperfect "sleeping macro restorer". Add SA-& and BA-& to your default macro set. SA-& would be inserted just before any or or in which you would want the opportunity to detect and restore the sleeping macro. BA-& would be inserted just after you return from the or . For a it would need to be in the second macro in your default set. Of course, this assumes that the called macro doesn't do anything to variable J(6) or to memory location $f000-f002. At the least it lets you know that your sleeping macro has been prematurely awakened. :127: endmacro: // if nothing sleeping, exeunt else: .AskYN "Macro sleeping. Restore it when return from task": if z=1: exit: // if "no", exeunt else: if z=0 or z>2: stop: // if other than "yes", stop else: j(6)=1 // must be "yes", set flag >! :! (D.CRUTCHER, CAT34, TOP3, MSG:67/M530) COOL PROGRAMMING TIP If you want to overcome the annoying limitation """""""""""""""""""" in TEPaintText that causes your text to be drawn in only 4 colors, set bit 2 ($0004) in the fontFlags field of your drawing GrafPort. You can do this with the QuickDraw II call "SetFontFlags". This tells QuickDraw to treat color values as a word, rather than pixel indicies when drawing text. (This isn't documented in a technote yet, so feel privileged! :-) Jim "whatshisname" Murphy (MURPH [Murph'], CAT15, TOP34, MSG:62/M530) IIE DOUBLE WIDTH GRAPHICS ROUTINE To anyone who is interested: """"""""""""""""""""""""""""""""" The following short routine will show a Double-Width Graphics screen on the Apple IIE (W/ an 80 column card ) or later models: LDA #$A0 ;Space character JSR $C300 ;initialize 80-column video BIT $C05E ;Enable 80-column graphics BIT $C057 ;Enable High Resolution graphics (Note 1) BIT $C052 ;Enable Full screen graphics (Note 2) BIT $C050 ;Make Apple show graphics video instead of text Note 1: BIT $C056 will enable Low Resolution graphics. Note 2: BIT $C053 will enable Split screen graphics/Text (T.VAGO [quasicomp], CAT2, TOP6, MSG:84/M530) BASIC SYSTEM HELP NEEDED I need help with BASIC.SYSTEM. How does """""""""""""""""""""""" BASIC.SYSTEM handle memory when it opens/closes files? I use the GETBUFR routine ($BEF5), but I don't like the idea of clearing the entire range of "appropriated" memory just to close a ml generated file. I am also not thrilled about the prospect of having AppleSoft open the file for the ml routine to use. I am writing a spooler program for use with BASIC.SYSTEM, and this is my only (current) pitfall. (T.VAGO [quasicomp], CAT7, TOP4, MSG:79/M530) A LITTLE INFORMATION ON BASIC.SYSTEM AND FILE BUFFERS BASIC.SYSTEM """"""""""""""""""""""""""""""""""""""""""""""""""""" allocates 1K of memory for each file it opens, above HIMEM. This is documented in Appendix A of the ProDOS 8 Technical Reference Manual. Uncle-DOS has a long-standing recommendation not to use FREBUFR because it frees _all_ buffers allocated with GETBUFR, including any programs run in this BASIC.SYSTEM session before yours. This is more important in eight-bit machines than on the IIgs, since on eight-bit machines things like memory- resident utilities have to stay in the lower 128K. That means unless you're sure you're going to quit BASIC.SYSTEM when your program is done, your buffers will probably stick around. You can just use 1K of memory and call the PRODOS 8 MLI to OPEN the files yourself, and manage that memory -- you'll just have to make sure that you put the 1K where no one will step on it. The memory map in Appendix A will help you do that. --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT7, TOP4, MSG:80/M530) COOL FREBUFR TRICK There is a cool trick of setting the ceiling for """""""""""""""""" FREBUFR so that it doesn't release all memory allocated with GETBUFR. All you have to do is adjust the RSHIMEM location in the BI global page. By default, this is $96 (for $9600 = default HIMEM). If you allocate a new buffer with GETBUFR that you don't want any subsequent FREBUFRs removing, just set RSHIMEM to point below your buffer. This is how the Object Module Manager is able to load and unload modules (of course, unloading modules in the middle of others and shifting modules up to fill in the gap is much trickier to do, especially when you have to dynamically relocate code on the fly -- but that's why I wrote the OMM, so nobody else would have to! (MORGAN-DAVIS, CAT7, TOP4, MSG:81/M530) TELL E MORE ABOUT THE OBJECT MODULE MANAGER I am interested in this """"""""""""""""""""""""""""""""""""""""""" Object Module Manager, and how it "is able to load and unload modules". The spool routine I am trying to make is going to have the main portion of its code sit in the auxiliary 64K of RAM, and just have a main memory interface and the file buffer in main memory. It is also going to function as an improved printer port. It will be able to interface with other routines (such as AppleSoft menu and string management, for example) also sitting in the aux memory. I am worried that a ml program may execute that won't install into this main memory interface, and that puts itself below BASIC.SYSTEM in the usual way (calling GETBUFR, and so forth). If I have one (or more) ml created files open while this is happening, it will sit below these files. When I perform an ml OPEN/CLOSE, it will affect the main memory such that the "normal" routine that installed itself would possibly be overwritten, and C- R-A-S-H my system, causing a messy situation. Also, I can't just allocate 1K of memory for dedicated use for ml files, because future routines I may write may also need this file buffer. The very action of OPENing and CLOSEing files takes up a lot of time in of itself. The solution I am considering is a dynamic ml file buffer handling routine, such as must obviously exist in BASIC.SYSTEM. Finally, I can't use the main memory fur much more than the interface and the ml file buffers, because AppleSoft space is already at a premium. Thus, my (real) problem. I want to be able to open/close as many files as I can, but maintain the integrity of any other programs that install below BASIC.SYSTEM without having to close up all of the ml files, de- allocate the memory for those files, and re-allocating memory and opening the files back up after these other programs install themselves. Am I just blowing in the wind here? Or is there a workable solution? (T.VAGO [quasicomp], CAT7, TOP4, MSG:83/M530) HERE IS THE SCOOP! The OMM installs itself below BASIC.System and adds a """""""""""""""""" few management commands to Applesoft via the ampersand feature. The &LOAD GET and &LOAD FRE commands are used to shuffle code modules from disk, into memory, and back out of memory to reclaim space. The modules themselves are standard 6502 programs that have a special 16-byte header at the beginning that simply tells the OMM about the code inside, such as the module's size, program counter origin, address of an ampersand command table, and so on. Each module has three separate parts: code, immediate mode table, and data section. The code part is obvious -- it contains only executable 6502 or 65C02 code (it can contain 65816 code, as long as you don't adjust register sizes and reference immediate values). The immediate mode table is just a list of 16-bit addresses that refer to locations within the code part. The data section includes just that. Because of this format, the OMM is able to relocate modules in memory and they'll keep on running as if nothing happened. So you can load modules A, B, C, D, and E, in that order, and when you remove module B, the OMM is able to shift C, D, and E upwards the fill in B's gap, reclaiming memory. Modules can include a list of ampersand commands that the OMM will parse and then call upon the module to service. This makes it really easy to add a BASIC interface to your modules. Modules can also send messages to other modules, including the OMM itself. This inter-module communication makes it possible to have a multitude of interconnected modules that, together, perform seamless integration. This is how our ModemWorks program is able to provide so much functionality within the limited memory space. > The spool routine I am trying to make is going to have the > main portion of its code sit in the auxiliary 64K of RAM, and > just have a main memory interface and the file buffer in main > memory. Interesting. A print spooler is one of the examples we give as suggested module types. This is because print spooling involves working with various serial or parallel interfaces, yet the main file spooling code is the same. The OMM lends itself well to this kind of situation because you can devise your own printer interface modules and load only the one that is needed to support the attached printer. A second module would hold the interface code to the spooler itself. And the spooler code could reside in auxiliary memory since the OMM doesn't touch it. > I am worried that a ml program may execute that won't install > into this main memory interface, and that puts itself below > BASIC.SYSTEM in the usual way (calling GETBUFR, and so forth). All modules under the OMM follow a standard scheme for memory management, so you'll never have any trouble with this. > If I have one (or more) ml created files open while this is > happening, it will sit below these files. When I perform an ml > OPEN/CLOSE, it will affect the main memory such that the > "normal" routine that installed itself would possibly be > overwritten, and C-R-A-S-H my system, causing a messy > situation. This can't happen under the OMM. > Also, I can't just allocate 1K of memory for dedicated use > for ml files, because future routines I may write may also need > this file buffer. You can allocate a fixed 1K buffer in the data section in an OMM module, and as your code section expands, the only impact is on free memory for BASIC. You wouldn't need to worry about added code spilling into a buffer. > The very action of OPENing and CLOSEing > files takes up a lot of time in of itself. The solution I am > considering is a dynamic ml file buffer handling routine, such > as must obviously exist in BASIC.SYSTEM. Right -- this all depends on how your spooler works. You can use a dynamic file buffer as long as you stay in control while you read and move the spooled data into a larger buffer in the auxiliary memory space. Then you'd close the file and release the buffer. If you put a cap on the size of the file you can spool, then this is a good solution. But if you want to be able to spool unlimited size text files, you'll have to have a fixed open file buffer in your module. This is because a dynamic buffer is valid and usable only while your module has control. If you keep the buffer allocated and return to BASIC operations, there's no way to insure that your buffer remains intact. A BASIC program would only need to &LOAD GET another module or call FREBUFR and you're in trouble. > I want to be able to open/close as many files as I can, but > maintain the integrity of any other programs that install below > BASIC.SYSTEM without having to close up all of the ml files, de > allocate the memory for those files, and re-allocating memory > and opening the files back up after these other programs > install themselves. Since you can only spool one file at a time, why not keep only one file open at a time? Keep a list of files remaining to be processed and open each one as the previous one is closed. I don't see any reason to open up dozens of files at one time -- and under ProDOS 8 I don't think you can open up any more than a few anyway. (What is the limit, 8 FCBs?). Each time you open a file, you have to give it a dedicated File Control Buffer. So, its desirable to keep as few files open as possible -- not the other way around. (MORGAN-DAVIS, CAT7, TOP4, MSG:85/M530) >>> HOT TOPICS <<< """""""""""""""""" IS THERE ANY INTEREST IN SLOT ARBITRATION? How many people are still """""""""""""""""""""""""""""""""""""""""" interested in seeing some form of slot arbitration available, even though Apple believes it can't work with all programs and peripherals due to interrupt concerns? --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT12, TOP24, MSG:4/M530) YES IT COULD BE VERY HANDY I think it would be extremely handy. There """""""""""""""""""""""""" are always going to be programs that it can't work with; the concern is now to implement slot arbitration in a manner that works with old programs in the best manner, not necessarily how to get old programs to use slot arbitration. I wonder, however, if slot arbitration concerns would be better addressed with two drivers: a mouse driver and loaded serial drivers. With these, GS/OS programs could access the built-in mouse and serial hardware without affecting I/O cards in slots 1,2, and 4. -Jawaid (PROCYON.INC, CAT12, TOP24, MSG:5/M530) OR EVEN VERY USEFUL To answer your question, YES, I think slot """"""""""""""""""" arbitration would be VERY useful! -Bryan (SOFTDISK.INC [Zak], CAT12, TOP24, MSG:11/M530) LOADED DRIVERS MIGHT BE A BETTER IDEA In judging how important the Slot """"""""""""""""""""""""""""""""""""" Arbiter is, we need to look at its intended purpose - allowing people to use both built-in ports and slot cards at the same time. My point is that the job could be done (except for Slot 5/SmartPort) with GS/OS drivers as opposed to the Slot Arbiter - IMHO, you're likely to spend much less time writing drivers than trying to get the slot arbiter to work with every conceivable device and situation, especially since so much software ignores existing GS/OS drivers (like the generated serial drivers). So, I'd say that a device-independent mouse driver and loaded serial drivers would beat fixing/finishing the slot arbiter, even if such a task was possible. -Jawaid (PROCYON.INC, CAT12, TOP24, MSG:14/M530) ANY SOLUTION WOULD BE FINE Matt, you've asked whether we want slot """""""""""""""""""""""""" arbitration or smarter drivers that don't need it. I really don't care... I am definitely in favor of any solution that would let me: 1. Put a SCSI card in slot 1, 2, 3, 4, or 5 and still use the printer driver, AppleTalk, and a modem. 2. Put a floppy controller for either 800K, 1.4M, or 140K floppy disks in slot 5 and still use the direct connect for 800K or 1.4M drives. 3. Put a SCSI card in slot 3 and still use the text screen, especially the text tools. I think either method would do these, so I don't care which you use. I simply have a problem that could be solved, and vote wholeheartedly for any solution that works. -Mike Westerfield (BYTEWORKS, CAT12, TOP24, MSG:32/M530) HOW IT WORKS IS UNIMPORTANT Like Mike, I really don't care how it works, """"""""""""""""""""""""""" just as long as it does. When I worked on MouseTalk (seems like eons ago), we made it a point to be able to share IIGS slots with the built-in ports by accessing the slot's device directly -- not using any slot firmware. So you could put a Super Serial Card in slot 1 for a modem, plug a printer into the Printer port, and be able to use both at the same time. Likewise, you could have a device in slot 4 and still use your mouse. This all worked great as long as you stayed in MouseTalk. Of course, not many took advantage of it because so much other software couldn't deal with shared slots and ports. (MORGAN-DAVIS, CAT12, TOP24, MSG:33/M530) >>> MESSAGE SPOTLIGHT <<< """"""""""""""""""""""""" Category 12, Topic 24 Message 34 Wed Apr 14, 1993 M.DEATHERAGE at 16:14 EDT Doing the serial stuff isn't a problem that way, Morgan -- the 8530 softswitches for direct programming are not tied to any slot, so if you stay away from the firmware you're always OK. Using the _mouse_ without having the slot switched in could be problematic, especially during interrupts but not as much so under ProDOS 8 as under GS/OS. These applications that use the slot register ($C02D) cause one of the compatibility problems for implementing slot arbitration -- neither the Slot Arbiter nor GS/OS is spec'ed to say that the slot register will be the same after a GS/OS call as before it. If you fiddle with $C02D, make a GS/OS call and expect it will still be the same way afterwards, you may be incorrect. This probably means GS/OS would have to save and restore $C02D on every call when calling a device that wasn't "swapped in" in the Control Panel settings, and it might still cause problems for interrupt code. --- Let's back up one more time and look at the issue again. The idea of a Slot Arbiter is pretty simple -- GS/OS drivers have a four-bit slot number instead of three bits, and that's enough to describe seven internal and seven external slots. All device drivers for peripherals are supposed to do a fifteen-slot search ($F through $1) as described in GS/OS Device Driver Reference. If a slot arbiter becomes available, GS/OS will start using it and peripherals in slots and ports can co-exist. GS/OS will automatically swap in the appropriate slot/port before dispatching to a device driver, and would probably swap it back out before returning for above compatibility reasons. This means this and only this: Any peripheral you access through a GS/OS driver would not have to be switched in through the Control Panel to be accessed. It has no effect on ProDOS 8 or on things that are _not_ accessed through GS/OS, like the mouse, direct serial access and the text tools (unless redirected through the OS as in ORCA 2.0). The major problem with a slot arbiter is interrupts. If you have code that deals with hardware during interrupts, and that hardware is slot-based, and you do not attempt to use the slot arbiter or make sure that hardware is available before tickling softswitches, you'll cause problems. The Slot Arbiter can't save and restore the slot configuration to "default" around interrupts because it would add too much to the interrupt latency. One possible solution is to provide a way through a CDev to mark some slots as "non-switchable" so they never get changed from their control panel settings. This makes that hardware effectively take two of 14 positions, but that's no worse than it is now. I'm also unsure if slot arbitration would let AppleTalk run without having an "AppleTalk" slot. Not having an "AppleTalk" slot would definitely kill AppleTalk in ProDOS 8. --- The other proposed solution (originally Jawaid's) is to not implement a slot arbiter but implement mouse code and maybe serial port code (in an unspecified way) so that those two particular peripherals have no slot dependencies, arguing that this will solve most people's problems and be less work. I'm not sure it would be less work, since GS/OS already has the Slot Arbiter design built-in, but there's a possibility. Also, GS/OS is in RAM and can easily have stuff like this added as new modules. Mouse code and serial firmware is in ROM and can't easily be patched sometimes. It looks like SSW 6.0.1 will patch _Multiply as a way of fixing a bug in _MenuSelect and _PopUpMenuSelect, as an example of how tricky such things can get. Todd suggested that drivers simply disable interrupts around accesses to hardware-dependent locations and manipulate $C02D themselves. Unfortunately, this isn't suitable for GS/OS drivers, many of which rely on firmware on the peripheral card to do the work. Disabling interrupts around all calls to the firmware a driver might make isn't realistic, especially for the Apple drivers which rely heavily on the ROM in the IIgs to save memory space. --- So if anyone has more comments, we're listening. :) --Matt (I speak for myself, not for Apple) [EOA] [INT]////////////////////////////// INTERNET FRIENDS / ///////////////////////////////// Comp.sys.apple2.programmer needs you! """"""""""""""""""""""""""""""""""""" By Matt Deatherage [M.DEATHERAGE] >>> VOTE FOR COMP.SYS.APPLE2.PROGRAMMER <<< """"""""""""""""""""""""""""""""""""""""""" To all our friends on the Internet: Please feel free to redistribute this message; I'm not going to post it myself. Just don't edit it. Those of you who like to program Apple II computers and regularly read news on the Internet may now that there's a vote currently in progress about reorganizing the comp.sys.apple2 newsgroup into four separate newsgroups. Much discussion has been carried about this vote, but we'll only focus on one part -- the creation of a separate comp.sys.apple2.programmer newsgroup. Being affiliated with a commercial online service, you might think we'd be against this idea because it would create competition. The truth is -- and anyone who's held this job can back it up -- that those of us doing this on commercial online services aren't doing it to get rich. We're here for very little or no pay because we like helping Apple II programmers of all ages, skill levels and interest areas. We've worked hard in A2Pro over the years to create a strong resource for programmers to find help. Our libraries have thousands of files aimed at programmers doing HyperStudio scripts, AppleWorks macros, desktop programming, BASIC programs, Pascal, C and assembly-language programming from the introductory to the extremely obtuse. The libraries are organized by Todd Whitesel in a scheme that allows you to find samples even if you don't know exactly what you seek. Our bulletin boards keep a few thousand programming messages around at any given time, ready for you to browse through because they're also organized into clear, easy-to-navigate topics. We have real-time conferences a few times each week where you can talk to other programmers at a predetermined time (you don't have to spend hours hoping you'll find someone). We produce A2 University, where you can learn anything from introductory Assembly Language programming to intensive data compression -- at no additional cost from normal connect rates. We also bring to our members the companies that work the most with programmers and give them their own areas and libraries here so they can help you better. You'll find information from Procyon, Softdisk, GS+ Magazine, Lunar Productions, Morgan Davis Group and The Byte Works all here, along with DigiSoft, Simplexity, Quality Computers, DreamWorld and now Josh Thompson helping METAL and FutureVision programmers. We feel this is the strongest collection of Apple II programming assistance people assembled anywhere outside of KansasFest, and we're proud to give them a forum to help the programmers. We've managed to produce this area for programmers and keep it very focused, programmer-friendly, full of content and free of noise. This is partly because we have a great sister forum in A2 where those wanting non-programming answers can almost always find them, and partly because we have a fantastic bunch of A2Pro members who give us plenty of programming stuff to talk about and never leave us wondering what to do next. Our colleagues on Delphi, CompuServe and America OnLine also strive to help programmers out for the love of it, and they offer a lot of the same services (though we're obviously biased towards our own great mix). We feel very comfortable that what we do here is important and well-received by Apple II programmers around the world, and we welcome another forum for these topics. To this end, we heartily encourage all members with Internet newsgroup access to read the Call for Votes in comp.sys.apple2 or news.announce.newsgroups and to vote "YES" for the creation of comp.sys.apple2.programmer. We'll continue to do our part by doing what we can to make A2Pro a great place for programmers. We'll continue to produce GEnieLamp A2Pro and we'll post it to the new newsgroup if it passes the vote, and we'll announce our special events for programmers to the new newsgroup as appropriate, using the keyword "A2PRO", so you can choose to read or not read them as you please. We would ask all Internet users to please respect this convention and use the keyword "A2PRO" when posting messages concerning our services to assist those who don't want to see them. Last time this came up for a vote, the required minimum one hundred votes were not cast and the proposal failed due to lack of interest. One new newsgroup will not stop petty bickering, flame wars, jealousy or immaturity that has so often plagued comp.sys.apple2, but it will help those who want to program stay focused on their issues and make better software for everyone. Please support this effort and vote "YES" for comp.sys.apple2.programmer. --Matt Deatherage [*][*][*] [EOA] [RAM]/////////////////////////////// RAMBLINGS / ////////////////////////////////// Ramblings from a 'Wannabe' Programmer """"""""""""""""""""""""""""""""""""" By Larry E. Elseman [L.ELSEMAN1] >>> IKTRFTAANYDT!* <<< """""""""""""""""""""" Remember when you first started to program in BASIC? What did you do when you came across a new statement, something that you just weren't sure what its function was? Did you write code using the new statement, just to see what would happen? Did you just stick to statements that you were already familiar with and feel confident using? Or did you seek the information you were looking for in the programming manual or a reference book? For me, with BASIC anyway, I would look up the new statement to see if it was something that I could use in my code. I've always been curious to see what the technical references had to say about a statement. Of course, many times if I had sample code to look at I could figure out the statement's function on my own. From there I would practice using the new statement by writing a few lines of code to get the syntax down and see the results of using the new statement. Okay, so you're now learning a new language step by step, statement by statement and using the manual and reference material to help you over the rough spots. You have an idea that you would like to program, but you don't know how to implement it into your code because it seems to call for some statement that you have not yet come across. Now what do you do? Aside from asking someone on A2Pro (surely someone there knows a solution :)), you really don't have much of a choice except to seek help from the manual. But how do you look for a statement which may not even exist, and if it does, can you be sure that you'll recognize it when you see it? I bring this up because it has happened to me on more than one occasion. In my pre-GEnie days the only option I had was to spend a lot of time reading the manual. And as you probably know, most language manuals do not exactly keep you on the edge of your seat! What would invariably happen to me is that I would get side-tracked. I would start out searching for something in particular and find something else that would catch my interest. That's not a bad thing of course, because it would still be a learning process, yet it gets frustrating. I think most Apple programmers started programming using the built-in AppleSoft BASIC. If that's true, wouldn't it be neat if other language manuals had an index which cross-referenced BASIC statements to the equivalent or comparable statements in that language? Are there manuals which already do this? If so, I have not seen them. Personally, I tend to think in terms of BASIC when I find myself groping for the correct statement in the language that I am currently learning. I realize that most languages have statements, instructions, mnemonics which have no counterpart to BASIC. In those instances a clear example of what the instruction does and how to implement it in a program would be sufficient, and most manuals that I've seen do at least that much. Perhaps someone on A2Pro (or someone reading this article!) could write a statement cross-reference index of the most popular programming languages for the Apple II line and upload it to A2Pro? Does this have any merit? Would I be the only one interested in such a beast? Is the Apple II too far gone that it would be of little value? Would I be the one to have to write it?... Egads! All right, time for a pop-quiz, no pencil or paper required. What did you do when you read the title of this article? A) I really didn't think much about it. B) I started searching the article for an explanation. C) I started to read the article, but that goofy title kept bugging me. I had to stop and look for an explanation. D) Title? What title? You mean that bunch of letters at the beginning? I thought it was just baud-barf! To see how well you did, load the following program into your BRAM (Biological Random Access Memory) and execute it. 10 If INPUT$ <> "B" and INPUT$ <> "C" then PRINT "Wrong!": Goto 30 20 PRINT "Congratulations! You are a programmer who uses the manual when confronted with the unfamiliar!" 30 PRINT 40 PRINT "* I Know The Reason For This Article And Now You Do Too!" 50 END [EOA] [DEV]////////////////////////////// DEVELOPER'S CORNER / ///////////////////////////////// News from the A2Pro Online Developers """"""""""""""""""""""""""""""""""""" By Jim B.Couch [J.COUCH2] >>> ONLINE SUPPORT IN A2PRO <<< """"""""""""""""""""""""""""""" CAT COMPANY === ======= 29 Independent Developers Online <---- NEW CATEGORY! 30 Procyon, Inc. 31 Softdisk Publishing 32 Morgan Davis Group (MDG) 33 GS+ Magazine 34 JEM Software 35 Lunar Productions 36 The Byte Works Each month this column feature highlights and news from various developers who provide support via A2Pro. This month's big news is that A2Pro has added a whole new category for independent software developers! INDEPENDENT DEVELOPERS PROVIDE ONLINE SUPPORT A2Pro is _very_ proud to """"""""""""""""""""""""""""""""""""""""""""" announce that we now have five developers providing on-line support for programmers (and anyone else) who use or program for their products in Category 29 of the bulletin board (option 1 on the A2Pro main menu)! Now providing support are: Quality Computers - Phantasm Simplexity Software - Desktop Enhancer Digisoft Innovations - Twilight II v 1.0 DreamWorld - 3200's, Dreamgrafix. METAL/FV Software - METAL, METAL/FV Category 29 has a number of topics related to the products these developers provide, stop by and check them out: CATEGORY 29 -- INDEPENDENT DEVELOPERS ONLINE Topic 1 -- About Independent Developers Online Topic 2 -- About DYA/DigiSoft Innovations Online Topic 3 -- Announcements & General Discussion Topic 4 -- Writing Twilight II Modules (G2MF) Topic 5 -- Writing Twilight II Savvy Programs Topic 8 -- About Simplexity Software Online Topic 9 -- Writing Desktop Enhancer Blankers Topic 14 -- About Quality Computers Q-LABS Online Topic 15 -- Writing Phantasm Effects Topic 20 -- About DreamWorld Software Online Topic 21 -- Writing DreamGrafix Externals Topic 26 -- About METAL/FV Software Online Topic 27 -- Programming in METAL >>> NEWS FROM THE INDEPENDENT DEVELOPERS <<< """""""""""""""""""""""""""""""""""""""""""" DIGISOFT PROVIDES TECHNICAL LEVEL SUPPORT ON A2PRO Hello everyone! We're """""""""""""""""""""""""""""""""""""""""""""""""" happy to be finally representing ourselves on the technical level, here in GEnie's A2Pro! If you've never heard of us before, DYA, which stands for Digital Youth Alliance, was formed in January 1990 when a few of us got together to pool our efforts into creating new software and data for the Apple IIgs. In 1990 we started off with several animation demos, such as TextScroll II, Photon, Skull, and Mother Earth. These served as good exercises in learning to program the GS; they also show off some interesting animation and related effects. Later on in 1990, we teamed up with Jonah Stich to produce the original Twilight 1.0 shareware screen saver - the first publicly released modular screen saver for the GS. It was a great hit (for shareware standards) but had several inherent bugs that never were fixed (despite several planned attempts to try.) Anyhow.. in 1991 we brought out two large projects: the DYA SoundSmith ASIF Instrument Disk #1, and Exhibit A. The instrument disk was many months in the making, held up to insure that the instruments included were all in tune with each other and also of the highest quality possible. The instruments were sampled from scratch on an Audio Animator (with the exception of a few done on my old SuperSoniq Digitizer) from a variety of high quality sources such as CD's and a Roland D-70 synthesizer. In the end, we wound up including over 100 new hi-quality instruments. Many of these can also be converted to make great System 6 sounds, using programs slideshow. The disk is selfbooting (using legal methods so it should work just fine with the new FDHD controller card!) and each picture is precompressed to allow us to fit the most possible pictures on one disk. Exhibit A features the best 3200 color fades you'll find anywhere, combined with some impressive 3200 color pictures (converted from GIFs with an early version of Prism), in an elegant selfbooting selfcontained package. Take a look at it; you'll be impressed! Along the way, we've released a handful of other utilities/etc, including an init called MONITOR which replaces the "alternate display mode" CDA on ROM01 GS's with "visit monitor" (this is a temporary change and is reset when you reboot), several different shell utilities, an animation "technote" which tries to explain some beginning to advanced GS animation techniques, as well as a handful of other different things I'm probably forgetting offhand.. Which brings us to 1993! Currently we're working on completing Twilight II v1.1. Twilight II (T2) we feel represents the state of the art in screen savers for the GS. Many ideas were borrowed from After Dark on the M*c, and many features just aren't present anywhere else! Among the features and aspects of Twilight II we will be supporting here are: o an extensive and carefully planned effect module format (the G2MF), which includes support for many powerful features, including some not present in any other screen saver, for any other computer. o the comprehensive Twilight II inter-process communication routines that allow your programs and Twilight II to coordinate efforts and make for the most pleasant computing experience for the user If anyone has any questions or comments on these two current issues, or any other related ones not mentioned here, we'd be happy to entertain them in one of the other DYA folders here in cat 24. Thanks! -- Jim Maricondo, DigiSoft Innovations (Message 1, CAT29, TOP2, MSG:1/M530) TWILIGHT II G2MF VAST STEP FORWARD Twilight II employs an advanced custom """""""""""""""""""""""""""""""""" module format, very similar to CDevs. Twilight II modules can be written in assembly language, C, Pascal, or any combination of the three, and have filetype $BC (generic load file) and auxiliary type $4004. The modules included with Twilight II have been written in assembly and C (Twilight II, the CDev, is in 100% assembly.) Writing Twilight II modules can be a very fun and satisfying task! The Generation 2 Module Format (G2MF), as implemented by Twilight II, represents a vast step forward in performance and power over other conventional module designs for GS screensavers. We have designed it with the present and future needs in mind, and it sports a great deal of flexibility. This is the place to learn all about the G2MF, how you can best work with it, and how it makes many aspects of the task of writing modules much easier!! Jim Maricondo DigiSoft Innovations (Message 1, CAT29, TOP4, MSG:1/M530) MAKING YOUR PROGRAM TW II FRIENDLY Via System 6's new inter-process """""""""""""""""""""""""""""""""" communication (IPC) capabilities, Twilight II and other programs can coordinate efforts by communicating with each other. Twilight II sports a comprehensive set of routines that inform programs when the screen is blanking and unblanking and also allow applications to control certain aspects of Twilight II. By following a few simple guidelines (most of which already recommended by Apple, for good reason), you can insure full compatibility with Twilight II. Many of these suggestions will make your programs much more friendly to the system as a whole, and to other programs as well. This results in a much more pleasant computing experience for the user.. This is the place for more information on T2's IPC routines. We are just waiting to work with you! Also, if you discover any bugs or would like to share features you'd like to see in a future version of Twilight II, please let us know! Jim Maricondo, DigiSoft Innovations (Message 1, CAT29, TOP5, MSG:1/M530) SIMPLEXITY SOFTWARE HISTORY Simplexity Software is about 1.5 years old, """"""""""""""""""""""""""" and is dedicated to the premise that people should NOT work with computers: Computers should work with people! Our name comes from the idea that any application should be simple and easy to use on the outside, with as much of the complexity as possible hidden away on the inside as possible. Thus, Simplexity! Our first product, introduced in August, 1991, was the Desktop Enhancer. It attempted to create a single, cohesive user interface for customizing the desktop environment, and I believe it succeeded fairly well. Unfortunately, it provided only limited features, and was quickly eclipsed in February, 1992 by Signature GS, its major competitor at the time. Massive rewriting ensued, and the Desktop Enhancer v2.0 was released in August, 1992. Packed with more features than were earlier believed possible (due to the benevolent influence of System 6.0) it clearly out- shone its competition in almost every area, but the inevitable early bugs prevented its unqualified acceptance. Having dealt with all known problems, Desktop Enhancer v2.01 is now available for the ridiculous price of $24.95 (U.S.) Our second product, ContactsGS, was introduced in August, 1992, and received rave reviews from every quarter. It is a simple NDA which acts like a Rolodex on the desktop, with the added convenience of automatic phone dialing. Its simple, elegant design not only allows it an amazing degree of versatility, but also allows me to declare it a paragon of simplexity. It is available for a mere $14.95 (U.S.) More products are on the way, (three under development even as you read this!) and each one, like the Desktop Enhancer and ContactsGS, is being written with the utmost attention to three principles: Reliability, useability, and compatibility with current and future system software and applications. We are always interested in new ideas for programs, and occasionally (depending on several factors) are interested in publishing other people's programs. We can be contacted in several ways: GEnie: E-mail to S.McQueen1 America Online: E-mail to SIMPLEXITY Voice phone: (714) 283-3957 U.S. Mail: Simplexity Software 13045 Chapman Ave., Ste. 302 Orange, CA 92668 (S.MCQUEEN1, CAT29, TOP8, MSG:1/M530) WRITING DESKTOP ENHANCER BLANKER MODULES Greetings to one and all! This """""""""""""""""""""""""""""""""""""""" topic will provide a clearinghouse for detailed information about writing screen blanker modules for the Desktop Enhancer. Any questions will be answered in full, and discussions on the subject are welcome. (Discussions off the subject may be accepted, or not, depending on how far off the subject they are! :) A screen blanker program for the Desktop Enhancer is like nothing which has been done on the Apple IIgs before. It can be considered to be similar to a dialog filter procedure, but it is NOT the same! Its freedoms (and responsibilities) are amazing, yet once you understand its limits, it can be one of the easiest types of program to write. Full documentation on how to write blankers is included in the User Guide, and in the demonstration disk. I'll just re-iterate the high points. You may use any tools you need, as long as the application has already started them up. By copying resources into your own handles and closing the resource file, you may have access to your own resources, eliminating the 16-byte limit on the parm field, and allowing easy creation of icons and other standard structures. You must remember to return control to the calling application after each screen update pass, to ensure that the system can continue any processes it may be performing. You must draw only to the current port to prevent problems when the screen blanker is cleared from memory, and you may NOT issue an _AcceptRequests call to install your own request procedure. Even with all that, I cannot imagine any animation that cannot be done using a Desktop Enhancer screen blanker program. It's just that some of the more complex animations may not be as smooth as you might like. Don't worry about that - if you want incredible animations, you should write an animation application: a screen blanker is not the most important process the computer can be running, so it should not hog the whole system all the time for the sake of mere prettiness. Well, those are the barest basics, including a statement of design philosophy. :) If you want to try something Really Different, this is the place to learn how! -Steve (Simplexity Software) (S.MCQUEEN1, CAT29, TOP9, MSG:1/M530) QUALITY COMPUTERS LOOKING FOR NEW PRODUCTS Well, here I am. I'm here to """""""""""""""""""""""""""""""""""""""""" help you if you have an urge to develop new software for Q Labs, Quality Computers' software publishing division. Since this IS A2Pro, we'll limit our discussions to Apple II and IIGS products, although products with multi-platform potential are of particular interest to us right now (we're converting our TestBank program from IBM to Apple II and Mac, for example). We ARE interested in new products! If you have one that's finished, you can pack it up and send it to: Quality Computers, 20200 Nine Mile Rd., St. Clair Shores, MI 48080 USA. Attn: Tom Veselenak. If you're in the process of working on one, I'm here to answer any questions you may have about QC. General questions & answers, I suppose, should go in this topic. (QC [Jerry], CAT29, TOP14, MSG:1/M530) WRITING BLANKER MODULES FOR PHANTASM In this topic we'll discuss writing """""""""""""""""""""""""""""""""""" blanker modules ("effects") for Phantasm, the screen blanker that's part of SIGNATURE GS, published by Q Labs. Since the new Twilight II will also run Phantasm modules, your modules will be available to a wide audience indeed! I'll be uploading the official guidelines for writing modules tomorrow. I've got to warn you, though -- I'm not a IIGS programmer. The A2Pro folks have assured me that they'll help me out with any technical questions. By the way, we're currently trying to put together a disk of blanker modules. If you're into graphics programming, this could be your chance to make a few cool bucks with a weekend's worth of work. We're interested mostly in buying the modules, but if you'd like a royalty arrangement we'll try to work something out. (It depends on how many authors end up being involved in the project. As you can imagine, splitting royalties sixteen different ways could end up being a bit of a nightmare for us...) Use this topic to discuss various aspects of writing Phantasm Effects. (QC [Jerry], CAT29, TOP15, MSG:1/M530) WELCOME TO DREAMWORLD SOFTWARE ONLINE DreamGrafix - (note the spelling :) """"""""""""""""""""""""""""""""""""" Is the only 16/256/3200 color paint program available for the IIGS. If you are a developer, you must have this piece of software, because it will allow you to use 256 color pictures in your software. Also, external commands can be written to create shape tables, font tables, or any number of things. DreamGrafix is commercial, the list price is $99.95, street price will vary. DreamVoir - A combination slideshow w/ background SoundSmith player. It displays 16/256/3200 color pictures while playing SS songs. v1.31 includes 3200 color fades and a lot of new options. DreamVoir is $10 shareware. DuelTris - The last (?) *tris clone you will ever need. :) DuelTris is a two player competitive game, similar to Tetris. It features incredible 256 color pictures and great SS music. DuelTris has a feature called the DuelLINK, which allows you to pass 2-4 lines that you complete to your opponent. DT also has 6 different special pieces which help you lower your puzzle, and/or inverse your opponents controls. You can play two players or 1 player vs. the computer. DuelTris is $15 or $20 shareware. $20 includes the Limited Edition packaging, which features a 3.5" jewel case, a color insert and a printed manual. DreamVoir and DuelTris are available in the A2 libraries, do a file search by my email address: S.CHIANG4 . There are also several DreamGrafix demos available, including an fully working version, minus save print, and view full screen. Topic organization: DreamGrafix externals - This is the area to discuss external commands. We have written several EXTs for DG. Import PrintShop GS graphics, color to greyscale, Area calculator, etc. The rest are reserved. We have some forth coming programs which will also feature drop in modules. -- Steven Chiang (S.CHIANG4, CAT29, TOP20, MSG:1/M530) DREAMGRAFIX TECHNICAL INFORMATION COMING SOON This topic is for """""""""""""""""""""""""""""""""""""""""""""" DreamGrafix technical questions. Any non-technical questions should be directed towards A2 category 18 - "DreamWorld Software Online". The two major topics are DreamGrafix External Commands and DreamGrafix Documents. The external format has not been posted, as it the documentation hasn't been fully completed. I will post it as soon as it is finished. The DreamGrafix document file format is documented, and I will upload it to A2Pro shortly. Again, this topic is for questions related to either aspect of DG. -Steve (Message 1, CAT29, TOP21, MSG:1/M530) USING MULTIPLE PALETTE PICTURES This topic is for using multiple palette """"""""""""""""""""""""""""""" pictures in your software The Apple IIGS SHR hardware is capable of displaying 16 color per line w/ 16 palettes per screen. This means that you can define sections of the screen to correspond to palette 0, another section to palette 1, and so on for up to 16 palettes. This is known as 256 color mode, because 16 palettes of 16 colors is 256 colors. I feel that this mode is one of the best kept secrets on the Apple IIGS. So what, you say? Well, this doesn't sound all that exciting, but there is a lot of potential. For instance, take any game, if your play area is in the center of the screen and you want the score and maybe the title of the game at the top of the screen. For the game play area, you can set it to one palette of 16 colors, use another set of 16 colors for the score, and another 16 or 32 for the title of the game at the top of the screen. Big deal, I don't write games... okay, then take something like SoundSmith, or ModZAP. (soniq doesn't use the effect, I don't think. DreamGrafix Demo 3 would be included in this category though) The pump bars (vu meter) are very colorful. This is also done with palette tricks. Basically, the program always writes to the screen (Sorry, no QD2 here :) in a single color like 1. So if the thing was 4 pixels wide it would be just one lda #$1111 stal $012000,x per line of the bar. The picture is defined in such a way that every 1-2 lines is represented with a different palette. Then to vary the colors of the bar, color 1 is changed on each of the palettes. For you HyperMedia folks, you can combine 320 and 640 modes, to have 640 text with 320 pictures. As soon as I work out a couple of the details, DG will support this. If any of you have seen DuelTris, I use a mixed 320 w/ 640 mode screen wipe. The desktop is 640 mode, and the sliding bar and the picture that is uncovered is in 320 mode. Palette rotation requires very little CPU time, because you are only manipulating a few words of memory. Spy Hunter GS uses palette rotation to move the ground. However, it's not your typical palette rotation, it is more SCB rotation, because he defines two palettes, one with a light g and dark green, and one with a dark grey and a light green. Then by manipulating the SCBs he creates the illusion of movement. Space Harrier Demo from the FTA also used scb rotation for the ground movement. And the California Demo from the GSAllianc used palette rotation to move the checkerboard ground left to right. If you have any questions or ideas, post them here. You don't need even need DreamGrafix to use 256 color pictures. You can simply set the SCBs and palettes up from within the program... The end product is what counts and multiple palette pictures definitely give the artist more freedom. I didn't mention this above, but the 256 color mode is built into the hardware, and thus takes no overhead time. (S.CHIANG4, CAT29, TOP22, MSG:1/M530) METAL/FV SUPPORT COMES TO A2PRO Metal/FV is a full-features electronic """"""""""""""""""""""""""""""" bulletin board system for the enhanced Apple IIe or later with at least 128k of RAM. These topics are for questions and comments regarding the development of Metal/FV as well as questions and comments regarding the Metal language. Question about setting up and using Metal/FV (configuration, etc.) should be directed to the Metal/FV area in A2 -- Category 41, Topic 15. (J.THOMPSON1, CAT29, TOP26, MSG:1/M530) >>> NEWS FROM PROCYON INC. <<< """""""""""""""""""""""""""""" ANOTHER FREEBIE FOR GNO OWNERS I just uploaded the 'copycat' utility. """""""""""""""""""""""""""""" It's going to be file #3260. Copycat basically connects one GNO tty to another, so you can (for example) use a terminal on the printer port to do modem sessions off of the modem port (while the console is free to do IIGS stuff with- this includes desktop programs and what not!). All in all, just another example of the power *real* multitasking gets you. Jawaid (PROCYON.INC, CAT30, TOP3, MSG:76/M530) NOTE: Be sure to check out Jawaid's series on programming for GNO. The series begins in this issue of the A2Pro GEnieLamp! Search for [GNO] -Ed. >>> NEWS FROM SOFTDISK PUBLISHING <<< """"""""""""""""""""""""""""""""""""" CHANGES AT SOFTDISK Recently we had a big re-org here at Softdisk, and """"""""""""""""""" one of the results is that we (Softdisk and Softdisk G-S) are now part of the "Apple Development Group", or ADG as we like to call it. ADG is Softdisk, Softdisk G-S and Diskworld (our Macintosh product). So, something we are looking for are articles that can apply to all platforms. For example, recently Joe Kohn wrote an article about HP printer solutions for Softdisk G-S. In about an hour one of our Mac people "ported" it to Diskworld. As another example, Tim Tobin is writing us an article on removable mass storage options (SyQuest, Floptical, Magneto-Optical, etc) and he's writing for the GS but keeping in mind the Macintosh. So, where does this leave us? Well, we'd like to see some of the following articles: o controlling home electrical stuff with your GS/Mac (X-10??) o solutions for the handicapped o CD-ROM, the ins and outs o ??? If you're interested in writing an article on any of the above, or have ideas of your own, please, contact us...we pay anywhere from $75 to $250 for articles. You can reach us at this address (SOFTDISK.INC) or you can call Lee Golden at 1-318-221-2173. -Bryan (SOFTDISK.INC [Zak], CAT31, TOP3, MSG:25/M530) SOFTDISK STILL LOOKING FOR CD-ROM ARTICLES I just wanted to let everyone """""""""""""""""""""""""""""""""""""""""" know that we've been flooded (well, a couple dozen anyway :) by people wanting to do AppleWorks GS articles and how-tos for us! This is great! (Please, if you are interested, contact us! We have plenty of room!) We've also found someone to write us an article about X-10 stuff, but we are still looking for an article all about CD-ROM options on the IIGS. If you'd like to make $75-$250 -- let us know! - Bryan (SOFTDISK.INC [Bryan Zak], CAT31, TOP3, MSG:26/M530) >>> MORGAN DAVIS GROUP NEWS <<< """"""""""""""""""""""""""""""" MDG Announces BASIC Programmer's Workshop SAN DIEGO, California -- """"""""""""""""""""""""""""""""""""""""" April 1, 1993 -- The Morgan Davis Group announced the BASIC Programmer's Workshop, a software bundle consisting of three popular products: MD-BASIC 2.0, RADE 1.0, and the Object Module Manager 1.3. The $99 collection of high-powered BASIC programming tools offers Apple IIGS users substantial savings, over $80 off the combined suggested retail price. ``The BASIC Programmer's Workshop is a great value. We use these products daily in our own development, so they have to be complementary,'' said company president Morgan Davis, ``Create your programs with MD-BASIC, test them with RADE, and be impressed by the power of the OMM when you run them.'' MD-BASIC is a professional Applesoft BASIC development tool for creating programs using the Apple IIGS desktop interface or any command line shell. The new 2.0 version offers a luxurious desktop mode complete with menus, multiple windows, and integrated text editing features. MD-BASIC translates source code into highly optimized Applesoft programs that are smaller and faster than can be achieved in Applesoft's native ``immediate'' mode, yet they're 100% compatible with every Apple II computer. Beagle Compiler users can compile MD-BASIC-generated programs for additional speed. The MD-BASIC language is based on Applesoft with a number of extensions: free-form layout, named labels (no more line numbers), long and descriptive variable names, modern commands like IF- THEN-ELSE, WHILE-WEND, REPEAT-UNTIL, and DO-LOOP, and features found in C compilers like conditional code processing and #define macros. MD- BASIC catches mistakes like unbalanced parenthesis, undefined and unreferenced labels, misspelled variable names, and other common errors before your programs run. GS+ magazine wrote, ``Applesoft may never get better, but writing programs in Applesoft just did. MD-BASIC changes the way people think about Applesoft.'' The package includes sample source code, interface files, code libraries, and a 100-page manual. RADE (Real-time Applesoft Debugging Environment) is a full- featured diagnostic tool that isolates errors in real-time without disturbing the BASIC environment. You can interrupt the execution of your program at any point to examine or change the contents of variables, set breakpoints, step through code one line at a time, or review the ``history'' buffer that records your entire debugging session. InCider/A+ magazine wrote, ``RADE is fast, powerful, full-featured, and easy to use. It's a breath of fresh air . . . a throwback to the days of tight, efficient programming.'' RADE comes with a 46-page manual and sample software that walks you through a complete debugging session. The Object Module Manager (OMM), an extension manager for Applesoft programmers, makes it possible to add external commands to enhance BASIC programs. Modules are loaded and unloaded as needed, using memory efficiently. They can also communicate with each other, making integration effortless. Developers can easily create their own custom modules. The OMM comes with sample source files in ORCA/M (APW) and Merlin assembler formats, sample programs, a starter set of modules (including AmperWorks: 35 powerful BASIC commands to pick up where Applesoft leaves off), and 67-page manual. The BASIC Programmer's Workshop is available now, directly from the Morgan Davis Group, for $99 plus $7.95 for shipping and handling (overseas S/H is $17.95). CA residents add sales tax. Institutional six-packs are available for $499 each. (MORGAN-DAVIS, CAT32, TOP1, MSG:7/M530) MD-BASIC 2.0 SHIPS WITH DESKTOP/COMMAND LINE INTERFACES SAN DIEGO, CA-- """"""""""""""""""""""""""""""""""""""""""""""""""""""" April 1, 1993-- The Morgan Davis Group today announced the immediate availability of MD-BASIC 2.0, a fully integrated Applesoft BASIC development environment for the Apple IIgs. The new version adds a familiar desktop interface, complete with pull down menus, windows, and mouse support. MD-BASIC can be used as a stand-alone application or as an external tool for command-line shells allowing users to choose the environment they prefer. MD-BASIC translates source code into highly optimized Applesoft programs that are smaller and faster than can be achieved in Applesoft's native ``immediate'' mode, yet they're 100% compatible with every Apple II computer. Beagle Compiler users can compile MD-BASIC-generated programs for additional speed. The MD-BASIC language is based on Applesoft with a number of extensions: free-form layout, named labels (no line numbers), descriptive variable names, modern commands like IF-THEN- ELSE, WHILE-WEND, REPEAT-UNTIL, and DO-LOOP, and features found in C compilers like conditional code processing and #define macros. MD-BASIC catches mistakes like unbalanced parenthesis, undefined and unreferenced labels, misspelled variable names, and other common errors before your programs run. The new desktop interface features multiple windows, cut, copy, and paste editing, choice of font style and tab settings, search and replace, printer support, and Applesoft-to-source conversion built in. Its traditional shell interface includes the processing and conversion capabilities found in the desktop mode. The desktop mode can even be accessed from the shell environment. MD-BASIC requires an Apple IIgs with System 6.0 or newer. A shell such as ORCA or GNO is optional. The package includes sample source code, interface files, code libraries, and a 100-page manual. MD-BASIC retails for $89.95. A $30 upgrade is available directly from the Morgan Davis Group. Include $5 for shipping and handling (overseas S/H is $15). CA residents add sales tax. Institutional six- packs are available for $449 each. (MORGAN-DAVIS, CAT32, TOP1, MSG:8/M530) MDG INSTITUTES MAJOR PROLINE PRICE REDUCTION SAN DIEGO, California-- """""""""""""""""""""""""""""""""""""""""""" April 1, 1993-- The Morgan Davis Group today announced a major price reduction for ProLine, the popular Apple II bulletin board system developed by Morgan Davis and supported since 1984. Prospective BBS buyers can now purchase ProLine for $159.95, down $100 from its former $259.95 suggested retail price. The new price reflects MDG's commitment to Apple II owners by offering the finest product and support available for the best value ever. Recently, ProLine was awarded five out of five stars in the December 1992 issue of inCider/A+. The leading Apple II/Macintosh magazine wrote, ``ProLine is as powerful as many UNIX minicomputer-based systems, yet amazingly, it runs on a standard Apple II. ProLine is top-notch. You can run ProLine as an independent on-line system, but it gains a new world of capabilities if you network it with other systems.'' ProLine can be linked to a global network, known as the Internet, consisting of educational, industrial, and government computers. Many commercial information services are also part of the Internet: America Online, BIX, CompuServe, Delphi, GEnie, MCI Mail, and others. Networked users can exchange electronic mail, bulletins, and software world-wide, with delivery time measured in hours, or even minutes. A leading BBS publication, Boardwatch Magazine (June 1991) noted, ``ProLine is a network of Apple II systems that are not only tied to each other, but routinely carry Internet News Groups . . . something we just didn't expect. The speed and power of this BBS running on an Apple II were quite impressive.'' In addition to Internet networking, ProLine offers terminal emulation compatible with all personal computers, high-speed modem support, and a full complement of file transfer protocols. ProLine does not restrict the types of computers that can access it so it appeals to the entire computing community. Now with a new price, ProLine is the most cost-effective solution for schools, clubs, businesses and user groups. ProLine 2.0 comes with three 800K disks and a 350-page reference manual. An enhanced IIe or Apple IIGS, 64K RAM, and at least 2MB free on a ProDOS-formatted drive is required. ProLine is available immediately, direct from the Morgan Davis Group, for $159.95 plus $8 shipping and handling (overseas air S/H is $25). CA residents add sales tax. Institutional six-packs are available for $799 each. Purchase orders accepted. Morgan Davis Group customers who purchased ProLine after April 1, 1993, for $259.95 will receive a $100 rebate. (MORGAN-DAVIS, CAT32, TOP1, MSG:9/M530) MDG OFFERS LOW-COST INTERNET GATEWAY SAN DIEGO, California-- """""""""""""""""""""""""""""""""""" April 1, 1993-- The Morgan Davis Group today announced uMDSS, a mail distribution subsystem protocol for Unix systems. uMDSS makes possible the exchange of Internet electronic mail and news with microcomputers unable to communicate over traditional UUCP channels, like the venerable Apple II. While available at the university level, Internet access is cost prohibitive for most grade schools still equipped with labs full of aging microcomputers. ``Compared to a direct Internet connection--about $24,000 per year-- and the complexities of special hardware and system administration, it's obvious why K-12 students and the computer-using community have been unable to use the Internet. It's supposed to be available to everyone, but it's too expensive,'' explains MDG president Morgan Davis. ``We're building a network of Internet e-mail access points on inexpensive personal computers. Instead of pouring thousands of dollars into new hardware and monthly access fees, schools can retain their investment in yesterday's hardware and still get today's technology for the cost of a normal telephone bill.'' uMDSS is like UUCP in many ways. uMDSS sites connect to UNIX hosts over serial-based connections. The caller logs in with an account name and password, then identifies itself by its site name and a secondary password. Session information is exchanged, and files begin moving between systems. When all files have been exchanged in both directions the session is complete. uMDSS maintains site lock (LCK) files, session ``.Status'' files, and a detailed log file. It also includes a uustat- like function for reporting job and connection statistics. Integration with local mail services is transparent. At the transfer level, an XMODEM-based 4K-packet protocol provides near 100% or better transfer efficiency, and is compatible with high-speed modems and ports. Client support is currently available for the Apple II through the ProLine BBS developed by Morgan Davis. ``ProLine is a network of Apple II systems that are not only tied to each other, but routinely carry Internet News Groups . . . something we just didn't expect,'' wrote Boardwatch Magazine in a June 1991 review. The uMDSS interface makes this possible. ProLine was recently awarded five out of five stars in an inCider/A+ review. The leading Apple II/Macintosh magazine wrote, ``ProLine is as powerful as many Unix minicomputer-based systems, yet amazingly, it runs on a standard Apple II.'' Support for PC and Macintosh computers is expected later this year. The uMDSS host software is available immediately for $59.95 per site, and can be mailed directly from the Morgan Davis Group to a customer's electronic mailbox. The electronic package contains complete C source code for compilation on most Unix systems. It also includes full documentation on installation and integration with local services such as smail and cnews. A six-host site license is available for $299. (MORGAN-DAVIS, CAT32, TOP1, MSG:10/M530) FOR MORE INFORMATION CONTACT MDG Founded in 1989, the Morgan Davis Group """""""""""""""""""""""""""""""" produces unique, powerful, and innovative software for a variety of computers. For the Apple II, MDG also publishes ProLine, a BBS with Internet access; ModemWorks, a communications toolbox; RADE, a real-time Applesoft debugger; VirusMD, a virus detection and repair utility. Call or write for a free product catalog. Contact: Morgan Davis Group 10079 Nuerto Lane +1 619 670 0563 TEL Rancho San Diego +1 619 670 9643 FAX CA 91977-7132 USA +1 619 670 5379 BBS >>> NEWS FROM THE BYTE WORKS <<< """""""""""""""""""""""""""""""" WHAT IS THE DEAL WITH THE MANUALS? There have been some questions about """""""""""""""""""""""""""""""""" our manuals, so I wanted to explain exactly what is happening, and where the delays are coming from. First, a bit of history. A couple of years ago, we started doing some courses for the Apple IIGS. The first few versions of our first courses were serialized, and were not sent to many people, so we copied them instead of printing them. That worked well, so we kept right on copying when the book form of the courses came out. Looking around, we found we weren't alone. Apple, APDA, and a lot of other companies were using copied pages for short -run products or products that changed frequently. Last year, we ended up reprinting ORCA/M manuals. There were two things that bothered us about this process. The first is that the print quality, while not bad, wasn't as good as we were getting from copiers. True, a good printer can outperform a copier -- but we weren't able to pay for the very best printers. In addition, we had to buy 1000 books to get even a modestly good price break. It ended up costing about $13,000 for the print run -- and we may never sell all of those books. For a company our size, tying up $13,000 per product in inventory cost just doesn't work. (Incidentally, we've checked around. Most printers would charge us $17,000 to $25,000 for the same job. For the quantity and quality, we got a good price.) Well, to make a long story short, by cutting the height of the manual by 1/2 inch, we could copy it. We checked, and found two places that would copy the books for a very good price. We're still using printed covers. We switched back to spiral bindings, since you can do a few of those, where perfect binding (like on a paperback book) is somethign that has to be done to a lot of books at one time. In addition, most of the people we talk to like the new spiral binding better than our old wire binding, and almost everyone liked that better than perfect binding. The printing is better quality. We can even order 10 books and still get a good price. Our inventory price dropped to about $400 for the covers. The price per book dropped to about $9 to $10, depending on the book. And, even better, I can publish programs like Modula-2, which I'm not at all sure will sell 1000 copies, and would not normally be able to risk $13,000 on. The disadvantage is that printing books is tricky. It takes a good operator and a good copier in perfect repair. It also takes time. We're getting a fairly steady stream of books back, but the quantity doesn't keep up with the orders. We've worked out most of the kinks, and have two suppliers, now, but it's going to take some time to get caught up. Since we could no longer afford to produce GS software with 500 page books the old way, though, there wasn't much choice. Still, once the system runs smoothly, we can publish products profitably that couldn't be released at a profit, even on a Mac. You'll see several of those this summer, I'm happy to say. In fact, the changes we've made will allow us to continue producing GS products even if we start creating programs for other computers, too, and I'm pretty happy about that -- I like my GS! Mike Westerfield (BYTEWORKS, CAT36, TOP31, MSG:1/M530) WORK BEGINS ON 'HYPERLOGO' PROJECT We're currently working on a Logo """""""""""""""""""""""""""""""""" interpreter for HyperStudio. This language will eventually be released as a scripting language for HyperStudio GS, and will be built into HyperStudio Mac. We'll probably release stand- alone Logos for the GS and Mac, too, but our plans are not as firm in that area. Specifically, we really haven't decided whether we will publish it ourselves, or pass it on to a company that can reach the K-6 market better than the Byte Works can. Here's a quick run-down on the broad outline for the Logo interpreter, as installed in HyperStudio: o It's called HyperLogo. o Logo has a lot of variants, like BASIC. Ours is Apple Logo with a few commands removed (think "no text screen"). I've also added a few commands from Object Logo (but not objects) and a few commands that are specific to our Logo (mostly for HyperStudio access, plus one other area that will be pretty cool, but I'd like to keep private for now). o In Hyperstudio, you will have up to three windows open when you use Logo. The first, and obvious one, is the script window. You can also open a console window, where you can type Logo commands for immediate execution. Among other things, you can examine and modify your Logo workspace. The last window is the Turtle Window, which you can use to try Logo graphics effects from the Console window. (Normally, of course, Turtle graphics commands draw to the active card.) This is all still in a very fluid state. I'd appreciate any questions or comments you might have. Mike Westerfield (BYTEWORKS, CAT36, TOP32, MSG:1/M530) [EOA] [GNO]/////////////////////////////// GNO TUTORIAL SERIES / ///////////////////////////////// Programming the serial ports. """"""""""""""""""""""""""""" By Jawaid Bazyar [PROCYON.INC] >>> GNO PROGRAMMER'S TUTORIAL <<< """"""""""""""""""""""""""""""""" WELCOME TO THE GNO PROGRAMMING SERIES Hi folks! We've been a little bit """"""""""""""""""""""""""""""""""""" quiet lately because we've been hard at work on the GNO 1.1 upgrade in the little free time we have these days. However, to stir up some excitement (and advertise GNO 1.1 a bit :-) we're going to do a little series on programming GNO's serial communication subsystem. Depending on the response, we'll continue to fill out the following outline of a larger "course": 1. What is GNO, and Why Should I Care? 2. Processes A. Programming processes B. Manipulating processes 3. Inter-process Communication A. Pipes B. Semaphores 4. Communications and the TTY 5. ?-? You'll notice the ? marks; these sections are left open for future additions. Basically, if there are parts of GNO's kernel that anyone has questions on, I'm going to write up a document that hopefully explains it in detail. These sections will appear one by one both in GEnieLamp A2Pro, and in the library with annotated sample source code showing off the techniques described in the section. As the outline fills out, I'll post updated versions to this "Programming GNO" area. Since my writing and free time tend to be somewhat irregular, and since I don't have the time right now to do chats, I've decided not to do this via A2U. I hope the information will still be useful. (PROCYON.INC, CAT30, TOP1, MSG:8/M530) INTRODUCTION TO GNO/UNIX TERMINAL DEVICES UNIX (and GNO) communicate with """"""""""""""""""""""""""""""""""""""""" the outside world almost universally with the TTY interface. TTY is shorthand for "Television Typewriter", and its use is somewhat anachronistic, but TTY is easy to pronounce, so its usage has stuck (along with other anachronistic UNIX terms :-) A more modern term would be 'terminal', and TTY and terminal will be used interchangeably in this section. TTY and terminal will be used to refer to the UNIX interface to terminals, rather than the terminals themselves. The terminal interface is a highly configurable and flexible system. It allows programs to configure all aspect of terminal interface, like baud rate, CR/LF translation, and input mode. GNO TTY Drivers --- --- ------- GNO/ME provides three different TTY (character) devices: the GNO Console driver, and a driver for each of the IIGS' built-in serial ports. Since these disparate devices are all treated the same way by the same interface, programmers get a completely consistent interface to terminals, no matter what the actual device is (this is what we refer to in GNO documentation and advertising). What this means for the programmer is a whole new realm of power - testing a program meant to communicate with other computers over a modem, for example, can be tested with user input on the console. The three drivers all have default names, and the names of the serial devices are user-configurable by editing the etc/ttys file. .ttyco - the GNO console driver .ttya - IIGS modem port .ttyb - IIGS printer port In addition, there is a special file, '.tty', that when opened returns a reference to the terminal the program was executed from. This allows programs to read or write the terminal, even when input/output redirection was used on the program. For example, a debugger could use '.tty' to access the terminal (completely through the OS) even when the program being debugged was executed with "program < foo > bar". If the program was executed from the console, then opening .tty would be like opening .ttyco; using .tty the program doesn't need to know what terminal it was run from. Input Modes ----- ----- There are three basic input modes: cooked, CBREAK, and RAW. Cooked mode is the normal method of operation. It provides some basic input editing by keeping a buffer of input and allowing the user to modify that buffer with backspace (and other editing features, depending on the version of UNIX or GNO in question). Programs reading from a terminal in cooked mode only receive input hen an entire line has been typed (and the return key pressed), even if the program only requested a single character. This is done to help minimize operating system overhead. CBREAK stands for 'character break', and it allows programs to read input a character at a time, houtiting for an entire input line first. Certain high-level features of the tty are still active, like interrupt keys (more on these below) and CR/LF translation. A text editor like Emacs or VI would use CBREAK mode, as would any interactive program that needs to be able to detect single keypresses. The final mode is RAW mode. This provides completely raw access to input data: no character translation or input editing is performed, and the interrupt keys are disabled. You'd use raw mode for a file transfer protocol, for instance. Special Characters ------- ---------- There are a number of special characters that TTYs detect and act on in cooked and CBREAK modes. A table of these follows. The special characters are completely user-configurable, and thus they are named and followed by their default values. Any characters which are only present in GNO 1.1 are marked with an '*'. Char (Def) Description ------ ----- ----------- t_intrc ^C Standard interrupt character. When this is typed, a signal (SIGINT) is sent to the process(es) that are in control of the terminal. Unless the program has installed a handler for this signal, GNO will cause the program to terminate. t_quitc ^\ Similar to t_intrc, except that programs are not allowed to install handlers for this interrupt. The signal SIGQUIT is sent to the process, and GNO will terminate the program. t_stopc ^S When typed, this character will cause GNO to cease output to the terminal. Old Apple II cronies will remember this from AppleSoft BASIC; it's an extremely useful feature. t_startc ^Q This character is used to resume output to the terminal after a t_stopc was used. *t_eofc ^D When a tty receives this character, it is treated as if an end-of-file condition had been received on the terminal file. Any partially entered input lines are returned to the process making the read, along with a GS/OS End Of File error ($4C). t_suspc ^Z Sends the signal SIGTSTP to the process in control of the terminal. Unless the program has installed a handler for this signal, GNO will cause the program to be suspended. That is, the program will stop running, but remains in memory and can be restarted where it left off. *t_dsuspc ^Y Just like t_suspc, except that the suspension happens only when the character is read by the program, not when it is typed. *t_rprntc ^R Reprints the current input line, in the event that it was garbaged by output from a background process or line noise. (PROCYON.INC, CAT30, TOP1, MSG:10/M530) DEVICE CONTROL AND OTHER FUN WITH IOCTL() Mode changes and configuration """"""""""""""""""""""""""""""""""""""""" of the terminal devices is accomplished with the GNO Kernel call ioctl() (I/O Control). ioctl() takes three parameters: ioctl(int fd, unsigned long tioc, void *iod) fd - file descriptor (GS/OS refnum) of the terminal to affect tioc - several bit fields that describe the operation to occur. Simply use the predefined macros in the header file iod - pointer to input or output data Now, when we say "file descriptor" we also mean a GS/OS refNum, such as is returned from OpenGS called on one of the terminal devices, or the C statement open(".ttya",O_RDWR) (assuming you have the GNO libraries installed - the standard ORCA/C version of open() will not work correctly in this regard as it does not return a real GS/OS refnum). You can also do terminal I/O through C's stdio (fopen, etc) but you have much less control over the way incoming data is handled due to buffering (and if you turn buffering off you might as well use the low level calls open/read/write/close). There are four data structures that can be accessed with ioctl() that allow programs to set the TTY mode. The first (and most commonly used) is: struct sgttyb { char sg_ispeed; char sg_ospeed; char sg_erase; char sg_kill; short sg_flags; } sg_ispeed and sg_ospeed set the input and output baud rates, respectively. Since no modern computer system transmits at a different baud rate than that which it receives at, sg_ospeed is obsolete and both input and output baud rates are set with sg_ispeed. "So what exactly do I put in sg_ispeed and why is it a char/acter instead of an int?" you ask? there are C macros that equate to predefined baud rates; for instance, the 2400 baud setting is 'B2400'. The interface defines some baud rates that aren't used on the IIGS and also some IIGS-supported baud rates aren't defined in the macros; this was done for full UNIX compatibility. However, The major baud rates (B300, B1200, B2400, B9600, B19200, and B38400) are all defined so communications with any modern devices is no problem. Obviously, the GNO console doesn't have a serial chip in it, so the baud rate settings are ignored. The sg_erase character is the ASCII character that means "backspace" or "delete previous character" when the TTY is in cooked mode (recall that cooked mode supplies user-level input editing). This is configurable so that it can be defined to the key that is most convenient on whatever terminal you're using. The GNO default for sg_erase is 0x7F (the delete key), which corresponds with the fact that most people logged into GNO will be using a IIGS (or even a Mac). sg_kill is not supported; it is meant to delete all input on the current input line. The final field in the sgttyb struct is sg_flags. A fair number of flags that control the TTY's mode of operation are present in this field. The most important of these are (taking the macros that are defined to the bit values) RAW, CBREAK, CRMOD, and ECHO. Note that there is no 'COOKED' flag; COOKED mode is set by making sure RAW and CBREAK are off (set to zero). The CRMOD flag controls how the TTY deals with outgoing and incoming carriage returns and line feeds. With CRMOD turned on, outgoing CR's are converted into a CR/LF sequence; both the GNO console and many terminals (like the DEC VT100) need this. You can tell if a program accidentally left CRMOD turned off before exiting by the appearance of everything on a single line; CR's are left as-is, and since the definition of CR is 'move the cursor to the left of the current line', you get a very disconcerting effect. Using the shell command "stty crmod" will turn the CRMOD bit back on. The final flag that you'll be interested in immediately is ECHO; if ECHO is turned on, everything that is typed at the terminal will be echoed back to the terminal screen. There is a difference here between GNO and UNIX; in GNO, all input processing happens in a process; under UNIX, a good deal of processing occurs in interrupt handlers. Thus, in GNO characters are only echoed back when they are read by the program in question (this ends up being each time you type a key on the keyboard, because when we say "process reads the data" we include the part of the process that is inside the operating system - in this case, the GS/OS ReadGS call on the TTY file). As an example of the use of the ECHO flag, a program that needed to read a password in (invisibly) could turn off the ECHO flag; if you had a program that was communicating through one of the serial port TTYs, you would also want ECHO turned off. For more details on various flags available in sg_flags, see GNO's TTY(4) manpage (GNO 1.1 has a lot more). The second major structure available for inspection via ioctl() (at least in the TTY drivers) is the local mode word. This contains flags that control a number of terminal-support functions. Most of them are there to deal with old terminals that (for example) don't have the tilde key, or don't support lowercase characters (gasp! They do exist!). The particular flags supported by GNO 1.0 or 1.1 are described more fully in the TTY(4) manpage. The third structure is winsize; this structure is designed for use with windowing systems. For example, say a pseudo-tty is active with a text editor. If the user changes the size of the window, the window manager does an ioctl() call to change the window size structure; at that point, the tty driver sends a SIGWINSZ software signal to the process controlling the terminal (more about process groups and control terminals next week). If the program doesn't support the window size record, the signal will be ignored; however, programs like the Stevie text editor that _do_ trap that signal can then update their displays and internal variables to account for the change. Height and width of the content area of the window are stored in both pixel and character units. The final two structures, ltchars and tchars, both allow user (and software) configuration of all of the interrupt characters the TTY recognizes. Recall that interrupt characters are keystrokes like ^C and ^Z. A program can turn off the effect of those keys by setting the value of the appropriate character to -1 (or $FF), in case they don't want the user to interrupt them but also don't need a signal handler for them (or can't install a signal handler, as in the case of SIGQUIT). The user may configure the characters to be anything they like. [ Next, we discuss process groups and actual use of the ioctl system call. We'll also start discussing how to write TTY-savvy software ] (PROCYON.INC, CAT30, TOP1, MSG:15/M530) [EOA] [MAN]/////////////////////////////// THE MANAGER TIPS / ///////////////////////////////// Programing Tips For The Manger """""""""""""""""""""""""""""" By Seven Hills Software [SEVENHILLS] >>> PROGRAMMER INFO CONCERNING THE MANAGER <<< """""""""""""""""""""""""""""""""""""""""""""" USING THE "BACKGROUND" TEST APPLICATION The "Background" application """"""""""""""""""""""""""""""""""""""" demonstrates how an application works in the background. In order for it to operate in the background, the "Can Receive Null Events" option is checked, and to let other applications operate in the background while the test application is in the foreground, the "Can Release Null Events" option is also checked. Background creates a standard menu bar and opens a "Null Event Counts" window that displays how many Null Events are occurring. The Foreground number increments when the application is currently in use (it stops when an NDA or another application is being used). This number increments very quickly because Null Events occur frequently when an application is frontmost. The Background number increments when an NDA or another application is in use. This speed at which this number increments depends upon what the active application is currently doing. The test for being in the background is simple: If the front window is a system window, then the application is in the background. This test is made in Background's main event loop, so each time either number increments you know that the demo has made one pass through its event loop. If you open almost any NDA, the Background number increments whether or not The Manager is set to allow background Null Events. This is because most NDAs allow the main application's event loop to continue executing. To demonstrate the multi-tasking that The Manager provides, launch an application that has been set up to release null events (use TM Application Setup for regular applications; use TM Preferences to control the Mini Launcher). NOTE: If you launch an application that has been set up to Release Null Events but the Background number does not increment, then activate the Finder or Mini Launcher and check the "Allow Background Null Events" option in the TM Preferences dialog box. It is interesting to watch the Background.Demo operate as you use an application: o Position the "Null Event Counts" window in the lower-right corner of the screen. o Activate/Launch an application that is set to release Null Events. o Resize the window(s) so you can still see the values in the Null Event Counts window. o Use the application. Note that the background number increments only during null events, and only when conditions are "friendly" (e.g. a modeless window is open, not when an alert is displayed, etc.). MULTI-TASKING In order for your application to be multi-tasking friendly, """"""""""""" it should call GetNextEvent or TaskMaster as often as possible. This is true whether you are in the foreground or background (if you are in the foreground it's friendly because you're giving background applications a chance to work; if you are in the background it's friendly because you won't hog too much background time). Although we recommend handling update events for the best looking result, for these calls you can even use a NIL mask...the important thing is to make the calls as often as possible. TIP: If you have a big outer loop with several inner sub-loops, one strategy for handling update events is to include TaskMaster(NIL) within the sub-loops and a TaskMaster(Updates) in the big outer loop. HOW MULTI-TASKING WORKS Let's say you have one foreground application and """"""""""""""""""""""" two applications processing in the background. When the foreground application calls GetNextEvent or TaskMaster and there is a Null Event (nothing else happening), The Manager passes control to the first background application, which makes one trip through its current event loop then control is returned to the foreground application. The next time a Null Event occurs in the foreground application, The Manager passes control to the second background application. Because time is shared between foreground and background applications, applications that want to run in the background should be very careful not to stay in control very long (otherwise the foreground application's use will be interrupted). NOTES ABOUT USING WINDOWS Always use non-dialog windows for long """"""""""""""""""""""""" processes. To determine if The Manager can activate another application it does GetWFrame and tests the bit that indicates it's a dialog frame. If a dialog is open, The Manager will not activate another application. If another application cannot be activated, your application can't be put into the background. Another reason for using non-dialog windows is because non-dialog windows will always be opened in the application's layer, whereas alerts/dialog windows will interrupt the user and the current foreground application (annoying and confusing). STANDARD QUICKDRAW As demonstrated by the Background test program, you """""""""""""""""" can use QuickDraw calls to draw into your windows and there will be no ill effects on the foreground application (just follow the standard recommendation to save/set/restore the GrafPort as necessary). DIRECT SCREEN WRITING If your application writes directly to the screen, """"""""""""""""""""" follow two rules to insure compatibility with The Manager (these are also standard Apple rules, but they are rarely followed): RULE #1: Create a dummy window that fills the entire screen. If you draw directly to the screen without creating a window, when the user clicks on what appears to be contents of your window, The Manager will detect a hit in another application's window and will activate that application (or will detect a hit on the desktop and will activate the Finder). By creating a window that fills the screen, when the user clicks The Manager will know the mouse click belongs to your application. RULE #2: Draw ONLY IF your window is frontmost (test _FrontWindow). This should be obvious...if you draw when another window is in front you will overwrite that window's contents. NOTES ABOUT USING ALERTS/DIALOGS If a background application presents an """""""""""""""""""""""""""""""" Alert, that alert is put up in front of the application currently in use. You can see how this works by choosing "AlertWindow every 100 Null Events" from the Background test application's Test menu, then activate another application. Each time the Background Null Event Count is a multiple of 100, an alert will be presented. Start using the other application (e.g. if you're in Teach, start typing a document). Before long an alert from the Background application will interrupt you. If you acknowledge the Alert and keep typing your document, the alert will interrupt you again. Pretty soon you'll know why you do NOT want to interrupt the user with alerts! Not only is it annoying when a background application forces itself upon the user, but it is also very confusing for an "XYZ" application alert appear while you are using application "ABC"! We provided this test option to demonstrate that it is possible to present an alert, but even though it is possible you shouldn't do it. The recommended alternative is to use a modal, but non-dialog, window instead (__DoModalWindow is perfect). As a window it will not interrupt the user, and when the user re-activates your background application, the modal window will be patiently waiting for a response. NOTE: Version 1.0.0 of The Manager has a problem that prevents _DoModalWindow from working properly (in the process of opening the window the application is made active, and the system might crash). If you are developing software to be "Manager-Aware" please contact Seven Hills Software for more information. NOTE: If you insist on using alerts, include the application name within the alert (e.g. "Message from XYZ: File already exists."); otherwise the user won't know where the alert comes from. For example, Apple's Teach application displays an alert when its OOM queue is called. If you launch an application that attempts to allocate a huge memory handle (perhaps to purge memory), Teach's OOM queue routine displays an "out of memory" alert (which has no bearing on the current application, and is very confusing because the alert says nothing about the message coming from Teach). IMPORTANT: Never make Standard File calls while you are in the background! IMPORTANT: Text based applications that can work in the background must not display anything when in the background! Here's the test (which works whether or not The Manager is active): If the Window Manager is started (check _WindStatus), do NOT display text if _FrontWindow returns any window. [*][*][*] SOURCE CODE FOR THE BACKGROUND TEST APPLICATION We have included the """"""""""""""""""""""""""""""""""""""""""""""" source code for the Background test application so you can see how it works. It is also a good place to start if you want to quickly test how some interface component behaves while it the background. The source code and related files are: o Background.c (CC source) o Background.h (CC source) o Background.r (REZ source) o Make.ORCAC (EXEC script): commands to compile with ORCA/C compiler o Make.APWC (EXEC script): commands to compile with APW/C compiler o Background.make (MPWGS text): make file for MPWGS. Notes: o The CC sources are ready for the ORCA/C compiler. To compile with APW/C, execute before Make.APWC: CHANGE Background.c CC o After compiling you must use TM Application Setup and check the "Can Receive Null Events" option in order for the application to receive any time in the background. If you want other application to work while the Background test application is in the foreground, also check the "Can Release Null Events" option. GETTING INTIMATE WITH THE MANAGER All the guidelines above can be """"""""""""""""""""""""""""""""" implemented in your existing applications without any concern for whether or not The Manager is present on an end-user's machine. In the next version of The Manager, IPC (AcceptRequest/SendRequest) messages will be available to access useful data and utilities. If you are developing an application and want to take advantage of these Manager-specific routines, please contact Seven Hills Software for information. [*][*][*] Ed. Note: The information above was provided by Seven Hills Software. The source code samples and Background application mentioned in the article are available in the A2Pro library. (File #3206 TMPROGINFO.BXY. [EOA] [RTC]/////////////////////////////// RTC WATCH / ///////////////////////////////// A2Pro Real Time Conference News """"""""""""""""""""""""""""""" By Nate C. Trost [N.TROST] >>> WELCOME TO THE RTC WATCH <<< """""""""""""""""""""""""""""""" LOOKING FOR ANSWERS? Looking for answers to your programming questions? """""""""""""""""""" Want to know the latest and greatest Apple II programming news? Have a desire to shoot the breeze with some of the best II people in the business? Try the A2Pro Sunday Night RTC's! 8:30 Eastern every Sunday at page 530, option 2 on the menu! [*][*][*] RTC NEWS FLASH! Starting on May 6, every Thursday night will be Apple """"""""""""""" IIGS Graphics and Sound Night in the A2Pro RTC. Join host Nate Trost for discussing graphics and sound on the GS! 9:30 Eastern every Thursday at page 530, option 2 on the menu. Whether you're a beginner or a master, this is the place to discuss graphics and sound on the GS! [*][*][*] APRIL A2PRO RTC HIGHLIGHTS: Here are some hilights from a April's """"""""""""""""""""""""""" Real Time Conferences, just a taste of what is in store for those who drop by to chat! ON THE ZBASIC LANGUAGE FOR ALL APPLE IIS """""""""""""""""""""""""""""""""""""""" <[Airship] J.GRAHAM29> ----- I've been getting a couple of inquiries about the availability of ZBasic and AC/BASIC. Any idea if either one is still around? <[A2Pro Leader] M.DEATHERAGE> Greg Branche, who _wrote_ ZBasic, says Zedcor will probably be happy to sell you a copy. :) <[Nate] N.TROST> ----------- But will you get any support? <[A2Pro Leader] M.DEATHERAGE> Support? No. Greg says if you're lucky, you might get a manual. :) ON KEYCAREBITS """""""""""""" <[Bill] W.TUDOR> ----------- I want to say something about keyCareBits for keyboard equivs of controls, ok? <[A2Pro Leader] M.DEATHERAGE> It's still a free country, last I checked. <[Bill] W.TUDOR> ----------- Let's say you have a check box and the text begins with "s". Ok, you want an "S" to toggle the check box. No problem. In this case, you may not even care if Apple-S works - BUT- Please SET the keypad and option key care bits so that "keypad-S" and "option-S" do NOT work. In the option case, things may be mapped around and in the keypad case, the user pressed a Function key on the ext keyboard. That's my two cents for the day. :-) ON WINDOW INFO BARS """"""""""""""""""" ---------------- I posted a question in the Window Mgr area & did not get a response I could really work with. I want to set up a color palette in the info bar of a window. My problem is determining which color was picked (i.e. what are my local mouse pts) <[A2Pro Leader] M.DEATHERAGE> Pauley: You have to do it all yourself. The only help the system gives is that the Info bar is just above the local coordinate origin of the window. In other words, the bottom line of your infobar has Y coordinate -1 in local coords. ON 'STRANGE' TOOL CALLS """"""""""""""""""""""" <[Leo] L.PIILONEN> --------- I see in ORCA 2.0 that there are quite a few toolbox calls that don't appear.... ...in Toolbox Reference Vols 1--3 nor in the Technical Notes at ftp.apple.com. <[A2Pro Leader] M.DEATHERAGE> Leo, there's an entirely new book that was published about a year ago called "Programmer's Reference for System 6.0." It's published by the Byte Works and available from them or Resource-Central. This book has what you're looking for in it. (Also note that the 6.0 Golden Master CD from Resource-Central has a complete set of toolbox macros, as well as C header files, for 6.0) ON FINDER RESOURCES """"""""""""""""""" -- I don't know why Dean would want to move his trash can. That is a good question though. :) Maybe he would rather change the default window sizes to 640 X 200 ? <[Nate] N.TROST> How can I do that with resources, eh Mr. Resource Guy? :) -- The data that the Finder uses for that, Nate, is kept in a rRectList resource. The resource is referred to as the Geek Preferences. <[Nate] N.TROST> That is a rFib if I ever edited one. :) -- No, Nate... Honest... The rRectList is referred to as the Geek Preferences resource... because only the Geeks (that's people like Dean) would want to change it :) AND.....OFF THE DEEP END """""""""""""""""""""""" ---------- So who watched 90210 tonight? <[Nate] N.TROST> ------- not I. <[ToddM] T.MYERS4> ----- I just see the commercial 'blurbs' and think ....NOT! (: <[Nate] N.TROST> ------- Debugging is better than 90210. :) <[RESOURCES] M.WOLFGRAM2> 65816 is better than 90210 <[Nate] N.TROST> ------- Hey that gives me an idea... the 90210 instruction set.... ---------- duh #$1234 <[Nate] N.TROST> ------- friend indirect, stranger indirect addressing modes. :) <[RESOURCES] M.WOLFGRAM2> wow >$0000 ---------- stranger indirect indexed protected mode <[Nate] N.TROST> ------- bmw #720,i . :) ---------- We need help. <[Nate] N.TROST> ------- We do. [EOA] [A2U]////////////////////////////// A2U CAMPUS GREEN / ///////////////////////////////// Your GEnieLamp A2Pro guide to A2U """"""""""""""""""""""""""""""""" By Nate C. Trost [N.TROST] >>> WELCOME TO THE CAMPUS GREEN! <<< """""""""""""""""""""""""""""""""""" EXPLORE ONE OF A2PRO'S NEATEST AREAS Here we'll be exploring one of """""""""""""""""""""""""""""""""""" A2Pro's neatest areas, the Apple II University (A2U for short). Over the past several years, A2U has taught many Apple II owners more about their machines. Topics from C programming to data compression have been covered with online classes similar in style to a correspondence course. A class consists of lessons uploaded by an A2U professor, who writes the lessons and provides help via topics in the Bulletin Board and in regular RTCs scheduled for the course. The only cost is the connect time it takes to download the lessons! A2Pro has an entire category devoted to A2U in the Bulletin Board. To find out more about A2U, stop by the A2Pro BB and visit Category 22. Some of the topics you'll want to read/mark are: CAT22, TOP1 What is A2 University? CAT22, TOP2 How to take an A2U Course The two topics above are read-only, discussion and questions concerning A2U should be posted to: CAT22, TOP6 Comments, Questions, Discussion... INTRODUCTION TO RESOURCES COURSE POSTPONED We regret to announce that the """""""""""""""""""""""""""""""""""""""""" A2U "Introduction to Resources" Course has been indefinitely postponed. Marc Wolfgram, the course instructor, is apparently having difficulty keeping up with the lesson schedule along with everything else he tries to tackle. (Lesson 5 hasn't been uploaded), so to make life easier on Marc and you, the course has been postponed, possibly cancelled with lesson 4. We are sorry for any inconvenience this causes anyone. -- the A2Pro Staff NEW IN A2U There isn't too much new in A2U for April, can you say """""""""" Spring Break boys and girls? Keep watching this space for details of new and exciting A2U courses! We do have something new and exciting to announce though! A2U PRESENTS Apple IIGS Graphics & Sound: The Continuing Saga! """""""""""" There are few aspects of the Apple IIGS as strange and daunting as taking advantage of its audio and visual capabilities. To help beginning GS programmers with their graphics and sound related questions, to promote the exchange of useful techniques, and to provide a fun forum for graphics/sound discussion, A2U will be sponsoring a regular GS Graphics and Sound RTC. These RTCs will be held on Thursday nights at 9:30 Eastern beginning on May 6. The RTCs will be led by Nate Trost, GEnieLamp A2Pro staff writer and longtime GS graphics/sound junkie. If you have questions, new ideas, or just want to shoot the breeze about making the GS look and sound pretty, this RTC is the place to be! PREVIOUS A2U COURSE REFERENCE, PART I A2U has given many courses over the """"""""""""""""""""""""""""""""""""" past several years, and although the courses are over, the lessons remain! These lessons are a valuable source for learning to program, or for honing your skills. This month we present the first half of a two part list of previous A2U courses that are available for downloading in the A2Pro library. All of these great files are available in the A2Pro library, option 3, page 530. And now, the list: HACKING DATA COMPRESSION (ANDY MCFADDEN) This twelve part course covers """""""""""""""""""""""""""""""""""""""" theory and application of data compression. Algorithms are discussed and source code presented in both C and 65816 assembly language. Compression methods discuss include RLE, Huffman, LZ77 and 78, LZW, LZSS, Arithmetic, and more. Source is for the IIGS, concepts apply to all computers. LESSON 1: File #2933 LESSON 7: File #3006 LESSON 2: File #2955 LESSON 8: File #3050 LESSON 3: File #2956 LESSON 9: File #3051 LESSON 4: File #2997 LESSON 10: File #3076 LESSON 5: File #2984 LESSON 11: File #3087 LESSON 6: File #2998 (Note: Lesson 12 will be available following the release of the HardPressed utility from Westcode) Related Files """"""""""""" File #3051 A2U.COMP.8.GIF.TXT (Description of LZW as it applies to GIF images) File #3067 LZWGIF87A.BXY (LZW explanation and GIF 87a specifications) File #3068 GIF89A.BXY (Description of the GIF 89a image format) EIGHT BIT ASSEMBLY LANGUAGE PROGRAMMING (JAY JENNINGS) This ten part """""""""""""""""""""""""""""""""""""""""""""""""""""" course is a starting point for those wishing learn Apple II assembly programming. 10 lessons + archived BB messages Lessons 1-10: Files #2837-2846 Archived BB messages: File #2847 EXPLORING BLOCK WARDEN (BRYAN PIETRZAK) This three part course provides a """"""""""""""""""""""""""""""""""""""" reference for the operation and application of the Block Warden utility included with the ProSEL package. Lessons 1-3: Files #2732-2734 INTRODUCTION TO C PROGRAMMING (WALKER ARCHER AND GARY MORRISON) This ten """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" part course serves as an introduction to programming in the C language. Source code compatible with APW and ORCA/C. Lessons 1-10: Files #3214-3223 INTRODUCTION TO PASCAL PROGRAMMING (P. DOTY) This ten part course serves """""""""""""""""""""""""""""""""""""""""""" as an introduction to programming the Pascal language. Source code is suitable for ORCA and TML Pascal. Lessons 1-3: Files #2849-2851 Lessons 4-10: Files #2853-2859 END OF PART I That's the end of Part 1 of the Previous A2U Course """"""""""""" Reference, tune in next month for the rest! [EOA] [LIB]////////////////////////////// ONLINE LIBRARY / ///////////////////////////////// HOT Files You Can Download """""""""""""""""""""""""" By Nate C. Trost [N.TROST] >>> ANNOUNCING THE BIT BONANZA <<< """""""""""""""""""""""""""""""""" YOUR MONTHLY MAP TO A2PRO RICHES GEnieLamp A2Pro proudly introduces Bit """""""""""""""""""""""""""""""" Bonanza, your monthly map to A2Pro library riches! Below you'll find some of the best neat, new, and nifty stuff uploaded to the A2Pro library during March and April. Visit the A2Pro library at page 530, option 3 today! [*][*][*] PROGRAMMING EXAMPLES/SOURCE """"""""""""""""""""""""""" File #3255: MONDRIAN.EF.BXY (GS) Uploaded on 4/14/93 by QC About 6.5K (d/l time approx. 45 seconds @ 2400 baud) This file contains all the information needed to create custom screen blanker modules for the Phantasm screen saver control panel. Programming information and sample source code to the Mondrian blanker is included. (Note: QLabs is looking for new modules to include with a special package of add-on blankers for Phantasm, look in the QLabs A2Pro area: CATegory 29 TOPic 15 for details) File #3254: BULLA.PLUS.BXY (GS) Uploaded on 4/14/93 by A2.LUNATIC About 325K (d/l time approx. 30 minutes @ 2400 baud) This archive contains several previously unreleased FTA/ACS demos. In addition, assembly source code (in Merlin 16+ format) to most of the demos is included on the disk. The demos are: "Bulla," a Mario Bros. style game/demo, "New Parametrix Animation," chaser balls in a figure eight, "New Real-Time Vector Balls," "Diagonal Scroll," you gotta see it to believe it, "Psy Scroll," a funky text scroll, "Coke Animation," a spinning Coke(tm) can!, "Oscillo," music with four separate oscillators/meters, and "Pang," some bouncing balls over a detailed background. File #3250: VCRPLUS.BAS (GENERAL) Uploaded on 4/10/93 by C128.JBEE About 11K (d/l time approx. 1 minute @ 2400 baud) A BASIC program that decodes the VCR+ codes. This is a Commodore BASIC program with the screen/cursor codes commented out. File #3213: METAL.SRC.BXY (8 bit) Uploaded on 3/24/93 by A2.LUNATIC About 95K (d/l time approx. 9 minutes @ 2400 baud) These are the source files part of the METAL telecommunications system for making a really nice BBS (usually used with FutureNet, the current "other half" of the METAL system). These are Merlin source files. This BBS system runs on enhanced Apple IIes and later. Includes direct support for the Apple IIgs ports, memory, etc. File #3202: ADVSRC.BXY Uploaded on 3/14/93 by D.GRANDE2 About 107K (d/l time approx. 10 minutes @ 2400 baud) A minimal port of the original Adventure game to APW C, source and executable are included. A2/A2Pro SPECIAL FILES """""""""""""""""""""" File #3251: A2PROLIB493.BXY (GENERAL) Uploaded on 4/11/93 by J.L.D. About 70K (d/l time approx. 7 minutes @ 2400 baud) This file is an AppleWorks 3.0 database of all files in the A2Pro library as of 4/10/93. An index of the libraries is included for easy reference. Takes 132K on the A2 3.0 desktop, about 70K on disk when unshrunk. There are 1,285 records in the database. File #3248: ORCA.C.01.BXY (GENERAL) Uploaded on 4/7/93 by A2PRO.GREG About 40K (d/l time approx. 4 minutes @ 2400baud) A collection of messages from the 'ORCA/C' topic in Category 36 - The Byte Works Online. File #3247: OR.SHELL.01.BXY (GENERAL) Uploaded on 4/7/93 by A2PRO.GREG About 46K (d/l time approx. 4 minutes 20 seconds @ 2400 baud) A collection of messages from the 'ORCA Shell' topic in Category 36 - The Byte Works Online. File #3196: ULT.PROG.01.BXY (8 bit) Uploaded on 3/4/93 by A2PRO.GREG About 37K (d/l time approx. 3 minutes 45 seconds @ 2400 baud) This file is a collection of messages from the A2Pro RT's bulletin board, Category 34, Topic 3 'Ultra Progamming'. UTILITIES """"""""" File #3246: SHELLPLAY0.5.BXY (GS) Uploaded on 4/5/93 by N.TROST About 13K (d/l time approx. 1 minute 30 seconds @ 2400 baud) ShellPlay 0.5, a freeware MOD music file player for the GS. This player is a shell utility EXE file for use with shell programs such as ORCA and GNO. File #3243: BURGERSPLIT.BXY (GS) Uploaded on 4/5/93 by BURGERBILL About 20K (d/l time approx. 2 minutes @ 2400 baud) This program will split a large file into smaller pieces for whatever purpose you need, such as getting the file to fit on 3.5 or 5 1/4 disks. Written with Orca/C 2.0 Source included. For use with a shell such as ORCA or GNO. File #3242: TODAY.BXY (GS) Uploaded on 4/5/93 by BURGERBILL About 115K (d/l time approx. 11 minutes @ 2400 baud) This program will tell you what happened today. It has about 100K of text for events that happen year round and birthdays of a lot of historical people. Written in Orca/C 2.0 Source code is included. INFORMATION/DOCUMENTATION """"""""""""""""""""""""" File #3239: REL.NOTES.SD401 (GENERAL) Uploaded on 4/5/93 by M.DEATHERAGE About 3K (d/l time approx. 25 seconds @ 2400 baud) This text file contains the release notes from Apple for eight-bit System Disk 4.0.1, available in A2Pro as file #3178. It details the changes made to ProDOS 8 v2.0.2 and FastCopy 1.0.1, the only components on the disk which have changed since Apple IIgs System Software 6.0. (NOTE: This is a text file with no Binary II header so it may be isted into your capture buffer as well as downloaded) File #3238: MODMEDSPECS.BXY (GENERAL) Uploaded on 4/4/93 by A2.DEAN About 40K (d/l time approx. 4 minutes @ 2400 baud) File format descriptions and implementation details for the MOD and MED music formats. Includes descriptions of the ProTracker effects. File #3206: TMPROGINFO.BXY (8 bit) Uploaded on 3/16/93 by SEVENHILLS About 20K (d/l time approx. 2 minutes @ 2400 baud) This upload contains information on writing "Manager-Aware" applications, including information on supporting multi-tasking. [EOA] [LOG]////////////////////////////// LOG OFF / ///////////////////////////////// GEnieLamp Information """"""""""""""""""""" o COMMENTS: Contacting GEnieLamp o GEnieLamp STAFF: Who Are We? o SEARCH-ME! Answers GEnieLamp Information GEnieLamp is published on the 1st and the 15 of """"""""""""""""""""" every month on GEnie on page 515. You can also find GEnieLamp on the main menus in the ST (475), Macintosh (605), IBM (615), Apple II (645), A2Pro (530), Unix (160), Mac Pro (480), Geoworks (1050), BBS (610), CE Software (1005) and the Mini/Mainframe RoundTables. GEnieLamp can is also distributed on CrossNet, Internet, America Online and many public and commercial BBS systems worldwide. We welcome and respond to all GE Mail. To leave comments, suggestions or just to say hi, you can contact us in the DigiPub RoundTable (M1395) or send GE Mail to John Peters at [GENIELAMP] on page 200. GEnieLamp pays for articles submitted and published with online GEnie credit time. Upload submissions in ASCII format to library #42 in the DigiPub RoundTable on page 1395 (M1395;3) or send it to our GE Mail address, GENIELAMP. U.S. MAIL """"""""" GEnieLamp Online Magazine Atten: John Peters 5102 Galley Rd. Suite 115/B Colorado Springs, CO 80915 >>> GEnieLamp STAFF <<< """"""""""""""""""""""" GEnieLamp o John Peters [GENIELAMP] Senior Editor """"""""" ATARI ST o John Gniewkowski [J.GNIEWKOWSK] Editor """""""" o Mel Motogawa [M.MOTOGAWA] ST Staff Writer o Terry Quinn [TQUINN] ST Staff Writer o Sheldon Winick [S.WINICK] ST Staff Writer o Richard Brown [R.BROWN30] ST Staff Writer o John Hoffman [JLHOFFMAN] ST Staff Writer o Al Fasoldt [A.FASOLDT] ST Staff Writer ATARI ST/TX2 o Cliff Allen [C.ALLEN17] Editor/TX2 """""""""""" ATARI [PR] o Fred Koch [F.KOCH] Editor/PD_Q """""""""" IBM o Robert M. Connors [R.CONNORS2] Editor """ o Peter Bogert [P.BOGERT1] IBM Staff Writer o Brad Biondo [B.BIONDO] IBM Staff Writer o Tippy Martinez [TIPPY.ONE] IBM Staff Writer o David Holmes [D.HOLMES14] IBM Staff Writer MACINTOSH o James Flanagan [JFLANAGAN] Editor """"""""" o Richard Vega [R.VEGA] Mac Co-Editor o Dan "Remo" Barter [D.BARTER] Mac Staff Writer o Tom Trinko [T.TRINKO] Mac Staff Writer o Bret Fledderjohn [FLEDDERJOHN] Mac Staff Writer o Bill Garrett [BILL.GARRETT] Mac Staff Writer MacPRO o James Flanagan [JFLANAGAN] Editor """""" o Erik C. Thauvin [MACSPECT] Supervising Editor o Chris Innanen [C.INNANEN] MacPRO Staff Writer o Paul Collins [P.COLLINS] MacPRO Staff Writer APPLE II o Darrel Raines [D.RAINES] Editor """""""" o Phil Shapiro [P.SHAPIRO1] A2 Co-Editor o Mel Fowler [MELSOFT] A2 Staff Writer A2Pro o Jim B. Couch [J.COUCH2] Editor """"" o Nate C. Trost [N.TROST] A2Pro Staff Writer INTERNET o Jim Lubin [JIM.LUBIN] GEnieLamp IBM """""""" ETC. o Jim Lubin [JIM.LUBIN] Add Aladdin """" o Scott Garrigus [S.GARRIGUS] Search-ME! o Bruce Faulkner [R.FAULKNER4] CrossNET Support o Mike White [M.WHITE25] Cowlumnist/Asst. SysOp GEnieLamp CONTRIBUTORS """""""""""""""""""""" o Steven Weyhrich [S.WEYHRICH] o Paul Varn [P.VARN] o Larry E. Elseman [L.ELSEMAN1] o Steve Litwin [S.LITWIN2] \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// Material published in this edition may be reprinted under the following terms only. All articles must remain unedited and include the issue number and author at the top of each article reprinted. Reprint permission granted, unless otherwise noted, to registered computer user groups and not for profit publications. Opinions present herein are those of the individual authors and does not necessarily reflect those of the publisher or staff of GEnieLamp. We reserve the right to edit all letters and copy. Include the following at the end or the beginning of every reprint: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// (c) Copyright 1993 T/TalkNET Online Publishing and GEnie. To join GEnie, set your modem to 2400 baud (or less) and half duplex (local echo). Have the modem dial 1-800-638-8369. When you get a CONNECT message, type HHH. At the U#= prompt, type: XTX99014,DIGIPUB and hit the [return] key. The system will then ask you for your information. Call (voice) 1-800-638-9636 for more information. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// [EOF] Leaving GEnie*Basic Services GEnie A2 Page 645 Apple II RoundTable 1. A2 Bulletin Board 2. A2 Real-Time Conference 3. A2 Software Libraries 4. About the A2 RoundTable (930330) 5. A2 RoundTable News (930504) 6. GEnie Manual for Apple II Users 7.[*]GEnieLamp Apple II Newsletter (930503) 8.[*]GEnieLamp Apple II Programmers Newsletter (930504) 9. Apple II Programmers RoundTable 10. Computer & Electronics NewsCenter