// RSilPressAux.bcpl // Too much code generated in RSilPress.bcpl get "sysdefs.d" get "Sil.defs" external [ WSSB ] external [ @FontNames @FontUsed FontUsedTwo FontSet // = 1 if le 4 fonts defined in user.cm PressPass // = Number of passes needed to generate the font dir CurrentPassNumber ] let MarkFontUsed(slink) be [ let line = slink>>item.line eq 1 let macro = slink>>item.macro eq 1 let textfont = slink>>item.font le 14 let S = textfont & not line & not macro if S then SetFontUsedBit(slink>>item.fullfont) ] and PutString(slink , st) be [ // CurrentPassNumber = 0 ---> write everything // CurrentPassNumber = 1 ---> write fonts le 15 // CurrentPassNumber = 2 ---> write fonts ge 16 & le 28 let line = slink>>item.line eq 1 let macro = slink>>item.macro eq 1 let font = slink>>item.font let textfont = font le 14 let WritePass = false if CurrentPassNumber eq 0 then WritePass = true if (CurrentPassNumber eq 1) & (font le 7) then WritePass = true if (CurrentPassNumber eq 2) & (font ge 8) then WritePass = true let S = textfont & not line & not macro if S & WritePass then WSSB(st,lv(slink>>item.string)) ] (635)\b67B and SetFontUsedBit(xfnt) be [ test xfnt le 15 ifso FontUsed = FontUsed % ( 1 lshift xfnt) ifnot FontUsedTwo = FontUsedTwo % ( 1 lshift (xfnt - 16) ) ]  // r270 font alignment and returns the number of font sets needed and FontUtil(FontAlign) = valof [ FontSet = 1 // Font Alignment for R270 fonts let DefinedFonts = 0 for font = 0 to 6 do [ let name = FontNames + 25*font let siz = GetNum(name,0) if siz ne 0 then DefinedFonts = DefinedFonts + 1 let triangle = StEq("triangles14",name,true) let FontItem = FontOrientation!font let Rotation = FontItem & #377 if Rotation eq 3 & not triangle then [ FontAlign!font = 2 if siz ge 10 then FontAlign!font = 3 ] if Rotation eq 1 & not triangle then [ FontAlign!font = 10 ] ] if DefinedFonts ge 5 then FontSet = 2 resultis FontSet // FontSet is 1 or 2 ]  and WriteRemcm(Host,PressFile) be [ let remcm = OpenFile("REM.CM",ksTypeReadWrite,1,0,fpRemCm,0,SilZone) if remcm eq 0 then finish let nc=0 until Endofs(remcm) do [ SpaceBase!nc=Gets(remcm); nc=nc+1 ] Resets(remcm) Wss(remcm,"Empress "); Wss(remcm,PressFile); Wss(remcm," ") if ncopies ne 1 then [ Wns(remcm,ncopies𒿑); Wss(remcm,"/c ") ] if Host!0 then [ Wss(remcm,Host) ] Wss(remcm,"*n") for i=0 to nc-1 do Puts(remcm, SpaceBase!i) Closes(remcm) ]