' TENGWAR TYPEWRITER FOR ENGLISH
' (for use with the Tengwar Quenya font version 1.6 - January 1995
' By: Daniel S. Smith (Based on a macro by Lester Simons)

Dim Shared F$(150)

Sub MAIN

LoadTengwar

ToolsAutoCorrect .SmartQuotes = 0, .InitialCaps = 0, .SentenceCaps = 0, .Days = 0, .ReplaceText = 0, .Formatting = 0

loop:

Begin Dialog UserDialog 835, 385, "TENGWAR TYPEWRITER FOR ENGLISH"

CancelButton 700, 340, 125, 22

PushButton 5, 15, 37, 22, "T", .k01
PushButton 45, 15, 37, 22, "P", .k02
PushButton 85, 15, 37, 22, "CH", .k03
PushButton 125, 15, 37, 22, "K", .k04
PushButton 5, 40, 37, 22, "D", .k05
PushButton 45, 40, 37, 22, "B", .k06
PushButton 85, 40, 37, 22, "J", .k07
PushButton 125, 40, 37, 22, "G", .k08
PushButton 5, 65, 37, 22, "TH", .k09
PushButton 45, 65, 37, 22, "F", .k10
PushButton 85, 65, 37, 22, "SH", .k11
PushButton 125, 65, 37, 22, "KH", .k12
PushButton 5, 90, 37, 22, "DH", .k13
PushButton 45, 90, 37, 22, "V", .k14
PushButton 85, 90, 37, 22, "ZH", .k15
PushButton 125, 90, 37, 22, "GH", .k16
PushButton 5, 115, 37, 22, "N", .k17
PushButton 45, 115, 37, 22, "M", .k18
PushButton 85, 115, 37, 22, "NG", .k19
PushButton 125, 115, 37, 22, "NG", .k20
PushButton 5, 140, 37, 22, "R", .k21
PushButton 45, 140, 37, 22, "W", .k22
PushButton 85, 140, 37, 22, "Y", .k23
PushButton 125, 140, 37, 22, "W", .k24
PushButton 5, 165, 37, 22, "R", .k25
PushButton 45, 165, 37, 22, "RH", .k26
PushButton 85, 165, 37, 22, "L", .k27
PushButton 125, 165, 37, 22, "LH", .k28
PushButton 5, 190, 37, 22, "S", .k29
PushButton 45, 190, 37, 22, "S", .k30
PushButton 85, 190, 37, 22, "Z", .k31
PushButton 125, 190, 37, 22, "Z", .k32
PushButton 5, 215, 37, 22, "H", .k33
PushButton 45, 215, 37, 22, "HW", .k34
PushButton 85, 215, 37, 22, "Y", .k35
PushButton 125, 215, 37, 22, "W", .k36
PushButton 215, 15, 37, 22, "I", .k37
PushButton 255, 15, 37, 22, "J", .k38
PushButton 175, 65, 37, 22, "?", .k39
PushButton 215, 65, 37, 22, "?", .k40
PushButton 255, 65, 37, 22, "?", .k41
PushButton 295, 65, 37, 22, "?", .k42
PushButton 175, 90, 37, 22, "the", .k43
PushButton 215, 90, 37, 22, "of", .k44
PushButton 255, 90, 37, 22, "?", .k45
PushButton 295, 90, 37, 22, "?", .k46
PushButton 175, 190, 37, 22, "S", .k47
PushButton 215, 190, 37, 22, "S", .k48
PushButton 255, 190, 37, 22, "Z", .k49
PushButton 215, 215, 37, 22, "HW", .k50
PushButton 295, 215, 37, 22, "C", .k51
PushButton 290, 265, 37, 22, "'S", .k52
PushButton 330, 265, 37, 22, "'S", .k53
PushButton 370, 265, 37, 22, "'S", .k54
PushButton 430, 15, 37, 22, "A", .k55
PushButton 550, 15, 37, 22, "I", .k56
PushButton 510, 15, 37, 22, "E", .k57
PushButton 590, 15, 37, 22, "O", .k58
PushButton 630, 15, 37, 22, "U", .k59
PushButton 670, 15, 37, 22, "U", .k60
PushButton 790, 15, 37, 22, "' Y", .k61
PushButton 470, 15, 37, 22, "A", .k62
PushButton 750, 15, 37, 22, "Y", .k63
PushButton 710, 15, 37, 22, "' W", .k64
PushButton 430, 40, 37, 22, "A", .k65
PushButton 550, 40, 37, 22, "I", .k66
PushButton 510, 40, 37, 22, "E", .k67
PushButton 590, 40, 37, 22, "O", .k68
PushButton 630, 40, 37, 22, "U", .k69
PushButton 670, 40, 37, 22, "U", .k70
PushButton 790, 40, 37, 22, "' Y", .k71
PushButton 470, 40, 37, 22, "A", .k72
PushButton 750, 40, 37, 22, "Y", .k73
PushButton 710, 40, 37, 22, "' W", .k74
PushButton 430, 65, 37, 22, "A", .k75
PushButton 550, 65, 37, 22, "I", .k76
PushButton 510, 65, 37, 22, "E", .k77
PushButton 590, 65, 37, 22, "O", .k78
PushButton 630, 65, 37, 22, "U", .k79
PushButton 670, 65, 37, 22, "U", .k80
PushButton 790, 65, 37, 22, "' Y", .k81
PushButton 470, 65, 37, 22, "A", .k82
PushButton 750, 65, 37, 22, "Y", .k83
PushButton 710, 65, 37, 22, "' W", .k84
PushButton 430, 90, 37, 22, "A", .k85
PushButton 550, 90, 37, 22, "I", .k86
PushButton 510, 90, 37, 22, "E", .k87
PushButton 590, 90, 37, 22, "O", .k88
PushButton 630, 90, 37, 22, "U", .k89
PushButton 670, 90, 37, 22, "U", .k90
PushButton 790, 90, 37, 22, "' Y", .k91
PushButton 470, 90, 37, 22, "A", .k92
PushButton 750, 90, 37, 22, "Y", .k93
PushButton 710, 90, 37, 22, "' W", .k94
PushButton 510, 115, 37, 22, "E", .k95
PushButton 430, 140, 37, 22, "A", .k96
PushButton 510, 140, 37, 22, "E", .k97
PushButton 630, 140, 37, 22, "U", .k98
PushButton 790, 140, 37, 22, "' Y", .k99
PushButton 430, 165, 37, 22, "A", .k100
PushButton 510, 165, 37, 22, "E", .k101
PushButton 630, 165, 37, 22, "U", .k102
PushButton 790, 165, 37, 22, "' Y", .k103
PushButton 430, 190, 37, 22, "A", .k104
PushButton 510, 190, 37, 22, "E", .k105
PushButton 630, 190, 37, 22, "U", .k106
PushButton 790, 190, 37, 22, "' Y", .k107
PushButton 430, 215, 37, 22, "A", .k108
PushButton 510, 215, 37, 22, "E", .k109
PushButton 630, 215, 37, 22, "U", .k110
PushButton 790, 215, 37, 22, "' Y", .k111
PushButton 35, 265, 37, 22, "~~", .k112
PushButton 35, 290, 37, 22, "~~", .k113
PushButton 35, 315, 37, 22, "~~", .k114
PushButton 35, 340, 37, 22, "~~", .k115
PushButton 75, 265, 37, 22, "~", .k116
PushButton 75, 290, 37, 22, "~", .k117
PushButton 75, 315, 37, 22, "~", .k118
PushButton 75, 340, 37, 22, "~", .k119
PushButton 185, 290, 37, 22, "---", .k120
PushButton 185, 315, 37, 22, "---", .k121
PushButton 225, 290, 37, 22, "--", .k122
PushButton 225, 315, 37, 22, "--", .k123
PushButton 290, 315, 37, 22, ":", .k124
PushButton 330, 315, 37, 22, ".", .k125
PushButton 370, 315, 37, 22, "~", .k126
PushButton 290, 340, 37, 22, "?", .k127
PushButton 330, 340, 37, 22, "!", .k128
PushButton 430, 315, 125, 22, "SPACE", .k129
PushButton 430, 340, 125, 22, "RETURN", .k130
PushButton 185, 265, 37, 22, "---", .k131
PushButton 185, 340, 37, 22, "---", .k132
PushButton 225, 265, 37, 22, "--", .k133
PushButton 225, 340, 37, 22, "--", .k134
PushButton 370, 340, 37, 22, "~~", .k135
PushButton 700, 315, 125, 22, "BACKSPACE", .k136
PushButton 610, 315, 37, 22, "^", .k137
PushButton 570, 327, 37, 22, "<", .k138
PushButton 650, 327, 37, 22, ">", .k139
PushButton 610, 340, 37, 22, "v", .k140

