% This file is part of the TeluguTeX Software Package.
%Copyright (c) 1991 Lakshmankumar Mukkavilli
%
%The TeluguTeX Software Package is distributed in the hope that
%it will be useful,but WITHOUT ANY WARRANTY.  No author or distributor
%accepts responsibility to anyone for the consequences of using it
%or for whether it serves any particular purpose or works at all,
%unless he says so in writing.  Refer to the TeluguTeX Software Package
%General Public License for full details.
%
%Everyone is granted permission to copy, modify and redistribute
%the TeluguTeX Software Package, but only under the conditions described in the
%TeluguTeX Software Package General Public License.   A copy of this license is
%supposed to have been given to you along with TeluguTeX Software Package so you
%can know your rights and responsibilities.  It should be in a
%file named CopyrightLong.  Among other things, the copyright notice
%and this notice must be preserved on all copies.
%%%%%%%
% This file contains codes to determine where various symbols
%   are placed in the font. The symbols that are also part of ASCII
%   character set are placed at the same location as in ASCII code.
%   Any revision of this file MUST maintain this assignment.
%   All telugu digits are given contiguous codes in the order
%   0,1,2,3,4,5,6,7,8,9. Any revision of this file MUST maintain
%   this property.
%
% vowels
v_a_code         := oct"027";
v_aa_code        := v_a_code     +1;
v_e_code         := v_aa_code    +1;
v_ee_code        := v_e_code     +1;
v_u_code         := v_ee_code    +1;
v_uu_code        := v_u_code     +1;
v_ro_code        := v_uu_code    +1;
v_roo_code       := v_ro_code    +1;
v_lo_code        := v_roo_code   +1;
v_loo_code       := v_lo_code    +1;
v_ea_code        := oct"101";
v_eae_code       := v_ea_code    +1;
v_i_code         := v_eae_code   +1;
v_ao_code        := v_i_code     +1;
v_aoo_code       := v_ao_code    +1;
v_au_code        := v_aoo_code   +1;

% vowel modifiers
vm_a_code        := oct"200";
vm_aa_code       := vm_a_code    +1;
vm_aaa_code      := vm_aa_code   +1;
vm_e_code        := vm_aaa_code  +1;
vm_ee_code       := vm_e_code    +1;
vm_eea_code      := vm_ee_code   +1;
vm_eeb_code      := vm_eea_code  +1;
vm_u_code        := vm_eeb_code  +1;
vm_uu_code       := vm_u_code    +1;
vm_ro_code       := vm_uu_code   +1;
vm_roo_code      := vm_ro_code   +1;
vm_lo_code       := vm_roo_code  +1;
vm_loo_code      := vm_lo_code   +1;
vm_ea_code       := vm_loo_code  +1;
vm_eae_code      := vm_ea_code   +1;
vm_i1_code       := vm_ea_code;
vm_i2_code       := vm_eae_code  +1;
vm_ao_code       := vm_i2_code   +1;
vm_aoo_code      := vm_ao_code   +1;
vm_aoo_code_a    := vm_aoo_code  +1;
vm_au_code       := vm_aoo_code_a+1;
vm_p_code        := vm_au_code   +1;

% Consonant bases
cb_ka_code       := v_au_code    +1;
cb_kha_code      := cb_ka_code   +1;
cb_ga_code       := cb_kha_code  +1;
cb_gha_code      := cb_ga_code   +1;
cb_nga_code      := cb_gha_code  +1;
cb_cha_code      := cb_nga_code  +1;
cb_ccha_code     := cb_cha_code  +1;
cb_ja_code       := cb_ccha_code +1;
cb_jha_code      := cb_ja_code   +1;
cb_nya_code      := cb_jha_code  +1;
cb_tta_code      := cb_nya_code  +1;
cb_ttha_code     := cb_tta_code  +1;
cb_dda_code      := cb_ttha_code +1;
cb_ddha_code     := cb_dda_code  +1;
cb_nna_code      := cb_ddha_code +1;
cb_ta_code       := cb_nna_code  +1;
cb_tha_code      := cb_ta_code   +1;
cb_da_code       := cb_tha_code  +1;
cb_dha_code      := cb_da_code   +1;
cb_na_code       := cb_dha_code  +1;
cb_pa_code       := oct"141";
cb_pha_code      := cb_pa_code   +1;
cb_ba_code       := cb_pha_code  +1;
cb_bha_code      := cb_ba_code   +1;
cb_ma_code       := cb_bha_code  +1;
cb_ya_code       := cb_ma_code   +1;
cb_ra_code       := cb_ya_code   +1;
cb_rra_code      := cb_ra_code   +1;
cb_la_code       := cb_rra_code  +1;
cb_lla_code      := cb_la_code   +1;
cb_va_code       := cb_lla_code  +1;
cb_ca_code       := cb_va_code   +1;
cb_sha_code      := cb_ca_code   +1;
cb_sa_code       := cb_sha_code  +1;
cb_ha_code       := cb_sa_code   +1;
cb_ksha_code     := cb_ha_code   +1;
cb_dt_code       := cb_ksha_code +1;
cb_np_code       := cb_dt_code   +1;
cb_vg_code       := cb_np_code   +1;
cb_bb_code       := cb_vg_code   +1; %  boxes(bb,bo,be)(used for demonstrating
%                                        vowel modifiers, cons. conjuncts)
cb_bo_code       := cb_bb_code   +1;
cb_be_code       := cb_bo_code   +1;

