|||||| |||||| || || |||||| |||||| || || ||| || || || || ||| |||| |||||| || |||| Your || || || || ||| || || |||||| |||||| || || |||||| |||||| GEnieLamp Computing || |||||| || || |||||| RoundTable || || || ||| ||| || || || |||||| |||||||| |||||| RESOURCE! || || || || || || || ||||| || || || || || ~ WELCOME TO GENIELAMP A2Pro! ~ """"""""""""""""""""""""""" ~ Foundation Rereleased ~ ~ KFest 1994 ~ Evil Toolbox Patching ~ ~ Listing /RAM Directory ~ Tour of 8/16 Central ~ ~ HOT NEWS, HOT FILES, HOT MESSAGES ~ ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ GEnieLamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.4, Issue 17 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Editor.......................................................Nate Trost 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? <<< """"""""""""""""""""""""""""""""""""""""""""""""""""""" ~ July 1, 1994 ~ FROM MY DESKTOP ......... [FRM] HEY MISTER POSTMAN ...... [HEY] Notes From The Editor. Is That A Letter For Me? A2PRO ROUNDTABLE STAFF .. [DIR] TOUR OF 8/16 CENTRAL .... [TOU] Directory of A2Pro Staff. Great Programmers Magazine. LIBRARY BIT BONANZA ..... [LIB] DEVELOPERS CORNER ....... [DEV] HOT Files You Can Download. News From Online Developers. 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 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. SPECIAL OFFER FOR GEnieLamp READERS! If you sign onto GEnie using the """""""""""""""""""""""""""""""""""" method outlined above you will receive an *additional* six (6) free hours of standard connect time (for a total of 10) to be used in the first month. Want more? Your first month charge of $8.95 will be waived! Now there's no excuses! *** GET INTO THE LAMP! *** """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" [EOA] [FRM]////////////////////////////// FROM MY DESKTOP / ///////////////////////////////// Notes From My Desktop """"""""""""""""""""" o TOP OF THE PAGE >>> TOP OF THE PAGE <<< """"""""""""""""""""""" FOUNDATION HITS A2PRO As if HyperCard IIGS wasn't enough, A2Pro has """"""""""""""""""""" now obtained permission to release Foundation 1.0.2 (now freeware) into its libraries! Just about any IIGS programmer who uses resources can benefit from Foundation, be sure and check out the details in this issue! As I write this, ICONference 1994 (known as KFest) is less than three weeks away. This will be the sixth KFest (and my fifth trip down to KC) and I'm really getting excited! For those of you who will be down there, be sure and stop and say hello to the GEnieLamp A2Pro staff and the rest of the A2Pro regulars. :-) We'll have complete coverage of KFest 94 in the next issue of GEnieLamp! Enjoy the issue! Nate Trost GEnieLamp A2Pro [EOA] [DIR]////////////////////////////// A2PRO ROUNDTABLE STAFF / ///////////////////////////////// By Nate Trost [A2PRO.GELAMP] ______________________________________________ APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE _____ ______ ______________________________________________ /_____|/______\ /__/|__| ___|__| /__/_|__| /_____/ Your Sysops: Greg Da Costa (A2PRO.GREG) /________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW) /__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP) /__/ |__|________// / \/_/ Nate Trost (A2PRO.GELAMP) [*][*][*] [EOA] [HEY]////////////////////////////// HEY MISTER POSTMAN / ///////////////////////////////// Is That A Letter For Me? """""""""""""""""""""""" By Nate Trost [A2PRO.GELAMP] o BULLETIN BOARD HOT SPOTS o WHAT'S NEW o PROGRAMMER'S TIPS o MESSAGE SPOTLIGHT >>> BULLETIN BOARD HOT SPOTS <<< """""""""""""""""""""""""""""""" [*] CAT10, TOP15, MSG{23}............Foundation from Lunar Productions [*] CAT11, TOP22, MSG{19}.............Patching The Apple IIgs Tool Box [*] CAT15, TOP1, MSG{84}.................................Tool Locator [*] CAT15, TOP14, MSG{128}..............................Window Manager [*] CAT15, TOP15, MSG{84}.................................Menu Manager [*] CAT36, TOP11, MSG{230}......................................ORCA/C >>> WHAT'S NEW <<< """""""""""""""""" FOUNDATION RERELEASED As you're probably heard, Foundation is now """"""""""""""""""""" freeware; the source should be available on GEnie soon, as soon as I can get my hands on all of it. However, I've JUST moments ago received permission from Marc Wolfgram to modify the existing Foundation v1.0.2 slightly and release it online. I've begun the necessary alterations, and, if all goes will, will have it ready to be uploaded sometime tomorrow. In particular, I need to add conspicuous freeware notices and some form of documentation. I've managed to add some freeware notices even though I can't recompile the code, and will write some simple documentation tomorrow afternoon. I hope to upload it very soon, so keep your eyes peeled. The first freeware release of Foundation will be, aside from the new freeware notices, identical to the 1.0.2 release previously available commercially. Once the source is released, it will be uploaded, and after that, future changes will be made available. The icon/bundle editor source has been made available. I may attempt to compile it as well. Er, I may even post that source very soon. (POWERPC.PRO [Sheppy], CAT10, TOP15, MSG:23/M530) <<<<< Foundation v1.0.2 has been uploaded to the A2Pro library. Should """"" be file #4174 when released. This version is identical to the commercial version except for the addition of freeware notices, a small readme, the inclusion of the Foundation Developers' Toolkit, and the addition of a script for rProgramInfo resources. (POWERPC.PRO [Sheppy], CAT10, TOP15, MSG:27/M530) >>>>> I noticed something with the hex editor; this was probably """"" documented somewhere, but maybe not. :) I don't think I actually read any of the docs (wait; I remember a Read.Me file of some sort. :) Anyhow, to toggle insert and overstrike in the hex editor, you use Cmd-E, which seems to be a standard (thankfully I figured this out before I retyped the entire resource. :) (A2PRO.HELP [ Sloanie ], CAT10, TOP15, MSG:44/M530) <<<<< I've just finished uploading a rather small file (about 6k), """"" containing a replacement Foundation.Data file, etc. to library 14. Here's the long description for this file... This archive contains a replacement Foundation.Data file for Foundation version 1.0.2. This supplies editors (ScriptEdit editors) for rProgramInfo, rWindParam1 and rRectList (used by Finder 6.0x) It also has had the rResourceName resource cleaned of orphaned strings. There is a ReadMe file as well (teach format) which details how to install this, what to watch out for, and lists some hints and tips for working with the ScriptEdit editor. It also covers some other topics related to Foundation. Packed with GSHK. This is a Must-Have item for Foundation users :) Keywords, comma separated. Foundation, ScriptEdit, editor The file number (when released) will be 4177. I should mention to all (Sheppy especially!!!!) that I have had Foundation hang (lock up) on me on occasion while working in the ScriptEdit editor. The details are in the Read.Me.NOW file in this archive. Also, this archive CAN be safely unpacked _directly_ to your Foundation.User folder as the replacement Foundation.Data file is named "NewFoundData", so it won't "toast" anything for you. :) Back to Merlin now... :) -Harold CornerStone - Watch for it! (H.HISLOP [CryptKeeper], CAT10, TOP15, MSG:46/M530) FILETYPE LIST UPDATE ][ am currently working on a new version of my list """""""""""""""""""" of "Official and Unofficial File Types." Since the most recent official list of file types is in the FType.Apple file that came out a year ago, I'm sure there are many more new types that have been assigned since then. If you have been assigned an official file type by Apple in the past year to year and a half, could you please post that file type/aux type combination and it's description string here? I could then release the most up to date list possible. Thanks. (BTW, I'll be creating a new FType.Lunatic.# file once my file type list is ready for release, as well.) -= Lunatic (: (A2.LUNATIC, CAT11, TOP20, MSG:3/M530) <<<<< Music Composer document( music sequence file). """"" File type: MUS($D5) Auxiliary type: $8006 Clay (C.JUNIEL, CAT11, TOP20, MSG:4/M530) >>>>> Oh, geez. I'll probably forget some. Here's a few, though: """"" FT Aux Use -- --- --- B0 0110 Modula-2 source code B0 0112 Logo Source Code B0 0C12 Logo "Finder Launchable" program 5E 8008 ORCA/C symbol file 5E 8009 ORCA/Pascal .int file Mike Westerfield (BYTEWORKS, CAT11, TOP20, MSG:5/M530) A2PRO CONTEST & RESULTS Here's the problem: A woman shows you three """"""""""""""""""""""" shells with a Pea under one of them. You pick one that you think might have the Pea under it, and she shows you that there's nothing under one of the OTHER shells. Now there are two shells left, one with the Pea under it. She gives you the option of sticking with the one you already picked, or switching to the other ... what do you do? The laws of probability say that if you switch you're more likely to win the game! Here's YOUR challange, write a short program in ANY language that will play the game a bunch of times and record the number of times won when "standing pat" and the number of wins when switching. Applesoft is the PERFECT language for this, however you may use any language you desire. The first person to U/L the program and source code to the A2Pro library and post the code in this topic (it SHOULD be very short) will win two hours of Non-Prime Time GEnie credit (i.e. a $6.00 credit to your bill). Good luck gang! --HangTime (HANGTIME [Tyrant], CAT11, TOP25, MSG:1/M530) <<<<< OK, here's a program that will show the results of 100 games where """"" the player does NOT switch once the empty one is shown. Of course, to find out what the results would have been if the player HAD switched, just swap the totals for right and wrong. It is presented here in a form ready for saving to a text file and EXECing. NEW 10 RIght = 0 20 WRng = 0 90 HOME 100 FOR GAme = 1 TO 100 110 PEa = INT ( RND (1) * 3) + 1 120 CHoice = INT ( RND (1) * 3) + 1 130 IF CHoice < > PEa GOTO 170 140 SHow = INT ( RND (1) * 2) + 1 150 IF SHow > = CHoice THEN SHow = SHow + 1 160 GOTO 210 170 SHow = PEa + 1 180 IF SHow > 3 THEN SHow = 1 190 IF SHow = CHoice THEN SHow = SHow + 1 200 IF SHow > 3 THEN SHow = 1 210 VTAB 10: 220 PRINT 230 FOR I = 1 TO 3 240 IF I = SHow THEN PRINT " Shown ";: GOTO 270 250 IF I = CHoice THEN PRINT " Chosen ";: GOTO 270 260 PRINT " "; 270 NEXT I 280 PRINT 290 PRINT " ___ ___ ___" 300 PRINT " / \ / \ / \" 310 FOR I = 1 TO 3 320 PRINT "| "; 330 IF PEa = I THEN PRINT "Pea"; 340 IF PEa < > I THEN PRINT " "; 350 PRINT " | "; 360 NEXT I 370 PRINT 380 PRINT 390 IF PEa = CHoice THEN RIght = RIght + 1: PRINT " A Winner! " 400 IF PEa < > CHoice THEN WRng = WRng + 1: PRINT " Try Again! " 410 PRINT 420 PRINT " Totals: ";RIght;" RIght " 430 PRINT " ";WRng;" wrong " 440 GET X$ 450 NEXT GAme 460 PRINT " out of 100 games" 470 PRINT SAVE SHELL ...Chris (K.FLYNN [ Chris ], CAT11, TOP25, MSG:5/M530) >>>>> Congratulations!! """"" After downloading your code, turning it into an executable BASIC program, and executing it several times, I've decided that... it works! :) You are hereby awarded a $6 GEnie usage credit for winning the Shell Game Contest. By the way, the executable BASIC program is available in our library as file #4179, if you still don't believe the results. :) (A2PRO.HELP [ Sloanie ], CAT11, TOP25, MSG:6/M530) KFEST 94 INFO """"""""""""" Y: "It's that time again!" W: "Time to change our socks?" D: "Time to annoy FOX's censors?" Y: "No! It's time to start discussing KansasFest!!" (Thank you, Warner Brothers). This year is #6 for KansasFest, that conference (in Missouri, of course) which comes but once a year. The idea is that people go, hang out for a couple of days with other computer users, stay up till 5 AM in the dorms, and basically have a good time. :-) This years' dates are July 21-23. The pricing information is as follows: Before 7-15 After 7-15 Registration & lunches: $200 $250 Private room, 2 meals: $45/night $50/night Double room, 2 meals: $35/night $40/night Note that the 2 meals is "two meals per day", dinner the night of your stay and breakfast the next morning. Contact ICON here on GEnie (or call 913-469-6502) for more information. You may ask: Why are you telling me this? Simple. A2Pro staff will be heavily in attendance in KC, and we'd like to meet the people who make this roundtable what it is. :-) Also, we have tentative plans for a debugging lab (like in years past) somewhere in Avila where attendees will be able to bring their software-in-progress and get instant help from other attendees and A2Pro staff. Don't forget, also, that A2Pro will be providing news updates from KansasFest as well as live RTCs from Avila! (Rumor has it that one or possibly more RTCs will actually be held in one of the Avila dorm elevators. But, that's just a rumor). Anyhow, KC is _the_ place to be next month for computer users and programmers. Hope to see you there! :) (A2PRO.HELP [ Sloanie ], CAT16, TOP21, MSG:1/M530) >>> PROGRAMMER'S TIPS <<< """"""""""""""""""""""""" THE BEAGLE COMPILER Hey there... I was wondering (rather desperately :) """"""""""""""""""" what the latest version of the Beagle Compiler is, if anyone might know. I have version 2.6 (copyright 1986 :) and it seems to have a few real nasty bugs, that cause my program to do weird things that it shouldn't be doing or occasionally crash into the monitor... Does anyone know if there were any updates since the Compiler was put out, and how I could get my hands on them? (B.VICTOR1 [> Vic <], CAT9, TOP10, MSG:20/M530) >>>>> I have version 3.2, Copyright 1986-1990. It seems pretty stable """"" except for occasionally changing from the 80-col. to 40-col. screen when I make an inappropriate keypress. Dunno where you could get it, unless QC still sells it. TomZ (T.ZUCHOWSKI, CAT9, TOP10, MSG:21/M530) <<<<< Of course QC still sells it. B) Call 1-800-777-3642 for upgrade """"" info. (JERRY.K [SyndiComm PR], CAT9, TOP10, MSG:23/M530) LINKING IN WITH MERLIN Are there any Merlin 16+ hackers who may know if """""""""""""""""""""" this is possible... I would like to either assemble Merlin source into ORCA/C compatible OBJ modules OR use a utility to convert one to the other! I want to experiment with some GNO/ME utility source which is mainly written in C but usually with some ASM routines. I don't really want to pay the $90US (+ 42% exchange) just to experiment so I'm looking for alternatives first. I have succesfully converted complete ORCA/M programs to Merlin 16+ on several occasions, its just the OBJ's which have me slowed. Any help would be appreciated. Thanks, Doug M. (D.MITTON [Doug], CAT3, TOP4, MSG:92/M530) <<<<< I believe that Merlin 16+'s 4th linker outputs OBJ files. """"" -G.T. Barnabas (BARNABAS [G.Templeman], CAT3, TOP4, MSG:93/M530) >>>>> Yep, the 4th linker (ie. LKV $03) spits out stanard OBJ files. I've """"" used these successfully with MPW link files, so I assume they'll be fine with ORCA/M. (RICHARD.B [Richard], CAT3, TOP4, MSG:94/M530) <<<<< Thanks for the information about Merlin 16+ 'lkv $03' producing """"" ORCA friendly OBJ module format files. After I read the manual again now it makes sense. Of all the places it mentions ORCA conversions it wasn't really clear here. Two additional queries; are current ORCA OBJ's OMF2?? Do I have to use the Merlin 'ver $01' command still?? Will Merlin produce EXE's that are compatible with GNO/ME shell? (Now I'm really pushing it!! ;-) ) Some of the utilities are ASM only. I am converting the source to Merlin format so I haven't actually tried it (lkv $03) yet. Thanks again for the information. Doug M. (D.MITTON [Doug], CAT3, TOP4, MSG:95/M530) >>>>> The current versions of the ORCA languages all produce OMF 2, but """"" object files from older versions of the compilers may produce older versions of OMF... (T.BUCHHEIM [] Tim 'pi' [], CAT3, TOP4, MSG:96/M530) <<<<< Yea, if you have Orca 2.0 then let merlin lkv 3 linker create the """"" OMF 2.0 files and Orca's linker will handle it. Also, if you have LinkIIGS that handles OMF 2.0 as well. (W.TUDOR, CAT3, TOP4, MSG:97/M530) TAIL PATCHING TECHNIQUE Goodness knows I don't read up on messages as """"""""""""""""""""""" often as I should, and as a result, I have too many to wade through right now . Let's get this tail patching thing discussed first. I know the TNs say that tail patching is bad to do, so don't tell me that it is--I already know this. However, tail patching is a very useful and powerful thing, and I've probably figured out a method that is about as safe as is possible. There are two return addresses on the stack, 99% of the time. The top one, (the one that's put on first), is put on when you JSL to $E10000, and is checked by a few functions, (like GetNextEvent), to fix bugs in big tools like the Dialog Manager. The bottom return address is generally, and supposed to be, put on by the tool dispatcher before it dispatches to the particular function. This address is how I tail patch. I simply replace this address with the tail patch part of the function, and wait patiently until it's called. The system never tests this address, as it's different if you call $E10000 or $E10004. Below is a very simple piece of code that demonstrates how I tail patch: function START PHB PHK PLB PHA PHX PHY LDA 8,S ;Get 2nd rtl addr from stack, STA return ;and save it. LDA 9,S STA return+1 LDA #functionEnd-1 ;Swap in our tail patch part. STA 8,S SEP #$20 LONGA OFF LDA #^functionEnd-1 STA $A,S REP #$20 LONGA ON PLY PLX PLA PLB JMP doFunction ;JMPs to the orig. addr of call functionEnd PHB PHA PHP PHB PHK PLB PHA PHX PHY LDA return ;put rtl addr in space we've alloced on stack. STA 9,S LDA return+1 STA $A,S BCS getout ;don't do our stuff if error getout PLY PLX PLA PLB PLP RTL return DS 3 END I am patching 27 calls in an Init right now, more than half of them tail patches, and everything works for me--and it should work for you, too. We first save the second return address from the stack, and fill it with the address of our tail patch. When this gets control, we make room on the stack, and put the old address back so we can call it when the tail patch RTLs. Simple as can be, eh! Tony Morales AKA. Hexman (T.MORALES [Hexman], CAT11, TOP22, MSG:38/M530) COLORING WINDOW GROW BOXES I was fooling around with the appearence of """""""""""""""""""""""""" windows, the color of title bars and such. The window was created with a _NewWindow call. Bits 7 - 0 of the fourth word of the color table pointed to by wColor, set the color of the interior of the grow box, according to p.25-17,TBR 2. While setting the bits of the other four words all work for me, setting these don't seem to affect the grow box in any way. Not that I really _want_ to change the color of the grow box, but I'd like to know why I can't. Oh yes, I'm running GSOS 6.0.1 if that has any bearing. Mark Wade (M.WADE7 [Mark], CAT15, TOP14, MSG:125/M530) <<<<< When I rewrote the Softdisk G-S Shell, my solution for making a """"" window with scroll bars but no grow box (and no "grow-box hole" in the window) was to set the colors so the grow box would be all white, and ignore clicks in it. However, I discovered that the color table didn't work. I stepped through a lot of Window Mgr. stuff to determine that, sure enough, the system does NOT (and never has) supported the grow box color-table stuff for the standard window-frame grow box. My solution was to write a routine to fix the color table of the grow box after the fact (but before the window drew). I may move this code into GSLib if others are interested in doing this sort of thing. -Greg Templeman, GS Software Engineer Softdisk Publishing (BARNABAS [G.Templeman], CAT15, TOP14, MSG:126/M530) READING /RAM IN BASIC.SYSTEM Since the beginning of time, BASIC.SYSTEM """""""""""""""""""""""""""" has not been able to handle using OPEN/READ/INPUT to read the /RAM disk. The code in BASIC.SYSTEM that handles it expects the disk to have exactly 51 directory entries in its root directory, and that isn't the case for the /RAM disk (which has fewer directory blocks to leave more room for data). When the code to handle INPUTting from the CATALOG hits the end of the root directory way before it expects to, it returns an END OF DATA error because it's too stupid to know any better. There are patches floating around out there that fix the problem, but I haven't seen one for ages, and not since BASIC.SYSTEM 1.1 or so. (POWERPC.PRO [Sheppy], CAT9, TOP7, MSG:132/M530) <<<<< Here is the routine that the Eamon Master uses to read a Catalog """"" into a string array: 1102 ONERR GOTO 1125 1105 PRINT D$"OPEN"CX$",TDIR": PRINT D$"READ"CX$: INPUT A$: INPUT A$: INPUT A$ 1110 INPUT B$: IF B$ = "" THEN 1125 1120 IF MID$ (B$,18,3) < > "DIR" THEN 1110 1121 X = X + 1:B$(X) = MID$ (B$,2,16) 1122 IF RIGHT$ (B$(X),1) = " " THEN B$(X) = LEFT$ (B$(X), LEN (B$(X)) - 1): GOTO 1122 1123 GOTO 1110 1125 POKE 216,0: PRINT D$"CLOSE" This seems to work OK with /RAM volumes of 64K and 3MB; at least I've never seen a crash with it. I've tried it with maxed 64K /RAM directories with no problems. Thanks to Dennis Doms for giving me this routine "way back when". TomZ (T.ZUCHOWSKI, CAT9, TOP7, MSG:133/M530) NIL, ZERO, NULL AND ZILCH I couldn't find the Inane Questions category so """"""""""""""""""""""""" I thought I would post this here. I have noticed references to setting fields to 0, nill, and null. Specifically TBR 3, pg 28-79; horzBar must be set to NIL. maxLines must be set to 0. maxCharsPerLine Must be set to NULL. If nil, null, and 0 all equal zero, then why the distinction? I can see a difference between nil and zero; nil is the absence of anything and zero is the absence of quantity, I guess, and null, well, that seems a lot like nil to me. Please, I am in need of elucidation. Okay, maybe I don't need it, but I would like it. Oh yeah. If zero is the absence of quantity, then why is maxCharsPerLine null rather than zero as is maxLines? I know, Why ask why. Mark Wade (M.WADE7 [IamtheWalrus], CAT1, TOP21, MSG:81/M530) <<<<< Apple's documentation is full of inconsistent uses of 0, NULL, and """"" NIL. Personally, I use "0" when referring to the value zero, "NULL" when referring to a 16-bit pointer of value zero, and "NIL" when referring to a long pointer. But that's just me. :) (POWERPC.PRO [Sheppy], CAT1, TOP21, MSG:83/M530) >>>>> In assembly, the distinction between NULL, nil and 0 is, well, nil. """"" :) That's assuming you mean a long (4 byte) 0, that is. The real source for all of the names is couched in today's most popular programming languages. The Mac, and by inheritance the GS, was designed for Pascal compilers. Sure, C has largely taken over on the Mac, and is popular on the GS, too, but historically, the Mac toolbox was designed for Pascal. When Apple came out with the GS, they contracted with us for an assembler, Megamax for C, and some other company (I don't remember the name anymore) for Pascal. The Pascal folks got in trouble, and never delivered--so Apple decided the GS was designed for C. Doncha love marketting types? :) Of course, since the GS is a C machine, we use Pascal strings throughout the toolbox, which C can't handle well. :O Anyway, in Pascal, the name of the constant for a pointer that doesn't point to anything is nil. In C, by tradition and in some .h files, it's NULL. In most computers, location 0 can't be used for anything productive, so the convention grew up to use 0 for the internal binary value for this kind of pointer. C even makes this a standard; Pascal doesn't say what the value actually is, but all of them I've used use 0. So, NULL is C-speak, nil is Pascal-speak, and 0 is the number they both use-- sort of assembly-speak. They all mean the same thing. Except Rez. As covered. Mike Westerfield (BYTEWORKS, CAT1, TOP21, MSG:85/M530) REQUEST PROCEDURE NAMING I need some help with """""""""""""""""""""""" SendRequest/AcceptRequests. The info I need, (while probably in the docs), is unclear, so hopefully someone can straighten things out for me. I am designing an application which will load a variable number of modules from disk at start-up time and then execute each. These modules, in turn, will each install a Request Procedure, so that the main application can keep track of them, and communicate with them later. I think I will be using InitialLoad2 to grab each from disk, as they will be OMF load files. I think I will need to allocate different IDs for each, which I will probably allocate in the $Axxx range, like the Finder does for Finder Extensions. My question is this. How should I form the NameString of both the main application and the external modules? The thing that confuses me is the fact that you can send application-specific request codes to certain Request Procedures only, by specifying a prefix string. The docs say you should form your string like, "Name~Product~," but if others make their own modules, this won't work, as everyone's name is different. Maybe for the main application, I can follow this example, but what about the modules? That is what is confusing me. Thanks in advance! Tony Morales AKA. Hexman (T.MORALES [Hexman], CAT15, TOP1, MSG:84/M530) <<<<< Well, you can name them however you want, but I'd use this: """"" nameofyourprogram~modulename or hexman~nameofyourprogram~modulename Of course, you could replace "hexman" with whatever you want...the only purpose would be to make your thing work even if someone else wrote a program with the same name... (T.BUCHHEIM [] Tim 'pi' [], CAT15, TOP1, MSG:85/M530) >>>>> There -is- a logic to all of this. :) """"" The idea is that you will make a program, called Foo. Your program will install a request procedure. You have a company named Bar. You'll format your name string as follows: Bar~Foo~ All request codes greater than $8000 are defined for a name string only; that is, $8001 for Apple~Finder~ is different than $8001 for Bar~Foo~. Your modules should install things like: Bar~FooModule1~ or something. Then, they can make requests to your main procedure by sending them to Bar~Foo~. Bar~Foo~, on the other hand, can communicate with its modules in different ways. It can send request codes to everything installed (with sendToAll), with an appropriate procedure accepting the call and acting on it. Or, it can optionally send the code to specific modules, by name, if you know every module which will be installed ahead of time. Hope that clears things up a bit; if not, ask more questions. :) (A2PRO.HELP [ Sloanie ], CAT15, TOP1, MSG:87/M530) <<<<< I don't think I explained my situation to the best of my abilities, """"" so I will try a bit harder. For the main application, "Foo," created by, "Bar," the NameString for the Request Procedure will be, "Bar~Foo~." This makes sense, and anyone can send requests to this if they wish. Now the hard part. I will have a number of external modules, which the main application will need to communicate with, kind of like how the Finder talks to Finder Extensions. I'm not sure how Finder does it, since Finder Extensions can have any NameString. Anyhow, I will have no idea of knowing which modules are installed. At start-up time, I will traverse a subdirectory and load in the modules one at a time with InitialLoad2. At this point, the modules will install their Request Procedures. I am undecided on how I will communicate with them. If I made it a point to give each module a NameString of, "ApplicationName~CompanyName~ModuleName~," would this be bad? How does Finder do it? I'm sort of getting this stuff--in a few days, I will get it. Tony Morales AKA. Hexman (T.MORALES [Hexman], CAT15, TOP1, MSG:88/M530) >>>>> What Finder does is send its requests to all procedures installed, """"" with SendRequest parameters of sendToAll and stopAfterOne. (there are several exceptions, BTW; finderSaysHello, for one is sent to all procedures, but doesn't stop after one, so everybody gets a chance to look at it). You have two options. #1) Do what Finder does. #2) Cache a list of the user IDs of your modules, as you install them. Whenever you need to communicate with them, send a request using the parameters sendToUserID and stopAfterOne. (with this method, you'd have to send a separate request to each prodedure). Hope this helps... (A2PRO.HELP [ Sloanie ], CAT15, TOP1, MSG:89/M530) <<<<< If the modules are loaded separately, I would give each of them a """"" namestring of "yourcompany~yourapplication~modulename~". This would be the best way to do it, and, in fact, is the way the PR6 suggests doing it. (POWERPC.PRO [Sheppy], CAT15, TOP1, MSG:90/M530) FLOWCHART FUN Another humorous tidbit courtesy of The Chatlines' """"""""""""" Jokemaster. ANATOMY OF A FLOWCHART ------------------------------- | | | D O E S I T W O R K ? | | | ------------------------------- yes| |no | | V V ------------ -------------- | Don't mess | | Did you mess | | with it! | | with it? | ------------ -------------- | yes| |no | | | | V V | ------------ ------------- | | You idiot! | | Will you | | ------------ | catch hell? | | | ------------- | | yes| |no | | | | | V | | | ------------ | | | | Did anyone | | | | | see you? | | V | ------------ | --------- | no| |yes | | CAN IT! | | | | | --------- | V V V | | ------ ----------- | | | Hide | | You poor |<--- | | | it!! | | b*stard!! | | | | ------ ----------- | | | | | | | | | | | | | | V | | | | --------------- | | | | | Can you blame | | | | | | someone else? | | | | | --------------- | | | | yes| |no | | | | | | | | | | | ----- | | | | | ------- | | ---------------- | | | | | | | | | | | | V V V V --------------------------- | | | N O P R O B L E M ! ! | | | --------------------------- (A2.TONY [A2 Librarian], CAT16, TOP2, MSG:199/M530) >>> MESSAGE SPOTLIGHT <<< """"""""""""""""""""""""" This is how I implemented enabling or disabling rBundle icons for my program Music Composer. I don't do anything to the rBundle in the program itself. I locate the DeskTop file in the icons folder(I search every volume till I find the correct one). When the program is launched for the first time the rBundle is copied to the DeskTop file in the icon subdirectory of the volume that the program was launched from. The next time the program is launched the finder checks the rVersion to see if it is in the DeskTop file. If it is it doesn't copy the rBundle again. From then on the finder uses the information in the rBundle in the DeskTop file to choose which icons to display. So this is the file that needs to be changed. The matchflags in the onedoc structure should be set to %11(decimal 3) to match the file type and auxiliary type. If you change them to %111(decimal 7) to also match the file name, the match will fail because there is no name to match. There will be no icon created. Clay P.S. I am thinking of writing a program that will allow a user to disable icons from any program that uses rBundles using the same method. It would only write to the DeskTop file. If that got to bunged up, you could just delete it and have programs recreated it each time they launch. (C.JUNIEL, CAT11, TOP8, MSG:54/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 Nate C. Trost [A2PRO.GELAMP] >>> 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. <<< """"""""""""""""""""""""""""""" GNO 2.0.5 NEWS This area has been quiet for a spell so I thought I'd post """""""""""""" a question and a 'nag'.... I just obtained MuGS (the mail reader) but it required MicroEmacs, any idea where I may find it? I've not heard of it and I don't know what it is. And now the 'nag'.... Any idea when the version of GNO/ME with the Super Serial driver may be available? Thanks for any input you (or anyone else) may have!! Doug M. (D.MITTON [Doug], CAT30, TOP1, MSG:52/M530) <<<<< MicroEmacs is a mini version of a venerable UNIX text editor. It """"" was ported to the IIGS by Morgan Davis, and it's probably in Morgan's library here on GEnie. >Any idea when the version of GNO/ME with the Super Serial driver may be >available? It's much closer than before; I seem to have one bug left in it (the Super Serial driver, that is :), and GNO/ME 2.0.5 is in the works - I'm bug busting furiously. So, now's the time to bug me about any specific _new_ features you want in 2.0.5. Jawaid (PROCYON.INC, CAT30, TOP1, MSG:53/M530) >>>>> Ideas for the V2.0.5 update: """"" 1) A good functional Super Serial card driver for any slot! (I know, a smart 'butt'!! :-) ) 2) Some kind of user file security system. I've seen others suggest this so I'm just adding my vote. 3) Reliability! I know this is broad but I've been having a couple of problems and maybe if I explain them you'll know what I mean. - There appears to be race conditions when writing files to disk. If I have just multiple file copies being done in the background some of them will not copy. The task terminates OK but the copy is not done. - Quite often GNO/ME locks up on login. When I am on the console I just access GnoSnooper and kill GSH. I can then generally login normally. BUT when I'm remote this is a real pain. If it is a matter of reliability over speed of task switching, please allow an option so that I can decide which on my system. I'm not up on the technical aspects BUT if GNO/ME can decide that during a disk access (write) to suspend task switching I would prefer it. 4) A full-fledged scripting language for GSH. It would be nice to be able to use some of the scripts I read about while learning GNO/ME/BSD. 5) Fix the remote login problem where the garbage is displayed on the screen before the login: prompt. Someone here in A2Pro mentioned it was the fault of GETTY. This isn't a problem for me as my remote system uses modified character mapping so that it all looks good BUT anyone else I have dial in really gets an eye full. I know its just cosmetic but sometimes looks mean more than function to the casual (read non-technical) user. (And there are a lot of surprised people when they see UNIX running on a TOY computer!) Just as an aside I really like the multi-user environment simply because I can login under different IDs and be in a specialized environment just for the task I want to do. (ie. programming, maintenance, read downloaded messages, remote file transfers, etc, etc, etc.) All other reasons aside, this is very handy. Thanks for for a 'really neat' system for my 'poor old and decrepit' Apple //. I hope we can see 2.0.5 real soon (hint-nudge-wink)!! Doug M. (D.MITTON [Doug], CAT30, TOP1, MSG:54/M530) <<<<< >1) A good functional Super Serial card driver for any slot! """"" > (I know, a smart 'butt'!! :-) ) That will be in there. >2) Some kind of user file security system. I've seen others suggest > this so I'm just adding my vote. This is problematic. I.E., it would be a huge amount of work, and I haven't been sold on it yet. > - There appears to be race conditions when writing files to disk. This is more likely a bug in the 'cp' program, which is known to have other odd quirks. > - Quite often GNO/ME locks up on login. When I am on the console I > just access GnoSnooper and kill GSH. I can then generally login > normally. BUT when I'm remote this is a real pain. Not sure what causes this, but other users have reported it (it's a gsh bug). > If it is a matter of reliability over speed of task switching, Just so you know, it's not :-) The actual GNO Kernel, which handles the task management and all that, as far as I know, has exactly 1 bug that occasionally causes FPNum to crash when intensive floating-point calculations are going on. There are no bugs that cause programs to subtly work incorrectly. >4) A full-fledged scripting language for GSH. It would be nice to be >able to use some of the scripts I read about while learning GNO/ME/BSD. I've been looking into this, and while it probably won't make 2.0.5, it probably won't be long after that (people are bugging me to release 2.0.5 for the bug fixes). Thanks for your comments, suggestions, and *gasp* bug reports! Jawaid (PROCYON.INC, CAT30, TOP1, MSG:56/M530) >>>>> How about more Unix system calls, like popen(), pclose(), """"" waitpid(), select(), etc. (S.REEVES2 [Steve], CAT30, TOP1, MSG:55/M530) <<<<< Ahh, yes. select() was quite a bit of code, but it's in 2.0.5. """"" waitpid() is another large chunk of code, and probably won't make it. popen() and pclose() can probably be done. Jawaid (PROCYON.INC, CAT30, TOP1, MSG:58/M530) GNO & ORCA EDITOR I am using GNO 2.0.4 and do have troubles with the """"""""""""""""" ORCA editor 2.0.? The symptom is, that the shell (or kernel) is "stealing" keypresses from the editor, and diaplays them on the shell. This happens randomly, but at a rate of about every 3 to 30 characters typed and independent of the typing speed. Besides disturbing, it has the bad sideeffect, that the "garbadge" transfered to the shell is executed when a return is "stolen". The editor is the only task at that time BTW. Any cure to it? Alex (A.CORRIERI [Alex], CAT30, TOP8, MSG:6/M530) <<<<< Set the auxtype on the editor to $DC00 and everything will be fine. """"" (POWERPC.PRO [Sheppy], CAT30, TOP8, MSG:8/M530) 65816 ASSEMBLER IN C Okay, I have this 65816 assembler that's written in """""""""""""""""""" C, and is somewhat ORCA/M compatible. Trouble is, I haven't managed a port to ORCA/C yet (I developed it with GCC to speed the process), and I'm much too busy to do it myself. If anyone wants, I'll upload it to the Procyon library and whoever wants to can port it. Jawaid (PROCYON.INC, CAT30, TOP1, MSG:57/M530) >>> NEWS FROM GS+ MAGAZINE <<< """""""""""""""""""""""""""""" ADDRESS CHANGE FOR EGO SYSTEMS Effective June 15th 1994, EGO Systems and """""""""""""""""""""""""""""" GS+ Magazine have moved! Our new phone numbers are: Technical Support and Inquiries (new): 615-332-2087 FAX (new): 615-332-2634 Orders (unchanged): 1-800-662-3634 Mail Address (unchanged): EGO Systems/GS+ Magazine P. O. Box 15366 Chattanooga, TN 37415-0366 Please make a note of our new numbers, and remember to use them, and not our old numbers, in the future. Steven W. Disbrow Publisher of GS+ Magazine (S.DISBROW [GSPlusDiz], CAT33, TOP5, MSG:41/M530) >>> NEWS FROM THE BYTE WORKS <<< """""""""""""""""""""""""""""""" LATEST ON ORCA UPDATES A while ago I mentioned that the next update was """""""""""""""""""""" going to include fixes to all known bugs. Well, it's not working out that way. It's taking longer to find & fix them, and enough have been fixed that I think it's worth updating our production disks. So, here's what I'm going to do: 1. The next update will ship this month. It will include a number of bug fixes, including a few that are not yet in the private libraries, but will not include all of the bug fixes, and will not include any major new features. 2. This update will be as free as I can make it. If you have ORCA/M 2.0.3, ORCA/Pascal 2.0.1, ORCA/C 2.0.1, or ORCA/Modula-2 1.0, you'll be able do to download the updates from GEnie. They will be free. If you want a copy on disks, you can order them. If you order the disk update with another product, so I cover shipping, it will still be free. Otherwise, it will cost you the normal update fee. 3. I'll continue working towards the original goal of fixing all reported bugs and adding some of the cool features that have been discussed in this category. The goal has not changed--it just seems worthwhile to release an update along the way! Mike Westerfield (BYTEWORKS, CAT36, TOP3, MSG:204/M530) BYTE WORKS SPREADS OUT I heard a rumor from a reliable source - """""""""""""""""""""" well, a great guy, anyway :) - that the Byte Works was working on a spreadsheet for the GS. I would just like to say that I'd be V E R Y interested in such a program. I use the spreadsheet in AppleWorksGS a lot, but find it hard to navigate around in. It would sure be nice to have something with fewer rows & columns (ideally, I'd like to be able to set the number of these myself). It would also be nice to have top & bottom and/or side by side windows (as are available in AppleWorks Classic). Could you please let me know if something like this is really in the works? As I said, I would be very interested. Thanks, Mark (M.KLINE1, CAT36, TOP3, MSG:207/M530) <<<<< Yes, something like this is really in the works. It's called Quick """"" Click Calc, and will be out this month. (More on that in a moment.) I'm working with the GEnie staff now to get a Byte Works support area set up in A2, which seems a little more appropriate for a spreadsheet. > I use the spreadsheet in AppleWorks GS a lot, but find it > hard to navigate around in. It sure would be nice to have > something with fewer rows and columns (ideally, I'd like to > be able to set the number of these myself). Did that. :) The max row/column in QCCalc is 32767 in each direction. The default is ZZ columns and 999 rows. You can set the size of a spreadsheet, though, so the scroll bars will make sense in your program. > It would also be nice to have top & bottom and/or side by > side windows... Does that. In the desktop world, it's called split screen. As far as I know from personal experience, QCCalc is the 2nd GS program to implement true split screens. The first was PRIZM. (There are, no doubt, others, but I have not used them.) You can split the screen verically, horizontally, or both. There will be a more comprehensive & detailed list in A2 once I make the official announcement, but here's a quick list of some of the more prominent features: 1. Publish & subscribe 2. Optional encryption 3. Date, time & grade (as in (A- + B)/2 = B+) formats 4. Lots of formatting options, including cell by cell: a. Font & background color b. Font size, family & style c. Borders in 3 sizes 5. Change the width or height of cells (to accomodate various font sizes) 6. Charts: a. Pie charts (3 styles) b. Bar charts c. Line graphs d. Bar & Line graphs support more that one data set for comparing data e. Bar & Line graphs in 2 or 3 dimensions (as in surfaces and rows & columns of bars) f. Stacked or side by side bars g. Up to 3rd order least squares fits to data h. Data legends automatically included in the chart That sort of hits the high points. There's lots more. Mike Westerfield (BYTEWORKS, CAT36, TOP3, MSG:208/M530) LOGO Q&A Thanks for the fix to LOGO. I tried the _GO_ statement and it """""""" worked fine. Since then, I've come up with a couple of other questions. First, I haven't had any luck playing animation files. When I open one, a movie window opens and the light on the disk drive flickers, then the computer just sits there with the wait cursor showing and the FILE menu hilited. Also, I tried several statements which I thought would be ok, but LOGO would not accept them. Could you tell me if I'm doing something wrong, or if they're just not legal? 1. WHILE :n > 0 [MAKE "r FIRST ITEM :n :cL IF PntInRect MOUSE :r [GetCtlRec ITEM :n - 1 :cL OP "TRUE] MAKE "n :n - 2] where _PntInRect_ returns TRUE or FALSE. I got the following error: IF doesn't like [MAKE "n :n - 2] as input If I use _TEST_ and _IFT_ it will run, so it seemed to me it should run like it is. 2. IF EQUALP :domPos "HORIZ [IF :moveDir = 2 [MAKE "newCol :newCol - 1] IF :moveDir = 3 [ChangeDomPos] IF :moveDir = 4 [ChangeDomPos MAKE "newRow :newRow - 1]] gives the error message: IF doesn't like [IF :moveDir = 3 [ChangeDomPos] IF :moveDir = 4 [ChangeDomPos MAKE "newRow :newRow - 1]] as input If I add extra brackets to explicitly show what to do for false conditions it will run, but again I don't understand what's wrong with the original form. Since I can correct the problems I guess they don't really matter, but I am curious about them. Thanks, Jack (AJ.WILSON [Jack], CAT36, TOP32, MSG:133/M530) <<<<< I don't know why you're having trouble with animations. It could """"" be anything from not waiting long enough to not having enough memory to a bug in Logo to a bug in something else that is affecting Logo. Before I can tell, I'll need enough information to see the problem on my own computer. The IF statement has this format: IF condition true-list false-list In your example, you didn't give the false-list, so Logo tried to use MAKE... It didn't like it, and said so. If you code a false portion, things should work better. Adding the extra set of brackets does that-- you're adding an empty false condition. The second example is the same problem in a different statement. Mike Westerfield (BYTEWORKS, CAT36, TOP32, MSG:134/M530) >>>>> When I was in a RTC the other night I mentioned I was using Wings """"" to launch my programs, and someone said it has been known to cause memory conflicts. That may be my problem with animation files not loading. I've tried loading them after starting LOGO from the finder and so far it's worked every time. When I use Wings, loading an animation file hangs about half the time. I was looking at the LILYPADS program from the library and noticed two commands, _SETRWRECT_ and _SETRWPROMPT_, that are not in the manual. Are there any other undocumented commands, and will you be documenting them sometime? Finally, has anybody mentioned a quirk with the cursor when LOGO is started? It apparently is initialized to the upper left corner, but doesn't get redrawn there so it appears to be wherever it was when I launched LOGO. Then when I start to move it, it jumps to the upper left corner and moves from there. Not a serious problem, but a little disconcerting. Jack (AJ.WILSON [Jack], CAT36, TOP32, MSG:135/M530) <<<<< I can't think of any other undocumented commands. Those slipped in """"" when I moved a Mac version back, and I forgot to put them in the release notes file. I 'll correct that oversight. I'll also look into the cursor jump. I had not noticed it myself until you pointed it out, even though I must have seen it happen lots of times. Mike Westerfield (BYTEWORKS, CAT36, TOP32, MSG:136/M530) GS LOGO CALLBACK LIBRARY In the CALLBACK file on the GS LOGO disk the """""""""""""""""""""""" CALLNBA callback shows three paramteters required; NBAname, param and CallType. In the reference manual only NBAname and param are explained. Is CallType the same as type (but ton, text field or graphic object)???? Thanks RayR (R.RATTE1 [RAYR], CAT36, TOP32, MSG:137/M530) <<<<< I'm working from memory here, so if this does not work out, be sure """"" and let me know. In that case, I'll look things up for you when I'm back in the office on the 27th. NBAs can be called with several messages indicating what is happening, more or less like an NDA is called with an even type to tell it what to do. The last parameter is a number indicating what the NBA is supposed to do. These are listed in the information send out by RWP for writing NBAs, and should have been listed in my manual. You can get the numbers from RWPs programmer information if I really left them out. Look for a table of numbers under the call. Mike Westerfield (BYTEWORKS, CAT36, TOP32, MSG:138/M530) >>>>> Since Mike is working from memory (a very dangerous thing at his """"" age), and I'm not, here is his post from last November on AOL: -------------------------------- There is a bug in the CallNBA file. The header line for the CallNBA procedure (located in the file CallBacks) is: TO CallNBA :NBAName :param :CallType It should be: TO CallNBA :NBAName :param -------------------------------- Hey, Mike. Are you vacationing somewhere without a computer? (bummer) Cheers... Bill Lynn (BILL.LYNN [Studio City], CAT36, TOP32, MSG:139/M530) MACRO STRANGENESS Here's a weird problem. """"""""""""""""" This file is buggy.macs &l bugmac &l anop aif t:abc="G",.exists abc equ 0 mexit .exists nop mend Then, try compiling this: mcopy buggy.macs list on trace on gen on aa start bugmac bb anop end I consistently get an addressing error on the line bb anop. Sometimes, instead of saying "error bugmac.asm" it would say error followed by just one letter. The bug happens w/o the list, trace, and gen statements too. This is, btw, a stripped version of a problem with real code. -- Jay The formatting is off. aa and bb are labels. (JAY.KRELL, CAT36, TOP9, MSG:70/M530) <<<<< It's not a bug, it's a feature. :) When the macro is evaluated on """"" pass 1, abc has not been defined, so t:abg="G" is false. On pass 1, the macro defines abc and exits. On pass 2, the label exists, the expression is true, and the macro generates a NOP instruction. A macro that generates a different number of bytes on pass 1 and 2 will cause addressing errors in subsequent labels. This is obviously a test case, not a full macro, so I don't know if it makes sense to generate a NOP instruction in one situation, and an equate in another. Certainly, there are cases where the existance of a label will determine whether you want to generate code or not -- a debug macro is a good example. I'll assume you really want the macro to work this way. In that case, try testing for the existance of the label with c:abc, rather than t:abc="G". This will give the same result on both passes. Mike Westerfield (BYTEWORKS, CAT36, TOP9, MSG:71/M530) [EOA] [TOU]/////////////////////////////// TOUR OF 8/16 CENTRAL / ////////////////////////////////// The Great Programmers Magazine """""""""""""""""""""""""""""" Chris Budewig [K.FLYNN] A full directory of all files on each issue of 8/16 and 8/16-Central can be found in file #3382 (ESC.INDEX.BXY). A condensed directory of the contents of this issue is included below. The code letters in parentheses next to each item mean: S : Source code -- what you need to create a program X : Executable program -- you can run this directly! D : Documentation -- tells how the program works and what to do with it A : Article -- explains a subject and probably the source code that demonstrates it >> 8/16-Central - September, 1991 - File #3447 << """"""""""""""""""""""""""""""""""""""""""""""""" /ES.CENTRAL.9109/ ..About.This.Disk Introduction to this issue ..Columns/ ....WhatsNew The latest in the world of Apple II - Total Control ....DBMaster (A) DBMaster Tutorial, part 2 - creating an accounting system (includes sample DBM files) ..Q.And.A ....KansasFest Tour of the Apple Central Expo at KansasFest '91 ....AOL.TT America Online TechTalk - Ethernet connections and loading GS code into bank zero ....GE.TT GEnie TechTalk - RTC on the Complete Pascal 2.0 resource editor ..Apple.II ....Dungeon (SXA) Adventure game programming, part III - searching for hidden items, picking up and dropping items, and saving an adventure ....AmperPrint (SXA) Print a portion of an array to the screen ..Apple.IIgs ....SHR.Text (XSA) A SuperHires Character Generator - handles drawing text in different colors, scrolling, and screen/color fading; includes the entire text mode character set and draws on an 80 x 25 screen matrix ....ZOUNDS (SXA) Unleashing the 'S' in the GS - how to play sounds The last issue had an article by Randy Brandt that sped DLT8 up at its weakest point, the scrolling file picker. It was a machine language routine that would scroll any portion of the screen up or down. This month Karl Bunker submits his solution to the same problem. Instead of scrolling the screen faster, his ampersand routine will print a portion of an array to the screen, one element per line, with one call! Nate Trost begins a series of articles on playing sounds. In this installment, he describes the sound hardware of the Apple IIGS, gives examples of how to play digitized sound using the Sound Toolset, and teaches how to create sounds by accessing the sound hardware directly. >> 8/16-Central - October, 1991 - File #3448 << """"""""""""""""""""""""""""""""""""""""""""""" /es.central.9110/ ..About.This.Disk Introduction to this issue and obituaries ..Contents Table of Contents ..Columns/ ....WhatsNew The latest in the world of Apple II - Reviews of File Detective 1.0 and Second Chance 2.0 ....HyperLab/ (A) A preview of HyperStudio 3.0 ....VaporWare Murphy Sewall's Industry Snapshot ..Q.And.A/ ....GE.TT GEnie TechTalk - The advent of GNO/ME and discussion on burning EPROMs ....AOL.TT America Online TechTalk - Requests for System 6 additions ..Apple.II/ ....TEFH/ (SXA) Text Editor From the Hot place - A simple (functionwise) text editor ....Dungeon/ (SXA) Last in the series on adventure game design - Non-player Characters--talking & fighting, shining light in the darkness, and using & consuming items ..Apple.IIgs/ ....FileFind/ (SXA) A program to search for files on disk by filename, filetype, auxtype, size, locked status or creation/modified dates -- it's even _flowcharted_ ....Menus/ (SXA) Using custom menus in desktop programs - how to make a Colors menu like Finder's ..GOODIES/ ....supermagic.bxy (SXD) An animation routine library - gradient palette, full or partial color cycling, screen fonts, shape plotting and animating, pixel plotting, line drawing, Sound Smith music playing, etc. In this (final) issue of 8/16 Central, Jerry Kindall shares the ins and outs of editing text. His editor, the Text Editor From H... er.. the Hot place, will let you move the cursor up/down/left/right, toggle between insert and overstrike mode, and insert & delete characters (word-wrapping as needed). All those other Appleworks features were left as an exercise for the reader [grin]. On the 16-bit side, I've always wondered how to implement custom menus, but never bothered to crack the manuals to research it. Lane Roath shows how it's done by creating a 'Color' menu similar to the one in Finder's menu bar. It's surprisingly simple! [EOA] [LIB]////////////////////////////// LIBRARY BIT BONANZA / ///////////////////////////////// HOT Files You Can Download """""""""""""""""""""""""" By Tim Buchheim [T.BUCHHEIM] >>> Foundation <<< """""""""""""""""""" File # 4174 FDN1.0.2.BXY (GS) Uploaded on 6/17/94 by POWERPC.PRO About 270K (d/l time approx. 23 minutes @ 2400 baud) The long-awaited freeware release of Foundation, the popular resource-editing tool. This archive contains a version of Foundation identical to the commercial release v1.0.2, except for the addition of freeware notices, the inclusion of the Foundation Developers' Toolkit, and the addition of a script for the rProgramInfo resource type. Source code for a sample editor module is included; however, the Foundation source code is not. For information on the source code to Foundation iteself, see the Fdn.ReadMe file in this archive. File # 4177 FOUND.DATA.BXY (GS) Uploaded on 6/21/94 by H.HISLOP About 7K (d/l time approx. 42 seconds @ 2400 baud) This archive contains a replacement Foundation.Data file for Foundation version 1.0.2. This supplies editors (ScriptEdit editors) for rProgramInfo, rWindParam1 and rRectList (used by Finder 6.0x) It also has had the rResourceName resource cleaned of orphaned strings. There is a ReadMe file as well (teach format) which details how to install this, what to watch out for, and lists some hints and tips for working with the ScriptEdit editor. It also covers some other topics related to Foundation. Packed with GSHK. This is a Must-Have item for Foundation users :) >>> Source Code <<< """"""""""""""""""""" File # 4181 W6.SRC.BXY (ALL) Uploaded on 6/22/94 by HANGTIME About 106K (d/l time approx. 8 minutes @ 2400 baud) Source code for Warp Six BBS public domain version 2.5. Requires Merlin 16 or Merlin 16+ to assemble. Includes XModem send/receive, YModem send, and IIgs modem port driver written in assembly language that can keep up with XModem 4K uploads at 9600 bps with LAPM and hardware handshaking and supports up to 38400 bps. Written by Jim Ferr, for the public domain. File # 4168 MC.RBUNDLE.BXY (GS) Uploaded on 6/13/94 by C.JUNIEL About 2K (d/l time approx. 12 seconds @ 2400 baud) This is a sample source code for the rBundle used the program Music Composer. It Icons for the program, an alias, and Music composer sequencer file, SynthLab sequence file, and Standard MIDI file File # 4143 CNF.SRC.BXY (ALL) Uploaded on 5/31/94 by RICHARD.B About 23K (d/l time approx. 2 minutes 18 seconds @ 2400 baud) Merlin source code to a text adventure (CODE NAME: Firefly) that I wrote in 1983 (AppleSoft), and recently (March 1993 :-) converted to assembly. The adventure is available in A2 (page 645). >>> Information about Matt Deatherage <<< """"""""""""""""""""""""""""""""""""""""" File # 4163 MATT.6.4.TXT (ALL) Uploaded on 6/7/94 by E.MUELLER About 8K (d/l time approx. 48 seconds @ 2400 baud) This file contains updated information on Matt Deatherage, as of 6/4/94. VERY IMPORTANT - PLEASE READ! File # 4158 MATT.4.94.TXT (ALL) Uploaded on 6/7/94 by E.MUELLER About 17K (d/l time approx. 1 minute 42 seconds @ 2400 baud) In addition to reading this file, PLEASE read the file "Matt.6.4.txt" for more updated information. >>> Miscellaneous <<< """"""""""""""""""""" File # 4180 COPYFORK.BXY V1.6 (GS) Uploaded on 6/22/94 by RICHARD.B About 11K (d/l time approx. 1 minute 6 seconds @ 2400 baud) A replacement for Merlin's COPY command. Supports full GS/OS pathnames and switches for selective fork copying, and rResName an high bit stripping. High bit stripping is handy for batch copies to ORCA or MPW environments, or for input to text editors. File # 4179 SHELL.BXY (ALL) Uploaded on 6/21/94 by A2PRO.HELP About 2K (d/l time approx. 12 seconds @ 2400 baud) This is Kevin Flynn's winning entry to the A2Pro RT "Program the Shell Game" contest. It's an Applesoft BASIC program which runs 100 trials, making a random choice each time (and _not_ switching, when offered the choice). See A2Pro BB Category 11, Topic 25 for background information on the contest and the shell game problem itself. File # 4152 INFORM.BXY (GS) Uploaded on 6/3/94 by K.FLYNN About 268K (d/l time approx. 26 minutes 48 seconds @ 2400 baud) This archive contains version 4.0 of the Inform story compiler complete with documentation. Inform is a compiler that allows you to produce Infocom style adventure games which can be run using a ZIP (Zork Interpreted Processor?) program just like any other Infocom game (see InfocomPro elsewhere in this library for details on acquiring a ZIP program). The original program was written in C which I ported to ORCA/C for the Apple IIGS. File # 4149 RWRITER4.BXY (ALL) Uploaded on 6/2/94 by BRANDT About 54K (d/l time approx. 5 minutes 24 seconds @ 2400 baud) This archive converts your existing TimeOut ReportWriter to a version compatible with AppleWorks 4. Distribute freely. File # 4148 FADEIN.BXY (ALL) Uploaded on 6/2/94 by BRANDT About 1K (d/l time approx. 6 seconds @ 2400 baud) This FadeIn module for AfterWork (AppleWorks 4 only) fixes a bug which caused FadeIn to waste desktop memory each time it was accessed. Distribute freely since it's useless unless you already have AfterWork. [EOA] [RTC]////////////////////////// RTC WATCH / ///////////////////////////// Bits and Pieces from A2Pro Real Time Conferences """""""""""""""""""""""""""""""""""""""""""""""" By Tim Buchheim [T.BUCHHEIM] >>> Creating GS/OS strings in ORCA/M <<< """""""""""""""""""""""""""""""""""""""""" Hang, Tim. Either of ya know if there is a macro in the ORCA libraries to generate a GS/OS string? There should be..let me look I can't find one, and I've looked and looked and ... looked. I'm looking for one now...ahh, found it DOSIN makes a GS/OS input string, DOSOUT makes a GS/OS output string What's the difference? GS/OS output strings have a buffer length word followed by an input string. and input string is a length word followed by the string itself Oh yeah--that's right. Does it say what library they're in? It's in the miscellaneous macro chapter of the manual umm...it's M16.ORCA in the ORCAInclude folder >>> Figuring out those pesky softswitches <<< """"""""""""""""""""""""""""""""""""""""""""""" If you access $C08B twice, you r/w enable the language card RAM, right? I looked for the disk my //e tech ref was on, but couldn't find it. here it is, in the GS ref....reading C08B twice read-enables RAM, write-enables RAM, and uses $D000 bank 1 OK, Tim. What happens if you only hit that switch once. once? umm...it doesn't say Yuck! >>> NDAs showing startup icons? <<< """"""""""""""""""""""""""""""""""""" In an NDA's Init routine, I want to grab an icon from the rFork for ShowBootInfo. First of all, is this a legit thing to do? Your Init routine doesn't get called until DeskStartUp, and by that time, the boot is already 99% over. Okay, so I can assume the Resource Manager is available, if not already started, so I can just go ahead and use it? Make your an Init that calls InstallNDA--that way you can call ShowBootInfo when your Init gets control. For DeskStartup, QDII is already active, so ShowBootInfo won't do anything I already have the NDA showing a boot icon, but the icon image is in the code. Now I want to move it to the rFork. How long can the image be displaying if it's being shown at DeskStartUp time? I think a technote covers using resources from NDAs.. It gets put right in line with all the other boot icons. Tim, #71, or 53. Yeah--but how long until RefreshDesktop wipes out the splash screen? Yeah, #71 covers using resources in the open/close routines, but it doesn't cover Init. I used that technote to put my window in a resource ;) How 'bout making this thing a CDev--that way you'll receive a message at boot time. The NDA icons are shown after all Inits, so how long it's on the screen depends on how many NDA's you have that use ShowBootInfo. I have 3 NDAs that have boot icons. I sorted mine so it's first (so I can see it the longest :) But the Init routine doesn't get called unless DeskStartUp or DeskShutDown are called, and I believe these are called when the application starts up--not during the boot process. Tony, this wouldn't really qualify as a CDev. It could really be an application, but I want to learn how to write an NDA. Hmm..I think something must have changed, because I, too, have NDAs which show icons Hmmm, this goes against everything I know about the start process. Unless these NDAs are installing themselves from Inits. no, they aren't Does GS/OS call the NDA as soon as it's loaded or something? DeskStartUp is apparently called during the boot process long enough before RefreshDesktop to that boot icons can be displayed. Either that, of GS/OS cals the NDA init routine as soon as it's loaded. I can't find this in any manuals or technotes though. Not according to my request proc or IPCSpy. Tony: but if DeskStartup has been called, then that means QDII is active. and if it's active, then ShowBootInfo does nothing True Tim. GS/OS must call the NDA Init routine when it's installed then. All I know is that it works. :) Isn't DeskShutDown called before DeskStartUp? ShowBootInfo don't work if QD is active? nope, it doesn't. I don't think so, I can check Didn't know that one. Right, otherwise it might try to draw an icon on an already existing desktop. This is definately weird. I'll have to reexamine PR6.0 later. page 177 of the 6.0 ref: "ShowBootInfo takes no action if QuickDraw II is started. This way if the call is made from a program being installed after boot time, the icon will not interfere with an application's use of the desktop." PR 6.0, page 177. GMTA Tim :) Tony, you ever notice that the Control Panel NDA calls ShowBootInfo to show the CDev icons? There's an NDA that uses it. hehe, good call Real good call :) Oh gees--don't I feel lame right now. You are right. :( I also assume that those icons are in the rFork. Now, how do I do that? :) That only works from CDevs. ShowBootInfo don't work with resIDs--the CDev NDA gets them from the resfork itself. Tony, it works from other NDAs too. Mine already does it. I know that now. You place your icon in an rIcon resource, then when you want to display it you load it, deref the handle, call _ShowBootInfo, then dispose of the handle It should be easy, just startup the resource manager with your ID, then LoadResource, then ShowBootInfo, then shut down the resource manager...at least, that's what an INIT I wrote does, and works fine [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, Internet, America Online, Delphi and many public and commercial BBS systems worldwide. o To reach GEnieLamp on Internet send mail to genielamp@genie.geis.com o Our Internet anonymous FTP address is: sosi.com. All current versions of GEnieLamp are available in the ~/pub/GEnieLamp directory. Due to the added expense involved, we ask that when you get GEnieLamp via the anonymous ftp for GEnieLamp, that it _not_ be ftp'd during the hours of 9AM and 5PM Eastern Standard Time. We appreciate your cooperation in this matter. 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: 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 us "live" talk to us every Wednesday night in the Digi*Pub Real-Time Conference, 9:00 EDT (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] EDITOR """ o David C. Leithauser [D.LEITHAUSER] HyperRead Editor o Brad Biondo [B.BIONDO] IBM Staff Writer o David Holmes [D.HOLMES14] IBM Staff Writer o Nancy Thomas [N.NOWINSON] IBM Staff Writer o Don Lokke [D.LOKKE] Cartoonist Windows o Tippy Martinez [WIN.LAMP] EDITOR """"""" o Brad Biondo [B.BIONDO] Windows Staff Writer o John Osarczuk [J.OSARCZUK] Windows Staff Writer MACINTOSH o Richard Vega [GELAMP.MAC] EDITOR """"""""" o Tom Trinko [T.TRINKO] Mac Staff Writer o Robert Goff [R.GOFF] Mac Staff Writer o Bill F. Martin III [W.MARTIN3] Mac Staff Writer o Ricky J. Vega [GELAMP.MAC] Mac Staff Writer ATARI ST o John Gniewkowski [GENIELAMP.ST] 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 o Sandy Wolf [S.WOLF4] 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 Tara Dillinger [TARA] Co-Editor o Phil Shapiro [P.SHAPIRO1] A2 Staff Writer o Mel Fowler [MELSOFT] A2 Staff Writer o Darrel Raines [D.RAINES] A2 Staff Writer o Gina E. Saikin [A2.GENA] A2 Staff Writer o Steve Weyhrich [S.WEYHRICH] A2 Staff Writer A2Pro o Nate Trost [A2PRO.GELAMP] EDITOR """"" o Tim Buchheim [T.BUCHHEIM] Co-Editor ETC. o Jim Lubin [J.LUBIN] Add Aladdin/Scripts """" o Scott Garrigus [S.GARRIGUS] Search-ME! o Bruce Maples [B.MAPLES] Copy Editor o Mike White [MWHITE] (oo) / DigiPub SysOp o Susie Oviatt [SUSIE] ASCII Artist \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////// 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 1994 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 information. Call (voice) 1-800-638-9636 for more information. ////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ [EOF]