These diffs are against stock pcb-1.6.3 from
   http://bach.ece.jhu.edu/~haceaton/pcb/pcb-1.6.3.tgz

Changes:
   * modifications to SUB-D connectors, including basic dimensions!
   * slightly smaller pad dimensions on PLCC footprint
   * add right angle BNC connector
   * add MTA-156 headers
   * add SMD 603, 805, and 1206 resistor, cap, polarized cap, and diode
   * separated MASKFRAME (new default: 0) from overloaded GROUNDPLANEFRAME

December 13, 1999  Larry Doolittle  <LRDoolittle@lbl.gov>

Update December 21:  Don't use the SUB-D connector here, or the original
for that matter.  I have a fixed version, but haven't made nice diffs
yet.  Soon, I hope.  I also want to make some useful QFP patterns.  - LRD

diff -ur pcb-1.6.3-orig/globalconst.h pcb-1.6.3/globalconst.h
--- pcb-1.6.3-orig/globalconst.h	Wed May 13 03:29:11 1998
+++ pcb-1.6.3/globalconst.h	Mon Dec 13 13:25:38 1999
@@ -52,6 +52,7 @@
  * frame between the groundplane and the copper
  */
 #define	GROUNDPLANEFRAME	15	/* unit == mil */
+#define MASKFRAME               0       /* unit == mil */
 
 /* ---------------------------------------------------------------------------
  * some limit specifications
diff -ur pcb-1.6.3-orig/lib/connector.inc pcb-1.6.3/lib/connector.inc
--- pcb-1.6.3-orig/lib/connector.inc	Sat May 16 14:11:08 1998
+++ pcb-1.6.3/lib/connector.inc	Mon Dec 13 14:16:25 1999
@@ -366,6 +366,14 @@
 # base definition (housing) for SUB-D connectors, laying
 # 11/95 Volker Bosch (bosch@iema.e-technik.uni-stuttgart.de)
 # female package added 05/96 also by Volker Bosch
+# Pins reordered, 12/99 Larry Doolittle  <LRDoolittle@lbl.gov>
+
+# Connector dimensions changed!  No, these stupid things don't
+# line up neatly on a 50 mil grid.  Now corresponds to AMP's
+# Application Specification 114-40013 03-APR-97 Rev B, for
+# AMPLIMITE[TM] HD-20 Series 454 and 545.
+# Also pulled silkscreen lines away from pins by NOSMUDGE.
+# 12/99 Larry Doolittle  <LRDoolittle@lbl.gov>
 #
 # $1: canonical name
 # $2: name on PCB
@@ -378,14 +386,10 @@
 	`define(`BASEX', 1000)
 	define(`BASEY', 1000)
 	define(`PY1', `eval(BASEY +270)')
-	define(`PY2', `eval(PY1 +($4-1)/2*100)')
+	define(`PY2', `eval(PY1 +($4-1)/2*119)')
 	define(`OFFSET', `eval(($4+1)/2)')
 Element(0x00 "$1" "$2" "$3" eval(BASEX-630) eval(PY1-70) 3 100 0x00)
 (
-	# Befestigungsbohrung
-	Pin(BASEX  BASEY 120 100 "C1" 0x01)
-	Pin(BASEX eval(PY2+270) 120 100 "C1" 0x01)
-
 	# Gehaeuse (schmaler Kasten incl. Bohrungen)
 	define(`X1', `eval(BASEX-460)')
 	define(`Y1', `eval(PY1-390)')
@@ -401,14 +405,16 @@
 	ElementLine(X1 eval(Y2-180) X2 eval(Y2-180) 10)
 
 	# Gehaeuse (aeusserer Kasten)
-	define(`X1', `eval(BASEX-730)')
-	define(`Y1', `eval(PY1-100)')
-	define(`X2', `eval(BASEX-460)')
-	define(`Y2', `eval(PY2+100)')
-	ElementLine(X1 Y1 X2 Y1 20)
-	ElementLine(X2 Y1 X2 Y2 10)
-	ElementLine(X2 Y2 X1 Y2 20)
-	ElementLine(X1 Y2 X1 Y1 20)
+	# This part of the connector normally hangs off the circuit board,
+	# so it is confusing to actually mark it on the silkscreen
+	# define(`X1', `eval(BASEX-730)')
+	# define(`Y1', `eval(PY1-100)')
+	# define(`X2', `eval(BASEX-460)')
+	# define(`Y2', `eval(PY2+100)')
+	# ElementLine(X1 Y1 X2 Y1 20)
+	# ElementLine(X2 Y1 X2 Y2 10)
+	# ElementLine(X2 Y2 X1 Y2 20)
+	# ElementLine(X1 Y2 X1 Y1 20)
 
 	# Gehaeuse (innerer Kasten)
 	define(`X1', `eval(BASEX-430)')
@@ -422,20 +428,34 @@
 
 	# Pins
 	SUBD_SUBFUNCTION
+
+	# Befestigungsbohrung
+	Pin(BASEX  BASEY 250 125 "C1" 0x01)
+	Pin(BASEX eval(PY2+270) 250 125 "C2" 0x01)
+
 )')
 
 define(`PKG_SUBD_MALE_LAY',
 	`define(`SUBD_SUBFUNCTION',
-		`forloop(`i', 1, eval($4/2),
-			`define(`Y', eval(PY1 +(i-1)*100))
-			PIN(eval(BASEX+50), Y, 60, 20, i)
-			ElementLine(eval(BASEX+50) Y X2 Y 20)
-			PIN(eval(BASEX-50), eval(Y+50), 60, 20, eval(i+OFFSET))
-			ElementLine(eval(BASEX-50) eval(Y+50) X2 eval(Y+50) 20)
+		`
+		define(`NOSMUDGE', 40)
+		# First row
+		forloop(`i', 1, eval($4/2),
+			`define(`Y', eval(PY1 +(i-1)*119))
+			PIN(eval(BASEX+56), Y, 70, 47, i)
+			ElementLine(eval(BASEX+56-NOSMUDGE) Y X2 Y 20)
 		')
-		PIN(eval(BASEX+50), PY2, 60, 20, OFFSET)
-		ElementLine(eval(BASEX+50) PY2 X2 PY2 20)
 
+		# Last pin in first row
+		PIN(eval(BASEX+56), PY2, 70, 47, OFFSET)
+		ElementLine(eval(BASEX+56-NOSMUDGE) PY2 X2 PY2 20)
+
+		# Second row
+		forloop(`i', 1, eval($4/2),
+			`define(`Y', eval(PY1 +(i-1)*119+54))
+			PIN(eval(BASEX-56), Y, 70, 47, eval(i+OFFSET))
+			ElementLine(eval(BASEX-56-NOSMUDGE) Y X2 Y 20)
+		')
 		# Plazierungsmarkierung == PIN 1
 		Mark(eval(BASEX +50) PY1)
 	')'
@@ -444,19 +464,94 @@
 
 define(`PKG_SUBD_FEMALE_LAY',
 	`define(`SUBD_SUBFUNCTION',
-		`forloop(`i', 1, eval($4/2),
-			`define(`Y', eval(PY1 +(i-1)*100))
-			PIN(eval(BASEX+50), Y, 60, 20, eval(OFFSET+1-i))
-			ElementLine(eval(BASEX+50) Y X2 Y 20)
-			PIN(eval(BASEX-50), eval(Y+50), 60, 20, eval($4+1-i))
-			ElementLine(eval(BASEX-50) eval(Y+50) X2 eval(Y+50) 20)
-		')
-		PIN(eval(BASEX+50), PY2, 60, 20, 1)
-		ElementLine(eval(BASEX+50) PY2 X2 PY2 20)
+		`
+		define(`NOSMUDGE', 40)
+		# Pin 1
+		PIN(eval(BASEX+56), PY2, 70, 47, 1)
+		ElementLine(eval(BASEX+56-NOSMUDGE) PY2 X2 PY2 20)
 
 		# Plazierungsmarkierung == PIN 1
-		Mark(eval(BASEX +50) PY1)
+		# Changed PY1 to PY2 13-Dec-1999 LRD
+		Mark(eval(BASEX +56) PY2)
+
+		# Remainder of the first row
+		forloop(`i', 1, eval($4/2),
+			`define(`Y', eval(PY1 +($4/2-i)*119))
+			PIN(eval(BASEX+56), Y, 70, 47, eval($4/2+i+2-OFFSET))
+			ElementLine(eval(BASEX+56-NOSMUDGE) Y X2 Y 20)
+		')
+
+		# Second row
+		forloop(`i', 1, eval($4/2),
+			`define(`Y', eval(PY1 +($4/2-i)*119+54))
+			PIN(eval(BASEX-56), Y, 70, 47, eval($4/2+i+1))
+			ElementLine(eval(BASEX-56-NOSMUDGE) Y X2 Y 20)
+		')
 	')'
 	`PKG_SUBD_LAY_BASE(`$1', `$2', `$3', `$4')'
 )
 
+# ---------------------------------------------------------------
+# definition for a right angle BNC connector,
+# such as Amphenol 31-5640-1010 or OUPIIN 8928
+# 12/99 Larry Doolittle <LRDoolittle@lbl.gov>
+#
+# $1: canonical name
+# $2: name on PCB
+# $3: value
+# $4: pins
+#
+# base is one of the pegs
+#
+define(`PKG_BNC_LAY',
+	`define(`BASEX', 200)
+	define(`BASEY', -200)
+Element(0x00 "$1" "$2" "$3" BASEX eval(BASEY+200) 3 100 0x00)
+(
+	define(`X1', `eval(BASEX-260)')
+	define(`Y1', `eval(BASEY-90)')
+	define(`X2', `eval(BASEX+290)')
+	define(`Y2', `eval(BASEY+490)')
+	ElementLine(X1 Y1 X2 Y1 10)
+	ElementLine(X2 Y1 X2 Y2 10)
+	ElementLine(X2 Y2 X1 Y2 10)
+	ElementLine(X1 Y2 X1 Y1 10)
+	PIN(eval(BASEX-200), eval(BASEY+200), 60, 20, 1)
+	PIN(eval(BASEX-200), eval(BASEY+100), 60, 20, 2)
+	PIN(eval(BASEX),     eval(BASEY),     100, 40, m1)
+	PIN(eval(BASEX),     eval(BASEY+400), 100, 40, m2)
+)')
+
+# ---------------------------------------------------------------
+# definition for MTA-156 header,
+# such as AMP 640445-x
+# 12/99 Larry Doolittle <LRDoolittle@lbl.gov>
+#
+# $1: canonical name
+# $2: name on PCB
+# $3: value
+# $4: pins
+#
+# base is pin 1 (although I don't claim to know which end is
+#                conventionally pin 1)
+#      0.156 pin pitch
+#      0.070 holes
+#      0.078 end clearance
+#      0.180 and 0.120 side clearance
+#      Available with 2 through 24 pins
+#
+define(`PKG_MTA_156',
+	`
+Element(0x00 "$1" "$2" "$3" 0  140 0 150 0x00)
+(
+	forloop(`i', 1, `$4',
+		`PIN(eval((i-1)*156), 0, 100, 70, `i')
+	')
+	define(`X1',-78)
+	define(`X2', `eval(`$4'*156-78)')
+	ElementLine(X1  120 X2  120 10) 
+	ElementLine(X2  120 X2 -180 10) 
+	ElementLine(X2 -180 X1 -180 10) 
+	ElementLine(X2  -80 X1  -80 10) 
+	ElementLine(X1 -180 X1  120 10)
+)')
diff -ur pcb-1.6.3-orig/lib/connector.list pcb-1.6.3/lib/connector.list
--- pcb-1.6.3-orig/lib/connector.list	Sat May 16 14:11:08 1998
+++ pcb-1.6.3/lib/connector.list	Mon Dec 13 14:06:18 1999
@@ -80,3 +80,5 @@
 SUBD_15M:SUBD_MALE_LAY:15m
 SUBD_25F:SUBD_FEMALE_LAY:25f
 SUBD_25M:SUBD_MALE_LAY:25m
+BNC_rightangle:BNC_LAY:1
+MTA_156_2:MTA_156:2
diff -ur pcb-1.6.3-orig/lib/connector.m4 pcb-1.6.3/lib/connector.m4
--- pcb-1.6.3-orig/lib/connector.m4	Sat May 16 14:11:09 1998
+++ pcb-1.6.3/lib/connector.m4	Mon Dec 13 14:06:18 1999
@@ -241,4 +241,9 @@
 define(`Description_SUBD_25M', `SUB-D male 25 pins')
 define(`Param1_SUBD_25M', 25)
 
+define(`Description_BNC_rightangle', `right angle BNC')
+
+define(`Description_MTA_156_2', `MTA-156 header')
+define(`Param1_MTA_156_2', 2)
+
 divert(0)dnl
diff -ur pcb-1.6.3-orig/lib/generic.list pcb-1.6.3/lib/generic.list
--- pcb-1.6.3-orig/lib/generic.list	Sat May 16 14:11:11 1998
+++ pcb-1.6.3/lib/generic.list	Mon Dec 13 14:06:18 1999
@@ -113,4 +113,20 @@
 generic_capacitor_radial_500:RADIAL_CAN:500
 generic_capacitor_radial_600:RADIAL_CAN:600
 
+smd_resistor_603:SMD_SIMPLE:603
+smd_resistor_805:SMD_SIMPLE:805
+smd_resistor_1206:SMD_SIMPLE:1206
+
+smd_capacitor_603:SMD_SIMPLE:603
+smd_capacitor_805:SMD_SIMPLE:805
+smd_capacitor_1206:SMD_SIMPLE:1206
+
+smd_capacitor_polarized_603:SMD_POLAR:603
+smd_capacitor_polarized_805:SMD_POLAR:805
+smd_capacitor_polarized_1206:SMD_POLAR:1206
+
+smd_diode_603:SMD_DIODE:603
+smd_diode_805:SMD_DIODE:805
+smd_diode_1206:SMD_DIODE:1206
+
 isa_eight_bit:ISA8:XT8BIT
diff -ur pcb-1.6.3-orig/lib/generic.m4 pcb-1.6.3/lib/generic.m4
--- pcb-1.6.3-orig/lib/generic.m4	Sat May 16 14:11:12 1998
+++ pcb-1.6.3/lib/generic.m4	Mon Dec 13 14:06:18 1999
@@ -230,4 +230,52 @@
 
 define(`Description_isa_eight_bit', ``isa_eight_bit'')
 
+define(`Description_smd_resistor_603', ``chip_resistor'')
+define(`Param1_smd_resistor_603', 60)
+define(`Param2_smd_resistor_603', 30)
+
+define(`Description_smd_resistor_805', ``chip_resistor'')
+define(`Param1_smd_resistor_805', 80)
+define(`Param2_smd_resistor_805', 50)
+
+define(`Description_smd_resistor_1206', ``chip_resistor'')
+define(`Param1_smd_resistor_1206', 120)
+define(`Param2_smd_resistor_1206', 60)
+
+define(`Description_smd_capacitor_603', ``chip_capacitor'')
+define(`Param1_smd_capacitor_603', 60)
+define(`Param2_smd_capacitor_603', 30)
+
+define(`Description_smd_capacitor_805', ``chip_capacitor'')
+define(`Param1_smd_capacitor_805', 80)
+define(`Param2_smd_capacitor_805', 50)
+
+define(`Description_smd_capacitor_1206', ``chip_capacitor'')
+define(`Param1_smd_capacitor_1206', 120)
+define(`Param2_smd_capacitor_1206', 60)
+
+define(`Description_smd_capacitor_polarized_603', ``chip_capacitor_polarized'')
+define(`Param1_smd_capacitor_polarized_603', 60)
+define(`Param2_smd_capacitor_polarized_603', 30)
+
+define(`Description_smd_capacitor_polarized_805', ``chip_capacitor_polarized'')
+define(`Param1_smd_capacitor_polarized_805', 80)
+define(`Param2_smd_capacitor_polarized_805', 50)
+
+define(`Description_smd_capacitor_polarized_1206', ``chip_capacitor_polarized'')
+define(`Param1_smd_capacitor_polarized_1206', 120)
+define(`Param2_smd_capacitor_polarized_1206', 60)
+
+define(`Description_smd_diode_603', ``chip_diode'')
+define(`Param1_smd_diode_603', 60)
+define(`Param2_smd_diode_603', 30)
+
+define(`Description_smd_diode_805', ``chip_diode'')
+define(`Param1_smd_diode_805', 80)
+define(`Param2_smd_diode_805', 50)
+
+define(`Description_smd_diode_1206', ``chip_diode'')
+define(`Param1_smd_diode_1206', 120)
+define(`Param2_smd_diode_1206', 60)
+
 divert(0)
diff -ur pcb-1.6.3-orig/lib/misc.inc pcb-1.6.3/lib/misc.inc
--- pcb-1.6.3-orig/lib/misc.inc	Sat May 16 14:11:18 1998
+++ pcb-1.6.3/lib/misc.inc	Mon Dec 13 14:06:18 1999
@@ -517,3 +517,72 @@
 	ElementArc(X3 Y R R 0 360 10)
 	Mark (X1 Y)
 )')
+
+# a core surface mount package
+# 12/99 Larry Doolittle <LRDoolittle@lbl.gov>
+#
+# $1: canonical name
+# $2: name on PCB
+# $3: value
+# $4: device length in MIL
+# $5: device width in MIL
+#
+# Note that the pad width, length, and separation are derived from
+# the given device dimensions.  I <LRDoolittle@lbl.gov> don't
+# claim to have followed any industry standards here, these sizes
+# are based on someone else's measurements:
+#  0603 is 30x40 mil pads on 60 mil pad ctr
+#  0805 is 44x60 mil pads on 80 mil pad ctr
+# on a PC motherboard.  If you know the "real" values, please educate
+# me and/or adjust this code.
+#
+define(`PKG_SMD_BASE',
+	`define(`T', `eval(`$4'/4+`$5'/2)')
+	define(`W', `eval(T/2+15)')
+	define(`X1', `0')
+	define(`X2',  ``$4'')
+	define(`Y',  `0')
+	define(`Y1',  `eval(Y-(`$5'-T)/2-10)')
+	define(`Y2',  `eval(Y+(`$5'-T)/2+10)')
+	# Silkscreen box coordinates
+	define(`X1L', `eval(X1-W)')
+	define(`X2L', `eval(X2+W)')
+	define(`Y1L', `eval(Y1-W)')
+	define(`Y2L', `eval(Y2+W)')
+Element(0x00 "$1" "$2" "$3" eval(10+T/2) eval(Y2L+15) 0 100 0x00)
+(
+	# PAD(X1, Y1, X1, Y2, T, 1)
+	# PAD(X2, Y1, X2, Y2, T, 2)
+	# Use Pad instead of PAD so both pads come out square
+	Pad(X1 Y1 X1 Y2 T "1" 0x100)
+	Pad(X2 Y1 X2 Y2 T "2" 0x100)
+	ElementLine(X1L Y1L X1L Y2L 8)
+	ElementLine(X1L Y2L X2L Y2L 8)
+	ElementLine(X2L Y2L X2L Y1L 8)
+	ElementLine(X2L Y1L X1L Y1L 8)
+	SMD_OUTLINE_EXTRA
+)')
+
+define(`PKG_SMD_SIMPLE',
+	`define(`SMD_OUTLINE_EXTRA', `')
+	PKG_SMD_BASE(`$1', `$2', `$3', `$4', `$5')
+')
+
+define(`PKG_SMD_DIODE',
+	`define(`SMD_OUTLINE_EXTRA',
+		`
+		define(`XBAR', `eval(X1L+10)')
+		ElementLine( XBAR Y1L XBAR Y2L 5 )
+	')
+	PKG_SMD_BASE(`$1', `$2', `$3', `$4', `$5')
+')
+
+define(`PKG_SMD_POLAR',
+	`define(`SMD_OUTLINE_EXTRA',
+		`
+		# crude plus sign
+		ElementLine(      X1     eval(Y2L+20)       X1    eval(Y2L+70) 5)
+		ElementLine( eval(X1-25) eval(Y2L+45) eval(X1+25) eval(Y2L+45) 5)
+	')
+	PKG_SMD_BASE(`$1', `$2', `$3', `$4', `$5')
+')
diff -ur pcb-1.6.3-orig/lib/plcc.inc pcb-1.6.3/lib/plcc.inc
--- pcb-1.6.3-orig/lib/plcc.inc	Sat May 16 14:11:19 1998
+++ pcb-1.6.3/lib/plcc.inc	Mon Dec 13 14:06:18 1999
@@ -31,6 +31,10 @@
 # ThanX to Johan Andersson (johan@homemail.com), modified by Thomas Nau
 # the definition of a plcc package
 # modified for correct pad numbering by Holm Tiffe
+#
+# modified 11-Dec-1999 Larry Doolittle <LRDoolittle@lbl.gov>
+# to shorten the pads by 10 mils
+#
 # $1: canonical name
 # $2: name on PCB
 # $3: value
@@ -43,6 +47,8 @@
 	define(`WIDTH', `eval((QUARTER-1) *50 +2*75)')
 	define(`CENTER', `eval(WIDTH / 2)')
 	define(`NUMPINS', `$4')
+	define(`PUSHOUT', 5)     # was 15
+	define(`PUSHIN', 40)     # was 50
 Element(0x00 "$1" "$2" "$3" 100 CENTER 0 100 0x00)
 (
 	# top left half
@@ -50,7 +56,7 @@
 define(`Y', 0)
 define(`count', 1)
 forloop(`i', 1, OFFSET,
-	`PAD(X, eval(Y-15), X, eval(Y+50), 20, count)' `define(`count', incr(count))'
+	`PAD(X, eval(Y-PUSHOUT), X, eval(Y+PUSHIN), 20, count)' `define(`count', incr(count))'
 	`define(`X', eval(X-50))'
 	)
 
@@ -60,7 +66,7 @@
 define(`Y', 75)
 define(`count', `eval(OFFSET+1)')
 forloop(`i', 1, QUARTER,
-	`PAD(eval(X-15), Y, eval(X+50), Y, 20, count)' `define(`count', incr(count))'
+	`PAD(eval(X-PUSHOUT), Y, eval(X+PUSHIN), Y, 20, count)' `define(`count', incr(count))'
 	`define(`Y', eval(Y+50))'
 	)
 
@@ -68,7 +74,7 @@
 define(`X', 75)
 define(`Y', WIDTH)
 forloop(`i', 1, QUARTER,
-	`PAD(X, eval(Y+15), X, eval(Y-50), 20, count)' `define(`count', incr(count))'
+	`PAD(X, eval(Y+PUSHOUT), X, eval(Y-PUSHIN), 20, count)' `define(`count', incr(count))'
 	`define(`X', eval(X+50))'
 )
 
@@ -76,7 +82,7 @@
 define(`X', WIDTH)
 define(`Y', eval(WIDTH-75))
 forloop(`i', 1, QUARTER,
-	`PAD(eval(X+15), Y, eval(X-50), Y, 20, count)' `define(`count', incr(count))'
+	`PAD(eval(X+PUSHOUT), Y, eval(X-PUSHIN), Y, 20, count)' `define(`count', incr(count))'
 	`define(`Y', eval(Y-50))'
 )
 
@@ -84,7 +90,7 @@
 define(`X', eval(WIDTH-75))
 define(`Y', 0)
 forloop(`i', 1, eval(OFFSET-1),
-	`PAD(X, eval(Y-15), X, eval(Y+50), 20, count)' `define(`count', incr(count))'
+	`PAD(X, eval(Y-PUSHOUT), X, eval(Y+PUSHIN), 20, count)' `define(`count', incr(count))'
 	`ifelse(eval(count > NUMPINS), 1, `define(`count', 1)')'
 	`define(`X', eval(X-50))'
 )
diff -ur pcb-1.6.3-orig/src/dev_ps.c pcb-1.6.3/src/dev_ps.c
--- pcb-1.6.3-orig/src/dev_ps.c	Wed May 13 03:29:43 1998
+++ pcb-1.6.3/src/dev_ps.c	Mon Dec 13 13:24:41 1999
@@ -920,7 +920,7 @@
 {
 	if (TEST_FLAG(SQUAREFLAG, Pad))
 	{
-		Dimension scrunch = Pad->Thickness/2 + GROUNDPLANEFRAME;
+		Dimension scrunch = Pad->Thickness/2 + MASKFRAME;
 	fprintf(PS_Flags.FP, "%d %d %d %d CLRB\n",
 		((Pad->Point1.X > Pad->Point2.X) ? Pad->Point2.X  : Pad->Point1.X) - scrunch,
 		((Pad->Point1.Y > Pad->Point2.Y) ? Pad->Point2.Y  : Pad->Point1.Y) - scrunch,
@@ -933,7 +933,7 @@
 		(int) Pad->Point1.Y,
 		(int) Pad->Point2.X,
 		(int) Pad->Point2.Y,
-		(int) Pad->Thickness + 2*GROUNDPLANEFRAME);
+		(int) Pad->Thickness + 2*MASKFRAME);
 }
 
 /* ----------------------------------------------------------------------
@@ -944,7 +944,7 @@
 	fprintf(PS_Flags.FP, "%d %d %d %s\n",
 		(int) Ptr->X,
 		(int) Ptr->Y,
-		(int) Ptr->Thickness + 2*GROUNDPLANEFRAME,
+		(int) Ptr->Thickness + 2*MASKFRAME,
 		TEST_FLAG(SQUAREFLAG, Ptr) ? "CLRPVSQ" : TEST_FLAG(OCTAGONFLAG, Ptr) ? "CLRPV" : "CLRPVR");
 }
 
diff -ur pcb-1.6.3-orig/src/dev_rs274x.c pcb-1.6.3/src/dev_rs274x.c
--- pcb-1.6.3-orig/src/dev_rs274x.c	Wed May 13 03:29:43 1998
+++ pcb-1.6.3/src/dev_rs274x.c	Mon Dec 13 13:48:45 1999
@@ -365,6 +365,10 @@
 					TEST_FLAG(SQUAREFLAG, pin) ?
 						SQUARE : (TEST_FLAG(OCTAGONFLAG, pin) ? 
 						OCTAGON : ROUND));
+			findApertureCode(&GBX_Apertures, pin->Thickness + 2*MASKFRAME,
+					TEST_FLAG(SQUAREFLAG, pin) ?
+						SQUARE : (TEST_FLAG(OCTAGONFLAG, pin) ? 
+						OCTAGON : ROUND));
 				/* check if a thermal is being used */
 			if (TEST_FLAG(ALLTHERMFLAGS, pin))
 				findApertureCode(&GBX_Apertures, pin->Thickness,
@@ -404,6 +408,10 @@
 				TEST_FLAG(SQUAREFLAG, via) ?
 				SQUARE : (TEST_FLAG(OCTAGONFLAG, via) ?
 				OCTAGON : ROUND));
