DOS 2.0 Utilities Disk 4 (Dec 1991) : SysInfo / SysInfo.doc

                  SysInfo V2.51 21st Oct 1991
              written in Assembler with Devpac Amiga 
Written by      Nic Wilson                
                Nic Wilson Software
                138d South Street
                Toowoomba Queensland 4350
                Phone (076) 358539 A/H Voice only
                      (076) 358384 W/H Fax or voice
                      (076) 358522 W/H Voice only
                EMAIL {cbmvax|cbmehq}!cbmaus!wilson!      
        This program was written due to the lack of such a program 
        on the Amiga.  It was written using HiSoft Devpac Assembler.
        I have placed this program on Shareware so that it can be
        used by everyone.  All code, graphics and documents remain
        copyright Nic Wilson Software.
        If you like this program, then help me to help you more by
        sending a small donation. Any amount will be gratefully
        appreciated and in return you will be sent the latest of
        this and other programs.

                      IMPORTANT FOR KICKSTART 1.2 - 1.3
        Amigas that have a maths co-processor using kickstart 1.3 or 
        earlier, MUST use SetPatch 1.34 or later otherwise this program
        will crash.  This program uses 68881 & 68882 instructions and a 
        bug in the kernal causes a guru.  SetPatch patches this bug.  
        This is not required for V2.0 users but remember that you have 
        a Setpatch also now, so use it.

        This program may be distributed freely on the condition that
        no profit is gained from its distribution.  An amount of the
        average retail price of a single 3.5 inch DSDD disk is allowed for
        a copying fee. 
        Output results from the program may be reprinted without any
        form of permission.  But please state the SysInfo Version number
        used to obtain the results & give credit to the author.
        This doc file and the icons must accompany the program unmodified.
        Additional doc files of your own may accompany the program.

        Results from different Amiga configurations may be distributed
        along with the SysInfo files.

        The executable is not modified in any way, except for crunching, 
        or lharc'ing etc.

        Further updated versions are distributed as available and as soon 
        as possible.  You can always obtain an update by modem if you wish.
        I would appreciate being informed that you are distributing it 
        although this is not a requirement.
        If a commercial company would like all their products listed by
        name and manufacturer in the 'BOARDS' function, then send me your
        manufacturer number and your product numbers for each board along
        with a description of what each board is, and I will add them in
        to the program.  We will then return you a copy of the program
        with these changes, that you can distribute with your products.
        To have your hard disk recognised as a hard disk instead of an
        'other drive', all I need is the name of your device driver.
        Sysinfo is an Amiga Sytem Information program.  It interrogates
        the Amiga and determines types of hardware, software, modes,
        speed etc.  Users have found it very useful for determining
        correct operation of an Amiga before purchase and that the
        unit actually contains hardware that they are paying for, without
        having to open it up.  It is under constant revision, and these
        revisions are available from myself at any time.  My goal is to
        make SysInfo the most informative and accurate information program
        on the Amiga.  To do this I need your input and suggestions. 
        This program is tested with the program 'Enforcer'.
        Please be patient if you are running SysInfo on a standard
        Amiga as it will take a while to perform its tests.  SysInfo
        really interrogates your system and has to perform many timing
        loops to test ram speed, type etc.  Some other program sacrifice
        accuracy by speeding the tests up, SysInfo takes time but does
        an intensive test.  At times it also disables multitasking and may
        blank the mouse pointer.  It will return to multitasking when
        finished and the mouse pointer will return.
V2.51   Fixed a bug in NTSC Amiga.  Very sorry you GUYS and GALS but all
        Amiga's in AUSTRALIA are PAL and I never tested the NTSC routines.
        SysInfo was reporting NTSC 2MB Agnus as a 1MB Agnus.
        This was a silly mistake on my part and is now fixed.

V2.50   Rearranged the screen to delete obsolete functions.  XT/AT test
        and total autoconfig boards are gone as they are now handled
        in the 'boards' gadget function.  Hardware Clock has been moved
        to the Memory Area to create room.  CIA Test and comment fields
        have been moved to this newly created area, allowing for more
        fields that are speed orientated.  Due to popular demand the
        IBM comparison is now back, and a new CPU MIPS and FPU MFLOPS
        fields. See the main docs below for more info on these.

