💾 Archived View for cugi.ie › aminet › 1705550746.gmi captured on 2024-08-25 at 00:50:36. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-02-05)

-=-=-=-=-=-=-

test Amiga 3000 ZIP DRAM memory chips

   Author:       amiga at cdh.eebugs.com (Chris Hooper)
   Uploader:     amiga cdh eebugs com (Chris Hooper)
   Type:         util/misc
   Version:      1.1
   Architecture: m68k-amigaos
   Distribution: Aminet
   Date:         2024-01-17
   Readme:       http://aminet.net/util/misc/ZIPTest-1.1.readme
   Downloads:    2

http://aminet.net/util/misc/ZIPTest-1.1.lha

ZIPTest is a command line utility to test ZIP fast memory installed in an

Amiga 3000 or Amiga 3000T. This test requires AmigaOS 2.0+ in ROM.

It might run on other Amiga computers having Ramsey (Amiga 4000 and 4000T

systems), but will probably not provide more useful information than the

DIMM (bank) which has failed.

The utility is designed to detect and diagnose ZIP memory regardless of

whether there are defective chips which would prevent AmigaOS from

recognizing and using that memory. This is achieved by accessing the

physical addresses where the memory is mapped by Ramsey in the Amiga.

The program should be useful for diagnosing bad connections to individual

ZIP ICs or individual bad cells within those ZIP ICs. In order to operate

on memory where some or all may have been detected and put in the freelist

by AmigaOS at startup, the program is designed to run from chip memory.

It does all accesses with interrupts disabled and restores memory contents

after testing. If you are running Enforcer or equivalent (MuForce), you

may need to disable it before running this utility. This is because ZIPTest

potentially accesses CPU physical addresses which may not have been added

to the memory list.

DISCLAIMER: THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT ANY WARRANTY.

THE AUTHOR ASSUMES NO LIABILITY FOR ANY DAMAGE ARISING OUT OF THE USE

OR MISUSE OF THIS UTILITY OR INFORMATION REPORTED BY THIS UTILITY.

The motivation for writing the utility started with me receiving an Amiga

which had been stored in a basement for the past 21 years. After re-capping

and debugging other board issues, I saw that none of the fast memory

was being recognized. Not having much luck with swapping around ZIP ICs,

I started poking at the CPU's physical addresses where the memory should

appear and found nibbles in each bank which were not functional. The

process was not very difficult, but did require a significant amount of

time to research how the ZIP ICs were mapped into memory. I decided to

share my experience by writing a utility which others could use to diagnose

problems with their Amiga ZIP memory.

The utility implements three main tests:

1) Data line test

2) Address line test

3) Memory cell test

If started without arguments, ZIPTest will run all three of these tests

in sequence. If the data line test fails a particular ZIP IC, then you

should not rely on results of the address line test for that IC. If either

the data line test or the address line test fails a particular ZIP IC, then

the memory cell test will also likely fail for that chip, and maybe for

other chips.

When run, ZIPTest will first display some information about your CPU and

memory controller. For example:

CPU: 68060 without Burst, MMU Active

Memory controller: Ramsey-04 $d $3a (25.05 MHz)

Memory config: 1Mx4 (4MB per bank) Burst (SCRAM required)

Memory refresh: 240 clocks (9.60 usec)

In the above, the indication of "without Burst" means that ZIPTest has

determined that enabling Ramsey burst does not make a performance

difference for fast memory access. The likely reason is that the CPU's

bus interface does not support translation of the CPU's burst cycle to

the Amiga 3000's onboard bus, which includes Ramsey. This unfortunately

means that ZIPTest will not be able to probe and report whether the

individual ZIP ICs are Static Column (SC) or Fast Page Mode (FPM).

ZIPTest knows the difference between Ramsey-04 and Ramsey-07 registers

and can, for example, report when Skip mode is active with Ramsey-07.

The clock speed reported for Ramsey is calculated based on how fast

Ramsey DRAM refresh cycles are occurring relative to the ECLOCK

provided to the 8520 (715909 Hz or 709379 Hz) for high resolution timing.

This benchmarked number may not be accurate in all configurations,

especially if your memory or CPU is not fast enough to accurately track

Ramsey refresh cycles.

HARDWARE COMPATIBILITY

----------------------

Early Amiga 3000 computers have Kickstart 1.4 in ROM and will load 1.3 or

