home *** CD-ROM | disk | FTP | other *** search
- % Copyright (C) 1989, 1990, 1991 Aladdin Enterprises. All rights reserved.
- % Distributed by Free Software Foundation, Inc.
- %
- % This file is part of Ghostscript.
- %
- % Ghostscript is distributed in the hope that it will be useful, but
- % WITHOUT ANY WARRANTY. No author or distributor accepts responsibility
- % to anyone for the consequences of using it or for whether it serves any
- % particular purpose or works at all, unless he says so in writing. Refer
- % to the Ghostscript General Public License for full details.
- %
- % Everyone is granted permission to copy, modify and redistribute
- % Ghostscript, but only under the conditions described in the Ghostscript
- % General Public License. A copy of this license is supposed to have been
- % given to you along with Ghostscript so you can know your rights and
- % responsibilities. It should be in a file named COPYING. Among other
- % things, the copyright notice and this notice must be preserved on all
- % copies.
-
- % Initialization file for Ghostscript.
- % When this is run, systemdict is still writable.
-
- % Acquire the debugging flags.
- currentdict /DEBUG known /DEBUG exch def
- /VMDEBUG
- DEBUG {{vmstatus pop ( ) cvs print pop ( ) print
- systemdict length ( ) cvs print (\n) print flush}}
- {{}} ifelse
- def
- currentdict /NODISPLAY known not /DISPLAYING exch def
- currentdict /NOBIND known { /bind { } def } if
- currentdict /NOCACHE known /NOCACHE exch def
- currentdict /QUIET known /QUIET exch def
-
- %************************** Disable save and restore
- /save {gsave null} bind def
- /restore {pop grestore} bind def
-
- % Acquire systemdict and userdict.
- % Note that the dictionary stack only has 1 element at this point!
- /systemdict currentdict def
- /userdict 200 dict def
- userdict begin % 2 elements now
- systemdict begin
-
- VMDEBUG
-
- % Define true and false.
- /true 0 0 eq def
- /false 0 1 eq def
-
- % Define predefined procedures substituting for operators,
- % in alphabetical order.
- /[ /mark load def
- /] {counttomark array astore exch pop} bind def
- /abs {dup 0 lt {neg} if} bind def
- /cleardictstack
- {countdictstack 2 sub {end} repeat} bind def
- /.copypage /copypage load def
- /copypage
- {.copypage
- (>>copypage, press <return> to continue<<\n) .confirm} bind def
- /defaultmatrix
- {currentdevice exch deviceparams pop pop
- counttomark 1 add 1 roll cleartomark} bind def
- /.echo /echo load def
- /.echo.mode true def
- /echo {dup /.echo.mode exch def .echo} bind def
- /eexec {55665 exch type1decryptfile
- % eexec sections have 4 garbage characters at the beginning.
- % We should detect binary vs. hex encoding here.
- 4 {dup read pop pop} repeat
- cvx systemdict begin stopped end
- $error /newerror get and {handleerror} if} bind def
- /executive
- {{prompt (%statementedit) (r) file
- dup bytesavailable 0 lt
- {(%stdin) (r) file bytesavailable 0 lt {closefile exit} if}
- if cvx execute} loop} bind def
- /framedevice % dummy definition
- {(Warning: framedevice is not implemented.\n) print flush
- pop pop pop setmatrix initclip} bind def
- /handleerror
- {errordict /handleerror get exec} bind def
- /identmatrix
- {{1.0 0.0 0.0 1.0 0.0 0.0} cvlit exch copy} bind def
- /initgraphics
- {initmatrix newpath initclip 1 setlinewidth 0 setlinecap 0 setlinejoin
- {} 0 setdash 0 setgray 10 setmiterlimit} bind def
- /initmatrix
- {.tempmatrix defaultmatrix setmatrix} bind def
- %.nulldevice does all of nulldevice except initclip and initmatrix.
- /nulldevice
- {.nulldevice initclip initmatrix} bind def
- /matrix {6 array identmatrix} bind def
- /prompt {flush flushpage
- (GS) print count 0 ne
- {(<) print count =only}
- if (>) print flush} bind def
- /pstack {0 1 count 3 sub {index ==} for} bind def
- /run {dup type /filetype eq { true } { findlibfile } ifelse
- {cvx execute}
- {(r) file} % let the error happen
- ifelse} bind def
- %.setgray is the same as setgray without the transfer function.
- /setgray
- {currenttransfer exec .setgray} bind def
- /showpage
- {.copypage (>>showpage, press <return> to continue<<\n) .confirm
- erasepage initgraphics} bind def
- /stack {0 1 count 3 sub {index =} for} bind def
- /start { QUIET not
- {(Ghostscript ) print version print
- ( Copyright (C) 1990 Aladdin Enterprises,\n) print
- ( Menlo Park, CA. All rights reserved.\n) print
- (Distributed by Free Software Foundation, Inc.\n) print
- (Ghostscript comes with NO WARRANTY: see the file COPYING for details.\n) print
- flush
- } if
- executive
- } def
- %.typenumber is a non-standard operator.
- /type {.typenumber
- {arraytype booleantype dicttype filetype fonttype
- integertype marktype nametype nulltype operatortype
- packedarraytype realtype savetype stringtype
- colortype devicetype}
- exch get} def
- /version
- (2.1.1) def
-
- % Provide semi-fake but usable definitions for
- % the color PostScript extensions (except for colorimage,
- % which is actually implemented as an operator).
- /setcmykcolor {
- 1 exch sub dup dup % C, M, Y, S, S, S
- 6 -1 roll 1 exch sub mul % M, Y, S, S, red
- exch 5 -1 roll 1 exch sub mul % Y, S, red, green
- 4 -2 roll exch 1 exch sub mul % red, green, blue
- setrgbcolor
- } bind def
- /currentcmykcolor {
- currentrgbcolor 0
- } bind def
- /setcolortransfer {
- settransfer pop pop pop
- } bind def
- /currentcolortransfer {
- {} dup dup currenttransfer
- } bind def
- /setblackgeneration {
- pop
- } bind def
- /currentblackgeneration {
- {}
- } bind def
- /setundercolorremoval {
- pop
- } bind def
- /currentundercolorremoval {
- {}
- } bind def
- /setcolorscreen {
- setscreen 9 {pop} repeat
- } bind def
- /currentcolorscreen {
- currentscreen 3 copy 6 copy
- } bind def
-
- % Define some additional built-in procedures (beyond the ones defined by
- % the PostScript Language Reference Manual).
- /concatprocs
- { exch cvlit exch cvlit % proc1 proc2
- dup length 2 index length add array % proc1 proc2 newproc
- dup 0 4 index putinterval
- dup 3 index length 3 index putinterval
- exch pop exch pop cvx
- } bind def
- /concatstrings
- { 1 index length 1 index length add string
- 2 index 1 index copy pop
- dup 3 index length 3 index length getinterval
- 2 index exch copy pop
- exch pop exch pop
- } bind def
- /copystring
- { dup length string copy } bind def
- /defaultdevice
- { 0 getdevice } bind def
- /finddevice
- { systemdict /devicedict get exch get } bind def
- /rgbcolor
- { gsave setrgbcolor currentgscolor grestore } bind def
- %.setdevice does all of setdevice except initclip and initmatrix.
- /setdevice
- { .setdevice initclip initmatrix } bind def
-
- % Define auxiliary procedures needed for the above.
- /.confirm
- {DISPLAYING
- {% Print a message and wait for the user to type something.
- % If the user just types a newline, flush it.
- print flush
- .echo.mode false echo
- (%stdin) (r) file dup read
- {dup (\n) 0 get eq {pop pop} {unread} ifelse} {pop} ifelse
- echo}
- {pop} ifelse} bind def
- /.identmatrix % a read-only identity matrix
- matrix readonly def
- /.tempmatrix % a temporary matrix
- matrix def
-
- % If the interpreter includes the Level 2 functions,
- % load the initialization file for them.
- systemdict /uappend known % pick any one
- { (ghost2.ps) run }
- if
-
- % Define the procedure used by the C executive for executing user input,
- % and also by the run operator.
- % This is called with a procedure or file on the operand stack.
- /execute
- {stopped $error /newerror get and {handleerror} if} bind def
-
- % Create the error handling machinery.
- % The interpreter knows the name ErrorNames.
- {/unknown /dictfull /dictstackoverflow /dictstackunderflow
- /execstackoverflow /interrupt /invalidaccess /invalidexit
- /invalidfileaccess /invalidfont /invalidrestore /ioerror
- /limitcheck /nocurrentpoint /rangecheck /stackoverflow
- /stackunderflow /syntaxerror /timeout /typecheck
- /undefined /undefinedfilename /undefinedresult /unmatchedmark
- /VMerror
- } cvlit readonly
- dup length 2 add dict % ErrorNames, handleerror
- /errordict exch def
- errordict begin
- /ErrorNames exch def
- { $error /.inerror get { = flush quit } if % detect error recursion
- $error /.inerror true put
- countdictstack array dictstack
- $error begin
- /newerror true def
- /dstack exch def
- /errorname exch def
- /command exch def
- countexecstack array execstack /estack exch def
- count array astore /ostack exch def
- ostack aload pop
- end
- $error /.inerror false put
- stop
- } bind
- ErrorNames
- { [ 1 index 3 index /exec load ] cvx def
- } forall
- pop
- /handleerror
- { (Error: ) print
- $error begin
- errorname ==only
- ( in ) print
- /command load ==
- ( ostack:) print
- ostack {( ) print =only} forall
- (\n estack: ) print
- estack {( ) print =only} forall
- (\n dstack:) print
- dstack {dup ( ) print length =only (/) print maxlength =only} forall
- (\n) print
- /newerror false def
- flush
- end
- } bind def
- end
- /$error 7 dict def % newerror, .inerror, errorname, command,
- % 3 stacks
- $error begin
- /newerror false def
- /.inerror false def
- end
-
- % Define the =[only] procedures. Also define =print, which is used
- % by LaserPrep even though it isn't documented anywhere.
- /= {=only (\n) print} bind def
- /=print {=} bind def
- /.dict 16 dict dup
- begin def
- /.buf 128 string def
- /.cvp {.buf cvs .p} bind def
- /.print
- {dup type .dict exch known
- {dup type exec} {.buf cvs print} ifelse
- } bind def
- /stringtype
- {dup rcheck not {pop (--nostringval--)} if print} bind def
- /nametype
- {dup length .buf length gt
- {dup length string}
- {.buf}
- ifelse cvs print} bind def
- {0 begin .print end} bind dup 0 .dict put
- end
- /=only exch def
-
- % Define the [write]==[only] procedures.
- /== {==only (\n) print} bind def
- /==only {(%stdout) (w) file exch write==only} bind def
- /write==
- {2 copy write==only pop (\n) writestring} bind def
- /.dict 17 dict dup
- begin def
- /.buf 128 string def
- /.cvp {.buf cvs .p} bind def
- % /.f {the_output_file} def
- /.nop {(-) .p type .cvp (-) .p} bind def
- /.p {.f exch writestring} bind def
- /.p1 {.f exch write} bind def
- /.print
- {dup type .dict exch known
- {dup type exec} {.nop} ifelse
- } bind def
- /integertype /.cvp load def
- /realtype /.cvp load def
- /booleantype /.cvp load def
- /nametype
- {dup xcheck not {(/) .p} if
- dup length .buf length gt
- {dup length string}
- {.buf}
- ifelse cvs .p} bind def
- /arraytype
- {dup rcheck
- {dup xcheck {(})({)} {(])([)} ifelse .p
- exch () exch
- {exch .p .print ( )} forall pop .p}
- {.nop}
- ifelse} bind def
- /operatortype
- {(--) .p .cvp (--) .p} bind def
- /packedarraytype /arraytype load def
- /stringtype
- {dup rcheck
- {(\() .p
- {/.ch exch def
- .ch 32 lt .ch 127 ge or
- {(\\) .p .ch 8#1000 add 8 .buf cvrs 1 3 getinterval .p}
- {.ch 40 eq .ch 41 eq or .ch 92 eq or
- {(\\) .p} if
- .ch .p1}
- ifelse}
- forall (\)) .p}
- {.nop}
- ifelse} bind def
- {0 begin exch /.f exch def .print end} bind dup 0 .dict put
- end
- /write==only exch def
-
- VMDEBUG
-
- % Define the font directory.
- % Make it big to leave room for transformed fonts.
- /FontDirectory 100 dict def
-
- % Define the standard encoding vector.
- /StandardEncoding {
- % \00x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \04x
- /space /exclam /quotedbl /numbersign
- /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus
- /comma /hyphen /period /slash
- /zero /one /two /three
- /four /five /six /seven
- /eight /nine /colon /semicolon
- /less /equal /greater /question
- % \10x
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
- % \14x
- /quoteleft /a /b /c /d /e /f /g
- /h /i /j /k /l /m /n /o
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
- % \20x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \24x
- /.notdef /exclamdown /cent /sterling
- /fraction /yen /florin /section
- /currency /quotesingle /quotedblleft /guillemotleft
- /guilsinglleft /guilsinglright /fi /fl
- /.notdef /endash /dagger /daggerdbl
- /periodcentered /.notdef /paragraph /bullet
- /quotesinglbase /quotedblbase /quotedblright /guillemotright
- /ellipsis /perthousand /.notdef /questiondown
- % \30x
- /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent
- /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
- /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \34x
- /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef
- /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef
- /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef
- /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef
- } cvlit readonly def
-
- % Define the ISO Latin-1 encoding vector.
- % The first half is the same as the standard encoding.
- /ISOLatin1Encoding
- StandardEncoding 256 array copy
- dup 128 128 getinterval
- %****** NOTE: the following are missing in the Adobe documentation,
- %****** but appear in the displayed table:
- %****** macron at 225, dieresis at 230, cedilla at 233, space at 240.
- % \20x
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
- /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
- % \24x
- /space /exclamdown /cent /sterling
- /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft
- /logicalnot /hyphen /registered /macron
- /degree /plusminus /twosuperior /threesuperior
- /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright
- /onequarter /onehalf /threequarters /questiondown
- % \30x
- /Agrave /Aacute /Acircumflex /Atilde
- /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis
- /Igrave /Iacute /Icircumflex /Idieresis
- /Eth /Ntilde /Ograve /Oacute
- /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Yacute /Thorn /germandbls
- % \34x
- /agrave /aacute /acircumflex /atilde
- /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis
- /igrave /iacute /icircumflex /idieresis
- /eth /ntilde /ograve /oacute
- /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex
- /udieresis /yacute /thorn /ydieresis
- 129 -1 roll astore pop readonly def
-
- % Define the Symbol encoding vector.
- /SymbolEncoding {
- % \000
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \040
- /space /exclam /universal /numbersign
- /existential /percent /ampersand /suchthat
- /parenleft /parenright /asteriskmath /plus
- /comma /minus /period /slash
- /zero /one /two /three
- /four /five /six /seven
- /eight /nine /colon /semicolon
- /less /equal /greater /question
- % \100
- /congruent /Alpha /Beta /Chi
- /Delta /Epsilon /Phi /Gamma
- /Eta /Iota /theta1 /Kappa
- /Lambda /Mu /Nu /Omicron
- /Pi /Theta /Rho /Sigma
- /Tau /Upsilon /sigma1 /Omega
- /Xi /Psi /Zeta /bracketleft
- /therefore /bracketright /perpendicular /underscore
- % \140
- /radicalex /alpha /beta /chi
- /delta /epsilon /phi /gamma
- /eta /iota /phi1 /kappa
- /lambda /mu /nu /omicron
- /pi /theta /rho /sigma
- /tau /upsilon /omega1 /omega
- /xi /psi /zeta /braceleft
- /bar /braceright /similar /.notdef
- % \200
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
- % \240
- /.notdef /Upsilon1 /minute /lessequal
- /fraction /infinity /florin /club
- /diamond /heart /spade /arrowboth
- /arrowleft /arrowup /arrowright /arrowdown
- /degree /plusminus /second /greaterequal
- /multiply /proportional /partialdiff /bullet
- /divide /notequal /equivalence /approxequal
- /ellipsis /arrowvertex /arrowhorizex /carriagereturn
- % \300
- /aleph /Ifraktur /Rfraktur /weierstrass
- /circlemultiply /circleplus /emptyset /intersection
- /union /propersuperset /reflexsuperset /notsubset
- /propersubset /reflexsubset /element /notelement
- /angle /gradient /registerserif /copyrightserif
- /trademarkserif /product /radical /dotmath
- /logicalnot /logicaland /logicalor /arrowdblboth
- /arrowdblleft /arrowdblup /arrowdblright /arrowdbldown
- % \340
- /lozenge /angleleft /registersans /copyrightsans
- /trademarksans /summation /parenlefttp /parenleftex
- /parenleftbt /bracketlefttp /bracketleftex /bracketleftbt
- /bracelefttp /braceleftmid /braceleftbt /braceex
- /.notdef /angleright /integral /integraltp
- /integralex /integralbt /parenrighttp /parenrightex
- /parenrightbt /bracketrighttp /bracketrightex /bracketrightbt
- /bracerighttp /bracerightmid /bracerightbt /.notdef
- } cvlit readonly def
-
- % Construct a dictionary of all available devices.
- mark
- % Loop until the getdevice gets a rangecheck.
- 0 { {dup getdevice exch 1 add} loop} stopped pop
- pop 1 add dict /devicedict exch def
- devicedict begin
- counttomark {dup devicename cvn exch def} repeat
- end
- pop % pop the mark
- $error /newerror false put % remove error indication
-
- % Define statusdict, for the benefit of programs
- % that think they are running on a LaserWriter or similar printer.
- (statusd.ps) run
-
- % Establish a default upper limit in the character cache,
- % namely, 10 times the average expected character size.
- mark
- cachestatus 5 index 10 mul 2 index 1 max idiv % bmax, cmax
- mark exch dup 10 idiv exch setcacheparams
- cleartomark
- % Conditionally disable the character cache.
- NOCACHE { 1 setcachelimit } if
-
- VMDEBUG
-
- % Create a null font. This is the initial font.
- 8 dict dup begin
- /FontMatrix [ 1 0 0 1 0 0 ] def
- /PaintType 0 def
- /FontType 3 def
- /FontName () def
- /Encoding StandardEncoding def
- /FontBBox { 0 0 0 0 } def
- /BuildChar { pop pop 0 0 setcharwidth } bind def
- end
- /NullFont exch definefont setfont
-
- % Load the standard font environment.
- (gfonts.ps) run
-
- % Close up systemdict.
- end
- % We should make systemdict readonly; however, statusd.ps adds new entries
- % to systemdict. Maybe dictionaries should have an "add-only" mode....
- %%%%%% systemdict readonly pop
-
- % Establish a default environment.
- DISPLAYING
- { defaultdevice
- systemdict /DEVICEWIDTH known systemdict /DEVICEHEIGHT known or
- { matrix deviceparams
- exch /DEVICEWIDTH where
- { pop pop DEVICEWIDTH }
- if
- exch /DEVICEHEIGHT where
- { pop pop DEVICEHEIGHT
- % Replace the Y translation if the Y axis is inverted
- 2 index 5 get 0 gt
- { 2 index 5 2 index put
- }
- if
- }
- if
- defaultdevice 4 1 roll makedevice
- counttomark 1 add 1 roll cleartomark
- }
- if setdevice
- }
- { nulldevice
- }
- ifelse
- 1 setflat % initgraphics doesn't set this
- { } settransfer % ditto
- % The following 'ordered dither' spot function was contributed by
- % Gregg Townsend. Thanks, Gregg!
- 72 72 dtransform abs exch abs min % min(|dpi x|,|dpi y|)
- 16.001 div 0 % not 16: avoids rounding problems
- { 1 add 7.9999 mul cvi exch 1 add 7.9999 mul cvi 16 mul add <
- 0E 8E 2E AE 06 86 26 A6 0C 8C 2C AC 04 84 24 A4
- CE 4E EE 6E C6 46 E6 66 CC 4C EC 6C C4 44 E4 64
- 3E BE 1E 9E 36 B6 16 96 3C BC 1C 9C 34 B4 14 94
- FE 7E DE 5E F6 76 D6 56 FC 7C DC 5C F4 74 D4 54
- 01 81 21 A1 09 89 29 A9 03 83 23 A3 0B 8B 2B AB
- C1 41 E1 61 C9 49 E9 69 C3 43 E3 63 CB 4B EB 6B
- 31 B1 11 91 39 B9 19 99 33 B3 13 93 3B BB 1B 9B
- F1 71 D1 51 F9 79 D9 59 F3 73 D3 53 FB 7B DB 5B
- 0D 8D 2D AD 05 85 25 A5 0F 8F 2F AF 07 87 27 A7
- CD 4D ED 6D C5 45 E5 65 CF 4F EF 6F C7 47 E7 67
- 3D BD 1D 9D 35 B5 15 95 3F BF 1F 9F 37 B7 17 97
- FD 7D DD 5D F5 75 D5 55 FF 7F DF 5F F7 77 D7 57
- 02 82 22 A2 0A 8A 2A AA 00 80 20 A0 08 88 28 A8
- C2 42 E2 62 CA 4A EA 6A C0 40 E0 60 C8 48 E8 68
- 32 B2 12 92 3A BA 1A 9A 30 B0 10 90 38 B8 18 98
- F2 72 D2 52 FA 7A DA 5A F0 70 D0 50 F8 78 D8 58
- > exch get 256 div } bind setscreen
- initgraphics
- DISPLAYING
- { erasepage
- } if
-
- VMDEBUG
-
- % The interpreter will run the initial procedure (start).
-