* DRAFT *
History of CRMS APL

Paul McJones
paul@mcjones.org

13 October 2024

Abstract

CRMS APL pioneered the use of computerized multiterminal, interactive simulation experiments for social science research. The system was conceived by Professor Austin Hoggatt at the Management Science Laboratory of the Center for Research in Management Science at the University of California, Berkeley. It was designed and built by a team led by Mark Greenberg and Charles Grant during 1972–1976. By January 1974 it could support one experimenter developing and running an experiment connected to multiple terminals. By 1976 the system was complete, with an easy-to-use interactive APL subsystem, and a multi-user time-shared operating system. The project was a technical success, making it possible to write experiments, debug them, run them, and analyze the results, and established the Management Science Laboratory as the prototype for experimentation in economics and behavioral science. However the lab failed to jell as an community of experimenters and supporting workers.

I was a member of the project during 1972, and have attempted to reconstruct the project history. Appendix 1 is an archive of scanned copies of the surviving project documents and source code listings.

Introduction

UC Berkeley professors Frederick Emory Balderston[MyMi2007] and Austin Curwood Hoggatt[Fr2009] were pioneers in the application of computer-based simulation in economics. Hoggatt's thesis[Ho1957] was said to be "the first thesis in the United States that used simulations with a human-to-computer interface." In 1962 the two published a monumental monograph[BaHo1962] on a (noninteractive) simulation of the lumber industry, which included 35 pages of FORTRAN II source code.

Management Science Laboratory

In 1964 Balderston and Hoggatt began planning the Management Science Laboratory. In a 1969 paper[HoEsWh1969] demonstrating its use, Hoggatt described it as follows:

"The Management Science Laboratory was conceived by faculty in the Center for Research in Management Science at the University of California at Berkeley as a facility for behavioral research. A facilities grant from the National Science Foundation was awarded to the Center, and an interest group was formed to design and construct a laboratory for experiments with human subjects in situations based on models from the behavioral disciplines.

Our thinking was guided by results from a prototype laboratory and by the emerging literature in experimental gaming. Two principal considerations were that the environment should not detract from the experiments and, whenever possible, automatic control should be substituted for human control over experimental variables. The use of a digital computer as the heart of the experimental control system would achieve the generality which was required. The design of the laboratory was given over to architects who consulted with the faculty, while the computer control system was designed by technicians coordinated by one faculty member."

The prototype Hoggatt mentioned was developed during an appointment as Research Professor in the Miller Institute for Basic Research in Science, 1960 to 1961. The lab as built occupied about 2800 square feet, and much of the space could be reconfigured with wall sections suspended from overhead tracks; it was usually set up with a cubicle for each experimental subject. There were connections for terminals (originally Model 33 Teletypes) and video cameras and monitors.

Floor plan of Management Science Laboratory
FIGURE 1. FLOOR PLAN OF THE MANAGEMENT SCIENCE LABORATORY.
From [HoEsWh1969].

Hoggatt described the computer system:[HoEsWh1969]

"At the center is a time-shared PDP-5 with DECTAPES, IBM compatible tape, full-duplex teletype multiplexor, analog-digital digital-analog conversion, micro clock, voltage out (one shot) and sense channels and a memory-to-memory link to a PDP-8 computer. The PDP-5 is quiescent responding to a 100 millisecond interrupt to update its clock or to a demand for service from one of the devices which it serves. On demand the PDP-5 slavishly responds or transmits to a peripheral device or stores data. The PDP-8, which has extended arithmetic, operates on a variable quantum break of 10 milliseconds up to 100 milliseconds and can be tuned to match the environmental characteristics of any given experiment. Control over the experiment resides in the PDP-8 which can issue commands to the PDP-5 to send character strings or operate external devices. For example, in creating a log of the experiment the PDP-8 may select characters from the input string of a teletype, add control characters and the real clock time to the string and have the PDP-5 write this information on the DECTAPE."

CRMS PDP-5/PDP-8 circa 1972
CRMS PDP-5/PDP-8 circa 1972. Photo by Paul McJones.

Hoggatt described in detail a duopoly experiment using the system in [Ho1969]. The computers were programmed using a language ECL/3 (Environmental Control Language, version 3) designed by A. Hoggatt, D. Steingart, J. Schlesinger, and J. Moore.[Mo1971]

Transition to APL

Apparently the PDP-8 had been added to the system in 1967.[Ho1977] Even still, the combined PDP-5/8 system was small and slow. By 1970, there was interest in replacing the PDP-5/8 system with a more powerful computer system. Hoggatt had become an advocate of the APL programming language, which IBM had released for the System/360 in 1968.[FaIv1968] APL offered a concise, powerful notation that Hoggatt believed would be appropriate as a publication language for the models underlying the experiments and could be extended to handle files, multiple terminals and other devices within a single experiment program.