V2.41   Fixed a major bug in the instruction and data cache code for
        68020, 030 & 040 processors.  If caches and bursts were off
        when sysinfo launched it could leave them on after exit.
        The MHZ speed could incorrect if caches and bursts were off.
        This is now fixed and all are reset to their original condition
        immediately after the MHZ test.
        Fixed a bug in the drives function that was crashing some 16 bit
        Amigas.  I accidentally left a half finished new routine in the
        drive type field.  This was a mistake on my part and has now been
        The mouse is now ALWAYS be blanked while frozen, and will now 
        immediately return when unfrozen without requiring movement.
        The new autoconfig recognition feature has become quite 
        interesting.  Some users have told me it was recognising some
        boards as the wrong brand etc.  It has turned out that some
        boards around seem to be using 'stolen' autoconfig roms.  I don't
        suppose they knew SysInfo would come along and find them out.  I
        suggest that manufacturers use SysInfo to find out if a particular
        rom on a particular card needs further investigation.  

V2.40   New revolutional function added.  Within the 'Drives' function
        window is a new gadget called 'SCSI'.  This displays info as
        supplied from the drive itself.  It displays the actual drive
        size in Megabytes.  This allows comparison of the real size and
        the size it is formatted too, or the size you believe it was.
        This may not work at all for some brands as they do not support
        the required comands, see 'SCSI' under the 'DRIVES' function.  
        Fixed a bug that would leave multitasking off if no hardware
        clock was found.
        On processors 68010 and higher, the program would hang if the
        VBR register was non zero.  This is now fixed
        On 68010 processors the printing function would guru after a
        few lines, I beleive this is fixed but not tested.  Please
        let me know if there is further problems.

V2.39   Changed the MMU testing routine to attempt to overcome problems
        on some boards.
        Changed the memory size in the memory function to reflect Meg
        size instead of 'K'.
        Fixed the GVP Hard Disk being seen as Memory Board.
        Fixed a bug that crept in the last version.  An Amiga with no
        true fast ram would lock up on the speed test.  This is now fixed.

V2.38   Fixed the check for Phoenix manufacturer in boards function.
        The A2500 and B2000 strings were reversed in the printing
        function, now fixed.
V2.37   I think I finally fixed the bug that caused the program to sometimes
        hang while printing if launched from the CLI.  
        The change to the program made in 2.35 caused the speed results 
        to be skipped if printing from inside the program, this is now fixed. 
        Some tidying up of the main image was also done.

V2.36   Since going to the new VBLANK timing routine, I neglected
        to allow for NTSC 60hz timing, so the results were 
        inaccurate.  Both PAL and NTSC timing are once again
        catered for.  Addition of SupraRAM and WordSync card
        recognition in the boards function (Thanx to Matt)

V2.35   Sysinfo no longer performs the speed tests immediately. Now
        that there are multiple gadgets, you had to wait for the
        speed loops to finish before they could be accessed.  The 
        'AGAIN' gadget is now called 'SPEED', select this gadget to
        perform the speed loops.  It still acts as before and will
        do the speed tests as many times as you wish. See 'SPEED'
        under 'FROM WORKBENCH' for more info.

V2.34   Added new 'MEMORY' function gadget. This new function gives
        much more info about RAM in the system.

V2.33   Added ability for new 'BOARDS' function to recognise certain
        autoconfig boards by manufacturer name and model.  This info
        must be known by the program.  If unknown it will give the
        numbers,  call me and tell me the numbers and what the card
        is and I will add it in to the program.  The more I get the
        more intelligent the program will become for all users.
        The HARD PARTITIONS count in the main window will now only
        count known hard drives.  Any unknown ones will show in the
        OTHERS area.  If your hard drive shows as an other, call me
        and tell me the name of your device driver and I will add
        it in to the program.
        Changed the speed comparison calculation for 68000 processors
        to allow for no FAST RAM.  Results should be more accurate.

V2.32   Addition of new 'Boards' function that gives info on 
        AutoConfig  boards found in the system.  
        Moved stuff around in main window to make way for more gadgets
        to do more beaut stuff.
        Owners of Amiga's with 020 or 030's may notice that their FAST
        RAM vs CHIP percentage has increased over previous versions.
        This is because I quad aligned the memory test area, allowing
        a 32 bit processor to access 32 bit ram faster.
        Changed the Timer routine again to use a VBLANK interuppt
        server, this should improve stability even further.  It has 
        improved accuracy of the 500/2000 hardware clock test.  
        Added an optional heading string to the PRINT routine.

        The A3000/040 and A3000/030 strings were backwards in the
        print routine.  This has now been corrected.  
        By popular demand I added a form feed at the end of printing