2.0+ from the hard disk and soft kick. ZIPTest may not correctly test the

fast memory mapped for Kickstart, or testing of that memory might crash the

computer. With the version 1.1 change where the MMU is disabled during

testing, ZIPTest might work correctly on this machine. If it does not work,

a work-around (untested) would be to hold down both mouse buttons at cold

power-on. This will take you to the OS 1.3 / OS 2.0 selection menu. Click

in the upper left corner of the screen and it should attempt to boot with

the ROM-based Kickstart 1.4. You may need to boot from floppy.

ZIPTest has been tested with an Amiga 3000 and onboard 25 MHz 68030, as well

as multiple Amiga 3000 computers with A3640 and A3660 accelerators installed.

It also runs on the ReA3000, but test failure output is tuned to an A3000

with ZIP memory. On the ReA3000, bank 0 and 1 are the right SIMM. Bank 2 and

3 are the left SIMM. ZIPTest has also been run on the Amiga 4000 and 4000T,

but usefulness for reporting failing components is marginal there.

A feature of the address line test is that it can potentially also identify

whether each ZIP IC supports SC (Static Column) or just FPM (Fast Page Mode).

This identification can only happen if the CPU can burst accesses to Ramsey,

which is probably only the A3000 onboard 68030 CPU. The A3640 and A3660

do not support CPU burst accesses.

=============================================================================

Example test output from a fully working Amiga 3000 with 16MB Fast Memory

and A3640.

1> ziptest

ZIPTest 1.1 (2024-01-17) by Chris Hooper

CPU: 68030 with Burst, MMU Active

Memory controller: Ramsey-07 $f $28 (24.99 MHz)

Memory config: 1Mx4 (4MB per bank)

Memory refresh: 240 clocks (9.60 usec)

Data line test

Socket IO1 IO2 IO3 IO4 Socket IO1 IO2 IO3 IO4

-------- ---- ---- ---- ---- -------- ---- ---- ---- ----

U881 3.7 Good Good Good Good U879 3.5 Good Good Good Good

U873 2.7 Good Good Good Good U871 2.5 Good Good Good Good

U865 1.7 Good Good Good Good U863 1.5 Good Good Good Good

U857 0.7 Good Good Good Good U855 0.5 Good Good Good Good

U880 3.6 Good Good Good Good U878 3.4 Good Good Good Good

U872 2.6 Good Good Good Good U870 2.4 Good Good Good Good

U864 1.6 Good Good Good Good U862 1.4 Good Good Good Good

U856 0.6 Good Good Good Good U854 0.4 Good Good Good Good

U877 3.3 Good Good Good Good U875 3.1 Good Good Good Good

U869 2.3 Good Good Good Good U867 2.1 Good Good Good Good

U861 1.3 Good Good Good Good U859 1.1 Good Good Good Good

U853 0.3 Good Good Good Good U851 0.1 Good Good Good Good

U876 3.2 Good Good Good Good U874 3.0 Good Good Good Good

U868 2.2 Good Good Good Good U866 2.0 Good Good Good Good

U860 1.2 Good Good Good Good U858 1.0 Good Good Good Good

U852 0.2 Good Good Good Good U850 0.0 Good Good Good Good

Address line test

A A A A A A A A A A Mem A A A A A A A A A A Mem

Socket 9 8 7 6 5 4 3 2 1 0 Type Socket 9 8 7 6 5 4 3 2 1 0 Type

-------- - - - - - - - - - - ---- -------- - - - - - - - - - - ----

U881 3.7 G G G G G G G G G G FPM U879 3.5 G G G G G G G G G G FPM

U873 2.7 G G G G G G G G G G FPM U871 2.5 G G G G G G G G G G FPM

U865 1.7 G G G G G G G G G G FPM U863 1.5 G G G G G G G G G G FPM

U857 0.7 G G G G G G G G G G FPM U855 0.5 G G G G G G G G G G FPM

U880 3.6 G G G G G G G G G G FPM U878 3.4 G G G G G G G G G G FPM

U872 2.6 G G G G G G G G G G FPM U870 2.4 G G G G G G G G G G FPM

U864 1.6 G G G G G G G G G G FPM U862 1.4 G G G G G G G G G G FPM

U856 0.6 G G G G G G G G G G FPM U854 0.4 G G G G G G G G G G FPM

