Commit | Line | Data |
---|---|---|
dca25f5a DF |
1 | /* |
2 | * Copyright (c) 1980 Regents of the University of California. | |
3 | * All rights reserved. The Berkeley software License Agreement | |
4 | * specifies the terms and conditions for redistribution. | |
5 | */ | |
6 | ||
d3025be0 | 7 | #ifndef lint |
dca25f5a DF |
8 | static char sccsid[] = "@(#)linemod.c 5.1 (Berkeley) %G%"; |
9 | #endif not lint | |
d3025be0 RC |
10 | |
11 | #include "hp7221.h" | |
12 | ||
13 | linemod( line ) | |
14 | char *line; | |
15 | { | |
16 | /* | |
17 | * Note that the bit patterns could be compacted using the | |
18 | * repeat field conventions. They aren't for clarity. | |
19 | * Examples of almost identical packed patterns are in the | |
20 | * comments. | |
21 | * If linemod is changed really often, a ~15% savings | |
22 | * could be achieved. | |
23 | */ | |
24 | if ( *(line) == 's' ) { | |
25 | if ( *(++line) == 'o' ) { | |
26 | /* | |
27 | * solid mode 1 | |
28 | */ | |
29 | printf( "vA" ); | |
30 | return; | |
31 | } | |
32 | else if ( *(line) == 'h' ) { | |
33 | /* | |
34 | * shortdashed mode 4 | |
35 | */ | |
36 | printf( "vD" ); | |
37 | return; | |
38 | } | |
39 | } | |
40 | else if ( *(line) == 'd' ) { | |
41 | if ( *(++line) == 'o' && *(++line) == 't' ) { | |
42 | if ( *(++line) == 't' ) { | |
43 | /* | |
44 | * dotted mode 2 | |
45 | * printf( "W(P00001)" ); | |
46 | */ | |
47 | printf( "vB" ); | |
48 | return; | |
49 | } | |
50 | else if ( *(line) == 'd' ) { | |
51 | /* | |
52 | * dotdashed mode 3 | |
53 | * printf( "W(P0110010)" ); | |
54 | */ | |
55 | printf( "vC" ); | |
56 | return; | |
57 | } | |
58 | } | |
59 | } | |
60 | else if ( *(line) == 'l' ) { | |
61 | /* | |
62 | * longdashed mode 5 | |
63 | * printf( "W(P11100)" ); | |
64 | */ | |
65 | printf( "vE" ); | |
66 | return; | |
67 | } | |
68 | printf( "vA" ); | |
69 | return; | |
70 | } |