                        PROFILE v2.22 Documentation
                         THE Atari System Analyser
                            by Linnhe Computing
            Copyright (c) 1993, 1994, 1995, 1997 Mark S Baines
                            All Rights Reserved

Mark S Baines asserts the legal and moral right to be identified as the 
owner of this work.


PROFILE 2 IS A SHAREWARE PROGRAM

PROFILE 2 is protected under UK and International copyright law, and is NOT 
public domain software. Mark S Baines owns the copyright to this program 
and the document files.

You are hereby granted a limited licence to use this copy. You are not 
allowed to alter the program in any way, to do so is an infringement of my 
rights. SHAREWARE is NOT Public Domain!

Your use of the program is restricted until you register. You cannot use 
any of the file to disk, file to clipboard and print functions and you 
cannot load or save the PROFILE2.CNF configuration file.

If you use this program more than once then you obviously have a need for 
it. You are therefore obliged to pay me the small sum of at least 5.00 
(five UK pounds). This is a minimum payment, if you feel that the program 
is worth more, then I won't refuse anything extra.

Payment is by cash, cheques (drawn on UK banks only) and postal orders. 
Eurocheques, American Express money orders and bank drafts are accepted but 
only in UK POUNDS STERLING. Add an extra 1.00 (one UK pound) for postage 
outside of Europe (total 6.00 six UK Pounds) if I have to reply by mail. 
E-mail replies don't, of course, incur any postage.

Please make your payment to "Mark S Baines" and **NOT** "Linnhe Computing" 
and state clearly:

1.  Your name as you want entered into the program (not more than 30
    characters)
2.  Your address including e-mail address if available
3.  Which version you have
4.  Where you obtained it.

Send your payment to:

    Linnhe Computing
    'Linnhe', Shore Street
    Inver
    Ross-shire
    Scotland
    IV20 1SF

I will send you an e-mail or a letter giving you your 'key' which you then 
enter into the 'Registration' dialog (obtained from the 'About' dialog). 
This will save your key to a file and provide you with full access to the 
program.

If you send an extra 1.00 (one UK pound) I will send you the latest 
version on disk together with your registration key and the whole 
collection of Linnhe Computing software. Again, add an extra 1.00 (one UK 
pound) for postage outside of Europe (total 7.00 seven UK Pounds).

I welcome voluntary payments from those who have already registered if they 
continue to benefit from updates of PROFILE 2.

Registration Costs Summary:
                                   UK and Europe   Rest of World
Registration cost (e-mail reply):  5 UK pounds     5 UK pounds
Registration cost (postal reply):  5 UK pounds     6 UK pounds
Registration with disk:            6 UK pounds     7 UK pounds

Bulletin Board Sysops and managers of Public Domain libraries are allowed 
to make this program freely available to their users and customers as long 
as the whole package remains intact and unaltered.

Floppyshop and The FaST Club (and any other PD library) may also include it 
on their catalogue disks.

The latest version will always be available from:

The Linnhe Computing web site:
    http://www.stsd.demon.co.uk/linnhe.html
    specifically:
    http://www.stsd.demon.co.uk/profile2.html

CIX:
    atari.st conference current filelist topic (such as atari.st/files97).

The following places won't necessarily have the latest version:

FTP:
    ftp.demon.co.uk (158.152.1.44) /pub/atari/ directory.
    ftp.uni-paderborn.de (131.234.22.34) /atari/tools/util directory.

BBS networks:
    FAN base FAN.UTIL.MISC

PD Libraries:
    Floppyshop and FaST Club.

The file name will always be PROF2_xx.ZIP where xx is the minor version 
number. This version is called PROF2_22.ZIP, for instance.

Remember that registering PROFILE 2 for the sum of 6.00 (six UK pounds) 
entitles you to the latest version on disk from me. After registration, 
return the master disk with 1.00 (one UK pound) at any time to get the 
latest disk version. Add another 1.00 for outside of Europe.


PROFILE 2 and MAGAZINE EDITORS

No magazine, whether commercial or free, professional or amateur, may place 
PROFILE 2 on a disk magazine or magazine cover disk without the express 
written permission of Mark S Baines at the above address. Mark S Baines 
reserves the right to demand the appropriate remuneration from commercial 
magazines and disk magazine publishers for permission to publish PROFILE 2 
on their disks. If someone makes a profit out of selling a magazine with a 
cover disk, then it is only right that some of that profit should be 
distributed to the authors of the software contained therein, just as the 
writers that supply the articles are paid.


PROFILE 2 and SOFTWARE COMPANIES

No software or hardware company or distributor is allowed to include 
PROFILE 2 with any of their software without the express written permission 
of Mark S Baines at the above address. I am very receptive to such an idea 
but you must contact me first.

I do have available a very cut-down version of PROFILE 2 called PROFILE 
LITE which you may find more satisfactory as the whole package occupies 
less than 50K. This version can be personalised to suit your needs 
including the help information and the charge for its use is very 
reasonable. It is already in use with one company. Again, contact me.


PROFILE 2 - INVENTORY

When distributed through any means whatsoever, this total package must not 
be separated.

PROFILE2.PRG  The program
PROFILE2.RSC  The resource file
PROFILE2.TXT  The documentation as standard ASCII text file
PROFILE2.HYP  The ST-Guide hypertext help file
PROFILE2.REF  The ST-Guide reference file
PROFCOOK.LST  The Cookies and XBRAs list file
PROF2ICN.RSC  The PROFILE 2 Desktop icon
PROFILE2.NIC  The PROFILE 2 NeoDesk icon
ROCP.PRG      A Read Only Control Panel program which makes the
              DESKTOP/NEWDESK.INF values current
TOS14FX2.PRG  Patch for TOS 1.4/1.6. If you are using TOS14FIX.PRG then
              replace it with this now!


PROFILE 2 - WHAT IS IT?

Atari, in their wisdom, have created a situation where there are many 
different types of STs, TTs and Falcons around the world. What have we got?

There are at least 15 different TOS versions, many different versions of 
GEMDOS and the AES (some from Atari, some third party), different versions 
of GDOS (GDOS, FONTGDOS, FSMGDOS and SpeedoGDOS), 17 different 
nationalities of ROM, BLiTTER chips, different resolutions and many 
different amounts of RAM memory from 256 K to 4 Mb on an ST and beyond on 
TTs and Falcons. I'll leave it to you to work out all the different 
permutations.

All this can create problems for software developers and subsequent 'bug' 
troubleshooters. If you contact your software company for some technical 
advice, reporting a bug or undocumented 'feature', it is a great help to 
them to know what system the program is running on. HiSoft provided a 
program called CHECKST.PRG which produces this information but it is not 
Public Domain. I therefore started writing programs which do the same sort 
of thing (and more besides) for all you non-HiSoft software users.

PROFILE 2 is a development of PROFILE 1 which in turn evolved from ST_DATA2 
and ST_TYPE. ST_DATA2 and ST_TYPE have known problems although updated 
versions of ST_DATA2 are available. ST_TYPE is not supported any more and 
cannot be relied upon, unfortunately. You should not be using it. ST_DATA2 
ceased to be supported with the release of PROFILE 1. PROFILE 1 ended 
development with v1.53 and is essentially the same as PROFILE 2 but using 
the TOS interface. It also doesn't produce such an extensive report as 
PROFILE 2.

At its simplest level, PROFILE 2 can tell you what TOS you have; its date 
and how much memory you have; whether the installed DESKTOP.INF 
configuration is valid; what the mouse double-click speed is; whether a 
Cookie Jar is installed and much, much more.

Power users; programmers; people who like to hack about with other people's 
code and programs; hardware and system developers; repairers; those wanting 
to get the best from the configuration of their system with numerous ACCs 
and AUTOs and any other nosey folk, all want to know what exactly they have 
in front of them and what is going on behind the scenes. PROFILE 2 provides 
extensive information to help you sort out which vectors are pointing 
where, what VBLs are set and the nature of the installed Cookie Jar (if 
present) and more. This level of use requires knowledge of the system and 
what the details reported by PROFILE 2 mean. I'm not going to explain them 
all here I'm afraid, on the basis that if you don't know what they mean 
then you don't need to know what the values are. Sources of data are few 
and far between and the following may help:

Modern Atari System Software (1993); HiSoft; ISBN 0-948517-63-8; HiSoft
The Atari Compendium (1993); Sanders, Scott; ISBN 0-9638331-0-3; SDS 
Publishing
The Atari A to Z; (1995); Mark S Baines; Linnhe Computing
Atari ST Internals (1988); R. Brckman, L. Englisch and K. Gerits; ISBN 0-
916439-46-1; Data Becker GmbH
Concise Atari ST 68000 Programmer's Reference (1986); K. Peel; ISBN 1-
85181-017-X; Glentop Publishers Ltd.
A Hitchhikers Guide to the BIOS (1986); Atari Corp. PD text file
Rainbow TOS Release Notes (1989); Atari Corp.
STE TOS Release Notes (1989); Atari Corp.
TT030 TOS Release Notes (1990); Atari Corp.
Atari DocSupport Developer's Kit (1991); Atari Corp.

