A selection from APL Quotations and Anecdotes of items involving Roger Moore.


Talk about starting at the top. Working for and with Ken Iverson was my first job out of college. Roger [Moore] and I were introduced to Iverson Notation at the same SRI chalk talk. I didn’t do anything with it at the time, but a while later an IBM maverick technical guy and rhyming philosopher, Michael Montalbano, started hanging around Stanford’s brand-new computer science department. He was writing linear programming algorithms in the Notation, then hand-translating them into FORTRAN for his business-school students. He gave some informal lectures on the Notation; Phil Abrams and I attended enthusiastically.

IBM announced the IBM System/360 on April 7, 1964. Shortly after, Mike handed me a new IBM Systems Journal that had articles by the System/360 architects — and holy cow, one by Ken Iverson, Adin Falkoff, and Ed Sussenguth that precisely defined the whole 360 line in 18 pages of Notation, plus commentary: “A Formal Description of System/360.”

Phil and I devoured it. Once past the steepest part of the learning curve, we gave a series of seminars to other students. I found a few typos, which I mailed to Ken.

Then Ken came to visit, touring several institutions to talk about the Formal Description and his notation. I listened, argued once or twice, and handed over my latest errata. Ken thanked me, and said, “Larry, these are pretty minor. Why don’t you find something seriously wrong?”

Nothing could have fired me up like that challenge. I scoured the article. Late at night I sat in bed, with the fold-out pages resting over my recent bride’s nose (a nuisance) and eyes (appreciated). I got lucky. The Memory Access program had a race condition between requests from the Processor and Channel programs.

Next day at lunch I showed Ken what I’d found. Mid-afternoon Mike came by my office. “Larry, Ken’s taking the Lord’s name in vain. He came back from lunch saying ‘That sonofabitch Breed! Why didn’t we talk to him before we published this god-damned thing?’ ” And I knew that I had to go to work for him.

— Larry Breed, comment in It’s APL’s Birthday, or is it?, 2012-02-21


In a time-sharing system, the key to good performance lies in the way the external storage devices are used. Here the contrast between the TSS and APL systems was most remarkable. On TSS, one could look through the glass windows of the disk devices and watch the motion of the arms. These jerked rapidly back and forth, swooping over wide areas of the disk faces, with the appearance of someone in the grip of St. Vitus’ dance. On the APL disks, one arm would be moving quite regularly, like the escapement mechanism of a clock, as it went from one track to the adjacent track, then to the next track, and so on, over fifty or so tracks in several seconds, and then retracted to the beginning and started the cycle over again. Sometimes the total excursion was more, sometimes less; it was so regular that an experienced person like Roger Moore, who was principally responsible for the APL supervisor, could tell how many users were signed on by watching it.

— Eugene McDonnell, The Socio-Technical Beginnings of APL, 1979


I.P. Sharp Associates was founded by the FP6000 programming team and one other in 1964. Directors: Ian Sharp, Roger Moore, Ted McDorman, and Don Smith; three others: David Oldacre, Brian Daly, and James McSherry. The preceding seven joined in December 1964 at various dates. In spring 1965, David Butler, an engineer from the non-FP6000 part of Electronics Division, joined. Butler was more interested in military business than any other employee.

Ian, Brian, and Jim McS painted the new office at DeMarco Building at Keele & Lawrence.

— Roger Moore


Roger Moore was returning from the US to Canada. The customs officer at the border questioned him about some boxes of punch cards in his possession. Roger avoided further complications by explaining to the officer that the punch cards were used rather than new.

— Ian Sharp


The ACM Grace Murray Hopper Award is given to the outstanding young computer professional of the year, selected on the basis of a single recent major technical or service contribution. The candidate must have been 35 years of age or less at the time the qualifying contribution was made.

The 1973 Grace Murray Hopper Award goes to Larry Breed, Richard Lathwell, and Roger Moore, for their work in the design and implementation of APL\360, setting new standards in simplicity, efficiency, reliability and response time for interactive systems.

— ACM, Grace Murray Hopper Award


