# OWBasic

OWBasic es un Compilador/Intérprete para la gama de PDAs Pocket Viewer de Casio Computer Co., Ltd..
Originalmente OWBasic era el desarrollo de un simple dialecto BASIC, pero se amplió rápidamente. OWBasic hoy es una alternativa creíble para la programación de las Pocket Viewer al SDK y el Lenguaje de programación C; en su versión actual también incluye muchas características de los lenguajes de alto nivel tales como punteros. La versión actual es v5.20 Beta 1.
OWBasic fue desarrollado por Wolfgang Ortmann a partir del año 2000. Cuando detuvo su desarrollo en 2004, Moritz Beutel creó AUDACIA Software para continuar el desarrollo de OWBasic.
OWBasic es software libre y de código abierto bajo la GNU General Public License.

## Ventajas y desventajas

Si escribe un programa en OWBasic y lo interpreta, no se genera código ejecutable directamente por el microprocesador. Se produce más bien OWBasic pseudocompilado cuando del intérprete está en funcionamiento. Esto lleva a diferentes ventajas y desventajas:

### Desventajas

* Rendimiento. Los programas en OWBasic se ejecutan más lentamente que los ejecutables. Normalmente, esto no es sin embargo un problema, ya que el PV proporciona un rendimiento más que suficiente para las tareas normales de una aplicación. Sólo para aplicaciones de cómputo intensivo, tales como juegos 3D, no es adecuado OWBasic.
* Control limitado. En un Add-In se pueden llamar a funciones específicas del sistema disponibles en todos los PV, si las soporta el SDK. Por el contrario, en OWBasic solamente las funciones que se utilizan se implementan como funciones OWBasic. Incluso las intervenciones permanecen en el sistema. La interceptación de las interrupciones o el gancho por medio de procedimientos del sistema, sólo está disponible en los Add-Ins. Sin embargo, la mayoría de los comandos del sistema y los eventos del sistema debidos a las diversas opciones (temporizadores, consulta asincrónica de la pantalla táctil, eventos de los Add-Ins etc.) está disponible ahora en OWBasic.

### Ventajas

* Movilidad. Mientras que los Add-Ins para Pocket Viewer deben ser diseñados, compilados y depurados en un PC, un programa en OWBasic puede escribirse y depurarse directamente en el Pocket Viewer.
* Pequeño tamaño. Debido a la estructura de memoria de los PV un Add-In ocupa al menos 64 KB (mediante PVAddInManager puede rebajarse hasta 16 KB), y sólo pueden almacenarse 16 Add-Ins internamente. Dado que los programas en OWBasic se almacenan como notas Memo, no ocupan tanto espacio ni tienen el límite de los Add-Ins. El programa ocupa por ello menos que su equivalente Add-In. El número de programas está solo limitado por el espacio de almacenamiento de datos.
* Seguridad. Si en un Add-In se producen errores de Tiempo de ejecución, como una división por cero accidental, la PV puede quedarse colgada, lo que llevaría a tener que retirar la batería o, en el caso más extremo, tener que recurar al RESET. Si se produce un error en un programa OWBasic, OWBasic muestra un mensaje de error y vuelve al menú principal del PVOS. También los errores como el acceso a un elemento de la matriz con un índice erróneo, las operaciones de archivos con punteros de archivo incorrecto, etc. pueden causar que OWBasic puede bloquearse, pero mostrando un mensaje error.
* Portabilidad. Desde el año 2003 con el lanzamiento del Casio PV-S1600 se crea una nueva plataforma basada en el Hitachi SH-3, un microprocesador de 32 bits que contrasta con el resto de modelos con un micro NEC V30MZ de 16 bits (compatible Intel 80186). El procesador SH-3 tiene una arquitectura diferente a la x86 por lo que los viejos ejecutables no funcionan en los PV-S1600. Si se quiere que un programa valga para ambas series PV, debemos señalar ya en la programación, todas las diferencias en el modelo de memoria, el arreglo de bits, etc. El programa se debe compilar dos veces, y posiblemente también haya que repetir la depuración, de forma individual en cada PVs. Dado que los programas OWBasic utilizan el Bytecode de compilación que no está específicamente diseñado para un procesador, ambas series pueden usar el mismo Código fuente sin realizar cambios.

## Documentación

El aprendizaje de OWBasic es, como en la mayoría de dialectos BASIC bastante simple. El comienzo es una página de tutoriales de Wolfgang Ortmanns. En la página de Audacia software hay documentación en inglés y alemán en formato HTML y PocketReferencer para poder visualizarlo en las PV.