[net.micro.mac] Font Doubler program

pugh@cornell.UUCP (William Pugh) (12/20/84)

The following is a program I wrote which will double any font (subject to the
32K byte size limitation on resources).  To use it, you specify the name and
size of a font installed in the system file, and the program will double it and
install the doubled copy in the system file (with a font size equal to twice
the original).
	The program uses some fancy tricks to expand the bit map of the font
so that diagonal lines come out correctly, and curves look pretty good.  You
may wish to touch up the resulting font with the font editor a bit, but it's
a lot less work than you would have to do if you used the font editor to scale
up a font.
	Question:  Does anybody out there know how to make the Print manager
print in high-resolution???  Now that I've developed this niffty algorithm,
I'd like to write a program to print MacPaint files in high-resolution, 
using my doubling algorithm, as opposed to the MacPaint high-res mode, which
simply prints a block of 4 dots for each dot in the original image.
Inside Mac is very vague on how to do high-res printing (and printing in 
general).
			Bill Pugh, Cornell Univeristy


(This file must be converted with BinHex.Hex)
#APPL$0000
***COMPRESSED
***RESOURCE FORK
(    0   !6J   4J@   *(                     
(                                           
(                                           
(                                           
(                                           
(                                           
(                                           
(                                           
(    !@    H   !!     @    @   _/  !J?    \0
(     %"ITY6_^!A)B -68 O  1  ,HK0/[\J&ZH_JD2
($ZZ /1*@&8$3KH$IJGT     $*G+SQ#3T1%/SP _ZF@
(" ?9P  T"\ 0J<O/$-/1$4_/  !J:!!^O_6(E\@$0* 
( #___]8@"" (%\H2* E* !=A* I(% R& )! '\T&#88
($C"2,,F39?"E\,D33X! D$ #F<  ! @ Z$>9F8F2"1(
(-7"U<,P ^)(4T!K!D);3OK_^"!47$A1A&M((!@B&#H 
($A X$@\ .0(9P  #E, 9RHB>O]<T\$B"0)&  -G%%-&
(&<()8%0 $[Z_\XU@5  3OK_QA6!4 !.^O^^0_(0 $[Z
(/_6+PH@3* J+PRIHR1?(DHF2BA*3G4B7RU/__PM20 $
($* ($!.T4Y>*&X !+G\     &?R+F[__"! 3M1*@&L(
($J!:P  $& *2H%L   01(!$@6 .1(%A"D2!3G5$@$[Z
(/_V+@%(1\[ /P<N $A'SL'"P-Y?2$="1]*'3G5*@&L(
($J!:P  $& *2H%L   21(!$@6 01(%A#$2 1(%.=42 
($[Z__1*@&<Z0D>R@&4.4D=*@&L   [CB$[Z__!*1V<L
(.*(+P(D 4*!XXFT@&4$E(!205-';P;BB$[Z_^X@ B0?
($YU(CQ_____0H!.=2 !0H%.=2! 2AAF_")(4TB0B&P*
($1 ,@ 3(%-!;OH0@$YU($ B0$*!$AAG"E-!$MA1R?_\
($(1($!.=4H!9P0 0@0 0?H !C""($   $YU0J=.5O_P
($CN  /_]$*N__ @+O_PL*[_^&P  ").^@ 04J[_\" N
(/_P4X!.^O_D(&[_]-'N__!"$$[Z_^9.7EB/3G5"ITY6
(/_X+4#_^"!N__@Q?  0  0@;O_X0F@ !B!N__A":  (
("!N__@Q? "   P@;O_X,7P @  *(#P   @ H1XB;O_X
("*(3EY8CTYU0J=.5O_02.X ?__@+R[_Y"\N_^ O+O_L
("\N_^Q"9T*GJ.P@;O_L0^[_T" \    "* N2&[_T#\N
(/_V/R[_\JBH+R[_Y"\N_^ O+O_L2&[_T#\\  ="IZCL
($(G2&[_T"\N_^Q(;O_8J*H0'T'N_]A#[O_0(#P    (
(* N2&[_T#\N  X_+O_ZJ*@O+O_@+R[_Z$AN_]A(;O_0
(#\\  %"IZCL3EY8CTYU0J=.5O_,2.X /__D0F[_S$)N
(/_.(&[_\# H  3C2#U _] @;O_P(F[_\# H  :0:0 "
(.-(/4#_TD'N_\Q#[O_4(#P    (H"Y(;O_4/R[_]C\N
(/_ZJ*@O+O_H+R[_["\N__!(;O_40F="IZCL0>[_S$/N
(/_4(#P    (H"Y(;O_4,"[_^D1 /P _+O_VJ*@O+O_H
("\N_^PO+O_P2&[_U#\\  ="IZCL0>[_S$/N_]0@/   
(  (H"Y(;O_4/R[_^C N__9$0#\ J*@O+O_H+R[_["\N
(/_P2&[_U#\\  ="IZCL+R[_Z"\N_^PO+O_P2&[_S#\\
(  #0J>H[$'N_\Q#[O_<(#P    (H"Y(;O_</SP  C\\
(  "J*E![O_<0^[_U" \    "* N2&[_U# \  *0;O_V
(.1 /P P/  "D&[_^N1 /P"HJ"\N_^PO+O_D2&[_W$AN
(/_4/SP  4*GJ.Q.7EB/3G5"ITY6_E9![OZR( A.NOV>
($'N_J0@"$ZZ_91![OZ6( A.NOV*0>[^B" (3KK]@$ZZ
(/P62H!G   $J?2H4$*GJ7M"IS\\ &-"IR\\_____ZE\
("!?+4C^:D*G2&[^6JF1#&X  OY:9@  !*GT+R[^:C\\
(  #2&[^:$AN_EQ(;OY@J8TO+OY<2&[^W*F02&[^W$AN
(/_>J0 O+OYJ/SP !$AN_FA(;OY<2&[^8*F-+R[^7$AN
(/[<J9 O+OYJJ8-";O_<+7P    !_^ 0+O[<2(!(P+"N
(/_@;0  .D[Z !!2KO_@("[_X%. 3OK_X# N_]S!_  *
($'N_MS1[O_@$A!(@4C!T($$@    # ]0/_<3OK_SD*G
("\\1D].5# N_][O2-!N_]P_ *F@(%\M2/_X0B<_+O_>
(#\N_]RI A ?2@!G!$JN__AG!B!N__A*D&8  "A"IS\\
( !B0J<O//____^I?"!?+4C^:D*G2&[^6JF1+R[^:JF#
(*GT(&[_^*!*(&[_^* I(&[_^")0T_P    8(&[_^"10
("!N__@F4# J  [!ZP 8XXC3P%2)+4G_\"!N__@B4-/\
(    ! @;O_X)% P*@ 0XTC2P"U)_^P@;O_X(E P*0 8
(.-(/4#^TDAN_M1"9T)G,"[^TN=(/P @;O_X(E _*0 .
(*BG(&[_^")0T_P    85(DM2?[.2&[^QD)G0F<P+O[:
(.-(/P P+O[8XTA30#\ J*="KO_@(&[_^")0,"D !%) 
($C L*[_X&T  $1.^@ 04J[_X" N_^!3@$[Z_]H@;O_P
(" N_^#CB-' ("[_X%* (F[_\..(T\ P$+!1;   #%-N
(/[,,"[^S%) 3OK_Q# N_LP&0  /Z$#C2#U _L0P+O[*
(,'N_L0&@    !H@;O_X(E @;O_X)% R*0 $DFH  E9!
(.5)2,'0@2U _^ ,K@  @ #_X&T  "A"IS\\ &%"IR\\
(/____^I?"!?+4C^:D*G2&[^6JF1+R[^:JF#J?0@+O_@
(*$B+4C_]"!N__1*D&8   2I]"!N__2@*2!N__@@4")N
(/_T(E$@/    !J@+B!N__0B4# I  ;C2%- (&[_]")0
(#-   8@;O_T(E#CZ0 ((&[_]")0,"D "N-(4T @;O_T
(")0,T  "B!N__0B4#-N_LH #"!N__0B4#-N_LH #B!N
(/_T(E P*0 2XTA30"!N__0B4#-  !(@;O_T(E#CZ0 4
("!N__0B4./I !8P+O[$XD @;O_T(E S0  8(&[_]")0
("!N__0D4# I !C!Z@ .6( @;O_T(E R*0 $2,'0@2!N
(/_T(E R*0 "2,&0@5: 4X @;O_T(E S0  0(&[_]")0
(-/\    &"!N__0D4"!N__0F4# J  [!ZP 8XXC3P%2)
("U)_^@@;O_T(E#3_    ! @;O_T)% P*@ 0XTC2P"U)
(/_D(&[_]")0T_P    85(DM2?[ (&[_Z$)02&[^@#\\
( !D/SP ,C\\ 2P_/ #ZJ*="IT*G2&[^@$AZ!<4?/ #_
($)G+SS_____0B="IZD3(%\M2/Y60J[_X"!N__@B4"!N
(/_X)% P*0 $D&H  E) 2,"PKO_@;0 %-D[Z !!2KO_@
(" N_^!3@$[Z_] @;O_P("[_X..(T< @+O_@4H B;O_P
(..(T\ P$+!19P $A$AN_H @;O_P("[_X..(T< _$$)G
(" N_^!2@"!N__#CB-' /Q @;O_X(E _*0 .J*=(;OYX
($)G0F<P+OZ&D&[^@N-(/P P+OZ$XT@_ *BG2&[^SDAN
(/ZR2&[^@$AN_GA"9T*GJ.P@+OZ((CP   @ 3KKX'D'N
(/Z(( A![O[.(@A![OZD) A![OZ )@@H/     (J/   
(  "3KKY*D'N_H@@"$'N_LXB"$'N_J0D"$'N_H F""@\
(/____XJ/     ).NOD"0>[^B" (0>[^SB((0>[^I"0(
($'N_H F""@\     BH\_____DZZ^-I![OZ(( A![O[.
("((0>[^I"0(0>[^@"8(*#S____^*CS____^3KKXLDAN
(/ZR2&[^I$AN_GA(;OYX0F="IZCL2&[^LDAN_I9(;OYX
($AN_GA"9T*GJ.Q";OZ","[^?%- /4#^A# N_GY30#U 
(/Z&/7P  ?YZ/7P  ?YX0>[^>$/N_G @/     B@+DAN
(/ZR2&[^I$AN_H!(;OYX/SP !T*GJ.Q(;OZ /SP  4)G
(*BH2&[^>#\\__]"9ZBH2&[^LDAN_I9(;OZ 2&[^>#\\
(  '0J>H[$AN_H!"9S\\  &HJ$AN_I9(;OZD2&[^>$AN
(/Z /SP  4*GJ.P@+OZ6(CP   @ 3KKVI$*G0>[^LB (
($'N_J0B"$'N_I8D"$'N_G F""@\     BH\     2P\
(/____].NO<"6$\O//____]![OZR( A![OZD(@A![OZ6
("0(0>[^<"8(*#P    !*CP    "0H9.NO;06$]"IT'N
(/ZR( A![OZD(@A![OZ6) A![OYP)@@H/     (J//__
(/__+#S_____3KKVGEA/+SS_____0>[^LB (0>[^I"((
($'N_I8D"$'N_G F""@\_____RH\     D*&3KKV;%A/
("\\_____T'N_K(@"$'N_J0B"$'N_I8D"$'N_G F""@\
(     (J/     $L//____].NO8V6$\O//____]![OZR
(" (0>[^I"((0>[^EB0(0>[^<"8(*#P    !*CP    "
("P\_____TZZ]@!83R\\     4'N_K(@"$'N_J0B"$'N
(/Z6) A![OYP)@@H/     (J//____\L//____].NO7*
(%A/+SS_____0>[^LB (0>[^I"((0>[^EB0(0>[^<"8(
("@\_____RH\     BP\     4ZZ]9183TAN_I9(;OZD
($AN_G!(;OYP/SP  4*GJ.Q(;OZ(2&[^I$AN_G!(;OYP
(#\\  -"IZCL2&[^>#\\ &X_/  \/SP!*S\\ /FHITAN
(/YX(&W^_-'\    PB\(J*5![OYP0^[^>" \    "* N
($AN_G@_/  */SP "JBH2&[^I"!N_E94B"\(2&[^<$AN
(/YX0F="IZCL0F[^># N_G130#U _GP@;O_H("[_X..(
(-' /5#^>B!N_^@@+O_@XXC1P# 0T&[^=E- /4#^?DAN
(/ZD2&[^P$AN_G!(;OYX0F="IZCL("[_X%* (&[_Z..(
(-' ,*[^?M[\_^!.^@ >(&[_Z" N_^#CB-' ("[_X%* 
(")N_^CCB-/ ,I @;O_L("[_X..(T< B;O_D("[_X..(
(-/ ,I @;O_L("[_X..(T<!*4&\  "(@;O_L("[_X..(
(-' ,!#C2%- (&[_Y"(N_^#CB='!,( @+O_@4H @;O_D
(..(T< PO/__3OKZTB!N__B@*B!N__B@22\N__BIHR!N
(/_TH"I"9ZF8+R[_]"\\1D].5# N_][O2#(N_]SC2=!!
(#\ 2'H &JFK0F>IF2!N__2@22\N_E:I%$Y>6(].=0 -
("!$;W5B;&EN9RXN+B @       &_X$!   $_]H@;O_P
(" N_^#CB-' ("[_X%* (F[_\..(T\ P$+!1;   #%-N
(/[,,"[^S%) 3OK_Q# N_LP&0  /Z$#C2#U _L0P+O[*
(,'N_L0&@    !H@;O_X(E @;O_X)% R*0 $DFH  E9!
(.5)2,'0@2U _^ ,K@  @ #_X&T  "A"IS\\ &%"IR\\
(/____^I?"!?+4C^:D*G2&[^6JF1+R[^:JF#J?0@+O_@
(*$B+4C_]"!N__1*D&8   2I]"!N__2@*2!N__@@4")N
(/_T(E$@/    !J@+B!N__0B4# I  ;C2%- (&[_]")0
(#-   8@;O_T(E#CZ0 ((&[_]")0,"D "N-(4T @;O_T
(")0,T  "B!N__0B4#-N_LH #"!N__0B4#-N_LH #B!N
(/_T(E P*0 2XTA30"!N__0B4#-  !(@;O_T(E#CZ0 4
("!N__0B4./I !8P+O[$XD @;O_T(E S0  8(&[_]")0
("!N__0D4# I !C!Z@ .6( @;O_T(E R*0 $2,'0@2!N
(/_T(E R*0 "2,&0@5: 4X @;O_T(E S0  0(&[_]")0
(-/\    &"!N__0D4"!N__0F4# J  [!ZP 8XXC3P%2)
(    !H 00 ; +X!SP   1\ I@      805%4E)/4@  
(  : #P 'P"D <(   %  .(      &(%15)23U(    F
(  [ !, Y '-   !50!5      !C$49O;G0@1&]U8FQE
('(@5C$N,    .@  @      $P / #, +R "        
(  C $  5 %$"%-$;W5B;&EN9R!T:&%T(&9O;G0@=V]U
(&QD(&-R96%T92!A(&9O;G0@;&%R9V5R('1H86X@,S)K
("!B>71E<RP@=VAI8V@@:7,@;F]T(&%L;&]W960N50  
(    #\!4 !3 9D$ D]+55555:JJJJJJJJJJJJJJJJJJ
(*JJJJJJJJJJ5555555555555555554  !)J55555:JJ
(*JJJJJJJ@  $EJJJJJJJJJJJJJJ5555555555555555
(%5555555555556JJJJJJJJJJ@   +   @      $  6
(  P #8@ @         @ $\ -P$G"!M4:&%T(&9O;G0@
(&1O97,@;F]T(&5X:7-T+BXN:0      '@$S #(!? 0"
($]KJJJJJJ@H5555555555555555555555555554/*JJ
(*JJJJJJJJJJJJJJJJJJJJJJJJMA5555555555555555
(%55555555555 JJJJJJJJJJJJJJJJJJJJJJJJJJJJD6
(%55   2F@   :  !P      - $@ $X!<@0)1&]U8FQE
("!I=%0      %H!( !U 7 $!D-A;F-E;       /0!>
( !. +N0        7P!3 &\ ;Y         ]  D 2@!7
((@*1F]N="!N86UE.@      7P ) &\ 3(@*1F]N="!S
(&EZ93H       H "P P ;&(>JD@,3DX-"!B>2!7:6QL
(&EA;2!0=6=H+"!W<FET=&5N('5S:6YG($UA8R!#(&)Y
("!#;VYS=6QA:7(@0V]R<"X-(" @(" @('!E<FUI<W-I
(&]N(&=I=F5N('1O(&-O<'D@9F]R(&YO;BUC;VUM97)C
(&EA;"!P=7)P;W-E<P      @P!  )<!DH@L5&AI<R!P
(')O9W)A;2!W:6QL(&1O=6)L92!A;F0@:6YS=&%L;"!A
("!F;VYT+B\X"@*HJ2\\  H "JB;(%5(:/_XJ)VHH2!5
($AH__"HG2\\  (  B\\  (  JB;J*E(> GZJ*&HGMEL
(  $V6P !DYU_P#_ /\ _P!!^ GZ(FL <B)15$D@F2%1
(  $,! &0  3,4    $    5J@  %*H   "B  $J9 !<
(    !P H@ "0T]$10 " !I$3$]'  ( /D1)5$P  @!B
(   __\@      $L3  !__\@   <  $L. #___\@  \P
(  !+!P 8___   1/  !+#P 8O__   1'@ !+$0 8?__
(   $0   2Q0 &/__P  $P8  2P0 &+__P  $E(  2P8
# !A__\  !%F  $L) 
***END OF DATA
***CRC:51EB