U877 3.3 G G G G G G G G G G FPM U875 3.1 G G G G G G G G G G FPM

U869 2.3 G G G G G G G G G G FPM U867 2.1 G G G G G G G G G G FPM

U861 1.3 G G G G G G G G G G FPM U859 1.1 G G G G G G G G G G FPM

U853 0.3 G G G G G G G G G G FPM U851 0.1 G G G G G G G G G G FPM

U876 3.2 G G G G G G G G G G FPM U874 3.0 G G G G G G G G G G FPM

U868 2.2 G G G G G G G G G G FPM U866 2.0 G G G G G G G G G G FPM

U860 1.2 G G G G G G G G G G FPM U858 1.0 G G G G G G G G G G FPM

U852 0.2 G G G G G G G G G G FPM U850 0.0 G G G G G G G G G G FPM

Memory cell test

Bank 0 [................................]

Bank 1 [................................]

Bank 2 [................................]

Bank 3 [................................]

Socket Result Socket Result

-------- ------ -------- ------

U881 3.7 Good U879 3.5 Good

U873 2.7 Good U871 2.5 Good

U865 1.7 Good U863 1.5 Good

U857 0.7 Good U855 0.5 Good

U880 3.6 Good U878 3.4 Good

U872 2.6 Good U870 2.4 Good

U864 1.6 Good U862 1.4 Good

U856 0.6 Good U854 0.4 Good

U877 3.3 Good U875 3.1 Good

U869 2.3 Good U867 2.1 Good

U861 1.3 Good U859 1.1 Good

U853 0.3 Good U851 0.1 Good

U876 3.2 Good U874 3.0 Good

U868 2.2 Good U866 2.0 Good

U860 1.2 Good U858 1.0 Good

U852 0.2 Good U850 0.0 Good

=============================================================================

Data line test

--------------

The Data line test walks all four data lines (IO1, IO2, IO3, and IO4)

of each ZIP, and verifies that each line is connected and that writes to

the chip can retain contents. Output from this test is a table in the

same order as the ZIP ICs are populated on the Amiga 3000 motherboard -

the top is toward the connectors and bottom toward the CPU expansion socket.

A result of "Good" means that the data line is functioning correctly.

A result of "!" means that am indeterminate value is always read from that

data line (sometimes 0 and sometimes 1). This could be due to a defective

or missing part. A "1" means that a 1 value is consistently read, and a

"0" means that a 0 value is consistently read. Unless you are diagnosing

at the board level, anything other than "Good" means that you need to either

re-seat or replace the entire ZIP IC. If the ZIP IC is not installed, you

might receive a variety of "1", "!", or "0" values.

Example data line test output:

1> ziptest data debug quiet

Data line test

Socket ADDR IO1 IO2 IO3 IO4 Socket ADDR IO1 IO2 IO3 IO4

-------- ------- ---- ---- ---- ---- -------- ------- ---- ---- ---- ----

U881 3.7 71fffff Good Good Good Good U879 3.5 71ffffe ! ! ! !

U873 2.7 75fffff ! 1 ! ! U871 2.5 75ffffe ! ! ! !

U865 1.7 79fffff ! 1 ! ! U863 1.5 79ffffe ! ! ! !

U857 0.7 7dfffff Good Good Good Good U855 0.5 7dffffe Good Good Good Good

U880 3.6 71fffff Good Good Good Good U878 3.4 71ffffe Good Good Good Good

U872 2.6 75fffff 1 ! ! ! U870 2.4 75ffffe 1 ! 1 !

U864 1.6 79fffff ! ! ! ! U862 1.4 79ffffe 1 ! 1 !

U856 0.6 7dfffff Good Good Good Good U854 0.4 7dffffe Good Good Good Good

U877 3.3 71ffffd ! ! 1 ! U875 3.1 71ffffc 1 1 1 1

U869 2.3 75ffffd 1 1 1 1 U867 2.1 75ffffc 1 1 1 1

U861 1.3 79ffffd 1 1 1 ! U859 1.1 79ffffc 1 1 1 1

U853 0.3 7dffffd Good Good Good Good U851 0.1 7dffffc Good Good Good Good

U876 3.2 71ffffd 1 1 1 1 U874 3.0 71ffffc 1 1 1 1

U868 2.2 75ffffd 1 1 1 1 U866 2.0 75ffffc Good Good Good Good

