En la época de MS-DOS desde principios de los años 80, como sucedía antes con CP/M y era también la norma en otros sistemas operativos, los usuarios solían usar una interfaz de comandos para interactuar con la computadora.
La interfaz de comandos consiste en un indicador conformado por uno o más símbolos, por lo común de color blanco sobre la pantalla oscura de la computadora; dicho símbolo o conjunto de símbolos se denomina prompt y sirve para sugerir a los usuarios del sistema que éste está esperando por una orden o comando de lo cual se deriva el nombre de la interfaz; estas órdenes o comandos se indican escribiendo el nombre de los comandos, los cuales pueden ser internos o procesados por el mismo intérprete de comandos, o pueden ser externos o consistentes en programas independientes.
El usuario del sistema puede escribir un comando seguido o no de una serie de parámetros para especificar más detalles sobre la operación a realizar y terminar la entrada presionando la tecla del teclado. La orden dada por el usuario es entonces procesada por el intérprete de comandos del sistema operativo (COMMAND.COM en MS-DOS) y si no hay un error de sintaxis en la pantalla se pueden obtener los resultados también en forma de texto.
En todo caso, como este método para interactuar con la computadora era un tanto primitivo y no permitía mucha productividad, y además resultaba más engorroso para usuarios no relacionados con la informática dado los obligaba a recordar muchos detalles retardando el aprendizaje con el consiguiente aumento de los costos de capacitación, muchos programas comenzaron pronto a utilizar por su cuenta alguna forma de interfaz de usuario más elaborada y adecuada para conseguir sus objetivos.
Las interfaces gráficas de usuario o GUI (Graphical User Interfase) podían solucionar el problema de la interacción más sencilla con el sistema porque se basan en el principio WYSIWYG (What You See Is What You Get) y por tanto facilitan recordar las opciones o funcionalidades disponibles en los programas. En MS-DOS estuvieron disponibles a nivel de sistema operativo sólo a partir de 1985 cuando se pudo acceder a Windows 1.0 que no tuvo mucho éxito de todos modos debido a distintos factores. Pero la idea no era algo tan nuevo para los años 80 puesto toda la teoría había sido presentada décadas antes y también se había implementado desde finales de los 70s y de forma comercial desde principios de los 80s en una institución de nombre Xerox PARC situada en Palo Alto, California.
En adición a las caras computadoras Xerox Alto y Xerox Star de Xerox PARC, Apple presentó Apple Lisa en 1983, una computadora basada en una GUI si bien algo costosa todavía, y más tarde en 1984 sacó al mercado Macintosh con su sistema operativo Mac OS, también basado en una GUI y a un precio más módico, lo cual permitió se convirtiera en la primera computadora con una interfaz gráfica en tener éxito a pesar de no soportar colores.
Pero sin importar esos casos más bien aislados, en el ecosistema de MS-DOS, por muchos años se siguió apostando por la interfaz de comandos a nivel del sistema operativo.
El estado de cosas descrito no era una casualidad, una GUI consume recursos tanto de procesador como de memoria y esos eran recursos escasos, por un lado por la potencia reducida de los microprocesadores de la época como el 8088, y por otro porque por correr MS-DOS en modo real no tenía acceso a toda la memoria disponible más allá del primer megabyte incluso si esta estuviera disponible.
De todas formas, como la única forma de expandir el uso de las microcomputadoras a un público más heterogéneo resultó ser el diseño de interfaces gráficas, de modo a dichos usuarios no especializados les costara menos esfuerzo usar estos poderosos dispositivos en la solución de problemas propios de su área de actividad y pudieran lograrlo con más productividad, como se ha dicho los desarrolladores de software empezaron a incluir dichas interfaces a nivel de los programas diseñados por ellos a pesar de no existir soporte del sistema operativo para ellas o de ese soporte no ser recomendable en todas las situaciones.
Las interfaces gráficas usadas a nivel de los programas en MS-DOS también estaban por lo general basadas en texto debido a las limitaciones mencionadas en la capacidad de procesamiento de los microprocesadores y en la disponibilidad de memoria, teniendo en cuenta que una interfaz gráfica basada en caracteres ASCII resulta mucho más ligera en comparación con otra consistente en el trazado de líneas, rectángulos y otros gráficos o incluso imágenes de mapas de bits.
Es posible mencionar algunos programas clásicos como el famoso Norton Commander todos ellos basados en una interfaz de usuario en modo texto.
En muchos lenguajes de programación también se incluía alguna forma de diseñar una interfaz gráfica en modo texto con menús y otras funcionalidades afines, si bien esto era posible implementarlo en casi todos los entornos de programación para MS-DOS de una forma más o menos simple, porque en una interfaz en modo texto se trata nada más de escribir texto y ciertos caracteres extendidos en la pantalla además de utilizar algunos colores para resaltar determinados elementos.
En particular en los sistemas xBase derivados de dBase II era bastante sencillo de implementar una interfaz en modo texto como puede verse en las líneas de código FoxBASE expuestas a continuación; por medio de este código se presenta un menú en pantalla con un submenú en el menú Listado y se muestran recuadros de mensaje como resultado de la interacción con los menús Alta y Salir:
SET STATUS OFF
SET SCOREBOARD OFF
SET TALK OFF
STORE .F. TO ExitFlag
DO WHILE .NOT. ExitFlag
SET COLOR TO W/B
CLEAR
SET COLOR TO W+/BG, N/W, W
@ 0,0 SAY SPACE(80)
@ 24,0 SAY SPACE(80)
SET MESSAGE TO 24 CENTER
@ 0,1 PROMPT "ALTA " MESSAGE "Alta de usuarios "
@ 0,6 PROMPT "BAJA " MESSAGE "Baja de usuarios "
@ 0,11 PROMPT "LISTADO " MESSAGE "Listado DESDE/HASTA"
@ 0,19 PROMPT "SALIR " MESSAGE "Salir del programa"
MENU TO Option
SET PROCEDURE TO MsgUtils
STORE 0 TO MsgButton
DO CASE
CASE Option = 1
DO MsgBox WITH "Escogió dar alta", "Aceptar", "Cancelar", "", .F., MsgButton
CASE Option = 2
CASE Option = 3
@ 2,12 Prompt "Personas " Message "Lista las personas"
@ 3,12 prompt "Mascotas " message "Lista las mascotas"
@ 1,11, 4,21 BOX
MENU TO SubOption
CASE Option = 4
DO MsgBox WITH "¿Está seguro de salir del sistema?", "Sí", "No", "", .F., MsgButton
IF MsgButton = 1
ExitFlag = .T.
ENDIF
ENDCASE
CLOSE PROCEDURE
ENDDO
SET TALK ON
SET SCOREBOARD ON
SET STATUS ON
SET COLOR TO
CLEAR
Por supuesto, en este caso se trata de algo bastante sencillo, y en el código también se ha omitido la definición del procedimiento MsgBox en MsgUtils encargado de conformar y mostrar el mencionado recuadro del mensaje para los usuarios.
En la imagen expuesta puede observarse el resultado obtenido por medio del código presentado donde también se puede ver el cuadro de mensaje invocado por el menú Salir para comprobar si de verdad se tiene la intención de terminar el programa.

¿Qué puedes comentar sobre esta forma de interactuar con los usuarios en la época de MS-DOS?
¿Qué programas con una interfaz de usuario en modo texto has usado además del casi omnipresente Norton Commander?
Tomado de ForosCuba del tema https://fcuba.net/tema/guis-en-modo-texto-en-la-era-de-ms-dos.34771/