All the books are out of print.

Compiler program manuals are good sources of this sort of 'inside' 
information. It's also surprising what is available as text files on the 
Bulletin Board networks and through PD libraries!

PROFILE 2 can be run under two kinds of conditions. Firstly, in an empty 
system devoid of accessories and AUTO folder programs, under GEM and from a 
floppy. This will tell you what sort of default set up you have and will be 
your standard for telling others, such as software companies, what system 
you have. Computer repairers and upgraders often need this information as 
well as the private user wanting to confirm his or her purchase.

Secondly, you may run PROFILE 2 under various configurations, with hard 
disk boot programs, accessories, AUTOs, Desktop replacements, hardware 
modifications etc. and see what effect these programs have on your system. 
Changing the configuration of your system (programs like Superboot and 
XBoot make this incredibly easy and convenient) will tell you much about 
the effects of individual programs and what they do to your computer and 
perhaps to each other. This can be an invaluable aid to bug hunting, virus 
hunting, sorting out program incompatibilities etc.


PROFILE 2 - THE REPORT

PROFILE 2 will print a report to the screen, printer or disk of your 
computer's hardware and software configuration.

A list of the pages provided is:

1   Hardware, TOS and Display
    F1 key
    Most of this is self explanatory. Some of it will only appear if you
    have a Cookie Jar installed with relevant values although if the CPU
    and FPU are not found in a Cookie Jar then some other code is used to
    determine what is available (except under MagiCMac which crashes when
    performing the FPU hardware test). However, this code isn't thorough
    and both values are shown if available.

    Note that the Cookie Jar value for the FPU is often set by TOS to a
    value that demonstrates some uncertainty about the type of FPU
    installed. This uncertainty belongs to TOS and the codes it sets not
    PROFILE 2. If you have a _FPU value of $00020000 which is interpreted
    as "MC68881 or MC68882" and you know you have a MC68882 FPU then try
    changing the value to $00060000 with a Cookie Jar installer.

    Some items default to the basic type (Machine, Floppy Disk Drive). If
    PROFILE 2 reports an incorrect value then perhaps you ought to update
    your Cookie Jar with a suitable program. Refer to the "Cookie Jar
    Configuration" page for full information on some of these items.

    Note that the two alternative numbering systems for the TOS version
    number have been used where appropriate. Therefore, TOS 1.04 is the
    same as 1.4. It is my contention that Atari's attempt to change the TOS
    numbering system for the early TOSes after the old numbers have been
    accepted for several years, is ridiculous. To add to the confusion they
    still refer to both TOS numbers in documentation and in personal
    conversations. TOS 1.0 remains so or may be called TOS 1.00. Atari
    would like to change TOS 1.2, 1.4 and 1.6 to TOS 1.02, 1.04 and 1.06.
    However, TOS 1.62 remains as such which implies a far greater upgrade
    from TOS 1.06 than actually took place! (I once saw someone sadly refer
    to TOS 1.62 as 1.062! You can't get 1.062 from the BCD value $0162 in
    the ROM code and this just demonstrates the confusion that Atari have
    caused).

    The TOS version number is contained in the ROM at offset $02.

    The official TOS version numbers are:

        os_version    Old     New     Name
        _sysbase+2    Number  Number

        0x0100        1.0     1.00    ROM TOS or Old TOS
        0x0102        1.2     1.02    BLiTTER TOS or Mega TOS
        0x0104        1.4     1.04    Rainbow TOS
        0x0106        1.6     1.06    STE TOS
        0x0162        1.62    1.62    STE TOS
        0x0201                2.01    Mega STE TOS
        0x0205                2.05    Mega STE TOS
        0x0206                2.06    Mega STE TOS
        0x0301                3.01    TT030 TOS
        0x0305                3.05    TT030 TOS
        0x0306                3.06    TT030 TOS
        0x0400                4.00    Falcon030 TOS
        0x0401                4.01    Falcon030 TOS
        0x0402                4.02    Falcon030 TOS
        0x0404                4.04    Falcon030 TOS

    Numbers not in this list are third party modifications such as 1.41.

    Some people have claimed to have a TOS 1.09 in the UK. It has always
    been my belief up until recently, that this was due to certain programs
    inaccurately reporting the GEMDOS version rather than the TOS version
    number. TOS 1.0 and 1.2 do have a GEMDOS version number of 0.19. After
    some recent discussions on the BBS networks, it would appear that a
    true version number of TOS 1.09 does exist. It is not, however, a
    mainstream TOS and it would appear that it is a pre-TOS 1.2 version
    that Atari UK produced to cater for the BLiTTER chip before TOS 1.2 was
    made available by Atari US.

    There is a little confusion over the GEMDOS version number and whether
    it should be shown as hex/BCD format as with the TOS version number or
    decimal format. This gives two differing numbers, of course. The GEMDOS
    version number for TOS 1.4 could be 0.15 or 0.21 according to which
    format you subscribe to. Atari choose the former and I make it the
    default here but also show the decimal format.

    An attempt is made to work out the effective processor speed compared
    to a 8 MHz MC68000 CPU. The reported speed does not take the RAM caches
    of hardware accelerators or CPU on-chip caches into account, so that
    the speed IS NOT the hardware CPU rate but the effective processing
    speed of the CPU *relative* to a 8 MHz MC68000. This figure may vary
    slightly depending on what processes you have going on in the
    background, for instance AUTO folder TSRs and accessories. Compare the
    'empty system' result with other configurations to see how some
    software may affect the speed of your computer. Please also note that
    this is the CPU speed and NOT the speed of the computer as a whole. In
    other words, if PROFILE 2 reports that you CPU is comparable to 2.5
    times that of a 8 MHz MC68000, it DOES NOT mean that, say,
    decompressing files or scrolling through a text file is 2.5 times
    faster.

    On a Falcon and computers with video cards the "Current Getrez Screen
    Mode" will report an incorrect value except with ST compatible modes.
    This isn't a fault of PROFILE 2 but the resolution the computer sees
    itself running using the old and almost defunct Getrez() function. The
    function should return a value of 3 for a Falcon, for instance, but
    usually returns a value of 2 which means ST High Resolution Mono mode.
    Whether this is a bug in TOS 4 is yet to be determined.

    Some users are confused as to what PROFILE 2 reports here. No program
    should use Getrez() to find out the resolution of the screen as its
    return values are too limited and don't allow for video cards,
    overscanned screens and the Falcon. However, some programs *do* still
    use it and can give problems for a user when they come up with a "Can't
    run in this resolution" alert. PROFILE 2 reports this value so that the
    user may know what screen mode the system thinks it is running in using
    the Getrez function and so help to sort out these problems.

    Apart from this use, this information is meaningless on anything but a
    standard ST/STE. For the true screen resolution and other video details
    see the "Current Resolution" and following lines on this page.

    The NVRAM details are only shown if you have a Falcon or TT. Please
    note that these details are those set when the computer boots up and
    may not be current. Most people have incorrect settings here. The TT
    doesn't make full use of this storage space and so most of the report
    doesn't apply to them anyway.

2   Memory
    F2 key
    The total amount of ST RAM and Alternate RAM (TT chip RAM only) is
    reported as well as that used, free and the largest single free block
    of each. However, on a TT the total amount of Alternate RAM can only be
    calculated by an undocumented feature, which is simple enough but
    relies on that memory always starting at the address $01000000. There
    is no 100% guarantee that it always will, but then there is no real
    reason why it shouldn't. If this causes problems, then please tell me.
    Which items are reported on this page depends on what is installed and
    available.

    There is a problem with virtual memory (which appears as alternative
    memory) as there is no way to know what the total amount installed is,
    just the total amount that is free. If you have virtual memory then
    some calculations can not be performed and do not appear.

    Percentage values are shown as a percentage of the relevant total
    value, that is, if the value refers specifically to ST or TT RAM then
    the percentage is a reference to the separate total ST or TT RAM
    values. If the value doesn't refer to any specific type of RAM then the
    percentage refers to the total available memory including TT RAM if
    available.

3   Drives
    F3 key
    Again, mostly self-explanatory. The BIOS Parameter Block or BPB of all
    mounted drives is shown where possible. This information is stored on
    the disk and informs TOS of the details of the drive's format. TOS
    needs to know how big the sectors are and where the FAT and data
    sectors start.

    If this data isn't displayed then an error occurred whilst obtaining
    it. I play ultra-safe here when scanning the disks so it may fail
    especially on non-Atari hardware. PC and Mac formatted disks used under
    emulation do not have a BPB of course and so information on the
    structure of these disks cannot be reported.

    Only those drives where the BPB is available are shown, non-hard disks
    (CDROMs etc.) are skipped if certain functions return an error. Also
    note that a floppy drive A: or B: is only shown if it is the current
    drive on the assumption that a disk is still present in the drive. If
    there isn't a disk present then the system may ask you to insert one or
    sometimes lock up.

    Each disk's volume label name is shown, if available and also the
    NeoDesk 20 character volume label name, if found.

    The BPB information displayed is obtained when PROFILE 2 loads. If you
    want an update of the information here then you need to re-initialise
    PROFILE 2 by pressing <Cntl><R> or using the menu item in the 'Options'
    menu.