Text 40, 2, 97, 13, "STANDARD:", .Text1
Text 212, 2, 91, 13, "CARRIERS:", .Text2
Text 210, 51, 96, 13, "EXTENDED:", .Text3
Text 212, 175, 104, 13, "ALTERNATE:", .Text4
Text 320, 251, 67, 13, "S-CURL:", .Text5
Text 568, 2, 133, 13, "ABOVE-TEHTAR:", .Text6
Text 378, 18, 51, 13, "WIDE:", .Text7
Text 356, 44, 73, 13, "CENTER:", .Text8
Text 348, 69, 81, 13, "NARROW:", .Text9
Text 350, 95, 80, 13, "CARRIER:", .Text10
Text 377, 120, 63, 13, "INSIDE:", .Text11
Text 680, 114, 20, 13, "alt", .Text12
Text 480, 114, 20, 13, "alt", .Text13
Text 568, 240, 132, 13, "BELOW-TEHTAR", .Text14
Text 567, 366, 123, 13, "MOVE CURSOR", .Text31
Text 378, 145, 51, 13, "WIDE:", .Text15
Text 356, 170, 73, 13, "CENTER:", .Text16
Text 348, 195, 81, 13, "NARROW:", .Text17
Text 350, 220, 80, 13, "CARRIER:", .Text18
Text 118, 321, 60, 13, "BELOW", .Text19
Text 122, 295, 56, 13, "ABOVE", .Text20
Text 126, 271, 43, 13, "HIGH", .Text21
Text 126, 345, 39, 13, "LOW", .Text22
Text 43, 251, 65, 13, "TILDES:", .Text23
Text 10, 366, 128, 13, "WIDE/NARROW", .Text24
Text 200, 251, 51, 13, "BARS:", .Text25
Text 166, 366, 128, 13, "WIDE/NARROW", .Text26
Text 290, 302, 125, 13, "PUNCTUATION:", .Text27
Text 430, 260, 383, 13, "Enter Tehtar symbols after placing Tengwar letters", .Text28
Text 460, 275, 332, 13, "(for use with Tengwar Quenya font ver: 1.6)", .Text29
Text 500, 290, 235, 13, "Daniel S. Smith - January 1995", .Text30