% Consonant conjuncts
cc_ka_code       := vm_p_code    +1;
cc_kha_code      := cc_ka_code   +1;
cc_ga_code       := cc_kha_code  +1;
cc_gha_code      := cc_ga_code   +1;
cc_nga_code      := cc_gha_code  +1;
cc_cha_code      := cc_nga_code  +1;
cc_ccha_code     := cc_cha_code  +1;
cc_ja_code       := cc_ccha_code +1;
cc_jha_code      := cc_ja_code   +1;
cc_nya_code      := cc_jha_code  +1;
cc_tta_code      := cc_nya_code  +1;
cc_ttha_code     := cc_tta_code  +1;
cc_dda_code      := cc_ttha_code +1;
cc_ddha_code     := cc_dda_code  +1;
cc_nna_code      := cc_ddha_code +1;
cc_ta_code       := cc_nna_code  +1;
cc_tha_code      := cc_ta_code   +1;
cc_da_code       := cc_tha_code  +1;
cc_dha_code      := cc_da_code   +1;
cc_na_code       := cc_dha_code  +1;
cc_pa_code       := cc_na_code   +1;
cc_pha_code      := cc_pa_code   +1;
cc_ba_code       := cc_pha_code  +1;
cc_bha_code      := cc_ba_code   +1;
cc_ma_code       := cc_bha_code  +1;
cc_ya_code       := cc_ma_code   +1;
cc_ra_code       := cc_ya_code   +1;
cc_rra_code      := cc_ra_code   +1;
cc_la_code       := cc_rra_code  +1;
cc_lla_code      := cc_la_code   +1;
cc_va_code       := cc_lla_code  +1;
cc_ca_code       := cc_va_code   +1;
cc_sha_code      := cc_ca_code   +1;
cc_sa_code       := cc_sha_code  +1;
cc_ha_code       := cc_sa_code   +1;

% bars used for transliteration of vedic hymns
% and other symbols used for singing
b_udatta1_code   := oct"005";
b_udatta2_code   := b_udatta1_code  +1;
b_anudatta_code  := b_udatta2_code  +1;

% Roman digits
dr_zero_code     := ASCII"0";
dr_one_code      := dr_zero_code    +1;
dr_two_code      := dr_one_code     +1;
dr_three_code    := dr_two_code     +1;
dr_four_code     := dr_three_code   +1;
dr_five_code     := dr_four_code    +1;
dr_six_code      := dr_five_code    +1;
dr_seven_code    := dr_six_code     +1;
dr_eight_code    := dr_seven_code   +1;
dr_nine_code     := dr_eight_code   +1;

% Telugu digits
dt_zero_code     := oct"015";
dt_one_code      := dt_zero_code  +1;
dt_two_code      := dt_one_code   +1;
dt_three_code    := dt_two_code   +1;
dt_four_code     := dt_three_code +1;
dt_five_code     := dt_four_code  +1;
dt_six_code      := dt_five_code  +1;
dt_seven_code    := dt_six_code   +1;
dt_eight_code    := dt_seven_code +1;
dt_nine_code     := dt_eight_code +1;