In January of 1973, when I was 27 years old, I was a graduate student in physics. A few months earlier, I had taken some time off from the University of Oregon in Eugene and had moved to New York City. I spent the fall semester there taking physics courses at CCNY while supporting myself by teaching “Physics for Nurses” at Hunter College on the Upper East Side of Manhattan. However, by the end of the fall term, I decided I should return to Eugene and complete my Ph.D. there. The previous summer, I’d driven cross-country in my silver-colored 1956 Mercury Monterey, which I affectionately called “Q”, short for “quicksilver” (an ancient word meaning “mercury”) — shown in two attached photos, one taken way back in 1971, and the other in 2006 (yes, I still own Q today!) So, back to our tale … I was now taking Q (or rather, Q was now taking me) back the other way — back across the amber waves of grain, the purple mountains’ majesty, across the fruited plain, from sea to shining sea.

Q and I tended to drive very late at night, and one night in the middle of darkest Iowa, at about 1 AM, there was a sudden extremely intense downpour, so I stopped at a truck stop to wait it out. Under the bright lights I had a coffee, and when the storm had somewhat abated, I went back out to Q and started off again. It was still raining, but not nearly as hard. Right as I was about to get back onto the freeway, I spied a rather pathetic totally drenched figure standing on the side of the road thumbing a ride, and he looked young and not in the least threatening, so I pulled on the reins of my steel steed and came to a halt, and told the sopping-wet fellow to hop in. He was probably in his late twenties, like me, and he had red hair, unlike me, and at that most wet juncture in his life, he was very relieved to get a ride.

So we got to talking, and after a while I mentioned that I had grown up on the Stanford campus. My traveling companion said that his brother had been at Stanford some years earlier, so naturally I asked what his brother had studied there, and he said that he was a computer person. Back in those days, this was an incredible rarity. In fact, Stanford had only one single computer when I, as a high-school kid, had started programming it, in 1960. So I said, “And what was his name?” And my still-shivering seatmate replied, “Roger Moore”.

Well, what do you know — Roger Moore! I remembered good old red-haired Roger extremely vividly from my undergraduate days at Stanford, in the early sixties. Back then, there was a small coterie of recursion-crazed math nuts — today they would be called “geeks” or “nerds”, but back then those words did not exist — who hung around all day and all night in the basement of Encina Hall, where the legendary Burroughs 220 was located, and who talked endlessly about the subtleties and beauties of ALGOL (a brand-new computer language of the time, and truly ALGOL was a wonderful and important breakthrough in computer science). This delightful, nerdy band included my friends Larry Breed, Larry Tesler, Charlie Brenner, Roger Moore, Bill Strachan, and myself (and probably a couple of others, but, like Q, my memory is a wee bit rusty after all these decades).

So of all things, in the middle of my life in the middle of a storm in the middle of the night in the middle of nowhere in the middle of the North American continent, Q and I had picked up the brother of someone I had hung out with some ten years earlier. Small world indeed.

— Douglas Hofstadter, A Q Tale, 2009


I was allowed to use the Stanford computer (IBM 650) when I was in high school. That was thanks to Prof. George Forsythe (mathematician, founder of the computer science department at Stanford, founding editor of the Journal of the ACM) who introduced some of us to computers at the weekly Tuesday Joe Berg Science Seminar series at Palo Alto High School. Probably in 1961, the summer before I matriculated as a regular student, I met Roger Moore. By that time the computation center was in the basement of Encina Hall and the computer had been upgraded to a Burroughs 220 whose ALGOL-inspired BALGOL compiler was our main programming tool. We regulars who hung out there knew the compiler’s quirks inside and out even to the extent of some putatively illegal syntax constructions that would slip through the parser and potentially do something useful. Roger reached into my punched card box on the shelf of the make-ready room and took a look at my handiwork. What he saw must have been obscure programming on my part no doubt intended to save a few bytes or milliseconds. Good natured but a little snidely he summarized his feeling: “Ah, very clever. Floating point divide and execute the remainder.”

— Charles Brenner


… Al Rose, a vice president of STSC, called on Roger Moore, a vice president of I.P. Sharp, to improve the speed of Boolean summation. Moore had reasons of his own for wanting to do this, so he agreed. His analysis of the problem was faily subtle, and he managed to gain more efficiency in more areas than the original problem called for, but we will concentrate here on the essentials of his solution of the basic problem.