U860 1.2 79ffffd ! Good ! Good U858 1.0 79ffffc 1 1 1 1

U852 0.2 7dffffd Good Good Good Good U850 0.0 7dffffc Good Good Good Good

Comparing the above table against readily available Amiga 3000 ZIP memory

installation hints on the internet, one can quickly decide this configuration

is not going to work so well. Only "Bank 0" of ZIP memory might be usable

by the operating system. Note that for the example above, not all ZIP

ICs were installed. One ZIP is defective, and another has an address pin

purposely stuffed in the wrong pin socket (to inject a fault).

The Amiga memory addresses above may look unusual. These addresses are

chosen because there isn't a simple mapping between the Amiga memory address

and the Ramsey assertion of the RAS and CAS address lines. There is a table

in the comments of ziptest.c which documents the mapping that I observed

when probing with a logic analyzer against power-of-two addresses. Simply

stated, the address lines A1 through A9 are inverted from the CPU's physical

memory address. In 1Mx4 mode, the RAS lines A0 through A9 are also rolled

one to the right from the CPU's physical memory address.

=============================================================================

Address line test

-----------------

The address line test performs a modified walking zero's and walking one's

test on the address lines connected to the ZIP memory. The test is designed

to detect shorted or floating address lines by walking adjacent address lines,

checking if writes land at the wrong memory address. The test can't detect

all possible address line-to-line shorts, but does a good job in the general

case of a line shorted to an adjacent line or one which is not connected.

At each address line being tested, address lines immediately below and

above are also used to pattern and test. For example, if A4 is being

tested, then A5, A4, and A3 will be walked with 000, 001, 010, 011, 100,

101, 110, and 111 values, while the other address lines (A0-A2 and A6-A9)

will all be held either at 1 or at 0.

Note that due to the nature of the address test, some address lines may be

indicated as questionable around others which are bad. For example, view the

report for U880 below, which has its A8 pin stuffed in the same socket as A9:

1> ziptest addr quiet

Address line test

A A A A A A A A A A A A A A A A A A A A

Socket 9 8 7 6 5 4 3 2 1 0 Socket 9 8 7 6 5 4 3 2 1 0

-------- - - - - - - - - - - -------- - - - - - - - - - -

U881 3.7 G G G G G G G G G G U879 3.5 ! ! ! ! ! ! ! ! ! !

U873 2.7 ! ! ! ! ! ! ! ! ! ! U871 2.5 ! ! ! ! ! ! ! ! ! !

U865 1.7 ! ! ! ! ! ! ! ! ! ! U863 1.5 ! ! ! ! ! ! ! ! ! !

U857 0.7 G G G G G G G G G G U855 0.5 G G G G G G G G G G

U880 3.6 ? ! ? ? G G G G G ? U878 3.4 G G G G G G G G G G

U872 2.6 ! ! ! ! ! ! ! ! ! ! U870 2.4 ! ! ! ! ! ! ! ! ! !

U864 1.6 ! ! ! ! ! ! ! ! ! ! U862 1.4 ! ! ! ! ! ! ! ! ! !

U856 0.6 G G G G G G G G G G U854 0.4 G G G G G G G G G G

U877 3.3 ! ! ! ! ! ! ! ! ! ! U875 3.1 ! ! ! ! ! ! ! ! ! !

U869 2.3 ! ! ! ! ! ! ! ! ! ! U867 2.1 ! ! ! ! ! ! ! ! ! !

U861 1.3 ! ! ! ! ! ! ! ! ! ! U859 1.1 ! ! ! ! ! ! ! ! ! !

U853 0.3 G G G G G G G G G G U851 0.1 G G G G G G G G G G

U876 3.2 ! ! ! ! ! ! ! ! ! ! U874 3.0 ! ! ! ! ! ! ! ! ! !

U868 2.2 ! ! ! ! ! ! ! ! ! ! U866 2.0 G G G G G G G G G G

U860 1.2 ! ! ! ! ! ! ! ! ! ! U858 1.0 ! ! ! ! ! ! ! ! ! !

U852 0.2 G G G G G G G G G G U850 0.0 G G G G G G G G G G

The question marks in the address test results above indicate that the address

line had a low number of errors, which could be caused by side-effects of

bad adjacent address lines. If you add the "debug" flag to the addr test,

it will give you an exact count of failures per address line (up to 99).

Here, we can see more clearly the low failure counts on all address lines