+		findApertureCode(&GBX_Apertures, via->Thickness + 2*MASKFRAME,
+				TEST_FLAG(SQUAREFLAG, via) ?
+				SQUARE : (TEST_FLAG(OCTAGONFLAG, via) ?
+				OCTAGON : ROUND));
 			/* check if a thermal is being used */
 		if (TEST_FLAG(ALLTHERMFLAGS, via))
 			findApertureCode(&GBX_Apertures, via->Thickness,
@@ -1174,7 +1182,7 @@
 	FILE *FP;
 	
 	FP = GBX_Flags.FP;
-	apCode = findApertureCode(&GBX_Apertures, Pad->Thickness +2*GROUNDPLANEFRAME,
+	apCode = findApertureCode(&GBX_Apertures, Pad->Thickness +2*MASKFRAME,
 	          (Pad->Flags & SQUAREFLAG) ? SQUARE : ROUND);
 	if (lastAperture != apCode)
 	{
@@ -1217,7 +1225,7 @@
 {
 	int apCode;
 	
-	apCode = findApertureCode(&GBX_Apertures, Pin->Thickness +2*GROUNDPLANEFRAME,
+	apCode = findApertureCode(&GBX_Apertures, Pin->Thickness +2*MASKFRAME,
 			TEST_FLAG(SQUAREFLAG, Pin) ? SQUARE :
 			(TEST_FLAG(OCTAGONFLAG, Pin) ? OCTAGON : ROUND));
 	if (lastAperture != apCode)
diff -ur pcb-1.6.3-orig/src/rats.c pcb-1.6.3/src/rats.c
--- pcb-1.6.3-orig/src/rats.c	Wed May 13 03:29:56 1998
+++ pcb-1.6.3/src/rats.c	Mon Dec 13 14:11:27 1999
@@ -443,6 +443,9 @@
 		firstpoint->X, firstpoint->Y, secondpoint->X, secondpoint->Y, 
 		Settings.LineThickness, RATFLAG)) != NULL)
 	   {
+		/* printf("drawing ratline from %s-%s to %s-%s\n",
+			firstpoint->Element->Name[1].TextString, firstpoint->PinNum,
+			secondpoint->Element->Name[1].TextString, secondpoint->PinNum ); */
 		AddObjectToCreateUndoList(LINE_TYPE, CURRENT, line, line);
 		DrawLine(CURRENT, line, 0);
 		changed = True;
