Knowledge

The Story of Mel

Source 📝

141:
Nather recounted this story from memory, more than 20 years later. Some technical details are known to be incorrect, including the location of an "Index" flag bit in the instruction word; Kaye's use of it presumably gave Nather the vital clue that a coding trick was being used. Nevertheless there are
137:
would be read—in this case changing the opcode to "jump to" so that the full instruction became "jump to address 0". This impressed Nather so much that, out of respect, he gave up the task and reported that he could not find the bug.
98:; company sales executives had requested to modify the program so that they could flip a front panel switch and cause the program to lose (and the user to win). Kaye reluctantly acceded to the request, but to his own delight, he got the 353: 187:, the Librascope newsletter, contains a story about training on the LGP-30, and mentions that some Librascope application engineers were transferred to the Royal McBee payroll. Among the engineers named is Mel Kaye. 593: 153:  did "replace the contents of the address portion of the word in memory location 2000 with the contents of the address portion of the word in the accumulator" to ease writing self-modifying code. 105:
Subsequent to Kaye's departure, Nather was asked to fix the bug. While examining the code, he was puzzled to discover that it contained what appeared to be an
700: 576: 260: 67:
Little is known about Mel Kaye, beyond the fact that he was credited with doing the "bulk of the programming" on the 1959 ACT-1 compiler for the Royal McBee
628: 477:
The Story of Mel - A recent article devoted to the *macho* side of programming made the bald and unvarnished statement: Real Programmers write in Fortran.
670: 190:
There is a photograph on the front page of that issue showing that first class of neophyte LGP-30 programmers and the instructors, including Mel Kaye.
557: 84: 64:. Although originally written in prose, Nather's story was modified by someone into a "free verse" form which has become widespread. 221: 727: 142:
plausible hacks which Kaye might have implemented on the actual RPC-4000 and which are largely in line with Nather's account.
531: 199: 149:
design had no index register. Using self-modifying code was necessary for array operations. The LGP-30 instruction  
99: 535: 714:(Analysis of the technical accuracy of the story and possible implementations of the hack on the RPC-4000 computer.) 75:
in favor of crafting code to take advantage of hardware quirks, for example taking advantage of the rotation of the
481: 285: 249: 129:
was already the highest possible address, not only did the address wrap around to 0, but a 1 was carried into the
72: 685:(A research on the origins of the story, its characters, Mel Kaye's biography, and hacker folklore in general) 334: 546:(NB. Punctuation added/corrected for readability. Contains link to program tape of blackjack for LGP-30) 506: 17: 113:
to process elements of an array, and had coded the loop in such a way as to take advantage of an
551: 102:
wrong, and the switch would instead cause the program to win every time (and the user to lose).
689: 664: 369: 732: 34: 8: 707: 365: 297: 110: 109:, yet control did not remain inside the loop. Eventually he realized that Kaye was using 402: 301: 60:
details the extraordinary programming prowess of a former colleague of his, "Mel", at
696:(Mel Kaye's Biography: A research into Mel Kaye's identity, family, origins and work) 361: 652: 585: 357: 289: 114: 427: 245: 42: 321: 183:
program was written by Mel Kaye of Librascope Inc. The August 1956 edition of
629:"Macho programmers, drum memory and a forensic analysis of 1960s machine code" 721: 106: 612: 525: 117:. Adding 1 to the address field of an instruction that referred to address 656: 71:
computer. In Nather's story, Kaye is portrayed as being prone to avoiding
146: 80: 61: 643:
van den Bogaard, Adrienne (2008). "Stijlen van programmeren 1952-1972".
624:(NB. Detailed analysis of the story, explaining the technical details.) 450: 475: 293: 176: 165: 521: 517:(A completely original copy of Ed Nather's Usenet post, with headers) 496: 471: 180: 91: 90:
The story, as written by Nather, involved Kaye's work on rewriting a
53: 250:"The Jargon File, Version 2.9.10, 01 Jul 1992 (jargon2910.ascii.gz)" 589: 572: 95: 429:
ROYAL PRECISION Electronic Computer LGP - 30 PROGRAMMING MANUAL
162: 134: 76: 68: 389: 175:
The Royal McBee computers were developed and manufactured by
500: 169: 94:
program from the LGP-30 to a newer Royal McBee system, the
568:(Mel Kaye's signature] on a coding sheet for the LGP-30.) 254: 130: 678: 425: 168:"net.followup" on May 21, 1983, by utastro!nather (the 680:
Mel's Loop - A Comprehensive Guide to The Story of Mel
553:
Mel the Programmer: LGP-30 Coding Sheet - Program 13.0
45:" whose subtle techniques fascinate his colleagues. 607:(NB. Presumably the subject of the original story.) 279: 277: 432:. Port Chester, New York: Royal McBee Corporation 719: 335:"The Story of Mel, A Real Programmer, Annotated" 274: 642: 669:: CS1 maint: DOI inactive as of August 2024 ( 495: 470: 351: 451:"Mel Kaye in the first LGP-30 training class" 283: 240: 238: 216: 214: 492:(NB. A copy of the original prose version.) 390:"In particular, Mel Kaye of Royal McBee..." 701:found a computer of the type that Mel used 161:The essay was originally published in the 235: 211: 172:email address of Ed Nather at the time). 549: 179:, and the documentation written for the 244: 14: 720: 610: 520: 426:Royal McBee Corporation (April 1957). 121:normally just changed the address to 637:Contains even more technical details 527:The story of Mel, a Real Programmer 284:Matt Crawford (November 20, 1984). 24: 550:Jennings, Tom, ed. (2000-11-30) , 464: 25: 744: 200:Real Programmers Don't Use Pascal 571: 354:"New Light on the Legend of Mel" 62:Royal McBee Computer Corporation 599:from the original on 2017-03-09 560:from the original on 2017-03-09 538:from the original on 2017-03-09 509:from the original on 2018-02-12 484:from the original on 2017-03-09 443: 370:IhyHSrOSMUE3MKUXwi@transarc.com 286:"The realest programmer of all" 263:from the original on 2017-03-09 419: 395: 383: 345: 327: 315: 13: 1: 728:Computer programming folklore 703:in his grandparents basement. 403:"Dissecting the Story of Mel" 352:Bill von Hagen (1 Jun 1994). 205: 614:'The Story of Mel' Explained 611:Seibel, James (2015-04-08), 33:is an archetypical piece of 7: 709:Dissecting the Story of Mel 193: 10: 749: 691:Mel's Loop - Mel Kaye – CV 156: 578:Manual for Blackjack Game 150: 502:re: Real Programmers ... 392:, FOLDOC, imperial.ac.uk 302:531@oddjob.UChicago.UUCP 48: 145:The early computers of 37:folklore. Its subject, 659:(inactive 2024-08-08). 362:alt.folklore.computers 657:10.18352/studium.1459 222:"Librascope Memories" 73:optimizing assemblers 248:, ed. (1992-07-01). 35:computer programming 111:self-modifying code 41:, is an exemplary " 27:Computer programmer 324:free verse version 592:Program W1-01.0, 457:. Librascope Inc. 231:. Librascope Inc. 83:to avoid writing 16:(Redirected from 740: 713: 695: 684: 674: 668: 660: 636: 633:freeCodeCamp.org 623: 622: 621: 606: 605: 604: 598: 586:Librascope, Inc. 583: 567: 566: 565: 545: 544: 543: 516: 515: 514: 505:, Rob Stampfli, 491: 490: 489: 480:, Greg Lindahl, 459: 458: 447: 441: 440: 438: 437: 423: 417: 416: 414: 413: 407:www.e-basteln.de 399: 393: 387: 381: 380: 378: 376: 349: 343: 342: 331: 325: 322:The Story of Mel 319: 313: 312: 310: 308: 281: 272: 271: 269: 268: 258: 246:Raymond, Eric S. 242: 233: 232: 226: 218: 152: 115:Integer overflow 58:The Story of Mel 31:The Story of Mel 21: 748: 747: 743: 742: 741: 739: 738: 737: 718: 717: 706: 688: 677: 662: 661: 635:. 2 April 2018. 627: 619: 617: 602: 600: 596: 581: 563: 561: 541: 539: 524:(2003-09-12) , 512: 510: 487: 485: 467: 465:Further reading 462: 449: 448: 444: 435: 433: 424: 420: 411: 409: 401: 400: 396: 388: 384: 374: 372: 350: 346: 339:www.cs.utah.edu 333: 332: 328: 320: 316: 306: 304: 282: 275: 266: 264: 252: 243: 236: 224: 220: 219: 212: 208: 196: 159: 133:from which the 87:into the code. 51: 43:Real Programmer 28: 23: 22: 15: 12: 11: 5: 746: 736: 735: 730: 716: 715: 704: 697: 686: 675: 651:(2): 128-144. 640: 639: 638: 608: 569: 547: 518: 499:(1983-05-21), 497:utastro!nather 493: 474:(1983-05-21), 472:utastro!nather 466: 463: 461: 460: 455:the Librazette 442: 418: 394: 382: 344: 326: 314: 273: 259:. line 20505. 234: 229:The Librazette 209: 207: 204: 203: 202: 195: 192: 185:The Librazette 158: 155: 50: 47: 26: 9: 6: 4: 3: 2: 745: 734: 731: 729: 726: 725: 723: 711: 710: 705: 702: 698: 693: 692: 687: 682: 681: 676: 672: 666: 658: 654: 650: 646: 641: 634: 630: 626: 625: 616: 615: 609: 595: 591: 587: 580: 579: 574: 570: 559: 555: 554: 548: 537: 533: 529: 528: 523: 519: 508: 504: 503: 498: 494: 483: 479: 478: 473: 469: 468: 456: 452: 446: 431: 430: 422: 408: 404: 398: 391: 386: 371: 367: 363: 359: 355: 348: 340: 336: 330: 323: 318: 303: 299: 295: 291: 287: 280: 278: 262: 256: 251: 247: 241: 239: 230: 223: 217: 215: 210: 201: 198: 197: 191: 188: 186: 182: 178: 173: 171: 167: 164: 154: 148: 143: 139: 136: 132: 128: 125:+1. But when 124: 120: 116: 112: 108: 107:infinite loop 103: 101: 97: 93: 88: 86: 82: 78: 74: 70: 65: 63: 59: 55: 46: 44: 40: 36: 32: 19: 712:, 2024-09-11 708: 694:, 2023-05-21 690: 683:, 2022-05-21 679: 665:cite journal 648: 644: 632: 618:, retrieved 613: 601:, retrieved 577: 562:, retrieved 552: 540:, retrieved 526: 511:, retrieved 501: 486:, retrieved 476: 454: 445: 434:. Retrieved 428: 421: 410:. Retrieved 406: 397: 385: 375:December 22, 373:. Retrieved 347: 338: 329: 317: 307:December 22, 305:. Retrieved 265:. Retrieved 228: 189: 184: 174: 160: 144: 140: 126: 122: 118: 104: 89: 66: 57: 52: 38: 30: 29: 733:1983 essays 699:A redditor 147:IAS machine 85:delay loops 81:drum memory 39:Melvin Kaye 722:Categories 620:2018-02-18 603:2017-03-08 564:2017-03-09 542:2017-03-09 522:Nather, Ed 513:2018-02-11 488:2017-03-09 436:2020-03-17 412:2024-09-11 267:2014-07-01 206:References 177:Librascope 166:news group 573:Kaye, Mel 358:Newsgroup 294:net.jokes 290:Newsgroup 181:blackjack 92:blackjack 54:Ed Nather 594:archived 590:RPC-4000 558:archived 536:archived 507:archived 482:archived 261:Archived 194:See also 96:RPC-4000 18:Mel Kaye 645:Studium 584:, USA: 366:Usenet: 360::  298:Usenet: 292::  157:History 532:FOLDOC 368:  300:  163:Usenet 151:y 2000 135:opcode 77:LGP-30 69:LGP-30 597:(PDF) 582:(PDF) 225:(PDF) 49:Story 671:link 377:2019 309:2019 170:UUCP 131:bits 100:test 653:doi 79:'s 56:'s 724:: 667:}} 663:{{ 647:. 631:. 588:, 575:, 556:, 534:, 530:, 453:. 405:. 364:. 356:. 337:. 296:. 288:. 276:^ 255:GZ 237:^ 227:. 213:^ 673:) 655:: 649:1 439:. 415:. 379:. 341:. 311:. 270:. 257:) 253:( 127:x 123:x 119:x 20:)

Index

Mel Kaye
computer programming
Real Programmer
Ed Nather
Royal McBee Computer Corporation
LGP-30
optimizing assemblers
LGP-30
drum memory
delay loops
blackjack
RPC-4000
test
infinite loop
self-modifying code
Integer overflow
bits
opcode
IAS machine
Usenet
news group
UUCP
Librascope
blackjack
Real Programmers Don't Use Pascal


"Librascope Memories"

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.