except A8 (on U880):

1> ziptest addr debug quiet

Address line test

Socket A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Socket A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

-------- -- -- -- -- -- -- -- -- -- -- -------- -- -- -- -- -- -- -- -- -- --

U881 3.7 0 0 0 0 0 0 0 0 0 0 U879 3.5 45 45 44 45 46 47 48 48 48 48

U873 2.7 40 39 42 39 41 43 44 42 40 40 U871 2.5 35 41 39 38 39 36 38 39 32 36

U865 1.7 44 43 42 43 46 45 46 43 42 44 U863 1.5 45 47 48 48 48 48 48 48 47 48

U857 0.7 0 0 0 0 0 0 0 0 0 0 U855 0.5 0 0 0 0 0 0 0 0 0 0

U880 3.6 6 33 4 4 2 0 0 0 0 2 U878 3.4 0 0 0 0 0 0 0 0 0 0

U872 2.6 31 38 33 36 33 32 29 34 28 34 U870 2.4 41 43 47 44 41 44 45 42 44 43

U864 1.6 30 32 31 31 32 33 31 31 29 33 U862 1.4 47 45 47 44 40 43 44 44 48 45

U856 0.6 0 0 0 0 0 0 0 0 0 0 U854 0.4 0 0 0 0 0 0 0 0 0 0

U877 3.3 45 45 43 42 44 44 44 41 42 44 U875 3.1 45 44 44 44 44 45 45 46 46 45

U869 2.3 47 45 46 45 47 43 44 42 42 44 U867 2.1 48 48 48 48 48 48 48 48 48 48

U861 1.3 44 45 46 48 48 48 46 43 44 45 U859 1.1 45 47 44 47 45 45 45 41 44 45

U853 0.3 0 0 0 0 0 0 0 0 0 0 U851 0.1 0 0 0 0 0 0 0 0 0 0

U876 3.2 47 47 43 43 44 44 48 45 43 44 U874 3.0 41 40 40 40 36 37 39 41 44 39

U868 2.2 43 46 46 46 43 45 45 44 43 44 U866 2.0 0 0 0 0 0 0 0 0 0 0

U860 1.2 32 34 32 33 30 27 28 33 30 30 U858 1.0 42 40 40 41 41 41 38 40 41 39

U852 0.2 0 0 0 0 0 0 0 0 0 0 U850 0.0 0 0 0 0 0 0 0 0 0 0

You might wonder about U860. There is a failed ZIP which is installed in

this socket. A couple I/O lines (A2 and A4) still work, but this is not

sufficient to confirm any of the address lines are good. There is not a

ZIP IC installed in U864, U871, or U872, so it's odd why these also present

lower error counts (one must assume a bit of randomness since there is no

IC driving the data lines when addressing unpopulated sockets).

If the ZIP memory is configured in 256Kx4 mode (4MB max fast memory),

then the A9 address line test can not be tested. Output will reflect that

difference (notice '-' in that column):

Address line test

A A A A A A A A A A A A A A A A A A A A

Socket 9 8 7 6 5 4 3 2 1 0 Socket 9 8 7 6 5 4 3 2 1 0

-------- - - - - - - - - - - -------- - - - - - - - - - -

U881 3.7 - G G G G G G G G G U879 3.5 - ! ! ! ! ! ! ! ! !

U873 2.7 - ! ! ! ! ! ! ! ! ! U871 2.5 - ! ! ! ! ! ! ! ! !

U865 1.7 - ! ! ! ! ! ! ! ! ! U863 1.5 - ! ! ! ! ! ! ! ! !

U857 0.7 - G G G G G G G G G U855 0.5 - G G G G G G G G G

U880 3.6 - ! ? ? G G G G ? ? U878 3.4 - G G G G G G G G G

U872 2.6 - ! ! ! ! ! ! ! ! ! U870 2.4 - ! ! ! ! ! ! ! ! !

U864 1.6 - ! ! ! ! ! ! ! ! ! U862 1.4 - ! ! ! ! ! ! ! ! !

U856 0.6 - G G G G G G G G G U854 0.4 - G G G G G G G G G

U877 3.3 - ! ! ! ! ! ! ! ! ! U875 3.1 - ! ! ! ! ! ! ! ! !

U869 2.3 - ! ! ! ! ! ! ! ! ! U867 2.1 - ! ! ! ! ! ! ! ! !

