PROFILE v2.08 by Linnhe Computing Copyright (c) 1993, 1994 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 Save to Disk, Save to Clipboard and Print functions and you cannot Load or Save the PROFILE2.INF Options 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 cash, postal order or UK cheque). 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 40 characters) 2. Your address and 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, by Tain Ross-shire 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. 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. The FaST Club may place this program on its Disk Magazine which is available to subscribers. Floppyshop and The FaST Club may also include it on their Catalogue disks. The latest version will always be available from CIX in the atari.st/ 2listings topic file list or on the Internet at HENSA (via ftp, telnet, gopher at micros.hensa.ac.uk). PROFILE 2 and MAGAZINE EDITORS ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ No other 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. This especially applies to ST Format. 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 you make 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 you pay the writers that supply your copy. 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. 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 in standard ASCII text file PROFILE2.ASC The documentation in reformatable ASCII text file PROFILE2.HYP The ST-Guide hypertext help file PROFILE2.REF The ST-Guide reference file PROF2ICN.RSC The PROFILE 2 Desktop icon PROFILE2.NIC The PROFILE 2 NeoDesk icon ROCP.PRG A Read Only Control Panel program which sets the DESKTOP/NEWDESK.INF values as current 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, 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 256K to 4Mb 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 provide 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... 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. Brckman, 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. ST Application magazine, (monthly); FaST Club 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 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 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, 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 Screen Details F1 key Most of this is self explanatory. Some of it will only appear if you have a Cookie Jar installed with relevant values. 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. For full information on some of these items refer to the Cookie Jar page. 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 saw someone sadly refer to TOS 1.62 as 1.062 recently! 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. As far as I know, the present TOS version numbers are thus: 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 FalconTOS 0x0401 4.01 FalconTOS 0x0402 4.02 FalconTOS 0x0404 4.04 FalconTOS 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. 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 68000. 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. On a Falcon030 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 Falcon030, 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 Falcon030. 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(E). For the true screen resolution and other video details see the "Current Resolution" and following lines on this page. 2 Memory Details 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, except under MultiTOS where such interrogations are essentially dangerous in a multitasking situation. 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 and whether MiNT/MultiTOS is running. 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. Virtual memory under MultiTOS is even worse, the free virtual memory component cannot be divided out because using Mxalloc(-1) calls are not sensible and so all memory is seen as ST memory by PROFILE 2. 3 Disk Drives Details F3 key Again, mostly self-explanatory. The BIOS Parameter Block or BPB of the current drive is shown. 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. 4 pun_info Structure Details 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 initialize the pun_info structure. As far as I know, only Atari's AHDI version 3 or later does and also uses the extended pun_info data at the end of the structure. The commonly used ICD drivers do not even properly initialize the table linking the logical units with the physical sectors. With current versions of the ICD drivers, 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. 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 ROM Cartridge Details 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. 6 Serial Devices Details F5 key These are the current values for various serial port parameters including the buffer lengths. The active serial port, keyboard and midi ports are included. 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. 7 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 the NEWDESK.INF details page if the latter hasn't been saved. This page is disabled on non-Falcons. 8 AES Details 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. This will be useful to programmers wanting to know about software compatibility. 9 MultiTOS (MiNT) Details F8 key If MiNT or the MiNT kernel of MultiTOS is installed then some details are given on the limitations of the installed version. This page is disabled on systems without MiNT/MultiTOS installed. 10 MultiTOS (MiNT) Details - MINT.CNF File A display of the current MINT.CNF configuration file. This page is disabled on systems without MiNT/MultiTOS installed. 11 MultiTOS (MiNT) Details - GEM.CNF File A display of the current GEM.CNF configuration file. This page is disabled on systems without MiNT/MultiTOS installed. 12 Some 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 23 perhaps using the XBRA checks. Checks are made on the Reset Vector values and those for the Memory Configurations to note their validity. 13 Operating System Header Block Details 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 MultiTOS the OS PAL/NTSC and Country Code entry is modified from that actually contained within the ROM. This is because under TOS 4 and AES 4 these details are stored in Cookie Jar entries. 14 Program Basepage Details 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. 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. 15 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 it may get truncated here I'm afraid. 16 AES Internal Shell Buffer - The Installed Configuration These details are a report on the configuration of the AES's internal shell buffer. 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 differ from those on page 16. 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 PANEL accessory doesn't update the DESKTOP/NEWDESK.INF file when making changes to the Serial port and Printer details. Here, the earlier 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 PANEL. Again note, that the Falcon030 video mode details here may not agree with those displayed on page 7. Save the Desktop then they should both agree. 17 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. 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 NeoDesk. Also, be aware that some of the DESKTOP.INF file settings are not installed unless a Control Panel program is run or a Read Only Control Panel. 18 GDOS - ASSIGN.SYS File A display of the current GDOS ASSIGN.SYS file. 19 GDOS - EXTEND.SYS File A display of the current GDOS EXTEND.SYS file. 20 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, the list may not be an accurate one of those files that were installed in the system at boot-up if you changed the name of a program afterwards. 21 Accessories This is a list of the active accessories. I just look for the files with the ACC filename extender. Therefore, the list may not be an accurate one of those files that were installed in the system at boot-up if you changed the name of a program afterwards. However, I do check for whether they are installed or not. 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. 22 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 the CONTROL.INF file which should contain the path of the folder containing the CPX files. Therefore, the list may not be an accurate one of those files that were installed in the system at boot-up if you changed the name of a program afterwards. 23 Vertical Blank Interrupt Details 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 pages 23 - 28 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. 24 Cookie Jar Configuration Details Shift-F6 key The Cookie Jar was introduced with TOS 1.6 and is automatically installed in TOSes 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!! 25 Cookie IDs Interpretation This page interprets the values of the Official Atari IDs and other selected and significant non-Atari ones. Recognizing an ID is usually simple enough, for instance, "OVER" means OverScan, "FrmD" is FormDoIt, "LTMF" is Let 'em Fly, "NFnt" is NeoDesk Font, "NLdr" is NeoDesk Loader etc. etc. However, understanding what their 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 for some other significant programs, the current list being: MagiC, Geneva, NeoDesk, Outside, VRAM, NVDI, OverScan, UIS3, VFIX, FormDoIt, Selectric (FSEL), Let 'em Fly, Virtual Screen (VSCR). 26 Environment Variables Strings 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 GEMDOS 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. Secondly, it is always drive A:\ even if booting from drive C:\. 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. 27 Complete System Variables Contents Shift-F8 key This is the complete list as of TOS 4. 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. 28 Exception Vectors Contents - First 32 Shift-F9 key 29 Exception Vectors Contents - TRAPs 30 Exception Vectors Contents - FPU and MMU Interrupts 31 Exception Vectors Contents - MFP 68901 Interrupts 32 Exception Vectors Contents - 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. By default, 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 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. 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 routines, such as Quick ST3, 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. Most of the data is gathered and processed at the start. It may take a few seconds or so. PROFILE 2 will run on all STs, STEs, TTs and Falcons and under MultiTOS in all resolutions except 40 column modes which I won't support! I make no apologies, please use a higher resolution. 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 key which will show each page in turn. will show the previous page. The number pad <+> and <-> keys will also do the same. The key displays the first page and 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. The display window can be moved, fulled, closed and scrolled with the mouse in the usual manner. or will close the window, the cursor keys will scroll the window by one line or column or by one page if used with the key. The window can be fulled with numberpad<*>. 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. or will close the dialog window, as will which corresponds to the Cancel key. 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. The default position of the dialogs can be set to the screen centre, mouse position or non (usually at the top of the screen). This is set in the Dialogs Position menu item in the Options menu or called with D. You may choose a smaller system font to display the text in the Options menu and therefore have a smaller window if you wish. numberpad<-> and numberpad<+> will also change the font size. 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 will be about 45K long depending on your system. 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. Under the File menu item 'Printer Init' you can enter some Printer Initialization 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 initialization 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 Initialization 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. These functions are unavailable unless you register. These, and other options, together with the window size and position can be saved to a PROFILE2.INF file which PROFILE 2 looks for every time it loads. Therefore, you can have your printer codes, font size, dialog position and window size and position 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.INF file. Options can be saved or loaded at any time from the Options menu. These functions are unavailable unless you register. 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 check report window is obtained by double-clicking on any line or calling the dialog to enter the number of the vector. This latter is obtained by pressing or selecting the XBRA menu item under the Options menu. The XBRA 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. 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 window can be printed, saved to disk (with the default filename PROFILE2.XBR) or sent to the clipboard as usual unless you haven't registered. The data displayed can be updated at any time by selecting the Re-Read Data menu item in the Options menu or by pressing . This can be useful in a multitasking situation or where accessories can change the system, such as the Control Panel. Rudimentary help is obtained by pressing the 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 from within PROFILE 2 to get help on the current page being viewed or to get the Contents page. The program About dialog obtained with 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 or from the File menu. PROFILE 2 - COMMAND KEYS ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ PROFILE 2 follows the GEM-List key commands standard where appropriate. F1 to F9 - Page selection Home - First page Home - Last page + - Next page Return - Next Page - - Previous page Return - Previous page Cursor - Scroll window by line/column Cursor - Scroll window by page Up cursor - Top of page Down cursor - Bottom of page Esc W - Close top window Tab U - Swap window to front * - Full top window I - About dialog R - Re-read data X - XBRA chain check F - Font selection + - Increase font size - - Decrease font size D - Dialog position P - Printer initialization string O - Save options L - Load options Help - ST-Guide Help - Current Page Help - ST-Guide Help - Contents Help - Simple Help Q - Quit C - Clip current page C - Clip range of pages C - Clip whole report P - Print current page P - Print range of pages P - Print whole report S - Save current page S - Save range of pages S - Save whole report F1, F2, F3 - First, second and third buttons in Font or Dialog position dialogs PROFILE 2 - SOME COMMENTS ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ I have written this program using legal methods everywhere, as far as I know. It has been extensively tested on nearly all TOS versions and all types of Atari computers all running MultiTOS. As far as myself and the beta testers can ascertain all the information reported by PROFILE 2 is accurate. That is, what is reported is what is found by PROFILE 2. 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 ST/TT/Falcon030 systems. That was of paramount importance when being written. There are 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. 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 and am not the sort of programmer that gets in a huff if someone complains of their work although totally thoughtless and destructive criticism may well get ignored! However, I am all too aware of my limitations and PROFILE 2 isn't perfect by any means. 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 much time and with much thought. Most problems have been eradicated hopefully. If you find anything wrong do tell me! PROFILE 2 crashes under the Janus ST emulator card for the PC (although it works with GEMulator). No idea why at this stage. 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. On some systems, usually Falcons, this Alert doesn't appear. We don't know why although I suspect it is a Lattice C library bug. There is a limit of 250 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. PROFILE 2 - VERSION HISTORY ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ V1.53 March 1994 The last version of PROFILE 1. V2.0á release 1 Beta test version tested June 1994 V2.0á release 2 Beta test version tested July 1994 V2.0á release 3 Beta test version tested September 1994 V2.0á release 4 Beta test version tested November 1994 V2.0á release 5 Beta test version tested November 1994 V2.0á release 6 Beta test version tested December 1994 V2.0á release 7 Beta test version tested December 1994 V2.08 This release December 1994 PROFILE 2 - THE FUTURE ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ PROFILE 2 is still in development. Plans include: More things to report as I and users think of them. Multiple report windows. Dialog windows responding to window cycling. VCSR compatibility (apart from the dialogs). Memory Monitor window to analyse address clicked on in System Variables, Exception Vectors and Cookies pages. New windows library improving some window behaviour. No limit on page display size. Ability to pass any word clicked on to ST-Guide for it to search for in it's REF files so enabling the user to build up there own HYP files of data on items PROFILE reports. PROFILE 2 - THE ACKNOWLEDGEMENTS ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Thanks go to the beta testers of PROFILE 1, Lasse Eldrup; John Eason; Daniel Hastings; Daron Brewood; Paul Hargreaves and Steve Taylor and the beta testers for PROFILE 2, Daron Brewood; Joe Connor; Mark Davidson; Ofir Gal; Rob Perry; Darryl Piper; Bob Samuel; Brian Robson; Simon Robins and Jon Waite - all very generous and patient guys. 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 which works very well and is so easy to use and to Simon Robins for his generous advice and help and his MENU submenu and popup menu library which enables submenus and popups to be used on any TOS- based computer. In no special order, thanks also for ideas, bits of code, inside details and encouragement to Mark Davidson, Darryl Piper, Rob Perry, Steve Taylor, Karl Foley, Eric Chapman, Ofir Gal, Graeme Rutt, Alex Kiernan, Chris Goodwin, Paul Alder, Stephen Nathan, Richard Gorbutt, Jon Ellis, Mathew Lodge and Flemming Nielsen. I apologise if I forgot anyone else who made some contribution to my knowledge or enthusiasm - these are all my memory and comms log-book recall. Lastly, thanks to Jane, a supportive and understanding wife who has the extraordinary capability to listen to the complete load of rubbish I spout forth on my computing exploits and even remember it when I test her!! ;-) Sl…inte mhath Mark S Baines Linnhe Computing 18th December 1994 E-mail: Internet: msbaines@cix.compulink.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