Geschenkalarm
Author: Losso / AttentionWhore
Category: Christmas Challenge
System: Amiga
Language: Assembler
Len source code: 809
Len exe file: 100
Len code only: 64
Instructions:
Run the executable or boot from the ADF disk
image. Exits cleanly on click.
Description:
"Geschenkalarm" means "Presents alert", which
I thought fitting for this year's theme and
using the Amiga's alert functionality.
I'll post a little write-up on my website.
When you're reading this, it should already
be published [1]. Short summary for the
impatient:
* Prepares a structure to be passed to
intuition.library's DisplayAlert [2] call
* One substring per character
* DisplayAlert substring format:
x.w, y.b, <string>, 0.b, 1.b (or 0.b=end)
* The present box bow is static, i.e.
86.w, 14.b, '\O/'
* Draws "-" and "!" lines simultaneously,
with x/y swapped for "!"
* Relies on known register contents
applicable to all Kickstart versions
* Relies on the BCPL global vector [3] to get
intuition.library
* Found a DisplayAlert documentation bug:
height is in fact a longword, not a word :)
* Extra space for the alert buffer is reserved
via the executable file's hunk header
File contents:
Amiga executable header:
0000 03f3 0000 0000 0000 0001 0000 0000
0000 0000 0000 1500 0000 03e9 0000 0010
Code:
41fa 02ea 7416 7216 7cdc 7e2d 48a0 c100
d528 0004 7e21 c342 dc7c 0de6 6402 7e2b
4484 6de8 5041 4a06 66e0 d43c 0048 6cd6
2c6a 0170 5d48 4eee ffa6 0056 0e5c 4f2f
End hunk:
0000 03f2
Cheers, and thanks to Logiker for yet another
fun event! -- Losso
[1] https://heckmeck.de/demoscene/geschenkalarm/
[2] http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_2._guide/node020B.html
[3] https://megaburken.net/~patrik/BCPL/ramlib.doc.txt