U861 1.3 - ! ! ! ! ! ! ! ! ! U859 1.1 - ! ! ! ! ! ! ! ! !

U853 0.3 - G G G G G G G G G U851 0.1 - G G G G G G G G G

U876 3.2 - ! ! ! ! ! ! ! ! ! U874 3.0 - ! ! ! ! ! ! ! ! !

U868 2.2 - ! ! ! ! ! ! ! ! ! U866 2.0 - G G G G G G G G G

U860 1.2 - ! ! ! ! ! ! ! ! ! U858 1.0 - ! ! ! ! ! ! ! ! !

U852 0.2 - G G G G G G G G G U850 0.0 - G G G G G G G G G

=============================================================================

Memory cell test

----------------

The last test is a comprehensive data pattern test which walks each memory

location in each ZIP package. This test takes considerably longer to run

than the data line test or the address line test.

In default mode, this test will only use alternating 0x5 and 0xa values at

the four bits of each ZIP IC to verify all memory cells. In this mode,

each cell gets tested for retention of both a 0 value and a 1 value.

When the "LONG" parameter is specified, then each ZIP IC is tested with the

following additional patterns: 0xc, 0x3, 0x1, 0x2, 0x4, 0x8, 0x7, 0xe, 0xd,

0xb, and 0x0.

At the end of the test, a summary will be displayed. "Good" means that

all cells of the specific chip passed the test. An "!" means failures

were detected.

Example output:

1> ziptest cell quiet

Memory cell test

Bank 0 [................................]

Bank 1 [X ]

Bank 2 [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]

Bank 3 [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]

Socket Result Socket Result

-------- ------ -------- ------

U881 3.7 Good U879 3.5 !

U873 2.7 ! U871 2.5 !

U865 1.7 ! U863 1.5 !

U857 0.7 Good U855 0.5 Good

U880 3.6 ! U878 3.4 Good

U872 2.6 ! U870 2.4 !

U864 1.6 ! U862 1.4 !

U856 0.6 Good U854 0.4 Good

U877 3.3 ! U875 3.1 !

U869 2.3 ! U867 2.1 !

U861 1.3 ! U859 1.1 !

U853 0.3 Good U851 0.1 Good

U876 3.2 ! U874 3.0 !

U868 2.2 ! U866 2.0 Good

U860 1.2 ! U858 1.0 !

U852 0.2 Good U850 0.0 Good

=============================================================================

Example ziptest output where a good bank 0 of 256Kx4 ZIP ICs are installed

in an Amiga while Ramsey is configured for 1Mx4 mode. As you can tell from

the patterns, the ICs are installed in U850, U851, U852, U853, U854, U855,

U856, and U857.

1> ziptest

ZIPTest 1.1 (2024-01-17) by Chris Hooper

CPU: 68040 without Burst, MMU Active

Memory controller: Ramsey-07 $f $28 (25.08 MHz)

Memory config: 1Mx4 (4MB per bank)

Memory refresh: 240 clocks (9.60 usec)

Data line test

Socket IO1 IO2 IO3 IO4 Socket IO1 IO2 IO3 IO4

-------- ---- ---- ---- ---- -------- ---- ---- ---- ----

U881 3.7 1 1 1 1 U879 3.5 1 1 1 1

U873 2.7 1 1 1 1 U871 2.5 1 1 1 1

U865 1.7 1 1 ? ? U863 1.5 ? 1 1 1

U857 0.7 Good Good Good Good U855 0.5 Good Good Good Good

U880 3.6 1 1 1 1 U878 3.4 1 1 1 1

U872 2.6 1 ? 1 1 U870 2.4 1 1 1 1

U864 1.6 1 1 1 1 U862 1.4 ? ? 1 ?

U856 0.6 Good Good Good Good U854 0.4 Good Good Good Good

U877 3.3 1 1 1 1 U875 3.1 1 1 1 1

U869 2.3 1 1 1 1 U867 2.1 1 1 1 1

U861 1.3 1 1 1 1 U859 1.1 1 1 1 ?

U853 0.3 Good Good Good Good U851 0.1 Good Good Good Good

U876 3.2 1 1 1 1 U874 3.0 1 1 1 1

U868 2.2 1 1 ? 1 U866 2.0 1 1 1 1

U860 1.2 1 1 1 1 U858 1.0 1 1 ? 1

