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 } } }