%
% Version 3.3.2 prologue for DMD bitmap files.
%

/#copies 1 store
/aspectratio 1 def
/formsperpage 1 def
/landscape false def
/magnification 1 def
/margin 0 def
/orientation 0 def
/rotation 1 def
/screenres 100 def
/xoffset 0 def
/yoffset 0 def

/useclippath true def
/pagebbox [0 0 612 792] def

/inch {72 mul} bind def
/min {2 copy gt {exch} if pop} bind def

/setup {
	counttomark 2 idiv {def} repeat pop

	landscape {/orientation 90 orientation add def} if

	pagedimensions
	xcenter ycenter translate
	orientation rotation mul rotate
	xoffset inch yoffset inch translate
	magnification dup aspectratio mul scale

	/height height margin sub def
	/width width margin sub def
} def

/pagedimensions {
	useclippath {
		/pagebbox [clippath pathbbox newpath] def
	} if
	pagebbox aload pop
	4 -1 roll exch 4 1 roll 4 copy
	landscape {4 2 roll} if
	sub /width exch def
	sub /height exch def
	add 2 div /xcenter exch def
	add 2 div /ycenter exch def
	userdict /gotpagebbox true put
} def

/pagesetup {/page exch def} bind def

/bitmap {
	/scanlines exch def
	/scanlength exch def
	/flip exch def
	/v8format exch def

	/bytelength scanlength 8 idiv def
	/picstr bytelength string def
	/lpicstr bytelength string def
	/bytelength bytelength 1 sub def

	gsave

% First the overall scaling.

	height scanlines div width scanlength div min
	72 screenres div min
	dup scale

% Followed by the one for the unit square.

	scanlength neg 2 div scanlines neg 2 div translate
	scanlength scanlines scale
	v8format {getv8bitmap} {getbitmap} ifelse
	grestore
} bind def

/getbitmap {
	scanlength scanlines flip [scanlength 0 0 scanlines neg 0 scanlines] {
		0 {
			currentfile token pop dup
			0 eq {pop pop exit} if
			/charcount exch def
			picstr 1 index charcount getinterval
			/repl exch def
			currentfile repl readhexstring pop pop
			charcount add
			currentfile token pop {
				picstr 1 index repl putinterval
				charcount add
			} repeat
		} loop
		picstr
	} imagemask
} bind def

/getv8bitmap {
	scanlength scanlines flip not [scanlength 0 0 scanlines neg 0 scanlines] {
		0 {
			currentfile token pop dup
			0 eq {pop pop exit} if
			/charcount exch def
			picstr 1 index charcount getinterval
			/repl exch def
			currentfile repl readhexstring pop pop
			charcount add
			currentfile token pop {
				picstr 1 index repl putinterval
				charcount add
			} repeat
		} loop
		0 0 picstr {
			exch lpicstr exch get xor
			lpicstr exch 2 index exch put
			1 add dup
		} forall
		pop pop lpicstr
	} imagemask
} bind def

/done {/lastpage where {pop lastpage} if} def
