{ Copyright (C) 1986 Adam Fritz, 133 Main St., Afton, N.Y. 13730 } procedure InitFont ; var i, j, n : integer ; begin { get Hershey name } write ('Hershey name: ') ; readln (bName) ; { open Hershey index } biName := bName + '.DND' ; Assign (biID, biName) ; Reset (biID) ; if IOResult <> 0 then begin writeln ('Error: Unable to Open ',biName) ; BIOS(0) end ; { open Hershey data } bdName := bName + '.DAT' ; Assign (bdID, bdName) ; Reset (bdID) ; if IOResult <> 0 then begin writeln ('Error: Unable to Open ',bdName) ; BIOS(0) end ; { open Hershey designation file } write ('Hershey designation file name: ') ; readln (hName) ; Assign (hID, hName) ; Reset (hID) ; if IOResult <> 0 then begin writeln ('Error: Unable to Open ',hName) ; close (bdID) ; close (biID) ; BIOS(0) end ; { get font name } write ('Font name: ') ; readln (fName) ; { create font index file } fiName := fName + '.FND' ; Assign (fiID, fiName) ; Rewrite (fiID) ; if IOResult <> 0 then begin writeln ('Error: Unable to Create ',fiName) ; close (hID) ; close (bdID) ; close (biID) ; BIOS(0) end ; { create font data file } fdName := fName + '.FNT' ; Assign (fdID, fdName) ; Rewrite (fdID) ; if IOResult <> 0 then begin writeln ('Error: Unable to Create Font Data File ',fdName) ; close (fiID) ; close (hID) ; close (bdID) ; close (biID) ; BIOS(0) end ; { get scaling and rotation parameters } repeat write ('X scale factor: ') ; readln (xScale) until (xScale > 0) and (xScale <= xScalex) ; repeat write ('Y scale factor: ') ; readln (yScale) until (yScale > 0) and (yScale <= yScalex) ; write ('Rotation code: ') ; readln (i) ; Rotate := i <> 0 ; { initialize Hershey index } i := 0 ; repeat readln (biID, n, bIndex[i].iRec, bIndex[i].iOff) ; bIndex[i].iNum := n ; i := i + 1 until (n = 0) or (i > nIndexx) ; nbIndex := i ; close (biID) ; { initialize font index } for i := 0 to 127 do begin fIndex[i].iDef := 0 ; fIndex[i].iOff := 0 end ; { initialize font data } fOffset := 0 ; dOffset := 0 ; { select fill pattern } if yScale = 1 then for i := xfPatn to xfPatx do for j := yfPatn to yfPatx do fPat[i,j] := fPat1[i,j] else if yScale = 2 then for i := xfPatn to xfPatx do for j := yfPatn to yfPatx do fPat[i,j] := fPat2[i,j] else if yScale = 3 then for i := xfPatn to xfPatx do for j := yfPatn to yfPatx do fPat[i,j] := fPat3[i,j] else for i := xfPatn to xfPatx do for j := yfPatn to yfPatx do fPat[i,j] := fPat4[i,j] end ; { Copyright (C) 1986 Adam Fritz, 133 Main St., Afton, N.Y. 13730 }