/* * DiskSpeed v3.0 * by * Michael Sinz * * Copyright (c) 1989 by MKSoft Development * * MKSoft Development * 163 Appledore Drive * Downingtown, PA 19335 * * Yes, this is yet another disk speed testing program, but with a few * differences. It was designed to give the most accurate results of the * true disk performance in the system. For this reason many of * DiskSpeed's results may look either lower or higher than current disk * performance tests. * * This program was thrown together in a few hours because I needed more * accurate and consistent results for disk performance as seen from the * application's standpoint. This program has now served its purpose and * I am now giving it to the rest of the Amiga world to play with as long * as all of the files remain together in unmodified form. (That is, the * files DiskSpeed, DiskSpeed.info, DiskSpeed.c, DiskSpeedWindow.c, * DiskSpeedWindow.h, MakeBoxes.c, MakeBoxes.h, StandardGadgets.c, * StandardGadgets.h, RenderInfo.c, RenderInfo.h, DiskSpeed.doc, and * MakeFile) * * Version 2.0 of this program added a few features and cleaned up the * user interface. I hope you like this... * * Version 3.0 of this program added the performance stress and cleaned up * some parts of the older code. (Fix to RenderInfo.c) * ****************************************************************************** * * * Reading legal mush can turn your brain into guacamole! * * * * So here is some of that legal mush: * * * * Permission is hereby granted to distribute this program's source * * executable, and documentation for non-commercial purposes, so long as the * * copyright notices are not removed from the sources, executable or * * documentation. This program may not be distributed for a profit without * * the express written consent of the author Michael Sinz. * * * * This program is not in the public domain. * * * * Fred Fish is expressly granted permission to distribute this program's * * source and executable as part of the "Fred Fish freely redistributable * * Amiga software library." * * * * Permission is expressly granted for this program and it's source to be * * distributed as part of the Amicus Amiga software disks, and the * * First Amiga User Group's Hot Mix disks. * * * ****************************************************************************** * * My DiskSpeedWindow definitions... */ #define GADGET_LOW 1 #define GADGET_MED 2 #define GADGET_HIGH 4 #define GADGET_START 5 #define GADGET_SAVE 6 #define GADGET_PRINT 7 #define GADGET_STRING 8 #define GADGET_REQ 9 #define GADGET_DMA 10 #define GADGET_CPU 11 #define NUM_BOXES 12 #define NUM_TEXT 19 #define NUM_GADGETS 8 #define NUM_RESULTS 17 #define RESULTS_512_CREATE 0 #define RESULTS_512_WRITE 1 #define RESULTS_512_READ 2 #define RESULTS_4096_CREATE 3 #define RESULTS_4096_WRITE 4 #define RESULTS_4096_READ 5 #define RESULTS_32768_CREATE 6 #define RESULTS_32768_WRITE 7 #define RESULTS_32768_READ 8 #define RESULTS_262144_CREATE 9 #define RESULTS_262144_WRITE 10 #define RESULTS_262144_READ 11 #define RESULTS_CREATE 12 #define RESULTS_OPEN_CLOSE 13 #define RESULTS_DIR_SCAN 14 #define RESULTS_DELETE 15 #define RESULTS_SEEK_READ 16 struct MyBox { struct Border Border; SHORT Vectors[5*2]; }; struct MyGadget { struct Gadget Gadget; struct IntuiText IntuiText; struct Border Borders[4]; USHORT Vectors1[16]; USHORT Vectors2[16]; }; struct MyResult { struct IntuiText IntuiText; char text[10]; }; struct MyWindow { struct Window *Window; struct Gadget *CloseGadget; struct Gadget *FrontBackGadget; struct Gadget *DragGadget; struct timeval StartTime; struct timeval StopTime; struct timerequest TimeReq; struct Gadget Background; struct Image Image_Background; struct Gadget Detail; struct MyBox Details[NUM_BOXES*2]; struct IntuiText TextDetails[NUM_TEXT]; struct MyGadget MyGadgets[NUM_GADGETS]; struct MyResult MyResults[NUM_RESULTS]; struct Gadget DeviceGadget; struct StringInfo DeviceGadgetInfo; char DeviceName[32]; struct Gadget CommentGadget; struct StringInfo CommentGadgetInfo; char Comment[80]; /* For the requester... */ struct Requester Req; struct Border ReqBorders[4]; struct Gadget ReqGadget; struct IntuiText ReqIText; SHORT ReqVector1[16]; SHORT ReqVector2[16]; /* Flag for which type of testing... */ USHORT TestFlag; /* Task pointer for the CPU stress task */ struct Task *CPUstress; /* Pointer to the User copper list in DMA stress */ struct UCopList *DMAstress; }; VOID Write_Results(struct MyWindow *,BPTR); VOID Stress_On(struct MyWindow *); VOID Stress_Off(struct MyWindow *); struct MyWindow *OpenMyWindow(struct RenderInfo *); VOID CloseMyWindow(struct MyWindow *);