← Back to context

Comment by dhosek

8 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.

  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.