From: anoosh@mips.com (Anoosh Hosseini)
Newsgroups: soc.culture.iranian
Subject: Re: PERSIAN WordProcessor, To Be or Not To Be
Date: 23 Aug 92 19:31:10 GMT
Organization: Silicon Graphics Inc. MIPS Technology, Sunnyvale, California
NNTP-Posting-Host: wildcat.mips.com

In article <1992Aug22.060815.28864@ringer.cs.utsa.edu> kbahrami@lonestar.utsa.edu (Kambiz J. Bahrami) writes:
>
>Howdy folks,
>
>  I like to know if there is a shareware Persian wordprocessor out there
>  or not.  You see, in the past few weeks, to break the monotny of
>  studying for my finance and accounting classes, I have been trying out
>  my Pascal and C++ compilers.  The end result is that I ended up writing
>  a set of programs that with some modifications can be turned into a
>  Persian wordprocessor.  Thus, my question, is there a shareware
>  Persian wordprocessor out there?  If the answer is no, then I will
>  finish up with my coding, otherwise this has been just a practice
>  in coding for me.  The following is a list of specifications and some
>  of the programs that are finished or in the process of finishing up.
>  ---------------------------------------------------------------------
[stuff deleted]

>  I have left off other programs and specifications, like a spell checker
>  and thesorous  (I could use one right now) that i am working on, and
>  other detailed specifications since I am not sure if I can finish them
>  in a short time period.
>
>
>  From y'all, I welcome any information or discusions on this subject.
>
>
>  from the Lone Star state,
>                                KAMBIZ
>

JenAb AghAyeh KAmbiz khAn,
	keep up the good work, here are a few pointers. First there is 
an Iranian national standard for both encoding and keyboard
layout, though it is under revision/ upgrade. In 8 bit format, 
ASCII will be in the lower 128 entries, and Farsi (ISCII) in the 
upper 128.  To save you some time, here is the info you need.
The keyboard layout is based on the IBM PC. You will need some other info
to correctly understand the file below, get in touch.

-anoosh

P.S. One may also use a keyboard layout with corresponds to the sound of 
     the characters, this helps some get going.

cut here 8<----
/****************************************************************************
 *									    *
 *  Copyright (C) 1991,1992 Simorgh Software Inc, all rights reserved.	    *
 *									    *
 *  NAME:							            *
 *  AUTHOR: 	Anoosh Hosseini					            *
 *  COMMENTS:	contributed to IRN project.			    	    *
 *    									    *
 ****************************************************************************/


/* ISCII (lower 128 defined as ASCII ) */

