vail

Internet morse code repeater
git clone https://git.woozle.org/neale/vail.git

vail / static
Neale Pickett  ·  2023-01-16

1992.html

  1<!DOCTYPE html>
  2<html>
  3	<head>
  4		<title>Vail</title>
  5		<meta charset="utf-8">
  6		<meta name="viewport" content="width=device-width, initial-scale=1">
  7		
  8		<!-- Vail stuff -->
  9		<link rel="manifest" href="manifest.json">
 10		<link rel="icon" href="vail.png" sizes="256x256" type="image/png">
 11		<link rel="icon" href="vail.svg" sizes="any" type="image/svg+xml">
 12		<script type="module" src="vail.mjs"></script>
 13		<link rel="stylesheet" href="vail.css">
 14		<style>
 15			.is-hidden {
 16				display: none;
 17			}
 18			body {
 19				color: white;
 20				background: #000 url("space.png")
 21			}
 22			h1, h2 {
 23				color: yellow;
 24			}
 25		</style>
 26	</head>
 27	<body>
 28		<h1>Vail</h1>
 29		<h2>A Morse Code Chat Server</h2>
 30
 31		<p>
 32			Hi! You've reached Vail, a morse code chat server on the internet!
 33			To get started, just click on the "key" button, and you'll be transmitting to whoever out there is listening!
 34		</p>
 35
 36		<table>
 37			<tr>
 38				<td>
 39					<button class="button key is-primary" data-key="0" title="right click for Key">
 40						Key
 41					</button>
 42					(shortcuts:
 43					<kbd title="keyboard button">.</kbd>
 44					<kbd title="keyboard button">x</kbd>
 45					)
 46				</td>
 47				<td>
 48					<button class="button key is-primary" data-key="1" title="right click for Key">
 49						Key
 50					</button>
 51					(shortcuts:
 52					<kbd title="keyboard button">/</kbd>
 53					<kbd title="keyboard button">z</kbd>
 54					)
 55				</td>
 56			</tr>
 57		</table>
 58
 59		<p>
 60			Your current repeater is 
 61			<input class="input" type="text" id="repeater" list="repeater-list">
 62			<datalist id="repeater-list">
 63				<option>General</option>
 64				<option value="1">Channel 1</option>
 65				<option value="2">Channel 2</option>
 66				<option value="3">Channel 3</option>
 67				<option value="Null">No transmit</option>
 68				<option>Echo</option>
 69				<option>Echo 5s</option>
 70				<option>Echo 10s</option>
 71				<option>Fortunes</option>
 72				<option>Fortunes: Pauses ×2</option>
 73				<option>Fortunes: Pauses ×4</option>
 74				<option>Fortunes: Pauses ×8</option>
 75			</datalist>
 76		</p>
 77
 78		<p>
 79			<button id="recv">rx</button>
 80			<output class="has-text-info" id="note"></output>
 81			<br>
 82			<i class="muted">
 83				If you can read this, it means the browser needs you to click somewhere on this page
 84				before it will start beeping!
 85			</i>
 86		</p>
 87		
 88
 89		<p>
 90			Keyer mode:
 91			<select id="keyer-mode">
 92				<option value="cootie">Straight Key / Cootie</option>
 93				<option value="bug">Bug</option>
 94				<option value="elbug">ElBug</option>
 95				<option value="singledot">Single Dot</option>
 96				<option value="ultimatic">Ultimatic</option>
 97				<option value="iambic">Iambic (Plain)</option>
 98				<option value="iambica">Iambic A</option>
 99				<option value="iambicb">Iambic B</option>
100				<option value="keyahead">Keyahead</option>
101			</select>
102
103			<br>
104
105			Keyer speed:
106			<input
107				id="keyer-rate"
108				type="number"
109				min="5"
110				max="40"
111				step="1"
112				value="12">			
113			WPM
114		</p>
115
116		<h2>Knobs</h2>
117
118		<p>	
119			<button id="ck" class="button is-primary">
120				CK
121			</button>
122			Send <code>CK</code> (check) to the repeater, and play when it comes back.
123
124			<br>
125
126
127			<button id="reset" class="button">
128				Reset
129			</button>
130			Reset all Vail preferences to default.
131
132			<br>
133
134			Receive delay: 
135			<input
136				id="rx-delay"
137				type="number"
138				min="0"
139				max="10"
140				value="4"
141				step="0.1">
142			seconds
143				
144			<br>
145
146			<label class="checkbox">
147				<input type="checkbox" id="telegraph-buzzer">
148				Telegraph sounds
149			</label>
150
151		</p>
152
153		<div class="bottom">
154			<div id="errors"></div>
155		</div>
156	</body>
157</html>