U852 0.2 Good Good Good Good U850 0.0 Good Good Good Good

Address line test

A A A A A A A A A A Mem A A A A A A A A A A Mem

Socket 9 8 7 6 5 4 3 2 1 0 Type Socket 9 8 7 6 5 4 3 2 1 0 Type

-------- - - - - - - - - - - ---- -------- - - - - - - - - - - ----

U881 3.7 ! ! ! ! ! ! ! ! ! ! ? U879 2.5 ! ! ! ! ! ! ! ! ! ! ?

U873 2.7 ! ! ! ! ! ! ! ! ! ! ? U871 3.5 ! ! ! ! ! ! ! ! ! ! ?

U865 1.7 ! ! ! ! ! ! ! ! ! ! ? U863 1.5 ! ! ! ! ! ! ! ! ! ! ?

U857 0.7 ! ? ? G G G G G ? ? ? U855 0.5 ! ? ? G G G G G ? ? ?

U880 3.6 ! ! ! ! ! ! ! ! ! ! ? U878 3.4 ! ! ! ! ! ! ! ! ! ! ?

U872 2.6 ! ! ! ! ! ! ! ! ! ! ? U870 2.4 ! ! ! ! ! ! ! ! ! ! ?

U864 1.6 ! ! ! ! ! ! ! ! ! ! ? U862 1.4 ! ! ! ! ! ! ! ! ! ! ?

U856 0.6 ! ? ? G G G G G ? ? ? U854 0.4 ! ? ? G G G G G ? ? ?

U877 3.3 ! ! ! ! ! ! ! ! ! ! ? U875 3.1 ! ! ! ! ! ! ! ! ! ! ?

U869 2.3 ! ! ! ! ! ! ! ! ! ! ? U867 2.1 ! ! ! ! ! ! ! ! ! ! ?

U861 1.3 ! ! ! ! ! ! ! ! ! ! ? U859 1.1 ! ! ! ! ! ! ! ! ! ! ?

U853 0.3 ! ? ? G G G G G ? ? ? U851 0.1 ! ? ? G G G G G ? ? ?

U876 3.2 ! ! ! ! ! ! ! ! ! ! ? U874 3.0 ! ! ! ! ! ! ! ! ! ! ?

U868 2.2 ! ! ! ! ! ! ! ! ! ! ? U866 2.0 ! ! ! ! ! ! ! ! ! ! ?

U860 1.2 ! ! ! ! ! ! ! ! ! ! ? U858 1.0 ! ! ! ! ! ! ! ! ! ! ?

U852 0.2 ! ? ? G G G G G ? ? ? U850 0.0 ! ? ? G G G G G ? ? ?

Memory cell test

Bank 0 [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]

Bank 1 [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]

Bank 2 [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]

Bank 3 [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]

Socket Result Socket Result

-------- ------ -------- ------

U881 3.7 ! U879 3.5 !

U873 2.7 ! U871 2.5 !

U865 1.7 ! U863 1.5 !

U857 0.7 ! U855 0.5 !

U880 3.6 ! U878 3.4 !

U872 2.6 ! U870 2.4 !

U864 1.6 ! U862 1.4 !

U856 0.6 ! U854 0.4 !

U877 3.3 ! U875 3.1 !

U869 2.3 ! U867 2.1 !

U861 1.3 ! U859 1.1 !

U853 0.3 ! U851 0.1 !

U876 3.2 ! U874 3.0 !

U868 2.2 ! U866 2.0 !

U860 1.2 ! U858 1.0 !

U852 0.2 ! U850 0.0 !

Although this memory (or a portion of it) might pass testing by Amiga OS,

the ziptest utility will still detect a problem. In this particular case,

adjusting J852 is all that is necessary for the installed memory to be

reported as Good.

=============================================================================

Other options

-------------

The ziptest utility has a few additional command line options which may

be listed by supplying a "?" argument. All supported arguments:

ADDR - perform address line test

ASCII - show ASCII ART of chip positions and pins

CELL - perform memory cell test (verify every bit)

DATA - perform data line test

DIP - show DIP RAM positions

DEBUG - enable debug output

INFO - only show system information

FORCE - ignore fact enforcer is present

LONG - perform more thorough (slower) line test

MAP - just show map of corresponding bits (no test)

QUIET - do not display banner

SPROBE - probe for static-column memory (68030 only)

STROBE - generate power-of-two address strobes for a probe