#define ISCII_PERSIAN_SPACE	0xa0
#define ISCII_PERSIAN_EXCM	0xa1
#define ISCII_PERSIAN_QUOTE	0xa2
#define ISCII_PERSIAN_MULT	0xa3
#define ISCII_RIAL		0xa4
#define ISCII_PERSIAN_PRECENT 	0xa5
#define ISCII_PERSIAN_COLON	0xa6
#define ISCII_PERSIAN_QUESTION 	0xa7
#define ISCII_PERSIAN_LP	0xa8
#define ISCII_PERSIAN_RP	0xa9
#define ISCII_PERSIAN_EQUAL	0xaa
#define ISCII_PERSIAN_PLUS	0xab
#define ISCII_PERSIAN_COMMA	0xac
#define ISCII_PERSIAN_MINUS	0xad
#define ISCII_PERSIAN_DOT	0xae
#define ISCII_PERSIAN_SOLIDUS   0xaf
#define ISCII_PERSIAN_ZERO	0xb0
#define ISCII_PERSIAN_ONE	0xb1
#define ISCII_PERSIAN_TWO	0xb2
#define ISCII_PERSIAN_THREE	0xb3
#define ISCII_PERSIAN_FOUR	0xb4
#define ISCII_PERSIAN_FIVE	0xb5
#define ISCII_PERSIAN_SIX	0xb6
#define ISCII_PERSIAN_SEVEN	0xb7
#define ISCII_PERSIAN_EIGHT	0xb8
#define ISCII_PERSIAN_NINE	0xb9
#define ISCII_ALEF_MADEH 	0xba
#define ISCII_ALEF	 	0xbb
#define ISCII_HAMZEH		0xbc
#define ISCII_HAMZEH_ALEF	0xbd
#define ISCII_HAMZEH_VAAV	0xbe
#define ISCII_HAMZEH_YE		0xbf
#define ISCII_BE		0xc0
#define ISCII_BE_END		0xc1
#define ISCII_PE		0xc2
#define ISCII_PE_END		0xc3
#define ISCII_TE		0xc4
#define ISCII_TE_END		0xc5
#define ISCII_SE		0xc6
#define ISCII_SE_END		0xc7
#define ISCII_JIM		0xc8
#define ISCII_JIM_END		0xc9
#define ISCII_CHIM		0xca
#define ISCII_CHIM_END		0xcb
#define ISCII_HE		0xcc
#define ISCII_HE_END		0xcd
#define ISCII_KHE		0xce
#define ISCII_KHE_END		0xcf
#define ISCII_DAAL		0xd0
#define ISCII_DAAL_END		0xd1 
#define ISCII_ZAAL		0xd2
#define ISCII_ZAAL_END		0xd3 
#define ISCII_RE		0xd4
#define ISCII_RE_END		0xd5 
#define ISCII_ZE		0xd6
#define ISCII_ZE_END		0xd7 
#define ISCII_JE		0xd8
#define ISCII_JE_END		0xd9
#define ISCII_SIN		0xda
#define ISCII_SIN_END		0xdb
#define ISCII_SHIN		0xdc
#define ISCII_SHIN_END		0xdd
#define ISCII_SAAD		0xde
#define ISCII_SAAD_END		0xdf
#define ISCII_ZAAD		0xe0
#define ISCII_ZAAD_END		0xe1
#define ISCII_TA		0xe2
#define ISCII_TA_END		0xe3
#define ISCII_ZA		0xe4
#define ISCII_ZA_END		0xe5
#define ISCII_AIN		0xe6
#define ISCII_AIN_END		0xe7
#define ISCII_GHAIN		0xe8
#define ISCII_GHAIN_END		0xe9
#define ISCII_FE		0xea
#define ISCII_FE_END		0xeb 
#define ISCII_GHAAF		0xec
#define ISCII_GHAAF_END		0xed
#define ISCII_KAAF		0xee
#define ISCII_KAAF_END		0xef
#define ISCII_GAAF		0xf0
#define ISCII_GAAF_END		0xf1
#define ISCII_LAM		0xf2
#define ISCII_LAM_END		0xf3
#define ISCII_MIM		0xf4
#define ISCII_MIM_END		0xf5
#define ISCII_NAAN		0xf6
#define ISCII_NAAN_END		0xf7
#define ISCII_VAAV		0xf8
#define ISCII_VAAV_END		0xf9
#define ISCII_HE2CHESHM		0xfa
#define ISCII_HE2CHESHM_END	0xfb
#define ISCII_YE		0xfc
#define ISCII_YE_END		0xfd 


/* from a different file */

