C INTERNATIONAL AVS CENTER C (This disclaimer must remain at the top of all files) C C WARRANTY DISCLAIMER C C This module and the files associated with it are distributed free of charge. C It is placed in the public domain and permission is granted for anyone to use, C duplicate, modify, and redistribute it unless otherwise noted. Some modules C may be copyrighted. You agree to abide by the conditions also included in C the AVS Licensing Agreement, version 1.0, located in the main module C directory located at the International AVS Center ftp site and to include C the AVS Licensing Agreement when you distribute any files downloaded from C that site. C C The International AVS Center, MCNC, the AVS Consortium and the individual C submitting the module and files associated with said module provide absolutely C NO WARRANTY OF ANY KIND with respect to this software. The entire risk as to C the quality and performance of this software is with the user. IN NO EVENT C WILL The International AVS Center, MCNC, the AVS Consortium and the individual C submitting the module and files associated with said module BE LIABLE TO C ANYONE FOR ANY DAMAGES ARISING FROM THE USE OF THIS SOFTWARE, INCLUDING, C WITHOUT LIMITATION, DAMAGES RESULTING FROM LOST DATA OR LOST PROFITS, OR ANY C SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES. C C This AVS module and associated files are public domain software unless C otherwise noted. Permission is hereby granted to do whatever you like with C it, subject to the conditions that may exist in copyrighted materials. Should C you wish to make a contribution toward the improvement, modification, or C general performance of this module, please send us your comments: why you C liked or disliked it, how you use it, and most important, how it helps your C work. We will receive your comments at avs@ncsc.org. C C Please send AVS module bug reports to avs@ncsc.org. C subroutine cgbstr(ascii,keuze) * ====== * Calcomp stroke tables * --------------------- logical ascii label=mod(keuze,128)+1 if(ascii) then goto 1128 else goto 2128 endif * 1128 continue goto(1000,1001,1002,1003,1004,1005,1006,1007,1008,1009, , 1010,1011,1012,1013,1014,1015,1016,1017,1018,1019, , 1020,1021,1022,1023,1024,1025,1026,1027,1028,1029, , 1030,1031,1032,1033,1034,1035,1036,1037,1038,1039, , 1040,1041,1042,1043,1044,1045,1046,1047,1048,1049, , 1050,1051,1052,1053,1054,1055,1056,1057,1058,1059, , 1060,1061,1062,1063,1064,1065,1066,1067,1068,1069, , 1070,1071,1072,1073,1074,1075,1076,1077,1078,1079, , 1080,1081,1082,1083,1084,1085,1086,1087,1088,1089, , 1090,1091,1092,1093,1094,1095,1096,1097,1098,1099, , 1100,1101,1102,1103,1104,1105,1106,1107,1108,1109, , 1110,1111,1112,1113,1114,1115,1116,1117,1118,1119, , 1120,1121,1122,1123,1124,1125,1126,1127), label * 2128 continue goto(2000,2001,2002,2003,2004,2005,2006,2007,2008,2009, , 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019, , 2020,2021,2022,2023,2024,2025,2026,2027,2028,2029, , 2030,2031,2032,2033,2034,2035,2036,2037,2038,2039, , 2040,2041,2042,2043,2044,2045,2046,2047,2048,2049, , 2050,2051,2052,2053,2054,2055,2056,2057,2058,2059, , 2060,2061,2062,2063,2064,2065,2066,2067,2068,2069, , 2070,2071,2072,2073,2074,2075,2076,2077,2078,2079, , 2080,2081,2082,2083,2084,2085,2086,2087,2088,2089, , 2090,2091,2092,2093,2094,2095,2096,2097,2098,2099, , 2100,2101,2102,2103,2104,2105,2106,2107,2108,2109, , 2110,2111,2112,2113,2114,2115,2116,2117,2118,2119, , 2120,2121,2122,2123,2124,2125,2126,2127), label * * Calls to subroutine MARK (EBCDIC): * --------------------------------- * ... According to IBM mainframe conventions ... * 2000 continue ! CENTER SQUARE call cgbmvi('2224040040442422') return 2001 continue ! CENTER OCTAGON call cgbmvi('222414030110304143342422') return 2002 continue ! CENTER TRIANGLE call cgbmvi('222401412422') return 2003 continue ! CENTER PLUS call cgbmvi('22242022024222') return 2004 continue ! CENTER X call cgbmvi('22044022004422') return 2005 continue ! CENTER DIAMOND call cgbmvi('22240220422422') return 2006 continue ! CENTER UP ARROW call cgbmvi('22202402422422') return 2007 continue ! CENTER BAR X call cgbmvi('220044044022') return 2008 continue ! CENTER Z call cgbmvi('2244044400400022') return 2009 continue ! CENTER Y call cgbmvi('22042244222022') return 2010 continue ! CENTER SQUARE X call cgbmvi('2244331304131100113140313322') return 2011 continue ! CENTER ASTERISK call cgbmvi('22242022024222044022004422') return 2012 continue ! CENTER DOUBLE BAR X call cgbmvi('224404400022') return 2013 continue ! CENTER VERTICAL call cgbmvi('22242022') return 2014 continue ! STAR call cgbmvi('325872268632') return 2015 continue ! HORIZONTAL VECTOR call cgbmvi('2262') return 2016 continue ! VERTICAL VECTOR call cgbmvi('2226') return 2017 continue ! BACKSPACE * call cgbmvi('F4') return 2018 continue ! CARAT call cgbmvi('224662') return 2019 continue ! EQUIVALENCE call cgbmvi('2767F06525F02363') return 2020 continue ! RIGHT ARROW call cgbmvi('1575565475') return 2021 continue ! CARRIAGE RETURN * call cgbmvi('F3') return 2022 continue ! NOT EQUAL call cgbmvi('2464F06626F03357') return 2023 continue ! PLUS MINUS call cgbmvi('2363F04448462666') return 2024 continue ! UNDERSCORE call cgbmvi('1181') return 2025 continue ! NULL CHARACTER * call cgbmvi('F5') return 2026 continue ! OVERSCORE call cgbmvi('1A8A') return 2027 continue ! INTEGRAL call cgbmvi('12213142495A6A79') return 2028 continue ! IMPLIES call cgbmvi('245465665727') return 2029 continue ! OR call cgbmvi('264266') return 2030 continue call cgbmvi('142535536374') return 2031 continue call cgbmvi('142535536374F0766555372716') return 2032 continue ! RIGHT BRACKET call cgbmvi('2131424556474A3B2B') return 2033 continue ! LEFT BRACKET call cgbmvi('6151424536474A5B6B') return 2034 continue ! MU call cgbmvi('223734435364676473') return 2035 continue ! PI call cgbmvi('333727675753') return 2036 continue ! PHI call cgbmvi('4248F0372624335364665737') return 2037 continue ! THETA call cgbmvi('372624335364665737F01575') return 2038 continue ! PSI call cgbmvi('26363443545666F04248') return 2039 continue ! CHI call cgbmvi('2366F026365363') return 2040 continue ! OMEGA call cgbmvi('272433444744536467') return 2041 continue ! LAMBDA call cgbmvi('28374563F02245') return 2042 continue ! ALPHA call cgbmvi('6757463727161524344546455464') return 2043 continue ! DELTA call cgbmvi('584837465665645343343546') return 2044 continue ! EPSILON call cgbmvi('674736344363F06525') return 2045 continue ! ETA call cgbmvi('2637463446576652') return 2046 continue ! ENTER SUPERSCRIPT MODE OR LEAVE SUBSCRIPT. call cgbmvi('F1') return 2047 continue ! ENTER SUBSCRIPT MODE OR LEAVE SUPERSCRIPT. call cgbmvi('F2') return 2048 continue ! SUMMATION call cgbmvi('7121562A7A') return 2049 continue ! DIVIDE call cgbmvi('1565F03334444333F03637474636') return 2050 continue ! LESS THAN OR EQUAL call cgbmvi('682664F06323') return 2051 continue ! GREATER OR EQUAL call cgbmvi('6323F0246628') return 2052 continue ! DELTA call cgbmvi('12477212') return 2053 continue ! LEFT BRACE call cgbmvi('69292262') return 2054 continue ! RIGHT BRACE call cgbmvi('22626929') return 2055 continue ! REVERSE SLASH call cgbmvi('2962') return 2056 continue ! GAMMA call cgbmvi('28394842485968') return 2057 continue ! SQUARE ROOT call cgbmvi('2334424A7A') return 2058 continue call cgbmvi('42443454444838584849') return 2059 continue call cgbmvi('42443454444838584849463656') return 2060 continue ! LEFT ARROW call cgbmvi('1536341575') return 2061 continue ! TIMES call cgbmvi('2367F02763') return 2062 continue ! UP ARROW call cgbmvi('4249375749') return 2063 continue ! DOWN ARROW call cgbmvi('4234544249') return 2064 continue ! BLANK call cgbmvi('F0') return 2065 continue ! A call cgbmvi('222565252839596862') return 2066 continue ! B call cgbmvi('636556265667685929225263') return 2067 continue ! C call cgbmvi('6859392823325263') return 2068 continue ! D call cgbmvi('68592922526368') return 2069 continue ! E call cgbmvi('69292656262262') return 2070 continue ! F call cgbmvi('692926562622') return 2071 continue ! G call cgbmvi('68593928233252636555') return 2072 continue ! H call cgbmvi('222926666962') return 2073 continue ! I call cgbmvi('325242493959') return 2074 continue ! CENT call cgbmvi('6657372624335364F04248') return 2075 continue ! PERIOD call cgbmvi('4232334342') return 2076 continue ! LESS call cgbmvi('682664') return 2077 continue ! LEFT PAREN call cgbmvi('69585362') return 2078 continue ! PLUS call cgbmvi('4448462666') return 2079 continue ! VERTICAL call cgbmvi('212A') return 2080 continue ! AMPERSAND call cgbmvi('62373849582524334364') return 2081 continue ! J call cgbmvi('2332526369') return 2082 continue ! K call cgbmvi('29222569F04762') return 2083 continue ! L call cgbmvi('292262') return 2084 continue ! M call cgbmvi('2229456962') return 2085 continue ! N call cgbmvi('69622922') return 2086 continue ! O call cgbmvi('4769F0685939282332526368') return 2087 continue ! P call cgbmvi('22295968675626') return 2088 continue ! Q call cgbmvi('685939282332526368F04462') return 2089 continue ! R call cgbmvi('22295968675626566562') return 2090 continue ! EXCLAMATION call cgbmvi('4944F032435232') return 2091 continue ! DOLLAR SIGN call cgbmvi('4942F0235364655636273868') return 2092 continue ! ASTERISK call cgbmvi('2565456327452367') return 2093 continue ! RIGHT PARENTHESIS call cgbmvi('29383322') return 2094 continue ! SEMI COLON call cgbmvi('3536464535F0423233434231') return 2095 continue ! NOT call cgbmvi('257574') return 2096 continue ! MINUS call cgbmvi('2565') return 2097 continue ! SLASH call cgbmvi('2269') return 2098 continue ! S call cgbmvi('685939282736566563523223') return 2099 continue ! T call cgbmvi('29694942') return 2100 continue ! U call cgbmvi('292332526369') return 2101 continue ! V call cgbmvi('294269') return 2102 continue ! W call cgbmvi('2922466269') return 2103 continue ! X call cgbmvi('2962F02269') return 2104 continue ! Y call cgbmvi('2947424769') return 2105 continue ! Z call cgbmvi('29692262F03656') return 2106 continue ! INFINITY call cgbmvi('6757463727161524344546455464757667') return 2107 continue ! COMMA call cgbmvi('423233434231') return 2108 continue ! PERCENT call cgbmvi('3828293938F06922F05363625253') return 2109 continue ! DASH call cgbmvi('1575') return 2110 continue ! GREATER THAN call cgbmvi('246628') return 2111 continue ! QUESTION MARK call cgbmvi('32435232F04446566768593928') return 2112 continue ! 0 call cgbmvi('685939282332526368') return 2113 continue ! 1 call cgbmvi('3849423252') return 2114 continue ! 2 call cgbmvi('2839596866242262') return 2115 continue ! 3 call cgbmvi('28395968675636566563523223') return 2116 continue ! 4 call cgbmvi('2924645459524262') return 2117 continue ! 5 call cgbmvi('233252636556262969') return 2118 continue ! 6 call cgbmvi('3656656352322328395968') return 2119 continue ! 7 call cgbmvi('2969684342') return 2120 continue ! 8 call cgbmvi('56676859392827365665635232232536') return 2121 continue ! 9 call cgbmvi('233252636859392826355566') return 2122 continue ! COLON call cgbmvi('3536464535F04232334342') return 2123 continue ! POUND call cgbmvi('2464545357566626363733') return 2124 continue ! AT call cgbmvi('66574736354454656758382724335364') return 2125 continue ! APOSTROPE call cgbmvi('57495957') return 2126 continue ! EQUAL call cgbmvi('2464F06626') return 2127 continue ! QUOTATIONS call cgbmvi('57495957F037293937') return * * Calls to subroutine SYMBOL (ASCII): * ---------------------------------- * ... Non-printable 'control' characters first ... * 1000 goto 2025 ! NULL 1001 goto 2025 ! NULL 1002 goto 2025 ! NULL 1003 goto 2025 ! NULL 1004 goto 2025 ! NULL 1005 goto 2025 ! NULL 1006 goto 2025 ! NULL 1007 goto 2025 ! NULL 1008 goto 2017 ! Backspace 1009 goto 2025 ! NULL 1010 continue ! Line feed only call cgbmvi('F6') return 1011 goto 2025 ! NULL 1012 goto 2025 ! NULL 1013 continue ! Carriage return only call cgbmvi('F7') return 1014 goto 2025 ! NULL 1015 goto 2025 ! NULL 1016 goto 2025 ! NULL 1017 goto 2025 ! NULL 1018 goto 2025 ! NULL 1019 goto 2025 ! NULL 1020 goto 2025 ! NULL 1021 goto 2025 ! NULL 1022 goto 2025 ! NULL 1023 goto 2025 ! NULL 1024 goto 2025 ! NULL 1025 goto 2025 ! NULL 1026 goto 2025 ! NULL 1027 goto 2025 ! NULL 1028 goto 2025 ! NULL 1029 goto 2025 ! NULL 1030 goto 2025 ! NULL 1031 goto 2025 ! NULL * * ... Printable ASCII characters ... * 1032 goto 2064 ! Space, blank 1033 goto 2090 ! Exclamation mark 1034 goto 2127 ! Doublequote 1035 goto 2123 ! Number sign, pound sign 1036 goto 2091 ! Dollar sign 1037 goto 2108 ! Percent sign 1038 goto 2080 ! Ampersand 1039 goto 2125 ! Apostrophe, accent accute (single quote) = accent grav $e 1040 goto 2077 ! Left parenthesis 1041 goto 2093 ! Right parenthesis 1042 goto 2092 ! Asterix, star 1043 goto 2078 ! Plus sign 1044 goto 2107 ! Comma 1045 goto 2096 ! Dash, hyphen, minus sign 1046 goto 2075 ! Period, dot 1047 goto 2097 ! Slash * 1048 goto 2112 ! Zero 1049 goto 2113 ! One 1050 goto 2114 ! Two 1051 goto 2115 ! Three 1052 goto 2116 ! Four 1053 goto 2117 ! Five 1054 goto 2118 ! Six 1055 goto 2119 ! Seven 1056 goto 2120 ! Eight 1057 goto 2121 ! Nine * 1058 goto 2122 ! Colon 1059 goto 2094 ! Semicolon 1060 goto 2076 ! Left angle bracket (smaller sign) 1061 goto 2126 ! Equal sign 1062 goto 2110 ! Right angle bracket (greater sign) 1063 goto 2111 ! Question mark 1064 goto 2124 ! "At" sign (monkey's tail) * 1065 goto 2065 ! A 1066 goto 2066 ! B 1067 goto 2067 ! C 1068 goto 2068 ! D 1069 goto 2069 ! E 1070 goto 2070 ! F 1071 goto 2071 ! G 1072 goto 2072 ! H 1073 goto 2073 ! I 1074 goto 2081 ! J 1075 goto 2082 ! K 1076 goto 2083 ! L 1077 goto 2084 ! M 1078 goto 2085 ! N 1079 goto 2086 ! O 1080 goto 2087 ! P 1081 goto 2088 ! Q 1082 goto 2089 ! R 1083 goto 2098 ! S 1084 goto 2099 ! T 1085 goto 2100 ! U 1086 goto 2101 ! V 1087 goto 2102 ! W 1088 goto 2103 ! X 1089 goto 2104 ! Y 1090 goto 2105 ! Z * 1091 goto 2053 ! Left square bracket 1092 goto 2055 ! Backslash 1093 goto 2054 ! Right square bracket 1094 goto 2062 ! Up arrow (circumflex) 1095 goto 2024 ! Underscore, left arrow 1096 goto 2125 ! Accent grave = accent acute * 1097 continue ! a call cgbmvi('2536566562F063543423325263') return 1098 continue ! b call cgbmvi('2229F02536566563523223') return 1099 continue ! c call cgbmvi('6556362523325263') return 1100 continue ! d call cgbmvi('6556362523325263F06962') return 1101 continue ! e call cgbmvi('236556362523325263') return 1102 continue ! f call cgbmvi('69594842F02666') return 1103 continue ! g call cgbmvi('65563625233252636561503021') return 1104 continue ! h call cgbmvi('2229F02536566562') return 1105 continue ! i call cgbmvi('3837F036334252') return 1106 continue ! j call cgbmvi('6867F06661503021') return 1107 continue ! k call cgbmvi('2922F02456F02462') return 1108 continue ! l call cgbmvi('394942F03252') return 1109 continue ! m call cgbmvi('2622F025364542F045566562') return 1110 continue ! n call cgbmvi('2622F02536566562') return 1111 continue ! o call cgbmvi('655636252332526365') return 1112 continue ! p call cgbmvi('2620F02536566563523223') return 1113 continue ! q call cgbmvi('6556362523325263F0656070') return 1114 continue ! r call cgbmvi('263632F0355665') return 1115 continue ! s call cgbmvi('65563625345463523223') return 1116 continue ! t call cgbmvi('48435252F02666') return 1117 continue ! u call cgbmvi('2623325263F06662') return 1118 continue ! v call cgbmvi('264266') return 1119 continue ! w call cgbmvi('2632465266') return 1120 continue ! x call cgbmvi('2662F06622') return 1121 continue ! y call cgbmvi('2642F0663020') return 1122 continue ! z call cgbmvi('26662262') return * 1123 goto 2033 ! Left brace 1124 goto 2079 ! Vertical bar 1125 goto 2032 ! Right brace 1126 goto 2030 ! Tilde * 1127 goto 2017 ! Delete, rubout (backspace) end