<> <> <> DIRECTORY CD, CDPlot, CDSil, CMos, CMosB, NMos; CDPlotPDInit: CEDAR PROGRAM IMPORTS CDSil, CMos, CMosB, NMos EXPORTS CDPlot = BEGIN OPEN CDPlot; NEW4: PROC[stipple: Stipple4] RETURNS[REF] = {RETURN[IF stipple = ALL[0] THEN NIL ELSE NEW[Stipple4 _ stipple]]}; NEW8: PROC[stipple: Stipple8] RETURNS[REF] = {RETURN[IF stipple = ALL[0] THEN NIL ELSE NEW[Stipple8 _ stipple]]}; NEWLayerTonerSipples: PROC[size: CD.Layer] RETURNS[lts: REF LayerTonerSipples] = { lts _ NEW[LayerTonerSipples[size]]; FOR layer: CD.Layer IN [0..size) DO FOR toner: Toner IN Toner DO lts[layer][toner] _ NIL ENDLOOP ENDLOOP }; combined: CD.Layer = CD.combined; highlight: CD.Layer = CD.highLightShade; error: CD.Layer = CD.highLightError; LTS: REF LayerTonerSipples; interpPrinterLTS: PUBLIC REF InterpPrinterLTS _ NEW[InterpPrinterLTS _ ALL[ALL[NIL]]]; printerToners: PUBLIC REF PrinterToners _ NEW[PrinterToners _ ALL[ALL[FALSE]]]; F: BOOL = FALSE; -- black cyan mag yellow printerToners[raven300 ] _ [TRUE, F, F, F, F,F,F,F,F,F,F,F,F,F,F,F]; printerToners[raven384 ] _ [TRUE, F, F, F, F,F,F,F,F,F,F,F,F,F,F,F]; printerToners[plateMaker ] _ [TRUE, F, F, F, F,F,F,F,F,F,F,F,F,F,F,F]; printerToners[puffin ] _ [F, TRUE, TRUE, TRUE, F,F,F,F,F,F,F,F,F,F,F,F]; printerToners[colorVersatec ] _ [TRUE, TRUE, TRUE, TRUE, F,F,F,F,F,F,F,F,F,F,F,F]; printerToners[versatec ] _ [TRUE, F, F, F, F,F,F,F,F,F,F,F,F,F,F,F]; printerToners[color400 ] _ [TRUE, TRUE, TRUE, TRUE, F,F,F,F,F,F,F,F,F,F,F,F]; printerToners[c150 ] _ [TRUE, TRUE, TRUE, TRUE, F,F,F,F,F,F,F,F,F,F,F,F]; { OPEN CDSil; nofLayers: CD.Layer = CDSil.xblue+1; interpPrinterLTS[sil][versatec] _ interpPrinterLTS[sil][c150] _ LTS _ NEWLayerTonerSipples[nofLayers]; LTS[error ][black] _ NEW8[[20H, 20H, 0FFH, 20H, 20H, 20H, 20H, 20H]]; LTS[highlight ][cyan] _ NEW8[[40H, 40H, 40H, 40H, 0FFH, 40H, 40H, 40H]]; LTS[combined ][magenta] _ NEW8[[10H, 10H, 10H, 10H, 10H, 10H, 0FFH, 10H]]; LTS[xgreen ][cyan] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xgreen ][yellow] _ NEW4[[0AH, 4, 0AH, 0]]; LTS[xred ][yellow] _ NEW4[[5, 0, 5, 0]]; LTS[xred ][magenta] _ NEW4[[5, 0, 5, 0]]; LTS[xblue ][cyan] _ NEW4[[5, 0, 5, 0]]; LTS[xneutral ][black] _ NEW4[[5, 0AH, 5, 0AH]]; <> LTS[xsmoke ][black] _ NEW4[[2, 0, 8, 0]]; LTS[xyellow ][yellow] _ NEW4[[0AH, 0AH, 3, 3]]; interpPrinterLTS[silBW][versatec] _ interpPrinterLTS[silBW][c150] _ LTS _ NEW[LayerTonerSipples[CDSil.xblue+1]]; LTS[error ][black] _ NEW4[[0FH, 0FH, 0FH, 0FH]]; LTS[highlight ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[combined ][black] _ NEW4[[0FH, 0FH, 0FH, 0FH]]; LTS[xneutral ][black] _ NEW4[[0FH, 0FH, 0FH, 0FH]]; LTS[xred ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xyellow ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xgreen ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xcyan ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xviolet ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xmagenta ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xwhite ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xbrown ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xorange ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xlime ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xturquise ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xaqua ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xultraviolet ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xpink ][black] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[xsmoke ][black] _ NEW4[[0AH, 0, 0AH, 0]]; interpPrinterLTS[sticks][c150] _ LTS _ NEW[LayerTonerSipples[CDSil.xblue+1]]; LTS[error ][cyan] _ NEW4[[0, 0, 0, 0]]; LTS[highlight ][cyan] _ NEW4[[0, 0, 0, 0]]; LTS[combined ][black] _ NEW4[[15,15,15,15]]; LTS[xgreen ][cyan] _ NEW4[[10, 5, 10, 5]]; LTS[xgreen ][yellow] _ NEW4[[10, 5, 10, 5]]; LTS[xred ][yellow] _ NEW4[[15,15,15,15]]; LTS[xred ][magenta] _ NEW4[[15,15,15,15]]; LTS[xblue ][cyan] _ NEW4[[15,15,15,15]]; LTS[xneutral ][black] _ NEW4[[15,15,15,15]]; <> LTS[xsmoke ][black] _ NEW4[[2, 0, 8, 0]]; LTS[xyellow ][yellow] _ NEW4[[15,15,15,15]]; }; { OPEN NMos; nofLayers: CD.Layer = NMos.cut2+1; interpPrinterLTS[nmos][versatec] _ interpPrinterLTS[nmos][c150] _ LTS _ NEWLayerTonerSipples[nofLayers]; LTS[error ][black] _ NEW8[[20H, 20H, 0FFH, 20H, 20H, 20H, 20H, 20H]]; LTS[highlight ][cyan] _ NEW8[[40H, 40H, 40H, 40H, 0FFH, 40H, 40H, 40H]]; LTS[combined ][magenta] _ NEW8[[10H, 10H, 10H, 10H, 10H, 10H, 0FFH, 10H]]; LTS[dif ][cyan] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[dif ][yellow] _ NEW4[[0AH, 4, 0AH, 0]]; LTS[pol ][yellow] _ NEW4[[5, 0, 5, 0]]; LTS[pol ][magenta] _ NEW4[[5, 0, 5, 0]]; LTS[met ][cyan] _ NEW4[[5, 0, 5, 0]]; LTS[cut ][black] _ NEW4[[5, 0AH, 5, 0AH]]; LTS[met2 ][cyan] _ NEW8[[1, 2, 4, 8, 10H, 20H, 40H, 80H]]; LTS[cut2 ][black] _ NEW4[[0CH, 0CH, 3, 3]]; LTS[ovg ][cyan] _ NEW8[[0, 20H, 20H, 0F8H, 20H, 20H, 00H, 00H]]; LTS[bur ][black] _ NEW4[[2, 0, 8, 0]]; LTS[imp ][yellow] _ NEW4[[0AH, 0AH, 3, 3]]; LTS[imp0 ][yellow] _ NEW4[[0FH, 0, 0, 0]]; LTS[impWeak ][yellow] _ NEW4[[2, 2, 2, 2]]; interpPrinterLTS[nmos][color400] _ LTS _ NEW[LayerTonerSipples[NMos.cut2+1]]; LTS[error ][black] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][magenta] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][cyan] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][yellow] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[highlight ][cyan] _ NEW8[[64, 64, 64, 64, 255, 64, 64, 64]]; LTS[combined ][magenta] _ NEW8[[16, 16, 16, 16, 16, 16, 255, 16]]; LTS[dif ][cyan] _ NEW4[[12, 9, 3, 6]]; LTS[dif ][yellow] _ NEW4[[12+1, 9, 3+4, 6]]; LTS[pol ][yellow] _ NEW4[[9, 3, 6, 12]]; LTS[pol ][magenta] _ NEW4[[9, 3, 6, 12]]; LTS[met ][cyan] _ NEW4[[6, 12, 9, 3]]; LTS[cut ][black] _ NEW4[[15,15,15,15]]; LTS[cut ][cyan] _ NEW4[[15,15,15,15]]; LTS[cut ][yellow] _ NEW4[[15,15,15,15]]; LTS[cut ][magenta] _ NEW4[[15,15,15,15]]; LTS[met2 ][cyan] _ NEW8[[24, 48, 96, 192, 129, 3, 6, 12]]; LTS[cut2 ][black] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][cyan] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][yellow] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][magenta] _ NEW4[[3, 6, 12, 9]]; LTS[ovg ][cyan] _ NEW8[[0, 48, 48, 252, 252, 48, 48, 0]]; LTS[imp0 ][yellow] _ NEW4[[1, 2, 4, 8]]; LTS[impWeak ][yellow] _ NEW4[[1, 2, 4, 8]]; LTS[bur ][black] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][cyan] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][yellow] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][magenta] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[imp ][yellow] _ NEW4[[15,15,15,15]]; }; { OPEN CMos; nofLayers: CD.Layer = CMos.cut2+1; interpPrinterLTS[cmosA][versatec] _ interpPrinterLTS[cmosA][c150] _ LTS _ NEWLayerTonerSipples[nofLayers]; LTS[error ][black] _ NEW8[[20H, 20H, 0FFH, 20H, 20H, 20H, 20H, 20H]]; LTS[highlight ][cyan] _ NEW8[[40H, 40H, 40H, 40H, 0FFH, 40H, 40H, 40H]]; LTS[combined ][magenta] _ NEW8[[10H, 10H, 10H, 10H, 10H, 10H, 0FFH, 10H]]; LTS[ndif ][cyan] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[ndif ][yellow] _ NEW4[[0AH, 4, 0AH, 0]]; LTS[pwellCont ][magenta] _ NEW4[[2, 2, 8, 0]]; LTS[pwellCont ][cyan] _ NEW4[[0, 0, 0, 8]]; LTS[nwellCont ][cyan] _ NEW4[[2, 2, 8, 0]]; LTS[nwellCont ][yellow] _ NEW4[[2, 2, 8, 0]]; LTS[nwellCont ][magenta] _ NEW4[[0, 0, 0, 8]]; LTS[pol ][yellow] _ NEW4[[5, 0, 5, 0]]; LTS[pol ][magenta] _ NEW4[[5, 0, 5, 0]]; LTS[met ][cyan] _ NEW4[[5, 0, 5, 0]]; LTS[cut ][black] _ NEW4[[5, 0AH, 5, 0AH]]; LTS[met2 ][cyan] _ NEW8[[1, 2, 4, 8, 10H, 20H, 40H, 80H]]; LTS[cut2 ][black] _ NEW4[[0CH, 0CH, 3, 3]]; LTS[ovg ][cyan] _ NEW8[[0, 20H, 20H, 0F8H, 20H, 20H, 00H, 00H]]; LTS[nwell ][yellow] _ NEW4[[0, 6, 0, 0]]; LTS[bur ][black] _ NEW4[[2, 0, 8, 0]]; LTS[pdif ][cyan] _ NEW4[[8, 2, 4, 1]]; LTS[pdif ][yellow] _ NEW4[[8, 6, 4, 1]]; LTS[imp ][yellow] _ NEW4[[0AH, 0AH, 3, 3]]; <> LTS[pwell ][black] _ NEW4[[0FH, 0FH, 0, 0]]; <> interpPrinterLTS[cmosA][color400] _ LTS _ NEW[LayerTonerSipples[CMos.cut2+1]]; LTS[combined ][magenta] _ NEW8[[16, 16, 16, 16, 16, 16, 255, 16]]; LTS[highlight ][cyan] _ NEW8[[64, 64, 64, 64, 255, 64, 64, 64]]; LTS[error ][black] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][magenta] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][cyan] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][yellow] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[ndif ][cyan] _ NEW4[[12, 9, 3, 6]]; LTS[ndif ][yellow] _ NEW4[[12+1, 9, 3+4, 6]]; LTS[pwellCont ][cyan] _ NEW4[[0, 6, 6, 0]]; LTS[pwellCont ][yellow] _ NEW4[[0, 6, 6, 0]]; LTS[pol ][yellow] _ NEW4[[9, 3, 6, 12]]; LTS[pol ][magenta] _ NEW4[[9, 3, 6, 12]]; LTS[met ][cyan] _ NEW4[[6, 12, 9, 3]]; LTS[nwell ][yellow] _ NEW4[[1, 2, 4, 8]]; LTS[pdif ][cyan] _ NEW4[[12, 9, 3, 6]]; LTS[pdif ][yellow] _ NEW4[[12, 9, 3, 6]]; LTS[imp ][yellow] _ NEW4[[15,15,15,15]]; LTS[cut ][black] _ NEW4[[15,15,15,15]]; LTS[cut ][cyan] _ NEW4[[15,15,15,15]]; LTS[cut ][yellow] _ NEW4[[15,15,15,15]]; LTS[cut ][magenta] _ NEW4[[15,15,15,15]]; LTS[cut2 ][black] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][cyan] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][yellow] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][magenta] _ NEW4[[3, 6, 12, 9]]; LTS[ovg ][cyan] _ NEW8[[0, 48, 48, 252, 252, 48, 48, 0]]; LTS[met2 ][cyan] _ NEW8[[24, 48, 96, 192, 129, 3, 6, 12]]; LTS[nwellCont ][cyan] _ NEW8[[51, 51, 102, 102, 204, 204, 153, 153]]; LTS[nwellCont ][yellow] _ NEW8[[51, 51, 102, 102, 204, 204, 153, 153]]; LTS[bur ][black] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][cyan] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][yellow] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][magenta] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[pwell ][black] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; LTS[pwell ][cyan] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; LTS[pwell ][yellow] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; LTS[pwell ][magenta] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; }; { OPEN CMosB; nofLayers: CD.Layer = CMosB.comment+1; interpPrinterLTS[cmosB][versatec] _ interpPrinterLTS[cmosB][c150] _ LTS _ NEWLayerTonerSipples[nofLayers]; LTS[error ][black] _ NEW8[[20H, 20H, 0FFH, 20H, 20H, 20H, 20H, 20H]]; LTS[highlight ][cyan] _ NEW8[[40H, 40H, 40H, 40H, 0FFH, 40H, 40H, 40H]]; LTS[combined ][magenta] _ NEW8[[10H, 10H, 10H, 10H, 10H, 10H, 0FFH, 10H]]; LTS[comment ][black] _ NEW4[[15,15,15,15]]; LTS[ndif ][cyan] _ NEW4[[0AH, 0, 0AH, 0]]; LTS[ndif ][yellow] _ NEW4[[0AH, 4, 0AH, 0]]; LTS[pwellCont ][magenta] _ NEW4[[2, 2, 8, 0]]; LTS[pwellCont ][cyan] _ NEW4[[0, 0, 0, 8]]; LTS[nwellCont ][cyan] _ NEW4[[2, 2, 8, 0]]; LTS[nwellCont ][yellow] _ NEW4[[2, 2, 8, 0]]; LTS[nwellCont ][magenta] _ NEW4[[0, 0, 0, 8]]; LTS[pol ][yellow] _ NEW4[[5, 0, 5, 0]]; LTS[pol ][magenta] _ NEW4[[5, 0, 5, 0]]; LTS[met ][cyan] _ NEW4[[5, 0, 5, 0]]; LTS[cut ][black] _ NEW4[[5, 0AH, 5, 0AH]]; LTS[met2 ][cyan] _ NEW8[[1, 2, 4, 8, 10H, 20H, 40H, 80H]]; LTS[cut2 ][black] _ NEW4[[0CH, 0CH, 3, 3]]; LTS[ovg ][cyan] _ NEW8[[0, 20H, 20H, 0F8H, 20H, 20H, 00H, 00H]]; LTS[nwell ][yellow] _ NEW4[[0, 6, 0, 0]]; LTS[bur ][black] _ NEW4[[2, 0, 8, 0]]; LTS[pdif ][cyan] _ NEW4[[8, 2, 4, 1]]; LTS[pdif ][yellow] _ NEW4[[8, 6, 4, 1]]; LTS[imp ][yellow] _ NEW4[[0AH, 0AH, 3, 3]]; <> LTS[pwell ][black] _ NEW4[[0FH, 0FH, 0, 0]]; <> interpPrinterLTS[cmosB][color400] _ LTS _ NEW[LayerTonerSipples[CMosB.comment+1]]; LTS[error ][black] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][magenta] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][cyan] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[error ][yellow] _ NEW8[[32, 32, 255, 32, 32, 32, 32, 32]]; LTS[highlight ][cyan] _ NEW8[[64, 64, 64, 64, 255, 64, 64, 64]]; LTS[combined ][magenta] _ NEW8[[16, 16, 16, 16, 16, 16, 255, 16]]; LTS[ndif ][cyan] _ NEW4[[12, 9, 3, 6]]; LTS[ndif ][yellow] _ NEW4[[12+1, 9, 3+4, 6]]; LTS[pwellCont ][cyan] _ NEW4[[0, 6, 6, 0]]; LTS[pwellCont ][yellow] _ NEW4[[0, 6, 6, 0]]; LTS[nwellCont ][cyan] _ NEW8[[51, 51, 102, 102, 204, 204, 153, 153]]; LTS[nwellCont ][yellow] _ NEW8[[51, 51, 102, 102, 204, 204, 153, 153]]; LTS[pol ][yellow] _ NEW4[[9, 3, 6, 12]]; LTS[pol ][magenta] _ NEW4[[9, 3, 6, 12]]; LTS[met ][cyan] _ NEW4[[6, 12, 9, 3]]; LTS[cut ][black] _ NEW4[[15,15,15,15]]; LTS[cut ][cyan] _ NEW4[[15,15,15,15]]; LTS[cut ][yellow] _ NEW4[[15,15,15,15]]; LTS[cut ][magenta] _ NEW4[[15,15,15,15]]; LTS[comment ][black] _ NEW4[[15,15,15,15]]; LTS[comment ][cyan] _ NEW4[[15,15,15,15]]; LTS[comment ][yellow] _ NEW4[[15,15,15,15]]; LTS[comment ][magenta] _ NEW4[[15,15,15,15]]; LTS[met2 ][cyan] _ NEW8[[24, 48, 96, 192, 129, 3, 6, 12]]; LTS[cut2 ][black] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][cyan] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][yellow] _ NEW4[[3, 6, 12, 9]]; LTS[cut2 ][magenta] _ NEW4[[3, 6, 12, 9]]; LTS[ovg ][cyan] _ NEW8[[0, 48, 48, 252, 252, 48, 48, 0]]; LTS[nwell ][yellow] _ NEW4[[1, 2, 4, 8]]; LTS[bur ][black] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][cyan] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][yellow] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[bur ][magenta] _ NEW8[[0, 0, 0, 0, 0, 56, 56, 56]]; LTS[pdif ][cyan] _ NEW4[[12, 9, 3, 6]]; LTS[pdif ][yellow] _ NEW4[[12, 9, 3, 6]]; LTS[imp ][yellow] _ NEW4[[15,15,15,15]]; LTS[pwell ][black] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; LTS[pwell ][cyan] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; LTS[pwell ][yellow] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; LTS[pwell ][magenta] _ NEW8[[0, 0, 8, 4, 0, 0, 0, 0]]; }; END.