% Punctuations
p_period_code    := ASCII".";
p_comma_code     := ASCII",";
p_equal_code     := ASCII"=";
p_bar_code       := oct"177";
p_dbar_code      := oct"000";
p_colon_code     := ASCII":";
p_scolon_code    := ASCII";";
p_cquote_code    := ASCII"'";
p_cquotes_code   := oct"001";
p_oquote_code    := ASCII"`";
p_oquotes_code   := oct"002";
p_dquotes_code   := ASCII ditto; %ASCII "
p_slash_code     := ASCII"/";
p_hash_code      := ASCII"#";
p_excla_code     := ASCII"!";
p_asterisk_code  := ASCII"*";
p_plus_code      := ASCII"+";
p_lbracket_code  := ASCII"[";
p_rbracket_code  := ASCII"]";
p_lparen_code    := ASCII"(";
p_rparen_code    := ASCII")";
p_lbrace_code    := ASCII"{";
p_rbrace_code    := ASCII"}";
p_percent_code   := ASCII"%";
p_bslash_code    := ASCII"\";
p_lbar_code      := ASCII"|";
p_hyphen_code    := ASCII"-";
p_lhyphen_code   := oct"003";
p_vlhyphen_code  := oct"004";
p_ubar_code      := ASCII"_";
p_question_code  := ASCII"?";
p_dollar_code    := ASCII"$";
p_greater_code   := ASCII">";
p_less_code      := ASCII"<";
p_at_code        := ASCII"@";
p_tilde_code     := ASCII"~";
p_hat_code       := ASCII"^";
p_ampersand_code := ASCII"&";

% Ubayaksharas
u_ardhasunna_code   := oct"010";
u_sunna_code        := u_ardhasunna_code    +1;
u_visarga_code      := u_sunna_code         +1;
u_ardhavisarga_code := u_visarga_code       +1;
u_avagraha_code     := u_ardhavisarga_code  +1;

%some consonant+vowel's need special symbols. Next we will
%define codes for these symbols.
cv_ku_code          := cc_ha_code+1;
cv_khe_code         := cv_ku_code+1;
cv_khao_code        := cv_khe_code+1;
cv_ge_code          := cv_khao_code+1;
cv_ngu_code         := cv_ge_code+1;
cv_nguu_code        := cv_ngu_code+1;
cv_che_code         := cv_nguu_code+1;
cv_chao_code        := cv_che_code+1;
cv_cche_code        := cv_chao_code+1;
cv_cchao_code       := cv_cche_code+1;
cv_je_code          := cv_cchao_code+1;
cv_ju_code          := cv_je_code+1;
cv_juu_code         := cv_ju_code+1;
cv_jao_code         := cv_juu_code+1;
cv_ttao_code        := cv_jao_code+1;
cv_tthe_code        := cv_ttao_code+1;
cv_ddu_code         := cv_tthe_code+1;
cv_ddhu_code        := cv_ddu_code+1;
cv_te_code          := cv_ddhu_code+1;
cv_tao_code         := cv_te_code+1;
cv_the_code         := cv_tao_code+1;
cv_de_code          := cv_the_code+1;
cv_dhe_code         := cv_de_code+1;
cv_ne_code          := cv_dhe_code+1;
cv_nao_code         := cv_ne_code+1;
cv_paa_code         := cv_nao_code+1;
cv_pu_code          := cv_paa_code+1;
ccv_pu_code         := cv_pu_code+1;    %con. conjunct for pa + vowel u
cv_puu_code         := ccv_pu_code+1;
ccv_puu_code        := cv_puu_code+1;   %con. conjunct for pa + vowel uu
cv_phaa_code        := ccv_puu_code+1;
ccv_phu_code        := cv_phaa_code+1;  %con. conjunct for pha + vowel u
ccv_phuu_code       := ccv_phu_code+1;  %con. conjunct for pha + vowel uu
cv_be_code          := ccv_phuu_code+1;
cv_bao_code         := cv_be_code+1;
cv_bhe_code         := cv_bao_code+1;
cv_bhao_code        := cv_bhe_code+1;
cv_re_code          := cv_bhao_code+1;
cv_le_code          := cv_re_code+1;
cv_lao_code         := cv_le_code+1;
cv_lle_code         := cv_lao_code+1;
cv_llu_code         := cv_lle_code+1;
cv_llao_code        := cv_llu_code+1;
cv_ve_code          := cv_llao_code+1;
cv_vao_code         := cv_ve_code+1;
cv_ce_code          := cv_vao_code+1;
cv_cao_code         := cv_ce_code+1;
cv_shaa_code        := cv_cao_code+1;
cv_shu_code         := cv_shaa_code+1;
cv_saa_code         := cv_shu_code+1;
cv_haa_code         := cv_saa_code+1;
cv_hao_code         := cv_haa_code+1;
cv_kshu_code        := cv_hao_code+1;