Rev 231 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 231 | Rev 239 | ||
---|---|---|---|
Line 17... | Line 17... | ||
17 | my $blockname; |
17 | my $blockname; |
18 | 18 | ||
19 | # vars used later too
|
19 | # vars used later too
|
20 | #my (%x, %y);
|
20 | #my (%x, %y);
|
21 | 21 | ||
- | 22 | my %pindata; |
|
- | 23 | ||
22 | # vars used during parsing
|
24 | # vars used during parsing
|
23 | my ($side, $busmode, $errors) = ('',0, 0); |
25 | my ($side, $busmode, $errors) = ('',0, 0); |
24 | # main loop which parses file
|
26 | # main loop which parses file
|
25 | while (<>) { |
27 | while (<>) { |
26 | # skip empty lines
|
28 | # skip empty lines
|
Line 122... | Line 124... | ||
122 | $bubble{$pin} = 1 if $flags =~ /!/; |
124 | $bubble{$pin} = 1 if $flags =~ /!/; |
123 | $edge{$pin} = 1 if $flags =~ />/; |
125 | $edge{$pin} = 1 if $flags =~ />/; |
124 | } else { |
126 | } else { |
125 | $pinlabel{$pin} = $rest; |
127 | $pinlabel{$pin} = $rest; |
126 | }
|
128 | }
|
- | 129 | ||
- | 130 | # if pin has known suffix so it has pintype, maybe we have to rework current format too
|
|
- | 131 | if ($pinlabel{$pin} =~ /type:([a-zA-Z]+)/) { |
|
- | 132 | my $type = $1; |
|
- | 133 | printf STDERR "Found pintype %s\n", $type; |
|
- | 134 | $pinlabel{$pin} =~ s/type:$type//; |
|
- | 135 | $pindata{$pin}{type} = $type; |
|
- | 136 | }
|
|
- | 137 | $pinlabel{$pin} =~ s/^ +//; |
|
- | 138 | $pinlabel{$pin} =~ s/ +$//; |
|
127 | 139 | ||
128 | $rlen{$pin} = &textlen($pinlabel{$pin}); |
140 | $rlen{$pin} = &textlen($pinlabel{$pin}); |
129 | 141 | ||
130 | if ($pinnumwidth < &textlen($pin)) { |
142 | if ($pinnumwidth < &textlen($pin)) { |
131 | $pinnumwidth = &textlen($pin); |
143 | $pinnumwidth = &textlen($pin); |
Line 357... | Line 369... | ||
357 | 369 | }
|
|
358 | 370 | printf("P %d %d %d %d 1 0 0\n", |
|
359 | 371 | $pinx{$pin} - $pinnumwidth, $piny{$pin}, $x, $piny{$pin}); |
|
360 | 372 | print "{\n"; |
|
361 | 373 | &pltext($pinx{$pin} + $px, $piny{$pin}, 1, $pinlabel{$pin}); |
|
- | 374 | ||
- | 375 | # pintype
|
|
- | 376 | if (defined $pindata{$pin} && defined $pindata{$pin}{type}) { |
|
- | 377 | printf("T %d %d 5 8 1 1 0 8 1\n%s\n", $pinx{$pin} - 50, |
|
- | 378 | $piny{$pin} - 25, $pindata{$pin}{type}); |
|
- | 379 | }
|
|
362 | 380 | &ntext($pinx{$pin} -100, $piny{$pin} + 50, 6, $pin); |
|
363 | 381 | print "}\n"; |
|
364 | 382 | }
|
|
365 | 383 | ||
366 | 384 | sub drawpin_right { |
|
Line 383... | Line 401... | ||
383 | 401 | }
|
|
384 | 402 | printf("P %d %d %d %d 1 0 0\n", |
|
385 | 403 | $pinx{$pin} + $pinnumwidth, $piny{$pin}, $x, $piny{$pin}); |
|
386 | 404 | print "{\n"; |
|
387 | 405 | &pltext($pinx{$pin} - $px, $piny{$pin}, 7, $pinlabel{$pin}); |
|
- | 406 | ||
- | 407 | # pintype
|
|
- | 408 | if (defined $pindata{$pin} && defined $pindata{$pin}{type}) { |
|
- | 409 | printf("T %d %d 5 8 1 1 0 2 1\n%s\n", $pinx{$pin} + 50, |
|
- | 410 | $piny{$pin} - 25, $pindata{$pin}{type}); |
|
- | 411 | }
|
|
- | 412 | ||
388 | 413 | &ntext($pinx{$pin} +100, $piny{$pin} + 50, 0, $pin); |
|
389 | 414 | print "}\n"; |
|
390 | 415 | }
|
|
391 | 416 | ||
392 | 417 | sub ntext { |