Whoo.. this one isn't gonna be easy, wiggles.. It's possible, though. Here's a crash course on adding an external ROM to the Award BIOS.
First, I'd suggest writing the GIF animator as a .COM file. When you've got it working as a .COM file, you'll need to add a little more to transform it into a ROM. Basically, an "ORG 0", followed by "db 55h" and "db AAh" ("55AA" is a standard header for a ROM), and "db ##h". ## is your ROM filesize divided by 512.
To complete the ROM, add some padding -- up to the next 512-byte barrier. The very last byte in your ROM file is a checksum.
To add the ROM into the Award BIOS, use CBROM with the /isa option:
CBROM MYBIOS.BIN /isa MYROM.ROM CC00:0
That will insert your ROM into the Award BIOS, and it will instruct Award BIOS to decompress your ROM to memory location CC00:0. (This is the location I used for the Boot-CD ROM). CBROM will give you an error-message if there's anything wrong with your ROM file's format.
To test your ROM, go to a DOS prompt and run debug.exe, and issue the following commands:
A
JMP FAR CC00:0000
P
That should pass control to your Animated-GIF displaying ROM.. and (hopefully) return control to you after the animation is complete.
Now, two harder problems remain.. how to animate in the background... and how to hook into your ROM from the BIOS Startup routine...
You might be able to do background animations by temporarily hooking the Timer Interrupt. I'd suggest waiting until after the BIOS initializes the chipset and PICs before hooking the interrupt. Your interrupt handler will be called 18 times per second (if I remember correctly).
Where to hook this in the BIOS startup routine.. blecch.. I'd suggest looking in ORIGINAL.TMP for all occurrences of "CD 10", which is a call to the Video Interrupt. One of them should be the one that sets the video mode for displaying the Award Bitmap. At that point, I'd try to find somewhere where I can clobber 5 or more bytes so I can make the call to the ROM code: CALL FAR CC00:0000 (which is E9 00 00 00 CC)
Make no mistake, hacking ORIGINAL.TMP is a little difficult. There's a program called AWDHACK which supposedly works. Personally, I never managed to get AWDHACK to actually _save_ my changes to ORIGINAL.TMP -- so instead, I ran a debugger on MODBIN.EXE, and changed ORIGINAL.TMP's contents in-memory. Once the changes were made, I saved the BIOS in MODBIN.
Ralf Brown's Interrupt List will be a very good reference for you on this project.
-WP