DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T g

⟦59caa8b1c⟧ TextFile

    Length: 10656 (0x29a0)
    Types: TextFile
    Names: »ghost.ps«

Derivation

└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89
    └─⟦ff23ba0e6⟧ »./ghostscript-1.3.tar.Z« 
        └─⟦a24a58cd3⟧ 
            └─⟦this⟧ »ghost.ps« 

TextFile

%    Copyright (C) 1989 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, version 1.3.
% When this is run, systemdict is still writable.

% Acquire the debugging flags.
currentdict /DEBUG known   /DEBUG exch def
currentdict /NODISPLAY known   not /DISPLAYING exch def

%%%%%%
DEBUG {vmstatus pop exch pop (        ) cvs print (\n) print flush} if
%%%%%%

% 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

% Define true and false.
/true 0 0 eq def
/false 0 1 eq def

% Acquire the default device.
/defaultdevice currentdevice def

% Define the predefined procedures, in alphabetical order.
/[	/mark load def
/] 	{counttomark array astore exch pop} bind def
/=	{=only (\n) print} bind def
/abs	{dup 0 lt {neg} if} 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
/defaultmatrix
	{currentdevice exch deviceparams pop pop} bind def
/.echo /echo load def
/.echo.mode true def
/echo	{dup /.echo.mode exch def .echo} bind def
/.findfile			% find file for run,
				% name -> file true or name false
	{{(r) file} stopped
	  {pop  systemdict /LIB known
	    {systemdict /LIB get exch concatstrings
	     {(r) file} stopped
	       {pop false}
	       {true}
	      ifelse
	    }
	    {false}
	   ifelse}
	  {true}
	 ifelse} bind def
/framedevice
	{pop exch 8 mul exch
	 defaultdevice 4 1 roll makedevice setdevice} 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	{(GS>) print flush} def
/pstack	{0 1 count 3 sub {index ==} for} bind def
/run	{.findfile
	  {cvx execute}
	  {(r) file}		% let the error happen
	 ifelse} bind def
%.setdevice does all of setdevice except initclip and initmatrix.
/setdevice
	{.setdevice initclip initmatrix} bind def
%.setgray is the same as setgray without the transfer function.
/setgray
	{currenttransfer exec .setgray} bind def
/showpage
	{copypage
	 % Beep the bell and wait for the user to hit a character
	 (\007) print flush
	 .echo.mode false echo
	   (%stdin) (r) file read {pop} if
	 echo
	 erasepage initgraphics} bind def
/stack	{0 1 count 3 sub {index =} for} bind def
/start	{ (Ghostscript ) print version print (\n) print flush } 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
	(1.3) def
% Define auxiliary procedures needed for the above.
/=only	{dup type /stringtype ne
	{(                                        ) cvs} if print} bind def
/.identmatrix		% a read-only identity matrix
	matrix readonly def
/.tempmatrix		% a temporary matrix
	matrix def

% 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

%%%%%%
DEBUG {vmstatus pop = pop flush} if
%%%%%%

% 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 == procedure.
/==	{==only (\n) print} bind def
/.dict 13 dict dup
begin def
  /.buf 128 string def
  /.cvp {.buf cvs print} bind def
  /.print
	{dup type .dict exch known
	 {dup type exec} {(-) print type .cvp (-) print} ifelse}
	bind def
  /integertype /.cvp load def
  /realtype /.cvp load def
  /booleantype /.cvp load def
  /nametype {dup xcheck not {(/) print} if .cvp} bind def
  /arraytype
	{dup xcheck {(})({)} {(])([)} ifelse print exch () exch
	 {exch print .print ( )} forall pop print} bind def
  /operatortype
	{systemdict
	 {2 index eq {exch pop exit} {pop} ifelse}
	 forall =only} bind def
  /packedarraytype /arraytype load def
  /stringtype
	{(\() print
	 {/.ch exch def
	  .ch 32 lt .ch 127 ge or .ch 40 eq or .ch 41 eq or
	  {(\\) print .ch 8#1000 add 8 .buf cvrs 1 3 getinterval print}
	  {( ) dup 0 .ch put print}
	  ifelse}
	 forall (\)) print} bind def
{0 begin .print end} bind dup 0 .dict put
end
/==only exch def

%%%%%%
DEBUG {vmstatus pop = pop flush} if
%%%%%%

% Define the font directory.
/FontDirectory 20 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 /guilsingleft /guilsingright /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

% Acquire the device parameters.
(gdevs.ps) run

% Define a dummy statusdict for the benefit of programs
% that think they are running on a LaserWriter or similar printer.
/statusdict 50 dict def

% Close up systemdict.
end
systemdict readonly pop

% Establish a default upper limit in the character cache,
% namely, 10 times the average expected character size.
cachestatus 5 index 10 mul 2 index 1 max idiv		% bmax, cmax
 mark exch dup 10 idiv exch setcacheparams
 7 {pop} repeat
mark 0 0 setcacheparams
	
%%%%%%
DEBUG {vmstatus pop = pop flush} if
%%%%%%

% Load the standard font.
(gfonts.ps) run

% Establish a default environment.
% Map the screen height to an 11" page.
% This is not necessarily the best compromise.
DISPLAYING
 { .device.height 72 11 mul div
   [1 index .aspect.ratio mul 0 0 4 index neg 0 .device.height]
   .device.width 8 idiv .device.height { } framedevice pop
 }
 { nulldevice
 } ifelse
1 setflat
10 45 {dup mul exch dup mul add 1 exch sub} bind setscreen
{ } settransfer
initgraphics
DISPLAYING
 { erasepage
 } if

%%%%%%
DEBUG {vmstatus pop = pop   systemdict length = flush} if
%%%%%%

% The interpreter will run the initial procedure (start).