perry@picuxa.UUCP (Perry S. Kivolowitz) (07/29/86)
THIS IS A SECOND POSTING - I was told that the message has been truncated
by some sites. So, there IS a line eater after all!
-------------------------------------------------------------------------
I received the Alegra 512K board from Access Associates. What follows is
an unsolicited unpaid review.
(1) Physical Characteristics - Packaging
The Alegra board is contained in an attractive well designed
all metal enclosure. Visible surfaces are painted in a quiet brown paint
with a pebbled matte finish to obscure finger prints.
The enclosure, again, is quite intelligently designed. It comes
apart with a single screw yet is extremely sturdy.
(2) Physical Characteristics - P.C. Board
The Alegra p.c. board shows competent design and good thinking.
No wires or jumpers (booboo's) were found on the board. Every component
has a by-pass capacitor for noise reduction.
The p.c. board is a solid, good quality, four layer board. It
contains a socketing configuration which will accept either 256K or
1Mbit ram parts.
The ram chips themselves are manufactured by NEC who, my sources
tell me, enjoy a superlative quality assurance record.
Solder leads were trimmed (all except one row anyway). While
this does not really affect board function it is usually indicative of
competent manufacturing.
The Alegra does not pass the bus.
Access Associates has told me that the 512K board uses less than
one amp. They say that the 2Mbyte board (replace 256K parts with 1Mbit
parts) uses less current than the 512K board because 1Mbit parts will be
CMOS. If I have this right, timing on the board will be radically dif-
ferent for the 2MByte board.
(3) Documentation
The board came with a single sheet of installation procedures.
This included physical installation as well as startup-sequence changes
needed by 1.1 of the operating system.
The instructions were succinct and completely adequate.
(4) Software
The Alegra comes with AddMem for 1.1 users. Also, a program
called Ident which pokes the configuration space and activates the
board.
No software is needed by 1.2 as the Alegra is fully configures
itself during system start up.
(5) Performance
Running my memory speed assesment program (posted earlier) I
got the following statistics under 1.2 with a 68010 processor. No other
tasks were running, the CLI window occupied the entire screen.
FAST RAM CHIP RAM DIFFERENCE
Code In FAST RAM: 28800242 28900280 100038
Code In CHIP RAM: 29266934 29250309 -16625
Thus, I assume that no wait states are being incurred.
(6) Summary And Suggestions
If you are looking for a closed end RAM expansion board the
Alegra is a good value embodying solid design. However if you contemplate
future additional expansion the Alegra will not (then) be useful.
Performance is good on the 512K board. I don't know if the 2MByte
board will be the same (better or worse, I don't know, however I suspect
that performance will not be as good).
All in all, I was impressed by the solidity of the design and
construction and again, would suggest the board for new Amiga owners who
do not expect to require any additional hardware expansion capability.
Yours,
Perry S. Kivolowitz
-------------------------------------------------------------------------
In case you missed the ram speed program - here it is again
-------------------------------------------------------------------------
#include <exec/types.h>
#include <intuition/intuition.h>
#include <exec/memory.h>
/*
** ram-speed
**
** Times memory performance. To be compiled under MANX.
**
** Author: Perry S. Kivolowitz
**
*/
extern char *AllocMem();
extern struct IntuitionBase *OpenLibrary();
struct IntuitionBase *IntuitionBase;
static char *Author = "Perry S. Kivolowitz";
char *source , *destination;
long EndingSeconds , EndingMicroSeconds;
long StartingSeconds , StartingMicroSeconds;
#define BSIZE (1L << 17)
/*
** FreeAll
**
** Return any allocated memory back to the system for reuse.
**
*/
FreeAll()
{
if (source) FreeMem(source , BSIZE);
if (destination) FreeMem(destination , BSIZE);
}
/*
** AllocAll
**
** Given a type of memory specified by ``bits'' allocate BSIZE
** bytes for a source area and a destination area.
**
*/
AllocAll(bits)
long bits;
{
destination = AllocMem(BSIZE , bits);
source = AllocMem(BSIZE , bits);
if (!source || !destination) {
printf("Allocation of Memory Failed\n");
Leave();
}
}
/*
** Leave
**
** Clean up routine. Release memory and close Intuition.
**
*/
Leave()
{
FreeAll();
CloseLibrary(IntuitionBase);
exit(0);
}
OpenIntuition()
{
IntuitionBase = OpenLibrary("intuition.library" , 0L);
if (!IntuitionBase) {
printf("Could Not Open Intuition\n");
exit(0);
}
}
long PrintTime()
{
long temp1 , temp2;
temp2 = 1000000 * EndingSeconds + EndingMicroSeconds;
temp1 = 1000000 * StartingSeconds + StartingMicroSeconds;
temp2 = temp2 - temp1;
printf("Elapsed Time (microseconds): %ld\n" , temp2);
return(temp2);
}
long TimeRam(bits)
long bits;
{
AllocAll(bits);
CurrentTime(&StartingSeconds , &StartingMicroSeconds);
CopyRam();
CurrentTime(&EndingSeconds , &EndingMicroSeconds);
FreeAll();
return(PrintTime());
}
main()
{
int i;
long fast , chip;
OpenIntuition();
printf("Timing CHIP Memory\n");
chip = TimeRam(MEMF_CHIP);
printf("Timing FAST Memory\n");
fast = TimeRam(MEMF_FAST);
printf("Difference (microseconds): %ld\n" , fast - chip);
Leave();
}
CopyRam()
{
register long *src , *dst;
register short i , j;
for (j = 0; j < 256; j++) {
src = (long *) source;
dst = (long *) destination;
i = BSIZE / 32;
while (--i) {
#asm
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
#endasm
}
}
}perry@well.UUCP (Perry S. Kivolowitz) (07/31/86)
This is a second reposting - someone keeps truncating the article when
posted from the east coast.
Perry
------------------------------------------------------------------------
I received the Alegra 512K board from Access Associates. What follows is
an unsolicited unpaid review.
(1) Physical Characteristics - Packaging
The Alegra board is contained in an attractive well designed
all metal enclosure. Visible surfaces are painted in a quiet brown paint
with a pebbled matte finish to obscure finger prints.
The enclosure, again, is quite intelligently designed. It comes
apart with a single screw yet is extremely sturdy.
(2) Physical Characteristics - P.C. Board
The Alegra p.c. board shows competent design and good thinking.
No wires or jumpers (booboo's) were found on the board. Every component
has a by-pass capacitor for noise reduction.
The p.c. board is a solid, good quality, four layer board. It
contains a socketing configuration which will accept either 256K or
1Mbit ram parts.
The ram chips themselves are manufactured by NEC who, my sources
tell me, enjoy a superlative quality assurance record.
Solder leads were trimmed (all except one row anyway). While
this does not really affect board function it is usually indicative of
competent manufacturing.
The Alegra does not pass the bus.
Access Associates has told me that the 512K board uses less than
one amp. They say that the 2Mbyte board (replace 256K parts with 1Mbit
parts) uses less current than the 512K board because 1Mbit parts will be
CMOS.
(3) Documentation
The board came with a single sheet of installation procedures.
This included physical installation as well as startup-sequence changes
needed by 1.1 of the operating system.
The instructions were succinct and completely adequate.
(4) Software
The Alegra comes with AddMem for 1.1 users. Also, a program
called Ident which pokes the configuration space and activates the
board.
No software is needed by 1.2 as the Alegra is fully configures
itself during system start up.
(5) Performance
Running my memory speed assesment program (posted earlier) I
got the following statistics under 1.2 with a 68010 processor. No other
tasks were running, the CLI window occupied the entire screen.
FAST RAM CHIP RAM DIFFERENCE
Code In FAST RAM: 28800242 28900280 100038
Code In CHIP RAM: 29266934 29250309 -16625
Thus, I assume that no wait states are being incurred.
(6) Summary And Suggestions
If you are looking for a closed end RAM expansion board the
Alegra is a good value embodying solid design. However if you contemplate
future additional expansion the Alegra will not (then) be useful.
Performance is good on the 512K board. I don't know if the 2MByte
board will be the same.
All in all, I was impressed by the solidity of the design and
construction and again, would suggest the board for new Amiga owners who
do not expect to require any additional hardware expansion capability.
Yours,
Perry S. Kivolowitz
-------------------------------------------------------------------------
In case you missed the ram speed program - here it is again
-------------------------------------------------------------------------
#include <exec/types.h>
#include <intuition/intuition.h>
#include <exec/memory.h>
/*
** ram-speed
**
** Times memory performance. To be compiled under MANX.
**
** Author: Perry S. Kivolowitz
**
*/
extern char *AllocMem();
extern struct IntuitionBase *OpenLibrary();
struct IntuitionBase *IntuitionBase;
static char *Author = "Perry S. Kivolowitz";
char *source , *destination;
long EndingSeconds , EndingMicroSeconds;
long StartingSeconds , StartingMicroSeconds;
#define BSIZE (1L << 17)
/*
** FreeAll
**
** Return any allocated memory back to the system for reuse.
**
*/
FreeAll()
{
if (source) FreeMem(source , BSIZE);
if (destination) FreeMem(destination , BSIZE);
}
/*
** AllocAll
**
** Given a type of memory specified by ``bits'' allocate BSIZE
** bytes for a source area and a destination area.
**
*/
AllocAll(bits)
long bits;
{
destination = AllocMem(BSIZE , bits);
source = AllocMem(BSIZE , bits);
if (!source || !destination) {
printf("Allocation of Memory Failed\n");
Leave();
}
}
/*
** Leave
**
** Clean up routine. Release memory and close Intuition.
**
*/
Leave()
{
FreeAll();
CloseLibrary(IntuitionBase);
exit(0);
}
OpenIntuition()
{
IntuitionBase = OpenLibrary("intuition.library" , 0L);
if (!IntuitionBase) {
printf("Could Not Open Intuition\n");
exit(0);
}
}
long PrintTime()
{
long temp1 , temp2;
temp2 = 1000000 * EndingSeconds + EndingMicroSeconds;
temp1 = 1000000 * StartingSeconds + StartingMicroSeconds;
temp2 = temp2 - temp1;
printf("Elapsed Time (microseconds): %ld\n" , temp2);
return(temp2);
}
long TimeRam(bits)
long bits;
{
AllocAll(bits);
CurrentTime(&StartingSeconds , &StartingMicroSeconds);
CopyRam();
CurrentTime(&EndingSeconds , &EndingMicroSeconds);
FreeAll();
return(PrintTime());
}
main()
{
int i;
long fast , chip;
OpenIntuition();
printf("Timing CHIP Memory\n");
chip = TimeRam(MEMF_CHIP);
printf("Timing FAST Memory\n");
fast = TimeRam(MEMF_FAST);
printf("Difference (microseconds): %ld\n" , fast - chip);
Leave();
}
CopyRam()
{
register long *src , *dst;
register short i , j;
for (j = 0; j < 256; j++) {
src = (long *) source;
dst = (long *) destination;
i = BSIZE / 32;
while (--i) {
#asm
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
move.l (a2)+,(a3)+
#endasm
}
}
}