diff --git a/appendix.tex b/appendix.tex index 2deee03..6bac7d1 100644 --- a/appendix.tex +++ b/appendix.tex @@ -16,6 +16,7 @@ This is expected because the NVR has not been initialized. Once you write settings to the NVR, this error should not persist. \section{Jumper settings and headers} +\label{jumperheaders} The board features the following jumpers: diff --git a/includes.tex b/includes.tex index c0f8af6..b6e1db4 100644 --- a/includes.tex +++ b/includes.tex @@ -1,5 +1,4 @@ \usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} \usepackage{libertine} \usepackage{tabulary} @@ -7,21 +6,22 @@ \usepackage{graphicx} \usepackage{multirow} -\usepackage[bookmarks=true, - bookmarksnumbered=true, - pdfpagemode=UseOutlines, - pdfstartview={FitV 0}, - pdffitwindow=true, - colorlinks=true, - linkcolor=black, - citecolor=black, - filecolor=black, - urlcolor=black, - pdfauthor={Anna Christina Nass}, - pdftitle={VT132 Manual}, - pdfsubject={Documentation}, - pdfkeywords={VT132} - ]{hyperref} +\usepackage[unicode, + bookmarks=true, + bookmarksnumbered=true, + pdfpagemode=UseOutlines, + pdfstartview={FitV 0}, + pdffitwindow=true, + colorlinks=true, + linkcolor=black, + citecolor=black, + filecolor=black, + urlcolor=black, + pdfauthor={Anna Christina Naß}, + pdftitle={VT132 Manual}, + pdfsubject={Documentation}, + pdfkeywords={VT132} + ]{hyperref} % Give a little room between table rows: \renewcommand{\arraystretch}{1.2} diff --git a/introduction.tex b/introduction.tex index b6b92af..2e8117b 100644 --- a/introduction.tex +++ b/introduction.tex @@ -12,3 +12,17 @@ For a more in-depth look into details, please consult the VT132 website provided \url{https://thehighnibble.com/vt132/} +\section{Key symbols} + +The following key symbols are used that may need explanation: + +\begin{tabular}{ r | p{0.73\textwidth} } +\hline +\LKeyTab & \biolinum{Tab} \\ +\LKeyEnter & \biolinum{Enter} \\ +\LKeySpace & \biolinum{Space} \\ +\LKeyBack & \biolinum{Backspace} \\ +\LKeyShift & \biolinum{Shift} \\ +\LKeyLeft, \LKeyRight, \LKeyUp, \LKeyDown & \biolinum{Cursor keys} \\ +\hline +\end{tabular} diff --git a/make.sh b/make.sh new file mode 100755 index 0000000..6719c32 --- /dev/null +++ b/make.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xelatex vt132.tex && xelatex vt132.tex diff --git a/modem.tex b/modem.tex index 694f254..b9e2977 100644 --- a/modem.tex +++ b/modem.tex @@ -2,21 +2,33 @@ \section{Background} -Unlike the VT100 terminal, the modem does not try to faithfully emulate any particular original device. - -Instead it is designed to provide an MVP (minimum viable product) providing a modified Hayes 'AT' compatible command set for connecting over Wi-Fi via TCP/IP sockets with an optional Telnet protocol layer. +The VT132 modem part is designed to provide a modified Hayes \texttt{AT} compatible command set for connecting over WiFi via TCP/IP +sockets with an optional Telnet protocol layer. \begin{itemize} -\item The original 'AT' command set was strictly in upper case. This is because the bit sequence of the ASCII values for 'A' and 'T' have a specific property that enables autobaud detection of the connection to the data terminal equipment (DTE). -\item \textbf{The modem only responds to 'AT' commands in upper case.} -\item Commands are terminated by \texttt{} (carriage return, \texttt{-m}, \texttt{0x0D}, decimal 13) usually generated by the \texttt{Enter} or \texttt{Return} key on your keyboard. -\item Commands can by edited, before pressing \texttt{}, using \texttt{} (backspace, \texttt{-H}, \texttt{0x08}, decimal 8) to erase the previous character entered. You may need to configure the terminal to generate \texttt{} when you press the \texttt{Backspace} or \texttt{<-} key on your keyboard. -\item The 'AT' command processor is based on a finite state machine (FSM). If you type anything that is not recognized by the rules of the FSM you will immediately see an \texttt{Error} message. + \item The original \texttt{AT} command set was strictly in upper case. This is because the bit sequence of the ASCII values for \texttt{A} and \texttt{T} have + a specific property that enables autobaud detection of the connection to the data terminal equipment (DTE). + \item \textbf{The modem only responds to \texttt{AT} commands in upper case.} + \item Commands are terminated by \LKeyEnter \footnote{carriage return, \LKeyCtrlX{M}, \texttt{0x0D}, decimal 13} usually generated by the \LKeyEnter{} + (\biolinum{Enter} or \biolinum{Return}) key on your keyboard. + \item Commands can by edited, before pressing \LKeyEnter, using \LKeyBack \footnote{backspace, \LKeyCtrlX{H}, \texttt{0x08}, decimal 8} to erase the previous + character entered. You may need to configure the terminal to generate \texttt{} when you press the \LKeyBack{} (backspace) key on your keyboard. + \item The \texttt{AT} command processor is based on a finite state machine (FSM). If you type anything that is not recognized by the rules of the + FSM you will immediately see an \texttt{Error} message. \end{itemize} -% TODO: -% - Hinweis auf EN-Button für Baudrate -% - Hinweis auf Nutzung via Bus oder FTDI-Header +\section{Communication} + +\subsection{Baudrate} + +To set the baudrate of the modem, press the \textbf{Prog} button on the VT132 module. After each press of this button, the modem outputs its new +baud rate to the serial port -- so you can press this button repeatedly until you can read your baud rate. + +\subsection{Serial Port} + +To communicate with the VT132 modem, you can use either the pins of the RC2014 extended bus (Rx2, Tx2) or the FTDI connector \textit{Modem Port B}. + +See section \vref{jumperheaders} \textit{(Jumper settings and headers)} for details. \newpage \section{Modem commands} @@ -28,23 +40,23 @@ All commands (except \texttt{AT} by itself, \texttt{A/} and \texttt{+++}) need t \hline \textbf{Command} & \textbf{Function} \\ \hline -AT & Test, answers \texttt{OK} \\ -A/ & Repeat last command (immediate) \\ -\$ & Show Help \\ -I or I0 & Show modem model string \\ -I1 & Show firmware version string \\ -I2 & Show firmware build chain version string \\ -Z & Modem soft reset \\ -\&F & Restore factory defaults (does not store to NVRAM) \\ -\&W & Write settings to NVRAM \\ +AT & Test, answers \texttt{OK} \\ +A/ & Repeat last command (immediate) \\ +\$ & Show Help \\ +I or I0 & Show modem model string \\ +I1 & Show firmware version string \\ +I2 & Show firmware build chain version string \\ +Z & Modem soft reset \\ +\&F & Restore factory defaults (does not store to NVRAM) \\ +\&W & Write settings to NVRAM \\ D\textit{host:port} & Open connection to \textit{host:port}, port defaults to 23 \\ -$+++$ & Escape from data mode to command mode \\ -O & Return to data mode \\ -H & Hangup \\ -\&A & Enable Answer mode \\ -A & Answer an incoming call \\ +$+++$ & Escape from data mode to command mode \\ +O & Return to data mode \\ +H & Hangup \\ +\&A & Enable Answer mode \\ +A & Answer an incoming call \\ S\textit{n} & Select register \textit{n} as current register \\ -? & Query current register \\ +? & Query current register \\ =\textit{r} & Set value of register to \textit{r} \\ S\textit{n}=\textit{r} & Set value of register \textit{n} to \textit{r}, eg. \texttt{S15=1} \\ \&K or \&K0 & Disable RTS/CTS flow control \\ @@ -91,10 +103,10 @@ $+$U\$ & Show OTA partition status \\ Use \texttt{ATS15=1} to enable Telnet mode. \newpage -\subsection{S Registers} +\section{S Registers} \label{sregister} -The modem has a total of 51 'S' registers, \texttt{S0} to \texttt{S50}. +The modem has a total of 51 S registers, \texttt{S0} to \texttt{S50}. Most of them are undefined and unused. The following table lists all defined registers that are used by the VT132 modem part. @@ -126,7 +138,7 @@ S39 & 0 & RTS/CTS Flow Control (0/1, set by AT\&K) \\ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55 \newpage -\section{WiFi Messages} +\section{Messages} \subsection{Dial response messages} @@ -175,18 +187,19 @@ The following table shows the responses to the \textbf{Query WiFi status} comman The VT132 supports the following Telnet options: \begin{itemize} - \item SGA (Suppress Go Ahead) - \item ECHO - \item BIN (Binary Transmission) - \item NAWS (Negotiate About Window Size) - \item TERMINAL-TYPE + \item SGA (Suppress Go Ahead) + \item ECHO + \item BIN (Binary Transmission) + \item NAWS (Negotiate About Window Size) + \item TERMINAL-TYPE \end{itemize} -Each Telnet Option is negotiated in via a request/response exchange described as \textit{Do/Don't} (request) and \textit{Will/Won't} (response). Trying to understand how these work for each Option usually requires reading the RFC and extreme patience and experimentation. +Each Telnet Option is negotiated in via a request/response exchange described as \textit{Do/Don't} (request) and \textit{Will/Won't} (response). +Trying to understand how these work for each Option usually requires reading the RFC and extreme patience and experimentation. Usually you either want an Option completely \textbf{On} (Do/Will) or \textbf{Off} (Don't / Won't). -Setting the supported Options and their default values are defined via specific 'S' Registers \vref{sregister}. +Setting the supported Options and their default values are defined via specific S Registers \vref{sregister}. In summary the defaults are: @@ -205,15 +218,16 @@ TERMINAL-TYPE & Do/Will & The remote host can learn your terminal type, the def The \texttt{TERMINAL-TYPE} must be known by the remote system to be recognised. -When connecting to \texttt{telnetd} on MacOS I use \texttt{vt100+} from the \texttt{terminfo} database which provides support for color over and above the standard \texttt{vt100} terminal type, making text applications like \texttt{htop} work as expected and in color. +When connecting to \texttt{telnetd} on MacOS I use \texttt{vt100+} from the \texttt{terminfo} database which provides support for color over and above the standard +\texttt{vt100} terminal type, making text applications like \texttt{htop} work as expected and in color. \subsection{Enabling Telnet Protocol} Telnet protocol is \textbf{not} enabled by default. \begin{itemize} -\item To enable the Telnet protocol you must manually set 'S' Register S15 to 1 with \texttt{ATS15=1} -\item To disable the Telnet protocol you must manually set 'S' Register S15 to 0 with \texttt{ATS15=0} + \item To enable the Telnet protocol you must manually set S Register S15 to 1 with \texttt{ATS15=1} + \item To disable the Telnet protocol you must manually set S Register S15 to 0 with \texttt{ATS15=0} \end{itemize} The Telnet protocol is applied to both \textbf{outgoing} connections 'Dialed' with ATD and \textbf{incoming} connections 'Answered' with \texttt{ATA} or Auto-answer. @@ -226,13 +240,15 @@ The Telnet protocol is applied to both \textbf{outgoing} connections 'Dialed' wi Listening for incoming TCP/IP socket connections is \textbf{not enabled} by default. \begin{itemize} -\item To \textbf{enable} listening for incoming TCP/IP socket connections you must manually enter \texttt{AT\&A} to \textit{Enable Answer Mode}. -\item Answer Mode will remain enabled, and can only disabled by an \texttt{ATZ} (Soft Reset), hardware reset or power-cycle. -\item Incoming TCP/IP socket connections will cause the modem to respond with \texttt{RING}, repeated every three (3) seconds. -\item As each \texttt{RING} occurs the Ring Counter in \texttt{S1} is incremented by one (1). -\item The user can \textit{Answer} the incoming call at any time with \texttt{ATA} and the modem will accept the TCP/IP socket connection and enter \textbf{Data Mode}. -\item If the \textbf{Number of rings before Auto-Answer} is set in \texttt{S0} to a number greater than zero (0 = never) and \texttt{S1} is greater-then-or-equal to \texttt{S0} the modem will \textit{Auto-answer}: accept the TCP/IP socket connection and enter \textbf{Data Mode}. -\item If Telnet protocol is enabled by \texttt{ATS15=1} then the Telnet Protocol will be negotiated with the remote host after the modem enters \textbf{Data Mode}. -\item The user can \textit{Hangup} an incoming call by sending the Escape Sequence \texttt{+++} (with guard times) to return to \textbf{Command Mode} and then sending \texttt{ATH} to \textit{Hangup}. -\item A Hangup \texttt{ATH} will reset the Ring Counter in \texttt{S1} to zero (0). + \item To \textbf{enable} listening for incoming TCP/IP socket connections you must manually enter \texttt{AT\&A} to \textit{Enable Answer Mode}. + \item Answer Mode will remain enabled, and can only disabled by an \texttt{ATZ} (Soft Reset), hardware reset or power-cycle. + \item Incoming TCP/IP socket connections will cause the modem to respond with \texttt{RING}, repeated every three (3) seconds. + \item As each \texttt{RING} occurs the Ring Counter in \texttt{S1} is incremented by one (1). + \item The user can \textit{Answer} the incoming call at any time with \texttt{ATA} and the modem will accept the TCP/IP socket connection and enter \textbf{Data Mode}. + \item If the \textbf{Number of rings before Auto-Answer} is set in \texttt{S0} to a number greater than zero (0 = never) and \texttt{S1} is greater-then-or-equal to + \texttt{S0} the modem will \textit{Auto-answer}: accept the TCP/IP socket connection and enter \textbf{Data Mode}. + \item If Telnet protocol is enabled by \texttt{ATS15=1} then the Telnet Protocol will be negotiated with the remote host after the modem enters \textbf{Data Mode}. + \item The user can \textit{Hangup} an incoming call by sending the Escape Sequence \texttt{+++} (with guard times) to return to \textbf{Command Mode} and then sending + \texttt{ATH} to \textit{Hangup}. + \item A Hangup \texttt{ATH} will reset the Ring Counter in \texttt{S1} to zero (0). \end{itemize} diff --git a/setup.tex b/setup.tex index 4c541b6..abae272 100644 --- a/setup.tex +++ b/setup.tex @@ -6,12 +6,12 @@ \hline \textbf{Key} & \textbf{Function} \\ \hline -\texttt{F1} & Show/hide help \\ -\texttt{5} & Advance to the next screen \\ -\texttt{Shift-T} & Reset tab stops to default \\ -\texttt{Tab} & Move cursor to the next tab stop \\ -\texttt{Enter} & Move cursor to the beginning of the line \\ -\texttt{Shift-C} & On Set-Up B: reset NVRAM to factory defaults on next boot \\ +\LKeyF{1} & Show/hide help \\ +\LKey{5} & Advance to the next screen \\ +\LKeyShiftX{T} & Reset tab stops to default \\ +\LKeyTab & Move cursor to the next tab stop \\ +\LKeyEnter & Move cursor to the beginning of the line \\ +\LKeyShiftX{C} & On Set-Up B: reset NVRAM to factory defaults on next boot \\ \hline \end{tabular} @@ -19,8 +19,8 @@ The Set-Up screens imitate the same functions on a real DEC VT100 terminal. -Use \texttt{F1} to toggle the help display which shows all keys. \\ -Use \texttt{5} to advance to the next screen. +Use \LKeyF{1} to toggle the help display which shows all keys. \\ +Use \LKey{5} to advance to the next screen. \subsection{Set-Up A} @@ -30,51 +30,51 @@ This page shows the tab stops and offers to toggle \textbf{80/132 columns} text In \textbf{online mode}, the terminal is connected to the computer via the serial port.\\ In \textbf{local mode}, the terminal can be used to connect directly to the modem using the \textit{Quick Settings menu} (see \vref{quicksettings}). -Use \texttt{Shift-S} (capital \texttt{S}) to save and \texttt{Shift-R} (capital \texttt{R}) to recall the settings from NVS. +Use \LKeyShiftX{S} (capital \texttt{S}) to save and \LKeyShiftX{R} (capital \texttt{R}) to recall the settings from NVS. \subsection{Set-Up B} -On this page, various configuration 'bits' can be set. Use the cursor to navigate above the bit and press \texttt{6} to toggle it. Use \texttt{Tab} and \texttt{Enter }to move quicker. +On this page, various configuration \textit{bits} can be set. Use the cursor to navigate above the bit and press \LKey{6} to toggle it. Use \LKeyTab{} and \LKeyEnter{} to move quicker. These bits are available: \begin{tabular}{p{8em} | p{0.68\textwidth}} \hline -\textbf{Bit} & \textbf{Function} \\ +\textbf{Bit} & \textbf{Function} \\ \hline -Scroll & Use smooth scrolling \\ -Auto Repeat & Press longer on a key and the input will be repeated \\ -Screen Inv. & Invert the screen colors (to eg. black on white) \\ -Cursor & Change cursor shape (block / line) \\ +Scroll & Use smooth scrolling \\ +Auto Repeat & Press longer on a key and the input will be repeated \\ +Screen Inv. & Invert the screen colors (to eg. black on white) \\ +Cursor & Change cursor shape (block / line) \\ \hline -Margin Bell & Ring the bell when cursor is on right margin \\ -Keyclick & Every keypress will make a clicking sound \\ -Ansi/VT52 & \dots \\ -Auto Xon/off & Use Xon/Xoff as flow control \\ +Margin Bell & Ring the bell when cursor is on right margin \\ +Keyclick & Every keypress will make a clicking sound \\ +Ansi/VT52 & \dots \\ +Auto Xon/off & Use Xon/Xoff as flow control \\ \hline -US/UK & Switch between US and UK keyboard layout \\ -Wrap Around & \dots \\ -New Line & \dots \\ -Interlace & Enable a 'scanline effect' \\ +US/UK & Switch between US and UK keyboard layout \\ +Wrap Around & \dots \\ +New Line & \dots \\ +Interlace & Enable a 'scanline effect' \\ \hline -Parity Odd/Even & Not used \\ -Parity & Not used \\ -Bits 7/8 & Not used \\ -Backspace DEL/BS & Send DEL or BS when pressing \texttt{Backspace} \\ +Parity Odd/Even & Not used \\ +Parity & Not used \\ +Bits 7/8 & Not used \\ +Backspace DEL/BS & Send DEL or BS when pressing \texttt{Backspace} \\ \hline -Bold is Bright & If bold text is displayed bright \\ -Bold is Thick & If bold text is displayed \textbf{thick} \\ -Home on Erase & Should the cursor go to upper left on clear screen \\ -NumLock on Reset & Should NumLock be enabled on bootup \\ +Bold is Bright & If bold text is displayed bright \\ +Bold is Thick & If bold text is displayed \textbf{thick} \\ +Home on Erase & Should the cursor go to upper left on clear screen \\ +NumLock on Reset & Should NumLock be enabled on bootup \\ \hline \end{tabular} \newpage \textbf{Please note:} \begin{itemize} - \item Use keys \texttt{7} and \texttt{8} to set the baudrate used on the terminal serial port, it is shown in the lower right. - \item The bits for \textbf{bold} text are applied to text with the attribute \texttt{ESC [1m}. - \item \textit{Home on Erase} makes the cursor go home (\texttt{ESC [H}) on a clear screen request (\texttt{ESC [2J}), just as MS-DOS \texttt{ANSI.SYS} works. + \item Use keys \LKey{7} and \LKey{8} to set the baudrate used on the terminal serial port, it is shown in the lower right. + \item The bits for \textbf{bold} text are applied to text with the attribute \texttt{ESC[1m}. + \item \textit{Home on Erase} makes the cursor go home (\texttt{ESC [H}) on a clear screen request (\texttt{ESC[2J}), just as MS-DOS \texttt{ANSI.SYS} works. \end{itemize} \subsection{Set-Up C} @@ -88,11 +88,11 @@ You can change the following settings: \hline \textbf{Key} & \textbf{Function} \\ \hline -2 & Select codepage (DEC or Codepage 437) \\ -3 & Select lines per screen (24, 25 or 30) \\ -6 & Toggle ANSI or VGA color palette \\ -7 & Set default foreground color \\ -8 & Set default background color \\ +\LKey{2} & Select codepage (DEC or Codepage 437) \\ +\LKey{3} & Select lines per screen (24, 25 or 30) \\ +\LKey{6} & Toggle ANSI or VGA color palette \\ +\LKey{7} & Set default foreground color \\ +\LKey{8} & Set default background color \\ \hline \end{tabular} @@ -113,21 +113,21 @@ This screen is a VT132 enhancement over the VT100 functionality. \hline \textbf{Key} & \textbf{Function} \\ \hline -6 & Set the keyboard layout \\ -7 & Toggle MCS/NRCS \\ +\LKey{6} & Set the keyboard layout \\ +\LKey{7} & Toggle MCS/NRCS \\ \hline -\texttt{$\uparrow$} & \multirow{2}{*}{Change Personality} \\ -\texttt{$\downarrow$} & \\ +\LKeyUp & \multirow{2}{*}{Change Personality} \\ +\LKeyDown & \\ \hline \end{tabular} \textbf{Please note:} \begin{itemize} - \item To change the keyboard layout, move the cursor above the desired label and press \texttt{6}. + \item To change the keyboard layout, move the cursor above the desired label and press \LKey{6}. \item When enabling NRCS, certain characters in the lower 127 characters are replaced with country-specific characters according to the - selected keyboard layout. + selected keyboard layout. \item The current keyboard layout and personality is shown in the last line of the screen. \item Selecting \textit{WordStar/VT100} will enable WordStar cursor movement sequences for the cursor keys instead of standard ANSI - cursor sequences \textit{(ANSI/VT100)}. + cursor sequences \textit{(ANSI/VT100)}. \end{itemize} diff --git a/terminal.tex b/terminal.tex index be0987e..beed9af 100644 --- a/terminal.tex +++ b/terminal.tex @@ -8,12 +8,12 @@ Alternative personalities like ADM-3A or VT-52 are also available. \begin{tabular}{p{6em} | p{0.75\textwidth}} \hline -\textbf{Key} & \textbf{Function} \\ +\textbf{Key} & \textbf{Function} \\ \hline -\texttt{Alt-SysRq} & Open Setup Screen \\ -\texttt{Alt-Esc} & Open Quick Settings Menu \\ -\texttt{Ctrl-J} & Send \texttt{LINEFEED} key \\ -\texttt{ScrollLock} & \texttt{NO SCROLL} function, like Ctrl-S / Ctrl-Q \\ +\LKeyAlt + \biolinum{SysRq} & Open Setup Screen \\ +\LKeyAlt + \LKeyEsc & Open Quick Settings Menu \\ +\LKeyCtrlX{J} & Send \texttt{LINEFEED} key \\ +\biolinum{ScrollLock} & \texttt{NO SCROLL} function, like \LKeyCtrlX{S} / \LKeyCtrlX{Q} \\ \hline \end{tabular} @@ -24,17 +24,17 @@ Use these keys to navigate inside this menu: \begin{tabular}{p{6em} | p{0.75\textwidth}} \hline -\textbf{Key} & \textbf{Function} \\ +\textbf{Key} & \textbf{Function} \\ \hline -\texttt{Esc} & Close Quick Settings Menu (at top level)\\ +\LKeyEsc & Close Quick Settings Menu (at top level)\\ \hline -\texttt{Space} & \multirow{3}{*}{Make selection, enter menu} \\ -\texttt{Enter} & \\ -\texttt{$\rightarrow$} & \\ +\LKeySpace & \multirow{3}{*}{Make selection, enter menu} \\ +\LKeyEnter & \\ +\LKeyRight & \\ \hline -\texttt{Esc} & \multirow{3}{*}{Go back one level} \\ -\texttt{Backspace} & \\ -\texttt{$\leftarrow$} & \\ +\LKeyEsc & \multirow{3}{*}{Go back one level} \\ +\LKeyBack & \\ +\LKeyLeft & \\ \hline \end{tabular} diff --git a/vt132.pdf b/vt132.pdf index 4817cf1..51cfba7 100644 Binary files a/vt132.pdf and b/vt132.pdf differ diff --git a/vt132.tex b/vt132.tex index cf948c5..67704d9 100644 --- a/vt132.tex +++ b/vt132.tex @@ -1,6 +1,5 @@ \documentclass[ a5paper, - pdftex, headsepline, footsepline=false, 10pt,