PROFILE v1.53 by Linnhe Computing Copyright (c) 1993, 1994 Mark S Baines All Rights Reserved Mark S Baines asserts the moral right to be identified as the owner of this work. PROFILE IS A FREEWARE PROGRAM ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ PROFILE is protected under UK and International copyright law, and is NOT public domain software. That is, Mark S Baines still owns the copyright to this program and the document files. You are hereby granted a licence to use this copy for private, non-commercial use. You are not allowed to alter the program in any way, to do so is an infringement of my rights. FREEWARE is NOT Public Domain! If you do feel like rewarding my efforts with a small remuneration then please send a payment of at least œ5.00 (five UK pounds cash, postal order or UK cheque) to me. Please make your payment to "Mark S Baines" and **NOT** "Linnhe Computing" and state which version you have and where you obtained it. Linnhe Computing 'Linnhe' Shore Street Inver, by Tain Ross-shire IV20 1SF 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 this document is included with the program and both remain 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. No other magazine, whether commercial or free, professional or amateur, may place PROFILE on a disk magazine or magazine cover disk without the express permission of Mark S Baines at the above address. This includes Atari ST User and ST Format. ST Review was given permission to include this version on their cover disk on 19th February 1994. Mark S Baines reserves the right to demand the appropriate remuneration from commercial magazines and disk magazine publishers for permission to publish PROFILE 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. PROFILE - INVENTORY ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ When distributed through any means whatsoever, this total package must not be separated. PROFILE.PRG The program PROFILE.TXT The documentation in standard ASCII text file PROFILE.ASC The documentation in reformatable ASCII text file (not for ST Review cover disk) It is essential that this program is not renamed to PROFILE.TOS. If you do, then don't blame me for the crash. This is NOT a bug! PROFILE - 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 ring up or write to 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 provides them with this information but it is not Public Domain. I have therefore written this program which does the same thing (and more besides) for all you non-HiSoft software users! PROFILE is a development of ST_TYPE which was replaced with ST_DATA2. Both these earlier versions 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 will now cease to be supported with the release of PROFILE. PROFILE was known as STDATA3 when beta tested. If you have seen a copy of this program called STDATA3 then it is an unofficial release and should not be available. Please tell me about it and where you saw it. PD libraries must delete it and no one has my permission to distribute it or use it including the beta testers! Thank you. At its simplest level, PROFILE 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 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 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 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. The Atari A to Z (1994); M. S. Baines; FaST Club (soon - contact FaST Club) ST Application magazine, (monthly); FaST Club Compiler program manuals are good sources of this sort of 'inside' information. Until recently, much of the developer's notes were not normally available to individuals but they can be bought now from Atari UK as their DocSupport Developer's Kit. It's also surprising what is available as text files on the Bulletin Board networks and through PD libraries! Because of this ridiculous dearth of data on the ST/TT/Falcon systems, caused primarily by Atari themselves, any serious user of the ST involved in programming and system development must either register with Atari as an official developer to get the necessary documentation or buy some of it separately which isn't cheap. Involvement in the comms world using the BBS networks and services such as CIX and CompuServe will enable you to ask others in the know, as I was forced to on many occasions. PROFILE can be run under two kinds of conditions. Firstly, under 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 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 - THE PROGRAM ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ PROFILE will print a report to the screen, printer or disk of your computer's hardware and software configuration. A list of the details provided is: 1 Hardware, TOS and Memory Details - 4 pages (1 extra for Falcon) 1.1 Hardware, TOS, Screen 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 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 then refer to the Cookie Jar page 7. 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, and others, 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 in Atari's eyes 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 (although I saw someone sadly refer to it as 1.062 recently! You can't get 1.062 from the BCD value $0162 that the ROM contains and this just demonstrates the confusion that Atari have caused) which under their new system implies a far greater upgrade from TOS 1.06 than is actual! The TOS version number is stored in the ROM at offset $02. For TOS 1.4 the value is $0104. Each byte therefore has a value of 1 and 4, hence 1.4. If the first byte is 1 and not 01, then the second byte must also be 4 and not 04! The fact that this confusion exists and that I spent time ranting about it here, shows how foolish Atari can get. 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 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, 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 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. 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 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 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 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 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. 1.2 Memory and MiNT Details The total amount of ST RAM and Fast Alternate TT RAM (if fitted) is reported as well as the largest single block of each that is free, except under MultiTOS where such interrogations are essentially dangerous in a multitasking situation. However, on a TT the total amount of Fast 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. If MiNT or the MiNT kernel of MultiTOS is installed then some details are given on the limitations of the installed version. 1.2 Miscellaneous Falcon030 Details (Only if Falcon) Various specific Falcon 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 isn't seen on non-Falcons. 1.2 Disk Drive Details (or if Falcon) 1.3 Disk Drive Details 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. 1.4 Disk Drives - pun_info Structure Details (or if Falcon) 1.4 Disk Drives - 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, of course, as they do not have a physical unit counterpart. Not all hard disk drivers fully initialise 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 initialise 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. 2 Operating System Header Block and Basepages Details - 2 pages 2.1 Operating System Header Block Details 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. 2.2 Program Basepage Details The BASEPAGE structure is detailed here for the current program i.e. PROFILE and the PROFILE's parent process. The latter is normally the Desktop or replacement Desktop or Shell program, that is, the program that PROFILE was run from. It is envisaged that it will be this list that users will find useful rather than the current process basepage. 3 Cartridge and Some Control Panel Settings - 1 page 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 PROFILE as there is nothing to report. PROFILE should be able to 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 which is now available. 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 (an AUTO program that reads the installed DESKTOP.INF file in memory, activates the settings and quits). 4 Some Important System Configuration Addresses This page contains some of the most important items that people may need to know. They are mostly repeats of details contained elsewhere (System Variables) 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 in Section 9, perhaps using the XBRA checks. Checks are made on the Reset Vector values and those for the Memory Configuration to note their validity. 5 Installed DESKTOP/NEWDESK.INF File Details - 2 pages 5.1 DESKTOP.INF settings These details are a report of the AES's internal shell buffer which is the RAM version of the DESKTOP/NEWDESK.INF file and are not necessarily those current and in operation. 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. 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! The representation of some of the values shown here differ from those in Section 3. 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 Linnhe Computing can supply. 5.2 DESKTOP.INF continued and NEWDESK.INF settings If NEWDESK.INF is used instead of DESKTOP.INF then more details are shown. Extra NEWDESK.INF file settings for TOS 4 on the Falcon 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 Falcon video mode details here may not agree with those displayed in section 1 page 2. Save the Desktop then they should both agree. 6 Vertical Blank Interrupt Details - 1 page 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. Again, you can check on these addresses under Section 9 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 makes no attempt to look at any more. If there is a need for this then please let me know. 7 Cookie Jar Configuration Details - 2 pages 7.1 Cookie Jar List 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 perhaps needs 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 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 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!! 7.2 Official Atari Cookie IDs Interpretation This page interprets the values of the Official Atari IDs. Of course, it would be impossible to do the same for all IDs as anyone can invent them with a meaning unknown to me. Recognising 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 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. 8 Environment Variables Strings - 1 page 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. PROFILE will trap the first NUL. Sorry about the messy displays you can sometimes get here, especially if running under a pseudo-terminal such as MiniWin with its very long 'termcap' lines. At present I can't find a satisfactory way to present overlong lines and stop the screen from scrolling on occasions. 9 Complete System Variables Contents - 7 pages 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 or Atari ST Internals. My names are taken from official Atari US source code and developer's documentation. Those that are vectors will have a number on the far left which can be typed after the SPACE key is pressed to check for XBRA compliance. See below. 10 Exception Vectors Contents including the TRAPs and MFP 68901 Interrupts - 4 pages Only those Exception Vectors that are important and usually of significance are shown. There are 256 exception vectors in low memory and most of those after number 79 usually have the same default values on all systems, either being reserved or available for user programs. If you need to see the other 200 vectors then let me know and I will include them in a future revision. However, at the moment I thought it best to leave out another ten full screens of useless numbers! 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 will not show any more XBRA IDs even if some still exist. This is not PROFILE's fault but one inherent in the system, and will remain so until all programs use the XBRA protocol. XNAM protocol programs don't maintain the old address and thus cannot be chained. They commonly appear as VBL routines. 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. ST Applications Issue 11 November 1991 gives a good account of the XBRA Protocol. PROFILE - USING IT ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ The program is run by double-clicking on it from the Desktop except under MultiTOS where you should run it in a MiniWin window by dragging PROFILE.PRG to the MiniWin icon or filename. You can also use a MW window (if you have it) using the command line 'TOS PROFILE.PRG'. Here, it will run very happily in a multitasking window. Do not be confused by the fact that PROFILE has a .PRG file name extender. This is necessary under normal TOS for certain functions to work. PROFILE MUST NOT BE RENAMED TO PROFILE.TOS. PROFILE can also be run from the desktop under MultiTOS but it is far less satisfactory, with the key responses being very poor and some screen corruption inevitable with the mouse breaking through. Of course, in this mode, program switching will be unavailable. Run PROFILE from a window and all will be OK. PROFILE will run on all STs, STEs, TTs and Falcons and under MultiTOS (as of compile date shown under Main Menu Information), in most resolutions but will be untidy in ST low resolution and other 40 columns modes which I refuse to support! The Main Menu screen provides access to each individual section of the program which is essentially the list above under PROFILE -THE PROGRAM. A section may have more than one page (screen) of information. When each page is displayed you can move to the next page or section by using the left and right cursor keys. This means you don't have to go back to the Main Menu page to access another section. Each page can be individually printed to the parallel printer port by pressing 'P' or 'p' or sent to an ASCII disk file by pressing 'D' or 'd'. The default name of the file will be PROFILE.Pxx where xx is the page number displayed. You can change the filename of course, using the file selector provided. The RETURN key will always get you back to the Main Menu page. You can send the whole report, which is around 28K long, to the printer or disk by pressing 'P' (or 'p') or 'D' (or 'd') from the Main Menu screen. The default name for the whole report disk file is PROFILE.LST. Again, you can change that if you wish. In the Systems Variables section, some system variables contain vector addresses that can be checked for XBRA and XNAM compliance, as mentioned above. Pressing the SPACE key will enable you to type in the number of the system variable you want to investigate, as shown in the first column to the left of the system variable address. The vector or system variable address is shown and its value, which should be another 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. For exception vectors, the technique is the same, just type in the exception vector number in the first column. The display is the same as for system variables except that the exception vector number is shown as well as its address and value. At present these values cannot be printed or saved to disk (other than a normal screen dump) as that didn't seem worthwhile for such small amounts of data. However, if you think that you need that facility then please ask. 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 Main Menu screen provides rudimentary Help by pressing 'H' or 'h' and Information on the program (such as compile date, about Linnhe Computing, acknowledgements etc.) by pressing 'I' or 'i'. The program can only be Quit by using the Main Menu 'Q' or 'q' key. Simple eh! PROFILE - SOME COMMENTS ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ I have written this program using legal methods everywhere, as far as I know. It has been extensively tested on mostly all TOS versions and various setups including STs, STEs, TTs and Falcon030s all running MultiTOS. As far as myself and the beta testers can ascertain all the information reported by PROFILE is accurate. That is, what is reported is what is found by PROFILE. 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. It will report the configuration that exists 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'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! Something else you may notice is that PROFILE 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 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 will help solve this problem for you. PROFILE is as extensive as a program like this can be and yet remain compatible on all ST/TT/Falcon 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 will report the amount of TT RAM using an undocumented feature which I'm taking a chance on. It should be alright. 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. 6 A detail may require the presence of third party hardware which I consider to be outside the scope of this program. 7 Atari are moving the goal posts every day with MultiTOS and the Falcon. 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 isn't perfect by any means. PROFILE v2 GEM version is in the pipeline and hopefully won't be long. PROFILE - BUGS AND INACCURACIES? ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ My programming isn't perfect, of course, but PROFILE has been tested by myself and six knowledgable beta testers who have different systems. PROFILE has been developed over much time and with much thought. If you find any problems - tell me! I do know that it crashes under some circumstances when run under ST Low Resolution but as I can't be bothered with 40 column mode (I make no apologies) I haven't found the problem yet. PROFILE - VERSION HISTORY ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ V1.0 First release February 1993 V1.1 March 1993 Falcon fixes: Cookie ID _MCH Machine Type now recognised "Screen Area Memory" now reports correct value (I think!) V1.2 March 1993 Bug fix in Environment Variables page which displayed some garbage under some situations (thanks to Steve Taylor) V1.3 April 1993 Cookies _AKP and _IDT now added Some cosmetic changes to Cookies screen display "ROM Nationality" and "Current Resolution" not shown on Falcon V1.4á - beta test release June 1993 Falcon "Nationality" added More Hardware details added to first page "Current Resolution" (as opposed to Screen Mode) added "TOS-mode Screen Size" added "Number of Predefined Colours" added "Palette Size" added "Displayed Screen Size" added "Screen Area Memory" fixed again for good Some details on drives moved to Disk Drives page "Current Directory Path" added "BPB of Current Drive" added "pun_info Structure" added "Current Program and Parents Basepage" structures added Rewrite of some functions giving increased speed and smaller size OS Header now shows last 3 items for TOS 1.2 instead of 1.4 _SND Cookie bug fixed (didn't show Falcon Matrix varieties) "Falcon NEWDESK.INF" video details added "Confirm Overwrite File" added to DESKTOP.INF section Floating point not used for memory percentages making for a smaller file Various cosmetic changes V1.41á - beta test release August 1993 Hack introduced (thanks to Steve Taylor) to get around the crashes on a Falcon when redirecting to screen (CON:) or printer (PRN:) using C. Looks very much like another TOS 4 bug! Various minor cosmetic changes V1.42á - beta test release August 1993 Use Floprate to get floppy disk seek rate for both floppies instead of just using the system variable for TOSes >= 1.4 V1.43 September 1993 Incorporates all the above beta version changes Date and Time now updated when shown SpeedoGDOS now recognised FSMC cookie recognised (FONT, FSM or Speedo GDOS installed) More rows of data can be catered for on large screens Various minor cosmetic changes V1.44 September 1993 Effective processor speed added (thanks to Jon Waite) Removed the clear workstation function call that made a mess of MultiTOS screens when running in a MiniWin window V1.5 February 1994 Change GEMDOS version number to show Hex/BCD format as default as well as decimal format "Number of AES Concurrent Applications" added "Falcon Monitor Type" added "MiNT Limitations" and other details added to Memory page Minor mods to Cookie strings "PMMU cookie" added Update languages and countries to include two more Screen Mode and NEWDESK.INF info should show 'Falcon resolution' New page for "Misc Falcon Details" only seen on a Falcon showing video modecode, DSP and Sound System on/off, DSP wordsize, Record/Playback buffers on/off Falcon TOS video memory function alternative to screen size True colour mode detected "Number of Background Colours" added More... prompt added on Cookie page _NET cookie publisher_id and version number of installer added _FLK now shows version number of installer Changes to GDOS detection and reporting, especially for font scaling types including inclusion of version number and quality setting in GDOS and Cookie sections Update to basepage p_flags Released to ST Review magazine cover disk V1.51 March 1994 Bug fixed in function that gets the currently mounted drive letters which didn't see non-contiguous letters and truncated the list and also failed to note those over P (i.e. in MultiTOS) Added a "Not suitable for ST Low resolution" alert warning. PROFILE's display is not formatted properly for 40 columns but 'D' from Main Menu can be used. Added a "Processing... please wait" message as apparently it takes a long time to load on some systems (takes 1 second on mine!) V1.52 March 1994 Minor update to stop holes appearing in screen when mouse moved during "Processing...please wait" message V1.53 March 1994 Updated DESKTOP/NEWDESK.INF RGB Colour Values to cater for the extended palette in STE etc. where the DESKTOP/NEWDESK.INF file can contain "?>=<;:" characters as well as the digits 0 - 7. Thanks to Karl Foley. Now checks for less than 80 columns rather than just ST Low Resolution mode and warns against using PROFILE in that resolution. "Current Screen Mode" now changed to "Current Getrez Screen Mode" and "see docs" to encourage users to RTFM! PROFILE - THE ACKNOWLEDGEMENTS ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ Thanks go to the beta testers Lasse Eldrup, John Eason, Daniel Hastings, Daron Brewood, Paul Hargreaves and Steve Taylor, all very generous and patient guys. PROFILE wouldn't be anywhere near as useful without them - my warm thanks to you all for your testing, encouragement, bits of code and inside information. Thanks to Jon Waite for the assembly code to calculate the effective processor speed. It slotted in beautifully! Thanks to Karl Foley, Eric Chapman, Ofir Gal, Graeme Rutt, Chris Goodwin, Paul Alder, Stephen Nathan, Richard Gorbutt, Jon Ellis, Mathew Lodge and Flemming Nielsen for ideas, bits of code, inside details and encouragement. Sorry if I forgot anyone else who made some contribution to my knowledge, enthusiasm or PROFILE. Those are all my memory and comms log-book recall. Lastly, thanks to Jane, a supportive and understanding wife who has a enormous capacity to listen to the load of rubbish I utter on my computing exploits and even remember it when I test her!! ;-) Sl…inte mhath Mark S Baines Linnhe Computing 23rd March 1994 E-mail: Internet: msbaines@cix.compulink.co.uk FidoNet: 2:259/29.10@fidonet.org NeST: 90:105/5@nest.ftn TurboNet: 100:106/0.10@turbonet.ftn