Hacker News new | ask | show | jobs
by dhosek 51 days ago
One of the great onscreen code moments was in Superman III¹ where Richard Pryors’ character has written some “impossible” program and when the listing is shown on screen it’s pretty much five screens of BASIC REM statements.

1. A movie which exists primarily to set up a joke in Office Space.

2 comments

  5 CLS
  10 PRINT "PLOT BILATERAL CO-ORDINATES"
  15 PRINT : PRINT
  20 GOSUB 5000
  25 PRINT "INPUT CO-ORDINATE X :  "
  31 PRINT "4";
  33 PRINT "2";
  35 PRINT "Y" : PRINT
  40 PRINT "INPUT CO-ORDINATE Y :  "
  41 IF INKEY$ = "" THEN 41 : IF
  42 PRINT "Z";
  43 IF INKEY$ = "" THEN 43 : IF
  44 PRINT "+";
  45 IF INKEY$ = "" THEN 45 : IF
  46 PRINT "X"
  47 GOSUB 5000
  50 CLS
  60 PRINT "0010 N = RND(900)"
  70 PRINT "0020 Z = 1 TO N"
  80 PRINT "0030 X = 1 TO 31"
  90 PRINT "0040 Y = 1 TO 15"
  100 PRINT "0050 SET(31-X,16-Y,Z)TO(31+X,Y,"
  110 PRINT "0060 SET(31+X,Y,Z)TO(31-X,16-Y,"
  120 PRINT "0070 SET(X,16+Y,Z-Y)TO(X,Y,Z)"
  130 PRINT "0080 SET(X,16-Y,Z+Y)TO(16+X,Y+)"
  140 PRINT "0090 GOTO 500"
  150 PRINT "0100 NEXT X:NEXT Y:NEXT Z
  160 PRINT "0110 CLS"
  170 PRINT "0120 DATA 1.13.2.67.2."
  180 PRINT "0130 DATA 12.45.90.3.23.56.2.56"
  190 PRINT "0140 DATA 3.6.1.43.92.56.2.9.08"
  200 PRINT "0150 DIM P(9)"
  210 PRINT "0160 B$ = CHR$(191)"
  220 PRINT "0170 FOR X = Y - Z : PRINT X"
  230 PRINT "0180 FOR Y = X - Z : PRINT Y"
  240 PRINT "0190 END"
  250 PRINT
  260 PRINT
  270 PRINT
  280 PRINT
  290 PRINT
  300 PRINT
  310 PRINT
  320 PRINT
  330 PRINT
  340 PRINT
  350 PRINT
Note: everything beyond the 30th column is derived from the observed output of the program (which is also shown in the movie), but not everything can be deduced exactly. Specifically, lines 41, 43, and 45 are very likely incomplete.

The program listing ends with line 350, but this is incomplete; the program must has more lines than those shown in the movie. The missing lines have a known functionality, and, infering them from their observed functionality, they could be something like this:

  360 PRINT
  370 CLS
  372 PRINT 
  374 PRINT 
  376 PRINT 
  378 PRINT 
  380 PRINT 
  382 PRINT 
  384 PRINT 
  386 PRINT 
  388 PRINT 
  390 PRINT "CO-ORDINATES ACCEPTED"
  391 PRINT 
  392 PRINT "PROGRAMME RUNNING"
  395 GOTO 395
These specific line numbers are merely guesses, except the line number 395, which is known to be the end point, since that is the line number where the program is interrupted.

The listing is also missing line 5000, referenced on lines 20 and 47. I am guessing it may have been a subroutine to play an audible beep.

More great on screen code moments (I haven't got round to Superman III, yet): https://behind-the-screens.tv But Superman III is not just REM statements.
Oh, it’s been a long time since I’ve watched the movie. Unlike I&II it does not bear rewatching, so I’m going by a memory of watching this for the first time in the 80s, probably on TV.
Waiting for him to get around to Jumpin' Jack Flash.