The heart of the technique was exploitation of the Translate instruction, peculiar to the architecture of the IBM System/360 line of computers. The Translate instruction is able to replace as many as 256 eight-bit bytes of data in storage by the same number of other bytes. Each byte of the first argument is used to select a byte from the second argument, which then replaces the byte of the first argument. Considering the elements of the two arguments as integers in the range 0-255, one could define the Translate instruction by the expression a←b[a] , where the length of a is 256 elements or less, and the length of b is at least ⌈/a . The reason Translate is in the System/360 set of instructions is to convert data from one transmission code to another, but that is not what Moore used it for. Instead, he put into b elements which gave the count of the number of bits in the corresponding elements of a . For example, if the entry in a were 01110110 (which, considered as a base-2 number is 118), entry 118 in b would be 00000101 , since there are five 1-bits in the element of a , and 00000101 , considered as a base-2 number, has the value 5.

With this translate table in hand, it was a relatively simple matter to take a Boolean array, translate the bytes of its rows to the corresponding bit count, and then sum the translated bytes. Suppose, for example, that a 32-element Boolean vector v is represented in the computer memory by the four bytes:

   11010110 00100011 01111101 00101101

These would be translated to the four bytes:

   00000101 00000011 00000110 00000100

which are the binary representations of the numbers 5, 3, 6, and 4, respectively. These four numbers could be summed by a Load and three Adds, to give the desired sum 18. Thus with one Translate, one Load, and three Adds it is possible to do what otherwise took 32 Translations, one Load, and 31 Adds. Actually Moore’s strategy was more sophisticated than this, so that he was able to handle ^/ , ∨/ , ≠/ , and =/ with the same code, and his code is considerably faster than even this analysis would indicate, but that isn’t part of the present story.

So successful was this technique that when IBM’s new high-performance VS APL system was announced in 1975, the Plus-Reduction on the I.P. Sharp and STSC systems was still twice as fast as that of VS APL. …

— Eugene McDonnell, Sum of the Bits, 1980-09

[Editor note: “Considerably faster than even this analysis would indicate” perhaps worked by exploiting the fact that the byte counts, taken four at a time as “full word integers”, can be summed four at a time (“in parallel”), up to ⌊255÷8 (=31) times without overflowing the individual counts. See the J Wiki essay Sum of a Bit Array for more details.]


(L to R) Dick Lathwell, Ken Iverson, Roger Moore, Adin Falkoff, Phil Abrams, and Larry Breed. (On the extreme left in the background: Jon McGrew.) Taken in the I.P. Sharp Associates hospitality suite during the 1978 APL Users Meeting in Toronto, Canada.

A slightly different version of this photo appeared on the front page of the I.P. Sharp Newsletter, 1978-11 to -12, volume 6, number 6. The caption on the photo had the following sentence: It is believed to be the first time all six “originators of APL” have been in the same place at the same time; it is probably the first time that all six have worn jackets and ties simultaneously and the first time Ken and Adin have been observed to smile simultaneously.


How I got my job at IPSA. It began with a conversation between me and a headhunter.

Me:  I want to work on compilers.
Me:I want to work my own hours.
Me:I don’t want to have to wear a suit.
Me:I don’t care what it pays.
HH:There is only one place in town like that.

I interviewed with Ian, who seemed satisfied, but he told me, “You’ll have to talk with Roger.” He made it sound as if Roger was some sort of demigod. Which was not far from the truth. I was led to an elfin, rumpled-looking character who was smoking a cigarette and staring and muttering at a listing. Roger Moore.

I introduced myself and said Ian had sent me over about the compiler job. Roger was more interested in the problem than in me, I think. I got frustrated sitting there, while he smoked and muttered and looked at the code, so I asked him to explain the problem to me, then pitched in. I don’t recall what we were looking at; it was probably the IPSCOBOL compiler code. After an hour or so, I said I had to leave to go on another interview, so I asked him where we stood on the job. “Oh, oh, yeah, I guess we can use you.”

Generating IPSCOBOL test cases was part of the job. The more interesting part was analyzing the compiler output for correctness. Both of those tasks screamed for automation, which led to my learning APL.

— Bob Bernecky


In 1975 or 1976, IPSA installed a faster IBM mainframe for their SHARP APL timesharing service. On the first day on this machine, I (in Calgary) happened to enter an expression involving and generated a system error with a register dump and everything. Seemingly in no time flat Roger Moore (in Toronto) was on the case and fixed the problem. He then inquired of Lib Gibson, IPSA Calgary branch manager, re who was the person with the magic touch. Lib replied that it was Roger the summer student, adding that having a magic touch was a characteristic of all Rogers.