End Dialog

Dim TengwarKeys As UserDialog
key = Dialog(TengwarKeys)

If key = 0 Then Goto exit

If key = 136 Then
	back = CharLeft(1, 0)
	If back = 0 Then
		Goto loop
	Else
		CharRight 1, 0
		EditClear - 1
	End If
ElseIf key = 137 Then
	LineUp 1, 0
ElseIf key = 138 Then
	CharLeft 1, 0
ElseIf key = 139 Then
	CharRight 1, 0
ElseIf key = 140 Then
	LineDown 1, 0
Else
	Insert F$(key)
	CharLeft 1
	CharRight 1, 1
	Font "Tengwar Quenya"
	FontSize 20
	CharRight 1
End If

Goto loop
    
exit:

End Sub

Sub LoadTengwar
	F$(1) = "1"
	F$(2) = "q"
	F$(3) = "a"
	F$(4) = "z"
	F$(5) = "2"
	F$(6) = "w"
	F$(7) = "s"
	F$(8) = "x"
	F$(9) = "3"
	F$(10) = "e"
	F$(11) = "d"
	F$(12) = "c"
	F$(13) = "4"
	F$(14) = "r"
	F$(15) = "f"
	F$(16) = "v"
	F$(17) = "5"
	F$(18) = "t"
	F$(19) = "g"
	F$(20) = "b"
	F$(21) = "6"
	F$(22) = "y"
	F$(23) = "h"
	F$(24) = "n"
	F$(25) = "7"
	F$(26) = "u"
	F$(27) = "j"
	F$(28) = "m"
	F$(29) = "8"
	F$(30) = "i"
	F$(31) = "k"
	F$(32) = ","
	F$(33) = "9"
	F$(34) = "o"
	F$(35) = "l"
	F$(36) = "."
	F$(37) = "`"
	F$(38) = "~"
	F$(39) = "!"
	F$(40) = "Q"
	F$(41) = "A"
	F$(42) = "Z"
	F$(43) = "@"
	F$(44) = "W"
	F$(45) = "S"
	F$(46) = "X"
	F$(47) = "*"
	F$(48) = "I"
	F$(49) = "K"
	F$(50) = "<"
	F$(51) = "]"
	F$(52) = "_"
	F$(53) = "+"
	F$(54) = "|"
	F$(55) = "#"
	F$(56) = "$"
	F$(57) = "%"
	F$(58) = "^"
	F$(59) = "&"
	F$(60) = Chr$(224)
	F$(61) = Chr$(212)
	F$(62) = Chr$(220)
	F$(63) = Chr$(216)
	F$(64) = Chr$(232)
	F$(65) = "E"
	F$(66) = "R"
	F$(67) = "T"
	F$(68) = "Y"
	F$(69) = "U"
	F$(70) = Chr$(225)
	F$(71) = Chr$(213)
	F$(72) = Chr$(221)
	F$(73) = Chr$(217)
	F$(74) = Chr$(233)
	F$(75) = "D"
	F$(76) = "F"
	F$(77) = "G"
	F$(78) = "H"
	F$(79) = "J"
	F$(80) = Chr$(226)
	F$(81) = Chr$(214)
	F$(82) = Chr$(222)
	F$(83) = Chr$(218)
	F$(84) = Chr$(234)
	F$(85) = "C"
	F$(86) = "V"
	F$(87) = "B"
	F$(88) = "N"
	F$(89) = "M"
	F$(90) = Chr$(227)
	F$(91) = Chr$(215)
	F$(92) = Chr$(223)
	F$(93) = Chr$(219)
	F$(94) = Chr$(235)
	F$(95) = "L"
	F$(96) = Chr$(208)
	F$(97) = Chr$(200)
	F$(98) = Chr$(228)
	F$(99) = Chr$(204)
	F$(100) = Chr$(209)
	F$(101) = Chr$(201)
	F$(102) = Chr$(229)
	F$(103) = Chr$(205)
	F$(104) = Chr$(210)
	F$(105) = Chr$(202)
	F$(106) = Chr$(230)
	F$(107) = Chr$(206)
	F$(108) = Chr$(211)
	F$(109) = Chr$(203)
	F$(110) = Chr$(231)
	F$(111) = Chr$(207)
	F$(112) = ")"
	F$(113) = "P"
	F$(114) = ":"
	F$(115) = "?"
	F$(116) = "0"
	F$(117) = "p"
	F$(118) = ";"
	F$(119) = "/"
	F$(120) = "{"
	F$(121) = Chr$(34)
	F$(122) = "["
	F$(123) = "'"
	F$(124) = "-"
	F$(125) = "="
	F$(126) = "\"
	F$(127) = Chr$(250)
	F$(128) = Chr$(251)
	F$(129) = Chr$(32)
	F$(130) = Chr$(13)
	F$(131) = Chr$(236)
	F$(132) = Chr$(237)
	F$(133) = Chr$(238)
	F$(134) = Chr$(239)
	F$(135) = Chr$(252)
End Sub