Two students who'd contributed to the software for the PDP-5/8 system, David S. Steingart from Computer Science and Jeffrey Moore from Business Administration, joined forces with Computer Science graduate student Rodnay Zaks to explore an APL implementation on a microprogrammable computer.[ZaStMo1971] The section of their paper entitled "A Time-Sharing System for Behavioral Science Experimentation" lays out extensive requirements for a system to be used for experimentation. Work was done on the APL implementation, but the system was not completed.[ZaStMo1971, Za1972]

CRMS APL project

By winter of 1971–1972 a larger project began to build a new computer system. The project was administered by Balderston, who chaired CRMS, and by the Laboratory Advisory Committee, which was chaired by Hoggatt. A press release by Balderston announcing the project noted:[Ba1972]

"The nucleus of the Staff Group for the computer-systems effort is headed by Mark L. Greenberg (PhD, Electrical Engineering and Computer Science, UC-Berkeley , 1971) and Jeffrey Moore (doctoral student in information science, Graduate School of Business Administration, UC-Berkeley)."

By April 1972, Charles A. Grant (also a 1971 Ph.D. from the Berkeley EECS department) returned from a post-doctoral fellowship and joined Greenberg as co-technical leader; Moore continued for a time as a consultant, and continued to supervise the existing PDP-5/8 system.[CRMS1972] One of the next hires was George Morrow[Ma2003] to work on hardware. Morrow had dropped out of high school, but returned to school in his late 20s, earning bachelor's and master's degrees, and entering the PhD program in mathematics at Berkeley. David Redell and I also joined the staff at this time. Redell was in the Computer Science Ph.D. program and I had just completed my B.S. in Engineering Mathematics; we had worked together on the recently-terminated CAL Timesharing System at Berkeley's Computer Center,[McRe2023]

Hardware

Zaks' investigation used a Digital Scientific META4 Series 16 processor.[DSC70a, DSC71] This processor was originally designed to emulate an IBM 1130, but the read-only control store could be reprogrammed.[DSC1970b] META4s were also being used on campus in Professor Herbert Baskin's PRIME project,[BaBoRo1972] which Grant and Greenberg were familiar with.

Given the limited size of the control store, it was decided to use two META4s sharing a single main core memory. One processor would be dedicated to APL while the other processor executed a general-purpose instruction set as well as controllers for I/O devices. The general-purpose proceessor would run a timesharing system for program development, supervising the APL processor, etc. (Grant and Greenberg had sketched how a suitable microprocessor could be used to implement a CPU and I/O devices in a 1971 paper.[GraGre1971]) Perhaps to reassure Balderston and Hoggatt, the system programming language for the second machine was named SIMPLE. In addition to the two processors and shared memory, interfaces for serial lines [Mo1972], disks [Gre1972b], and tape drives were built. Computer Science Professor Martin Graham was on the Laboratory Advisory Committee, and consulted on a few electrical problems such as ground loops.[Gra2024]

CRMS PDP-5/PDP-8 circa 1972
CRMS META4 system circa 1973. Photo by Paul McJones.

Microcode

The original plan was to use the APL microcode from Zaks' investigation. My initial assignment was to get it running, but I had problems understanding the design from its source code and limited documentation. I proposed to do a new design based on static rather than dynamic name localization, which would allow parsing at compile time rather than runtime. There would be a virtual machine with a set of instructions for a subset of a dialect of APL. There were a few other changes from standard APL:

My plan was approved, and I started to design. There was a preliminary machine specification by July [Mc1972b]; the microcode was complete, documented, and tested by February 1973.[Mc1973a, Mc1973b, Mc1973c] For the floating-point arithmetic, Redell introduced me to Professor William Kahan, already an authority on computer arithmetic.[Ha2005] Given that the projected users would not be numerical analysts, his recommendation was to implement decimal floating-point. I was concerned that this would occupy too much control store, so instead implemented 32-bit binary floating-point. I incorporated correct rounding using a “sticky bit” based on Kahan's lectures.[Mc1972a]

Since the SIMPLE machine wasn't running yet, cross-development was done on an SDS 940 computer running the Berkeley Timesharing System.[LaLiPi1966] There was an assembler for the META4 microcode, and also a simulator with debugging features (e.g., single-stepping and examining registers). We may have started out using the original Project Genie[WiCo2023] SDS 940 in Cory Hall, but we soon switched to the the machine belonging to Resource One, which was part of Project One, an intentional community in San Francisco.[WiCo2024]

I left the project after delivering the APL microcode, but I learned that when the microcode was installed in the hardware read-only memory (which involved manually peeling little foil squares from printed circuit boards), it worked the first time. See Appendix 3 for four changes that were made later.

In source code such as [Xx1974a] and [Xx1974b], the two machines were usually referred to as the AIPU and SIPU (IPU = Instruction Processing Unit). Grant designed and implemented the SIPU.

SIPU operating system