ADDR

----

Perform only the address line test. No other tests will be executed unless

they are also specified. The LONG option may be specified to run more

iterations of the address line test, which slightly increases the chances

of finding a floating line.

ASCII

-----

Display ASCII art showing the placement and pinout of the ZIP and DIP ICs

on the board.

CELL

----

Perform only the memory cell test. No other tests will be executed unless

they are also specified. The set of patterns for each ZIP IC will be 0x5

and 0xa, which tests each cell set to 0 value and set to 1 value. The LONG

option may be specified to run each ZIP through more patterns. The complete

set of patterns for each ZIP IC in this mode will be: 0x5, 0xa, 0xc, 0x3,

0x1, 0x2, 0x4, 0x8, 0x7, 0xe, 0xd, 0xb, and 0x0.

DATA

----

Perform only the data line test. No other tests will be executed unless

they are also specified. The LONG option may be specified to run a more

comprehensive test by checking data lines to each ZIP IC separately from

each other, rather than in parallel with data lines of the other ZIP ICs.

DIP

---

Also display fast memory DIP chip positions (these mirror the first bank

of ZIP memory, so the information is likely redundant).

DEBUG

-----

Display test debug output. This is most useful for the Address line test

as it changes the good/bad result to be a count of failures. Adding the

flag a second time will generate more output for the address line test.

FORCE

-----

Ignore the fact that Enforcer or MuForce is running. This will likely

lead to a hang when the test runs as the address exceptions are handled by

software.

INFO

----

Just display Amiga system information, including CPU and Ramsey memory

controller configuration.

LONG

----

Run a more comprehensive version of the data, address, or cell tests.

See the individual test descriptions above for more details.

MAP

---

Display a map of how Amiga CPU physical memory addresses and bit positions

correspond to data bits and address bits of the ZIP ICs. Note that the

maps displayed will be different depending on whether the memory is jumpered

for 1Mx4 or 256Kx4 mode.

QUIET

-----

Do not display the banner showing the name, version, and date of ziptest.

The CPU and Ramsey configuration are also not displayed unless the INFO

command is also specified.

SPROBE

------

Not only will this code probe for static column memory. It will also do

some benchmarking of read.l with cache and burst on and off. Note that

the speed reported will not be as high as bustest because the code executes

from chip memory and is also not using movem.

STROBE

------

This option is for board level debug. It will cause read strobes on the

address lines in order to assist with debug using an oscilloscope. You can

use any of the parallel port data lines as a trigger for the oscilloscope

or logic analyzer to capture the address lines during the RAS and CAS cycles.

=============================================================================

Source code notes

-----------------

Source may be compiled with either DICE 3.15 (use dmake) or VBCC 0.906

13.08.2017 (use compile_vbcc script). I use DICE for the distribution build

as it compiles faster and the final executable is a bit smaller. I didn't

notice a performance difference between the two for this particular

application. Although gcc can also compile the utility, I wasn't able to

figure out how to set the hunk attributes to MEMF_CHIP, which is required.

Since the code must run from chip memory, there is a small startup function

in stack.asm which relocates the program's stack to chip memory. It then

calls c_main() in ziptest.c.

There are a few defines at the top of ziptest.c -- you shouldn't need to

adjust any of the settings.

Contents of util/misc/ZIPTest-1.1.lha

PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                  163     226  72.1% -lh5- e372 Nov 28  2017 ZIPTest/compile_vbcc
[unknown]                  782    1717  45.5% -lh5- dd10 Jan 14 20:11 ZIPTest/DMakefile
[unknown]                  769    1893  40.6% -lh5- 0727 Nov 27  2017 ZIPTest/stack.asm
[unknown]                 1502    6313  23.8% -lh5- 1ffa Jan 17 01:52 ZIPTest/util.asm
[unknown]                  273     852  32.0% -lh5- 351f Nov 27  2017 ZIPTest/vbcc_config
[unknown]                14248   24572  58.0% -lh5- 77f0 Jan 17 01:56 ZIPTest/ziptest
[unknown]                23146   84865  27.3% -lh5- 147b Jan 17 01:55 ZIPTest/ziptest.c
[unknown]                 9264   29173  31.8% -lh5- 995c Jan 17 01:53 ZIPTest/ziptest.readme
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total         8 files   50147  149611  33.5%            Jan 18 04:05

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminet aminet net>