|||||| |||||| || || |||||| |||||| || || ||| || || || || ||| |||| |||||| || |||| Your || || || || ||| || || |||||| |||||| || || |||||| |||||| GEnieLamp A2Pro || |||||| || || |||||| RoundTable || || || ||| ||| || || || |||||| |||||||| |||||| RESOURCE! || || || || || || || ||||| || || || || || ~ WELCOME TO THE A2Pro GENIELAMP! ~ ~ NEW GENIE RATES INFORMATION & BREAKDOWN ~ ~ NOTES ON ORCA/PASCAL V2.0 ~ FORTRAN ON THE GS? ~ ~ NATE C. TROST HOLDS GRAPHICS AND SOUND RTC ~ WHO IS THIS LARRY GUY? ~ ~ LITTLE SMALLTALK ~ JIM MARICONDO JOINS A2PRO STAFF ~ ~ HOT NEWS ~ HOT MESSAGES ~ HOT VIEWS ~ ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ GEnie Lamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.1, Issue 05 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Publisher.................................GEnie Information Services Senior Editor..........................................John Peters Editor.................................................Jim Couch ~ GEnieLamp IBM ~ GEnieLamp ST ~ GEnieLamp [PR]/TX2 ~ GEnieLamp A2 ~ ~ GEnieLamp MacPRO ~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ ~ GEnieLamp Newswire ~ LiveWire Online ~ ~ Member Of The Digital Publishing Association ~ GE Mail: GENIELAMP Internet: GENIELAMP@GENIE.GEIS.COM ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ >>> WHAT'S HAPPENING IN THE APPLE A2Pro ROUNDTABLE? <<< """"""""""""""""""""""""""""""""""""""""""""""""""""""" ~ June 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. LOG OFF ................. [LOG] 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 Effective July 1, GEnie's non-prime time connect rate drops """"""""""" to $3.00 per hour, a reduction of 50% from the current rate. The monthly fee has been restructured, and moves from $4.95 to $8.95, for which up to four hours of non-prime time access to most GEnie services, such as software downloads, bulletin boards, GE Mail, an Internet gateway, multi-player games and chat lines, are allowed without charge. To sign up for GEnie service, call (with modem) 1-800-638-8369. Upon connection type HHH. Wait for the U#= prompt. Type: XTX99014,DIGIPUB and hit RETURN. The system will then prompt you for your information. Need more information? Call GEnie's customer service line (voice) at 1-800-638-9636. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ///////////////////////////////// GEnie_QWIK_QUOTE //// / "Yikes, I stay offline for 4 days and rates change, / / the topics go nuts, and I run out of coffee!" / /////////////////////////////////////// P-DIRECT //// [EOA] [FRM]////////////////////////////// FROM MY DESKTOP / ///////////////////////////////// Notes From The Editor """"""""""""""""""""" By John Peters [GENIELAMP] >>> TOP OF THE PAGE <<< """"""""""""""""""""""" TOP OF THE PAGE If you haven't heard, the flagship issues of GEnieLamp """"""""""""""" (GEnieLamp IBM, Mac, ST and A2) has split into two issues, released on the 1st and the the 15th of every month. The issue on the 1st will concentrate on message highlights, news and general information. The second issue will bring you the latest greatest programs from the libraries and recent press releases as well as other GEnie bits & pieces of information. WHAT, YOU MISSED THE MID-MONTH ISSUE? """"""""""""""""""""""""""""""""""""" [IN THE DIGIPUB RoundTable / M1395;3] 1358 SLP9305B.ASC GEnieLamp ST 1357 ILP9305B.ASC GEnieLamp IBM 1351 MLP9305B.ASC GEnieLamp Macintosh 1349 ALP9305B.ASC GEnieLamp A2 NOTE TO SCRIPT USERS For Aladdin readers we have included the new """""""""""""""""""" GET_THE_LAMP script in this issue of GEnieLamp IBM and ST. With this script Aladdin will log on to the GEnieLamp page, capture one (or more) of the issues and then either hang up or go on and do an autopass 1 or 2. See ADD ALADDIN [ADD] in this issue for details. For Macintosh readers a new version of GEnieLamp Module v3.01e has been released that will allow you to download any and all issues of GEnieLamp Mac/MacPRO and the other platforms -- up to 8 at a time -- from page 515 and the new DIGIPUB RT library at 1395. This module is available in the DigiPub Library. (File #1384 GENIELAMP MODULE 3.0.2) AND THE BIG NEWS IS... GENIE ANNOUNCES NEW PRICING: """""""""""""""""""""" SIMPLER, MORE AFFORDABLE AND, AS ALWAYS, THE BEST VALUE ONLINE Rockville, MD, May 24,1993 -- GEnie, GE's consumer online services, today announced a new pricing stucture that reduces hourly connect rates by 50%. Since its inception in 1985, GEnie has led the industry in value and its new pricing structure continues to reflect this. Effective July 1, GEnie's non-prime time connect rate drops to $3.00 per hour, a reduction of 50% from the current rate. The monthly fee has been restructured, and moves from $4.95 to $8.95, for which up to four hours of non-prime time access to most GEnie services, such as software downloads, bulletin boards, email, an Internet gateway, multi-player games and chat lines, are allowed without charge. There will, however, no longer be free unlimited non-prime time access to a core of basic services. According to GEnie General Manager, John Barber, "Consumers are demanding greater value in virtually all services they purchase. Computer online services are no exception. Several of our competitors have addressed this market trend earlier this year. On new pricing gives customers the best value for a wide array of services." GEnie subscribers have access to 150,000 software files for downloading, the largest selection of any online service in the industry. Further, GEnie offers unparalleled selection in world-class multi-player games, making it the online service of choice for avid players. "We used to offer only a small portion of services at our best price level. Now the customer can sample almost everything we have, from downloads to games, bulletin boards to an Internet gateway," said Barber. "The four hours included in the monthly subscription fee will cover all the monthly usage of more than 85% of our members and the low hourly connect rate beyond that is within reach of virtually everyone." GEnie in the online information service of GE Information Services (GEIS), a division of General Electric Co., USA. GEnie and GEIS are headquartered in Rockville, MD. An Open Letter to GEnie Subscribers From John Barber, General Manager of """"""""""""""""""""""""""""""""""" GEnie: On July 1st, a new pricing structure goes into effect at GEnie. It's a big day for us -- the result of months of planning, number-crunching, monitoring and maneuvering around the competition. And once again, we're looking forward to showing the online community that no one offers a better value than GEnie. We have to admit that over the last few months, it's been difficult to watch the other major online companies, one after another, proclaim that their new prices make them "the ultimate value." But rest assured, we do not intend to give up our leadership position as the best value online. GEnie has always offered its subscribers the best combination of sophisticated services, information, entertainment -- and affordability. And we've done it once again. Starting July 1st, GEnie will offer you the lowest hourly connect time of all the major online services; combined with a highly-competitive monthly subscription fee; and credit each month for up to four hours online. Effective July 1st, this is GEnie's new U.S. pricing structure: - Our monthly subscription fee becomes $8.95 a month. - Our standard hourly connect rate drops to $3.00 an hour. - And every month, you'll get a credit for up to 4 hours of standard $3.00 connect time. It's about that simple. For our Canadian and international PDN customers, a complete price chart follows at the end of this letter. It also contains the fine print regarding prime time, baud rates, etc., so it's worth taking some time to look over. SIMPLY BETTER You might notice one more important benefit to our plan. """"""""""""" We kept it simple. It's easy to understand, easy to live with. For starters, we've simplified the pricing. All the services formerly in GEnie*Basic and in GEnie Value are now treated equally, and available at the same low price -- $3.00 an hour in non-prime time. Multi-player games, downloading, computing bulletin boards, real-time conferences -- they're all just $3.00 an hour. (Half what you've been paying for GEnie Value services!) GEnie*Basic services, yes, they're now included in the $3/hour group, too. GE Mail -- it's $3.00 an hour, with no limit to the number of messages. Internet Mail is now $3 an hour, with no registration fee. And don't forget. You also get a credit for up to four hours of $3/hour time, every month. OK, NOW WHAT DOES IT MEAN TO MY MONTHLY BILL? Let's cut to the chase. """"""""""""""""""""""""""""""""""""""""""""" This is what everyone really wants to know. The answer is -- for the majority of our users, it means very little change at all, or a change for the better. When we started working on the price change, we studied the usage patterns of our active members to see who would be affected, and to what extent. We concluded that more than 85% would see about the same or lower bills at the end of the month. For the people who like to keep to a strict budget each month, this plan offers a lot of flexibility and a broader range of services than before. You have a set subscription fee. And for that fee, you get a credit for four hours of standard connect time to spend just about anywhere on GEnie. There's no asterisk-chasing to make sure you haven't strayed into Value services. Less worry of credit card shock. You can even explore areas of GEnie you thought you couldn't afford before. For the active users who spend significant hours a month on GEnie, especially in the former GEnie Value services, you should see a tremendous savings. The hourly rate is half what it was before -- and the best in the business! Now -- who will see prices rise under the new system? Generally speaking, anyone who's accustomed to making unusually heavy use of GEnie*Basic services will have to change his or her usage to keep monthly bills down. SO WHY CHANGE? Maybe you're wondering why we're bothering to change the """""""""""""" rate, if so few people are affected. After all, GEnie has had flat fee pricing for three years now. Well, we did it for a couple of reasons. With our new pricing, we can continue to stay competitive in the marketplace, and we can continue to improve our service to you. We found that, under the former pricing, a small number of our customers were making heavy demands on our service -- demands which began to outpace our infrastructure and capacity. The result was a level of performance that pleased no one. Not you. Not us. And yet, while other companies were eliminating or reducing their flat-rate access, we were holding to ours. Something had to change. And a price restructuring was the best solution for the majority of our users. Now, with the new rates, no one group of members is unduly favored; GEnie can continue to stay highly competitive among online companies; and we can continue to improve our service to you. OTHER IMPROVEMENTS IN THE WORKS There are other changes involved here """"""""""""""""""""""""""""""" besides our prices. "Staying competitive" means offering you better products, better service and better system performance. Right now, we have a number of improvements in the works. We're developing new front-end software packages for Windows and Macintosh systems -- look for more on that over the coming months. We're making technical improvements to enhance our performance and speed. We'll be adding new services soon, along with new bulletin boards and of course, we'll continue to update our software libraries with more valuable files. SOME THINGS NEVER CHANGE GEnie has always been the very best service for """""""""""""""""""""""" people who really enjoy being online, and who expect great products and the best value for the time they spend with us. That's not going to change. In fact, this new pricing structure should make it even easier for you to enjoy everything we have to offer. We're looking forward to seeing you online. Sincerely, John Barber General Manager, GEnie >>> G E n i e P r i c i n g <<< """"""""""""""""""""""""""""""""" (Effective July 1, 1993) +-----------------+----------------------+ GEnie Services | U.S. (U.S.$) [5]| CANADA (CAN $) | +-----------------------------+-----------------+----------------------| |Monthly Subscription Fee | $8.95/month | $10.95/month | +-----------------------------+-----------------+----------------------+ |Hours Credited Per Month [1] | Up to 4 hours | Up to 4 hours | +-----------------------------+-----------------+----------------------+ |Hourly Connect Charge | $3.00/hour | $4.00/hour | +-----------------------------+-----------------+----------------------+ |GEnie Premium Services |Prices vary per individual service. | | |These include: Charles Schwab Brokerage | | |Services (not available in Canada), Dow | | |Jones News/Retrieval (R), The Official | | |Airline Guides Electronic Edition (R) | | |Travel Service, QuikNews clipping | | |service, Telebase Investment | | |ANALY$T (SM),ARTIST (R) gateway. | +-----------------------------+----------------------------------------+ Additional Charges (where applicable) [4] +-----------------------------+----------------+-----------------------+ |Prime Time Surcharge [2] | $9.50/hour | $12.00/hour | +-----------------------------+----------------+-----------------------+ |9600 Baud Surcharge | $6.00/hour | $8.00/hour | +-----------------------------+----------------+-----------------------+ |Communications Surcharge: | | | | 800 Service [3] | $6.00/hour | -- | | Extended Network | $2.00/hour | -- | | SprintNet | $2.00/hour | -- | | Datapac | -- | $6.00/hour | +-----------------------------+----------------+-----------------------+ | [1] Credit for up to 4 hours of standard $3.00 U.S. ($4.00 CAN$) | | connect time. Hours credited apply to current month only. | | [2] Prime-time: 8 a.m. - 6 p.m. local time on weekdays only. The | | prime-time surcharge is in addition to $3/hour charge. Prime- | | time surcharge is waived for selected holidays. Residents of | | Hawaii, Alaska, Indiana, Arizona and Puerto Rico, please verify | | hours with GEnie Client Services. | | [3] "800" Service surcharge waived at 9600 baud. | | [4] State taxes will apply in some areas. | | [5] International PDN subscribers billed in U.S.$ at U.S. rates. | +----------------------------------------------------------------------+ Canadian Rates GEnie Services subscribers in Canada will also enjoy a """""""""""""" substantial price reduction. A new monthly rate of $10.95 CAN$ with 4 hours of free non-prime time access to most GEnie serives is being established by the Canadian distributor of GEnie Services. The hourly non-prime time connect rate in Canada is also being reduced to $4.00 CAN$ per hour. >>> THE BOTTOM LINE <<< """"""""""""""""""""""" ~ Information Services Comparison ~ WHAT ABOUT EVERYBODY ELSE? GEnie is now a better deal then ever. But """""""""""""""""""""""""" just how good of a deal is it? Let's take a By Jim Lubin quick look at how GEnie stacks up against the [J.LUBIN] other major online players. ASCII Text-based Services """"""""""""""""""""""""" o General Electric Network for Information Exchange (GEnie) o Compuserve Information Service (CIS) o National Videotex Network (NVN) o Delphi Graphic Front-end Required """"" MS-DOS or Macintosh Only """""""""""""""""""""""" o Prodigy o America Online (AOL) >>> Comparison of Non-Prime Usage <<< """"""""""""""""""""""""""""""""""""" +---------------------------------------------+ Service | $/month | Hrs incl.| 2400 baud | 9600 baud | |---------+----------+-----------+------------| GEnie | 8.95 | 4 | 3.00 | 9.00 | CIS #1 | 2.50 | 0 | 12.80 | 22.80 | CIS #2 | 8.95 | *[1] | 8.00 | 16.00 | NVN | 5.95 | *[2] | 5.00 | 5.00 | Delphi #1 | 10.00 | 4 | 4.00 | 4.00 | Delphi #2 | 20.00 | 20 | 1.80 | 1.80 | Prodigy #1 | 7.95 | 2 | 4.80[4] | 4.80[4] | Prodigy #2 | 14.95 | 2[3] | 4.80[4] | 4.80[4] | AOL | 9.95 | 5 | 3.50 | ? | +---------------------------------------------+ [1] - includes unlimited connect-time in 30+ basic services [2] - includes unlimited connect-time in 70+ basic services [3] - includes unlimited connect-time in 170+ core services and 2hrs of plus service [4] - 0 to 3hrs $4.80/3+ to 6hrs $4.20/6hrs+ $3.60 +---------------------------+ | 10hrs/month | 20hrs/month | |-------------+-------------| GEnie | 26.95 | 56.95 | CIS | 48.95[5] | 88.95[9] | NVN | 35.95[6] | 60.95[a] | Delphi | 20.00[7] | 20.00[b] | Prodigy | 29.35[8] | 43.75[c] | AOL | 27.45 | 62.45 | +---------------------------+ [5] - plan #2, 5hrs basic/5hrs extended service [6] - 5hrs basic/5hrs premium service [7] - plan #2 [8] - plan #2, 5hrs core/5hrs plus service [9] - plan #2, 10hrs basic/10hrs extended service [a] - 10hrs basic/10hrs premium service [b] - plan #2 [c] - plan #2, 10hrs core/10hrs plus service Additional Notes On Services """""""""""""""""""""""""""" GEnie - rates effective 7/1/93 CIS - rates current 5/26/93 NVN - rates current 5/26/93 Delphi - rates current 5/26/93 Prodigy - rates effective 7/1/93 AOL - rates current 5/26/93 [*][*][*] o GEnie & AOL include sending & receiving of Internet mail at no additional cost. o CIS basic does not include bulletin boards, software libraries or real-time conferances. o Prodigy does not offer software libraries or real-time conferances. o NVN basic does not include software libraries, real-time conferances or computer related bulletin boards. [*][*][*] On a closing note, are you are as confused about Internet as I am? Since we will all soon have access to Internet, it's now time to jump in with both feet and find out just what all the excitement is about. Watch for our special report on Internet in the July 1st issue of GEnieLamp. until next time... John Peters [GENIELAMP] [*][*][*] ___________________________ / /////////////////////// / \ TITLE : Don't Falcon's / /////////////////////// //_/ EAT Mice? / _______________ // / \ MEDIA : 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) /__/ |__|________// / \/_/ Jim Maricondo (A2PRO.DYAJIM) A2PRO WELCOMES NEW STAFF MEMBER There's a new name on the A2Pro door """"""""""""""""""""""""""""""" tonight! We're pleased to welcome Jim Maricondo (A2PRO.DYAJIM) as a new addition to our staff, helping to support those who support you here in A2Pro (the companies who have categories in the thirties, and the folks doing beta- testing in private, hidden categories). Many of you know Jim through the Twilight II screen saver and from America Online, where he continues his work as an assistant sysop in the Apple II Developers forum (ADV). Jim will be by to say "hi" in just a bit. :) --Matt (I speak for myself, not for Apple) (M.DEATHERAGE [A2Pro Leader], CAT1, TOP17, MSG:88/M530) [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 HELP WANTED o HOT TOPICS o MESSAGE SPOTLIGHT >>>BULLETIN BOARD HOT SPOTS <<< """"""""""""""""""""""""""""""" [*] CAT9, TOP7, MSG{63}.............Applesoft BASIC help please! [*] CAT10, TOP21, MSG{1}.....................GEM's 5th Anniversary [*] CAT14, TOP8, MSG{1}..........................Little Smalltalk [*] CAT15, TOP30, MSG{49}.........................Resource Manager [*] CAT22, TOP22, MSG{1}...............Weekly Graphics & Sound RTC [*] CAT34, TOP3, MSG{93}........................Ultra Programming [*] CAT35, TOP1, MSG{16}............Foundation General Discussion [*] CAT36, TOP3, MSG{34}.............Rumors, Wishes and Vaporware >>> A2PRO ODDS & ENDS <<< """"""""""""""""""""""""" RVERSION QUESTION Are we free to use rVersion's above ID 1? My control """"""""""""""""" panel has an rVersion it wants to put in prefs files it creates. Good idea? Bad idea? (In the prefs it would be 1, but in the control panel it would be something else.) After AddResource, the resource manager owns the handle. Am I right, therefore, that copying a resource (LoadResource from one file, AddResource to another) requires making a copy of the handle? jayk (J.KRELL1 [Jay], CAT15, TOP30, MSG:49/M530) AND ANSWER Apple IIgs Technical Note #76, "Miscellaneous Resource """""""""" Formats," page 3 of 8: "Files may include a version resource with ID=1 for display by programs such as the Finder. All rVersion resource IDs other than 1 are RESERVED for future definition." (Emphasis in the original.) Therefore, it's a bad idea. :) > After AddResource, the resource manager owns the handle. Am I right, > therefore, that copying a resource (LoadResource from one file, > AddResource to another) requires making a copy of the handle? Only if you don't detach the resource first, which is what most people do when copying the little puppies. --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT15, TOP30, MSG:50/M530) ANOTHER RESOURCE QUESTION I really am not sure of what category I """"""""""""""""""""""""" should have put these questions into, but since they are mainly about resources, I decided to put them here. First, I wanted to use different colors in a thermometer, so I added a rCtlColorTbl resource. When I compiled this in Rez it said that there was no template for this resource. I looked in Types.rez and sure enough there was no definition of rCtlColorTbl. I copied rWindColor, renamed it and removed the last data line (since rWindColor has five entries and I only wanted four). Is this what I should have done? Will this cause me any problems further down the road? Second, while doing the above, I noticed for the first time (okay, so I'm slow and unobservant) that some of these resource definitions have a comma after the last data entry and others do not. Since Rez has kicked out several of my attempts because there was a comma where there shouldn't have been, my questions are: is there some reason why some are different? is there some way of telling (short of looking at the definition) which will need a comma and which will forbid it? Just looking for information on the last because I'm curious. David Pierce (D.PIERCE8, CAT15, TOP30, MSG:54/M530) AND ANSWER Basically, you can use a comma after the last field only when """""""""" that field is part of a list or array (eg, rMenuBar menus, rMenu items, rControlList controls, etc). In general, the best practice is not to include the last comma. There's no definition for an rCtlColorTbl because the structure is radically different for different controls. As long as the structure you created has the correct number of bytes you'll be fine. And in fact, I usually use the "data" statement instead of creating a type/resource pair when doing control color tables. Bryan (SOFTDISK.INC [Bryan Zak], CAT15, TOP30, MSG:55/M530) >>> WHAT'S NEW? <<< """"""""""""""""""" GEM 5TH ANNIVERSARY SPECIAL ANNOUNCED! May 1, 1993 will mark the 5th """""""""""""""""""""""""""""""""""""" anniversary of the release of GEnie Master v1.0. GEnie Master v1.0 was developed, tested and released within one month of initial conception -- at a time when many on GEnie were stating that a GEnie-specific offline message manager was an impossibility. The release of GEM proved these statements wrong, as GEnie Master became the _FIRST_ offline message manager for GEnie! (This became yet _another_ item on the long list of "1sts" for the Apple II series of computers!) In celebration of GEM's birthday, I am offering a special promotion during the month of May. I am offering a package that will allow you to see the progression that GEM has made during these past 5 years. The promotional "package" will consist of an 800k diskette, cram- packed FULL of the following: 1. A copy of the _original_ GEM .bqy file that constituted the first, full release of GEM v1.0 (includes SOURCE code!). 2. The SOURCE code to the current GEM release, version 4.21! 3. And, as much SOURCE code for the interim versions as I can fit onto the disk! This package will benefit all of the following people: 1. UltraMacros "programmers" will enjoy perusing the UltraMacros "source" code to increase their knowledge of UM programming, as well as _using_ many of the sub-routines in their own programs. You will be able to see and use many of the UM "tools" (subroutines and ampersand routines) that were written during GEM's development. 2. BASIC programmers will enjoy the MD-Basic based "source" code to the GEM installation programs, and a couple of neat "tricks" and techniques that they contain. 3. Talk-is-Cheap, Point-to-Point, and ProTERM "script programmers" will benefit from the extensive "source" code that is included. 4. GEM "users" should enjoy viewing the "history" of GEnie Master, and how it has progressed over the last five years. Since this is copyrighted material, I will require that each purchaser sign a license agreement. The agreement will detail how the material may be used by the purchaser...in a nutshell, the purchaser will not be able to build an entire application, etc, based on a large portion of the source code, but will be able to use individual sub-routines in their own programs, as long as proper credit is given. Orders will only be accepted during the month of May, and all "packages" will be shipped on June 1, 1993. If you wish to participate in this promotion, you must act now! Send email to Tom-Hoover for a copy of the required license agreement, and complete details of this offering (including pricing). ...Tom (TOM-HOOVER [Rom 1:16-17], CAT10, TOP21, MSG:1/M530) IIGS LITTLE SMALLTALK LANGUAGE NOW AVAILABLE I decided to create this """""""""""""""""""""""""""""""""""""""""""" topic for discussing Little Smalltalk on the IIGS. There isn't a lot of documentation for it, except for the book which is 2 versions out of date! Since I have a copy of the book (and it still took me _hours_ to adapt some of the examples to version 3), I thought that this topic would be the best way to help each other explore Little Smalltalk and create new class definitions for it. Questions are welcome! Allan (A.BELYEA [Wintermute], CAT14, TOP8, MSG:1/M530) [*][*][*] GRAPHICS AND SOUND TOPIC OPENED Groovy, Cat 22, Topic 22. Nice and easy """"""""""""""""""""""""""""""" to remember. :) This topic is for discussion about the weekly Graphics and Sound RTC, which happens every Thursday at 9:30 Eastern in the A2Pro RTC (option 2 on the menu). Since memories can be short, examples can't be uploaded in the RTC, some things are too long to try and type out 'live', butter is better, and since we need a topic for general graphics and sound chitchat...this topic exists. Feel free to jump in.... Nate A2Pro Lamp Writer and G/S guy (N.TROST [65Nate16], CAT22, TOP22, MSG:1/M530) >>> PROGRAMMER'S CORNER <<< """"""""""""""""""""""""""" BASIC HELP NEEDED Hi! I came here for help before, let me try again. I'm """"""""""""""""" using a IIGS, system 6.0. I'm programming in Applesoft. when I launch from finder, and am done with my program, what can I do to get back to finder (on my ramdisk)? Some of the basic programs I've downloaded do it; so it can be done. Also, is there a way to send output to my printer (imagewriter II) AND my screen simultaneously? I've seen this done too. Thanks. Kris (K.PEABODY1, CAT7, TOP4, MSG:97/M530) BASIC ANSWER PART ONE PRINT CHR$(4);"BYE" will get you back to Finder. """"""""""""""""""""" As for your second question, I'll let someone with more experience than I answer! :) Bryan (SOFTDISK.INC [Bryan Zak], CAT7, TOP4, MSG:98/M530) BASIC ANSWER PART TWO Here you go! Get into BASIC, set your screen to 80 """"""""""""""""""""" columns (type "PR#3" or Escape-8), enter this program, turn your printer on and run that puppy! 110 FOR I = 768 TO 788 120 READ A: POKE I,A 130 NEXT I 140 POKE 48688,0: POKE 48689,3 150 PRINT "You must be in 80 column mode!" 160 LIST 170 PRINT CHR$ (4);"pr#a$c307" 180 END 190 DATA 32,240,253,72,173,123,5,141,21,3,104,32,0,193,173,21,3, 141,123,5,96 Lines 110-130 enter a small machine language program into memory (the program is stored in the DATA statement in line 190.) Line 140 tells BASIC to use our machine language program for printing and displaying. Line 150 reminds you to be in 80 column mode. (I can make this work in both 40 and 80 column mode, now that I think about it. I was just lazy!) Line 160 gives you something to look at/print. Line 170 reconnects the default output routines in BASIC. (If you use a "PR#3" instead of a "PR#A$C307", you will get the same effect AND your screen will be cleared.) Line 180 just tells BASIC it's all done. If you are doing real simple stuff, this will work just fine. If you doing a lot of fancy machine language add-ons to your Applesoft program, then this routine will probably need some slight modifications to prevent memory conflicts. - Jim (A2Pro Beta-Test and Company Support) (A2PRO.JEA [Jim Adams], CAT7, TOP4, MSG:103/M530) BASIC ANSWER PART TWO, A TIP > 140 POKE 48688,0: POKE 48689,3 """""""""""""""""""""""""""" You can do this more compatibly by saying PRINT CHR$(4)"PR#A$0300". Note also that $C307 is the normal output routine in Apple's 80-column firmware, and it _might_ not work with third-party 80-column cards. The good news is that there are very, very few of these still out there, and they're mostly in Apple II+ machines. --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT7, TOP4, MSG:104/M530) CAN APPLESOFT RECOGNIZE IMBEDDED TABS? Is there any way to make Applesoft """""""""""""""""""""""""""""""""""""" recognize an imbedded tab when its reading an ASCII file from a disk? -Socher (SOCHER, CAT9, TOP7, MSG:63/M530) NOT WITH THE STANDARD INPUT STATEMENT Socher, I don't believe there's a """"""""""""""""""""""""""""""""""""" way to make the standard INPUT statement do this, but custom things like ampersand commands can do so, or you can do it yourself with GET (one character at a time) instead of INPUT. --Matt (I speak for myself, not for Apple) (M.DEATHERAGE, CAT9, TOP7, MSG:64/M530) THE GET STATEMENT SHOULD DO THE TRICK For your purposes (and since speed """"""""""""""""""""""""""""""""""""" probably isn't the most important issue) I would say that processing would be better suited with the GET statement. I say this for a couple of reasons. A string can only be 256 characters in length. So, if your database record has more data than 256 characters, you lose some of the information. Also, it is easier to start a string with a ", then read some data until you get a tab character, quickly replace that with a "," sequence and your out- put file is completely re-written the way you want it. The whole program shouldn't take more than 10 or 15 lines of code. That is if you don't want to put in routines for selecting files, etc. :) -Eric (KITCHEN.SINK, CAT9, TOP7, MSG:69/M530) ULTRA 4 DESKTOP INDEX READING Does anyone know how to read the DeskTop """"""""""""""""""""""""""""" index into $1 to $12 (with or without an OA-Q)? I don't like using screen or .menuitem. Surely there must be a better way to do this ------- .Desklist ? Labels .Read.DeskTop.Index \SA-A Read Desktop Index // Must be a better way Start A:! Thanks for any help. (B.CADIEUX [ TEXAS II ], CAT34, TOP3, MSG:93/M530) TRY, TRY... This one's almost as bad. Can I do this without the screen? """"""""""" start b:! Thanks for any help. (B.CADIEUX [ TEXAS II ], CAT34, TOP3, MSG:94/M530) ...TRY AGAIN! Never mind, I got it in the save files list. """"""""""""" start c:3! Thanks! Sometimes it just helps to talk things over.. ;-) (B.CADIEUX [ TEXAS II ], CAT34, TOP3, MSG:95/M530) MORE ULTRA 4 QUESTIONS Thanks Bob. I do appreciate the help. Even though """""""""""""""""""""" there doesn't seem to be much going on right now, I do know there are a lot of macros being written. Now......... can someone please explain to me the logic of this ?? b7 ba = 5/23/93 (or, 183 186 ) b4 ba = 5/20/93 (or, 180 186 ) a6 ba = 5/06/93 (or, 166 186 ) 78 b9 = 11/24/92 (or, 120 185 ) How are these dates to values arrived at (and vice versa)? Thanks for any help (e-mail is fine). -Bev (B.CADIEUX [ TEXAS II ], CAT34, TOP3, MSG:98/M530) AND ANSWERS AppleWorks stores the date in ProDOS format as a two byte """"""""""" integer. It must be "unpacked" to decode it. Run sa-A then cursor through the file list and run sa-H to get the date in unpacked and ProDOS format for each file. start A:5< rtn>2< rtn sa-H >!// go to list files H:! sa-N shows how to pack a date. N:!// pack it up and display result (S.BEVILLE [Steve], CAT34, TOP3, MSG:99/M530) >>> HELP WANTED <<< """"""""""""""""""" SNES, NES OR IIGS PROGRAMMERS NEEDED There's a company in Las Vegas """""""""""""""""""""""""""""""""""" looking for SNES, NES, or IIgs programmers. They need people who are good at 65816 assembly language. You'd be doing SNES products if you got the job. Chris Yates at Westwood Studios is the man to call. 702-368-4850. If you call and are good, tell him you heard about the job from me (I always like to keep on the good side of people I might need in the future :). Jay Jennings (PUNKWARE, CAT13, TOP8, MSG:55/M530) >>> HOT TOPICS <<< """""""""""""""""" DO YOU WANT A IIGS FORTRAN COMPILER/CONVERTER? It looks like I'm going to """""""""""""""""""""""""""""""""""""""""""""" get the chance to publish another new language for the Apple IIGS. I'd like to get your opinions and comments about it. The language is a FORTRAN to C converter which could serve in either of two modes. As a converter, you would be able to convert FORTRAN 77 programs to C, then optimize the C or move it to any computer that has a C compiler. As a compiler, it would work as a slow FORTRAN compiler, but the intermediate step would be invisible to you. What follows is not a commitment; it's just my best guess. The product would consist of a manual (about 100 pages) that would describe how to use the program as a converter and as a compiler. There would be two disks; the compiler and libraries, and a samples disk. The compiler supports FORTRAN 77. It works just like any other ORCA language, including supporting PRIZM, the source-level debugger, and toolbox access. In fact, the only real difference is that the compile step is slow. You will need ORCA/C 2.0, a hard disk, and 1.75M of memory to use the compiler. So here's the questions: 1. Are you interested in FORTRAN on the GS? If so, does this compiler sound like a product you would buy? 2. What do you like about what I described? 3. What do you dislike about what I described? Are your dislikes severe enough that you would have bought a "true" compiler for FORTRAN 77, but would not buy this one? 4. Our retail price for ORCA/Pascal and ORCA/C is $150, and most people pay $80-$90 from mail order houses. What do you think is a fair price for this product? 5. To a large degree, the low number of sales I would expect for this program are driving our plans. I need to make money to do the product, and even though there isn't as much work involved for me as for other languages, I have to get the money back with fewer sales. So, seriously, how much would you be _willing_ to pay for this program, assuming FORTRAN was a language you were interested in? Mike Westerfield (BYTEWORKS, CAT36, TOP3, MSG:34/M530) IT WOULD BE NICE FOR PORTING CODE =I= would like to see it happen merely """"""""""""""""""""""""""""""""" for the ability it will give us to port some of the literally gigabytes of Fortran source code out there. -Tim Tobin (A2.TIM, CAT36, TOP3, MSG:36/M530) OTHERS AGREE Yes. It definitely is worth more in my book as a converter """""""""""" than a compiler. No one I know uses Fortran anymore except college students who are required to in 100 level classes. However, there is a lot of source code floating around in Fortran. (JUST.DAVE [m530 daily!], CAT36, TOP3, MSG:37/M530) SOME WOULD RATHER SEE EXISTING PRODUCTS IMPROVED Personally, I'd rather """""""""""""""""""""""""""""""""""""""""""""""" see C bugs get fixed faster then all these new languages. I don't mind paying upgrade fees as long as it pays for the extra time that went into smoothing out the product. The way things work now, bugs (riding along with new features) get added almost as fast as they get squashed back out. The rampant Orca bashing on Internet is not just the idle time of disgruntled college students -- it is the frustrated screams of people who trusted Orca/C to let them do their schoolwork at home, and they lost time accommodating the compiler because of bugs. I was one of these people during the C 1.0-1.2 era, and even with 1.3 I did not trust the optimizer because it meant instant death for my program. As a result I learned a very paranoid programming style, which I have only recently broken out of because I am exposed to industrial strength compilers daily at work. With C 2.0, things have improved A LOT but the product still cannot be considered Done. As for FORTRAN, it is a truly evil language that has long outlasted its usefulness to society :) Like COBOL, the only thing it really has going for it is the sheer mountains of existing programs written in it. I agree with Tim that if it were capable of porting this code (what about VMS Fortran extensions? DOD extensions?) it would be a valuable thing for college IIgs owners to have. -Todd Whitesel (A2PRO.TODDPW [growf?], CAT36, TOP3, MSG:38/M530) AND SOME AREN'T INTERESTED AT ALL! After taking two classes in FORTRAN """""""""""""""""""""""""""""""""" programming, I'm not interested. (PROPTOSIS, CAT36, TOP3, MSG:39/M530) MARKET WOULD PROBABLY BE LIMITED Another thought on the Fortran thing... """""""""""""""""""""""""""""""" Your market is probably going to be limited to college students... and them, only because it's still a required language at many schools. (JUST.DAVE [m530 daily!], CAT36, TOP3, MSG:41/M530) FORTRAN, IT AIN'T DEAD YET As a personal note, I've been hearing that """""""""""""""""""""""""" assembly/FORTRAN/COBOL were dead for years. Quite aside from any issues of whether we need or will get FORTRAN on the GS, anyone who thinks FORTRAN is dead hasn't spent much time around a large variety of scientists and engineers lately. They finally seem to be breaking out of the rut of believing that FORTRAN is the _only_ language, but it's still far from dead. :) That's not a comment on whether it _should_ be dead, mind you, just a counter-observation. :) Todd, C bug fixes have priority over any prospective FORTRAN product. Beyond that, all I can truthfully say is that I put as much time into testing and bug fixes as I can afford to. As for C++, if someone wants to come to me with a C++ compiler or preprocessor that I can legally sell, go for it. I didn't pick Modula-2 or FORTRAN in preference to C++, these languages were brought to me by outside authors who, for various reasons, want to see these languages available. I would be far more interested in C++ myself, and I know there are more GS programmers who want C++ than the next several languages combined. I just haven't had time to do one... yet. I would still welcome comments about the usefullness, viability, and pricing of the FORTRAN converter/compiler. -Mike Westerfield (BYTEWORKS, CAT36, TOP3, MSG:45/M530) FORTRAN IS STILL WIDELY USED IN THE REAL WORLD I program on a VAX all day """""""""""""""""""""""""""""""""""""""""""""" long. The language I work with: Cobol. There are a huge number of systems out there that were originally developed in Cobol or Fortran that still serve their function and are therefore maintained (our complete package of over 500 separate programs consists of over 600,000 lines of code, all of it Cobol). However, this kind of package will never see its way to a micro - the size of the files and the use don't allow them to be ported to a micro. My boss, who is our "system programmer", works mostly in Fortran, with small, very specialized, Assembler subroutines. Some of the programs I used in collage while studying engineering (Fortran programs) might be applied on a micro - I wish I had a GS back when I was in school to put them on. Fortran and Cobol may be "dead" languages from the standpoint of being on the cutting edge of technology, but they are still widely used in the "real" world. If I had a choice on the VAX, I'd have learned C a long time ago (we don't even have the compiler for the VAX), or at least would use Pascal (also don't have the compiler). C is considered too hard to maintain for the financial package I work on, and the original source that we began with in 1979 was in Cobol ported from an IBM 370 - to rewrite it would have taken too long in the beginning - and now would require too much "non-productive" time to convert. Jim Brandt (J.BRANDT1, CAT36, TOP3, MSG:47/M530) >>> MESSAGE SPOTLIGHT <<< """"""""""""""""""""""""" Lately there have been a number of discussions regarding "object oriented programming". Fortunately for those of us who have had a little trouble understanding exactly what this phrase means Mike Westerfield offered this fine post: Category 36, Topic 10 Message 53 Wed Apr 21, 1993 BYTEWORKS at 17:42 EDT "What is object oriented programming?" Wow. That's a big one. Object oriented programming is a new way of thinking about how you write and maintain programs. There are two major, key concepts, with a host of not so obvious consequences and correlaries. The first key concept is turning programs inside out. First, rather than thinking about a program as a set of subroutines that manipulate data, you think of it in terms of a set of data that you can do things to. You design the data -- say, a record to hold one element of information in a database -- then you add the subroutines that work on the data as part of the record. They aren't called subroutines or procedures or functions, anymore, though, they're called methods. And you don't "call a subroutine," you "send a message to an object." It's the same thing, really, but the new terms help you shift gears, so you think about your program in a different way. The next key concept is reusability, which has lots of implications. Let's say you are setting up your database, and need to record the name, address, and products some one owns. The name and products fields would be the same throughout your database, so those go in your original object. Countries present a number of problems, though. Ideally, you want one version for the U.S, where you need a street address, city, state and Zip code, and another for, say, France, where you don't need a state, and still another for Canada, where the postal code has both letters and numbers, as opposed to just numbers. And, when you get a new guy from Brazil, you want to take care of any differences without changing the entire database structure. Object oriented programming handles this very well. It lets you reuse the original object. Your new object "inherits" all of the old fields and methods. You can add new ones, and you can create modified methods or use the old ones, if they will still work. A modified method can even send a message to the old method to do anything that hasn't changed. This makes it easy (or easier) to keep a program up to date, and it also makes it a lot easier to reuse pieces of old programs -- sort of like libraries gone wild. You've noticed that I haven't mentioned toolbox programming at all. It's not that object oriented programming is bad for writing toolbox programs -- just the opposite, in fact -- but it's so good at that one job that a lot of folks have started to associate the two, thinking that toolbox programming implies object oriented programming (it doesn't) or that object oriented programming is only good for writing toolbox programs (not!). Still, for one of the more successful examples, I'd suggest MacApp. It's a collection of objects and example that tame the toolbox, to some degree. -Mike Westerfield [EOA] [RAM]/////////////////////////////// RAMBLINGS / ////////////////////////////////// Ramblings from a 'Wannabe' Programmer """"""""""""""""""""""""""""""""""""" By Larry E. Elseman [L.ELSEMAN >>> AUTOBIOGRAPHY OF A 'WANNABE' PROGRAMMER <<< """"""""""""""""""""""""""""""""""""""""""""""" Ever since my uncle, who worked for Motorola, showed me a prototype for a 'Pong' type game (this was before 'Pong') in the late 60'es or early 70's, complete with plastic tv overlays, I have been hooked on video games. To this day I think Space Invaders is the definitive video game. It was simple to play, but it got you so involved and was so exciting, with the heart-pounding music, that you didn't realize how many quarters you were pumping into the machine. Definitely a classic. My days of digging for quarters came to an end when I bought an Intellivision. I found myself spending the wee hours of the morning trying to eclipse my high scores in BurgerTime and Q-bert. But when I caught myself humming the background music to Bump'n Jump at work I realized that I was beginning to live my life as a sprite in a video game. In fact, I thought it would be the ultimate fantasy to compete inside a video game with other sprites, ala 'Tron', only this was before 'Tron' was a reality (as I recall, but then my memory seems to be fading :) ). Too bad for me that I didn't write a book or send my idea to Disney :(. Well, before my wife had a chance to pack her bags, I bought a computer keyboard attachment for the Intellivision and discovered programming, and returned to reality. Intellivision BASIC did not teach me structured programming, but it did teach me how much fun programming was. Soon I had outgrown the 2k limitation and longed for a more powerful platform to expand my programming horizons. Enter the Apple IIc. My wife surprised me for Christmas in 1985 by giving me a IIc (after I spent most of the year whining about wanting a IIc). I have been in computer heaven ever since. I quickly bought all the AppleSoft/ProDos programming manuals and started subscribing to Nibble magazine. I typed in every program I could get my hands on, whether I needed the program or would ever use the program, I typed it in just to have something to run on my computer and to learn AppleSoft. After I had the programs up and running, I would experiment and change them to suit my whims or my needs. I began to write small programs on my own, and wrote a few for friends and a user group. In 1988 I sold the IIc and bought a GS. And that brings us to the present. I am enrolled in the Computer Programming program at Des Moines Area Community College in Ankeny, IA, where I have been spending my weeknights for the last 6 semesters. At the current rate of 2 classes a semester, I will be half way to my degree when this semester is completed. My only regret is that the program teaches mainframe business programming and I would prefer to learn microcomputer programming, but it is not offered locally... sigh. Currently I am_trying to learn Orca Pascal and Orca M, but I find that I don't have the time necessary to learn them. Seems that I just learn something worthwhile and then forget it by the time I get a chance to get on the computer and learn something new. I look with wonder and amazement (and jealousy) at programmers who've learned to program the GS. I admire their skill, perseverance and I share their love for the GS. I hope that someday I will become as skilled at this craft we call programming, as they obviously are. A close friend of mine, Dan Cross, has helped inspire me to become a programmer with the following anonymous quotation: "The future belongs to those who believe in the beauty of their dreams." [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 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. >>> NEWS FROM THE INDEPENDENT DEVELOPERS <<< """""""""""""""""""""""""""""""""""""""""""" T2 MODULE SAMPLES COMING SOON! Full sample source and documentation for """""""""""""""""""""""""""""" T2 modules are coming soon! We're still rather busy getting out all the copies of 1.1. We're also contemplating a few minor changes to the specifications we will be releasing. And we want to release full sample module source (showing how to use sound, resources, and setup, among other things) in both C and assembly. So all this is gonna take a bit while longer, but it should be comprehensive enough to settle most of everyone's questions.. :-) Thanks, Jim Maricondo DigiSoft Innovations (DYA [DigiSoft:Jim], CAT29, TOP4, MSG:3/M530) SOME HOPE FOR METAL-GS It looks as if there may be some hope for a """""""""""""""""""""" Metal-GS after all. Read on... Tc Wilson has graciously given me his blessing for allowing FV Pro (my in- development Macintosh product) to compile and execute Metal code. In other words, I'm writing Metal-Mac (or McMetal, as we used to call it). So what does this have to do with Metal-GS? It means that there's a chance I can port FV Pro to the GS since it's written in C and is designed to be semi-portable (I do have plans for a PC version, so my code is going to be written with that in mind). The result of FV Pro for the IIgs would mean that we'd have a fully-functional -multiline- 16-bit Metal platform. Now, don't take this as a definite "Yes, I'm going to write Metal-GS." There are two major obstacles: (1). Time. Unless someone out there has a brilliant plan for slowing the Earth's rate of rotation on its axis, I only have 24 hours a day to work with. Since I have to sleep for at least eight of those, and work nine of them, that doesn't leave a lot of time to work on FV Pro and Metal-GS, let alone continuing to develop FV 5.0 (an essential part of FV Pro) and Metal-8 2.0. (2). Money. It costs me at least $200 a month just to work on Metal-8 and operate this support BBS. That doesn't include the thousands of dollars invested in programming tools and manuals (GS and Mac). In this respect FV Pro gets ultimate priority since it is a definite commercial product and have high hopes of making a decent profit from it. No matter what I do with Metal-GS (freeware, shareware, or commercial), it stands little chance of even breaking even. There just isn't a GS market anymore. So, now is the time to influence my decisions. I am willing to let others help create Metal-GS (and some help with Metal-8, ala the transfer packages, wouldn't hurt either!), so if you are a qualified programmer, let me know. I basically need to know if it's worth my time. Now, Tc tried this twice before, and both times there was little or no response. I hear a considerable amount Metal-GS wishes, but when it's time to commit, there's no response. Unlike Tc I am -not- accepting any kind of advance payments : not only do I not know how much Metal-GS would cost or what its state would be (shareware, etc.), but I'm not even 100% sure I can deliver the product. And so it goes... (J.THOMPSON1, CAT29, TOP27, MSG:14/M530) METAL EXTENSIONS TOPIC OPENS To start of this new topic, I'd like to ask """""""""""""""""""""""""""" for your input on designing a set of extensions to the Metal language for manipulation of the local console user interface. My reason for needing these extensions stems from FV Pro and (possibly) Metal GS. These will be primarily desktop-based programs, and I'd like to be able to have BBS utilities in the menu bar (edit user, validate new users, etc.) without forcing the desktop shell to be FV-specific. The idea - I- came up with was threefold: 1. Create a set of standard Metal language extensions to allow creation and manipulation of dialog boxes and dialog items. 2. Allow Metal programs to add menus and/or menu items to the menu bar and assign those menus to Metal subroutines. Thus selecting "Edit User" would trigger a special EditUser subroutine that would create and manage the user editing dialog box. 3. Finally, to maintain compatibility with what could end up as -three- Metal implementations, each with different capabilities, I'd like to create some compiler directives to provide conditional compilation based on the type of platform. I already am planning some conditional compilation in Metal-8 2.0, so this could be easily extended with C-style "ifdef" directives and having the compilers predefine constants like CPU_8BIT, CPU_GS, CPU_MAC, etc. Comments, suggestions, flames? (J.THOMPSON1, CAT29, TOP28, MSG:1/M530) GREAT IDEA, AND HERE ARE SOME MORE IDEAS Hey, I like this idea... It """""""""""""""""""""""""""""""""""""""" gives me another one I had thought about before, but not really given much thought to. With the emergence of desktop based telecom programs (Spectrum, and one of these days when I get GTerm done, and even Mac and Windows programs) what if we were to create a new BBS/telecom standard (like ANSI, or PTSE) that would create and manipulate dialog boxes, menus, etc. on the local terminal? The telecom program would have no built-in routines to do anything with the menus, boxes, etc, except to create them, and report back to the host what the user did with them. With the current FV setup, this might be difficult to implement without creating a totally separate program to run under this emulation, but that might be able to be changed... the menus are coded in FV. The way Prime works (user defined menus) would be easy to add this into. With a "menu interpreter" that has menu items and commands defined in it, you would simply run a different menu interpreter on the same menu in each emulation. For ANSI, or TTY, you would print the menu as text (maybe in color if it were ANSI) and let the user press a key. For DTE (DeskTop Emulation?) you would add each item to a menu, or possibly a dialog with a mass of buttons. If they want to use a fullscreen editor, and they're in DTE, throw a textedit box at them (it would have to send a "still working" code every once in a while to keep the BBS from timing out), then upload the result when they hit the "Done" button... This is just throwing ideas from the top of my head, and who knows if it's even rational, :) but what do you think? _ |_)ave |\/|iller (A2Pro Promo Guy) (JUST.DAVE [m530 daily!], CAT29, TOP28, MSG:2/M530) >>> NEWS FROM PROCYON INC. <<< """""""""""""""""""""""""""""" GNO 1.1 IN BETA In case anyone's been wondering, YES we're still here and """"""""""""""" YES GNO 1.1 is now in beta-testing. Once I add a few more features and fix a few more bugs, it should be ready to gno, er, go. Hold on to yer hats, this thing is _sweet_ (if I do say so myself :-) -Jawaid (PROCYON.INC, CAT30, TOP5, MSG:11/M530) >>> NEWS FROM SOFTDISK PUBLISHING <<< """"""""""""""""""""""""""""""""""""" SOFTDISK GUIDELINES AVAILABLE Just a reminder that we have Submitter """"""""""""""""""""""""""""" Guidelines as well as Programming Guidelines for both Softdisk and Softdisk G-S. If you plan on submitting something to Softdisk Publishing you really should check these out. For now, you can download them from the A2Pro library (search on uploads by SOFTDISK.INC), or you can leave your name and address here (or in e-mail, but be sure to specify which platform since we get e-mail for PCs, Macs, etc) and I'll send the latest revisions of the guidelines to you. It's easier than you think to make an extra five or six hundred bucks folks! - Bryan Pietrzak Softdisk Publishing (SOFTDISK.INC [Bryan Zak], CAT31, TOP6, MSG:2/M530) GSLIB CONFIG FILE MANAGER EXPLORED OK folks, I didn't think too many """""""""""""""""""""""""""""""""" people would appreciate a 400 line message so I decided that I'll post GSLib "managers" one or two at a time. Tonight I'm doing the Config File Manager and Console Manager: Config File Manager =================== MakeConfigPath(@fileName):pathNameH InitConfigFile(@fileName,ftype,atype/4,reserved/4) OpenConfigFile() CloseConfigFile() LoadConfig(rType,rID/4,@buffer,numBytes/4) SaveConfig(rType,rID/4,@data,numBytes/4) o MakeConfigPath(@fileName):pathNameH takes a pointer to a Class 1 GS/OS string representing a file name (for example, MyProg.settings) and returns a handle containing the full pathname to the file. Network-savvy. Useful for DAs, Inits, Control Panels, etc that need to deal with the @ prefix in an intelligent way. Not very useful for applications, they can just use 9:filename. o InitConfigFile(@fileName,ftype,atype/4,reserved/4) This routine tells the Config File Manager about your config file. It does NOT create the file at this time if it doesn't exist, that is done in OpenConfigFile (or in LoadConfig). o OpenConfigFile() Opens the config file and makes it the current resource file. The search depth is also set to 1. This routine =MUST= be balanced with a CloseConfigFile call. If the file does not exist, this routine creates it, using the file and auxtype specified in the InitConfigFile routine. o CloseConfigFile() Closes the config file and restores the Resource Manager state. This routine should be called even if OpenConfigFile returns an error. o LoadConfig(rType,rID/4,@buffer,numBytes/4) Loads data from the specified resource directly into a buffer. This routine does all the config file handling directly (in other words, it calls OpenConfigFile and CloseConfigFile). An example of this is the loading of a prefs resource: LoadConfig(1,1,@prefs,SizeOf(prefsRec)); o SaveConfig(rType,rID/4,@data,numBytes/4) Similar to LoadConfig except that it writes the specified data. Any existing resource is removed. Proposed enhancements: --------------------- GetConfigResource(rType,rID/4):handle AddConfigResource(resH,resAttr,rType,rID/4) The Config File Manager routines have a lot of history behind them. Almost three years worth! Back in 1990 I was contracted to write some NDAs for a company and almost all of them had preferences. Rather than have 10 separate files, I decided they'd all share one file, but each would simply use different resources. Back then, I copied and pasted the code from DA to DA, but about 18 months ago I was working on an NDA for Softdisk (Minstrel) and decided it was time to "abstractify" these routines and put them into my library. And thus the above routines. Anything I've written in the past 18 months that has a config file uses these routines. Bryan (SOFTDISK.INC [Bryan Zak], CAT31, TOP9, MSG:51/M530) GSLIB CONSOLE MANAGER EXPLORED """""""""""""""""""""""""""""" Console Manager =============== ConsoleStartUp() ConsoleShutDown() CWriteCString(@theString) CWriteString(@theString) CWriteText(@theText,textlen/4) o ConsoleStartUp() Opens the console driver. Uses OSGetConsoleName to find out which device needs to be opened. Should be called before any other Console Manager routine. MUST be balance by a ConsoleShutDown call. o ConsoleShutDown() Closes the Console driver. o CWriteCString(@theString) writes the specified cString to the console driver o CWriteString(@theString) writes the specified pString to the console driver o CWriteText(@theText,textlen/4) writes the specified text block to the console driver Proposed enhancements: --------------------- So many that I can't list them all here. Basically to fold most of my CODD (Console Driver Demo) stuff in here. In others routines for drawing boxes, doing windows, etc. The Console Manager routines were written when I updated my calculator CDA to version 2.0. Previous versions had used the text tools and were annoying me with the 2 seconds it took to draw the calculator on the screen. So, version 2.0 uses the console driver if running under GS/OS and now all the screen updates are more or less instantaneous. Bryan (SOFTDISK.INC [Bryan Zak], CAT31, TOP9, MSG:52/M530) >>> NEWS FROM GS+ MAGAZINE <<< """""""""""""""""""""""""""""" MISCLIB LIST ROUTINES DOCUMENTED Well, I noticed that someone had asked a """""""""""""""""""""""""""""""" List Manager question elsewhere in A2Pro, so I thought that it'd be a good idea to give the basic stuff behind the list section of the Miscellaneous Library. So, here's the excerpt from the documentation : I've always been perplexed as to why the List Manager has never included routines to add and subtract members from a list. The List Manager requires the application to manage its own memRec structures. Since I use the List Manager fairly frequently, I found myself writing the same code over and over again. I finally decided to put all this code in a generic form. Using the list routines in MiscLib is fairly easy, but there is one major restriction: the list of memRec structures must be maintained by handle. If you want to use pointer memRec structures, you cannot use the MiscLib routines. Note that this restriction only applies to the memRec list structure. Your memPtr field can actually be a pointer if you wish. AddMemRec The AddMemRec routine adds a new memRec to a list of memRecs. """"""""" AddMemRec takes four parameters: the item to insert after, the current memRec list handle, a pointer to the memRec to insert, and the size of a memRec entry in bytes. AddMemRec will resize the memRec list, take the memRec entry, and insert it in the memRec list in the appropriate position. To insert a memRec at the beginning of the list, pass $0000 for the item to insert after. To insert a memRec at the end of the list, pass $FFFF for the item to insert after. You must always pass a valid handle for the memRec list handle parameter, even if its size is zero (no items in the list). If you are using a list control, you must make the NewList2 Toolbx call in order for the changes to actually be recognized by the control. FindMemRecPtr The FindMemRecPtr routine returns a pointer to the memRec """"""""""""" entry within a list of memRecs. You pass the item number you want a pointer to, the handle to a emRec list, and the size of a memRec entry in bytes, and FindMemRecPtr does the rest of the work. GetMemRecSize The GetMemRecSize routine returns the number of items in a """"""""""""" memRec list. It simply divides the size of the memRec list handle by the size of a single memRec. NextMemRec The NextMemRec routine performs the same function as the """""""""" NextMember2 Toolbox call except that instead of passing a handle to a list control, you pass a handle to a list of memRecs and the size of a memRec entry in bytes. DeleteMemRec The DeleteMemRec routine removes a memRec from a list of """""""""""" memRecs. If you remove the last entry from a list of memRecs, the size of the handle to the memRec list will become zero (no items in the list). If you are using a list control, you must make the NewList2 Toolbox call in order for the changes to actually be recognized by the control. ResetMemRec The ResetMemRec routine performs the same function as the """"""""""" ResetMember2 Toolbox call except that instead of passing a handle to a list control, you pass a handle to a list of memRecs and the size of a memRec entry in bytes. Also, ResetMemRec differs from ResetMember2 in that you pass a starting point to start searching for a selected memRec just like NextMemRec. If you are using a list control, you must make the NewList2 Toolbox call in order for the changes to actually be recognized by the control. SelectMemRec The SelectMemRec routine performs the same function as the """""""""""" SelectMember2 Toolbox call except that instead of passing a handle to a list control, you pass a handle to a list of memRecs and the size of a memRec entry in bytes. If you are using a list control, you must make the NewList2 Toolbox call in order for the changes to actually be recognized by the control. AddSelectMemRec The AddSelectMemRec routine performs a similar function """"""""""""""" as the SelectMember2 Toolbox call except that any previously selected memRecs will remain selected. This is useful if you need to select multiple items in a list control which can contain multiple selections. This routine differs from SelectMember2 in that instead of passing a handle to a list control, you pass a handle to a list of memRecs and the size of a memRec entry in bytes. If you are using a list control, you must make the NewList2 Toolbox call in order for the changes to actually be recognized by the control. SortMemRec The SortMemRec routine performs the same function as the """""""""" SortList Toolbox call except that instead of passing a handle to a list control, you pass a handle to a list of memRecs and the size of a memRec entry in bytes. SortMemRec follows the same rules as the SortList Toolbox call for System v6.0 in that you can pass $00000000 and $00000001 for compare procedure pointers. The only restriction is that you must be sorting pascal strings. If you want to compare C strings, you must write your own custom compare procedure. If you are using a list control, you must make the NewList2 Toolbox call in order for the changes to actually be recognized by the control. NoCaseCompare In order to make the SortMemRec procedure work properly """"""""""""" with a $00000001 compare procedure pointer, I had to write a case insensitive compare routine. This routine will return with both the carry flag set or clear and the stack word set or clear. Note that there is no stack frame diagram for this call since it's calling procedure is defined in the Apple IIGS Toolbox Reference, Volume 1. This call is not in the C or Pascal interface files since it is not directly accessible from high level languages. StandardCompare In order to make the SortMemRec procedure work properly """"""""""""""" with a $00000000 compare procedure pointer, I had to write a case sensitive compare routine. This routine will return with both the carry flag set or clear and the stack word set or clear. Note that there is no stack frame diagram for this call since it's calling procedure is defined in the Apple IIGS Toolbox Reference, Volume 1. This call is not in the C or Pascal interface files since it is not directly accessible from high level languages. FindRealPtr Both the NoCaseCompare and StandardCompare routines call """"""""""" FindRealPtr to turn the memPtr field of a memRec into an actual pointer to a string. FindRealPtr examines the reference bits of the memFlag byte and, based on the flag bits, loads a rPString resource (if the bits say the field is a resource ID), dereferences the handle (if the bits say the field is a handle), and finally returns the pointer to the actual member name string. You should never have to call this routine unless you're writing a custom sort procedure and want a nice way to get access to pascal strings based on the memFlag byte. (JWANKERL [Joe], CAT33, TOP7, MSG:14/M530) >>> NEWS FROM LUNAR PRODUCTIONS <<< """"""""""""""""""""""""""""""""""" FOUNDATION WORK CONTINUES I want to let everyone know that we are """"""""""""""""""""""""" currently working on Foundation version 1.0.3, including a native rIcon and rBundle editor, as well as a couple of bug fixes and a few minor feature additions to the shell. This is the ideal time for any of you to add any comments or suggestions on Foundation. We plan on 1.0.3 being the last 1.0 series release and will not return to the shell until after we complete the massive window, control, menu editors. No suggestion is too bizarre - no request to strange ... just hop right in and let us know what you'd like included before it's too late. After all, the worse that can happen is we'll say "no" :) Marc Wolfgram Lunar Productions (M.WOLFGRAM2 [Lunar Host], CAT35, TOP1, MSG:16/M530) WHAT IS ALREADY INCLUDED? Well, let's start with the basics. You've got """"""""""""""""""""""""" a native rIcon and rBundle editor coming -- what else? We wouldn't want to ask for things you've already decided to include? --Matt (I speak for myself, not for Apple) (M.DEATHERAGE [A2Pro Leader], CAT35, TOP1, MSG:17/M530) EDITORS INCLUDED WITH VERSION 1.0.3: Good question, Matt. The """""""""""""""""""""""""""""""""""" Icon/Bundle editors will be included in version 1.0.3. After that we will be providing the editors for: Windows (rWindParam1 resources), Window Color (rWindColor), Control Lists (rControlList), all 14 Control types (rControlTemplate) and all Menu things (rMenuBar, rMenu, rMenuItem and rItemStruct). The above will NOT be in 1.0.3 as the Window/Control/Menu suite will be about as large as the shell itself :) The kinds of things we're looking for right now are minor interface annoyances, suggestions for improvements in the shell itself, maybe a reproducable bug or two. For example, one user suggested multiple selects in the lists for things like deleting more than one resource at a time. We'll be looking into how feasable this is for 1.0.3, but it's a good idea and will end up in Foundation sometime if not now. We're also tracking down a silly list bug at the moment that didn't show up in any of the beta testing: Copy a resource that is the only one of it's type to the clipboard, then paste it back into the file with Paste OVER existing items. The way the shell handles this is to delete the original item, causing the item window to close, the it adds the resource back in from the clipboard. The next time you open the item window the list is pretty well filled with junk, although the data and resources are quite fine. Closing and re-opening the window cures the aberrant behavior. Go figure? That's top on our list of 1.0.3 shell things. The rest are enhancements. If you've got any ideas for the shell itself, let us know. Marc Wolfgram Lunar Productions (M.WOLFGRAM2 [Lunar Host], CAT35, TOP1, MSG:18/M530) NATIVE EDITORS FOR 'SIMPLE' STRINGS WOULD BE NICE I'd like to see native """"""""""""""""""""""""""""""""""""""""""""""""" editors for the "simple" resource types in 1.0.3: strings (all types) AlertStrings ErrorStrings rTwoRects rComment etc Some of these are simply variations of the rPString editor and should be a snap for you to spit out (easy for me to say eh? ;-) Also, when you guys do the native control editor, keep in mind custom controls -- it'd be nice if Foundation didn't choke on them like Genesys (ever double-click on a rectangle control by accident :) Bryan (SOFTDISK.INC [Bryan Zak], CAT35, TOP1, MSG:19/M530) CURRENT PRIORITIES FOR FOUNDATION Bryan: I agree that the rPRsting """"""""""""""""""""""""""""""""" editor could be used as a base for the other simpler resource formats ... that's why we included it in the dev. kit (hint - hint :). Here is the priority of items for Foundation: Foundation shell (1.0 series is pretty well complete) Provide Hex/ASCII editing (solid gold here) Provide editing via scripted templates (80% now, 100% will end 1.0 series) Native editors: PString sample (done) Icon/Bundle (will be in 1.0.3) Window/Control (will be in 1.1) Menu (will be in 1.1) Other editors (dependent on third party effort TBD). We will provide editors for Alert and Error strings IF nobody else jumps into the fray. I'd feel pretty miserable if nobody used the developer docs :) Generally, with the exception of the LETextForTextBox2 and the two alert types, ScriptEdit does a great job with the other string types. BTW, Jeff Paquette (who has recently departed the GS world) had started a LEText editor for Foundation... if anyone else is interested in doing any stuff along these lines, let us know! Marc Wolfgram Lunar Productions (M.WOLFGRAM2 [Lunar Host], CAT35, TOP1, MSG:22/M530) MORE SUGGESTIONS I sincerely hope full script editors will be functional """""""""""""""" for controls, menus, etc. I looked at a beta version in which these items were functional (though buggy as a result of changing pCounts and the like) and I was really disappointed when I found them missing in 1.0.2. I really can't wait for the WYSIWYG editors... Is it going to take a LONG time to complete them? Foundation is really a great _foundation_ for resource editing/creation on the GS. I appreciate the work you are putting into a great machine. Rick Adams (R.ADAMS48, CAT35, TOP1, MSG:25/M530) WHAT'S HAPPENING AT LUNAR Hi all... sorry it took me this long to post """"""""""""""""""""""""" this! Here's what's been happening at Lunar in the last month or so: APPLE EXPO WEST: We were there of course! It was great meeting those of """""""""""""""" you that stopped by our booth... although the crowds didn't appear to be beating a path to Brooks Hall, we did have a good time. At the show we officially released two new products, Edit-16 version 2.0, and NameOBJ version 1.0. EDIT-16 is Bill Tudor's most excellent programmer's editor, which is a """"""" direct plug-n-play replacement for the APW and ORCA editors. Lunar has exclusive publishing rights for Edit-16 now, and you can expect to see active support for this wonderful editor. 2.0 works with APW, ORCA, GNO and Merlin, and it also runs just fine from the Finder. Included is an all new manual and a host of new features and enhancements. Edit-16 v2.0 - $49.95 1.x Upgrade - $25.00 + original disk. NAMEOBJ is a neat utility written by Andy Wells. It post-processes """"""" object files created by compilers (ORCA, APW, TML) and assemblers (ORCA, APW, Merlin, QuickASM) to add imbedded function names for debugging tools. If you're using a C or Pascal compiler and spend more than two minutes in GSBug(tm) "walking" your code, you should think about getting NameOBJ. If you want to know more about imbedded names, check out Apple IIGS Tech Note #103 - Inline Procedure Name Format, available in the GEnie A2Pro Library. NameOBJ come complete with Dave Lyons' Nifty List desk accessory (share- ware fee paid!) and Apple's GSBug, and it includes an in-depth manual for all three utilities. Requires APW, ORCA, GNO or Merlin. NameOBJ v1.0 - $39.95 (including GSBug and Nifty List) (GSBug is a trademark of Apple Computer, Inc.) FOUNDATION 1.0.3 is in the works... Mark Collins is currently wrapping """""""""""""""" up an all new Icon and Bundle resource editor for it. Stay tuned for more information. If you already own Foundation, make sure that you get your registration forms sent in because 1.0.3 is a free upgrade! Foundation v1.0.2 - $79.95 Marc Wolfgram Lunar Productions 1808 Michael Drive Waukesha, WI 53186 414/549-9261 MasterCard and Visa accepted (M.WOLFGRAM2 [Lunar Host], CAT35, TOP4, MSG:35/M530) >>> NEWS FROM THE BYTE WORKS <<< """""""""""""""""""""""""""""""" HOW TO REACH THE BYTEWORKS You can reach us through a variety of """""""""""""""""""""""""" channels: Here: BYTEWORKS America Online: use keyword ByteWorks Phone: (505) 898-8183, M-F, 8AM-5PM mountain (with an irregular lunch hour) Mail: Byte Works, Inc. 4700 Irving Blvd. N.W. Suite 207 Albuquerque, N.M. 87114 With apologies, I do not return customer service calls. If you have a question or problem, I leave it up to you to call me. Mike Westerfield (BYTEWORKS, CAT36, TOP31, MSG:7/M530) ORCA AND THE MANAGER COMPATIBILITY Tim, my decisions regarding PRIZM were """""""""""""""""""""""""""""""""" based on customer comments. I'll take yours into account. As for The Manager, I have not ever, nor do I expect to, spend any time worrying about whether ORCA will work with it or not. It won't. ORCA is a text program, even when you run PRIZM. ORCA also runs as many as three programs at a time itself, and isn't likely to work with other programs trying to run multiple programs, even if it were a desktop program. To even stand a _slight_ chance of running with The Manager, the entire development environment would have to be replaced with one that was entirely desktop based, and I don't expect to have the time to work on any changes of that nature. Mike Westerfield (BYTEWORKS, CAT36, TOP19, MSG:54/M530) PRIZM COMPATIBILITY QUESTION Mike - I just ordered the 2.0 upgrade and it """""""""""""""""""""""""""" sounds great. I can't wait! I'm curious about one thing. Will the older version of the C compiler work with the new version of prizm? I haven't upgraded my C compiler yet (I'm waiting for a check from Softdisk first). Thanks! - Dave Hallwas (GEnie: D.Hallwas, America Online: Xevad) (D.HALLWAS [Dave], CAT36, TOP10, MSG:62/M530) AND ANSWER Dave, you can use C 1.3 with PRIZM 2.0, but you cannot just """""""""" install Pascal 2.0 and C 1.3 together. The problem is that the 1.x compilers use a different I/O mechanism from the 2.x compilers. As a result, you must use 2.x libraries with the 2.x compilers, and 1.x libraries with the 1.x compilers. In a nutshell, that means you'll have to keep two separate library folders, one for C and one for Pascal, and set the correct library folder before you start to use the language. That's not outrageously hard, but it might just be easier to keep two separate systems until you upgrade. Mike Westerfield (BYTEWORKS, CAT36, TOP10, MSG:64/M530) IS THERE A NEW SET OF ORCA/PASCAL TUTORIALS? I noticed that you're """""""""""""""""""""""""""""""""""""""""""" bundling ORCA Pascal 2.0 with the "Learn To Program..." & "Toolbox Programming" tutorials in your new ads. Are these the same old tutorials or have they been updated (or do they need to be) for Pascal 2.0? Cheers... Bill (BILL.LYNN [Lost in '60s], CAT36, TOP22, MSG:4/M530) NO NEW TUTORIALS NEEDED FOR PASCAL 2.0 They are the "same old tutorials." """""""""""""""""""""""""""""""""""""" And no, they don;t need to be updated for Pascal 2.0. There are new things I _could_ do, but there is nothing new that _needs_ to be done. Mike Westerfield (BYTEWORKS, CAT36, TOP22, MSG:5/M530) [EOA] [RTC]/////////////////////////////// RTC WATCH / ///////////////////////////////// A2Pro Real Time Conference News """""""""""""""""""""""""""""" By Nate C. Trost _______ __________ ________ [N.TROST] /_______| /_________/ /________/ /__/__/__/ /__/ /__/ /________/ EAL /__/ IME /__/ ONFERENCES in A2Pro!! /__/ /__| /__/ /__/_____ /__/ /__/ /__/ |________/ SCHEDULE: Date Time Event -------------- ----- ---------------------------------------------------- Every Sunday 20:30 Weekly Programmers' RTC. Talk about programming, or just chat. Every Thursday 21:30 ** NEW!! ** NEW !! ** NEW !! ** NEW !! ** NEW !! ** Graphics and Sound Programming RTC, hosted by GEnie Lamp A2Pro writer Nate.Trost (N.TROST)! >>> WELCOME TO THE RTC WATCH <<< """""""""""""""""""""""""""""""" These excerpts are just some of the conversation that takes place during A2Pro RTCs! You can join other Apple II programmers, professional and hobbyist, in regular A2Pro RTCs every Sunday night at 8:30 PM Eastern. NEW! A2Pro Graphics and Sound RTC, every Thursday night at 9:30 PM Eastern. ON PHANTASM BLANKERS """""""""""""""""""" <[] Tim pi [] T.BUCHHEIM> Anyone around here ever write a Phantasm effect? <[Beethoven] J.SALZ> ---- There's a file in the library here on that, Tim. It's called MONDRIAN.EF.BXY (file #3255). ON DISK PROMPT DIALOGS """""""""""""""""""""" <[Bill] W.TUDOR> ----------- Suppose you write a system extension, and your request procedure is the only litle piece of code remaining in memory, and it loads code resources as it needs them... How can I ensure I will get the "Please insert the disk.." message? Do I have to set system prefs before the LoadResource call each time and then restore it? <[A2Pro Leader] M.DEATHERAGE> Either that or leave the resource file open. ON READING THE GS BEAM POSITION """"""""""""""""""""""""""""""" <[Nate] N.TROST> waitloop sep #$20 lda >$e0c02f asl lda >$e0c02e rol (you now have the SHR line the beam is on) ON THE LOCATION OF THE SHR SCREEN """"""""""""""""""""""""""""""""" <[A2Pro Leader] M.DEATHERAGE> Jim, this is how it basically works: If shadowing is on, a new port has a ptrToPixImage of $012000. If shadowing is off, it normally has a ptrToPixImage of $E12000. If in either case it's _not_ that value, I would strongly suspect CloseView is on. That includes returning $012000 if shadowing is not on. LISTS AND LINEEDITS WITH STANDARD FILE """""""""""""""""""""""""""""""""""""" <[Bill] W.TUDOR> ----------- Can you add a list to a Std File dialog box? <[Jim] DYA> ---------------- Or how about another line edit? <[A2Pro Leader] M.DEATHERAGE> I'm not sure. You can add another Line Edit item in 6.0.1, but a separate list would be a different thing. <[Bill] W.TUDOR> ----------- I figured it was a hard one to answer. I have been trying to do it with no luck so far.....The best I could do was to get the control to draw, but I can't get it to become the target. <[A2Pro Leader] M.DEATHERAGE> You can't get anything to be the target in 6.0 because Standard File assumes that it has the only target. That's why you can't add a Line Edit item -- it never gets any keys. If you've got it done except for that, then you should be set with 6.0.1. <[Hi Mom!] MURPH> ---------- However, the Dialog Manager still thinks it owns all of the controls in a dialog, and it knows a lot about the control records. <[Bill] W.TUDOR> ----------- Murph, I assume I should be saving/restoring control refCon fields per tech note #34 (I think it was 34). Hey, maybe it will work under 6.0.1 :-) <[Hi Mom!] MURPH> ---------- Bill yep, you should do that, but there's the problem that the Dialog Manager may not like extended controls (it knows about the original control record structure but not the extended ones). USING 'OLD' HYPERSTUDIO XCMDS """"""""""""""""""""""""""""" <[Airship] J.GRAHAM29> I need an example of how to use SS.XMCD from HS v3.1. <[Dean] A2.DEAN> ----- Uh-oh. Okay, that one's come up before. To use an XCMD, you select MiniScript. But first, you have to make sure you have a copy of the NBA in the same folder as the stack you're running. Have you done that? <[Airship] J.GRAHAM29> The NBA, or the old .XCMD? <[Dean] A2.DEAN> ----- The XCMD. It doesn't matter where the NBA is. <[Airship] J.GRAHAM29> Yep, the stack, XCMD, Song, and Tool69 are all in the same folder. <[Dean] A2.DEAN> ----- Tool 69 has to be in your *:SYSTEM:TOOLS folder. <[Airship] J.GRAHAM29> It's there too, plus 2 or 3 other places. <[Dean] A2.DEAN> ----- Okay, when you use MiniScript, the appropriate syntax should be SSMITHPLAY SONGNAME. It depends on what you've got the XCMD named, of course. The important thing is that the XCMD MUST, absolutely MUST, be named "XCMD.WHATEVER". Then you invoke it in MiniScript by typing "WHATEVER". ON $C2 PAINTWORKS ANIMATION FILES """"""""""""""""""""""""""""""""" <[Nate] N.TROST> ----------- Matt: Are PaintWorks animations an official file format? <[Mike] BYTEWORKS> --------- Paintworks is listed in the file type notes. <[A2Pro Leader] M.DEATHERAGE> $C2 won't be reassigned for anything else as far as I'm concerned, but I have no official file format. If it's published in "About File Type Notes" it's official. We don't publish file formats that don't come from the requesters. Sorry. Apple has not published a $C2 FTN and will not unless Activision submits the format and asks for it. (NOTE: Example $C2 PaintWorks Animation playback source with a description of the file format can be found in the A2Pro library, file #3306, C2VIEW.BXY) [EOA] [A2U]////////////////////////////// A2U CAMPUS GREEN / ///////////////////////////////// Your GEnieLamp A2Pro guide to A2U """"""""""""""""""""""""""""""""" By Nate C. Trost [N.TROST] >>> INTRODUCTION TO RESOURCES CONCLUDES <<< """"""""""""""""""""""""""""""""""""""""""" Marc Wolfgram has finished the final classes of the Introduction to Resources class. The classes are now available in the A2Pro library. This six part class covers resources on the Apple IIGS. The course starts by introducing the concept of resources and explains what they are and how to use them. Even non-programmers will find this course valuable since resources provide an easy way to customize popular Apple IIGS applications. LESSON 1: FILE #3173 2: #3186 3: #3203 4: #3211 5: #3277 6: #3278 >>> APPLE IIGS GRAPHICS AND SOUND RTC <<< """"""""""""""""""""""""""""""""""""""""" A BB topic for discussion about the Apple IIGS Graphics and Sound RTC has been created in A2U CAT 22, TOPic 22. This topic is the place for further discussion of anything that comes up during a G&S RTC, and is also a place to put your suggestions, ideas, and comments about the RTC. If you are interested in graphics and sound programming, check this topic out! The Graphics and Sound RTC is held every Thursday in the A2Pro RTC at 9:30 Eastern. >>> PREVIOUS A2U COURSE LIST: PART II OF II <<< """"""""""""""""""""""""""""""""""""""""""""""" This month we wrap up our list of previous A2U courses! ULTRA 4 TO THE MAX! (Will Nelken) This recent course covers the new """"""""""""""""""""""""""""""""" enhancements and features added to Ultra 4.0, the ultimate TimeOut: Ultramacros upgrade from JEM Software. If you have Ultra 4.0 and are looking for more information on how to harness its power, or if you have UltraMacros and are wondering what Ultra 4.0 is all about, this is the course for you! All of the Ultra 4 lessons are available in one file: #3107 The archived messages from the Ultra 4 To the Max topic in the A2Pro BB are available in file #3207. ULTRAMACROS (Will Nelken) This course covers the TimeOut: UltraMacros """"""""""""""""""""""""" package. TimeOut: UltraMacros adds advanced macro power to AppleWorks. If you have UltraMacros and/or Ultra 4.0 and are looking for a course to teach you how to unleash the power of these programs, check out this course! All of the lessons in the UltraMacros course are available in one file: #2716 APPLE IIGS ASSEMBLY LANGUAGE (Steve Gunn) This is an course for those """"""""""""""""""""""""""""""""""""""""" wishing to learn how to program the Apple IIGS in assembly language. If you've always wanted to learn how to program your IIGS in assembly, but need a tutorial, download this course! COURSE INTRODUCTION: File #2403 LESSON 1: FILE #2404 LESSON 2: #2512 LESSON 3: #2531 LESSON 4: #2553 LESSON 5: #2632 LESSON 6: #2680 LESSON 7: #2688 LESSON 8: #2692 LESSON 9: #2701 LESSON 10: #2711 LESSON 11: #2713 LESSON 12: #2715 [EOA] [BIT]////////////////////////////// THE BIT BONANZA / ///////////////////////////////// HOT Files You Can Download """""""""""""""""""""""""" By Nate C. Trost [N.TROST] >>> PROGRAMMING EXAMPLES/SOURCE <<< """"""""""""""""""""""""""""""""""" File #3306: C2VIEW.BXY (GS) Uploaded on 5/16/93 by N.TROST About 4K (d/l time approx. 30 seconds @ 2400 baud) This archive includes the source to the C2View $C2 (Paintworks) animation playback routine. Source is in Merlin 16+ assembler format. Commented with reference to $C2 file format included. This routine is free for use in original or modified form in any program. File #3294: W6SRC22.BXY (ALL) Uploaded on 5/10/93 by M.DEATHERAGE About 105K (d/l time approx. 10 minutes @ 2400 baud) Source code for Warp Six BBS public domain version 2.2. Requires Merlin 16 or Merlin 16+ to assemble. Includes XModem send/receive, YModem send, and an excellent IIgs modem port driver written in assembly language that can keep up with XModem 4K uploads at 19200 bps with LAPM and hardware handshaking. Written by Jim Ferr, for the public domain. The Warp Six BBS package is available in the A2 Libraries on page 645 option 3 on the menu. File #3289: GIFVIEW.SRC.BXY (GS) Uploaded on 5/8/93 by A2.LUNATIC About 50K (d/l time approx. 5 minutes @ 2400 baud) ORCA/M 65815 assembly source to the latest version of GIFview. Includes routines for LZW decompression adjusted for GIF, color scaling, and implementing a pseudo-256 color mode. The GIFView executable program is also included. File #3268: VCRPLUS.BXY (ALL) Uploaded on 4/28/93 by W.BRADFORD6 About 8K (d/l time approx. 1 minute @ 2400 baud) This archive contains a conversion of a BASIC program that converts VCR+ codes. The original code, uploaded as file #3250, was written in Commodore BASIC. This archive contains Applesoft BASIC code. >>> A2/A2Pro SPECIAL FILES <<< """""""""""""""""""""""""""""" File #3283: MAY.IND.TXT.BXY (ALL) Uploaded on 5/8/93 by A2PRO.GREG About 11K (d/l time approx. 1 minute @ 2400 baud) May 1993 Index of Topics in the A2Pro Bulletin Board. Topic list is in Text format. File #3282: MAY.IND.ADB.BXY (ALL) Uploaded on 5/8/93 by A2PRO.GREG About 11K (d/l time approx. 1 minute @ 2400 baud) May 1993 Index of Topics in the A2Pro Bulletin Board. Topic list is in AppleWorks Database format. >>> A2University <<< """""""""""""""""""" File #3305: A2U.REZ.MSG.BXY (GS) Uploaded on 5/15/93 by A2PRO.GREG About 19K (d/l time approx. 2 minutes @ 2400 baud) This is the archive of A2Pro BB Messages from the A2 University Course "Introduction to Resources" by Marc Wolfgram. See Campus Green in this issue of GEnieLamp A2Pro for a list of all the "Introduction to Resources" lessons available in the A2Pro library. File #3278: A2URESINTR6.BXY (GS) Uploaded on 5/6/93 by A2PRO.STEVE About 8K (d/l time approx. 1 minute @ 2400 baud) Lesson #5 of the A2 University 'Introduction to Resources' by Marc Wolfgram. This is part five of a six part course on what resources are and how to use them on your Apple IIGS. File #3277: A2URESINTR5.BXY (GS) Uploaded on 5/6/93 by A2PRO.STEVE About 8K (d/l time approx. 1 minute @ 2400 baud) Lesson #6 of the A2 University 'Introduction to Resources' by Marc Wolfgram. This is part five of a six part course on what resources are and how to use them on your Apple IIGS. >>> UTILITIES <<< """"""""""""""""" File #3272: TOOLBOX.BXY (GS) Uploaded on 5/2/93 by L.PIILONEN About 27K (d/l time approx. 3 minutes @ 2400 baud) File #3272 contains a complete set of toolbox macros, including all of the new calls in the Programmer's Reference for System 6.0. These macros allow you to call the IIgs toolbox from assembly language just like you would from any high-level language such as C or Pascal, including all input and output arguments, all legal 65816 addressing modes for arguments, automatic stack manipulation, and error handling. File #3273: TOOLBOXMAN.BXY (GS) Uploaded on 5/2/93 by L.PIILONEN About 120K (d/l time approx. 12 minutes @ 2400 baud) File #3273 contains a set of 34 AppleWorks WP files describing the enhanced toolbox macros for IIgs assembly language programming. The first file, MAN.INTRO, is a general descriptionof the package. The remaining files are tool call descriptions for the 33 tool sets in the macro package. The macro package and documentation are freeware. File #3270: LOTTO.BXY (ALL) Uploaded on 5/1/93 by I.LEV About 11K (d/l time approx. 1 minute @ 2400 baud) This archive contains a lotto program written in basic that can generate and check lotto numbers on a weekly or daily basis. The program has been tested on a IIgs and IIe. Works best when compiled using the Beagle Compiler. File #3269: TEXTCMDS.BXY (ALL) Uploaded on 4/30/93 by B.WELLS5 About 23K (d/l time approx. 2 minutes 30 seconds @ 2400 baud) TEXTCMDS will add commands to AppleSoft BASIC for Loading, Saving, & Printing Text screens from ProDOS. Low-Res pictures can also be loaded and saved! An editor for designing your screens is included, along with fully commented source code in Merlin format. Freeware. File #3267: SUPERBASIC.BXY (ALL) Uploaded on 4/27/93 by T.ZUCHOWSKI About 235K (d/l time approx. 24 minutes @ 2400 baud) Matt Wachowski's Shareware Applesoft extension set. Super BASIC is a set of extensions to Applesoft basic. These extensions allow Applesoft to handle super high resolution graphics animation and digitized sound. Version 4.0 makes the following improvements over version 3.2: 1) Full GS/OS compatibility / Super BASIC now uses mem manager 2) Master disk can be run in a subdirectory 3) small bug fixes 4) a sound extension is now included File #3265: WAVELAB0.1.BXY (GS) Uploaded on 4/26/93 by D.TRIBBY About 95K (d/l time approx. 10 minutes @ 2400 baud) waveLAB is a companion program to Apple's synthLAB. Version 0.1 lets you: - create MIDI Synth waveforms - load individual waveforms from MIDI Synth wave data (".wav") files - create MIDI Synth instruments (similar to Apple's synthLAB program) - load individual instruments from MIDI Synth instrument (".bnk") files - plot graphs of an instrument's waveforms or envelopes - save the instruments and waveforms you have created Included in the archive are descriptions of the contents of MIDI Synth instrument and wave data files. File #3260: COPYCAT.BXY (GS) Uploaded on 4/18/93 by PROCYON.INC About 22K (d/l time approx. 2 minutes @ 2400 baud) Copycat is a program that copies I/O back and forth between two GNO TTYs. In this sense it can be used as a little term program. The author uses it to connect a vt100 terminal to his modem (though his IIGS) so he can be online his UNIX system and use his IIGS at the same time. If you've copied the GNOCON termcap entry to your UNIX system, you can use copycat as a terminal program. File #3258: CD.BXY (GS) Uploaded on 4/17/93 by A2PRO.TODDPW About 10K (d/l time approx. 1 minute @ 2400 baud) Possibly the last ORCA cd command you will ever need. Features: - fully restartable, automatically uses prefix 8 if 0 is null - arbitrary ".." support (or else it's a bug you should email me) - support for HOME shell variable (for when you type "cd" by itself) - uses raw command line ("cd :get real:museum o' code:ziptalk" is legal) - small (7K) and fast ORCA/C 2.0 Source and executable file included with archive. >>> A2Pro BB Archives <<< """"""""""""""""""""""""" File #3288: ULTR4.QUES1.BXY (ALL) Uploaded on 5/8/93 by A2PRO.GREG About 20K (d/l time approx. 2 minutes @ 2400 baud) This file is a collection of messages from the A2Pro Bulletin Board, Cat 34 Topic 2, 'Ultra 4 General Questions '. File #3287: TEXTEDIT.04.BXY (GS) Uploaded on 5/8/93 by A2PRO.GREG About 35K (d/l time approx. 3 minutes 30 seconds @ 2400 baud) This file is a collection of messages from the A2Pro Bulletin Board, Cat 15 Topic 34, ' Text Edit Tool Set '. File #3286: WINDOW.MGR3.BXY (GS) Uploaded on 5/8/93 by A2PRO.GREG About 47K (d/l time approx. 5 minutes @ 2400 baud) This file is a collection of messages from the A2Pro Bulletin Board, Cat 15 Topic 14, ' Window Manager '. File #3285: PG.BAS.SYS1.BXY (ALL) Uploaded on 5/8/93 by A2PRO.GREG About 47K (d/l time approx. 5 minutes @ 2400 baud) This file is a collection of messages from the A2Pro Bulletin Board, Cat 7 Topic 4, 'Programming with Basic.System'. File #3284: PDOS.QUES1.BXY (ALL) Uploaded on 5/8/93 by A2PRO.GREG About 35K (d/l time approx. 3 minutes 30 seconds @ 2400 baud) This file is a collection of messages from the A2Pro Bulletin Board, Cat 7 Topic 2, ' ProDOS Questions ... '. >>> INFORMATION/DOCUMENTATION <<< """"""""""""""""""""""""""""""""" File #3304: PRIZMCONFIG.BXY (GS) Uploaded on 5/14/93 by BYTEWORKS About 4K (d/l time approx. 30 seconds @ 2400 baud) This file describes the configuration file format used by PRIZM 2.0 and PRIZM 2.0.1. This format is used to save preferences and to save and restore the desktop when an S16 file is executed from PRIZM. The file also describes how these files are used, and gives some tips about how to use the information to trick PRIZM into doing useful things at startup. File #3302: OBJECTS.BXY (ALL) Uploaded on 5/14/93 by BYTEWORKS About 10K (d/l time approx. 1 minute @ 2400 baud) This file is a brief, mechanically oriented introduction to Object Pascal as implemented in ORCA/Pascal 2.0. While it doesn't tell you how to organize programs to take advantage of object oriented design goals, it does teach you the vocabulary and syntax used in Object Pascal, and shows some simple examples of how objects can be used. File #3263: MAC.RES.BXY (ALL) Uploaded on 4/21/93 by A2.TIM About 21K (d/l time approx. 2 minutes @ 2400 baud) Here is a complete definition of the storage format for Macintosh resources. This download contains two files, both in AppleWorks GS format. Contained in the first file is a breakdown of a Macintosh Resource file given in an AWGS PL format. The second is an AWGS graphics file with two figures that go with the text. With this information it is possible to write a resource editor (ala ResEdit) or, more simply, a font converter that directly reads Macintosh resource files for its fonts. (I've included an AppleSloth Font Munger and a Res Lister) File #3262: DWS.FTN.BXY (GS) Uploaded on 4/21/93 by S.CHIANG4 About 5K (d/l time approx. 30 seconds @ 2400 baud) Description of the DreamGrafix graphics file format, type $C0, aux $8005 >>> LANGUAGES <<< """"""""""""""""" File #3299: GRAFORTH.BXY (ALL) Uploaded on 5/13/93 by A2.TIM About 63K (d/l time approx. 6 minutes @ 2400 baud) This file contains GraFORTH, reference sheets for the GraFORTH commands, the Editor commands, and the Lost Classics Press Release. GraFORTH is a DOS 3.3 graphics-oriented FORTH compiler/interpreter. This should run on any Apple II with at least 48K RAM. Sample code is included. GraFORTH is a mid-level language with assembly level animation capabilities. Sound and music capabilities are built in. Paul Lutus has given permission for people to copy and distribute freely as long as no charge is levied for the program. Check out the GraFORTH.ReadMe file included for more information. File #3290: LST.V3.BXY (GS) Uploaded on 5/9/93 by A.BELYEA About 330K (d/l time approx. 35 minutes @ 2400 baud) This is the Apple IIGS version of Little Smalltalk, a text-based subset of the Smalltalk object-oriented language. It implements objects, methods, classes, inheritance and overriding. It comes with complete class definitions for basic classes, magnitudes, collections, multi- processing, files, and tty interface. The complete C source code for the underlying primitive system is included. Little Smalltalk is public domain software. Requires ORCA or GNO shell. ////////////////////////////////////// GEnie_QWIK_QUOTE //// / "How could I have overlooked the config? We would be in / / deep doodoo without GEnie & Aladdin." / /////////////////////////////////////////// K.OLSON10 //// [EOA] [LOG]////////////////////////////// LOG OFF / ///////////////////////////////// GEnieLamp Information """"""""""""""""""""" o COMMENTS: Contacting GEnieLamp o GEnieLamp STAFF: Who Are We? o ASK DOCTOR BOB! GEnieLamp Information GEnieLamp A2Pro is published once a month on the """"""""""""""""""""" 1st 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 is also distributed on CrossNet, Internet, America Online and many public and commercial BBS systems worldwide. 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. 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. On Internet: GENIELAMP@GENIE.GEIS.COM 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 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 Bruce Faulkner [R.FAULKNER4] Editor/GEnieLamp [PR] """""""""" 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 o Chris Innanen [C.INNANEN] Mac Staff Writer o Paul Collins [P.COLLINS] Mac 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 o Jim Maricondo [A2PRO.DYAJIM] A2Pro Staff Writer ETC. o Jim Lubin [J.LUBIN] Add Aladdin """" o Scott Garrigus [S.GARRIGUS] Search-ME! o Mike White [M.WHITE25] Cowlumnist/Asst. SysOp ASK DOCTOR BOB Do you have a question about operating systems, GEnie or """""""""""""" _anything_ concerning computers? If so, you can get your questions answered here in GEnieLamp by Doctor Bob. Any question is fair game...and if the good Doctor Bob doesn't know the answer, he'll find someone who does. Stop wandering around in the dark and send your question to Doctor Bob via GE Mail to GENIELAMP or R.CONNORS2. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// 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]