In early discussions, it was decided to build a message-based system, with support in the microcode for basic process scheduling and message sending. Rather than switching between user and supervisor mode, there would be a kernel process with extra privileges that would handle system activities that could not be handled in microcode. I/O devices would appear to software as regular processes, so there would not be an interrupt mechanism. An early working document by Redell described messages as being sent to a (process, port) pair and described fairly complicated mechanisms to be implemented in microcode.[Re1972a] A later working document described a much simpler mechanism for the microcode, but noted that it was sufficient to enable a trusted "kernel" process to implement flexible message channels.[ReMc1972] The microcode actually implemented included a basic process scheduler and a test-and-set instruction.[Gra2024]

APL processes communicated by sending messages to mailboxes, and multiple processes could queue up to wait for messages on a single mailbox.[GeeEtAl1974]). APL processes had no microcode support; multiplexing of the APL processor was performed by APL Runtime Services running on the SIPU, which could perform start and stop commands and access data structures in the shared memory.

APL Runtime Services

The document "Writing Behavioral Experiments in CRMS APL: Programmer's Manual (Preliminary Version)"[GeeEtAl974] explained how an experiment program was organized and described the application programming interfaces. An experiment consisted of a set of cooperating processes: isolated instances of running programs. Each process was started by calling a function from the experiment program; there were no shared global or local variables. Each subject process had an attached terminal. A pair of mailboxes connected the experimenter's process with each subject process. A mailbox allowed one-way transmission of a sequence of APL objects (scalars, vectors, or matrices) between two endpoints. The endpoints could be processes, files, and timers. An experiment could include one or more robot processes. A robot process substituted for a terminal, and thus interacted with the corresponding subject process. The code to implement these facilities included the APL Runtime Supervisor [Xx1974b], which was written in SIMPLE, and also a set of library functions (as described in [GeeEtAl974]) written in APL.

Wiley Greiner wrote math functions for the APL library.[Grei2024] Sheldon Linker wrote runtime library routines to achieve "full APL" based on the subset directly executed by the APL processor. He also worked on the graphics package, assisted in writing experiment programs, and helped run experiments.[Li2024]

Language Services

A series of documents showed the evolution of the design for what we now call an Integrated Development Environment (IDE): it would combine editing, compiling, and debugging within a single command-line interface:

Appendix 4 lists the commands for the APL and SIMPLE language services.

No source code or documentation for the APL and SIMPLE compilers has been found. A brief document lists the APL syntax.[McJones1972d]

Development progress

As mentioned previously, design and implementation began in 1972. In a departmental meeting on November 22 of that year, Balderston discussed the new system, saying that sometime in 1973 APL was expected to be running.[Ca1972] He also noted the new system would have the capacity to be used for general time-sharing (e.g., document preparation and general interactive use of APL) in addition to the behavioral experimentation which had been going on for almost a decade.

In July 1973, the CRMS annual report noted:[CRMS1973]

"During the academic year 1972-73, under the direction of Dr. Mark Greenberg and Dr. Charles Grant, the systems group completed the basic design for the APL-language-based Laboratory computer system. Most of the hardware-development work was completed, including a core-memory system, a disk-storage system, and a terminal-input/ output system. There was substantial software program development for the Laboratory design-system implementation language and the APL programming system. APL microcode, as operational, was implemented and tested. At year's end, there was a single-user operating system which supported the execution of programs."

In January 1974, [GraGreRed1974] reported:

"The current system includes 64k 32-bit words of core memory, two 12-million-word disk units, one tape drive, and provisions for the connection of up to 64 terminals. ... As of January 1973, the hardware for the system was operational. Now, January 1974, the APL subsystem is operational and has been used to develop a prototype experiment. The simulated APL primitive functions, including mathematical routines, are mostly completed. The current version of the operating system supports only one experiment at a time. Preliminary versions of the editing and debugging facilities are available. Work in progress includes integration and polishing of an easy-to-use interactive APL subsystem, and design and implementation of a multi-user time-shared operating system."

In July 1974, the CRMS annual report noted:[CRMS1974]

"During the academic year 1973-74, under the direction of Dr. Charles Grant and Dr. Mark Greenberg, the system group continued the hardware and software development of the new Laboratory system. The hardware development included the purchase and integration into the system of eighteen new hard-copy terminals [Diablo 630 "daisy wheel" devices], a magnetic-tape drive, and modem connections for remote use. Plans have been developed for a remote connection to the campus Computer Center's remote-job-entry system and [for] analog-to-digital-conversion interfaces. The selection process for purchase of graphic-display terminals is in advanced stage. Last, the existing hardware has continued to be improved and refined. The major software development was the implementation of a complete APL programming system, including a text editor, a program translator, and an execution and debugging facility. In particular, the APL system includes capability for specification of multiple-process and multiple-terminal experiments. Implementation of the system's programming language system was largely completed. An interim multi-user operating system was developed and successfully used. A major portion of the final time-shared operating system has been designed, coded, and debugged. Since the spring of 1974, the APL-language system has been in use by members of the Laboratory community for development of running of experiments."