/* IBM PC ASCII KEYBOARD CODE -> ISCII */
unsigned char keyboardToISCII[] = {
0,		/* 0 */
1,		/* 1 */
2,		/* 2 */
3,		/* 3 */
4,		/* 4 */
5,		/* 5 */
6,		/* 6 */
7,		/* 7 */
8,		/* 8 */
9,		/* 9 */
10,		/* 10 */
11,		/* 11 */
12,		/* 12 */
13,		/* 13 */
14,		/* 14 */
15,		/* 15 */
16,		/* 16 */
17,		/* 17 */
18,		/* 18 */
19,		/* 19 */
20,		/* 20 */
21,		/* 21 */
22,		/* 22 */
23,		/* 23 */
24,		/* 24 */
25,		/* 25 */
26,		/* 26 */
27,		/* 27 */
28,		/* 28 */
29,		/* 29 */
30,		/* 30 */
31,		/* 31 */
ISCII_PERSIAN_SPACE,		/* 32 space */
ISCII_PERSIAN_EXCM,		/* 33 Exclamation mark */
ISCII_GAAF_END,			/* 34 dquote */
/* needs redo */
ISCII_PERSIAN_SPACE,		/* 35 number sign, unused */
ISCII_RIAL,			/* 36 currency sign */
ISCII_PERSIAN_PRECENT,		/* 37 precent */
ISCII_PERSIAN_COMMA,		/* 38 ampersand */
ISCII_GAAF,			/* 39 apostrophe */
ISCII_PERSIAN_LP,		/* 40 left parenthesis */
ISCII_PERSIAN_RP,		/* 41 right parenthesis */
ISCII_PERSIAN_MULT,		/* 42 asterick */
ISCII_PERSIAN_PLUS,		/* 43 plus sign */
ISCII_VAAV,			/* 44 comma */
ISCII_PERSIAN_MINUS,		/* 45 minus sign */
ISCII_PERSIAN_DOT,		/* 46 full stop */
ISCII_PERSIAN_SOLIDUS,		/* 47 solidus */
ISCII_PERSIAN_ZERO,		/* 48 zero */
ISCII_PERSIAN_ONE,		/* 49 one  */
ISCII_PERSIAN_TWO,		/* 50 two  */
ISCII_PERSIAN_THREE,		/* 51 three */
ISCII_PERSIAN_FOUR,		/* 52 four */
ISCII_PERSIAN_FIVE,		/* 53 five */
ISCII_PERSIAN_SIX,		/* 54 six */
ISCII_PERSIAN_SEVEN,		/* 55 seven */
ISCII_PERSIAN_EIGHT,		/* 56 eight */
ISCII_PERSIAN_NINE,		/* 57 nine */
ISCII_KAAF_END,			/* 58 colon */
ISCII_KAAF,			/* 59 semi-colon */
ISCII_HAMZEH_VAAV,		/* 60 less than */
ISCII_PERSIAN_EQUAL,		/* 61 equal sign */
ISCII_HAMZEH_ALEF,		/* 62 greater than */
ISCII_PERSIAN_QUESTION,		/* 63 question mark */
ISCII_PERSIAN_QUOTE,		/* 64 at sign */
ISCII_SHIN_END,			/* 65 A */
ISCII_ZAAL_END,			/* 66 B */
ISCII_ZE_END,			/* 67 C */
ISCII_YE_END,			/* 68 D */
ISCII_SE_END,			/* 69 E */
ISCII_BE_END,			/* 70 F */
ISCII_LAM_END,			/* 71 G */
ISCII_ALEF_MADEH,		/* 72 H */
ISCII_HE2CHESHM_END,		/* 73 I */
ISCII_TE_END,			/* 74 J */
ISCII_NAAN_END,			/* 75 K */
ISCII_MIM_END,			/* 76 L */
ISCII_HAMZEH,			/* 77 M */	
ISCII_DAAL_END,			/* 78 N */
ISCII_KHE_END,			/* 79 O */
ISCII_HE_END,			/* 80 P */
ISCII_ZAAD_END,			/* 81 Q */
ISCII_GHAAF_END,		/* 82 R */
ISCII_SIN_END,			/* 83 S */
ISCII_FE_END,			/* 84 T */
ISCII_AIN_END,			/* 85 U */
ISCII_RE_END,			/* 86 V */
ISCII_SAAD_END,			/* 87 W */
ISCII_TA_END,			/* 88 X */
ISCII_GHAIN_END,		/* 89 Y */
ISCII_ZA_END,			/* 90 Z */
ISCII_JIM,			/* 91 [ */
ISCII_JE,			/* 91 \ */
ISCII_CHIM,			/* 92 ] */
ISCII_PERSIAN_COLON,		/* 93 ^ */
/* NEEDS REDO */
ISCII_PERSIAN_SPACE,		/* 94 _ */		
ISCII_PE,			/* 95 ` */
ISCII_SHIN,			/* 96 a */
ISCII_ZAAL,			/* 97 b */
ISCII_ZE,			/* 98 c */
ISCII_YE,			/* 99 d */
ISCII_SE,			/* 100 e */
ISCII_BE,			/* 101 f */
ISCII_LAM,			/* 102 g */
ISCII_ALEF,			/* 103 h */
ISCII_HE2CHESHM,		/* 104 i */
ISCII_TE,			/* 105 j */
ISCII_NAAN,			/* 106 k */
ISCII_MIM,			/* 107 l */
ISCII_HAMZEH_YE,		/* 108 m */
ISCII_DAAL,			/* 109 n */
ISCII_KHE,			/* 110 o */
ISCII_HE,			/* 111 p */
ISCII_ZAAD,			/* 112 q */
ISCII_GHAAF,			/* 113 r */
ISCII_SIN,			/* 114 s */
ISCII_FE,			/* 115 t */
ISCII_AIN,			/* 116 u */
ISCII_RE,			/* 117 v */
ISCII_SAAD,			/* 118 w */
ISCII_TA,			/* 119 x */
ISCII_GHAIN,			/* 120 y */
ISCII_ZA,			/* 121 z */
ISCII_JIM_END,			/* 122 { */
ISCII_JE_END,			/* 123 | */
ISCII_CHIM_END,			/* 124 } */
ISCII_PE_END,			/* 125 ~ */ 
ISCII_PERSIAN_SPACE,		/* 126   */
ISCII_PERSIAN_SPACE,		/* 127   */
}
----->8cut here 
-- 
 POTS: (408) 524-8220
 UUCP: {ames,pyramid,prls,decwrl}!mips!anoosh |  anoosh@mips.com
 USPS: Silicon Graphics Inc. Mips Technology Inc MS 2-02, 928 Arques, Sunnyvale, CA 94086
Newsgroups: soc.culture.iranian