sirius@recondo.UUCP (Mike Stilson) (06/14/89)
(Asking for this information is probably one of the larger sins an amiga programmer can do, but what the hell...) Does anyone out there have a good example of installing/setting up a resident program? So far I've managed to disassemble a virus and the ramdrive.device to try to figure it out. The info in the includes helps a little. What I need is an example of how to put it there. I've managed to use the cool and cold capture pointers, but they aren't what I need. (Is WarmCapture ever called?) Any help would be appreciated... (This isn't for a virus, it's for a little utility I'm working on. Trust me ]B-> ) -- Mike 'Sirius' Stilson - Sirius Software UUCP: sirius@recondo.UUCP BITNET: sirius%recondo@uunet.UU.NET MA-BELL: (412) 793-1242 or (412) 793-5765 USNail: 1312 Universal Rd. Penn Hills, PA 15235-3936
ccemdd@rivm.UUCP (Marco Dedecker) (06/15/89)
In article <0903.AA0903@recondo>, sirius@recondo.UUCP (Mike Stilson) writes: > (Asking for this information is probably one of the larger sins an amiga > programmer can do, but what the hell...) > > Does anyone out there have a good example of installing/setting up a resident > program? So far I've managed to disassemble a virus and the ramdrive.device > to try to figure it out. The info in the includes helps a little. What I > need is an example of how to put it there. I've managed to use the cool and > cold capture pointers, but they aren't what I need. (Is WarmCapture ever > called?) Any help would be appreciated... (This isn't for a virus, it's for > a little utility I'm working on. Trust me ]B-> ) > > -- > Mike 'Sirius' Stilson - Sirius Software Try checking out the program called 'guardian', or the bootblock from the system Z viruskiller, they stay resident using the KickTagPtr. Using the KickTagPtr is probably what you want for your utility. About the WarmCapture, it is never called !! (probably reserved for use in future releases, or whatever) This is all I can do for you, since I haven't had time to check this place out myself. Good luck, Marco Dedecker
shadow@pawl.rpi.edu (Deven T. Corzine) (06/17/89)
In article <1380@rivm05.UUCP> ccemdd@rivm.UUCP (Marco Dedecker) writes: >In article <0903.AA0903@recondo>, sirius@recondo.UUCP (Mike Stilson) writes: >>(Asking for this information is probably one of the larger sins an >>amiga programmer can do, but what the hell...) >>Does anyone out there have a good example of installing/setting up a >>resident program? So far I've managed to disassemble a virus and >>the ramdrive.device to try to figure it out. The info in the >>includes helps a little. What I need is an example of how to put it >>there. I've managed to use the cool and cold capture pointers, but >>they aren't what I need. (Is WarmCapture ever called?) Any help >>would be appreciated... (This isn't for a virus, it's for a little >>utility I'm working on. Trust me ]B-> ) Check in the 1.3 Includes & Autodocs RKM under SumKickData() and a couple others in the Autodocs for the exec.library. It gives enough information that you should be able to create resident modules. (As opposed to using the *Capture vectors) >Try checking out the program called 'guardian', or the bootblock from >the system Z viruskiller, they stay resident using the KickTagPtr. (i.e. resident modules) >Using the KickTagPtr is probably what you want for your utility. It's cleaner than the *Capture vectors, and multiple applications can use it in peaceful coexistence... >About the WarmCapture, it is never called !! (probably reserved for >use in future releases, or whatever) This is strange, I have heard elsewhere also that WarmCapture is never called. Yet, the Exec code *does* have a call for the WarmCapture vector. Immediately after CoolCapture is called, InitCode() is called to initialize all the resident modules, immediately followed by a check (for non-zero, as with the other *Capture vectors) and a call for WarmCapture. What follows is clearing all registers and an endless loop, calling Debug(). (and getting ExecBase again) So, the code IS there. My guess is that AmigaDOS is stopping WarmCapture from being run. I see several possibilitie. One, when the resident module for DOS executes, it does not return. This seems unlikely, as it would keep subsequent resident modules in the chain from initializing. However, AmigaDOS harbors some serious brain-damage, so I wouldn't put it past it. Two, AmigaDOS changes the WarmCapture vector to point to a RemTask(0L) call. (The initial startup code becomes task "exec.library" when multitasking is initialized.) This seems most likely, as it will prevent Debug() from running next, dumping the machine into ROM-Wack. Three, AmigaDOS could RemTask(FindTask("exec.library")), but that seems cumbersome and rather dangerous. So, odds are that the reason WarmCapture is never call is that AmigaDOS preempts it to keep the machine from falling into ROM-Wack. This is, as I said, something of a guess, extrapolated from what knowledge and information I DO have onhand, but it is an educated guess. Any CATS-type folks care to comment? (or confirm or deny?) >This is all I can do for you, since I haven't had time to check this >place out myself. That's about all I can do. Deven -- shadow@[128.113.10.2] <shadow@pawl.rpi.edu> Deven T. Corzine (518) 272-5847 shadow@[128.113.10.201] <shadow@acm.rpi.edu> 2346 15th St. Pi-Rho America deven@rpitsmts.bitnet <userfxb6@rpitsmts> Troy, NY 12180-2306 <<tionen>> "Simple things should be simple and complex things should be possible." - A.K.