4   pun_info Structure
    The pun_info structure is provided by TOS for any hard disk driver to
    make a relationship between the logical drives installed on the Desktop
    and the physical units connected to the computer. Logical drives A: and
    B: are assumed to be floppies and everything else a hard disk. RAM
    disks are reported in the list of logical drives (as they are on page
    3) but they are not included in the 'Partitions' table as they do not
    have a physical unit counterpart.

    Not all hard disk drivers fully initialise the pun_info structure.
    Early versions (still in use) of Atari's AHDI and ICD's driver do not.
    The commonly used ICD drivers do not even properly initialise the table
    linking the logical units with the physical sectors. With all versions
    of the ICD drivers up to v6.5.5, the partition start sector is offset
    by four partitions, so that the start sector for partition C is that
    listed under partition G, partition H is for D and so on. However, the
    ACSI device number is correct for each partition. Also, under some ICD
    drivers, the ACSI device number for a partition that doesn't physically
    exist (should be 7 but usually found to be 4) and the flag that
    designates the physical presence of a device are also wrong. Here,
    PROFILE 2 interprets everything as physically existing whether it does
    or not. Do note that this ISN'T a fault in PROFILE 2. It reports what
    it finds!

    Under AHDI drivers, an ACSI device number of 7 designates that that
    partition does not exist (accepted range is 0 - 6) and should relate to
    the list of logical devices above that (RAM disks excepting, of
    course). I also list the Driver ID found before the pun_info structure
    for non-AHDI drivers but this doesn't seem to be in standard use except
    by ICD.

    I have no plans to compensate for the ICD partition start sector error
    although it has been requested several times. The job of PROFILE 2 is
    to report what it finds, not what I or you want it to find. Massaging
    the data would only lead to confusion, the user never knowing whether
    what they saw actually existed in their system or just in PROFILE's
    window.

5   File System Limits and Capabilities
    Using the U: drive available on MultiTOS, later versions of the MagiC
    operating system and Geneva, different file systems can be installed.
    Their limitations and capabilities can be analysed easily and reported
    here.

    Please note that not all file systems and directories can be analysed,
    such as CDROMs.

6   Floppy Disk Drive A Check
    It is often useful to see how a floppy disk has been formatted. These
    details are contained in the disk's boot sector which is reported here
    when you select the 'Check Floppy Disk' menu item in the 'Options' menu
    or press <Cntl><D>. Also, the disk's integrity is checked sector by
    sector and errors reported.

    Only a floppy disk in drive A: will be analysed - drive B: is ignored.
    You MUST have a disk in the drive when you start this process. Some
    systems collapse if you try to access an empty drive.

7   ROM Cartridge
    F4 key
    If a program cartridge is attached then the details of this are
    reported. The cartridge has to have a program ROM installed, so
    cartridges that are just dongles or interfaces for hardware, such as
    scanners, are not seen by your system or PROFILE 2 as there is nothing
    to report.

    This page is disabled if running under MagiCMac on an Apple Mac or
    MagiCPC on a PC which, of course, don't have a Cartridge port. Some
    emulators, such as STonX, PaCifiST and GEMulator do not provide any
    means by which to recognise them and the type of system being run on.
    Consequently, I cannot disable this page on a PC running these
    emulators. However, only STonX falls over on this page giving a bus
    error. There is nothing I can do about it I'm afraid - contact the
    STonX author.

8   Serial Devices - Current Settings
    F5 key
    These are the current values for various parameters including the
    buffer lengths for the serial devices including the serial port,
    keyboard and MIDI ports. If the system supports the Bconmap() function
    (Mega STE, TT and Falcon030, and any other computer running HSMODEM
    serial port enhancer or MagiC operating system) then all the available
    devices are shown together with the contents of the BCONMAP structure.
    Do note that on Falcons the default serial port device is device 6 and
    not device 7 despite documentation elsewhere indicating that device 6
    is illegal. Device 6 is the MFP compatible port which exists but isn't
    connected to any external port on the back of the computer. Some
    programs will set the default port to device 7 but most (such as
    HSMODEM) only access device 7 without making it the default device.
    This can lead to some confusion when examining the parameters of the
    serial port device and why PROFILE 2 shows all the available devices.

    The method for finding the speed of the serial port isn't always
    accurate, especially under TOS 1.4 and 1.6 when the Atari patch program
    TOS14FX2 hasn't been run. Under this and a few other circumstances the
    speed will either be unknown or 38400 bps or greater. If a Control
    Panel has been used and the value stored in the DESKTOP/NEWDESK.INF
    file then the serial port speed can also be checked under page 21.

    If you are using TOS14FIX.PRG AUTO folder patch for TOS 1.4 and 1.6
    instead of TOS14FX2.PRG then change it now. The former version is buggy
    and causes a crash with a standard TOS function I use to get the speed
    of the serial port. I have to catch this and consequently you don't get
    a report on the baud rate. I have enclosed TOS14FX2.PRG in the PROFILE
    2 package. Replace it now!

    These values may not match some of those in the AES shell buffer page
    unless this shell buffer is made active by saving the Desktop.

9   Miscellaneous Falcon030 Details
    F6 key
    Various specific Falcon030 details are reported here such as the video
    mode and whether the DSP or sound system has been taken over. The video
    mode details are the currently set ones and may disagree with those set
    on the Desktop and shown in page 21 "AES Internal Shell Buffer - The
    Installed Configuration" page if the Desktop hasn't been saved. They
    may also disagree with those on page 1 as detailed in the NVRAM as
    those settings are set at the start of the boot up process and may be
    subsequently modified. This page is disabled on non-Falcons.

10  AES
    F7 key
    A report on the AES version number and other details, most of which is
    only available with AES version 4.00 and even more with version 4.10.
    However, these details are also shown if MagiC or Geneva operating
    systems are loaded. These details will be useful to programmers wanting
    to know about software compatibility.

11  VDI Drivers
    There is a great deal of data related to the VDI which is available for
    each system driver installed via the GDOS ASSIGN.SYS file. This can be
    useful to see if you have the correct GDOS drivers available. The
    current screen driver is shown (though not the others that may be
    available) and those found in the GDOS ASSIGN.SYS file. These usually
    include the printer driver and may be the metafile driver for creating
    GEM file (META.SYS), the memory driver (MEMORY.SYS) and a driver for
    redirecting printing to a *.IMG file on disk (IMG.SYS).

    Under NVDI some of the 'Reserved values without meaning' do have
    meaning and are interpreted accordingly. Some of these only apply to
    the printer drivers however so you'll see different displays for
    different drivers. All this is automatically recognised by PROFILE 2.

    Under the STonX emulator a zero length file called "PRN:" is created in
    the current directory. Because of the format of the name it is
    impossible to delete this file from within PROFILE 2. This is a bug in
    STonX and not PROFILE 2.

12  Installed Fonts
    A list of the fonts installed via GDOS is shown. Note that this isn't a
    list of all the fonts available on your disk but those installed and
    available to your system for immediate use. The total number of fonts
    is shown which includes the current system font.

    The font index, font type and name are listed. The name has a limit
    under GDOS of 31 characters so some names might be truncated. This
    isn't a PROFILE 2 bug. The font type is either 'Bitmap' or 'Outline'.

13  Multitasking System
    F8 key
    If MiNT or the MiNT kernel of MultiTOS, MagiC or Geneva is installed
    then some details are shown. The details vary according to what is
    available from data structures the systems set up. This page is
    disabled on singletasking systems.

14  Multitasking System - Configuration File
    A display of the current MINT.CNF, MAGX.INF or GENEVA.CNF configuration
    file depending on the multitasking system installed. This page is
    disabled on singletasking systems.

15  Multitasking System - GEM.CNF File
    A display of the current GEM.CNF configuration file for MultiTOS or
    Geneva. This page is disabled on systems without MiNT/MultiTOS or
    Geneva installed.

16  AV Server Protocol Status
    If an AV Server (usually an alternative Desktop) is available on your
    system then it is polled to find out which particular AV server
    protocol functions it is compliant with. At the time of writing only
    the Thing Desktop is fully compliant.

17  Important System Configuration Addresses
    F9 key
    This page contains some of the most important items that people may
    need to know at a glance. They are mostly repeats of details contained
    elsewhere (System Variables especially) but have the advantage of
    having a little explanation and contained together. Some of these are
    important if you suspect the presence of a virus attaching itself to
    the Reset Vector or Hard Disk routines, for instance. These details can
    be followed up on page 33 perhaps using the XBRA checks.

    Checks are made on the Reset Vector values and those for the Memory
    Configurations to note their validity.