V2.31   Addition of new CIA timer speed accuracy test.  SEE CIA TIMER 

V2.30   Addition of a new 'Drives' function.  See 'DRIVES GADGET' below.
        Addition of new output window for the print routine, to allow
        saving of output to a filename or printer etc. See 'PRINT' below

V2.22/3 Changed the timer routine to use direct hardware instead of 
        calling DOS this should give much more stability.  
        Using direct hardware is frowned upon, but I doubt if the
        the CIA's will ever move from their current location, and I
        couldn't seem to find a better way to do it.

V2.21   Added the ability to recognise a 68881 added via MathIEEE.resource
        The only one I know of is the Phoenix A1000 replacement
        motherboard, it allows the addition of a 68881. 
        Added kickstart size to the 'KICKSTART VERSION' string.       
V2.20   Fixed a hanging Forbid if run on an A3000.
        Fixed a intermittent bug that caused some programs to 'hang'
        if SysInfo was launched from the CLI.
        Fixed small amount (26k) of 16 bit memory showing when no 16
        bit memory was installed.
V2.15   Code optimisations & improvements since updates below.
        Greatly improved execution speed on non-32 bit processors.
        Added the ability to differentiate between 1MB and 2MB Agnus. 

V2.14   A2620 boards with 32 bit wide ram, still intermittently being
        seen as 16 bit cards.  Fine tuned routine still further.

V2.13   The program no longer reflects the Exec.library CPU and FPU type, it
        tests for 68030, 68040, 68882 itself and changes the Exec
        AttnFlags accordingly if incorrect. 
        Agnus "mode" had been removed, and the DISPLAY field now reflects
        wether Agnus is PAL or NTSC, rather than Intuition's mode.
        The MHZ display now does an educated calculation of the actual 
        clock speed based on test results to try and make the display
        more accurate.

V2.12   GVP 32 bit ram boards in the $200000+ range were still being
        seen as 16 bit boards, fine tuning of the testing routine seems
        to have cured this slight problem.
        GVP timings were made more accurate.  Maximum memory could also
        return invalid results if you had ram boards in the $200000 area.

V2.11   Fast memory free was slightly inaccurate in V2.10, now fixed.
        Added Memory Address location of Kickstart.

V2.10   By popular demand printing ability during screen display or
        instead of (-p).  Better 32 bit ram testing with support for
        recognising and displaying 32 bit ram boards within the 8 meg 
        area ($200000-$A00000).  

V2.01   Added ability to recognise 32 bit ram and is displayed in
        all areas if found. 

V2.00   Fixed 2 'enforcer' hits.  Although enforcer hits will still 
        occur at memory location $2c.  This vector is temporarily modified 
        in order to trap the exception when testing for a MMU.  

V1.99   Included the clock check for the A3000.

V1.98   RAMSPEED VS CHIP was incorrect and could give wrong results.  
        CHIPRAM VS A3000 was totally  wrong and and results were garbage.  
        Both these new routines should be much better.

        run SysInfo <switch>
<switch>        -p    Print info to standard redirection output
                      instead of custom screen.
                      EG.  SysInfo >prt: -p   (for printer)
                           SysInfo -p         (for CLI window)
                -t    Mainly for internal, time testing use. 
                      See 'NOTE ON SPEED COMPARISONS' below.    
                      The custom screen will still open to keep
                      the timing accurate, but no information will
                      be printed to it.  On completion the screen
                      will close and the information printed on the
                      CLI window or redirected output.
NOTE    'run' should always be used from a CLI launch as the program
         is much more stable and accurate.  I have no idea why, it
         just is.  Anyone explain this?                   
        Double click the SysInfo icon.  After the speed comparisons are 
        complete, you will be able to access one of four gadgets in the 
        bottom right of the window.  These are QUIT, DRIVES AGAIN or PRINT.  
QUIT    Does just that, exits the program completely. 

MEMORY  Is explained below

BOARDS  Is explained below. 