That report also mentioned that oligopoly and macroeconomic game programs had been converted from  the PDP-5/8 system to the new system in order both to check out the new system and also to support a development effort in classroom use. At this point, the PDP-5/8 system was largely phased out.

In July 1975, the CRMS Annual Report noted:[CRMS1975]

"The Management and Behavioral Sciences Laboratory's new computer-controlled experimentation system continued under development and became available for a number of research uses during 1974-75.

...

Under the direction of Dr. Charles Grant and Dr. Mark Greenberg, the Phase II operating system became operational in the Laboratory, providing multi-programming capability in APL. Numerous experiments and exercises were run in the Laboratory in tandem with the systems development. This was difficult because of frequent system changes, but the experience gained from the year's usage was crucial to the research progress of the faculty members and advanced graduate students and was, at the same time, important for the process of testing and strengthening of the system's software.

The Laboratory's editing system, RUNOFF, was successfully used for program documentation and also for preparation of a number of technical reports under automatic control, fulfilling one of the objectives of our original proposal and providing a very useful facility for a variety of uses.

Equipment acquisition under the grant was completed with the decisions to purchase a RAMTEK visual display terminal controller, twelve monitor units, light pens, and keyboards. With the building of necessary interfaces for these and the incorporation of system software for them into the operating system in summer and fall of 1975, the full range of capabilities of the Laboratory, as planned in the development grant, will be completed."

The final report of the 1971–1976 Laboratory Development grant described the system as:[BaEtAl1977, Appendix C]

“[a] time-sharing system based on two microprogrammable META4 computers, with a shared core memory of 120,000 32-bit words, two disks having storage capacity totaling 24 million words, a magnetic-tape unit for backup and data preparation, a link to the Berkeley Campus CDC 6400 computer; modems for linking users and other systems outside the laboratory; eighteen hard-copy terminals, and a CRT display system consisting of twelve CRT screens with keyboard and light-pen and RAMTEK support unit.”

The report noted: "All original major objectives for the computing system have been accomplished."

In 1977 a new research proposal was submitted to NSF by Balderston and Hoggatt.[BaEtAl1977] In addition to carrying out a series of experiments, there were plans to make some extensions to the interprocess communication mechanisms (including allowing remote access by experimental subjects) and to add some graphics display equipment for monitoring and control. It appears that this proposal was not funded.[Gra2024]

Usage

In addition to the game-style experimental research that had been the original motivation for the Laboratory and its computer systems, usage of the APL was extended to simulations, classroom teaching, and general-purpose time-sharing. For example, Hoggatt's activities for the summer of 1974 included:[CRMS1975]

"Development of working groups in the Schools of Business Administration which will utilize the META system in an experimental program to support classes in microeconomics via extensions to oligopoly games, in macroeconomics via extensions to EQUILIBRIA and developing exercises for use in teaching macroeconomics, in quantitative methods by preparing materials for a year-long sequence in quantitative methods for graduate and undergraduate instruction."

Experimental work went on as well. Berkeley Professor Mark Garman built an elaborate simulation of automated securities exchange in order to investigate the impact of automation on trading practices, such as the role of the specialist.[Ga1975] This simulation, constructed between 1971 and 1974 with the help of three research assistants, defined roles for customers, brokers, and specialists. The initial version, called TF/1 (for Trading Floor), ran on the original PDP-5/8 system. In 1974 it was rewritten for the APL system and renamed TF/2. The more  powerful computer system allowed various improvements. In particular, the companies being traded could now play an active role: under appropriate circumstances, they could “enter the auctions to float new equity issues at the going market prices.” The 1972-73 CRMS Annual Report noted: "Believing that fully automated securities will become a reality within the next two decades, Professor Garman thinks that this is the time for research into the structural issues surrounding automated exchanges."[CRMS1973]

Recruiting subjects, May 1974
Stock Exchange recruiting poster, May 1974. Courtesy Mark Garman.

In a 1977 paper "On the Uses of Computers for Experimental Control and Data Acquisition", Hoggatt provided additional anecdotes of usage.[Ho1977]

In the 1977 NSF research proposal, Balderston described additional work done on the CRMS APL system:[BaEtAl1977]

The system was shut down by the late 1970s. Hoggatt lamented:[ArEtAl1992]

"After spending large sums of NSF money to capitalize this facility, the University of California, Berkeley scrapped it for want of funds to pay for maintenance."

Impact

Economists began incorporating experiments with human subjects into their research by the late 1940s. The approach grew in popularity through the 1950s. For example, Hoggatt described a paper-and-pencil version of an oligopoly experiment in [Ho1959]. Hoggatt's experimental work and his familiarity with computers led him much further. As Andrej Svorenčík observed:[Sv2023]