18  Operating System Header Block
    F10 key
    This is simply a record of the first bytes in the TOS ROMs pointed to
    by the system variable _sysbase, where some important hard-coded
    details are kept. Some of these details do not appear on TOS 1.0 STs.

    Note that under operating systems loaded in from disk, such as
    MultiTOS, MagiC and Geneva, some of these details will not reflect
    those in the actual ROM code. Under some emulators such as MagiCMac,
    the TOS ROMs do not exist of course, but an image of it does in memory.
    Emulators such as GEMulator can use ROM chips as well as on-disk (and
    subsequently in memory) TOS images.

19  Program Basepages
    Shift-F1 key
    The BASEPAGE structure is detailed here for the current program i.e.
    PROFILE 2, PROFILE 2's parent process, its grandparent and great-
    grandparent processes and so on, if available. The parent is normally
    the Desktop or replacement Desktop or Shell program, that is, the
    program that PROFILE 2 was launched from. It is envisaged that it will
    be this list that users will find useful rather than the current
    process basepage.

    Eventually, the chain should end somewhere in the operating system.

    The standard format for the command line is that the first byte
    indicates the length of the command line, so you may see some odd
    characters here. This is normal. However, not every program that is
    capable of running another program uses this initial count byte, such
    as NeoDesk.

20  AES Internal Shell Buffer - The Installed DESKTOP/NEWDESK.INF File
    Shift-F2 key
    This is the AES shell buffer, that is, the installed version of the
    DESKTOP/NEWDESK.INF file in memory and not necessarily current and the
    same as the DESKTOP/NEWDESK.INF file on disk. It is important that you
    realise this. What PROFILE 2 is showing is the shell buffer that the
    system and other programs will be looking at. If your NEWDESK.INF file
    is very large the display may get truncated.

    If MagiC or MagiCMac are loaded then the AES shell buffer will contain
    the control panel and Desktop information part of the MAGX.INF file
    (from the #_CTR delimiter). This is displayed instead of the
    DESKTOP/NEWDESK.INF information which is inactive and meaningless under
    MagiC.

21  AES Internal Shell Buffer - The Installed Configuration
    These details are a report on the configuration of the AES's internal
    shell buffer. Under MagiC or MagiCMac, only the DESKTOP/NEWDESK.INF
    '#a', '#b', and '#c' lines are used and therefore reported here. The
    AES internal shell buffer is only updated when the Desktop is saved and
    so any changes made without saving the Desktop will not be detected by
    PROFILE 2.

    Note that for the "RGB Colour Values" there are sixteen sets of three
    digits, each digit for Red, Green and Blue. On the ST, this range of
    digits for each colour value is 0 to 7, so that white is 000 and black
    is 777. However, on the STE, the colour range was extended to fifteen,
    but instead of using the hexadecimal representation of numbers Atari
    chose to use the character set 0 to 9 and : for 10, ; for 11, < for 12,
    = for 13, > for 14 and ? for 15. Therefore, if you get a RGB colour
    value of "?;<" it isn't nonsense but means 15 11 12.

    The representation of some of the values shown here may differ from
    those represented on page 20. Note that the system will install a
    default set up if a DESKTOP/NEWDESK.INF file isn't available at boot
    up. I really recommend a ROCP (Read Only Control Panel) program, which
    is supplied and should be run from the Desktop after boot up. It reads
    the installed DESKTOP.INF file in memory, activates the settings and
    quits.

    If NEWDESK.INF is used instead of DESKTOP.INF then more details are
    displayed. Extra NEWDESK.INF file settings for TOS 4 on the Falcon030
    are also shown concerning the video setup. There appears to be an
    additional problem in that the XCONTROL Control Panel accessory doesn't
    update the DESKTOP/NEWDESK.INF file when making changes to the serial
    port and printer details. Here, the earlier CONTROL Control Panel had
    an advantage and may be used to install a DESKTOP/NEWDESK.INF file with
    the correct '#a' and '#b' lines before using the XCONTROL Control
    Panel. Again note, that the Falcon video mode details here may not
    agree with those displayed on page 9. Save the Desktop then they should
    both agree.

22  Control Panel Settings and GDOS
    Shift-F3 key
    PROFILE 2 can distinguish between the four types of GDOS (GDOS,
    FONTGDOS, FSMGDOS and SpeedoGDOS). Some copies of FSMGDOS are available
    but officially it was never released by Atari. It was replaced by
    SpeedoGDOS. Please note that NVDI 3 and 4 are SpeedoGDOS 5 compatible.

    The other items reported here are controlled by Control Panel type
    programs and may be contained in the DESKTOP.INF or NEWDESK.INF file
    and these are the currently installed values. These may differ from
    those in the DESKTOP.INF or NEWDESK.INF file itself because another
    program has taken over the setting of these items, such as an
    alternative Desktop like NeoDesk. Also, be aware that some of the
    DESKTOP.INF file settings are not installed unless a Control Panel or a
    Read Only Control Panel program is run.

23  GDOS - ASSIGN.SYS File
    A display of the current GDOS ASSIGN.SYS file. The file might be
    truncated if too long.

24  GDOS - EXTEND.SYS File
    A display of the current GDOS EXTEND.SYS file. The file might be
    truncated if too long.

25  AUTO Folder Programs
    Shift-F4 key
    This is a list of the active programs in the AUTO folder on the boot
    drive. I just look for the files with the *.PRG filename extender.
    Therefore, if you changed the name of any AUTO folder programs after
    boot-up the list may not reflect those files that were installed in the
    system.

26  Current Accessories
    This is a list of the accessories found. I just look for the files with
    the *.ACC filename extender. Therefore, if you changed the name of any
    accessory files after boot-up the list may not reflect those files that
    were installed in the system. However, I do check to see whether they
    are installed or not and if so, report their application ID number.

    I also try to look in the right places for the accessories. If you have
    an ACCPATH environment variable set for various paths where you have
    installed them then I look there, or check the root directory of the
    boot drive. Failing that I look for folders called \ACC or \ACCS.

27  Current CPX Modules
    This is a list of the active CPX modules. I just look for the files
    with the *.CPX filename extender after checking in my own CPXPATH.INF
    file (used by Linnhe Computing CPXs) and if absent, then the
    CONTROL.INF or ZCONTROL.INF files used by their respective Control
    Panels which should contain the path of the folder containing the CPX
    files. Failing that I check a folder called CPX in the boot drive root
    folder. Therefore, if you changed the name of any CPX files after boot-
    up the list may not reflect those files that were installed in the
    system.

28  Currently Running AES Processes
    Available only under multitasking systems, this is a list of all the
    active processes in memory. The application type and ID number are also
    shown.

29  Vertical Blank Interrupts
    Shift-F5 key
    Many accessories and AUTO folder programs need to keep doing something
    periodically after being loaded, that is, they stay in memory and are a
    form of multitasking (though not in the proper sense of the word).
    These are TSR programs or Terminate and Stay Resident programs. Some
    install routines as Vertical Blank routines or VBLs. These are called
    every time the screen raster scan moves from the bottom right hand
    corner to the top left of the screen when drawing the screen display.
    This occurs every 70th of a second on a mono monitor such as the
    SM124/5 and every 50th or 60th of a second on ST colour monitors or
    TVs. Again, you can check on these addresses on page 33 to page 38 to
    see if any of them were installed by XNAM compliant programs. Memory
    monitor programs can be used to see what is present at these addresses
    as well.

    Although it is possible, but unusual, to have more that eight VBLs,
    eight is the default number in every system. PROFILE 2 makes no attempt
    to look for any more. If there is a need for this then please let me
    know.

30  Cookie Jar Configuration
    Shift-F6 key
    The Cookie Jar was introduced with TOS 1.6 and is automatically
    installed in TOS 1.6 and later. It is possible to modify or install
    your own Cookie Jar in any system with any TOS. The Cookie Jar is an
    attempt to provide programs with information about the type of system
    they are running on, especially the type of hardware. This would
    normally be difficult for any program to establish. Many programs need
    to know which processor is installed and whether a floating point
    coprocessor is available so as to make use of their facilities. The
    type of video SHIFTER and sound facilities are also different on
    various systems and a graphics program may need to know if the STE type
    video SHIFTER is installed to use the extra colours present.

    The Cookie Jar is a list of IDs and values, stored in memory the
    address of which is pointed to by the system variable _p_cookies at
    address $5A0. The values often just show the presence of a machine's
    facility or its type or the presence of an active TSR program. Other
    values may be addresses of routines or data structures in memory or a
    version number. There is no standard for these. IDs are four ASCII
    characters and each should be unique and descriptive. Atari have
    reserved the underline character '_' as the first character of their
    IDs.

    This page lists in order the IDs and their values in hex, ASCII and
    decimal and the size of the Cookie Jar. Note that any Cookie Jar
    program can modify the size of the Cookie Jar. Some programs use
    incorrect characters for the Cookie ID and PROFILE 2 tries to trap
    these. Atari's own MACCEL3 is one of these with the intention of making
    its Cookie ID of $AA006E look like MOOSE which is supposedly close
    enough to be mistaken for MOUSE! Absolutely pathetic - talk about
    breaking your own rules!

31  Cookie Jar Interpretation
    This page interprets the values of the official Atari IDs and other
    selected and significant non-Atari ones. Other IDs not specifically
    covered internally by PROFILE 2 are scanned for in the accompanying
    PROFCOOK.LST file. If the ID is found a description of the program that
    installed it is shown.

    However, understanding what the Cookie values mean is anybody's guess
    and usually of no concern anyway. Some are version numbers, others are
    addresses in RAM where that program is loaded and some point to another
    identifier (usually four characters) or a version number in memory. In
    most cases it doesn't matter to the user what they mean.

    PROFILE 2 is capable of detecting all the official and semi-official
    Atari Cookies, the latter of which include the presence of the new
    GDOSes, Poolfix, TOS 1.6 patch, MiNT Kernel and the Diablo driver for
    SLM laser printer. The new International Date and Time Cookie and
    Nationality Language/Keyboard Cookie are included and versions of
    various installed software that have written a Cookie shown, such as
    _NET, _FLK and MiNT.

    I also check and report on specific details for some other significant
    programs, the current list being: MagiC (MagX), MagiCMac (MgMc),
    Machine Name (MNAM), Geneva (Gnva), NeoDesk (NLdr), Outside (SWAP),
    NVDI (NVDI), OverScan (OVER), UIS3 (UIS3), VdiFix (VFIX), FormDoIt
    (FrmD), Selectric/Freedom (FSEL), Let 'em Fly (LTMF), Virtual Screen
    (VSCR).

32  Environment Variables
    Shift-F7 key
    Many alternative Desktops, command line interface shells and programs
    set up environment variables in particular the PATH= variable which
    informs TOS or any program which directories to search through when
    looking for resource or data files.

    The standard AES environment string set up for the AUTO folder and
    Desktop has a bug where a nul is placed after the '=' sign as in
    PATH=$0A:\$0$0. It should not be there. The two trailing nuls correctly
    designate the end of the strings. Some programs get around this and
    some others misuse it. Atari have recommended that it shouldn't be
    used. I trap this and show you it exists, if present.

33  System Variables
    Shift-F8 key
    The address and official Atari name is given together with the values
    they contain in hex and decimal. I've added some prefixes to some names
    to aid identification. These are where a system variable is 'divided'
    into many parts, like _themd which consists of four longs and _bufl
    which consists of two. I've given these suffixes to indicate which long
    is referenced. The same applies for each of the _vbl_list, xconstat,
    xconin, xcostat and xconout system variables where I've added a number
    on the end.

    Please note that some of these names are not the same as those in The
    Hitchhiker's Guide, Atari ST Internals and even The Atari Compendium.
    My names are taken from official Atari US source code and developer's
    documentation and are correct to the best of my knowledge.

34  Exception Vectors - First 32
    Shift-F9 key
35  Exception Vectors - TRAPs
36  Exception Vectors - FPU and MMU Interrupts
37  Exception Vectors - MFP 68901 Interrupts
38  Exception Vectors - TT MFP and SCC Interrupts

    Only those Exception Vectors that are important and usually of
    significance are shown. Those after $1BC are undefined and not shown.

    In systems with a MC68000 CPU with 24-bit addressing, many of the
    values shown are in two parts. The last six hex digits are an address
    of a routine executed in ROM when that exception is called due to some
    sort of error when a crash may be imminent. The first two hex digits
    (upper byte) are the number of bombs shown just before that crash and
    is the same as the vector number (in hex). Because of this pattern,
    scanning down the list can show quite easily any vectors taken over by
    user programs installed in the system. In TOS 3 and 4 systems with
    68030 processors, if the first two hex digits do exist they are part of
    the vector address.


PROFILE 2 - PROFCOOK.LST File

PROFILE 2 provides a file called PROFCOOK.LST which must be in the same 
folder as PROFILE 2 itself. This is an ASCII file which contains a list of 
all available Cookie IDs and XBRA IDs and a brief description of each one.

The format of each line starts with a four character ID (which may contain 
one or more spaces) followed by a colon. The description (which often 
includes the name of the creator of the program and ID) must be no more 
than 84 characters long which, including the ID, colon and line end 
carriage return makes a maximum line length of 90.

The file may be edited and updated by the user, but the format must be kept 
for it to be used correctly by PROFILE 2.


PROFILE 2 - XBRA and XNAM

The System Variables and Exception Vectors can be analysed for XBRA and 
XNAM compliance providing a powerful debugging tool for software and system 
developers. Some system variables and all the exception vectors contain 
vector addresses, that is, addresses that point to another part of memory 
that may be the start of an executable routine.

Many AUTO folder programs such as TSRs (Terminate and Stay Resident) and 
accessories install themselves in memory using the XBRA and XNAM protocols. 
Essentially, they hook into or take over various vectors, such as those 
pointed to by some system variables or exception vectors, so that when TOS 
(or other programs) transfer control via these vector addresses to run the 
routine pointed to by them, the TSR routine is run instead. Normally, if 
several of these programs want to do this to the same vector then problems 
could arise. Some programs do not save the address originally stored at 
this vector and so the last installed program usually wins kicking out the 
others. Most others do save the vector address but do so in non-standard 
ways incompatible with each other. The XBRA protocol, however, does 
introduce a standard so that each program can store the vector address and 
replace it with its own in a compatible manner. After any XBRA compliant 
program is called and run, it can then call the old address thus enabling 
another previously installed program to run and so on down the chain until 
the last original address is reached. In this way, all the programs get to 
run their routines at the appropriate time. Note, however, that if any 
program intercepts a vector without using the XBRA protocol, then it will 
break the chain and PROFILE 2 will not show any more XBRA IDs even if some 
still exist. This is not PROFILE 2's fault but one inherent in the system 
and will remain so until all programs use the XBRA protocol.

A good example of an exception vector that gets used for this is number 46 
- TRAP #14 Instruction (XBIOS). Several programs may use this vector to 
point to their own routines, such as NVDI, OverScan, NeoDesk etc.

XNAM protocol programs can't be chained and so don't need to maintain the 
old address. They usually appear as VBL routines but the XNAM protocol is 
rarely used and as such is basically just a naming device.

ST Applications Issue 11 November 1991 gives a good account of the XBRA 
Protocol.


PROFILE 2 - USING IT

The program is run by double-clicking on it from the Desktop. A little 
global data is gathered and processed at the start. This may take a few 
seconds or so depending on how many partitions you have.

PROFILE 2 will run on all Atari hardware (ST, STE, TT and Falcon) and non-
Atari hardware such as Macs and PCs where TOS is being emulated (such as 
with MagiCMac, MagiCPC and GEMulator). It requires a screen resolution 
greater than 70 columns. I make no apologies for not catering for ST Low 
resolution, please use a higher resolution.

Windows Control
On starting you will be presented with the main window and a menu bar. The 
first page will be displayed. You can access all subsequent pages from the 
'Report' menu or by pressing the <Return> key which will show each page in 
turn. <Cntl><Return> will show the previous page. The <Npad +> and <Npad -> 
keys will also do the same. The <Npad *> key displays the first page and 
<Npad Enter> displays the last page.

All the pages listed in the 'Report' menu can be accessed by using the 
Function keys as well. Some items have more than one page attached to them 
and these will display a submenu for you to choose from. Only the first 
page in a submenu is available through the Function Keys. If you are using 
MagiC 4 or 5 then please make sure that you have XMEN_MGR.PRG installed in 
your AUTO folder otherwise submenus won't work.

The display window can be moved, fulled, closed and scrolled with the mouse 
in the usual manner. <Cntl><Esc> or <Cntl><W> will close the window, the 
cursor keys will scroll the window by one line or column or by one page if 
used with the <Shift> key. The <Clr Home> key moves to the display to the 
top of the window and <Shift><Clr Home> moves it to the bottom. The window 
can be fulled with <Cntl><Npad *>.

Dialogs Control
All dialogs are amodal and placed in windows so that you can move them 
about, close them and act on them whilst also being able to view and act on 
other open dialogs or windows. <Cntl><Esc> or <Cntl><W> will close the 
dialog window, as will <Undo> which corresponds to the [Cancel] button.

Most dialogs have the usual [OK] and [Cancel] buttons which operate in the 
standard manner, i.e. [OK] will bring about an action and close the dialog. 
Some will also have an [Apply] button which does the same as [OK] but 
doesn't close the dialog window.

Configuration Dialog
The default position of the dialogs can be set to the screen centre, mouse 
position or last used position. This is set in the 'Configuration' menu 
item in the 'Options' menu or called with <Cntl><N>.

The 'Configuration' dialog also allows you to choose a smaller system font 
to display the text in the windows. <Cntl><Npad -> and <Cntl><Npad +> will 
also change the font size.

Windows are normally snapped to certain screen coordinates which speeds up 
the screen display. This can be turned off if you wish. Also, you may 
select whether you wish to have windows displaying the grow and shrink 
boxes when opened and closed.

Saving Pages
Under the 'File' menu, each page, a selection of pages or the whole report 
may be saved to disk with the default filename of PROFILE2.xxx, where 'xxx' 
is either:

    'Pnn' for a single page and nn being the page number
    'LST' for a selection of pages
    'REP' for the whole report
    'XBR' for a XBRA page

You may change this name and path when the file selector appears, of 
course. The whole report can be anything from about 60 K to 100 K long 
depending on your system. For some users it will be greater, for single 
disk users it will be less.

Each page, a selection of pages or the whole report may be saved to the 
standard Atari Clipboard with the default filename of SCRAP.TXT. PROFILE 2 
will look for this clipboard and display a message if it can't find it, 
probably because one hasn't been installed. PROFILE 2 won't install one for 
you on the premise that if you haven't got one you don't want one. If you 
do want one then obtain CLIPBORD.CPX.

Each page, a selection of pages or the whole report may be printed via the 
parallel printer port or serial port depending on where you have your 
printer as installed in the control panel. You may wish to set up your 
printer beforehand as some text lines in PROFILE 2 are longer than the 
usual 80 columns. The longest line length is 128 characters.

Under the 'File' menu the 'Printer Init' menu item can be used to enter 
some printer initialisation codes as a series of character sequences 
(represented as decimal numbers) separated by commas. These character 
strings are the decimal ASCII command codes for the relevant sequences, so 
the Epson control code for switching on 12 cpi Elite text is ESC M or 
27,77. You will enter "27,77" (without the quotes) in the initialisation 
line. A Hewlett-Packard control sequence for bold type is ESC (s3B so you 
enter "27,40,115,51,66" (without the quotes). You'll need to consult your 
printer manual for these codes. On a page printer (laser, inkjet) you can 
send a form feed to eject the page using the [FormFeed] button in the 
'Printer Initialisation' dialog.

However, you may find it easier to set up the printer from an accessory or 
CPX if one is available. If printing off more than the odd page, then save 
the pages to a disk file and format and print them from within your 
favourite word processor or editor.

Report Label
A single line comment can be added to the top of a report filed to disk or 
printed. This can be set using the 'Set Report Label' menu item in the 
'Option' menu. This label is saved in the PROFILE2.CNF configuration file.

These functions are unavailable unless you register.

PROFILE2.CNF File
These configuration details together with the window size and position can 
be saved to a PROFILE2.CNF file which PROFILE 2 looks for every time it 
loads. It must be in the same folder as PROFILE 2. Therefore, you can have 
your printer codes, report label, dialog position, window size and 
position, font size, window snap, grow/shrink boxes selection available as 
the default set up each time your run PROFILE 2. In addition, if you have 
the ST-Guide hypertext help system not installed as an accessory, then it's 
path will also be stored in the PROFILE2.CNF file.

The format of the PROFILE 2 configuration file is different to that of 
previous versions up to v2.20 where it was called PROFILE2.INF rather than 
PROFILE2.CNF. If a PROFILE2.INF file is found in the same directory as 
PROFILE 2 then it will be automatically converted to the new format and 
then deleted.

The configuration can be saved or loaded at any time from the 'Options' 
menu.

These functions are unavailable unless you register.

Doing a XBRA and XNAM Check
In the "Systems Variables" and "Exception Vectors" pages some addresses are 
vector addresses that can be checked for XBRA and XNAM compliance. The 
valid vectors are those with a number in the first column. The "XBRA Vector 
Chain Check" window is obtained by double-clicking on any line or calling 
the dialog to enter the number of the vector. This is obtained by pressing 
<Cntl><X> or selecting the 'XBRA Chain Check' menu item under the 'Options' 
menu.

The "XBRA Vector Chain Check" report window shows the relevant address and 
its value, which should be another memory address. Attempts are made to 
check this value - to see if it is in the ROM or illegal (pointing to 
protected memory or outside that available to the system). If a XBRA or 
XNAM compliant ID (four characters) is found then it is reported and the 
next address in the chain is shown until the chain ends. If the XBRA ID is 
found in the disk file PROFCOOK.LST, then a description of the program that 
installed the XBRA link is given. Please note that any check on a vector 
will only show if that vector was installed by a XBRA or XNAM compliant 
program. Many programs, especially older ones don't use this protocol. It 
doesn't make that address pointed to by the vector less valid. It was 
installed by something!

The contents of this "XBRA Vector Chain Check" window can be printed, filed 
to disk (with the default filename PROFILE2.XBR) or sent to the clipboard 
as usual unless you haven't registered.

Updating the Report Data
The data displayed in the windows is updated every time it is shown except 
the analysis of the primary Cookies (machine type and other hardware 
details), the search for an AV Server and the BIOS Parameter Block 
information on the "Drives" page and the fonts list on the "Fonts" page. To 
obtain the BIOS Parameter Block information it is required to force a media 
change on each drive otherwise data on the drive may be damaged. To do this 
too often, especially on a multitasking system could be unsafe so I only 
get the details once at the start of the program. However, these details 
will not change whilst PROFILE 2 is running except possibly the display of 
the amount of disk space used up and free.

As far as the "Fonts" page is concerned, there are several problems. Under 
SpeedoGDOS and ordinary GDOS it can take a while to get the list of fonts. 
This delay, which can be as long as several minutes, harms the convenience 
of moving from one page to another, especially when you don't particularly 
want the "Fonts" page. Also, when this page is shown for the first time in 
any one session, the font types are all correct. However, due to a problem 
with NVDI 3 and 4 all subsequent displays of this page show the bitmapped 
fonts as being outline fonts. I've investigated this and tried to solve it 
but can't, it is a problem with NVDI. More importantly, under SpeedoGDOS 
the second time the page is displayed PROFILE 2 locks up. Again, after much 
research I still can't solve this problem.

So, it is best to get this list of fonts once at the start of the program 
and display this list when required. This doesn't take up much extra memory 
and has the advantage of displaying the fonts faster than if the list was 
obtained anew every time.

If you do want an update of any of these details (except the fonts list) 
then select the 'Re-initialise Data' menu item in the 'Options' menu or 
press <Cntl><R> and the program will be re-initialised.

Getting Help
Rudimentary help is obtained by pressing the <Shift><Help> key or selecting 
the 'Simple Help' menu item. If you have ST-Guide a special hypertext help 
document (not unlike this document) can be viewed instead. ST-Guide can be 
installed either as an accessory or loaded from within PROFILE 2. Simply 
place the PROFILE2.HYP and PROFILE2.REF files in your ST-Guide HYP 
directory (normally called GUIDES). Press <Help> from within PROFILE 2 to 
get help on the current page being viewed or <Cntl><Help> to get the 
Contents page.

The 'About' dialog obtained with <Cntl><I> or from the 'PROFILE 2' menu 
displays some important information: the version number, compilation date 
and acknowledgements as well as access to the 'Registration' dialog where 
you can enter your registration name and key and obtain full access to the 
program.

The program can only be quit by pressing <Cntl><Q> or from the 'File' menu.


PROFILE 2 - COMMAND KEYS

PROFILE 2 follows the GEM-List key commands standard where appropriate.

<F1> to <Shift><F9>   - Page selection
<Numberpad *>         - First page
<Numberpad Enter>     - Last page
<Numberpad +>         - Next page
<Numberpad ->         - Previous page
<Return>              - Next page
<Cntl><Return>        - Previous page

Cursor keys           - Scroll window by line/column
<Shift>Cursor keys    - Scroll window by page
<Clr Home>            - Top of page
<Shift><Clr Home>     - Bottom of page

<Cntl><Esc>
<Cntl><W>             - Close top window
<Cntl><Tab>
<Cntl><U>             - Swap window to front
<Cntl><Numberpad *>   - Full top window
<Cntl><Numberpad +>   - Increase font size
<Cntl><Numberpad ->   - Decrease font size

<Cntl><I>             - About dialog
<Cntl><R>             - Re-initialise the global data
<Cntl><X>             - XBRA chain check
<Shift><Cntl><P>      - Printer initialisation string
<Cntl><N>             - Program configuration
<Cntl><B>             - Set report label
<Cntl><D>             - Check floppy disk integrity
<Cntl><S>             - Save configuration
<Cntl><L>             - Load configuration
<Help>                - ST-Guide help - Current Page
<Cntl><Help>          - ST-Guide help - Contents
<Shift><Help>         - Simple help
<Cntl><Q>             - Quit
<C>                   - Clip current page
<Shift><C>            - Clip range of pages
<Cntl><C>             - Clip whole report
<F>                   - File current page
<Shift><F>            - File range of pages
<Cntl><F>             - File whole report
<P>                   - Print current page
<Shift><P>            - Print range of pages
<Cntl><P>             - Print whole report


PROFILE 2 - SOME COMMENTS

I have written this program using legal methods everywhere, as far as I can 
tell. It has been extensively tested on all TOS versions and all types of 
Atari computers with or without MultiTOS, MagiC, Geneva and on non-Atari 
hardware such as Macs and PCs using the various emulators MagiCMac, MagiCPC 
and GEMulator. As far as myself and the beta testers can ascertain all the 
information reported by PROFILE 2 is accurate. IN OTHER WORDS, WHAT PROFILE 
2 REPORTS IS WHAT IT FINDS. However, it may be that some strange figures 
are seen which appear at odds with what you know to be true. In many 
respects this is the point of running PROFILE 2. It will report the 
configuration that exists and not what you THOUGHT existed! Be very aware 
that running many different programs, such as accessories and AUTO 
programs, different hardware such a OverScan, accelerators, emulators etc. 
all affect the internal configuration of your computer. To make themselves 
known to the system and work they may well fiddle with some system 
variables, vectors, interrupts or even the apparent appearance of the ROM - 
all of which may or may not be what you thought or know to exist.

For instance, AutoSwitch OverScan messes with various system variables such 
as 'exec_os'. This system variable normally tells the system where the 
start of the AES is, like $E13D94 under TOS 1.6. That makes sense because 
the AES is in the ROM starting at $E00000 on TOS 1.6. But, OverScan can set 
this to something like $708C8 way down in RAM. Normally you may think this 
is a great mistake on PROFILE 2's part as it doesn't make sense - until you 
read the AutoSwitch OverScan manual and see that this is documented. 
However, not all software, by any means, documents what it is doing 
internally to your system - hence PROFILE 2!

Something else you may notice is that PROFILE 2 reports that you have less 
memory than you thought. This may well be because you have a RAM Disk 
installed that has altered the system variable 'phystop' to point, not to 
the top of physical memory, but to the memory address directly underneath 
the memory reserved for the RAM Disk. PROFILE 2 will catch this.

Logbase and Physbase are two more vectors that cause concern. Physbase will 
normally point to the base of memory holding the data for the physical 
screen (the one actually displayed). Logbase normally points to the base of 
the logical screen (the one onto which any drawing by the GEM VDI is done). 
Usually these addresses are both the same but do not have to be. For 
instance, a program may have a screen displayed (at Physbase) whilst 
writing another (at Logbase) and swap between them for quick, snappy screen 
draws. However, AutoSwitch OverScan is a program that messes with these 
values to the extent that any call to Physbase will return the Logbase 
value when OverScan software is installed. If you didn't know this and are 
writing a program using Logbase and Physbase calls which repeatedly return 
the wrong values, PROFILE 2 will help solve this problem for you.

PROFILE 2 is as extensive as a program like this can be and yet remain 
compatible on all hardware and operating systems. That was of paramount 
importance when being written. There may be some deficiencies in its 
reporting. These are for many reasons.

1   I don't know about them. If you do then why not tell me what I missed?
2   I didn't know how to find that data whilst retaining compatibility
    across all platforms.
3   There is no acceptable means of finding that data using sensible,
    accurate and legal methods. The TT Fast RAM situation in the TT is a
    case in point. As far as I and several developers in the UK and Europe
    can ascertain, involving consultation with Atari UK and Atari US, there
    is no 100% reliable legal way to report the total amount of 32-bit Fast
    Alternative RAM in a TT. PROFILE 2 will report the amount of TT RAM
    using an undocumented feature which I'm taking a chance on. It should
    be all right and has been so far.
4   A detail may be of too little importance to report or too esoteric and
    used by only one or two people.
5   Other programs do it better, like disk diagnostic programs or system
    speed analysers, such as GEMBench.
6   A detail may require the presence of third party hardware which I
    consider to be outside the scope of this program.
7   Others are moving the goal posts every day. I'm trying to keep up!

If you wish to comment on any of these points then please do, I am very 
receptive to program changes and suggestions. However, totally thoughtless 
and destructive criticism will be ignored! I am all too aware of my 
limitations and PROFILE 2 isn't perfect by any means. However, it is the 
best there is and I've run all the alternatives!


PROFILE 2 - BUGS AND PROBLEMS?

PROFILE 2 has been tested by myself and many knowledgable beta testers all 
of whom have different systems. PROFILE 2 has been developed over thousands 
of hours and with much thought. Most problems have been eradicated 
hopefully. If you find anything wrong then tell me!

PROFILE 2 v2.14 crashes under the Janus ST emulator card for the PC 
(although it works with GEMulator). I don't know why. I couldn't find a 
Janus ST beta tester for v2.20 so it may work again.

When trying to print and the printer isn't on-line, an alert should appear 
giving you the option to quit or turn the printer on and continue. This 
alert doesn't always appear the first time but does subsequently. We don't 
know why this is so although I suspect it is a Lattice C library bug.

There is a limit of 500 lines of text per page, so that pages that show 
external ASCII files, such as MINT.CNF and ASSIGN.SYS etc. might be 
truncated if over this limit.

If you find that the main window doesn't appear and you get a small icon in 
the top left corner then delete the PROFILE2.INF file if present (the old 
format file shouldn't be available any more) and the new PROFILE2.CNF file. 
Now start PROFILE 2 up again and then make any changes to your 
configuration and save it. All should be well now. This problem happens 
sometimes after converting the old PROFILE2.INF configuration file format 
to the newer CNF file format, but only under v2.21.

There are some minor discrepancies with the data reports when running under 
MagiCMac or MagiCPC but most of these are due to the compromises MagiCMac 
and MagiCPC have to make when running on Apple Mac or PC hardware which is 
substantially different to Atari hardware. PROFILE 2 reports what it finds 
and MagiC doesn't always use standard practices.

REMEMBER, PROFILE 2 reports what it finds. For the vast majority of values, 
PROFILE 2 just displays what is returned from a standard system call. It 
doesn't manipulate the data. So, WHAT YOU SEE IS WHAT YOU HAVE. I always 
welcome bug reports but always read the docs first so that you are sure 
you've understood what PROFILE 2 has reported. The majority of bug reports 
I've received over the years are not been bugs at all but actual values the 
user didn't expect or understand.


PROFILE 2 - VERSION HISTORY

V1.53
    March 1994
    The last version of PROFILE 1

V2.0 release 1 - 7
    Beta test versions tested June - December 1994

V2.08
    First release December 1994

V2.09 - V2.11
    Beta test versions tested February - March 1995

V2.12
    Release April 1995

    Bug fixes:
*   Submenus now work correctly on TTs.
*   Bug fixed where "Cookie Jar" submenu didn't work when main window was
    closed.
*   Bug fixed that caused a crash if some ASCII text files (such as
    MINT.CNF) weren't found at all.
*   Small bug fixed where F6 or F8 displayed a blank page if not running on
    a Falcon or Multitasking.
*   Small bug fix in function to get TT memory should speed up initial data
    gathering.
*   Bug fixed in "Memory" page which showed some values as having very
    large percentages.
*   Bug fixed in "Memory" page which showed "Free alternative TT TPA memory
    available" as zero under MultiTOS.
*   Bug fixed in "Current Accessories" page where multiple paths in the
    ACCPATH environment variable weren't searched correctly.
*   Bug fixed that caused the "Program Basepages" page to occasionally
    crash.
*   Small bug fixed in content of pages saved to disk or printed when that
    page exceeded the line limit.
*   ST-Guide now correctly launched under MagiC.
*   XBRA and XNAM checks now correctly searched for under operating systems
    loaded from disk, such as MagiC.

    Developments:
*   Some new code courtesy of Jon Ellis to detect CPU and FPU processors if
    the Cookie Jar isn't present. The Cookie Jar still takes precedence.
*   XBRA and XNAM checks now correctly cater for 32-bit addresses in the
    vector values, in particular those in Alternative RAM.
*   XBRA and XNAM page in ST-Guide now called if XBRA window is on top and
    ST-Guide called.
*   Total free memory and largest memory block available are now obtained
    under MiNT where before I followed Eric Smith's advice not to do this
    as it may cause problems with other processes. I now believe that the
    risk is minimal in PROFILE 2. As a consequence, the MiNT memory stats
    for drive U: are not now displayed.
*   Speed of initial data gathering under MagiC greatly increased.
*   "Screen memory" and "System memory" values now MagiCMac compatible.
*   "ROM Cartridge" page disabled on MagiCMac.
*   Supexec() calls used instead of Super() for increased safety under
    multitasking systems, especially with virtual memory and interruptible
    file systems.

    New:
*   Pages now show their page number in the page title/window information
    line.
*   New "Currently Running AES Processes" page showing currently running
    processes under multitasking systems.
*   "Serial Devices" page shows all Bconmap devices available, including
    the BCONMAP and IOREC structures.
*   The "Drives" page now shows the BPB of all mounted drives where
    possible.
*   "pun_info Structure" page shows whether the drive is physical or not.
*   "MultiTOS (MiNT) Details" page is now "Multitasking System" and the
    submenu varies depending on the system installed (MultiTOS, MagiC or
    Geneva) as do the details shown in these pages.
*   "MultiTOS (MiNT) Details - MINT.CNF File" page now shows MINT.CNF,
    MAGX.INF or GENEVA.CNF depending on system installed and now renamed
    "Multitasking System - Configuration File" page.
*   "MultiTOS (MiNT) Details - GEM.CNF File" page is now called
    "Multitasking System - GEM.CNF File" page and shows the GEM.CNF file
    belonging to MultiTOS or Geneva depending on which system is installed.
*   MagiCMac Cookie added to "Cookie Jar Interpretation" page.
*   Full AES data now shown if MagiC or Geneva are installed.
*   Some additional AES data for MagiC.
*   MagiC's AES shell buffer shown and correctly titled.
*   Only relevant data contained in MagiC's MAGX.INF file shown in the "AES
    Internal Shell Buffer - The Installed Configuration" page.
*   Nag alert installed for non-registered versions.

V2.13
    Release April 1995

    Bug fixes:
*   Some BPB details on "Drives" page may appear as negative values.
*   Problems with loading from floppy disk and obtaining BPB data, locks up
    if drive B not installed.

V2.14
    Release June 1995
    New:
*   The "CPU speed comparable to a 8 MHz 68000" item has been expanded and
    clarified in the program and text files.
*   Some slight cosmetic changes to the resource file.
*   In the "Important System Configuration Addresses" page the memcntrl
    value now shows the whole value rather than the upper byte as it was
    causing some confusion.
*   Form feed added to end of print.

V2.20
    Release June 1997
    Bug fixes:
*   Clipping a single page used to corrupt the window title.
*   Clip/Page/File current page used to crash if all windows were closed.
*   The "Serial Devices" page would crash with TOS 1.4 and TOS 1.6 when the
    TOS patch TOS14FIX.PRG was used in the AUTO folder. Using TOS14FX2.PRG
    solves the problem.
*   Saving a range of pages to disk or printed which encompassed one or
    more pages not available used to cause a page outside the range to be
    included.

    Developments:
*   All the data shown (except for the scan of the disks for the BIOS
    Parameter Block data - dangerous to do more than once, especially on
    non-Atari systems, the scan for an AV Server, the scan for the fonts
    list and the scan for the primary Cookies although some are re-scanned
    where necessary) is updated on every page display, essential for
    multitasking systems especially, so that any changes made to the system
    in the background are now caught and accurately reported by PROFILE 2.
*   Much code optimisation for speed and memory space. Many potential
    crashes eliminated.
*   Page layout standardised throughout.
*   A blank main window isn't now opened at the start.
*   For the "Current CPX Modules" page a more thorough search is made for
    the CPX modules folder including my own CPXPATH.INF file as used in my
    CPXs. The display now shows the CPX title, version number, ID and
    flags.
*   MagiC Backdrop button support added.
*   "Program Basepages" page now follows the series of Basepages until the
    end of the chain.
*   BIOS Parameter Block details for each partition in the "Drives" page
    expanded to include some extrapolated data as well as disk space
    details. The volume label name and if NeoDesk is present, the NeoDesk
    volume label name is also shown for each disk.
*   _AKP Cookie reports Keyboard Nationality *and* Language.
*   _MCH and _VDO Cookies will now recognise non-Atari hardware. MNAM
    Cookie recognition added.
*   Some cosmetic and consistency changes to the resource file. Some menu
    items handled better according to which windows are open, if any.
*   Window Title, Information line and scroll bars are not now updated when
    scrolling.
*   'Save to disk' now called 'File to disk' using the 'F' keys rather than
    'S' key combinations. 'Save Configuration' is now <Cntl><S> instead of
    <Cntl><O>.
*   The configuration file is now called PROFILE2.CNF the format of which
    has changed and is now incompatible with earlier versions.
*   Show the top and bottom of a window is now <Clr Home> and <Shift>
    <Clr Home> and show first and last page is now <Npad *> and <Npad
    Enter>.
*   Very large PC partitioned disks now have their BPB information read
    correctly.

    New:
*   'Configuration' dialog incorporates the old Mouse Position and Font
    Size dialogs.
*   Window snapping and Grow/Shrink boxes are now options, selected by the
    user and saved to PROFILE2.CNF configuration file.
*   Several new Cookies added to "Cookie Jar Interpretation" page.
*   Unknown Cookies are searched for in the PROFCOOK.LST file on disk and a
    description given in the "Cookie Jar Interpretation" page.
*   Unknown XBRA IDs are searched for in the PROFCOOK.LST file on disk and
    a description given in the "XBRA Vector Chain Check" window.
*   New "AV Server Protocol Status" page reporting on the capabilities of
    the AV Server, if found.
*   New "VDI Drivers" page reporting on full VDI details for GDOS system
    drivers including the current screen driver. Extra NVDI values are also
    shown.
*   New "Installed Fonts" page listing the GDOS fonts installed on the
    system.
*   New "Floppy Disk Drive A Check" page which enables a floppy disk's boot
    sector details to be displayed as well as having its integrity checked.
*   New "File System Limits and Capabilities" page which reports on the
    capabilities and limits of the file system installed under the U: disk
    drive.
*   NVRAM details added to "Hardware, TOS and Display" page for Falcons and
    TTs.
*   TOS 4 (AES 3.40 and greater) has the capability of some screen objects
    having a 3D effect but unfortunately makes a mess of it moving objects
    about and increasing their size slightly. The resource file is
    processed so that objects appear on the screen correctly, similar to
    those in MagiC and TOS versions below 4.
*   A comments label can be added to a report saved to disk or printed.
    This string is saved to the PROFILE.CNF file.

V2.21
    Release June 1997
    Bug fixes:
*   'Load Config...' menu item and <Cntl><L> now work again.
*   The old PROFILE2.INF file wasn't always deleted after conversion to the
    new PROFILE2.CNF format.

V2.22
    This release July 1997
    Developments:
*   Executable boot sectors are recognised better in "Floppy Disk Drive A
    Check" page.
*   Check made on size and position of window in PROFILE2.CNF file to try
    to catch values being set to zero on conversion from old PROFILE2.INF
    file.


PROFILE 2 - THE ACKNOWLEDGEMENTS

Thanks go to the beta testers:
PROFILE 1: Daron Brewood; John Eason; Lasse Eldrup; Paul Hargreaves; Daniel 
Hastings and Steve Taylor.
PROFILE 2 up to v2.20: Daron Brewood; Joe Connor; Mark Davidson; Ofir Gal; 
Rob Perry; Darryl Piper; Chris Ridd; Simon Robins; Brian Robson; Bob Samuel 
and Jon Waite.
PROFILE v2.20: Daron Brewood; Joe Connor; Bob Culverston; Mark Himsley; 
Neil Martin; Darryl Piper; Harry Sideras; John B Smith; Colin Watson; Peter 
West.

PROFILE 2 wouldn't be anywhere near as useful without them - my warm thanks 
to you all for your testing, encouragement and patience.

Thanks to Jon Waite for the assembly code to calculate the effective 
processor speed. It slotted in beautifully!

A special thanks to Martin Maisey for his FLDLIB amodal dialogs library and 
to Simon Robins for his MENU submenu and popup menu library.

And what would I have done without Jon Ellis' superb programming articles 
over the years in various magazines but especially ST Applications? Thanks 
Jon for all that hard work. I learnt a lot and it will be no surprise that 
quite a bit of your code, algorithms and ideas appear in various places in 
PROFILE 2.

In no special order, thanks also for ideas, bits of code, inside details 
and encouragement to Paul Alder, Stephen Atty, Kev Beardsworth, Matthew 
Carey, Eric Chapman, Mark Davidson, Karl Foley, Ofir Gal, Chris Goodwin, 
Richard Gorbutt, Mark Himsley, Alex Kiernan, Mick Lock, Mathew Lodge, Neil 
Martin, Stephen Nathan, Flemming Nielsen, Kevin O'Donovan, Rob Perry, 
Darryl Piper, Graeme Rutt, Oliver Skelton, Harry Sideras, Brian Stanton, 
Steve Taylor, Paul Walsh. I apologise if I've forgotten anyone else who 
made some contribution to my knowledge or enthusiasm.

Lastly, thanks to Jane, a supportive and understanding wife who makes it 
possible for me to do what I do.


Slinte mhath
Mark S Baines
Linnhe Computing
10th July 1997


PROFILE 2 - CONTACTING LINNHE COMPUTING

A self-addressed envelope is very welcome if writing to me and expecting an 
answer.

Address:
    Linnhe Computing
    'Linnhe', Shore Street
    Inver
    Ross-shire
    Scotland
    IV20 1SF

Telephone:
    01862 871624

E-mail:
    Internet:  msbaines@cix.co.uk
    FidoNet:   2:254/105.10@fidonet.org
    NeST:      90:102/107.0@nest.ftn
    TurboNet:  100:101/12.10@turbonet.ftn
    AtariNet   51:502/0.10@atarinet.ftn

Home Page:
    http://www.stsd.demon.co.uk/linnhe.html
