This is atarist.c in view mode; [Download] [Up]
/* Conversion of files between different charsets and usages. Copyright (C) 1993, 1994 Free Software Foundation, Inc. Francois Pinard <pinard@iro.umontreal.ca>, 1993. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Define for using new double step code. */ #define USE_DOUBLE_STEP 1 #include "recode.h" #ifdef USE_DOUBLE_STEP /* RFC 1345 style description for AtariST (non official). */ /* Andreas Schwab writes: There are some characters which i'm not sure about. When compared with IBM865 (which i think is the original source for the atari charset) the characters "bullet operator" and "middle dot" (dec 249/250) are swapped. This may be intentional or a bug in the table for IBM865. Also character dec 238 looks more like "element of" than "greek small letter epsilon", actually it is a bit too large for both interpretations. I suppose that the other changes were made for copyright reasons. */ static DOUBLE_TABLE table = { "NUSHSXEXETEQAKBLBSHTLFVTFFCRSOSIDLD1D2D3D4NKSYEBCNEMSBECFSGSRSUS", "SP! \" NbDO% & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? ", "AtA B C D E F G H I J K L M N O P Q R S T U V W X Y Z <(//)>'>_ ", "'!a b c d e f g h i j k l m n o p q r s t u v w x y z (!!!!)'?DT", "C,u:e'a>a:a!aac,e>e:e!i:i>i!A:AAE'aeAEo>o:o!u>u!y:O:U:CtPdYessFl", "a'i'o'u'n?N?-a-o?ININO1214!I<<>>a?o?O/o/oeOEA!A?O?':''/-PICoRgTM", "ijIJA+B+G+D+H+W+Z+X+TjJ+K%K+L+M%M+N%N+S+E+P%P+ZjZJQ+R+ShT+SEAN00", "a*b*G*p*S*s*m*t*F*H*W*d*Io/0(-(U=3+->==<IuIl-:?2ObSb.MRTnS2S3S'-", }; #else /* not USE_DOUBLE_STEP */ /* Data for Atari ST to ISO Latin-1 code conversions. */ static KNOWN_PAIR known_pairs[] = { {128, 199}, /* C, */ {129, 252}, /* u" */ {130, 233}, /* e' */ {131, 226}, /* a^ */ {132, 228}, /* a" */ {133, 224}, /* a` */ {134, 229}, /* aa */ {135, 231}, /* c, */ {136, 234}, /* e^ */ {137, 235}, /* e" */ {138, 232}, /* e` */ {139, 239}, /* i" */ {140, 238}, /* i^ */ {141, 236}, /* i` */ {142, 196}, /* A" */ {143, 197}, /* AA */ {144, 201}, /* E' */ {145, 230}, /* ae */ {146, 198}, /* AE */ {147, 244}, /* o^ */ {148, 246}, /* o" */ {149, 242}, /* o` */ {150, 251}, /* u^ */ {151, 249}, /* u` */ {152, 255}, /* y" */ {153, 214}, /* O" */ {154, 220}, /* U" */ {155, 162}, /* \cent */ {156, 163}, /* \pound */ {157, 165}, /* \yen */ {158, 223}, /* \ss */ {160, 225}, /* a' */ {161, 237}, /* i' */ {162, 243}, /* o' */ {163, 250}, /* u' */ {164, 241}, /* n~ */ {165, 209}, /* N~ */ {166, 170}, /* a_ */ {167, 186}, /* o_ */ {168, 191}, /* ?' */ {170, 172}, /* \neg */ {171, 189}, /* 1/2 */ {172, 188}, /* 1/4 */ {173, 161}, /* !` */ {174, 171}, /* `` */ {175, 187}, /* '' */ {176, 227}, /* a~ */ {177, 245}, /* o~ */ {178, 216}, /* O/ */ {179, 248}, /* o/ */ {182, 192}, /* A` */ {183, 195}, /* A~ */ {184, 213}, /* O~ */ {185, 168}, /* diaeresis */ {186, 180}, /* acute accent */ {188, 182}, /* pilcrow sign */ {189, 169}, /* copyright sign */ {190, 174}, /* registered trade mark sign */ {221, 167}, /* paragraph sign, section sign */ {230, 181}, /* mu, micro */ {241, 177}, /* +- */ {246, 247}, /* \div */ {248, 176}, /* \deg */ {250, 183}, /* \cdot */ {253, 178}, /* ^2 */ {254, 179}, /* ^3 */ }; #define NUMBER_OF_PAIRS (sizeof (known_pairs) / sizeof (KNOWN_PAIR)) static void init_latin1_atarist (STEP *step) { complete_pairs (step, 1, known_pairs, NUMBER_OF_PAIRS, 1); } static void init_atarist_latin1 (STEP *step) { complete_pairs (step, 1, known_pairs, NUMBER_OF_PAIRS, 0); } #endif /* not USE_DOUBLE_STEP */ void module_atarist (void) { #ifdef USE_DOUBLE_STEP declare_double_step (&table, "AtariST", 2); #else /* not USE_DOUBLE_STEP */ declare_step ("Latin-1", "AtariST", strict_mapping ? ONE_TO_MANY : REVERSIBLE, init_latin1_atarist, NULL); declare_step ("AtariST", "Latin-1", strict_mapping ? ONE_TO_MANY : REVERSIBLE, init_atarist_latin1, NULL); #endif /* not USE_DOUBLE_STEP */ }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.