Criteria for purchasing a computer for RMW Use
Section 1: Specifications
Any computer purchased for use with Read-Modify-Write (RMW) scientific experiments shall conform to
the following specifications:
- The computer shall NOT have a multitasking operating system.
- The operating system shall NOT have been written using any variant of the C programming language.
These languages produce a multitasking operating system.
- Once an application has started, the operating system shall not run, unless the program makes a
service call to it. Service calls include console I/O, Disk I/O, and printing. Use of the experiment
ports shall not be done through service calls.
- The operating system shall not use timer initiated interrupts for any purpose other than stopping
an idling disk drive. And that should be done with a hardware timer if possible.
- The programming language and compiler provided must be a language similar to FORTRAN or Basic, and
must not be based on starting multiple processes.
- Any system that offers a C compiler available for use on it is automatically rejected because it
is a multitasking system.
- The programming language and compiler provided must execute instructions in the order designed by
the programmer, and must not attempt to optimize execution by reordering the sequence of operations.
- The programming language must allow the programmer to access the I/O ports used for the experiment
directly, without making any call to the operating system.
- The system must have an on-board real time clock, plus several interval timers that are independent
of processor speed or use, and which output their status information on data ports.
- The on-board real time clock must not issue or rely on interrupts.
- The system interval timers must be programmable on whether they issue interrupts.
- Experiment port interrupt handling shall be done by user-written routines, not system software.
- I/O devices other than disk drives should not issue interrupts unless programmed to do so by the user.
- If a DMA (Direct Memory Access) port is used, it may issue interrupts only for single-datum
- Memory refresh of dynamic RAM shall be accomplished without the use of interrupts, and must not stop
Section 2: Testing
Any computer purchased for use with Read-Modify-Write (RMW) scientific shall be tested for performance
before being accepted for purchase:
- The computer, operating system, and compiler shall be tested through the actual use of RMW operations
before being accepted.
- The test protocol shall approximate the actual timings needed for the experiments planned.
- All phases of the experiment shall be tested.
- Each test shall be run 100 times. If the computer fails even one of the test runs, it shall be rejected.
- An attempted test run shall not be counted if some external trouble interrupted or altered the
outcome of it. Examples of this external trouble are people messing with the computer, and power failures.
Section 3: Remedies
If the computer fails the tests outlined above, it shall be returned to the seller for full credit.
If a computer is found to violate the requirements of these criteria after it has already been purchased, the
following remedies should be applied:
- If the seller or an agent of the seller knowingly misrepresented the product as being able to perform the
required tasks, the seller shall
produce and deliver a product that can meet the criteria, even if it has to develop a new product to do so.
- If the product was misrepresented by the seller, or by any agent of the seller, the seller shall reimburse
any labor time used by a programmer trying to make the product work with the required experimental protocol.
- If the seller repeatedly offers solutions that do not work, the seller shall reimburse any time used to
implement those solutions.