DRIVES  Is explained below. 

SPEED   Runs the speed comparisons and displays the result accordingly. 
        This can be selected as may times as you wish so the results
        can be averaged.  This now works differently than older versions
        of SysInfo.  Users of standard speed Amiga's had to wait quit
        a long time before the other gadgets could be accessed.  This was
        a nuisance if you only required certain info.  This change has
        not affected the -p function in anyway.
PRINT   Will open a window and prompt for a filename and an optional
        heading string,  This heading string will be printed at the
        top of the page and can have a maximum of 100 characters.
        Enter a path and filename to save to, or to choose the default 
        'PRT:' for output to a printer just click the 'OK' gadget.
        Printing will commence after the 'OK' gadget is clicked.

        When this gadget is clicked another window will open and display
        a gadget for each floppy, hard or rad drive you have connected
        to your Amiga.  In the middle of the window you will see Information
        on the paticular drive that has its gadget highlighted.  To select
        a particular drive, just click on its gadget.  To re-read the same
        drive, click in its gadget again (useful for rereading a floppy
        when the disk has been changed).
                NOTE This function may not work on some brands device
                ---- drivers as they may not support the required 
                     commands.  If this happens you may just see an 
                     error message in the window for each device it 
                     found that failed to respond to the direct scsi 
                     command. Each device's unit number will still be
                     displayed at the start of each error string under
                     the 'ID' heading.  In this case contact the  
                     manufacturer of your hard disk controller and 
                     enquire if they have an update that supports CBM's 
                     'HD_SCSICMD' command and RigidDiskBlock structure.

        This gadget will be ghosted for drives that are obviously not
        SCSI drives.  The SCSI function will display info on all drives
        that are operated through a single device driver, do there is 
        no need to click the SCSI gadget for all drives, unless some
        use a different device driver name as shown in the 'drives window'.
        Select one of the drives and click the SCSI gadget.  A new window
        will open an attempt to read all SCSI drives on LUN (Logical Unit
        Number) zero.  If valid drive is found, various information will be
        displayed.  This information consists of the drive 'ID', its 'TYPE',
        the 'MANUFACTURER', 'MODEL', and 'VERSION'.  Also displayed is the
        number of blocks the drive has.  The drive's ACTUAL size is displayed
        and if the drive supports CBM's RigidDiskBlock, the formatted size
        is also displayed beside the actual size.  This allows you to see
        if a larger drive than you thought you had is in the computer.  I
        have seen some A2500's with a formatted size of 40MB that actually
        had QUANTUM 52 Meg hard drive.  If your drive's supplier has
        not followed CBM's RigidDiskBlock then the formatted size will not
        be displayed, but most user already know the size they beleive is
        in the system.  If these sizes are different then your hard drive
        will require reformatting correctly.  If the 'ACTUAL' size is smaller
        than your formatted size then you will eventually have problems so
        your drive will still need formatting correctly.  

        When this gadget is clicked another window will open and display
        various information on any AutoConfig  boards found in the
        system.  This information consists of the memory address of where
        the board was configured, its size, and the type of board.  The
        types to date, can be ZORRO II or ZORRO III, any others are
        not yet defined by Commodore and will be displayed as UNDEFINED.
        The boards Product number, manufactures ID and the serial
        number will also be displayed.  If SysInfo recognises the 
        manufacturer of the card and or the product itself it will display 
        the names instead of the numbers.  Note that a standard A3000 has 
        no AutoConfigure  boards as such,  its extra hardware is known 
        by the special Kickstart files and its memory and hard drive are 
        not AutoConfig.  A2000 users using zkick to load V2.0 will also 
        notice that their memory boards will not show in the AutoConfig
        list, as they were actually configured by 1.3 and zkick patches 
        them in. 
        When this gadget is clicked another window will open and display
        various information on any memory in the system.  The first section
        displayed will be the first memory section that was configured by
        the system.  At the bottom left of the display are two gadgets,
        'NEXT' and 'EXIT'.  The next gadget changes the display to show the
        next memory section, until no more sections are found.  At that time
        the window will close and return to the next section.  The exit gadget
        exits immediately to the main screen.


        The A500 STANDARD comparison is against a PAL A500 totally 
        unexpanded (ie. no Fast Ram).  

        The B2000 EXTRA RAM comparison is against a PAL B2000 Rev 4.4 with
        a Microbotics 8-UP Fast Ram board fitted with 80ns DRAMS. 
        The GVP A3001 comparison is against a B2000 Rev 4.4 with a GVP A3001
        acellerator card, using a clock speed of 28MHZ.  All caches and 
        bursts on.  The board also contained 4 megs of 32 bit wide, 80ns
        nibble mode DRAM.
        The A2620 comparison is against a standard A2500 with a A2620
        card running at 14.3MHZ.  All caches and bursts on.
        The A3000 25MHZ comparison is against a standard A3000/25MHZ
        with 4 Megs of 1MX4 SCRAMS 80ns 32 bit wide, and 2 Megs of CHIP. 
        Caches and bursts on except Data Burst (default under V2.0 V37+).   
        Ramsey mode was set at default, BURST ON and STATIC COLUMN OFF.
        The A3000 with the 68040 25MHZ board from Progressive Peripherals
        & Software.  Comparisons were calculated from the '-t' information 
        given to me over the phone by them.  I hope to have one of these 
        boards soon to do some more testing on, and I will give further 
        info in later versions.  
        IBM PC/XT compares your Amiga to a standard old IBM PC, such
        as Norton Utilities did.  Because the IBM world still use
        this in their adverts, it allows you to compare your system
        to the ones being advertised.
        CPU MIPS (Million Instructions per Second) This test calculation
        has been coded from all information I have been able to find
        to date.  It seems quite debatable how this is supposed to be
        coded and I received different information from people.  The final
        results showed boards at or around their advertised speeds, so
        I was happy with the routine.  It does a very large loop performing
        an instruction that takes an average number of CPU cycles, times
        the loop then display the result.  I CANNOT AND DO NOT GUARANTEE
        ITS ACCURACY.  Comments on this approach or a better one are most
        FPU MFLOPS (Million Floating Operations per Second)  This test
        calculation was similar to the above one, in that information
        on the recognised way was very sketchy.  If an Amiga does not
        have an FPU, N/A will be shown in this field as any performance
        test would be meaningless.  The final code shown known boards
        to be at or around thier advertised speeds.  It does a very large
        loop performing an instruction that takes an average number of 
        CPU cycles, times the loop then display the result.  I CANNOT 
        AND DO NOT GUARANTEE ITS ACCURACY.  If anyone has a better 
        routine for this I would be very interested.

        This is a test of the speed accuracy of the CIA (A) timer 
        in the Amiga.  I have recently had enquiries by users that
        their Amigas were showing very slow or very fast speeds on
        SysInfo.  Investigation showed that their CIA's were very 
        inaccurate for various reasons.  On normal use you may not 
        even notice that there is anything wrong.  Symptoms can show
        system clock running fast or slow, SysInfo type programs show
        wrong results.  
        A correctly working system will show 'PASSED' beside the
        CIA ACCURACY string and '0' beside the TICKS PER SECOND string
        else if there is a problem it will show the number of ticks per
        second the inaccuracy is.  

        The most common cause I have seen for inaccuracy on a B2000 is a
        noisy power supply.  This can be corrected by changing J300 jumper
        (toward the rear right of the mother board (under the power supply))
        to connect to the right set of the three pins.  This will change
        the system tick to the VBLANK connection and correct the inaccuracy.    

        This shows the amount of free memory as if the program is not
        running so may not be accurate to the byte, but is a very close 
        indication of the free pool.
        The TOTAL MEMORY is the total amount of memory that the Exec
        memory list reports.  Tests have showed that this figure is
        around 800 odd bytes short of actual.  This is because the
        amount of memory that exec takes itself never gets added to
        this list.
        RAM SPEED vs CHIP is a calculated performance test of your
        CHIP RAM vs your PUBLIC RAM.  The result is shown as a
        percentage increase in the speed of the PUBLIC RAM.  If no
        FAST or SLOW ram is available then the result will be around
        0%, and this figure can change depending on CHIP ram usage at
        the time.  This figure cannot be used as a speed comparison
        between machines.  For example the A3000 Chip ram is around
        4.5 times the speed of an A2000's CHIP with a 68030 board 
        installed.  Therefore the A3000's Fast ram will not show a
        comparable increase to the A2000.  It was mainly designed
        to test the difference between fast ram cards or chips on
        the same unit.

        HARDWARE CLOCK only looks for the standard 2000, 500 or 3000
        Hardware clock.  It does not look for the multitude of different
        clocks that were available for the 1000.

        This shows internal harware as the program has found it.
        ECS stands for ENHANCED CHIP SET.  If Agnus or Denise show
        this then they are the lastest custom chips.  The number that
        is shown in brackets is the actual chip number, this helps in 
        physical identification of the chips.  The program is also
        able to tell the difference between the 1MB & 2MB versions
        of Super Agnus.  Many users have queried the possibility of
        doing this and beleive I check the memory amount.  The 1MB and
        the 2MB Agnus chips do not have any different signature registers
        so in order to tell them apart I used a quirk of the way the 
        Amiga is designed.  The 1MB Agnus only decodes the first meg
        space and so the second meg space has a 'ghost' image of the 
        first.  A 2MB agnus does decode the second meg space so no
        ghost image is present.  SysInfo checks for this a reports
        the difference.  This theory I beleive is quite sound, and was
        tested on as many A3000's as I could find.  I cannot guarantee
        it on all Amiga's and would be very interested to know if
        it is failing on any system.
        CPU's  68000, 68010, 68020, 68030 and 68040 are supported
        and will be displayed if found.  If Exec is incorrect then
        it is modified to reflect the correct hardware.
        FPU's or Floating Point Units 68881 and 68882 and internal 68040
        are supported and will be displayed if found.  These chips are 
        also often referred to as maths co-processors.  Wether or not you 
        have one is tested by the program, and Exec changed if incorrect. 

        MMU's or Memory Management Units 68851 or the internal 68030 and
        68040 are supported.  These are actually tested for as Exec does not 
        carry this info.  The 68451 never became very popular so is not 

        SPEED IN MHZ is a rough indication of the clock speed.  This is
        not totally accurate but is a good indication.  It at least allows
        you to know wether your system is 7MHZ, 16MHZ or 25MHZ etc.
        All caches, bursts and copyback modes are temporarily enabled during
        the test for greater stability, but this should be transparent to
        the user and they will be returned to their original state after the
        tests.  Clock Speed is normally difficult to find out unless you 
        take the unit apart and even then is difficult.  Fast ram must be 
        available for this to be anywhere near accurate, as the timing loops 
        were all based on machines with some Fast ram available.  It is 
        interesting though to disable fast ram and see the performace drop
        in this figure. This is not true for a 68000 based Amiga, the program
        will take into account if no fast ram is available and calculate
        WR.ALLOC or Write Allocation is only applicable to 68030 and 68040
        processors.  This shows if it is currently enabled or disabled.
        When enabled (always in an A3000) the processor updates the data
        cache on cachable writes.
        COPYBACK is only applicable to the 68040.  This shows if it is
        currently enabled or disabled.
        INS. CACHE or Instruction Cache is applicable to 68020, 68030 and
        68040 processors.  This shows if it is currently enabled or
        disabled.  This bit can be manipulated with SetCpu.  
        INS. BURST or Instruction Burst is applicable to 68020, 68030 and
        68040 processors.  This shows if it is currently enabled or
        disabled.  This bit can be manipulated with SetCpu.  
        DAT. CACHE or Data Cache is only applicable to 68030 and 68040
        processors.  This shows if it is currently enabled or disabled.  
        This bit can be manipulated with SetCpu.  
        DAT. BURST or Data Burst is only applicable to 68030 and 68040
        processors.  This shows if it is currently enabled or disabled.  
        This bit can be manipulated with SetCpu.  

        1. Ability to check Amiga model (A1000, A500, A2000)  is it possible?
           It is on the A3000 because of its specific hardware.
        2. Ability to split the XT and AT bridgeboard.  Anyone
           know how? Commodore used the same product numbers in the ROMS.
           both are shown in 'boards' as XT.

        3. Your ideas!
        Any suggestions preferably in assembler but I can translate
        C if I have to.
If you have any of the machines listed above, or even a totally 
different configuration, run the program with -t option (eg. sysinfo -t )
then phone me with the resulting numbers that will be printed to the screen.
My phone number or fax is at the top of this file.              
Happy Computing

Nic Wilson

Amiga, AutoConfig and AutoCongure are TradeMarks of Commodore Business Machines.