|||||| |||||| || || |||||| |||||| || || ||| || || || || ||| |||| |||||| || |||| Your || || || || ||| || || |||||| |||||| || || |||||| |||||| GEnieLamp Computing || |||||| || || |||||| RoundTable || || || ||| ||| || || || |||||| |||||||| |||||| RESOURCE! || || || || || || || ||||| || || || || || ~ WELCOME TO GENIELAMP A2Pro! ~ """"""""""""""""""""""""""" ~ A few small(?) changes around here ~ ~ NL from a shell ~ Jumping to dynamic segments ~ ~ Rez SCG for Genesys ~ Where's _DisableControl?? ~ ~ HOT NEWS, HOT FILES, HOT MESSAGES ~ /////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ GEnieLamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.4, Issue 23 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Editor.....................................................Tim Buchheim Publisher.................................................John Peters Copy-Editor............................................Bruce Maples \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// ~ GEnieLamp IBM ~ GEnieLamp ST ~ GEnieLamp [PR] ~ GEnieLamp Windows ~ ~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ GEnieLamp TX2 ~ ~ GEnieLamp A2 ~ LiveWire (ASCII) ~ GEnieLamp MacPRO ~ ~ Solid Windows ~ Config.sys ~ A2-Central ~ ~ Member Of The Digital Publishing Association ~ GE Mail: GENIELAMP Internet: genielamp@genie.geis.com FTP: sosi.com ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ >>> WHAT'S HAPPENING IN THE APPLE A2Pro ROUNDTABLE? <<< """"""""""""""""""""""""""""""""""""""""""""""""""""""" ~ February 1, 1995 ~ FROM MY DESKTOP ......... [FRM] HEY MISTER POSTMAN ...... [HEY] Notes From The Editor. Is That A Letter For Me? A2PRO ROUNDTABLE STAFF .. [DIR] DEVELOPERS CORNER ....... [DEV] Directory of A2Pro Staff. News From Online Developers. LIBRARY BIT BONANZA ..... [LIB] RTC WATCH ............... [RTC] HOT Files You Can Download. Real Time Information. LOG OFF ................. [PUB] 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) _____________| _____|__ _|___ |____ |_____________ |Name of sender CATegory TOPic Msg. Page number| In this example, to respond to Smith's message, log on to page 530 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1. A message number that is surrounded by brackets indicates that this message is a "target" message and is referring to a "chain" of two or more messages that are following the same topic. For example: {58}. ABOUT GEnie GEnie's monthly fee is $8.95 which gives you 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. GEnie's non-prime time connect rate is $3.00 an hour. To sign up for GEnie, just follow these simple steps. 1. Set your communications software to half duplex (local echo) 8 bits, no parity and 1 stop bit, at 300, 1200 or 2400 baud. 2. Call (with modem) 1-800-638-8369. Upon connection type HHH. 3. Wait for the U#= prompt. Type: JOINGENIE and hit RETURN. When you get the prompt asking for the signup/offer code, type: DSD524 and hit RETURN. 4. Have a major credit card ready, as the system will prompt you for your information. If you need more information, call GEnie's Customer Service department at 1-800-638-9636. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" [EOA] [FRM]////////////////////////////// FROM MY DESKTOP / ///////////////////////////////// Notes From My Desktop """"""""""""""""""""" by Tim Buchheim [A2PRO.GELAMP] o TOP OF THE PAGE >>> TOP OF THE PAGE <<< """"""""""""""""""""""" CHANGES Many changes have been made in the A2Pro staff over the last """"""" few months, but the most recent is the most obvious. Nate Trost, who has been editing this publication for quite some time in addition to being a sysop in A2Pro, is currently on a trip to Scotland, where he does not have access to GEnie. In his absence, I, Tim Buchheim, will be editing the GEnieLamp A2Pro. You're probably asking yourself, "Who is this guy?" Well, if you have read the credits for GEnieLamp carefully, you will have noticed my name listed as Nate's assistant editor for the past year or so. Also, for nearly a year I have been hosting an RTC in A2Pro on Friday nights, 9:30-11:00 PM Eastern. Join us for solutions to any programming problems you have! Or, if you don't need any programming help, feel free to drop by and chat about programming, current events, life, the universe, the number 42, or whatever you feel like discussing. It will take a while before I really get used to doing this, but I hope you'll put up with me for the next few issues. :) Another change worth noting is that this issue is actually on time! If everything goes right, that will be true _every_ month! (I can dream, can't I? :) Due to requests from several people, three versions of GEnieLamp A2Pro will be uploaded to the DigiPub libraries each month. For example, the three files this month are: APLP9502.TXT - uncompressed, no linefeeds (for Apple II text editors) APLP9502.ASC - uncompressed, with linefeeds (for MS-DOS text editors) APLP9502.BXY - compressed with ShrinkIt, no linefeeds The GEnieLamp item on the A2Pro menu contains the .BXY version. All three editions can be downloaded from the DigiPub library (m1395;3). Until next time... Tim Buchheim GEnieLamp A2Pro (BTW, for those of you who are wondering where the January issue went, well, it never left the launch pad.. by the time Nate decided that I should take over for him, it was too late to put out a January issue.) [EOA] [DIR]////////////////////////////// A2PRO ROUNDTABLE STAFF / ///////////////////////////////// ______________________________________________ APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE _____ ______ ______________________________________________ /_____|/______\ /__/|__| ___|__| Head Sysop: Hangtime (HANGTIME) /__/_|__| /_____/ Your Sysops: Greg Da Costa (A2PRO.GREG) /________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW) /__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP) /__/ |__|________// / \/_/ Tim Buchheim (A2PRO.GELAMP) [*][*][*] [EOA] [HEY]////////////////////////////// HEY MISTER POSTMAN / ///////////////////////////////// Is That A Letter For Me? """""""""""""""""""""""" By Tim Buchheim [A2PRO.GELAMP] o BULLETIN BOARD HOT SPOTS o WHAT'S NEW o PROGRAMMER'S TIPS o MESSAGE SPOTLIGHT >>> BULLETIN BOARD HOT SPOTS <<< """""""""""""""""""""""""""""""" [*] CAT1, TOP16, MSG{54}..........A2Pro Contests! [*] CAT3, TOP4, MSG{99}..........The Merlin 16+ Assembler [*] CAT3, TOP5, MSG{108}.........Using assembly from other languages [*] CAT4, TOP16, MSG{20}..........C Language (on Apple IIs) [*] CAT10, TOP4, MSG{113}.........Genesys, by SSSi [*] CAT19, TOP3, MSG{8}...........Development Environment Standards [*] CAT30, TOP3, MSG{149}.........GNO Utilities [*] CAT30, TOP10, MSG{1}...........The Indexer [*] CAT36, TOP9, MSG{127}.........ORCA/M 16-bit Macro Assembler >>> WHAT'S NEW <<< """""""""""""""""" APPLE IIGS FRONT END FOR GENIE Dear Apple IIgs User, """""""""""""""""""""""""""""" Some time ago, the A2 and A2Pro RoundTables on GEnie announced their intentions to release a graphical front end for the Apple IIgs. It was thought that this project would be ready by the end of 1994. Unfortunately, we have found that this date was a bit premature. GEnie is continually upgrading its software and expanding its services, and, unfortunately, some of these upgrades have caught the programmers off-guard. Our Apple IIgs Front End Team Leader explains that "GEnie has promised full Internet access, and we need to be sure that when GEnie is ready, so is our product. Also, GEnie is planning a major internal system upgrade. Now, I can't give any details of this upgrade except to say that while there will be few changes in what users actually see, there will be large changes in the way the program interacts with GEnie. We expect to have the front end in open beta- testing by March 1st, and we hope to have a final product by the first of June." The staff of the A2 and A2Pro RoundTables would like to apologize for the inconvenience. Please post any responses in topic 27, and leave this topic for official announcements. Thank you. (A2PRO.HELP, CAT1, TOP26, MSG:1/M530) RECOMMENDED SOFTWARE A suggestion, and nomination, from a user... """""""""""""""""""" I think it would be neat if, on a yearly basis (starting this year of course :), there was a contest for the most usefull programmers aid / debugging tool that was developed by, and uploaded to, A2Pro by one of the users. If such a contest were to exist, I would submit the following as my nomination for most usefull debugging / tweaking / snOOping aid, for 1994: === Number: 4244 Name: TTRAPPER.BXY V1.0 Address: RICHARD.B Date: 940806 Approximate # of bytes: 4992 Number of Accesses: 37 Library: 20 Description: Traps tool calls YOU select, and breaks into debug with all registers valid. Allows match criteria for up to 26 bytes of parameter data pushed before the call, with validity masking at the nibble level. This CDA is really cool! Keywords: RJB,TOOL,TRAP,GSBUG,DEBUG,CDA === If you have used this CDA, you don't need any convincing, if you haven't then you don't know what you're missing. This is right up there with NiftyList and GSBug (having all three makes for a very powerful debugging /tweaking enviroment) An (hacking / tweaking) example of how usefull this can be... Lets say that you want to find where in a program a given window is being closed. You can run the program till that window is displayed, then pop into NiftyList and issue a _FrontWindow call. Now that you have the window pointer, you can stuff that into the stack paramaters in TTrapper, and set up to trap the _CloseWindow call. Now when that window (and no other!) is finally closed, you'll find yourself in GSBug, and be able to start following program code at that point, with all registers undisturbed. Once you've satisfied your curiosity (eg: done your dirty deeds ;) you can turn off tool trapping, resume the program, and continue on as if nothing had happened. Richard - I owe ya a cold one! :) -Harold (H.HISLOP, CAT1, TOP16, MSG:54/M530) <<<<< Harold, """"" Thanks for the kind words about TTrapper. I consider it one of the most underrated uploads in the library. But I kept my mouth shut because I wrote it. :-) Regards, Richard (RICHARD.B, CAT1, TOP16, MSG:55/M530) >>>>> Hehehehe... I haven't downloaded it because it was a minor blow """"" to my psyche when you finished yours first. :D Eric Shepherd (Sheppy) [Team PPCPro] (POWERPC.PRO, CAT1, TOP16, MSG:56/M530) NL FROM A SHELL Starting to disassemble the Integer Math toolset with """"""""""""""" Nifty List and painfully transcribing by remembering a few lines at a time gave rise to a new program: nl lets you use Nifty List from a shell, using the shell's stdio redirection. The small feature set is a built-in "tee" feature and a built- in filter to grok the output towards source code. The idea is to use Nifty List as a disassembler and capture its output in a file. A side effect is the ability to "script" Nifty List, but I haven't experimented with that. I uploaded it to the library tonight. (I really should use ORCA/Disassembler, the right tool for the job.) - Jay (JAY.KRELL, CAT3, TOP5, MSG:108/M530) <<<<< Excellent! I was just poking around in Nifty List a couple of """"" nights ago to see if there was a way to write its output to a file, but didn't find anything. This is exactly what I was looking for. Looking forward to its release, Jay. Mike (M.HACKETT, CAT3, TOP5, MSG:112/M530) >>>>> Last night I just about completed a much better Nifty List -> """"" ORCA/M source filter than is contained in "nl". I'll hopefully finish it tonight or tomorrow. Also, unfortunately, all input falls to stdin, so you lose Nifty List's history. I don't think it is possible to get its output without having to do its input too. I almost wrote a disassembler from scratch. All it takes is printf and some simple tables. Large, repititive tables that quickly bored me though. I also tried redirecting the monitor via the zero page vectors but didn't get it to work before checking out the Nifty List docs. Jay ps- Dave Lyons is really to thank here. There is an nlExecCmdLine service call in Nifty List, and you use nlSetSession to pass a routine to do i/o. They've just been waiting to be used. I think the "Writing.Modules" doc file is dated '91. (JAY.KRELL, CAT3, TOP5, MSG:114-115/M530) <<<<< I remember talking to Dave Lyons a long time ago about a Nifty """"" List in a NDA kinda program. He said he'd actually been working on one (or thinking about it or something along those lines, I don't remember; it was so long ago) and those hooks are there just for this kind of thing. :-) (WANKERL, CAT3, TOP5, MSG:116/M530) <<<<< Dave Lyons actually showed me an NDA running Nifty List (in a """"" window). It was REAL slow, so I don't think he did anything else with it. However it was running, and it worked fine. (RICHARD.B, CAT3, TOP5, MSG:117/M530) REZ SCG FOR GENESYS I just uploaded file 4504 to the library, and when """"""""""""""""""" it's released you can download it. What is it? A new Rez source code generator for Genesys that knows a lot about 6.0.1 and will generate most resource types found in the Types.Rez file. (I use genesys to create most of my resources, so I use the Rez SCG a lot!) There are only a few types that the SCG doesn't do. If you need one of those to be handled, let me know and I'll try to put it in. (Writing the SCG code isn't fun, but it's not too difficult.) (WANKERL, CAT10, TOP4, MSG:113/M530) >>> PROGRAMMER'S TIPS <<< """"""""""""""""""""""""" JUMPING TO DYNAMIC SEGMENTS I seem to be in Merlin hack mode at the """"""""""""""""""""""""""" moment, so I better document a change I made about 18 months ago before I forget. Merlin has a restriction where only JSL instructions can access jump segments with dynamic segment destinations. Basicly, if you try and JML into a dynamic segment, Merlin will give an error during the link process and abort. This is a feature. Well, I don't like features too much. ;-) To bypass the checking, search for $A7 $1A $C9 $22 $D0 $42, and change the $D0 $42 to $38 $EA. In Merlin 16+ v4.08, the offset for the $D0 $42 is +$BA84. For v4.12, it is +$BC21. Any other versions, just look for the string I mentioned above. Regards, Richard (RICHARD.B, CAT3, TOP4, MSG:99/M530) <<<<< Richard, before you get too gung ho about bypassing Merlin's """"" restrictions on dynamic jump tables, you might want to take a look at the Loader. Merlin is doing the sensible thing, since the Loader won't work correctly if you JML to a dynamic segment. Mike Westerfield (BYTEWORKS, CAT3, TOP4, MSG:100/M530) >>>>> Mike, """"" My understanding of the system loader doesn't conflict with my usage of the patch. While others may wish to crash on other instructions, I believe that JSL and JML will work just fine. I believe I know how the system loader works, and in particular how dynamic and jump table segments work. However I could be wrong. Those who believe the loader will not work "correctly" with JML, should therefore not use my patch. Regards, Richard (RICHARD.B, CAT3, TOP4, MSG:101/M530) <<<<< Richard, Mike, """"" Umm, I'm confused. Maybe I don't understand the Loader well. Is the issue 1) the loader doesn't behave well when it can't load a dynamic segment due to memory/disk/other problems, 2) the loader patches the jsl into loader code to a jsl into the loaded dynamic segment and so needs a return address on the stack that points to the right place, or 3) something else. - Jay (JAY.KRELL, CAT3, TOP4, MSG:102/M530) >>>>> Jay, """"" The jump table segment contains a number of intersegment records, appended with a JSL instruction which points to the loader. When calling a dynamic segment, the loader has resolved your JSL (or JML) to point to the loaded jump table segment. When the dynamic segment is loaded, the jump table segment simply contains a JML to it. When unload (not in memory), it is a JSL to the loader. The loader uses the JSL return address to index the record to which the JSL is appended. It does not look any further up the stack, and the return address IS popped before dispatching the dynamic segment. So for all intents and purposes, the loader does not care how control gets to the jump table segment, and does not care if you crash on the way back. As to what Mike is referring to, I have no idea. Perhaps my understanding of the loader is incorrect. I hope not, because my code may start crashing! ;-) Regards, Richard (RICHARD.B, CAT3, TOP4, MSG:103/M530) <<<<< The original design for the loader did not support any mechanism """"" for jumping through a dynamic segment table. The patching mechanism that was designed and encorporated into the object module standard depends on doing a JSL, and _only_ a JSL to dynamic segment jump tables. It's possible that: 1. Something was added later, in which case it should be documented in the GS/OS reference manual, Prog. Ref for 6.0 or 6.0.1, or one of the tech notes. I didn't search for such an addition, so if you want to use a feature like this, you should look to see if something was added. (To my knowledge, nothing was.) 2. The loader happens to not crash with a JML. That doesn't make it legitamate to use one. Other people (me included) have written loaders from time to time, and there are some projects I'm still considering that would cause me to either write a loader or dust off my old one. If I found documented differences between the old OMF and what was now needed, I'd make changes. If someone is using an undocumented accident, like I think substituting JML for JSL in the jump table is, I'd frankly ignore their problems & gripes. People who deliberately use "features" that happen to work when the documented methods say not to use them deserve to have their programs crash--and the sooner and more severe the crash is, the better! And, again without doing reserach to see if there have been changes, my recollection is that the OMF only allows for JSL to a dynamic segment. 3. I just remembered wrong, and JML was allowed all along. Again, I didn't check the docs. If you're going to patch something the assemblers & linkers don't support, though, you should check to docs. If they don't say you are allowed to use JML, whatever happens is your own fault. Mike Westerfield (BYTEWORKS, CAT3, TOP4, MSG:104/M530) >>>>> Mike, """"" Although I haven't checked any early loader specifications (they're buried under garbage in my office), the current GS/OS reference does not specifically refer to a JSL restriction, although it could be contrued as being so. As far as I can tell, there is no documented restriction. FWIW, MPW LinkIIGS 1.1, 1.2 and 1.3 (latest) all allow JMLs. Likewise every version of GraphicWriter (the latest version, 1.1, runs under System Disk 3.2, which was the latest system version at the time), makes extensive use of JMLs in this context. I believe the problem is the documentation, which COULD be interpretted as meaning a JSL is required. On closer reading, it does not. Whether early ERS docs are any better, I'm not to sure, because I just plain haven't checked. Like I said, as far as I can tell, there is no documentation currently available which states that a JSL is mandatory. My disassembly of the loader and the operation of MPW, GW3 and other examples I have seen, seem to confirm this. I'll repeat my disclaimer. If anyone doesn't trust my patch, don't use it. Regards, Richard (RICHARD.B, CAT3, TOP4, MSG:105/M530) <<<<< > There is no documentation available which states that a JSL is """"" > mandatory. Understood. And if it works, great. I know the original design was not intended to handle JML, though. There were specific stems taken at that time not to allow any access through any mechanism but JSL. These issues apparently didn't make it into the documentation or loader, which is interesting. On the other hand, the absense of a flat statement that you can't do something doesn't make it a good idea. There is no particular advantage to using a JML to the jump table, so I would recommend never doing so. Mike Westerfield (BYTEWORKS, CAT3, TOP4, MSG:106/M530) ANOTHER MERLIN PATCH For those who have used the Merlin "COMMANDS" """""""""""""""""""" command and wondered why you have so few EXEs, then the following may be of interest. In certain circumstances, "COMMANDS" doesn't always show ALL the available EXEs, and it has been annoying me for the last couple of years. But today I bit the bullet and decided to take a look. Well, little did I realise that the source code for COMMANDS is actually included on the Samples Disk! The problem is line 257 as follows: DIRBUF DA $10 It should read: DIRBUF DA 2+2+$10 Whenever a filename of 15 characters was read, it wouldn't fit into the buffer, and COMMANDS would exit, thinking it was the end of the subdirectory. For those without the Samples Disk, you can patch COMMANDS at +$1AB, change from a $10 to a $14. Regards, Richard (RICHARD.B, CAT19, TOP3, MSG:8/M530) >>> MESSAGE SPOTLIGHT <<< """"""""""""""""""""""""" 8-BIT C? Hi folks, """""""" I got a desperate call from a fellow trying to do some C coding on an 8 bit Apple II computer. I told him about Aztec C, and gave him their number. Are they still in business? Anyway, if you have a working copy of Aztec C you are willing to part with, give him a call. I think you'll be able to sell it for at least what you paid. Contact: Carl Foster 913-334-0508 He said the phone has a 24 hour message service, so if he wasn't in you could leave a message. He's working under ProDOS, so that's the version he'll want if you have it. Mike Westerfield (BYTEWORKS, CAT4, TOP16, MSG:20/M530) <<<<< Mike, """"" How about ORCA/Small C? -Jay (JAY.KRELL, CAT4, TOP16, MSG:21/M530) >>>>> Small C is out of print. It also isn't much of a C (nor was it """"" intended to be). Specifically, it doesn't have stdio.h, which is one of the main things he wanted. Mike Westerfield (BYTEWORKS, CAT4, TOP16, MSG:22/M530) <<<<< ORCA/Small C? Was this for real? What was it? """"" -=Joat=- (A2.TIM, CAT4, TOP16, MSG:23/M530) >>>>> ORCA/Small C was, as far as I know, the only compiler installed """"" under the 8 bit ORCA/M. It was a slightly extended version of the original Small C, generating macro source files that were piped through the assembler automatically, a lot like the way C Front worked under MPW. It was integer only, didn't have structs, had virtually non of the standard I/O libraries, and was slow as elephant snot in December, but it did what I intended it to do. :) It was also the first GS compiler. APW C was way behind schedule, and Apple insisted that we write the linker in C (over our objections). Since APW C wasn't available, the first APW linker was written in Small C. Apple promised they would never release that version, fathfully garanteeing that they would either recompile it with APW C or let us translate the linker to assembly before the commercial release--so of course, the first release of the linker was the Small C version. :/ The APW Small C was never commercially released, but it, too, did the job it was needed for. Mike Westerfield (BYTEWORKS, CAT4, TOP16, MSG:25/M530) [*][*][*] While on GEnie, do you spend most of your time downloading files? If so, you may be missing out some excellent information in the Bulletin Board area. The messages listed above only scratch the surface of what's available and waiting for you in the bulletin board area. If you are serious about your Apple II, the GEnieLamp staff strongly urge you to give the bulletin board area a try. There are literally thousands of messages posted from people like you from all over the world. [EOA] [DEV]////////////////////////////// DEVELOPER'S CORNER / ///////////////////////////////// News From The A2Pro Online Developers """"""""""""""""""""""""""""""""""""" By Tim Buchheim [A2PRO.GELAMP] o ONLINE SUPPORT IN A2PRO o NEWS FROM PROCYON, INC. o NEWS FROM THE BYTE WORKS o FGREP HELP o CALLING C ROUTINES FROM ASSEMBLY >>> ONLINE SUPPORT IN A2PRO <<< """"""""""""""""""""""""""""""" CAT TOP COMPANY === === ======= 29 INDEPENDENT DEVELOPERS ONLINE 2 DYA/DigiSoft Innovations Online 8 Simplexity Software Online 14 Quality Computers Q-LABS Online 20 DreamWorld Software Online 26 METAL/FV Software Online 32 Kitchen Sink Software Online 38 EdIt-16 (Bill Tudor) 30 PROCYON, INC. 31 SOFTDISK PUBLISHING 33 GS+ MAGAZINE 34 JEM SOFTWARE 35 PRODEV, INC. 36 THE BYTE WORKS Each month this column feature highlights and news from various developers who provide support via A2Pro. >>> NEWS FROM PROCYON, INC. <<< """"""""""""""""""""""""""""""" THE INDEXER Introducing a great new shareware programmer's tool... """"""""""" details to follow soon. You may be wondering what this is. Well, keep wondering. :-) It's not quite done yet, but when it is, it will be a $10 shareware program that any sane Apple II programmer will fall in love with immediately. Jawaid The Tease (PROCYON, CAT30, TOP10, MSG:1/M530) <<<<< Indexer? Hmmmmm... sounds like some kind of programmer reference """"" utility to me. (Did I guess it? :-) (WANKERL, CAT30, TOP10, MSG:4/M530) >>>>> Hmm, why would you think that?! """"" (PROCYON, CAT30, TOP10, MSG:5/M530) >>> NEWS FROM THE BYTE WORKS <<< """""""""""""""""""""""""""""""" NEW CATALOG Hi folks, """"""""""" Our new catalog is out, and it triples the number of products you can get from the Byte Works! In addition to our own programming and productivity software, we also carry all of the Apple II APDA products and many hard to find Apple II books. If you haven't gotten our catalog yet, and would like to get a copy, all we need from you is an address! You can request a catalog by e-mail, snail-mail, phone, carrier pigeon, or any other method. Just send your mailing address and remind us that you want our catalog. But don't wait _too_ long. Some of the books are out of print, and once we sell the ones we have, we can't get more. We've already sold out of some titles. If you would like a copy of our catalog, you can reach us at: Byte Works, Inc. 8000 Wagon Mound Dr. NW Albuquerque, NM 87120 Phone: (505) 989-8183 GEnie: ByteWorks AOL: MikeW50 Internet: MikeW50@AOL.COM (BYTEWORKS, CAT36, TOP31, MSG:49/M530) >>> FGREP HELP <<< """""""""""""""""" SEARCHING AW3 DATABASES I didn't get any replies to this in the """"""""""""""""""""""" Appleworks topic of the A2RT so I'll try here. Sometimes before I launch Appleworks I use the FGREP program to search my database files for the particular string I'm interested in. Then I can launch Appleworks 3.0 and place on the desktop only those ADB files that contain the search string. Because the FGREP search lets me know which files contain the goods I don't have to spend time loading & searching desktop files that could contain or might contain the information I seek. When I use FGREP to search the A2 library index file that I downloaded from GEnie I get the message "Fatal error processing:/ram7/zapw/A2.LIB.NDX". The file doesn't exhibit any problems in Appleworks itself though. IOW, if I didn't use FGREP I wouldn't even perceive a problem. Is there something special about GEnie's A2 library index file (the big one)? Anyone out there using the FGREP program find that it will properly search that library index? Thanks. Nez (L.JIMINEZ, CAT30, TOP3, MSG:149/M530) <<<<< I've never heard of a problem in FGREP like that. ADB files """"" aren't ascii text, and FGREP was designed to work with ASCII files. Try the following: "strings file | fgrep string" Strings takes a binary file, and spits out anything resembling ascii data. Jawaid (PROCYON.INC, CAT30, TOP3, MSG:250/M530) >>>>> >"strings file | fgrep string" """"" As you suggested I played with this command. It's not gonna serve my needs. > ADB files aren't ascii text, and FGREP was designed to work with ASCII > files. Agreed....for if I do 'fgrep A2PRO.LIB.NDX' the function is indeed quirky. However, the actual command that I use, 'fgrep -il A2PRO.LIB.NDX' works fine. In fact it works for my other ADB files also (KULA.NDX, STAR.TREK.BXY, etc). I guess didn't fill you in on one of the specifics. The A2.LIB.NDX file is the *only* ADB file I have that FGREP refuses to search! I've asked a couple of times over in the A2RT if anyone could get FGREP to search the ADB library file. I've not got any replies. I guess I ask one last time before giving up. Nez (L.JIMINEZ, CAT30, TOP3, MSG:151/M530) <<<<< Nez, """"" I ran fgrep on the AppleWorks Data Base file of A2 files and found like you that it chokes on the file. To get around that problem, I printed the data base to a text file. I separated the individual categories with '-' and the records ended in a return. The search command would then come up with the entire record for study and not just the name or file info category. When fgrep did print out some records from the AW Data Base, some of the characters in the data base were interpreted as screen command characters and 'ruined' the screen anyway. Your command just checks to see if the given string is anywhere in the data base and so screen output wouldn't matter. This doesn't explain why it is choking, but shows a way around. - James - [IMAGE] (J.GRAY38, CAT30, TOP3, MSG:152/M530) >>> CALLING C ROUTINES FROM ASSEMBLY <<< """""""""""""""""""""""""""""""""""""""" HELP! I have an object module that was created by ORCA C that I need to """"" use as a part of a program I'm working on. Unfortunately, I don't have ORCA/C. Since it's an object module and not a executable, I assume I can write my glue code for using it in ORCA/M and let the linker put them together, is that right? If so, how do I do it? Dave (JUST.DAVE, CAT36, TOP9, MSG:127/M530) <<<<< Dave, """"" I have ORCA/C & there are a few paragraphs on calling C from assembly. Push the parameters on the stack, starting with the last parameter in the C function, and then do a jsl to the function. Push right to left. 2 bytes are returned in the A reg 4 bytes are returned in the A (least) & X (most) regs structs, arrays and unions are 4 byte pointers The order of pushing the parms on the stack would be different if the object module was compiled with the pascal qualifier: extern pascal long func(long V1, long V2) Then they would be pushed left to right. This is the way calls to the toolbox are declared. The C function called has to remove all parms before returning. C is case sensitive, but with the pascal qualifier, all caps are used so Variable and VARIABLE would be the same, but not in regular C. Use Case On at the top of your assembly code. I haven't actualy called C from assembly, but the other way around. - James - [IMAGE] (J.GRAY38, CAT36, TOP9, MSG:129/M530) >>>>> Thanks guys. :) I knew the push the parameters and JSL bit, """"" but the parameter order, and how stuff was returned, is what I was looking for. :) Always get great service in here :) Dave (JUST.DAVE, CAT36, TOP9, MSG:130/M530) [EOA] [LIB]////////////////////////////// LIBRARY BIT BONANZA / ///////////////////////////////// HOT Files You Can Download """""""""""""""""""""""""" By Tim Buchheim [A2PRO.GELAMP] o DEBUGGING TOOLS o SOURCE CODE o SHELL UTILITIES o TEXT FILES o MISCELLANEOUS >>> DEBUGGING TOOLS <<< """"""""""""""""""""""" File # 4548 MITEMCHECK.BXY (GS) Uploaded on 1/25/95 by RICHARD.B About 4K (d/l time approx. 20 seconds @ 2400 baud Ymodem) Traps a number of Menu Manager calls if they were issued with invalid itemIDs. If invalid, MItemChecker displays debugging information such as the caller name and location. File # 4497 NEXUS.BXY (GS) Uploaded on 1/2/95 by T.MORALES About 6K (d/l time approx. 35 seconds @ 2400 baud Ymodem) This archive contains an external module for NiftyList. When installed, you can dump files in hex output, lock/unlock files, delete files, get and set any of the GS/OS prefixes, obtain information on the devices GS/OS recognizes, and much, much more. These commands make NiftyList even more powerful by allowing you to do common operations without leaving the command-line. Packed with GSHK v1.1. File # 4468 NL.BXY (GS) Uploaded on 12/14/94 by JAY.KRELL About 29K (d/l time approx. 3 minutes @ 2400 baud Ymodem) nl lets you use Nifty List from a shell, using the shell's stdio redirection. The small feature set is a built-in "tee" feature and a built-in filter to grok the output towards source code. The idea is to use Nifty List as a disassembler and capture its output in a file. A side effect is the ability to "script" Nifty List, but I haven't experimented with that. It isn't 100% robust but it isn't bad. Unbuildable source is included. Let me know if you find it useful and/or really want the libraries to build it. >>> SOURCE CODE <<< """"""""""""""""""" File # 4528 RFMEDIASRC.BXY (GS) Uploaded on 1/17/95 by PROCYON About 46K (d/l time approx. 4 minutes @ 2400 baud Ymodem) SOURCE code to v1.2 of the RamFAST Media Control drivers package. You'll need ORCA/C 2.0.X, ORCA/M 2.0.X to build these drivers. If you just want the drivers to use (not to modify), then get _A2_ file #23924 File # 4502 GSOSGLUE.BXY (GS) Uploaded on 1/4/95 by JAY.KRELL About 33K (d/l time approx. 3 minutes @ 2400 baud Ymodem) This is a library for making calls to GS/OS from a high level language listing the parameters 'inline' to be pushed on the stack, like uint error= GSRead(uint file, void *buf, ulong request, ulong *actual); The included files are very geared toward ORCA/C and it would be difficult indeed to use them from ORCA/Pascal. Source, headers, object code, and a library are included. >>> SHELL UTILITIES <<< """"""""""""""""""""""" File # 4494 RJB.MERLINS.BXY (GS) Uploaded on 12/31/94 by RICHARD.B About 43K (d/l time approx. 4 minutes @ 2400 baud Ymodem) All my Merlin 16+ EXE commands as of 31-Dec-94. File # 4492 NOTE.BXY (GS) Uploaded on 12/30/94 by RICHARD.B About 4K (d/l time approx. 24 seconds @ 2400 baud Ymodem) Merlin EXE to display text. Best use is for link files to display comments during the link process. ie. LST ON is not a linker command! >>> TEXT FILES <<< """""""""""""""""" File # 4489 T2.IPC.DOX.TXT (GS) Uploaded on 12/23/94 by DIGISOFT About 10K (d/l time approx. 1 minute @ 2400 baud Ymodem) Info on most of the Twilight II IPC requests your programs can make to be more friendly on systems with T2 installed. File # 4487 KF94.A2.IO.BXY (ALL) Uploaded on 12/22/94 by E.WAGNER10 About 17K (d/l time approx. 2 minutes @ 2400 baud Ymodem) This ShrinkIt archive contains two text files which cover the materials presented during my 1994 ICONference (KansasFest) session on "APPLE II INTERFACING: HOW TO CONTROL REAL-WORLD DEVICES VIA THE GAME PORT" >>> MISCELLANEOUS <<< """"""""""""""""""""" File # 4507 RSOUNDER.BXY V2.1 (GS) Uploaded on 1/6/95 by HANGTIME About 340K (d/l time approx. 34 minutes @ 2400 baud Ymodem) Okay, a new version is here. This version includes some bug fixes such as when a sound fills the disk or the disk is write protected (oops). Another fix is when Kwik convert is being used the names were not properly erased. I also added the feature to save as binary sounds and also rSounder no longer requires the Sound Control Panel to play sounds. This is shareware, $5, and is a GS application. [editor's note: this isn't actually new, the file was imported from the A2 library, and this description came with it:)] File # 4504 APWREZ.SCG.BXY V1.2B10 (GS) Uploaded on 1/5/95 by WANKERL About 20K (d/l time approx. 2 minutes @ 2400 baud Ymodem) This Rez source code generator for Genesys will generate Rez source code for every type in the Types.Rez file except for three types I don't remember off-hand. YES, it will generate rBundle source and knows about rectangle and thermometer controls and all that 6.0.1 stuff. :-) File # 4472 SPLASHER.BXY V2.7 (GS) Uploaded on 12/15/94 by A2.GUEST About 91K (d/l time approx. 9 minutes @ 2400 baud Ymodem) Splasher and Editor version 2.70 Splasher is a method to easily add a splash screen to the program you are writing. You can have a graphic image and music playing when your programs starts. Included is a dynamic segment LNK file that displays the graphic, Clays.MTool to play the music and a demo in Merlin 16+ to show how to link dynamic seqment to your code. Clay [*][*][*] [EOA] [RTC]////////////////////////// RTC WATCH / ///////////////////////////// Bits and Pieces from A2Pro Real Time Conferences """""""""""""""""""""""""""""""""""""""""""""""" By Tim Buchheim [A2PRO.GELAMP] o A2Pro WEEKLY RTC SCHEDULE o WHERE'S _DisableControl? >>> A2Pro WEEKLY RTC SCHEDULE <<< """"""""""""""""""""""""""""""""" _______ __________ _________ /_______| /_________/ /________/ SEVEN days a week!! /__/__/__/ /__/ /__/ /________/ EAL /__/ IME /__/ ONFERENCES in A2Pro!! /__/ /__| /__/ /__/_____ /__/ /__/ /__/ |________/ WEEKLY SCHEDULE Stop in and say "Hi!" at one of these conferences. We've been giving away quite a few GEnie usage credits (free time) at these conferences, and you may just win the next one! :) Day Time Event Host --- --------------- ----------------------------------- ----------- Sun 8:30pm-11:00pm Weekly Programmers' RTC Sloanie Mon 9:30pm-11:00pm GS/OS and Toolbox Calls Dave Miller Tue 9:30pm-11:00pm 8-bit Programming Russ Nielson Wed 9:30pm-11:00pm HangTime's HyperBar & Grill HangTime Thu 9:30pm-??:?? Informal - Q&A, chat, whatever A2Pro Staff Fri 9:30pm-11:00pm Getting Started with Programming Tim Buchheim Sat 8:30pm-10:00pm Assembly Language Programming Brian Wells NOTE: All times are in Eastern Standard Time. >>> WHERE'S _DisableControl? <<< """""""""""""""""""""""""""""""" Programming question. Is it possible to "dim" controls assigned to a window by NewControl2? (i.e. a person selects the "Computer" radio button, so the "Name" function can be disabled or re-enabled if he selects "Human" again)? Rob - Yes. You can dim the control by disabling it. Brian - enlighten me. I cannot find a "_DisableControl" tool. There isn't one, Rob. You need to use the _HiliteControl call :) Rob: Use HiliteControl(255,controlHandle) 255 means inactivate control 0 to activate it again. BINGO! Found it! Thanks! use HiliteControl(0,Controlhandle) to activate it [*][*][*] [EOA] [LOG]////////////////////////////// LOG OFF / ///////////////////////////////// GEnieLamp Information """"""""""""""""""""" o COMMENTS: Contacting GEnieLamp o GEnieLamp STAFF: Who Are We? GEnieLamp Information GEnieLamp is published on the 1st of every month """"""""""""""""""""" on GEnie page 515. You can also find GEnieLamp on the main menus in the following computing RoundTables. RoundTable Keyword GEnie Page RoundTable Keyword GEnie Page """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" DigiPub DIGIPUB 1395 Atari ST ST 475 Macintosh MAC 605 IBM PC IBMPC 615 Apple II A2 645 Apple II Dev. A2PRO 530 Macintosh Dev. MACPRO 480 Geoworks GEOWORKS 1050 BBS BBS 610 CE Software CESOFTWARE 1005 Mini/Mainframe MAINFRAME 1145 Programming PROGRAMMING 1445 Data Comm. DATACOMM 1450 Windows WINDOWS 1335 GEnieLamp is also distributed on CrossNet and many public and commercial BBS systems worldwide. o To reach GEnieLamp on Internet send mail to genielamp@genie.geis.com o Current issues of all versions of GEnieLamp are File Requestable (FREQable) via FidoNet (Zones 1 through 6) from 1:128/51 and via OURNet (Zone 65) from 65:8130/3. SysOps should use the following "magic names" to request the current issue of the indicated GEnieLamp platform (FREQ FILES for names of back issues of GEnieLamp IBM): Platform Magic Name To Use """""""" """"""""""""""""" GEnieLamp IBM .................. GLIBM GEnieLamp ST ................... GLST GEnieLamp A2Pro ................ GLA2PRO GEnieLamp Macintosh ............ GLMAC GEnieLamp TX2 .................. GLTX2 GEnieLamp A2 ................... GLA2 GEnieLamp Windows .............. GLWIN o Back issues of GEnieLamp are available in the DigiPub RoundTable Library #2 on page 1395 (M1395;3). o 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 Email it to GENIELAMP. On Internet send it to: genielamp@genie.geis.com o We welcome and respond to all E-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. o If you would like to meet the GEnieLamp staff "live" we meet every Wednesday night in the Digi*Pub Real-Time Conference at 9:00 EST (M1395;2). o The Digital Publishing RoundTable is for people who are interested in pursuing publication of their work electronically on GEnie or via disk-based media. For those looking for online publications, the DigiPub Software Libraries offer online magazines, newsletters, short-stories, poetry and other various text oriented articles for downloading to your computer. Also available are writers' tools and 'Hyper-utilties' for text presentation on most computer systems. In the DigiPub Bulletin Board you can converse with people in the digital publishing industry, meet editors from some of the top electronic publications and get hints and tips on how to go about publishing your own digital book. The DigiPub RoundTable is the official online service for the Digital Publishing Association. To get there type DIGIPUB or M1395 at any GEnie prompt. >>> GEnieLamp STAFF <<< """"""""""""""""""""""" GEnieLamp o John Peters [GENIELAMP] Publisher/Editor """"""""" IBM o Bob Connors [DR.BOB] IBM EDITOR """ o Nancy Thomas [N.NOWINSON] MultiMedia Editor/Writer o Brad Biondo [B.BIONDO] IBM Staff Writer o Tika Carr [T.CARR4] IBM Staff Writer o Dave Nienow [D.NIENOW] IBM Staff Writer o Don Lokke [D.LOKKE] Cartoonist o Sandy Wolf [S.WOLF4] Contributing Columnist WINDOWS o Tippy Martinez [WIN.LAMP] WINDOWS EDITOR """"""" o John Osarczuk [J.OSARCZUK] Asst Editor/Columnist o Rick Ruhl [RICKER] Windows Sysop/Columnist o Brad Biondo [B.BIONDO] Windows Staff Writer o Rick Pitonyak [R.PITONYAK] Windows Staff Writer o Ed Williams [E.WILLIAMS24] Windows Staff Writer o Dave Nienow [D.NIENOW] Windows Staff Writer MACINTOSH o Richard Vega [GELAMP.MAC] MACINTOSH EDITOR """"""""" o Tom Trinko [T.TRINKO] Mac Staff Writer o Bret Fledderjohn [FLEDDERJOHN] Mac Staff Writer o Ricky J. Vega [GELAMP.MAC] Mac Staff Writer ATARI ST o John Gniewkowski [GENIELAMP.ST] ATARI ST EDITOR """""""" o Mel Motogawa [M.MOTOGAWA] ST Staff Writer o Sheldon Winick [S.WINICK] ST Staff Writer o Terry Quinn [TQUINN] ST Staff Writer o Richard Brown [R.BROWN30] ST Staff Writer o Al Fasoldt [A.FASOLDT] ST Staff Writer o Fred Koch [F.KOCH] ST Staff Writer ATARI ST/TX2 o Cliff Allen [C.ALLEN17] EDITOR/TX2 """""""""""" ATARI [PR] o Bruce Faulkner [R.FAULKNER4] EDITOR/GEnieLamp [PR] """""""""" APPLE II o Doug Cuff [EDITOR.A2] EDITOR """""""" o Phil Shapiro [P.SHAPIRO1] A2 Staff Writer o Darrel Raines [D.RAINES] A2 Staff Writer o Gina E. Saikin [A2.GENA] A2 Staff Writer o Charlie Hartley [C.HARTLEY3] A2 Staff Writer A2Pro o Tim Buchheim [A2PRO.GELAMP] EDITOR """"" ETC. o Jim Lubin [J.LUBIN] Add Aladdin Scripts """" o Scott Garrigus [S.GARRIGUS] Search-ME! o Mike White [MWHITE] (oo) / DigiPub SysOp o Susie Oviatt [SUSIE] ASCII Artist o Al Fasoldt [A.FASOLDT] Contributing Columnist o Phil Shapiro [P.SHAPIRO1] Contributing Columnist o Sandy Wolf [S.WOLF4] Contributing Columnist \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// Bulletin board messages are reprinted verbatim, and are included in this publication with permission from GEnie and the source RoundTable. GEnie, GEnieLamp Online Magazines, and T/TalkNet Online Publishing do not guarantee the accuracy or suitability of any information included herein. Opinions expressed are those of the individual, and do not represent opinions of GEnie, GEnielamp Online Magazines, or T/TalkNet Online Publishing. Material published in this edition may be reprinted under the follow- ing terms only. Reprint permission granted, unless otherwise noted, to registered computer user groups and not for profit publications. All articles must remain unedited and include the issue number and author at the top of each article reprinted. Opinions present herein are those of the individual authors and do not necessarily reflect those of the publisher or staff of GEnieLamp. We reserve the right to edit all letters and copy. Please include the following at the end or the beginning of all reprints: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// (c) Copyright 1995 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: JOINGENIE and hit the [return] key. When you get the prompt asking for the signup code, type DSD524 and hit RETURN. The system will then prompt you for your sign-up information. Call (voice) 1-800-638-9636 for more information. ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ [EOF]