The first computerized laboratory for controlled experimentation in economics was Austin Hoggatt’s Management Science Laboratory at Berkeley in the 1960s. From the beginning, it was trailblazing in its use of computer technology to improve and exercise experimental control at a time when just a few economists worldwide were conducting pen- and-paper-style economics experiments. Although Hoggatt’s overreliance on technology failed to create a lasting community, it made a lasting impression on other early experimental economists and informed their choices on how to organize their laboratories both as a physical space but also as a communal place.

Later laboratories founded in the 1980s by Charles Plott at Caltech, and by future Nobel Prize winners Vernon Smith at the University of Arizona and Reinhard Selten at Bonn (both of whom were familiar with Hoggatt's lab), each managed to establish a community of researchers and others who could sustain a practice of computer-based experimental economics. Nowadays a well-known software package called the Zurich Toolbox for Readymade Economic Experiments (z-Tree) makes it fairly straightforward to develop and carry out economic experiments on a network of Windows laptops.[zT2024]

Afterword

Morrow went on to found Thinker Toys and Morrow Designs, and was one of the people who standardized the S-100 bus used in many early microcomputers. Grant and Greenberg founded North Star Computers. Zaks founded Sybex, a publisher of books on computer programming. Moore received his PhD in business and spent the rest of his career at Stanford. Redell completed his PhD in computer science and became an assistant professor at MIT. In two years he returned to the Bay Area, working successively at Xerox, DEC Systems Research Center, AgileTV, and Google. I worked at a small software house named Virtual Memory Systems, then IBM San Jose Research, Xerox, Tandem, DEC Systems Research Center, E.piphany, AgileTV, and Adobe.

Reflections

During the years of development from 1972 through 1975 or 1976, Moore's Law—the doubling of the number of transistors in integrated circuits every two years—was just beginning to have an effect. But there was already a sea change: the small integrated circuits and core memory used in the META4 hardware were being replaced by large integrated circuits: single-chip microprocessors and dynamic RAM chips—the very components that Morrow, Grant, and Greenberg would be using in their subsequent companies. But the CRMS software wasn't written in a portable fashion, so the system quickly became obsolete. In contrast, at about the same time the UNIX operating system was being rewritten in the programming language C, allowing it to be ported to an amazing variety of computers, persisting to the present day.

On a personal level, Balderston and Hoggatt played complementary roles, with Hoggatt focussing on detailed requirements and technical approaches and Balderston securing institutional support. Both believed strongly in the Laboratory and incorporated it into their personal research agendas.

References

[ArEtAl1992]
Michel Araten, et al. The Winter Simulation Conference: Perspectives of the Founding Fathers. In Proceedings of the 24th conference on Winter simulation (WSC '92). Association for Computing Machinery, pages 37–62. ACM Digital Library
[BaHo1962]
Frederick E. Balderston and Austin Curwood Hoggatt. Simulation of Market Processes. Berkeley: Institute of Business and Economic Research, University of California, 1962. babel.hathitrust.org
[Ba1972]
Frederick Balderston. Press Release. bus ad bulletin, Schools of Business Adminiatration.Volume 7, Number 4, 26 January 1972. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 2.
[BaBoRol1972]
Herbert B. Baskin, Barry R. Borgerson, and Roger Roberts. PRIME: a modular architecture for terminal-oriented systems. In Proceedings of the May 16-18, 1972, Spring Joint Computer Conference (AFIPS '72 (Spring)). Association for Computing Machinery, New York, NY, USA, pages 431–437. ACM Digital Library
[Ca1972]
James M. Carman, presiding. Departmental Luncheon. 22 November 1972. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 2.
[CRMS1972]
Center for Research in Management Science. Annual Report, 1971-72. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 8.
[CRMS1973]
Center for Research in Management Science. Annual Report, 1972-73. Records of the School of Business Administration, University of California Berkeley, CU-29, Carton 8.
[CRMS1974]
Center for Research in Management Science. Annual Report, 1973-74. Bancroft Library, University Archives (308m.B814.ar).
[CRMS1975]
Center for Research in Management Science. Annual Report, 1974-75. Bancroft Library, University Archives (308m.B814.ar).
[DSC1970a]
Digital Scientific Corporation. The META4 Series 16 Computer System: Preliminary System Manual. Publication No. 7006MO, June 1970. PDF at bitsavers.org
[DSC1970b]
Digital Scientific Corporation. The META4 Series 16 Computer System Read-Only Memory (ROM) Reference Manual. Publication No. 7024MO, March 1970. PDF at bitsavers.org
[DSC1971]
Digital Scientific Corporation. The META4 Series 16 Computer System: System Manual. Publication No. 7032MO, May 1971. Supersedes Publication No. 7006MO. PDF at bitsavers.org
[FaIv1968]
A. D. Falkoff and K. E. Iverson. APL\360 User's Manual. IBM Corporation, August 1968. bitsavers.org
[Fr2009]
Ute Frey, In Memoriam: Austin Hoggatt 1929 – 2009. senate.universityofcalifornia.edu
[Gi1976]
Shlomo Gill. Experiments in the economic theory of teams. Ph.D. dissertation, University of California, Berkeley, 1976.
[GraGre1971]
Charles A. Grant and Mark L. Greenberg. The Uses of a Microprocessor in an Interactive Computing System. 4th Hawaii International Conference on System Sciences, January 12-14, 1971. 19710100-cag_mlg-uses_of_a_microprocessor
[GraGreRe1974]
Charles A. Grant, Mark L. Greenberg, and David D. Redell. A computer system providing microcoded APL.
[Gra2024]
Charles A. Grant. Personal communication, 18 September and 5 October 2024.
[Grei2024]
Wiley Greiner. Personal communication, 7 October 2024.
[Ha2005]
Thomas Haigh. Oral history interview of William Kahan, 5 - 8 August, 2005, Berkeley, California. Society for Industrial and Applied Mathematics, Philadelphia, PA. history.siam.org
[Ha2024]
James L. Harp. Personal communication, 12 June 2024.
[Ho1957]
Austin Curwood Hoggatt. Simulation of the Firm. PhD thesis, University of Minnesota, 1957. primo.lib.umn.edu
[Ho1959]
Austin C . Hoggatt. An Experimental Business Game. Behavioral Science, Volume 4, Number 3, July 1959, pages 199-203. Wiley Online Library / Academia.edu
[HoEsWh1969]
Austin C. Hoggatt, Joseph Esherick and John T. Wheeler. A Laboratory to Facilitate Computer-Controlled Behavioral Experiments. Administrative Science Quarterly, Volume 14, Number 2, June 1969, pages 202–207. JSTOR
[Ho1969]
A. C. Hoggatt. Response of Paid Student Subjects to Differential Behaviour of Robots in Bifurcated Duopoly Games. The Review of Economic Studies, Volume 36, Number 4, October 1969, pages 417-432. https://doi.org/10.2307/2296468
[Ho1973a]
Austin Curwood Hoggatt, editor. Proceedings of the 1973 Winter Simulation Conference. Sponsored by ACM/AIEE/SHARE/SCi/TIMS, January 1973. files.eric.ed.gov / ACM Digital Library
[Ho1973b]
Austin Curwood Hogatt, chairman. Night in a Berkeley Laboratory. Announcement of a special evening session in Hoggatt's Management Science Laboratory. In [Ho1973a], page 715. ACM Digital Library (open access)
[HoGrMo1973]
Austin Hoggatt, Mark Greenberg, and Jeffrey Moore. A Micro-Programmed APL Language Laboratory Control System. (Abstract only) Included in [Ho1973b]. ACM Digital Library (open access)
[Ho1977]
Austin Curwood Hoggatt. On the Uses of Computers for Experimental Control and Data Acquisition. American Behavioral Scientist , Volume 20, Issue 3, January/February 1977, pages 347-365. Sage Journals
[LaLiPi1966]
B. W. Lampson, W. W. Lichtenberger and M. W. Pirtle. A user machine in a time-sharing system. in Proceedings of the IEEE, Volume 54, Number 12, pages 1766–1774, Deccember 1966. IEEE Xplore / bwlampson.site
[Le1978]
Hayne Leland. Optimal Risk Sharing and the Leasing of Natural Resources, with Application to Oil and Gas Leasing on the OCS, Quarterly Journal of Economics, Volume 92, Number 3, August 1978, pages 413-37. Oxford Academic
[Li2024]
Sheldon Linker. Personal communication, 3 June and 5 October 2024.
[Ma2003]
John Markoff. George Morrow, a Personal Computer Visionary, Dies at 69. The New York Times, 9 May 2003, page A29. nytimes.com
[McRe2023]
Paul McJones and David Redell. History of the CAL Timesharing System. IEEE Annals of the History of Computing, Volume 45, Issue 3, July-September 2023, pages 80-91. IEEE Xplore
[Mo1971]
Jeffrey Moore. ECL/3, The Environmental Control Language of the Management and Behavioral Sciences Laboratory Time-Sharing System. Research Report LR-15, Center for Research in Management Science, University of California, 1971.
[MyMi2007]
John G. Myers and Raymond E. Miles. In Memoriam: Frederick E. Balderston 1923 – 2007. senate.universityofcalifornia.edu
[Sa2016]
Kay Savetz. Rodnay Zaks, Founder of Sybex Books — interview. YouTube, audio recording, 14 October 2016. YouTube.com
[Sv2015]
Andrej Svorenčík. The Experimental Turn in Economics: A History of Experimental Economics (January 30, 2015). University of Utrecht: Utrecht School of Economics Dissertation Series #29. ssrn.com
[Sv2023]
Andrej Svorenčík. The Role of Computers in the Emergence of Experimental Economics Laboratories: Material Culture and Moral Economy. Œconomia History, Methodology, Philosophy 13-3, 2023. journals.openeditions.org
[WiCo2023]
Wikipedia Contributors. Project Genie. Wikipedia, The Free Encyclopedia, last revised 27 March 2023 19:13 UTC. en.wikipedia.org
[WiCo2024]
Wikipedia Contributors. Project One (San Francisco). Wikipedia, The Free Encyclopedia, last revised 21 February 2024 20:57 UTC. en.wikipedia.org
[ZaStMo1971]
Rodnay Zaks, David Steingart, and Jeffrey Moore. A firmware APL time-sharing system. Proceedings of the May 18-20, 1971, Spring Joint Computer Conference (AFIPS '71 (Spring)). Association for Computing Machinery, pages 179–190. ACM Digital Library
[Za1972]
Rodnay Zaks. A Microprogrammed APL Implementation. Ph.D. thesis, University of California, Berkeley, June 1972. Published under the same title by Sybex, 1978.
[zT2024]
Zurich Toolbox for Readymade Economic Experiments. Universität Zürich. ztree.uzh.ch

Acknowledgements

The original CRMS APL system was done as part of a Systems Development effort under National Science Foundation Grant GS-32138. Additional work was done under Grant SOC75 -08177.

Dave Redell shared recollections and supplied copies of a number of documents and the two SIMPLE source code listings. Chuck Grant assisted with research at the Bancroft Library. Sheldon Linker and Wiley Greiner shared recollections. In addition to his publications, Andrej Svorenčík shared photographs of [BaEtAl1977].

Appendix 1: Archived documents and source listings

[I plan to offer the original items to the Computer History Museum.]

Hardware

[Mo1972]
George Morrow. Serial Line Input/Output System. Systems Group, Center for Research in Management Science, 24 July 1972. 19720724-gcm-serial_line_io
[Gre1972b]
Mark L. Greenberg. Disk Interface and Controller Reference Manual. Technical Document, Systems Group, Center for Research in Management Science, 12 July 1972. 19720712-mlg-disk_io

Microcode

Documents

[Gra197x]
Charles Grant? SIMPLE Instruction Processing Unit Reference Manual. Cited by [19730726-mlg-simple_lang_ref] but no known copy.
[Mc1972a]
Paul McJones. Meta APL Floating-Point Arithmetic. 13 June 1972. Design notes. 19720613-prm-meta_apl_floating_point_arith
[Mc1972b]
Paul McJones. Preliminary Reference Manual for the CRMS System APL Processor. Technical Document, Systems Group, Center for Research in Management Science, 12 July 1972. 19720712-prm-prelim_crms_apl_proc_ref
[Mc1973c]
Paul McJones. CRMS APL Processor Reference Manual. Technical Document, Systems Group, Center for Research in Management Science, 2 February 1973. 19730202-prm-crms_apl_processor_ref

Source code

[Mc1973a]
Paul McJones. APL\META4 Microcode. Digital Scientifc META 4 Series 16 assembly language. 28 January 1973. See also Appendix 3. 19730128-prm-crms_apl_proc_microcode
[Mc1973b]
Paul McJones. Test programs for CRMS APL Processor. NARP assembler for SDS-940. 18 December 1972; revised 8 January 1973. MACAPL: MACRO package for META-APL assemblies, facilitating creating programs to be executed by the CRMS APL Processor; TPFACT: Recursive factorial function; TPIDX: Exercise various index-related operations; TPREF: Exercise memory references; TPARITH: Exercise arithmetic. 19730128-prm-crms_apl_proc_tests

Software

Documents

[Re1972a]
David Redell. Interprocess Communication. Working Document, 20 July 1972. 19720720-ddr-interprocess_communication
[Re1972b]
David Redell. CRMS APL/SIMPLE Integrated Language Processing System: Design Considerations. 22 July 1972. 19720722-ddr-integrated_lang_sys
[Gre1973]
Mark Greenberg. SIMPLE Language Specification Reference Manual. Technical Document R1, Systems Groups, Center for Research in Management Science. 26 July 1973; revised 5 September 1973. 19730726-mlg-simple_lang_ref
[Xx197xa]
?. SIMPLE Interactive Language System Reference Manual. Cited by [19730726-mlg-simple_lang_ref] but no known copy. However see Language Services.
[Mc1972d]
Paul McJones. CRMS APL Syntax. 30 October 1972. 19721030-prm-crms-apl-syntax
[ReMc1972]
David Redell and Paul McJones. CRMS Process Synchronization Mechanism. 11 November 1972. 19721111-ddr_prm-crms_process_sync
[Re1972c]
David Redell. Language System: Interim Command Language. 5 December 1972. 19721205-ddr-lang_sys_interim_cmd_lang
[Re1973a]
David Redell. Preliminary Language System User Manual. 2 February 1973. 19730202-ddr-lang_sys_prelim_cmd_lang
[Re1973c]
David Redell. External and internal character codes. 13 September 1973. (Exernal character codes were ASCII; internal codes were "rotated ASCII": (code-32) mod 128.) 19730913-ddr-char_codes
[GeeEtAl1974]
Paul Gee, Wiley Greiner, Sheldon Linker, and David Redell. Writing Behavioral Experiments in CRMS APL: Programmer's Manual (Preliminary Version). Technical Document, Systems Group, Technical Document Center for Research in Management Science, University of California, Berkeley. July 15, 1974. 19740715-gee_et_al-writing_behavioral_experiments

Source code

[Xx1974a]
?. SIMPLE Interactive Language System source. SIMPLE source code. Undated, circa 1974. 1974000-xxx-simple_language_system_source
[Xx1974b]
?. APL Runtime Supervisor source. SIMPLE source code. Undated, circa 1974. 19740000-xxx-apl_runtime_supervisor_source
[Re1973b]
Dave Redell. Inverse Bowling Problem. SIMPLE source code for problem posed by Perlis and solved by Dijkstra at 1973 NATO Summer School at Marktoberdorf. 11 September 1973. 19730911-ddr-inverse_bowling_simple

Other

[BaEtAl1977]
Frederick E. Balderston, Lawrence L. Vance, and August Manza. "Control Organizations" and Their Interactions vith Operating Entities: An Experimental Investigation. Research Proposal submitted to the National Science Foundation, 24 March 1977. Box 48, Martin Shubik Papers, David M. Rubenstein Rare Book & Manuscript Library, Duke University. 19770324-feb-nsf_research_proposal.pdf
[Ga1975]
Mark B. Garman. A Description of an Experimental Securities Exchange. Working Paper CP-372, Center for Research in Management Science, University of California, Berkeley. March 1975; revised October 1975. 19751001-mbg-experimental_securities_exchange

Appendix 2: Additional people who worked on the project

These are in addition to people mentioned previously.

Appendix 3: Errors in AIPU microcode

Over the life of the system, four changes (noted in pencil on the listing) were made to the AIPU microcode, which I'd debugged on the simulator before leaving the project in January 1973:

“Bug 1” (page 76)
If the APL processor was started up with an incorrectly formatted heap (a free list that loops back to its middle rather than to the starting point), it could loop forever, requiring a power reset to clear it. To deal with this, a counter was added to the code that searched the free storage list, so it would stop after 2^16 iterations.
“Bug 2” (page 14)
The wrong error number was generated for a particular error condition detected when the processor started up on a new APL process.
“Bug 3” (page 31)
The ACOPY function failed to generate a trap if given the address of a variable with an “undefined” value.
“Bug 4” (page 24)
When the reference count of a block of memory is decremented and becomes zero, it shouldn’t actually be written back to memory as a zero, since the FREE routine might trap for some reason. (The AIPU’s model is that if a trap occurs, the state must remain as it was at the beginning of the current instruction, to make it easy to restart after the trap is handled.)

Appendix 4: Language system commands

The following two tables were extracted from the source code for the SIMPLE Interactive Language System and the APL Runtime Supervisor, respectively.


SIMPLE Language System commands (from [Xx1974a])
NP NEW PROGRAM
SP SELECT PROGRAM
CP COMPILE PROGRAM
DP DELETE PROGRAM
ET ENTER TEXT
MT MODIFY SINGLE LINE IN TEXT BUFFER
TT TYPE CONTENTS OF TEXT BUFFER
AF APPEND FUNCTION FROM TEXT BUFFER
AT APPEND TEXT
IT INSERT TEXT
DT DELETE TEXT
RT REPLACE TEXT
LT LOAD TEXT
MV MOVE POINTER
RF READ FUNCTIONS
ST DUMP SYMBOL-TABLE ENTRY
SR SELECT RUNTIME LIBRARY
RS RECOVER STATE
PC PRINT CODE [and line-table entry]
SB SET BREAKPOINT
CB CLEAR BREAKPOINT
PD PRINT DATA
SD STORE DATA
DS DISPLAY STACK
DO DO FUNCTION [start debuggee process]
GO GO COMMAND [start debuggee process]
PV PRINT VARIABLE
IN IN [set function activation context]
WH WHERE [print current location?]
PS PRINT SEGMENT
EX EXIT FROM LANGUAGE SYSTEM
APL Language System commands (from [Xx1974b])
SP SELECT PROGRAM
SR SELECT RUNTIME
SB SET BREAKPOINT
CB CLEAR BREAKPOINT
DO DO FUNCTION [start debuggee process]
GO GO COMMAND [start debuggee process]
PC PRINT CODE [and line-table entry]
ST DUMP SYMBOL-TABLE ENTRY
EX EXIT FROM LANGUAGE SYSTEM
PV PRINT VARIABLE
DB DEBUG SPECIFIED PROCESS
SZ SET SIZES [array block storage, stack]