In Michael Crichton's novel Jurassic Park, disgruntled programmer Dennis Nedry sets up a backdoor in the computer code controlling the park. To untangle Nedry's mess, park engineer Ray Arnold goes "behind the scenes to look at the code — the line-by-line instructions that told the computer how to behave. Arnold was unhappily aware that the complete Jurassic Park program contained more than half a million lines of code, most of it undocumented, without explanation."[page 219] Crichton gives us at least three examples of Nedry's code, which you can find at the bottom of this question.
Now, I'm a programmer myself. I'm well aware that this "code" is not any living language, is not syntactically plausible for any computer language, and is clearly fabricated on Crichton's part. However, with that as a given, there are still some semantics we can infer from this code, right? What can we infer about the purpose of these code snippets? and how do they accomplish their purpose? In-universe and out-of-universe explanations are equally welcome. :)
(page 219)
*/Jurassic Park Main Modules/
*/
*/ Call Libs
Include: biostat.sys
Include: sysrom.vst
Include: net.sys
Include: pwr.mdl
*/
*/Initialize
SetMain [42]2002/9A{total CoreSysop %4 [vig. 7*tty]}
if ValidMeter(mH) (**mH).MeterVis return
Term Call 909 c.lev { void MeterVis $303 } Random(3 #*MaxFid)
on SetSystem(!Dn) set shp_val.obj to lim(Val{d}SumVal)
if SetMeter(mH) (**mH).ValdidMeter(Vdd) return
on SetSystem(!Telcom) set mxcpl.obj to lim(Val{pd})NextVal
(page 230)
curV = GetHandl {ssm.dt} tempRgn {itm.dd2}.
curH = GetHandl {ssd.itl} tempRgn2 {itm.dd4}.
on DrawMeter(!gN) set shp_val.obj to lim(Val{d})-Xval.
if ValidMeter(mH) (**mH).MeterVis return.
if Meterhandl(vGT) ((DrawBack(tY)) return.
limitDat.4 = maxBits (%33) to {limit .04} set on.
limitDat.5 = setzero, setfive, 0 {limit .2 - var(szh)}.
on whte_rbt.obj call link.sst {security, perimeter} set to off.
vertRange = {maxRange+setlim} tempVgn(fdn-&bb+$404).
horRange = {maxRange-setlim/2} tempHgn(fdn-&dd+$105).
void DrawMeter send_screen.obj print.
(page 238)
Vg1 = GetHandl {dat.dt} tempCall {itm.temp}
Vg2 = GetHandl {dat.itl} tempCall {itm.temp}
if Link(Vg1,Vg2) set Lim(Vg1,Vg2) return
if Link(Vg2,Vg1) set Lim(Vg2,Vg1) return
on whte_rbt.obj link set security (Vg1), perimeter (Vg2)
limitDat.1 = maxBits (%22) to {limit .04} set on
limitDat.2 = setzero, setfive, 0 {limit .2 - var(dzh)}
on fini.obj call link.sst {security, perimeter} set to on
on fini.obj set link.sst {security, perimeter} restore
on fini.obj delete line rf whte_rbt.obj, fini.obj
Vg1 = GetHandl {dat.dt} tempCall {itm.temp}
Vg2 = GetHandl {dat.itl} tempCall {itm.temp}
limitDat.4 = maxBits (%33) to {limit .04} set on
limitDat.5 = setzero, setfive, 0 {limit .2 - var(szh)}
(page 239)
Vg1 = GetHandl {dat.dt} tempCall {itm.temp}
Vg2 = GetHandl {dat.itl} tempCall {itm.temp}
if Link(Vg1,Vg2) set Lim(Vg1,Vg2) return
if Link(Vg2,Vg1) set Lim(Vg2,Vg1) return
limitDat.1 = maxBits (%22) to {limit .04} set on
limitDat.2 = setzero, setfive, 0 {limit .2 - var(dzh)}
Vg1 = GetHandl {dat.dt} tempCall {itm.temp}
Vg2 = GetHandl {dat.itl} tempCall {itm.temp}
limitDat.4 = maxBits (%33) to {limit .04} set on
limitDat.5 = setzero, setfive, 0 {limit .2 - var(szh)}
And here's the trace that KeyCheck recorded of Nedry's actions right before the security shut off.[page 228] For the record, the ASCII codes are garbage (.*y XM..z.,4MZ.c.d.m7g?.cW<.,...+?..9Ygz.,4X.....9bdfg.p.?...MCX...
) indicating either that Nedry was just banging on the keyboard ("Probably just killing time," Wu said. "Until he finally decided to get down to it"[page 228]) or else that he was in a GUI using the keyboard codes for navigation (but that's implausible given the range of keys he's hitting).
13,42,121,32,88,77,19,13,122,13,44,52,77,90,13,99,13,100,13,109,55,103
144,13,99,87,60,13,44,12,09,13,43,63,13,46,57,89,103,122,13,44,52,88,9
31,13,21,13,57,98,100,102,103,13,112,13,146,13,13,13,77,67,88,23,13,13
system
nedry
goto command level
nedry
040/#xy/67&
mr goodbytes
keycheck off
safety off
sl off
security
whte_rbt.obj