— Roger Hui


Modem technology introduced around 1960 was the Western Electric 103A. It used frequency shift keying and could run at 300 baud. Original terminals were 2741s and clones at 134.5 baud. I cannot remember exactly when ASCII support was introduced. APL ASCII was helped by the daisy wheel printer technology which ran at 30 cps (provided you didn’t feed it with wrong character sequences like N⍴'E0').

Prior to IPSANET it was expensive to provide 300 bps service outside of Toronto. A wider bandwidth time-division multiplex channel was required which increased costs. With packet switching support for higher speeds became possible. I think IPSA was widely deployed in 1978 (check with 134.5/300 bps autospeed ports on the Alpha and 3705. Checking May/June 1978 network topology suggests that TDM links were gone in 1978.

1978 was during the Vadic v WE 212A wars. Both provided 1200 bps over dial-up lines; only Vadic could be acoustically coupled. I think there were some 1200 bps network ports in 1978. As these ports became more common, we discovered that the exact Alpha hardware configured did not really support 1200 bps. I spend a couple of weeks looking the source of the problem. The problem was associated the bloody awful transmit shutdown scheme in the Advanced [sic] Micro Device 9551 chip. Commercial async chips (unlike IBM 3705) were incapable of transmitting an invisible idle (start bit at mark and data=all marks). With the 9551 turning off transmit mode immediately jammed transmit data at mark. This meant Alpha software had to send two dummy characters after last character from a packet. In normal 9551 transmit operation a new character was requested in the middle of stop bit transmission. For a characters other than last Alpha hardware would supply a new character in between instructions. When count expired on the data transfer there was an interrupt. If interrupt was serviced by shutting down transmit mode while the stop bit was being transmitted, everything was OK. If interrupt service was delayed then transmission of start bit of next character would start. A small delay would result in a visible blip on transmit data which would probably be ignored by the modem. Transmitting half of the start bit would be visible to modem and end user. Thus delay of interrupt by (1/1200 sec) would guarantee a noise character at user terminal. Shorter delay might give garbage.

Solution was global switch to Intel 8251 chip which had a much more civilized approach to transmit shutdown. With 8251, shutting down transmit mode disabled further requests for more characters but allowed buffered characters in chip (usually two) to be transmitted. This network wide hardware change which occurred one node at a time was required to properly support 1200 bps.

— Roger Moore


APL Blossom Time — A History in Verse

A nostalgic reminiscence of the early days of APL, remembered to the tune of The Battle of New Orleans.

Back in the old days, in 1962,
A feller named Ken Iverson decided what to do.
He gathered all the papers he’d been writing fer a spell
And he put them in a little book and called it APL.

He got him a jot and he got him a ravel
And he revved his compression up as high as she could go
And he did some reduction and he did some expansion
And he sheltered all his numbers with a ceiling and a flo’.

Now Sussenguth and Falkoff, they thought it would be fine
To use the new notation to describe the product line.
They got with Dr. Iverson and went behind the scenes
And wrote a clear description of a batch of new machines.

They wrote down dots and they wrote down squiggles
And they wrote down symbols that they didn’t even know
And they wrote down questions when they didn’t know the answer
And they made the Systems Journal in nineteen sixty-fo’

Now writing dots and squiggles is a mighty pleasant task
But it doesn’t answer questions that a lot of people ask.
Ken needed an interpreter for folks who couldn’t read
So he hiked to Californ-i-a to talk to Larry Breed.

He got Larry Breed and he got Phil Abrams
And they started coding FORTRAN just as fast as they could go
And they punched up cards and ran them through the reader
In Stanford, Palo Alto, on the seventy-ninety-oh.

Well a FORTRAN batch interpreter’s a mighty awesome thing
But while it hums a pretty tune it doesn’t really sing.
The thing that we all had to have to make our lives sublime
Was an interactive program that would let us share the time.

They got Roger Moore and they got Dick Lathwell,
And they got Gene McDonnell with his carets and his sticks,
And you should’ve heard the uproar in the Hudson River valley
When they saved the first CLEANSPACE in 1966.

Well, when Al Rose saw this he took a little ride
In a big station wagon with a type ball by his side.
He did a lot of teaching and he had a lot of fun
With an old, bent, beat-up 2741.

It typed out stars and it typed out circles
And it twisted and it wiggled just like a living thing.
Al fed it a tape when he couldn’t get a phone line
And it purred like a tiger with its trainer in the ring.

Now, there’s much more to the story, but I just don’t have the time
(And I doubt you have the patience) for an even longer rhyme.
So I’m ending this first chapter of the tale I hope to tell
Of how Iverson’s notation blossomed into APL.

Keep writing nands when you’re not writing neithers,
And point with an arrow to the place you want to be,
But don’t forget to bless those early APL sources
Who preserved the little seedling that became an APL tree.

Dedicated to the pioneers of APL with respect and affection by J.C.L. Guest

— Mike Montalbano, A Personal History of APL, Appendix A:
APL Blossom Time, 1982-10


However, all was not grim in those early years, and one gets an insight into the sense of humor which still abounds in the APL world. The Great Inner Products Contest was announced in the January 15, 1971 issue. Readers were encouraged to submit their “favorite and most expressive use of the inner product”. Among the so-called rules of the competition:


The entry +.× is not permitted except by management and APL salesmen.

Explaining ×.+ places you in a special category.

Volume II, Number 6, March 17, 1971 reveals that the APL community could meet challenge with characteristic tongue-in-cheek:


The most interesting [entry] was from Roger Moore, I.P. Sharp Associates, Toronto, who points out that the “new improved” 5732-XM6 or 5736-XM6 executing ⍴B∧.=⍉B←500 1⍴1 in a CLEAR WS produces a register dump and a SYSTEM ERROR. He suggested that a call to the QUEND macro be inserted immediately after card 5272 of APLSVDOP in order to “destroy” his interesting inner product entry. His Post Script that another call to the QUEND macro after card 3712 in the same assembly fixes the bug encountered when something like ∧/125000 1⍴1 is attempted. (Way to go IBM!)

Not all was fun and games, however. Mike Jenkins introduced the new matrix inversion primitive, domino, to the APL community in Volume III, Number 4, February 10, 1972. This landmark paper is often referred to, and can still be used today to gain insight into this function. And domino can be used in interesting and mysterious ways, too. At the [APL82] meeting in Heidelberg, Timo Seppälä of TMT-Team Oy, Helsinki, was asking people if they knew the shortest expression for computing the average of a vector. (Think about it and then look for the answer at the end of this introduction.)

— Arlene Azzarello, APL QUOTE-QUAD: The Early Years, 1982-11.


The “goodies bag” for the APL85 conference in Seattle included a jigsaw puzzle of about 1000 pieces. The pattern (composed by Paul Berry) consisted of APL error messages in various natural languages and “APL ’85” rendered in large yellow strokes, interpersed in a random matrix of APL characters. As is customary, the pattern on the puzzle itself was reproduced on the box. I did not open this trophy for a long time, and when I rejoined IPSA in 1986 I left it on a table in my office, unopened.

Roger Moore was in the adjacent office, and he’d occasionally drop by to discuss the network shared variables work he was doing with my office mate Richard Potyok. On such occasions he would (I later realized) look longingly at the unopened puzzle, but he was too gentlemanly to say anything.

On Friday 1986-06-29 I finally opened the puzzle and started to work on it. Roger soon noticed and immediately pitched in. We made short work of the parts with the APL error messages and of course the big “APL ’85” was pretty easy. The remaining random APL characters proved more challenging.

After a while Roger derived a better method than random search: first, sort the remaining puzzle pieces according to the characters around the domino () character. (He printed out ⎕av to use in the sorting.) Then, find a domino character on the box, look at the characters around it, and locate the correct puzzle piece in the sorted piles of puzzle pieces. Why ? It is the character with “the most ink”, such that it is easier to recognize a fragment of that character on a puzzle piece than any other character. Using this method, the puzzle was almost done by Saturday evening and finished soon thereafter.

— Roger Hui


The new receptionist at IPSA headquarters in downtown Toronto reported with alarm that “a hobo had just walked into the office”. That’s not a hobo, we reassured her, that’s our vice president.

— Cam Linton


Roger Moore was a vice president of I.P. Sharp Associates. What were Roger’s responsibilities as vice president? I’ve heard it said by different people that “Roger Moore is the vice president in charge of Roger Moore”.

— Roger Hui


In the 1990s I used to ride my bike on the Martin Goodman Trail or the Sunnyside Boardwalk on the shores of Lake Ontario. Sometimes I would see Roger Moore on the trail, also on a bike. You can tell it’s Roger from a ways off because only he would be wearing a short-sleeve white shirt and tie.

More recently (2016), Roger has been seen playing Pokémon Go while wearing shirt and tie.

— Roger Hui


If an item in Ken Iverson Quotations and Anecdotes is a “Kenecdote” (per Eugene McDonnell), and an item in Eugene McDonnell Quotations and Anecdotes is a “Genecdote”, what is an item in this collection? I propose that it be called an “APLore” (pronounced “apple lore”).

I learned just today that “Mooreiana” was what Eugene had been calling the collection of Roger Moore stories since 1986 or earlier. The possibilities are endless! Tuttle-Tales, Scholisms, Krombergers, Hui-Stories, …

— Roger Hui


Excerpts from a presentation to the IPSA50 party, 2014-10-05.

•   Remember the 80s? When our line to Europe was 9600 baud? I have 2000 times that bandwidth to my house. The 80s. When Joey saved 9 years of email in 82 megabytes. Now we get that in a day.
•   I remember when Jane and I had a business meeting in Winnipeg. IPSA’s famous frugality dictated we share a hotel room. Jane arrived after me, unlocked the door and called out, “I’m coming to get you!” It was the wrong room. A man wearing only a towel took one look at this willowy redhead and responded, “I certainly hope so!”
•   I remember asking Arthur Whitney to wear clean, ironed pants and shirt for an important demo. Arthur blew them away. When I thanked him for dressing properly someone said, “Didn’t you notice he had NO SHOES?” You have to be VERY explicit with programmers.
•   I remember arguments with Eric that he consistently won — even though I was consistently RIGHT!
•   And I remember Roger. His office with six feet of printouts — totally redundant, because Roger with his photographic memory knew Every. Single. Line. Of code. There’s the legend of Roger in a Regina bar realizing he’d forgotten his house key, and drawing it for a locksmith to cut a replacement. It worked.
•   I remember Roger advising a customer to connect pins 4 and 7 on their 3705. The uneasy customer called the IBM development team. “Who told you to do a stupid thing like that?” “Roger Moore”. “Oh well that’s OK, Roger knows more about this device than we do.”
•   I remember one night a customer phoned the London office for APL help, was given a quick solution, and asked, “Who is this? I want to mention you to the boss.”
“My name is Ian Sharp.”
“Wow, must be handy to have a name like that.”
“It is,” Ian replied without further elaboration.
Fred Perkins got a laugh the next morning.
•   I remember people urging Ian to dump a painful, overdue Morgan Stanley project. There was no contractual penalty. But we gave our word, said Ian. That was the end of that.
•   Ian didn’t stand on policy; he operated on trust. When I applied to Sharp, I asked about sick leave. Ian looked perplexed. “When you’re sick, you stay home.” I persisted. “How LONG can I stay home?” Even more perplexed, Ian said, “Until you’re better.”

— Lib Gibson, IPSA50, 2014-10-04

Dramatis Personæ

Phil Abrams
Arlene Azzarello
Joe Berg
Bob Bernecky
Paul Berry
Larry Breed
Charles Brenner
William Burroughs
David Butler
Brian Daly
Adin Falkoff
S.Z. de Ferranti
George Forsythe
Lib Gibson
Martin Goodman
Douglas Hofstadter
Grace Murray Hopper
Henry Hudson
  Roger Hui
Thomas Hunter
Eric Iverson
Ken Iverson
Mike Jenkins
William Keele
Morten Kromberg
Dick Lathwell
Jacob Lawrence
Cam Linton
Eugene McDonnell
Ted McDorman
James McSherry
Jane Minett
Mike Montalbano
Jeff Moore
Roger Moore
Henry Morgan
  David Oldacre
Fred Perkins
Richard Potyok
Al Rose
John Scholes
Timo Seppälä
Ian Sharp
Eugene Skinner
Don Smith
Leland Stanford Jr.
Harold Stanley
Bill Strachan
Ed Sussenguth
Larry Tesler
Joey Tuttle
Queen Victoria
St. Vitus
Arther Whitney

Compiled and edited by Roger Hui.

created:  2010-09-18 12:00
updated:2019-04-19 16:55