America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, June 1, 1993 10:00 p.m. Eastern Time Topic: Twilight II Programming Forum Leader: Gary Jacobson (AFL GaryJ) AFL GaryJ Welcome to the Apple II Development Forum! Tonight, we're having the unveiling of the AFL GaryJ FULL programming information for Twilight II, DigiSoft's hot new screen saver! AFL GaryJ (Right, Jim? :) AFL GaryJ (I love these ads :) Sheppy :) AFC DYAJim Yes! :) GNO Jawaid Hmm.. compared to FULL.. would partial docs be half full, or half empty? James S WI FULL? Like IPCs and all? ;) AFC DYAJim We just released the Twilight II v1.1 Generation 2 Module Format specs.. Sheppy ;) AFC DYAJim :Slap: James AFC SteveB Twilight lite? :) AFC DYAJim There's the wyrm :) GNO Jawaid Hey, nice banner :-) AFL Marty Might be neither. Might be every other word. AFL GaryJ Ok, with that said.... Let's let Jim fill us in on what's happening with Twilight. AFC DYAJim We'll talk about the IPC some too towards the end.. AFC DYAJim Alright. Welcome everyone and thanks for coming.. AFC DYAJim I encourage everyone to download the G2MF specs file (currently in AWGS AFC DYAJim format) which is available from our company support library.. AFC DYAJim (finally) AFC SteveB (Documentation not in Word 5.0 format?! :) AFC DYAJim You can do almost anything in a module except disable interrupts for an AFC DYAJim extended period of time. Sheppy Although rebooting the computer would not be appreciated by the user... AFC DYAJim Our format is the most powerful, but with that also comes being the most AFC DYAJim complex.. FredW GS :) Sheppy Hey, Greg. Early. AFC DYAJim Modules are very similar to Control Panel devices in form. Barnabas OK, so I lied... :) Sheppy Hmph. AFC DYAJim This makes it easy to make modules from Orca/C and Orca/Pascal, as you can AFC DYAJim tell the compiler that it's making a CDev! Barnabas (Actually, as they say about the best laid plans...) AFC DYAJim Modules are passed messages and data via the stack at various times.. JWankerl Hello. AFC DYAJim Currently there are 7 defined messages: MakeT2, SaveT2, BlankT2, LoadSetupT2, AFL GaryJ Hi Joe Sheppy Yo, Joe. AFC DYAJim UnloadSetupT2, KillT2, and HitT2. Nuzz Hi all AFC DYAJim Writing modules without setup is very simple. Setup requires a bit more work, AFC DYAJim but hopefully with our sample source you will get the hang of it quick. AFC DYAJim Basically, MakeT2 is passed to tell you to create your setup controls, if Barnabas These represent various stages of frustration with T2 programming... ;) AFC DYAJim your module support setup.. AFC DYAJim SaveT2 is sent when the "Save" button is hit on the setup window. Your module AFC DYAJim is responsible for getting the status of all its controls and storing them AFC DYAJim as resources in the Twilight.Setup file. AFC SteveB (I'm about to crash dudes, I'll catch the log. Night everyone.) AFC DYAJim BlankT2 is the only message modules must support. You should animate the AFC DYAJim screen :) AFL Marty Goodnight Steve. AFC DYAJim LoadSetupT2 is sent when the module is supposed to load any config resources AFC DYAJim from the Twilight.Setup file, and UnloadSetupT2 is sent when any loaded AFC DYAJim resources should be disposed of. Schultz1 Are we talking about the screen saver? Sheppy Yes. AFC DYAJim Yes.. These are all messages sent to screen saver modules.. AFC DYAJim (almost done with the descriptions :) Schultz1 Ahhh AFC DYAJim KillT2 is called when T2 is about to dispose of your module, during setup. AFC DYAJim I.e. your module was being setup, and now the user has selected a different AFC DYAJim module or closed the setup window. It gives you a chance to dispose of AFC DYAJim any handles your setup proc allocated.. AFC DYAJim Finally, HitT2 is called whenever any control in the setup window is hit. AFC DYAJim This way you can react to any control hits, in any way you need. AFC DYAJim Currently those are the only messages supported. So far so good :) Now things GNO Jawaid Like hitting back? :) Sheppy (and a good thing, too...) AFC DYAJim get a bit weirder, because T2 was designed to support a wide variety of systems AFC DYAJim under a large variety of operating conditions and effect modules.. GNO Jawaid Does it run under Pascal 1.3? AFC DYAJim Joe was working on a Pascal shell (for 1.3) once.. Joe? Schultz1 Later guys. AFC DYAJim (We will be releasing ourselves, alas, currently only orca/c, orca/m, and JWankerl Er... I never got it to work with setup options. Without them it worked just fine. AFC DYAJim merlin samples) Sheppy Ciao, Schultz. AFL GaryJ Bye, Schultz JWankerl I never found the time to delve into why, though. Could have just been programmer error. AFC DYAJim I have object pascal on order, and this summer when I get it I will see if AFC DYAJim I can get it to make T2 modules.. Sheppy <--- Thought Jawaid meant "Apple Pascal 1.3"... :) AFL Marty You mean he didn't? AFL GaryJ (That's safe to say: "Programmer Error". The question is, which programmer? :) GNO Jawaid That's what I meant :-) AFC DYAJim Anyhow, Twilight II tries to make life tolerable for users running on floppies. Sheppy Oooh, I was right? Wow... :) JWankerl :-) I meant my error, but I guess leaving it ambiguous is good, too. AFC DYAJim So if the boot disk is a floppy disk, Twilight II will send LoadSetupT2 at AFC DYAJim the same time your module is loaded into memory. (Either at boot, or when Barnabas (Although we all know that they're miserable little vermin who deserve to Barnabas suffer... :) AFC DYAJim the selected module has been changed and the main window closed) FredW GS So anything which makes CDevs cannot necessarily make T2 modules? AFC DYAJim UnloadSetupT2 is sent when your module is disposed of. AFC DYAJim Anything which makes CDevs should certainly be able to make t2 modules.. AFL GaryJ (Heck, booting from a floppy, the screen could be blanked before the floppy loads completely) AFC DYAJim When you're using a hard drive, LoadSetupT2 is called right before BlankT2 is AFC DYAJim called, and UnloadSetupT2 is called right after BlankT2. This is to save FredW GS Cool, BASICs back in the game :) AFC DYAJim memory, and also support cool features ilke Random Mode. AFL GaryJ Neat :) AFC DYAJim For instance, YouDrawIt loads its animation file at LoadSetupT2 time.. AFC DYAJim (First it loads the file's saved configured pathname from Twilight.Setup, AFC DYAJim and then it loads the APF file and unpacks it.) The picture can take from AFC DYAJim $7D00-$FA00 bytes of memory. So for people with hard drives, this memory is AFC DYAJim not allocated until it is time to blank. For people with floppies, it will AFC DYAJim always be allocated, in case the floppy boot disk/etc is offline when it is AFC DYAJim time to blank. GNO Jawaid Be back later! AFL GaryJ How does that work with Random mode? AFL GaryJ (Or is it not supported for floppy users?) AFC DYAJim Random Mode will be dimmed if you booted off anything other than a SCSI hard AFC DYAJim disk or RomDisk. AFL GaryJ Ah. AFC DYAJim You can force T2 to always call load/unloadsetupT2 at "boot" (when your module Sheppy What about non-SCSI hard disks? Random mode was never dimmed back when I Sheppy had an InnerDrive, and that comes up as "generic hard disk". AFC DYAJim is loaded) or at "blank" (when it is time to blank the screen) if your module AFC DYAJim is special and you think the normal logic doesn't suit you. Sheppy :) AFC DYAJim I'd have to look at the source, Eric. I wanted to make T2 check if the boot Sheppy <--- Normal logic _never_ suits me. :) AFC DYAJim disk was removable or not and base random mode's availability on that, but FredW GS Logic is a little chirping bird... Barnabas (In fact, normalcy itself was never one of his strong points... :) AFC DYAJim I discovered that RamFasts mark EVERYTHING as removable, which means Random AFC DYAJim Mode would never have worked for anyone with a RF. So I changed it to SCSI Sheppy Oh, ick! AFC DYAJim hard disk, but I will have to look and make sure that this also includes weird AFC DYAJim things like 10MB ProFiles and Innerdrives. Sheppy Maybe if for generic hard drives, you checked for removability; if it isn't, Sheppy then allow Random Mode/ Sheppy Hi, Matt. AFL GaryJ Hello, Matt AFC DYAJim I'll be looking into it for the next version.. AFC DYAJim The next interesting part of the module specifications relates around what AFC DYAJim we call a "usable" screen. Sheppy Anyway, it works with the InnerDrive (or did the week before AEW... :) AFC DYAJim In case you don't know, Twilight II allows the effects of modules running AFC DYAJim consecutively to be combined; i.e. the second module can further modify the AFC DYAJim screen left by the first module, if it desires. AFC DYAJim (then it still should Eric :) Sheppy :) Barnabas Which still has a few bugs that make things look icky sometimes... AFC DYAJim Yes, the logic involved here gets quite complex! We tried to anticipate AFC DYAJim about every possible situation, but we missed one. It'll be fixed later. AFC DYAJim Anyhow, a usable screen is defined as a screen that contains enough interesting Sheppy (A minor one, IMO, although it takes you by surprise the first time you see it) AFC DYAJim pixel data to be considered worthwhile for a module that manipulates the AFC DYAJim image it finds on the screen to work with. Let me rephrase that :) AFC DYAJim Some modules modify the image they find onscreen when they are run. James S WI Greg, are you talking about the fonts? AFC DYAJim For instance, Tiler, Snow (when it falls on the desktop), AFC DYAJim Fazer, Dissolve, Worms, etc, all take your desktop and draw graphics over it AFC DYAJim or animate it. Barnabas No, about the occasional palette "surprises" in random mode... AFC DYAJim Thus, they all REQUIRE "usable" screens to operate. AFC DYAJim If you ran FireWorks and then Tiler, Tiler would look very awful, because AFC DYAJim 95% of the screen would be black and boring. Sheppy (Fazing a blank screen would look pretty stupid... :) AFC DYAJim So, if Tiler is randomized to run after Fireworks, T2 looks and sees that AFC DYAJim Tiler says it requires a usable screen. T2 looks and sees that Fireworks says FredW GS ? AFC DYAJim it doesn't leave a usable screen. Thus after Fireworks is finished running, FredW GS For those of us that don't have T2 yet...what are these effects...what can/does AFC DYAJim T2 restores the ORIGINAL desktop image, so Tiler can look interesting. FredW GS T2 do? AFC DYAJim That is the jist of "usable" screens. (One sec Fred :) Sheppy ** gasp ** :) FredW GS OK...maybe for those of me who don't have it yet :) AFC DYAJim This allows for some cool effects, as you will undoubetdly notice if you AFC DYAJim explore T2 for a bit. James S WI Does Fazer leave a "usable" screen? Sheppy James: er, I dunno. Greg? :) AFC DYAJim Okay, Fred, here's the list from the T2 flyer :) (if anyone wants a flyer AFC DYAJim mailed to them, let me know in email) AFL GaryJ Have you seen "After Dark" on the Macintosh, Fred? FredW GS Yes, I've seen screen savers like the windows built ins. AFC DYAJim We've got over forty different colorful and stunning screen saver effect AFC DYAJim modules included, such as Clocks, Color by Color, Cyclone, Dissolve, Drip Drop, AFC DYAJim Fading Clock, Fazer, Fireworks, Headlines, Impulse 3D, Inverter, Kaleidoscope, AFC DYAJim LED Message, Life, Meltdown, MiniFireworks, Modern Art, Moire, Mountains, AFC DYAJim Movie Theater, Perspective, Phantom, Plasma, Puzzling, Quotes, Scanner, Scroll, AFC DYAJim Sharks & Fish, Shor Out, Snow, Spirographics, Static, String Art, Strobe, AFC DYAJim Tiler, TunnelVision II, Twilight, Universe, Worms, and YouDrawIt! FredW GS These are all drawn on or applied to a single screen which you can load? Sheppy Lots of cool stuff in there, eh James? ;) AFC DYAJim Yes, Fred. All either modify your desktop or draw stuff from scratch. FredW GS Thanks Jim. James S WI Yeh, especialy that strobe. ;) Sheppy Oh, yes, Strobe is my favorite. ;) Barnabas Um, I don't know if what Fred was saying was what Jim was answering... Sheppy I kinda like "Foreground Blank". :) Sheppy I agree with Greg: the question and answer didn't click for me... AFC DYAJim I'll be porting over all the T1 modules this summer as well as coding a whole AFC DYAJim bunch of new animation ones, and porting a whole bunch of FTA code. Barnabas Sounds like Fred thinks you could choose a background picture for all modules Barnabas to use. James S WI And I will be writting more origonal stuff. Sheppy That's what I thought he was asking, too. AFL GaryJ T2 is a screen blanker, Fred. If you don't touch a key or mouse for a specified period of FredW GS Yes, this I inferred was false from the answer. AFL GaryJ time, the screen blanker kicks into effect, and modifies (or blanks) whatever Sheppy (I will probably do some, but I'm not nearly as clever graphics-wise as AFL GaryJ screen happens to be up. Sheppy James)... Barnabas (and you can quote that... :) AFC DYAJim Finally we also have a new bit defined so your module can report if it leaves AFL GaryJ (From within whatever application you happen to be in) Sheppy Indeed. AFC DYAJim a screen which can be color cycled by the next module. This isn't implemented AFC DYAJim yet, but it should allow for some even cooler combinations :) James S WI Once we get a working slide show module you will be able to use it in random mode to select AFL GaryJ Interesting :) James S WI a background for other modules. Sheppy Right. FredW GS Or call it recursively to create full screen animations?? FredW GS (ie digitized video?) Sheppy Just use Movie Theater for that (I would). AFC DYAJim Full screen animations in $C2 Paintworks format arre already supported by AFC DYAJim Movie Theater Sheppy You could design other modules to implement other kinds of animated video. FredW GS Excellent. AFC DYAJim In addition, Twilight II also supports a wide set of IPC requests that other AFC DYAJim programs can call to control and interact with T2. FredW GS CAn you play audio from within a module? James S WI You sure can! Sheppy Yes, definitely! Check out Fireworks! :) Sheppy (Can you say "boom"? :) FredW GS "Hey...hey you!!! Come back to the computer!!!" AFL Marty Fireworks is my second favorite module. Sheppy :) Sheppy Yes, an Insults module. I can see it now... :) AFL GaryJ (Which was your favorite, Marty?) AFC DYAJim for instance, applications can turn Twilight II off, abort blanks, background AFL Marty cyclone is my favorite. AFC DYAJim blank now, and do all other types of similar things. Sheppy What's your favorite, Marty? James S WI Thanks. And would your favorite be? AFC DYAJim The IPC documentation still isn't ready yet tho :) Sheppy Cyclone is cool, too, yeah. James S WI And what settings are your favorite in Cyclone? Barnabas Promising new Qix module from James... :) AFL Marty I like it set the way it came (default). Sheppy That's pretty much the way I leave it. I'm too lazy to experiment with all Sheppy those options (cool as they can be). AFL GaryJ Wait, the IPC documentation still isn't ready? AFL GaryJ (Our ads for tonight lied, then :) James S WI My current favorite module are not released yet. :) Barnabas How boring. Save yourself money, Jim, and don't send them the Setup part of Barnabas T2... :) FredW GS Just to let all know Micol BASIC can write CDevs...so I assume T2 modules. :) Sheppy (I still don't have much in the way of IPC documentation... :) AFC DYAJim Well, Gary, you know how these things are :) Hopefully the IPC info, sample AFL GaryJ LOL :) Barnabas I'm willing to sell IPC documentation to the highest bidder... :) AFC DYAJim source, and T2 demo will all be released within a month. AFC DYAJim I'd assume so, Fred. If you have any problems, be sure to post them so AFC DYAJim we can help you! Barnabas (Or you can get it the hard way, like I did... disassembling "things"...) James S WI Sheppy, I even put a menu full of preset uptions in Cyclone and you are too lazy to even... James S WI pplay with that?!? Sheppy Oh, yes, I have. In fact, I've played with all of them. But when I moved Barnabas Heck, I've made so many option changes to so many T2 modules that I keep a Sheppy over to my new hard drive, I didn't bother to change the configuration, which Sheppy was at the default at the time. :) Barnabas backup of just my Twilight.Setup file so I don't lose 'em. AFL GaryJ Ok, does anyone have any questions for Jim? AFL Marty You're writing more modules, James? Sheppy That's a pretty good idea, actually. I should do that. Barnabas I do! Barnabas What is the status of a real random mode, Jim? (i.e. that switches blankers) James S WI You bet. I have two great ones (IMNSHO) in beta testing now and more on the drawing board. AFL Marty Have you ever seen a lava lamp? Sheppy Two, really? Hmmm... I can only think of one. :( AFC DYAJim Real Random Mode (RRM?) will be started in about a month. Barnabas I've got the other one... :) AFC DYAJim Just by reading the G2MF specs you can see support for a whole bunch of things AFL GaryJ Lava lamp, yeah, cool :) AFC DYAJim that will be implemented in the future.. James S WI Sorry eric, you will get it soon. (If you are nice) AFL Marty A lava lamp module would be nice (imo) Sheppy I'll be good! Honest! :) Sheppy Fish! Sheppy :) AFL GaryJ Someone could turn all the FTA demos into screen blankers (make them useful for something :) AFC DYAJim You never know what you might see, Gary ;) Sheppy :) AFC DYAJim The trouble is making them less hogs of system resources, and expanding them James S WI Well they were not exactly designed to run while other applications are in memory(FTA stuff) Sheppy Yes, that was what I was going to point out. FTA demos tend to snag the whole AFC DYAJim to full screen (where applicable). But there's nothing insupperable (right AFC DYAJim word? hmm :) Sheppy system and blow anything else out of the water. AFC DYAJim For instance, the FTA 3-D code was used to taking a continuous block of 256k AFC DYAJim to operate. AFL GaryJ (Right, on the FTA stuff :) AFL GaryJ I don't think the FTA guys included any of the T2 "toolcalls", either :) James S WI But for a good enough module some people wouldn't mind havnig to re-boot after the screen... James S WI blanks. ;) AFL GaryJ (in their code) AFL GaryJ Yeah, right James :) Sheppy Depends, James. If it blanks, say, after 4 hours of unsaved work, well, they Barnabas Heck, why not just make T2 your startup app, and run any incidental programs Sheppy might dislike that somewhat. Barnabas that you use as blankers? :) Sheppy AppleWorks GS: The Screen Blanker. AFL GaryJ GNO T2, the multitasking... AFL GaryJ (whatever :) AFL GaryJ Any other questions? FredW GS Just one off topic when we're done. Barnabas Yes. When will we see the following features? 1) Ability to demo a screen Barnabas blanker while in random mode; 2) Cached blanker lists so the window doesn't Barnabas take so long to open? AFL Marty ---===[}}} Spfty Sheppy Hiya, Softy. AFC Softy (whew... talk about node from hades....) AFL GaryJ Hi Softy AFC Softy ------===[}} Marty AFL GaryJ (I know what you mean, on the nodes) Sheppy You can demo in Random Mode from the module's setup, but I see what you're Sheppy saying. AFC DYAJim In v1.2 or later :) "The next significant update" Barnabas Not everything has setup. AFC Softy Hi Gary... Shep... Mike!! :) Barnabas ( Barnabas (And you can't access setup from 320 mode) James S WI And 1.2 will be done what it is done. Right? Barnabas ) Sheppy I understood that, Greg; that's what I said... sort of. AFL GaryJ T2 v1.2 will be ready when 6.0.1 is available? :) James S WI LOL AFL Marty Does it require System 6.0.1? Sheppy That would be clever timing. I hope System 6.0.1 comes out before T2 1.1. AFC DYAJim 6.0.1 is almost out. Alas, DigiSoft isn't an apple beta test site since we're AFL GaryJ (err... that's "System Software" 6.0.1) Sheppy (T2 1.2, I should say... :) Barnabas I understand 6.0.1 will be available the day before yesterday or the 31st of AFC DYAJim not Apple Associates and probably could never be AA's anyhow. So we haven't Barnabas June, which ever comes first... AFL Marty (mea culpa) AFC DYAJim seen 6.0.1 yet either, so T2 doesn't require any 6.0.1 features. (now) AFC DYAJim T2 v1.2 might. AFC Softy (jeez... what is this?? Name that version? :) Sheppy Yes. AFC DYAJim T2 v1.2 will be out when it's done and READY. Sheppy What a novel concept. AFL GaryJ (I just hope T2 v1.2 supports the SF droppings :) Barnabas When will testers get first crack at it? James S WI And what version of the menu manager was included with system 5.03? Sheppy (unfortunately) Matt DTS (Anyone can be an associate, just about. Not everyone can be a partner. That's the difference.) Barnabas How about applying under the Domestic Partners legislation? :) Sheppy :) Matt DTS Legislation? When did this happen? AFL GaryJ :) AFC DYAJim Oops, I switched the two, Matt :) (sleep deficiency joy :) AFL Marty (must be some California thing :) AFC DYAJim Hey Steve! A2ProSteve Hey! I finally got this to connect! Sheppy I think Greg is not only fictionalizing but also trivializing our government. Sheppy How inappropirate. He usually just blasts it really bad. James S WI Some one needs to. Barnabas Just in time, Steve! We were just breaking up! :) Sheppy :) FredW GS 2 5 syllable words...ouch. Nuzz better late than never :) FredW GS Are we 'off topic' now?? :) Sheppy Hey, I was always one for the obscenely large words when totally unnecessary.:) AFC DYAJim Yes, we're off topic now, that is if there are no other T2 questions! AFL GaryJ Let me make a quick announcment... AFL GaryJ (before everyone leaves) Matt DTS Welp, gotta go... AFL GaryJ Next week, we're having our second (annual? :) ADV Trivia Night! Sheppy GA, Gary. (Toes tapping). AFA Jay semi-annual :) AFL GaryJ :) Sheppy Yow! Holy cow, Marty, you're kidding... :) Barnabas Yes, but AOL has done the same. AFL GaryJ Last time we did it was December of 91, so it's a little bit over due. James S WI Cool. AFL GaryJ But, it will be FUN! (Have fun or else!) AFC DYAJim Yes, TRIVIA is coming to ADV!!! Be there! Barnabas 4.95 a month is not bad, Eric, especially since it includes unlimited free Barnabas time for mail and such. AFL Marty I never said they hadn't. I'm just reporting what I know. AFL GaryJ Come next week and be ready for MORE final exam questions! :)