CHANGING YOUR ICONS by Richard Karsmakers and "Strike-a-Light"
People who use MacIntosh or Amiga computers are probably quite
familiar with the fact that each program can be specified by an
icon of its own. A game program can actually be signified by a
joystick or even a small 'high-res' screen taken from the
program. The only limitation, most of the time, is that the icon
can only use one color and the background color.
The ST's possibilities with regard to this changing of the icons
are far more limited: There are only five possible icons,
excluding the Atari sign in the "About" option of the desktop.
These can, however, be changed.
The principle is extremely simple. You simply make a bit pattern
of an icon and calculate that into numbers. You then start
hunting for those numbers and that's all. A new icon can simply
be loaded onto that space, somewhere in RAM. A program to achieve
this, written for Data Becker's "Profimat", is the following
(written by Robert Heessels):
TEXT
clr.l -(sp) ; supervisor mode
move #$20,-(sp)
trap #1
addq.l #6,sp
move.l d0,d7
move.l #0,$4d2 ; disable "STARTGEM" interrupt
move.l #$d000,a6 ; hunt for Icon start address
move.l #$20000,a1 ; and the ending address
zoek:
cmp.l #$80000263,(a6) ; this is a bit pattern in the
; disk drive Icon
beq zoek_einde ; found? Then stop search!
add.l #2,a6
cmp.l a1,a6 ; end address reached?
bne zoek ; no - continue
bra einde ; jump to end
zoek_einde:
sub.l #180,a6 ; start of all icons
move #0,-(sp) ; Open file for new icon data
move.l #naam,-(sp)
move #$3d,-(sp) ; Open file
trap #1
addq.l #8,sp
tst d0 ; Error?
bmi einde
move d0,d6
move.l a6,-(sp) ; load file at icon data
move.l #1280,-(sp) ; file length (5*256)
move d6,-(sp)
move #$3f,-(sp) ; Read
trap #1
add.l #12,sp
einde: ; user mode
move.l d7,-(sp)
move #$20,-(sp)
trap #1
addq.l #6,sp
clr.l -(sp) ; terminate
trap #1
DATA
naam: dc.b 'a:\new_icon.icn',0
END
On the disk, you'll find a sample Icon file as well as a program
called GEMSTART that is needed in the AUTO folder if you want to
start it from on system bootup. Simply copy the GEMSTART program
in the auto folder and make sure the actual program is in the
root directory. If the program would be NEW_ICON.PRG, you'd have
to create a file called GEMSTART.INF on the disk, containing the
following line:
A:NEW_ICON.PRG
Of course, you can also use folders, etc., or other disk drives.
Any other program using GEM can also be started up automatically
using this program.
But now more about the icon format. Each icon is made up of a
mask and a 'sprite'. Each one of these is represented 128 bytes:
4 bytes wide and 32 bytes high. Horizontally, the bits are used
to specify if bits are on or off. You'll just have to look at it
binary. A bit pattern like this would create a 'sprite' like a
chessboard:
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%11111111000000001111111100000000
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
%00000000111111110000000011111111
Get it? It's that easy! The only problem is that the icons are
always located on a different location in memory (this changes if
you use an AUTO folder or not). That's why a search routine has
been included in the source file from a few pages back.
By the way, if the program need not be started from an AUTO
folder, the GEMSTART program can be omitted.
Disclaimer
The text of the articles is identical to the originals like they appeared
in old ST NEWS issues. Please take into consideration that the author(s)
was (were) a lot younger and less responsible back then. So bad jokes,
bad English, youthful arrogance, insults, bravura, over-crediting and
tastelessness should be taken with at least a grain of salt. Any contact
and/or payment information, as well as deadlines/release dates of any
kind should be regarded as outdated. Due to the fact that these pages are
not actually contained in an Atari executable here, references to scroll
texts, featured demo screens and hidden articles may also be irrelevant.