EXIRION/OS -Berly Desktop-

Page 1

1 Nova32 Development Software Berly Desktop 2.0

Berly 2.0 Desktop For EXIRION OS 1.2600.1 By Rolando Fernández Benavidez Wednesday, June 20/2012.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


2 Nova32 Development Software Berly Desktop 2.0

Copyright (c) 2009 Rolando Fernández Benavidez

Licensed Material property of Nova32 Development Software Copyright (c) Rolando Fernández Benavidez 2001-2009. All Rights Reserved. Use Restricted Rights Use, duplication or disclosure restricted By Schedule Contract with Nova32 Development Software.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


3 Nova32 Development Software Berly Desktop 2.0

INTRODUCCION

En la época actual, donde los negocios son sumamente complejos y variados debido principalmente a la globalización, las nuevas tecnologías de la información y la creciente necesidad de Business Intelligence, es sumamente importante disponer de una herramienta software que de manera sencilla y práctica permita modelar y construir complejos modelos de procesos en las organizaciones. Berly pretende disponer de un lenguaje informático que de forma natural e intuitiva permita realizar una abstracción de los procesos de negocios a un ambiente computacional que permita satisfacer las necesidades de información comercial de una entidad económica presentes y futuras.

En la actualidad existen excelentes y poderosas plataformas de programación, .NET, Java, C++, Delphi, etc.) Que satisfacen estas necesidades, recordemos que en el pasado nacieron novedosas tecnologías de programación orientadas a modos gráficos como Turbo Pascal 7.0, rompiendo el paradigma tradicional de aplicaciones standalone de modo texto o consola, a aplicaciones complejas exprofeso al mundo de los gráficos, el mercado actual es tan grande que las necesidades de procesamiento de datos son cada vez mayores y existen innumerables áreas de oportunidad para ser satisfechas por un nueva herramienta software como Berly 2.0.

Rolando Fernández Benavidez Autor

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


4 Nova32 Development Software Berly Desktop 2.0

TABLA DE CONTENIDO

1 2

3

4

5

6

7

8

9

QUE ES BERLY 1.1 FILOSOFIA CASE DE BERLY ENTORNO DEL LENGUAJE BERLY 2.1 CONCEPTOS BASICOS DE BERLY 2.2 LENGUAJE XML 2.3 LA DIRECTIVA PAGE 2.4 LA DIRECTIVA SOURCE TIPOS DE DATOS 3.1 VARIABLES Y CONSTANTES 3.2 DECLARACION DE VARIABLES 3.3 DECLARACION DE CONSTANTES OPERADORES 4.1 OPERADORES ARITMETICOS 4.2 OPERADORES RELACIONALES 4.3 OPERADORES LOGICOS 4.4 OPERADORES DE ASIGNACION 4.5 PRIORIDAD DE LOS OPERADORES EXPRESIONES 5.1 PALABRAS RESERVADAS 5.2 COMENTARIOS APLICACIÓN DE CONSOLA 6.1 PETICION DE DATOS 6.2 SALIDA DE DATOS PROGRAMACION 7.1 BERLY ESTRUCTURADO 7.2 ASIGNACION 7.3 ESTRUCTURADA 7.4 SELECTIVA SIMPLE 7.5 DOBLE 7.6 MULTIPLE 7.7 REPETITIVA Y DE ITERACION CONDICIONAL 7.8 CONTADORES Y ACUMULADORES 7.9 CICLOS Y REPETIDORES ARREGLOS 8.1 VECTORES 8.2 MATRICES BIBLIOTECA ESTANDAR BERLY 2.0 9.1 LIBRERÍA RUNTIME 9.2 LIBRERÍA EXIRION 9.3 LIBRERÍA EXT32 9.4 LIBRERÍA GRAPH 9.5 LIBRERÍA MATH

7 14 18 19 20 32 33 35 37 38 39 41 41 45 46 49 50 53 54 58 59 64 65 71 72 72 88 91 96 98 100 113 121

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


5 Nova32 Development Software Berly Desktop 2.0

9.6 LIBRERÍA SYSTEM 10 PROGRAMACION VISUAL Y GRAFICOS 10.1 MODOS GRAFICOS DE EXIRION 10.2 EL FRAMEWORK, GEX32 Y EXIRION 10.3 ARQUITECTURA DE GEX32 10.4 LICENCIA DE GEX32 10.5 FRAMEWORK GEX32 A FONDO 11 ACCESO A BASES DE DATOS 11.1 INTRODUCCION 11.2 ARQUITECTURA DMO 3.0 11.3 NOVA32 API DMO 3.0 11.4 MAKE 11.5 GROUP 11.6 SYSKEY 11.7 HISTORY 11.8 OPEN 11.9 FREE 11.10 AUTHOR 11.11 PROJECT 11.12 GROUPS 11.13 MODEL 11.14 REMARKS 11.15 CREATE 11.16 FIELDS 11.17 SAFIE 11.18 USE 11.19 DELTED 11.20 CLOSED 11.21 APPENDBLANK 11.22 REPLACE, BY 11.23 SKIP 11.24 SAY 11.25 GO, GOTOP, GOBOTTOM 11.26 RECNO, COUNT, RECCOUNT 11.27 ISBOF, ISEOF 11.28 RECSIZE 11.29 DELTENOW 11.30 RECALL 11.31 REMOVE 11.32 LOCATE 11.33 ISFOUND 11.34 DSUM 11.35 ZAP Y PACK ANEXO Ejemplo de programa Berly 2.0 JCL para compilación a 32 bits en EXIRION OS

124 150 153 154 155 156 177 177 178 179 179 180 180 181 181 182 182 182 182 182 183 183 184 184 185 185 185 185 186 186 187 188 188 189 189 189 190 190 191 191 191

195 198

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


6 Nova32 Development Software Berly Desktop 2.0

Berly Desktop

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


7 Nova32 Development Software Berly Desktop 2.0

QUE ES BERLY

Para proveer una herramienta software que conjugue facilidad, rapidez, sencillez y la eficiencia de la tecnología más moderna que existe a la fecha para crear aplicaciones gráficas en el sistema operativo EXIRION OS, esta herramienta es Berly Desktop.

Berly Desktop es una extensión de lenguaje para PASCAL, de 4° generación, nacido con las bases de este poderoso lenguaje de programación y el Framework GEX32 de Nova32 para el soporte de las tecnologías orientadas a gráficos en EXIRION OS.

FILOSOFIA CASE DE BERLY

Berly Desktop es una herramienta software, para EXIRION OS, Su filosofía y visión de software se basa en los siguientes pilares:         

PRACTICIDAD EFICIENCIA INTER-OPERABILIDAD ABSTRACCION INCLUSION EXTENSIBILIDAD SIMETRIA AMBITO MULTI-PLATAFORMA

Veamos a detalle cada pilar de este nuevo paradigma:

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


8 Nova32 Development Software Berly Desktop 2.0

PRACTICIDAD “Debe permitir modelar y desarrollar software para EXIRION OS de forma sencilla, práctica e intuitiva”

EFICIENCIA “Generación de código binario nativo para cada Arquitectura de Hardware, optimizado para obtener el más alto desempeño en tiempo real”

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


9 Nova32 Development Software Berly Desktop 2.0

INTER-OPERABILIDAD

“Disposición de Ports, Conectores y Herramientas software que garanticen la conectividad con otros sistemas”

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


10 Nova32 Development Software Berly Desktop 2.0

ABSTRACCION “Mediante sintaxis simples y directas, el desarrollador genera intrínsecamente cientos de líneas de código en lenguaje Ensamblador y PASCAL, de los cuales algunas pueden ser bastante complejas, pero utilizando Berly se puede ahorrar este trabajo al programador mediante una capa de abstracción amistosa y familiar a un lenguaje especialmente creado para EXIRION OS”

INCLUSION “El lenguaje Berly Desktop opera dentro del ambiente del lenguaje PASCAL, por lo cual puede implementar la sintaxis y gramática del lenguaje PASCAL, dentro de su código de programa de manera natural. Esta es la razón por la cual recibe el acrónimo XP (Berly eXtensions for PASCAL)”

EXTENSIBILIDAD “Berly Desktop es también un Framework (Nova32 GEX16 y GEX32) que permite utilizar esta nueva plataforma de modelado y desarrollo orientado a gráficos, para desarrolladores de C, C++ y PASCAL” para ambientes EXIRION OS.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


11 Nova32 Development Software Berly Desktop 2.0

SIMETRIA “La sintaxis y gramática Berly Desktop son intrínsecamente simétricos al lenguaje PASCAL, coexistiendo una armonía entre ambos lenguajes, convirtiendo a Berly en un perfecto complemento de PASCAL”

AMBITO “Berly Desktop es un lenguaje 100% para FrontEnd, es decir está pensado para el desarrollo y modelado de procesos de negocio con cara al cliente, desarrollar de manera sencilla y profesional las interfaces UI para distintos tipos de Escritorios bajo el sistema operativo EXIRION, mediante la implementación del Framework GEX32.”

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


12 Nova32 Development Software Berly Desktop 2.0

MULTI-PLATAFORMA

“Para cualquier arquitectura de hardware donde exista un compilador de ANSI PASCAL, seguro existirá también un port del compilador de Berly Desktop“

Berly Desktop hereda la sintaxis de algunos lenguajes de programación como BASIC, DBASE ,PASCAL y naturalmente de C, para permitir una abstracción de los procesos de negocios que a la vez sea sencilla como práctica, permitiendo el desarrollo de complejos programas gráficos con el mínimo de líneas de programación.

Con Berly Desktop se puede desarrollar aplicaciones de diversos paradigmas, Estructurada y orientación a Objetos, aunque por motivos de mantener un estándar con la programación C++ clásica, el desarrollo ideal sería la programación Orientada a Objetos, cuando el desarrollador haya adquirido una habilidad considerable en Berly podrá también diseñar aplicaciones Berly Desktop orientadas a Estructuras al estilo de C.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


13 Nova32 Development Software Berly Desktop 2.0

ENTORNO DEL LENGUAJE BERLY

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


14 Nova32 Development Software Berly Desktop 2.0

CONCEPTOS BASICOS DE BERLY A lo largo de esta obra nos referiremos simplemente como Berly a Berly Desktop. Berly es un lenguaje de programación basado en lenguajes como BASIC, DBASE, PASCAL y C, tomando lo mejor de cada lenguaje para integrar un solo lenguaje unificado para el escritorio de EXIRION OS. La mayor parte de lenguajes de Nova32 escritos por Rolando Fernández Benavidez, tienen como característica principal la mescla de lenguajes para producir uno nuevo, que permita satisfacer ciertas necesidades y que permitan insertar código in-line de otro lenguaje, sin afectar el proceso de compilación, por lo anterior todos los lenguajes de Nova32 son “Lenguajes Hibridos”. El código fuente de un programa Berly se encuentra contenido dentro de un archivo XML, después de ser sometido al proceso de compilación se producirá un archivo binario con la extensión .PGM para ser ejecutado desde un sistema operativo EXIRION OS 1.2600.1. Los programas Berly tienen una cabecera que permite especificar varios aspectos tanto del sistema para el cual es desarrollado, fecha, programador y objetivo del programa. Los programas Berly se almacenan en archivos de texto plano con la extensión .xml para el sistema operativo EXIRION OS. Berly dispone de un rico repertorio de palabras reservadas muy similar al BASIC y PASCAL, pero a diferencia de estos, Berly 2.0 es Hybrid-Case-Sensitive, es decir, no es sensible al uso de mayúsculas y minúsculas para efectos de variables, constantes, nombres de funciones y procesos, pero todas las palabras reservadas del lenguaje son en minúsculas(Las sentencias berly son en minusculas), por ejemplo una variable con el nombre “clientes” es igual a otra variable llamada “CLIENTES” son dos cosas totalmente similares, esta característica es heredada del lenguaje PASCAL, gracias a esta propiedad usted puede también combinar código Berly In-line con código PASCAL, sin ningún problema de compatibilidad, pero como el objetivo de Berly es el diseño y desarrollo de aplicaciones orientadas para gráficos lo más ideal es usar solo sintaxis Berly, y si llegase a ser necesario la creación de una función muy técnica, podría crearla en PASCAL, directamente en su código Berly e invocarla como si de una función Berly se

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


15 Nova32 Development Software Berly Desktop 2.0

tratase, o incluso podría editar un archivo PASCAL externo con sus funciones favoritas con extensión (p,pas,pp) e invocarlas desde el código de Berly. Esta es la característica que le ha dado también el nombre de (eXtensions for PASCAL) a este nuevo lenguaje de programación.

Berly XP

Veamos un sencillo programa Berly 2.0, con el clásico “Hola mundo…” en una ventana para el escritorio EXIRION OS:

<xml versión=’1.0’ encoding=’utf-8’ ?> <page> <berly> <appgex> Programa1 <programmer> Rolando Fernández Benavidez <system> EXIRION/OS <date> 22/11/2012 <remarks> Programa ejemplo Hola mundo </berly> <source> (* Import extern library berly 2.0 collection

</appgex> </programmer> </system> </date> </remarks>

*)

<import> runtime , exirion , graph , ext32 , gex32 , dmo implements </import> (* Definition Dialog standart on Desktop *) <class> GDialogA extends object(GWindow) public process OnInitInstance(); virtual; process OnInitDialog(); virtual; process WindowProcedure(); virtual; </class>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


16 Nova32 Development Software Berly Desktop 2.0

(* Define global variables on *) <memory> A Desktop MySkin rEvent frmDialogA </memory>

set set set set set

integer GScreen GSkin HEVENT GDialogA

type type type type type

(* Define global const *) <macros> MACRO1 final 0; </macros> (* Implements of virtual methods of Dialog

*)

<process> GDialogA.OnInitInstance() routine </process> <process> GDialogA.OnInitDialog() routine </process> <process> GDialogA.WindowProcedure() routine BEGIN_MESSAGE_MAP (DispatchMessage(msg)) GFORMS LISTENER rEvent := TraslateMessage(msg); //Button event listener (* if(GexCommand(rEvent,cmdOK.Sender)) then OnClose; else //Continue Dialog endif *) EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


17 Nova32 Development Software Berly Desktop 2.0

GexDestroy(rEvent,Sender); END_MESSAGE_MAP </process> //Main Program execution <application> //Standart verification OS support GEX_VerifyOS; //Command line writeln(´Hello World Berly 2.0 terminal mode…´); readkey; //Graphics mode with Gex32 Framework support: GEX_Initialize(4,Gex_Vinyl); GEX_UseMouse; Desktop.Create(); MySkin.Create(); Desktop.BackgroundImage := MySkin.SCREEN; Desktop.SetBackgroundImage(); frmDialogA.Create(Desktop,MySkin); frmDialogA.Title := ´Hello World…´; frmDialogA.Width := 640; frmDialogA.Height := 480; frmDialogA.Left := 100; frmDialogA.Top := 100; frmDialogA.DoModal();

GEX_End; </application> </source> </page>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


18 Nova32 Development Software Berly Desktop 2.0

El lenguaje XML Berly hace uso del lenguaje XML, todos los programas escritos en Berly se encuentran dentro de documentos XML en forma de nodos, por lo cual pueden ser editados y visualizados desde cualquier editor XML. Todos los tags XML de Berly 2.0 son siempre en Minúsculas, a diferencia de los tags Mayúsculas de Berly 1.0. Todo programa Berly está compuesto por al menos 5 tags XML obligatorios:     

<?xml version=‟1.0‟ encoding=‟utf-8‟ ?> <page></page> <berly></berly> <source></source> <application></application>

<?xml version=’1.0’ encoding=’utf-8’ ?>

<page></page> <berly></berly> <source></source> •

<application></application>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


19 Nova32 Development Software Berly Desktop 2.0

LA DIRECTIVA PAGE

Este tag contiene todo el código Berly del programa actual, contiene al menos siempre 3 tags fundamentales:

<berly> <source> <application>

Y también es contenedora de los tags:

<process> <function> <class>

Veamos a detalle cada directiva XML del nodo <page>:

<berly>

Contiene el encabezado de la aplicación Berly Desktop 2.0. Consta de las siguientes directivas:

<appgex>

Nombre del programa sin su extensión.

<programmer>

Nombre del programador de la aplicación EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


20 Nova32 Development Software Berly Desktop 2.0

<system>

Plataforma de Computador utilizado <date>

Fecha de creación

<remarks>

Comentarios generales del programa.

Por ejemplo podría quedar completada de la siguiente forma: <berly> <appgex> <programmer> <system> <date> <remarks> </berly>

Programa1 Rolando Fernández Benavidez EXIRION/OS 22/11/2012 Programa ejemplo Hola mundo

</appgex> </programmer> </system> </date> </remarks>

LA DIRECTIVA SOURCE

Esta directiva es sumamente importante en el código del documento XML de Berly, en ella podremos encontrar todas las funciones, procesos y clases que vayamos definiendo a medida que desarrollamos una aplicación de tipo Escritorio en el sistema operativo EXIRION. Dentro de este nodo, debe existir siempre la directiva <application></application> que es el punto de entrada del programa, es decir cuando el programa inicia, siempre las instrucciones localizadas en este tag, serán las primeras en ser ejecutadas. Sin la directiva <application> el programa no puede iniciar.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


21 Nova32 Development Software Berly Desktop 2.0

Dentro del nodo <source> también podemos encontrar el tag <import></import> mediante el cual podemos importar diversos tipos de librerias: LIBRERÍA runtime exirion graph ext32

gex32 dmo math

DESCRIPCION Biblioteca estándar de Berly 2.0 API de bajo nivel de EXIRION OS Biblioteca estándar de primitivas gráficas Biblioteca para soporte de ejecución en modo de 32 bits para el kernel de 16 bits de EXIRION OS, es un extensor DPMI. Biblioteca para Framework GEX32 Biblioteca para API DMO 3.0 Biblioteca para funciones matematicas.

El tag <import> de enlace tambien nos permite incluir en el programa funciones creadas en una unit de lenguaje PASCAL ubicadas en archivos externos .pas para ser reutilizadas dentro del flujo de nuestro programa Berly. Por ejemplo si tenemos un archivo de unit con lenguaje PASCAL, y deseamos utilizar las funciones en Berly, debemos incluirlo en el tag <import> de nuestro programa de la siguiente manera: <import> runtime , exirion , graph , ext32 , gex32 , dmo , mortgages </import>

implements

Y después podemos invocar a sus funciones directamente dentro de cualquier función de código Berly, por ejemplo hagamos un llamado a la función MortgageYear escrita en PASCAL y guardemos el resultado en una variable Berly llamada Payment: Payment := MortgageYear(5000,12,0.33) ;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


22 Nova32 Development Software Berly Desktop 2.0

Podemos incluir tantos elementos dentro de <import> y archivos de lenguaje PASCAL como necesitemos o deseemos.

El tag <source> también incluye la directiva <macros></macros> mediante la cual podemos definir constantes globales para ser reutilizadas en todas las funciones, clases y procesos del programa Berly XML. Ejemplos:

<macros> Nombre Edad Grado </macros>

final final final

‘ANA’; 26; 4;

Para declarar variables globales podemos utilizar la directiva <memory>: <memory> A Desktop MySkin rEvent frmDialogA </memory>

set set set set set

integer GScreen GSkin HEVENT GDialogA

type type type type type

La directiva <class> nos permitirá construir nuestras propias clases, este tema se vera en apartados siguientes de esta obra.

LA DIRECTIVA APPLICATION

Esta directiva es en sí misma el punto de entrada del programa Berly, es decir en esta directiva se encuentran definidos todas las sentencias que contienen la lógica EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


23 Nova32 Development Software Berly Desktop 2.0

del arranque de la aplicación y las diferentes fases de vida de un programa basado en Ventanas en el sistema operativo EXIRION OS. Gex_Initialize

Gex_UseMouse

Código de aplicación Desktop

Dialog DoModal

GEX_End

Un ejemplo básico de la directiva<application> es:

<application> //Standart verification OS support GEX_VerifyOS; //Graphics mode with Gex32 Framework support: GEX_Initialize(4,Gex_Vinyl); GEX_UseMouse; Desktop.Create(); MySkin.Create(); Desktop.BackgroundImage := MySkin.SCREEN; Desktop.SetBackgroundImage(); frmDialogA.Create(Desktop,MySkin); frmDialogA.Title := ´Hello World…´; frmDialogA.Width := 640; frmDialogA.Height := 480; frmDialogA.Left := 100; frmDialogA.Top := 100; frmDialogA.DoModal(); EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


24 Nova32 Development Software Berly Desktop 2.0

GEX_End; </application>

DIRECTIVA <process> Esta sección contiene todo el código de ejecución y lógica, existe solo en un proyecto tipo Aplicativo, representa un procedimiento Berly, veamos un ejemplo: <process> GDialogA.WindowProcedure() routine BEGIN_MESSAGE_MAP (DispatchMessage(msg)) GFORMS LISTENER rEvent := TraslateMessage(msg); //Button event listener (* if(GexCommand(rEvent,cmdOK.Sender)) then OnClose; else //Continue Dialog endif *) GexDestroy(rEvent,Sender); END_MESSAGE_MAP </process>

Los procedimientos en Berly no devuelven valores, solo permiten ejecutar un conjunto de instrucciones. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


25 Nova32 Development Software Berly Desktop 2.0

DIRECTIVA <function>

Esta sección contiene toda la definición de una Función disponible en el programa. Veamos un ejemplo sencillo: <function> Sumar(A,B,C:Integer;X:Decimal) export Integer routine //La variable S es global y se declaro en el tag <memory> S := A + B + C + X; Sumar := S; </function>

Nota: A diferencia de C y PASCAL, no podemos crear variable locales, en los process ni en las funciones, si requerimos almacenar un valor temporalmente, tendremos que utilizar una variable global declarada en el tag <memory>, esto permite llevar un excelente control de variables para evitar crear montones innecesarios en RAM, un código Berly es lo más optimo posible. Para optimizar el código tanto como sea posible, podemos pasar variables por referencia, como tipo punteros para almacenar el resultado, de esa manera no se requiere crear variables globales adicionales:

<function> Sumar(A,B,C:Integer;var X:Decimal) export Integer routine //La variable X es pasada por referencia como puntero X := A + B + C; Sumar := X+3; </function>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


26 Nova32 Development Software Berly Desktop 2.0

En este segundo ejemplo la función devuelve un valor, mientras que por la variable de referencia podemos obtener otro valor, de esta forma podremos obtener muchos valores con distintos contenidos al invocar una función. Podemos pasar a una función: variables, vectores, arrays y tipos de objetos de clases. Una función también puede devolver: variables, vectores, arrays y tipos de objetos de clases.

DIRECTIVA <class> Esta directiva nos permite crear nuestras propias clases, contiene solo la definición de la clase, para después agregar la implementación de la misma mediante procesos y funciones. Berly 2.0 soporta la herencia simple en cascada, podemos crear clases que hereden de otras clases que a su vez heredan de otras clases. Ejemplo:

<class> GDialogA extends object(GWindow) public process OnInitInstance(); virtual; process OnInitDialog(); virtual; process WindowProcedure(); virtual; </class>

La implementación de la clase GDialogA que hemos creado será:

<process> GDialogA.OnInitInstance() routine </process>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


27 Nova32 Development Software Berly Desktop 2.0

<process> GDialogA.OnInitDialog() routine </process> <process> GDialogA.WindowProcedure() routine BEGIN_MESSAGE_MAP (DispatchMessage(msg)) GFORMS LISTENER rEvent := TraslateMessage(msg); GexDestroy(rEvent,Sender); END_MESSAGE_MAP </process>

LAS SENTENCIAS BERLY

Todas las instrucciones Berly, sin excepción son en minúsculas, el compilador es Hybrid-Case-Sensitive, como se explico en apartados anteriores.

En apartados siguientes se estudiaran a detalle todas las instrucciones y funciones del lenguaje Berly, por el momento vamos a repasar todos sus tags XML.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


28 Nova32 Development Software Berly Desktop 2.0

RESUMEN DE LOS PRINCIPALES TAGS XML EN BERLY DIRECTIVA <?xml version="1.0" encoding="UTF-8" ?> <import> </import> <berly> <appgex> <programmer> <system> <date> <remarks> </berly> <page> </page> <source> </source> <macros> </macros> <application> </application> <syntax> </syntax> <class> </class> <process> </process> <function> </function>

DESCRIPCION El código fuente de Berly esta contenido en un archivo XML TAG Importar Librerias externas TAG Importar Librerias externas TAG inicia encabezado codigo Berly TAG aplicación tipo GEX32 TAG Programador TAG Plataforma TAG Fecha TAG Comentarios del programa TAG termina encabezado codigo Berly TAG Pagina de codigo TAG fin pagina de código TAG Codigo fuente TAG Codigo fuente TAG Definicion de constantes TAG Definicion de constantes TAG Punto de Entrada en el codigo de Berly TAG Punto de Entrada en el codigo de Berly Deprecado Deprecado TAG para definir una Clase TAG para definir una Clase Definir un Proceso Definir un Proceso Definir una Función Definir una Función

<help>

Definir un bloque de comentario

</help>

Definir un bloque de comentario

<assembler>

Ejecutar un bloque de instrucciones en Ensamblador para x86, requiere agregar las macros de $ estándar de FPC. Ejecutar un bloque de instrucciones en Ensamblador para x86 Permite crear una Librería de Berly 2.0 para ser reutilizada posteriormente. Permite crear una Librería de Berly 2.0 para ser reutilizada posteriormente.

</assembler> <library> </library>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


29 Nova32 Development Software Berly Desktop 2.0

TIPOS DE DATOS

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


30 Nova32 Development Software Berly Desktop 2.0

TIPOS DE DATOS

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como „b‟, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

Numéricos Simples

Lógicos Alfanuméricos

Tipos de Datos

Arreglos (Vectores, Matrices) Estructurados Registros

Tipos de Datos Simples Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes. Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos). Datos Alfanuméricos: Es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


31 Nova32 Development Software Berly Desktop 2.0

operaciones con ellos. Este tipo de datos se representan encerrados entre comillas.

Ejemplo: “CLAVE DE CUENTA DE APERTURA DE CREDITO” “CX19979-VCX-9874-QWAS-5”

Los Tipos de Datos que existen en Berly 2.0 son: TIPO integer numeric decimal monetary tiny character string note boolean base64 query stream GDataRecord GDataTape GDataFiller binary GDateTime

DESCRIPCION Entero Numérico Decimal Monetario Entero corto Carácter Cadena Nota Lógico Base64 Consulta Flujo de Datos DataObject DataObject DataObject DataObject DataObject

TAMAÑO 32 bits 32 bits 32 bits 64 bits 32 bits 8 bits 256 bytes 32 bits o 64 bits 32 bits 32 bits o 64 bits 20480 bytes 32 bits o 64 bits 1024 bytes 33792 bytes 65536 bytes 65536 bytes 32 bits o 64 bits

RANGO -2,147,483,648 A 2,147,483,647 -2,147,483,648 A 2,147,483,647 1.18e-38 A 3.40e38 2.23e-308 A 1.79e308 -2,147,483,648 A 2,147,483,647 -128 A 127 1 A 256 bytes Depende de la arquitectura x86 o x64 -2,147,483,648 A 2,147,483,647 Depende de la arquitectura x86 o x64 1 A 20480 Depende de la arquitectura x86 o x64 1 A 1024 bytes 1 A 33792 bytes 1 A 65536 bytes 1 A 65536 bytes Depende de la arquitectura x86 o x64

Los tipos de datos que inician con una “G” se denominan tipos compuestos, ya que pueden ser estructuras o clases, mientras los otros se llaman tipos primitivos de Berly.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


32 Nova32 Development Software Berly Desktop 2.0

VARIABLES Y CONSTANTES

Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora, que nos permite acceder a su contenido.

Ejemplo:

NOMBRE NUMEROS EDAD

Reglas para formar un Identificador

     

Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios en blanco. Letras, dígitos y caracteres como la subraya ( _ ) están permitidos después del primer carácter. La longitud de identificadores puede ser de hasta 80 caracteres. No deben utilizar caracteres especiales No deben utilizar palabras reservadas del lenguaje De preferencia deben ser nombres claros y acordes al dato que van a trabajar

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


33 Nova32 Development Software Berly Desktop 2.0

DECLARACION DE VARIABLES Variable es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambia durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.

Ejemplo: AREA

:=

PI

*

RADIO;

Las variables son: el radio, el área y la constate es pi

Clasificación de las Variables

Numéricas Por su Contenido

Lógicas Alfanuméricas

Variables

De Trabajo Por su Uso

Contadores Acumuladores

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


34 Nova32 Development Software Berly Desktop 2.0

Por su Contenido

Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo: IVA

:=

0.15;

PI

:=

3.14;

COSTO

:=

2500;

Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación entre otros datos.

Variables Alfanuméricas: Está formada por caracteres alfanuméricos (letras, números y caracteres especiales) en Berly 2.0 se utiliza el apostrofo simple para designar variables de tipo cadena (string y character).

Ejemplo: LETRA

:=

PELLIDO

:=

DIRECCION :=

‘a’; ‘lopez’; ‘Av. Libertad

#190’;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


35 Nova32 Development Software Berly Desktop 2.0

Por su Uso

Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo: SUMA

:=

A + B / C;

Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno. Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente. En todos los tipos de datos se permite inicializar la variable en memoria, se pueden inicializar todas las variables excepto los tipos DataObjects.

DECLARACION DE CONSTANTES

Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa, se declara dentro de los tags <macros></macros> Ejemplo:

decimal

pi final

3.1416;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


36 Nova32 Development Software Berly Desktop 2.0

OPERADORES

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


37 Nova32 Development Software Berly Desktop 2.0

OPERADORES

Los operadores son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Aritméticos Tipos de Operadores

Relaciónales Lógicos Unarios De asignación

OPERADORES ARITMETICOS

Los operadores aritméticos permiten la realización matemáticas con los valores (variables y constantes).

de

operaciones

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Operando (Operador) Operando Valor (constante o variable)

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


38 Nova32 Development Software Berly Desktop 2.0

Operadores Aritméticos +

Suma

-

Resta

*

Multiplicación

/

División decimal

Div

División con enteros

Ejemplos: Expresión

Resultado

8

/

2

4

4

+

2*5

14

OPERADORES RELACIONALES

    

Se utilizan para establecer una relación entre dos valores. Comparan estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas) Tienen el mismo nivel de prioridad en su evaluación. Los operadores relaciónales tienen menor prioridad que los aritméticos.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


39 Nova32 Development Software Berly Desktop 2.0

Operadores Relaciónales en BERLY 2.0 >

Mayor que

<

Menor que

>=

Mayor o igual que

<=

Menor o igual que

<>

Diferente

=

Igual

Ejemplo:

if A=10

Then

A

:=

B

;

C

:=

500 ;

else endif

OPERADORES LOGICOS  

Estos operadores se utilizan para establecer relaciones entre valores lógicos. Estos valores pueden ser resultado de una expresión relacional.

Operadores Lógicos AND Y OR

O

NOT Negación

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


40 Nova32 Development Software Berly Desktop 2.0

Operador AND ____________________________________________ Operando1 Operador Operando2 Resultado T AND T T T

F

F

F

T

F

F

F

F

Operador OR ____________________________________________ Operando1 Operador Operando2 Resultado T OR T T T

F

T

F

T

T

F

F

F

Operador NOT ____________________________________________ Operando

Resultado

T

F

F

T

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


41 Nova32 Development Software Berly Desktop 2.0

OPERADORES DE ASIGNACION

Los operadores de asignación permiten como su nombre lo dice asignar valores a variables durante la ejecución de un programa, en Berly disponemos del siguiente operador de asignación:

:=

Pasar un valor a una variable

PRIORIDAD DE LOS OPERADORES

Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa primero. Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

1.- ^ Exponenciación 2.- *, /, mod Multiplicación, división, modulo. 3.- +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


42 Nova32 Development Software Berly Desktop 2.0

Ejemplos: 4 + 2 * 5 = 14 23 * 2 / 5 = 9.2

46 / 5 = 9.2

3 + 5 * (10 - (2 + 4)) = 23

3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23

3.5 + 5.09 - 14.0 / 40 = 5.09

3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09

2.1 * (1.5 + 3.0 * 4.1) = 28.98

2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


43 Nova32 Development Software Berly Desktop 2.0

EXPRESIONES

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


44 Nova32 Development Software Berly Desktop 2.0

EXPRESIONES

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo:

a+(b + 3)/c

Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas.

Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:

-

Aritméticas Relaciónales Lógicas

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


45 Nova32 Development Software Berly Desktop 2.0

PALABRAS RESERVADAS Berly 2.0 dispone de un reducido repertorio de palabras reservadas muy similar al BASIC, DBASE, FOXBASE y PASCAL, pero a diferencia de estos, Berly es HyBrid-Case-Sensitive, es decir es sensible al uso de mayúsculas y minúsculas, todas las palabras reservadas del lenguaje son en minúsculas.

Listado de palabras reservadas del lenguaje de programación Berly 2.0

PALABRA RESERVADA export implements

set final extends type nothing dummy null nil interface

implementation

if then else endif while do

DESCRIPCION Define el tipo de dato que puede exportar una función. Implementa en el programa actual todas las librerías agregadas en el tag <import> Define el tipo de dato que puede almacenar una variable. Define el valor de una constante Hace herencia de una clase definida en la función object() Crea una variable en el tag <memory></memory> Valor nulo Valor nulo Valor nulo Valor nulo Permite definir elementos públicos cuando se crea una Biblioteca Berly Permite implementar elementos públicos cuando se crea una Biblioteca Berly Si condicional Hacer En otro caso Fin del Si condicional Ciclo condicional Iniciar un ciclo de repetición

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


46 Nova32 Development Software Berly Desktop 2.0

enddo docase of otherwise endcase for to endfor repeat until

Fin de ciclo condicional Sentencia selectiva multiple Valores posibles en una sentencia selectiva multiple Valor por default en sentencia selectiva multiple Fin de sentencia selectiva multiple Ciclo de repetición Limite de repeticiones Fin de ciclo de repeticiones Ciclo de repetición Fin de ciclo de repetición

COMENTARIOS

Los comentarios son breves descripciones colocadas en el código de programación que no son más que recordatorios para el programador, no son analizados por el compilador.

Berly dispone de comentarios de simple línea como // y de inicio y termino para varias líneas con el tag <help> y </help> para cierre, o las instrucciones (* y *)

<help> Add your Resource codes, this XML AppWeb Berly. </help>

(* Add your Resource codes, this EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


47 Nova32 Development Software Berly Desktop 2.0

XML AppWeb Berly. *) /* Add your Resource codes, this XML AppWeb Berly. */

// Add your Resource codes, this XML AppWeb Berly. {{your Resource codes, this XML AppWeb Berly}}

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


48 Nova32 Development Software Berly Desktop 2.0

APLICACIONES DE CONSOLA

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


49 Nova32 Development Software Berly Desktop 2.0

LA CONSOLA

Las aplicaciones de consola son aquellas que no disponen de interface gráfica y que su ejecución esta controlada directamente por el SYSPROC o procesador de comandos del sistema, esta capa del sistema operativo EXIRION es la encargada de gestionar la memoria RAM, Carga y Ejecución de un programa en modo de consola.

PETICION DE DATOS Para trabajar con la consola Berly 2.0 dispone de las funciones readln y writeln, para entrada y salida de datos, para conocer todas las funciones disponibles para la consola vea el tema “Biblioteca Estandar de Berly 2.0”, incluida en esta obra. En Berly 2.0, la petición es un fichero, designado por stdin, y como todos los ficheros en lenguaje C stdin. En sistemas UNIX stdin se corresponde con el descriptor de fichero 0, y que puede ser alterado externamente por un programa para el caso de las solicitudes readln.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


50 Nova32 Development Software Berly Desktop 2.0

La recuperación de valores mediante la petición readln, se realiza mediante la lectura del buffer BIOS del teclado.

Berly dispone de 2 funciones predefinidas en el lenguaje llamadas read y readln, para recibir entradas desde peticiones de teclado, mediante este objeto podemos recibir la información en modo de un string, una vez recibida puede ser convertida en cualquier tipo usando las funciones de conversión del lenguaje. Ejemplo:

(* Para el caso de read *) read(variable); (* Para el caso de readln *) readln(variable);

Las funciones read y readln reciben como parámetro el nombre de la variable que va a almacenar el dato.

SALIDA DE DATOS

Para trabajar con la consola Berly 2.0 dispone de las funciones readln y writeln, para entrada y salida de datos, para conocer todas las funciones disponibles para la consola vea el tema “Biblioteca Estandar de Berly 2.0”, incluida en esta obra.

Para mostrar información en la consola disponemos de las funciones predefinidas write y writeln los cuales muestran una variable de tipo String, en el stdout.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


51 Nova32 Development Software Berly Desktop 2.0

Ejemplo sin formato de fin de linea:

write(‘HOLA MUNDO’);

Ejemplo con formato de fin de linea:

writeln(‘HOLA MUNDO’);

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


52 Nova32 Development Software Berly Desktop 2.0

PROGRAMACION

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


53 Nova32 Development Software Berly Desktop 2.0

BERLY ESTRUCTURADO

Los Aplicativos de Berly 2.0 utilizan el paradigma Estructurado y Orientación a Objetos, consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa. La utilización de la técnica de diseño Estructurado tiene los siguientes objetivos básicos:

  

Simplificación del problema y de los subprogramas de cada descomposición. Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas. El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su lectura y mantenimiento.

El paradigma de desarrollo CASE de paradigmas Bottom-Up.

Berly está totalmente en contra de los

Principalmente para evitar los siguientes inconvenientes:

El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato. Cuando la programación se realiza internamente y haciendo un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el desempeño global, sea fluido. Los problemas de integración entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


54 Nova32 Development Software Berly Desktop 2.0

programación alcanza la fecha límite para la integración total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es la duplicación de esfuerzos para accesar el software y másaún al introducir los datos.

Otro es, que se introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el más serio inconveniente del enfoque ascendente, es que los objetivos globales de la organización no fueron considerados y en consecuencia no se satisfacen. Por estos motivos y otros Berly no utiliza el paradigma Bottom-Up, evitando de esta manera muchos de los problemas de desarrollo de software que existen en fábricas de software o consultorías de IT.

ASIGNACION La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente forma:

begin Accion1 Accion2 . . AccionN end;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


55 Nova32 Development Software Berly Desktop 2.0

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: •

Simples: Consiste en pasar un valor constate a una variable (a :=15)

Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a :=a+1)

Acumulador: Consiste en usarla como un sumador en un proceso (a := a+b)

• De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a :=c+b*2/4).

Problemas Secuenciales Financieros y Generales, para resolver en Berly:

1) Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero ganara después de un mes si el banco paga a razón de 2% mensual.

2) Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor desea saber cuánto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.

3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuánto deberá pagar finalmente por su compra.

4) Un alumno desea saber cuál será su calificación final en la materia de Algoritmos. Dicha calificación se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parciales. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


56 Nova32 Development Software Berly Desktop 2.0

30% de la calificación del examen final. 15% de la calificación de un trabajo final.

5) Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. 6) Realizar un algoritmo que calcule la edad de una persona.

Más Problemas Propuestos

1)Dada una cantidad en pesos, obtener la equivalencia en dólares, asumiendo que la unidad cambiaría es un dato desconocido. 2)Leer un número y escribir el valor absoluto del mismo. 3) La presión, el volumen y la temperatura de una masa de aire se relacionan por la fórmula: Masa = (presión * volumen)/(0.37 * (temperatura + 460))

4) Calcular el número de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la fórmula es: num. Pulsaciones = (220 - edad)/10

5) Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.

6)En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se reparte conforme a la sig. Tabla:

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


57 Nova32 Development Software Berly Desktop 2.0

Área

Porcentaje del presupuesto

Ginecología

40%

Traumatología

30%

Pediatría

30%

Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.

7)El dueño de una tienda compra un artículo a un precio determinado. Obtener el precio en que lo debe vender para obtener una ganancia del 30%.

8)Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.

9)Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.

10)Un alumno desea saber cuál será su promedio general en las tres materias más difíciles que cursa y cuál será el promedio que obtendrá en cada una de ellas. Estas materias se evalúan como se muestra a continuación:

La calificación de Matemáticas se obtiene de la sig. Manera: Examen 90% Promedio de tareas 10% En esta materia se pidió un total de tres tareas.

La calificación de Física se obtiene de la sig. Manera:

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


58 Nova32 Development Software Berly Desktop 2.0

Examen 80% Promedio de tareas 20% En esta materia se pidió un total de dos tareas.

La calificación de Química se obtiene de la sig. Manera: Examen 85% Promedio de tareas 15% En esta materia se pidió un promedio de tres tareas.

ESTRUCTURADA

Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

Secuenciales

- Asignación - Entrada - Salida - Simples

Estructuras Condicionales Algoritmicas

Cíclicas

- Múltiples

- Hacer para - Hacer mientras - Repetir hasta

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


59 Nova32 Development Software Berly Desktop 2.0

SELECTIVA SIMPLE

Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite.

Las estructuras condicionales simples se les conocen como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma en Berly:

if

condición

then

Acción(es) else // Vacio pero requerido forsozamente para respetar estructura if

endif

Problemas Selectivos Simples

1) Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a $7000, y en ese caso desea saber cuánto dinero tendrá finalmente en su cuenta.

2) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


60 Nova32 Development Software Berly Desktop 2.0

3) En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000 ¿Cuál será la cantidad que pagara una persona por su compra?

4) Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. Manera: Si trabaja 40 horas o menos se le paga $16 por hora Si trabaja más de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20 por cada hora extra.

5) Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la cantidad que tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a $7000, y en ese caso desea saber cuánto dinero tendrá finalmente en su cuenta.

6) Que lea dos números y los imprima en forma ascendente

7) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuántas calorías consume su cuerpo durante todo el tiempo que realice una misma actividad. Las actividades que tiene permitido realizar son únicamente dormir o estar sentado en reposo. Los datos que tiene son que estando dormido consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66 calorías por minuto.

8) Hacer un algoritmo que imprima el nombre de un artículo, clave, precio original y su precio con descuento. El descuento lo hace en base a la clave, si la clave es 01 el descuento es del 10% y si la clave es 02 el descuento en del 20% (solo existen dos claves).

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


61 Nova32 Development Software Berly Desktop 2.0

9) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre el total de la compra y si son menos de tres camisas un descuento del 10%

10) Una empresa quiere hacer una compra de varias piezas de la misma clase a una fábrica de refacciones. La empresa, dependiendo del monto total de la compra, decidirá qué hacer para pagar al fabricante. Si el monto total de la compra excede de $500 000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante. Si el monto total de la compra no excede de $500 000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante. El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito.

Problemas Propuestos

1) Calcular el total que una persona debe pagar en una llantera, si el precio de cada llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran 5 o más.

2) En un supermercado se hace una promoción, mediante la cual el cliente obtiene un descuento dependiendo de un número que se escoge al azar. Si el numero escogido es menor que 74 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 74 el descuento es del 20%. Obtener cuánto dinero se le descuenta.

3) Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aeróbico; la fórmula que se aplica cuando el sexo es femenino es: núm. pulsaciones = (220 - edad)/10 EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


62 Nova32 Development Software Berly Desktop 2.0

Y si el sexo es masculino: núm. pulsaciones = (210 - edad)/10

4) Una compañía de seguros está abriendo un depto. De finanzas y estableció un programa para captar clientes, que consiste en lo siguiente: Si el monto por el que se efectúa la fianza es menor que $50 000 la cuota a pagar será por el 3% del monto, y si el monto es mayor que $50 000 la cuota a pagar será el 2% del monto. La afianzadora desea determinar cuál será la cuota que debe pagar un cliente.

5) En una escuela la colegiatura de los alumnos se determina según el número de materias que cursan. El costo de todas las materias es el mismo. Se ha establecido un programa para estimular a los alumnos, el cual consiste en lo siguiente: si el promedio obtenido por un alumno en el último periodo es mayor o igual que 9, se le hará un descuento del 30% sobre la colegiatura y no se le cobrara IVA; si el promedio obtenido es menor que 9 deberá pagar la colegiatura completa, la cual incluye el 10% de IVA. Obtener cuanto debe pagar un alumno.

6) Una empresa de bienes raíces ofrece casas de interés social, bajo las siguientes condiciones: Si los ingresos del comprador son menores de $8000 o más el enganche será del 15% del costo de la casa y el resto se distribuirá en pagos mensuales, a pagar en diez años. Si los ingresos del comprador son menos de $8000 o más el enganche será del 30% del costo de la casa y el resto se distribuirá en pagos mensuales a pagar en 7 años. La empresa quiere obtener cuanto debe pagar un comprador por concepto de enganche y cuanto por cada pago parcial.

7) El gobierno ha establecido el programa SAR (Sistema de Ahorro para el Retiro) que consiste en que los dueños de la empresa deben obligatoriamente depositar en una cuenta bancaria un porcentaje del salario de los trabajadores; adicionalmente los trabajadores pueden solicitar a la empresa que deposite directamente una cuota fija o un porcentaje de su salario en la cuenta del SAR, la cual le será descontada de su pago. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


63 Nova32 Development Software Berly Desktop 2.0

Un trabajador que ha decidido aportar a su cuenta del SAR desea saber la cantidad total de dinero que estará depositado a esa cuenta cada mes, y el pago mensual que recibirá.

8) Una persona desea iniciar un negocio, para lo cual piensa verificar cuánto dinero le prestara el banco por hipotecar su casa. Tiene una cuenta bancaria, pero no quiere disponer de ella a menos que el monto por hipotecar su casa sea muy pequeño. Si el monto de la hipoteca es menor que $1 000 000 entonces invertirá el 50% de la inversión total y un socio invertirá el otro 50%. Si el monto de la hipoteca es de $ 1 000 000 o más, entonces invertirá el monto total de la hipoteca y el resto del dinero que se necesite para cubrir la inversión total se repartirá a partes iguales entre el socio y el.

9) El gobierno del estado de México desea reforestar un bosque que mide determinado número de hectáreas. Si la superficie del terreno excede a 1 millón de metros cuadrados, entonces decidirá sembrar de la sig. Manera: Porcentaje de la superficie del bosque

Tipo de árbol

70%

pino

20%

oyamel

10%

cedro

Si la superficie del terreno es menor o igual a un millón de metros cuadrados, entonces decidirá sembrar de la sig. Manera: Porcentaje de la superficie del bosque

Tipo de árbol

50%

pino

30%

oyamel

20%

cedro

El gobierno desea saber el número de pinos, oyameles y cedros que tendrá que sembrar en el bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


64 Nova32 Development Software Berly Desktop 2.0

15 metros cuadrados caben 15 oyameles y en 18 metros cuadrados caben 10 cedros. También se sabe que una hectárea equivale a 10 mil metros cuadrados.

10) Una fábrica ha sido sometida a un programa de control de contaminación para lo cual se efectúa una revisión de los puntos IMECA generados por la fábrica. El programa de control de contaminación consiste en medir los puntos IMECA que emite la fábrica en cinco días de una semana y si el promedio es superior a los 170 puntos entonces tendrá la sanción de parar su producción por una semana y una multa del 50% de las ganancias diarias cuando no se detiene la producción. Si el promedio obtenido de puntos IMECA es de 170 o menor entonces no tendrá ni sanción ni multa. El dueño de la fábrica desea saber cuánto dinero perderá después de ser sometido a la revisión.

11) Una persona se encuentra con un problema de comprar un automóvil o un terreno, los cuales cuestan exactamente lo mismo. Sabe que mientras el automóvil se devalúa, con el terreno sucede lo contrario. Esta persona comprara el automóvil si al cabo de tres años la devaluación de este no es mayor que la mitad del incremento del valor del terreno. Ayúdale a esta persona a determinar si debe o no comprar el automóvil.

DOBLE

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

if

condición then Acción(es)

else Acción(es) endif

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


65 Nova32 Development Software Berly Desktop 2.0

Dónde:

if ………………… Indica el comando de comparación Condición………… Indica la condición a evaluar then……..……

Precede a las acciones a realizar cuando se cumple la condición

Acción(es)………… Son las acciones a realizar cuando se cumple o no la condición else……………… Precede a las acciones a realizar cuando no se cumple la condición

Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.

MULTIPLE

Las estructuras de comparación múltiples, son tomas de decisión especializada que permiten comparar variables contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones específicas. La forma común es la siguiente: docase <variable> of <valor> set <acción>; <valor> set <acción>; <valor> set <acción>; otherwise <acción>; endcase

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


66 Nova32 Development Software Berly Desktop 2.0

break = Permite romper el bloque continue = Permite continuar la bifurcación.

Problemas Selectivos Compuestos

1) Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume.

2) Leer tres números diferentes e imprimir el número mayor de los tres.

3) Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el resto al triple.

4) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este se le asigna como un porcentaje de su salario mensual que depende de su antigüedad en la empresa de acuerdo con la sig. Tabla: Tiempo

Utilidad

Menos de 1 año

5 % del salario

1 año o más y menos de 2 años

7% del salario

2 años o más y menos de 5 años

10% del salario

5 años o más y menos de 10 años

15% del salario

10 años o más

20% del salario

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


67 Nova32 Development Software Berly Desktop 2.0

5) En una tienda de descuento se efectúa una promoción en la cual se hace un descuento sobre el valor de la compra total según el color de la bolita que el cliente saque al pagar en caja. Si la bolita es de color blanco no se le hará descuento alguno, si es verde se le hará un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el cliente deberá pagar por su compra. se sabe que solo hay bolitas de los colores mencionados.

6) El IMSS requiere clasificar a las personas que se jubilaran en el año de 1997. Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o más. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o más y una antigüedad en su empleo de 25 años o más. Determinar en qué tipo de jubilación, quedara adscrita una persona.

Problemas Propuestos

1) En una fábrica de computadoras se planea ofrecer a los clientes un descuento que dependerá del número de computadoras que compre. Si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total de la compra; si el número de computadoras es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento; y si son 10 o más se les da un 40% de descuento. El precio de cada computadora es de $11,000

2) En una llantera se ha establecido una promoción de las llantas marca “Ponchadas”, dicha promoción consiste en lo siguiente: Si se compran menos de cinco llantas el precio es de $300 cada una, de $250 si se compran de cinco a 10 y de $200 si se compran más de 10. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


68 Nova32 Development Software Berly Desktop 2.0

Obtener la cantidad de dinero que una persona tiene que pagar por cada una de las llantas que compra y la que tiene que pagar por el total de la compra. 3) En un juego de preguntas a las que se responde “Si” o “No” gana quien responda correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no se pregunta la siguiente y termina el juego. Las preguntas son: 1. Colon descubrió América? 2. La independencia de México fue en el año 1810? 3. The Doors fue un grupo de rock Americano?

4) Un proveedor de estéreos ofrece un descuento del 10% sobre el precio sin IVA, de algún aparato si este cuesta $2000 o más. Además, independientemente de esto, ofrece un 5% de descuento si la marca es “NOSY”. Determinar cuánto pagara, con IVA incluido, un cliente cualquiera por la compra de su aparato.

5) Una frutería ofrece las manzanas con descuento según la siguiente tabla: NUM. DE KILOS COMPRADOS 0

% DESCUENTO

- 2

0%

2.01 - 5

10%

5.01 - 10

15%

10.01 en adelante

20%

Determinar cuánto pagara una persona que compre manzanas es esa frutería.

6) El dueño de una empresa desea planificar las decisiones financieras que tomara en el siguiente año. La manera de planificarlas depende de lo siguiente:

Si actualmente su capital se encuentra con saldo negativo, pedirá un préstamo bancario para que su nuevo saldo sea de $10 000. Si su capital tiene actualmente un saldo positivo pedirá un préstamo bancario para tener un nuevo saldo de $20

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


69 Nova32 Development Software Berly Desktop 2.0

000, pero si su capital tiene actualmente un saldo superior a los $20 000 no pedirá ningún préstamo. Posteriormente repartirá su presupuesto de la siguiente manera. $5 000 para equipo de computo $2 000 para mobiliario Y el resto la mitad será para la compra de insumos y la otra para otorgar incentivos al personal. Desplegar que cantidades se destinaran para la compra de insumos e incentivos al personal y, en caso de que fuera necesario, a cuánto ascendería la cantidad que se pediría al banco.

7) Tomando como base los resultados obtenidos en un laboratorio de análisis clínicos, un médico determina si una persona tiene anemia o no, lo cual depende de su nivel de hemoglobina en la sangre, de su edad y de su sexo. Si el nivel de hemoglobina que tiene una persona es menor que el rango que le corresponde, se determina su resultado como positivo y en caso contrario como negativo. La tabla en la que el medico se basa para obtener el resultado es la siguiente:

EDAD

NIVEL HEMOGLOBINA

0 - 1 mes

13

- 26 g%

> 1 y < = 6 meses

10

- 18 g%

> 6 y < = 12 meses

11

- 15 g%

> 1 y < = 5 años

11.5 - 15 g%

> 5 y < = 10 años

12.6 - 15.5 g%

> 10 y < = 15 años

13

- 15.5 g%

mujeres> 15 años

12

- 16 g%

hombres> 15 años

14

- 18 g%

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


70 Nova32 Development Software Berly Desktop 2.0

8) Una institución educativa estableció un programa para estimular a los alumnos con buen rendimiento académico y que consiste en lo siguiente: Si el promedio es de 9.5 o más y el alumno es de preparatoria, entonces este podrá cursar 55 unidades y se le hará un 25% de descuento. Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de preparatoria, entonces este podrá cursar 50 unidades y se le hará un 10% de descuento. Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, este podrá cursar 50 unidades y no tendrá ningún descuento. Si el promedio es de 7 o menor, el número de materias reprobadas es de 0 a 3 y el alumno es de preparatoria, entonces podrá cursar 45 unidades y no tendrá descuento. Si el promedio es de 7 o menor, el número de materias reprobadas es de 4 o mas y el alumno es de preparatoria, entonces podrá cursar 40 unidades y no tendrá ningún descuento. Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces podrá cursar 55 unidades y se le hará un 20% de descuento. Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podrá cursar 55 unidades y no tendrá descuento.

Obtener el total que tendrá que pagar un alumno si la colegiatura para alumnos de profesional es de $300 por cada cinco unidades y para alumnos de preparatoria es de $180 por cada cinco unidades.

9) Que lea tres números diferentes y determine el numero medio del conjunto de los tres números (el numero medio es aquel número que no es ni mayor, ni menor).

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


71 Nova32 Development Software Berly Desktop 2.0

REPETITIVA Y DE ITERACION CONDICIONAL

Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa). Ciclos con un Número Determinado de Iteraciones (Hacer-Para): Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. La forma de esta estructura es la siguiente:

Hacer para V.C = L.I a L.S Accion1 Accion2 . . . AccionN Fin-para

VC=LI Vc = LS

V

vc=vc+1 F Cuerpo del ciclo

Dónde: V.C

Variable de control del ciclo

L.I

Limite inferir

L.S

Límite superior

En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la variable de control llegue al límite superior.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


72 Nova32 Development Software Berly Desktop 2.0

CONTADORES Y ACUMULADORES

Los contadores son variables que nos permiten llevar un conteo de ciertas actividades dentro del programa, generalmente se usan en los ciclos y repetidores, pero pueden llegar a usar para llevar cualquier cuenta, durante la ejecución del programa.

Ejemplo de un contador en Berly:

IVA := IVA + 1;

Para decremento de un contador:

IVA := IVA - 1;

Los acumuladores son las variables de trabajo en sí, es decir cualquier variable que utilizamos para almacenas datos es un acumulador:

SALARIO :=

SUELDO + 200 ;

CICLOS Y REPETIDORES

Los repetidores son estructuras cíclicas que repetirán un conjunto de acciones un número definido de veces en función de un contador.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


73 Nova32 Development Software Berly Desktop 2.0

Hacer mientras <condición> Accion1 Accion2 . . AccionN Fin-mientras

NO CONDICION

SI CUERPO DEL CICLO

En Berly las estructuras de repetición son de la siguiente manera:

for

x:=0 to 7 do <acciones>

endfor

Tambien disponemos del clasico repeat-until estilo PASCAL:

repeat <acciones>

until (x > 10)

Los ciclos condicionales son estructuras de repetición en las cuales el número de iteraciones será resultado de que una condición determinada deje de ser cierta.

En Berly 2.0 los ciclos condicionales poseen la siguiente estructura:

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


74 Nova32 Development Software Berly Desktop 2.0

while condición do <secuencias> enddo

Mientras la condición se cumpla el ciclo continuara, puede ser abandonado en cualquier momento mediante la sentencia Break, o puede continuar aplicando la sentencia Continue. Al utilizar este tipo de ciclos de repetición hay que tener especial cuidado de no crear ciclos infinitos, ya que podrían bloquear el programa o incluso todo el sistema. Problemas 1) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño Estructurado de Algoritmos 2) Leer 10 números y obtener su cubo y su cuarta. 3) Leer 10 números e imprimir solamente los números positivos 4) Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros. 5) Leer 15 números negativos y convertirlos a positivos e imprimir dichos números 6) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificación media y la calificación más baja de todo el grupo. 7) Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el multiplicando, el multiplicador y el producto. 8) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 0:00:00 horas hasta las 23:59:59 horas

Problemas Propuestos 1) Una persona debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se determinan las categorías con base en la sig., tabla: EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


75 Nova32 Development Software Berly Desktop 2.0

CATEGORIA

EDAD

Niños

0 - 12

Jóvenes

13 - 29

Adultos

30 - 59

Viejos

60 en adelante

2) Al cerrar un expendio de naranjas, 15 clientes que aún no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuánto pagara cada cliente y cuanto percibirá la tienda por esas compras.

3) En un centro de verificación de automóviles se desea saber el promedio de puntos contaminantes de los primeros 25 automóviles que lleguen. Asimismo se desea saber los puntos contaminantes del carro que menos contamino y del que más contamino.

4) Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilómetros durante 10 días, para determinar si es apto para la prueba de 5 Kilómetros o debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos una de las siguientes condiciones: - Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos. - Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos. - Que su promedio de tiempos sea menor o igual a 15 minutos. 5) Un Zoólogo pretende determinar el porcentaje de animales que hay en las siguientes tres categorías de edades: de 0 a 1 año, de más de 1 año y menos de 3 y de 3 o más años. El zoológico todavía no está seguro del animal que va a estudiar. Si se decide por elefantes solo tomara una muestra de 20 de ellos; si se decide por las jirafas, tomara 15 muestras, y si son chimpancés tomara 40.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


76 Nova32 Development Software Berly Desktop 2.0

Problemas

1) Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuánto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones.

2) En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la sig. Forma: Si el obrero trabaja 40 horas o menos se le paga $20 por hora Si trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra.

3) Determinar cuántos hombres y cuantas mujeres se encuentran en un grupo de n personas, suponiendo que los datos son extraídos alumno por alumno.

4) El Depto. de Seguridad Publica y Transito del D.F. desea saber, de los n autos que entran a la ciudad de México, cuantos entran con calcomanía de cada color. Conociendo el último dígito de la placa de cada automóvil se puede determinar el color de la calcomanía utilizando la sig. Relación:

DÍGITO

COLOR

1o2

amarilla

3o4

rosa

5o6

roja

7o8

verde

9o0

azul

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


77 Nova32 Development Software Berly Desktop 2.0

5) Obtener el promedio de calificaciones de un grupo de n alumnos.

6) Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés. Cuál será la cantidad de dinero que esta persona tendrá al cabo de un año si la ganancia de cada mes es reinvertida?.

7) Calcular el promedio de edades de hombres, mujeres y de todo un grupo de alumnos.

8) Encontrar el menor valor de un conjunto de n números dados. 9) Encontrar el mayor valor de un conjunto de n números dados. 10) En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada cliente cual es el monto de lo que deben pagar. Al final del día le indica a su supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja. 11) Cinco miembros de un club contra la obesidad desean saber cuánto han bajado o subido de peso desde la última vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada uno se pesa en diez básculas distintas para así tener el promedio más exacto de su peso. Si existe diferencia positiva entre este promedio de peso y el peso de la última vez que se reunieron, significa que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que el problema requiere es que por cada persona se imprima un letrero que diga: “SUBIO” o “BAJO” y la cantidad de kilos que subió o bajo de peso.

3) Se desea obtener el promedio de g grupos que están en un mismo año escolar; siendo que cada grupo puede tener n alumnos que cada alumno puede llevar m materias y que en todas las materias se promedian tres calificaciones para obtener el promedio de la materia. Lo que se desea desplegar es el promedio de los grupos, el promedio de cada grupo y el promedio de cada alumno.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


78 Nova32 Development Software Berly Desktop 2.0

Problemas 1) En una tienda de descuento las personas que van a pagar el importe de su compra llegan a la caja y sacan una bolita de color, que les dirá que descuento tendrán sobre el total de su compra. Determinar la cantidad que pagara cada cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la bolita es roja el cliente obtendrá un 40% de descuento; si es amarilla un 25% y si es blanca no obtendrá descuento.

2) En un supermercado un ama de casa pone en su carrito los artículos que va tomando de los estantes. La señora quiere asegurarse de que el cajero le cobre bien lo que ella ha comprado, por lo que cada vez que toma un artículo anota su precio junto con la cantidad de artículos iguales que ha tomado y determina cuántodinero gastara en ese artículo; a esto le suma lo que ira gastando en los demás artículos, hasta que decide que ya tomo todo lo que necesitaba. Ayúdale a esta señora a obtener el total de sus compras.

3) un teatro otorga descuentos según la edad del cliente. Determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro:

Edad

Descuento

Categoría 1

5 - 14

35 %

Categoría 2

15 - 19

25 %

Categoría 3

20 - 45

10 %

Categoría 4

46 - 65

25 %

Categoría 5

66 en adelante

35 %

Problemas Propuestos

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


79 Nova32 Development Software Berly Desktop 2.0

1) La presión, volumen y temperatura de una masa de aire se relacionan por la fórmula: Masa =

presión * volumen ________________________ 0.37 * (temperatura + 460)

Calcular el promedio de masa de aire de los neumáticos de n vehículos que están en compostura en un servicio de alineación y balanceo. Los vehículos pueden ser motocicletas o automóviles.

2) Determinar la cantidad semanal de dinero que recibirá cada uno de los n obreros de una empresa. Se sabe que cuando las horas que trabajo un obrero exceden de 40, el resto se convierte en horas extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple.

3) En una granja se requiere saber alguna información para determinar el precio de venta por cada kilo de huevo. Es importante determinar el promedio de calidad de las n gallinas que hay en la granja. La calidad de cada gallina se obtiene según la fórmula:

Calidad= peso de la gallina * altura de la gallina ____________________________ Numero de huevos que pone

Finalmente para fijar el precio del kilo de huevo, se toma como base la siguiente tabla:

PRECIO TOTAL DE CALIDAD PESO POR KILO DE HUEVO mayor o igual que 15

1.2 * promedio de calidad

mayor que 8 y menor que 15

1.00 * promedio de calidad

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


80 Nova32 Development Software Berly Desktop 2.0

menor o igual que 8

0.80 * promedio de calidad

4) En la Cámara de Diputados se levanta una encuesta con todos los integrantes con el fin de determinar qué porcentaje de los n diputados está a favor del Tratado de Libre Comercio, que porcentaje está en contra y que porcentaje se abstiene de opinar.

5) Una persona que va de compras a la tienda “Enano, S.A.”, decide llevar un control sobre lo que va comprando, para saber la cantidad de dinero que tendrá que pagar al llegar a la caja. La tienda tiene una promoción del 20% de descuento sobre aquellos artículos cuya etiqueta sea roja. Determinar la cantidad de dinero que esta persona deberá pagar.

6) Un censador recopila ciertos datos aplicando encuestas para el último Censo Nacional de Población y Vivienda. Desea obtener de todas las personas que alcance a encuestar en un día, que porcentaje tiene estudios de primaria, secundaria, carrera técnica, estudios profesionales y estudios de posgrado.

7) Un jefe de casilla desea determinar cuántas personas de cada una de las secciones que componen su zona asisten el día de las votaciones. Las secciones son: norte, sur y centro. También desea determinar cuál es la sección con mayor número de votantes.

8) Un negocio de copias tiene un límite de producción diaria de 10 000 copias si el tipo de impresión es offset y de 50 000 si el tipo es estándar. Si hay una solicitud de un el empleado tiene que verificar que las copias pendientes hasta el momento y las copias solicitadas no excedan del límite de producción. Si el límite de producción se excediera el trabajo solicitado no podría ser aceptado. El empleado necesita llevar un buen control de las copias solicitadas hasta el momento para decidir en forma rápida si los trabajos que se soliciten en el día se deben aceptar o no.

9) Calcular la suma siguiente: EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


81 Nova32 Development Software Berly Desktop 2.0

100 + 98 + 96 + 94 + . . . + 0 en este orden

10) Leer 50 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje de reprobados. Tomando en cuenta que la calificación mínima aprobatoria es de 70.

11) Leer por cada alumno de Diseño estructurado de algoritmos su número de control y su calificación en cada una de las 5 unidades de la materia. Al final que escriba el número de control del alumno que obtuvo mayor promedio. Suponga que los alumnos tienen diferentes promedios.

12) El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen derecho al examen de nivelación. Diseñe un algoritmo que lea las calificaciones obtenidas en las 5 unidades por cada uno de los 40 alumnos y escriba la cantidad de ellos que no tienen derecho al examen de nivelación.

13) Leer los 250,000 votos otorgados a los 3 candidatos a gobernador e imprimir el número del candidato ganador y su cantidad de votos.

14) Suponga que tiene usted una tienda y desea registrar las ventas en su computadora. Diseñe un algoritmo que lea por cada cliente, el monto total de su compra. Al final del día que escriba la cantidad total de ventas y el número de clientes atendidos.

Problemas Repetitivos Compuestos

1.- El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen derecho al examen de nivelación.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


82 Nova32 Development Software Berly Desktop 2.0

Diseñe un pseudocódigo que lea las calificaciones obtenidas en las 5 unidades por cada uno de los 40 alumnos y escriba la cantidad de ellos que no tienen derecho al examen de nivelación.

2.- Diseñe un diagrama que lea los 2,500,000 votos otorgados a los 3 candidatos a gobernador e imprima el número del candidato ganador y su cantidad de votos.

3.- Suponga que tiene usted una tienda y desea registrar las ventas en una computadora. Diseñe un pseudocódigo que lea por cada cliente, el monto total de su compra. Al final del día escriba la cantidad total de las ventas y el número de clientes atendidos.

4.- Suponga que tiene una tienda y desea registrar sus ventas por medio de una computadora. Diseñe un pseudocódigo que lea por cada cliente: a).- el monto de la venta, b).- calcule e imprima el IVA , c).-calcule e imprima el total a pagar, d).- lea la cantidad con que paga el cliente, e).-calcule e imprime el cambio. Al final del día deberá imprimir la cantidad de dinero que debe haber en la caja.

5.- Modificar el pseudocódigo anterior de tal forma que no permita que la cantidad con la que paga el cliente sea menor a lo que debe pagar.

6.- Se tiene un conjunto de 1,000 tarjetas cada una contiene la información del censo para una persona: 1.- Número de censo, 2.- Sexo 3.- Edad EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


83 Nova32 Development Software Berly Desktop 2.0

4.- Estado civil (a.- soltero, b. Casado, c. Viudo, d. Divorciado ) Diseñe un pseudocódigo estructurado que lea todos estos datos, e imprima el número de censo de todas las jóvenes solteras que estén entre 16 y 21 años.

7.- Diseñe un pseudocódigo que lea el valor de un ángulo expresado en decimales y calcule e imprima el valor del seno de dicho ángulo.

8.-Un jeep puede viajar 500 km con un tanque lleno de gasolina. Desde una posición inicial, conteniendo „n‟ tanques de gasolina el mismo jeep puede viajar: L = 500 ( 1 + 1/3 + 1/5 + ...+ 1 / (2n -1) ) km Estableciendo economía de combustible en una ruta . Diseñe un pseudocódigo que calcule el valor de „L‟ dado „ n „ .

9.- Se ofrece un trabajo que pague un centavo en la primera semana, pero dobla su salario cada semana, es decir , $.01 la primera semana; $.02 la segunda semana; $0.4 la tercera semana; ... etc. Hasta $(2n-1)/100 la n- ésima . Diseñar el pseudocódigo que determine ( y escriba ) el salario por cada semana y el salario pagado hasta la fecha por espacio de 50 semanas.

10.-Diseñe un pseudocódigo que calcule e imprima el pago de 102 trabajadores que laboran en la Cía. GACMAN. Los datos que se leerán serán los siguientes: a) Las horas trabajadas b) El sueldo por hora c) El tipo de trabajador (1.-obrero,2.-empleado) Para calcular los pagos considerar lo siguiente: - Los obreros pagan 10 % de impuesto - Los empleados pagan 10 % de impuesto. - Los trabajadores (obreros y empleados) que reciban un pago menor de 100,000 pesos no pagan impuesto. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


84 Nova32 Development Software Berly Desktop 2.0

-Al final se deberá imprimir el total a pagar a los trabajadores y a los empleados.

11.- Diseñar un pseudocódigo que convierta un número al tripe de su doble valor.

12.- Un objeto es dejado caer a una altura de 100 mts. Diseñe un pseudocódigo que imprima cada décima de segundo la distancia entre el objeto y el suelo y al final imprima el tiempo necesario en décimas de segundo para que el objeto toque el suelo.

13.- La Cía. Automovilística Mexicana, S.A. de C.V premia anualmente a sus mejores vendedores de acuerdo a la siguiente tabla:

Si vendió

Le corresponde de Comisión

Sobre ventas totales 1,000,000<= v < 3,000,000

3%

3,000,000<= v < 5,000,000

4%

5,000,000<= v < 7,000,000

5%

7,000,000<= v

6%

Diseñar un pseudocódigo que lea las ventas de 100 vendedores y que escriba la comisión anual que le corresponda a cada vendedor. Suponer que nadie vende más de 10,000,000 al año.

14.- Diseñe un pseudocódigo que imprima la fecha en palabras a partir de la representación siguiente: S,DD,MM, AA. En donde: S = Día de la semana, 1 a 7 ( 1 = lunes; 2 = martes; etc..); DD = Día del mes, 1 a 30 ó 31, según el mes. Fijar el mes de febrero con 28 días; AA = Dos últimas cifras del año. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


85 Nova32 Development Software Berly Desktop 2.0

15.- Un grupo de 100 estudiantes presentan un examen de Física. Diseñe un diagrama que lea por cada estudiante la calificación obtenida y calcule e imprima: A.- La cantidad de estudiantes que obtuvieron una calificación menor a 50. B.- La cantidad de estudiantes que obtuvieron una calificación de 50 o más pero menor que 80. C.- La cantidad de estudiantes que obtuvieron una calificación de 70 o más pero menor que 80. D. La cantidad de estudiantes que obtuvieron una calificación de 80 o más.

16.- Un avión que viaja 800 Km/hr. Dispara un proyectil auto impulsado, en el momento del disparo, el avión hace un giro de 90 0 y acelera a 20 mtrs/seg2. El proyectil sigue su curso, acelerando a 10 mtrs./seg2. Diseñe un pseudocódigo que escriba cada segundo, la distancia que separa al avión del proyectil, hasta que estén a 10,000 mtrs. o más. 17.- Una pizzería, vende sus pizzas en tres tamaños: Pequeña (10 pulg. De diámetro); mediana (12 pulg. De diámetro); y grandes (16 pulg. De diámetro); Una pizza puede ser sencilla (con sólo salsa y carne), o con ingredientes extras, tales como pepinillos, champiñones o cebollas Los propietarios desean desarrollar un programa que calcule el precio de venta de una pizza, dándole el tamaño y el número de ingredientes extras. El precio de venta será 1.5 veces el costo total, que viene determinado por el área de la pizza, más el número de ingredientes. En particular el costo total se calcula sumando: - un costo fijo de preparación - un costo base variable que es proporcional al tamaño de la pizza - un costo adicional por cada ingrediente extra. Por simplicidad se supone que cada ingrediente extra tiene el mismo costo por unidad de área. 18.- Diseñar un pseudocódigo que calcule el promedio ponderado para alumno del ITT . El cálculo se hace de la siguiente forma: EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


86 Nova32 Development Software Berly Desktop 2.0

- Se multiplica cada calificación por los créditos de cada materia - El resultado anterior se suma con los resultados de todas las materias, por separado se suman los créditos de cada materia y finalmente se divide la suma de todas las materias por sus respectivos créditos, entre la suma de todos los créditos. 19.- Calcule la suma de los términos de la serie FIBONACCI cuyos valores se encuentran entre 100 y 10,000.

20.- Calcule exactamente el número de días vividos por una persona hasta la fecha. Contemplar los años bisiestos.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


87 Nova32 Development Software Berly Desktop 2.0

ARREGLOS

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


88 Nova32 Development Software Berly Desktop 2.0

Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo tipo.

Los arreglos se caracterizan por:

Almacenan los elementos en posiciones contiguas de memoria

Tienen un mismo nombre de variable que representa a todos los elementos.

Para hacer referencia a esos elementos es necesario utilizar un índice que especifica el lugar que ocupa cada elemento dentro del archivo.

Unidimensionales (Vectores) Tipo de Arreglos Bidimensionales (Matrices)

VECTORES

Es un arreglo de “N” elementos organizados en una dimensión donde “N” recibe el nombre de longitud o tamaño del vector. Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del índice (entre corchetes), el cual indica una posición en particular del vector. Por ejemplo:

VECTOR set ARRAY[1..5] OF integer; EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


89 Nova32 Development Software Berly Desktop 2.0

Dónde: VECTOR………… Nombre del arreglo 4……………

Numero de datos que constituyen el arreglo

Representación gráfica de un vector 5 4 3 2 1

Problemas propuestos

1) Calcular el promedio de 50 valores almacenados en un vector. Determinar además cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores que el promedio y una lista de valores mayores que el promedio.

2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector A con el elemento uno del vector B y así sucesivamente hasta 45, almacenar el resultado en un vector C, e imprimir el vector resultante.

3) Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor almacenado en el vector. Suponga que todos los elementos del vector son diferentes. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


90 Nova32 Development Software Berly Desktop 2.0

4) Almacenar 500 números en un vector, elevar al cuadrado cada valor almacenado en el vector, almacenar el resultado en otro vector. Imprimir el vector original y el vector resultante.

5) Almacenar 300 números en un vector, imprimir cuantos son ceros, cuántos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.

6) Almacenar 150 números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.

7) Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo son. Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.

8) Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba “SI” si el vector esta ordenado ascendentemente o “NO” si el vector no está ordenado

9) Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector X, el cual tiene almacenados 80 elementos. Escribir la posición donde se encuentra almacenado el número en el vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.

10) Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique el primer elemento de A con el último elemento de B y luego el segundo elemento de A por el diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


91 Nova32 Development Software Berly Desktop 2.0

11) Diseñe un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros números de la serie Fibonacci.

MATRICES Es un arreglo de M * N elementos organizados en dos dimensiones donde “M” es el número de filas o reglones y “N” el número de columnas.

Para representar una matriz se necesita un nombre de matriz se necesita un nombre de matriz acompañado de dos índices. //[R,C] MATRIX set ARRAY[1..4,1..4]

OF decimal;

Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato.

Representación gráfica de una matriz Fila o Renglon [R]

Mat [R,C] 1,1 2,1 3,1 4,1

1,2 2,2 3,2 4,2

1,3 2,3 3,3 4,3

1,4 2.4 3,4 4,4 Columna [C]

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


92 Nova32 Development Software Berly Desktop 2.0

Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los índices y se utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos ciclos se les llama ciclos anidados (un ciclo dentro de otro ciclo).

Problemas propuestos

1)Hacer un algoritmo que almacene números en una matriz de 5 * 6. Imprimir la suma de los números almacenados en la matriz.

2)Hacer un algoritmo que llene una matriz de 10 * 10 y determine la posición [renglón] [columna] del número mayor almacenado en la matriz. Los números son diferentes.

3)Hacer un algoritmo que llene una matriz de 7 * 7. Calcular la suma de cada renglón y almacenarla en un vector, la suma de cada columna y almacenarla en otro vector.

4)Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas e imprimir que columna tuvo la máxima suma y la suma de esa columna.

5)Hacer un algoritmo que llene una matriz de 5 * 5 y que almacene la diagonal principal en un vector. Imprimir el vector resultante.

6)Hacer un algoritmo que llene una matriz de 10 * 10 y que almacene en la diagonal principal unos y en las demás posiciones ceros.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


93 Nova32 Development Software Berly Desktop 2.0

7)Hacer un algoritmo que llene una matriz de 6 * 8 y que almacene toda la matriz en un vector. Imprimir el vector resultante.

8)Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de los renglones y la suma de las columnas en un vector. Imprimir el vector resultante.

9)Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los números almacenados son ceros, cuántos son positivos y cuantos son negativos.

10) Diseñe un pseudocódigo que escriba el número de la hilera cuya suma sea mayor que las demás hileras. Suponga que todas las hileras suman diferente cantidad.

11) El dueño de una cadena de tiendas de artículos deportivos desea controlar sus ventas por medio de una computadora. Los datos de entrada son: a) El número de la tienda (1 a 50) b) Un número que indica el deporte del articulo (1 a 20) c) El costo del artículo. Hacer un pseudocódigo que escriba al final del día lo siguiente 1. Las ventas totales en el día para cada tienda 2.Las ventas totales para cada uno de los deportes. 3. Las ventas totales de todas las tiendas.

12) El departamento de policía de la ciudad de Tuxtepec ha acumulado información referente a las infracciones de los límites de velocidad durante un determinado periodo de tiempo. El departamento ha dividido la ciudad en cuatro cuadrantes y desea realizar una estadística de las infracciones a los límites de velocidad en cada uno de ellos. Para cada infracción se ha preparado una tarjeta que contiene la siguiente información:

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


94 Nova32 Development Software Berly Desktop 2.0

- número de registro del vehículo; - cuadrante en el que se produjo la infracción - límite de velocidad en milla por hora Diseñe un diagrama para producir 2 informes; el 1o. Que contiene una lista de la multa de velocidad recolectada, donde la multa se calcula como la suma del costo de la corte ($20,000) mas $ 1,250 por cada mph que exceda la velocidad limite. Prepare una tabla con los siguientes resultados:

INFRACCIONES A LOS LIMITES DE VELOCIDAD

Registro del Vehículo

Velocidad registrada (MPH)

Velocidad

Multa

limite

Este informe debe ser seguido de un segundo en el cual se proporcione un análisis de las infracciones por cuadrante. Para cada uno de los 4 cuadrantes mencionados,debe darse el número de infracciones y la multa promedio.

13) Se tiene almacenada la matriz M (50,5) la cual contiene la información sobre las calificaciones de la materia de Contabilidad. Diseñe un pseudocódigo que imprima: a).- Cantidad de alumnos que aprobaron la materia. B).- Cantidad de alumnos que tienen derecho a nivelación. C).- El (o los) numero (s) de control de lo(s) alumno(s) que haya (n) obtenido la máxima calificación final.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


95 Nova32 Development Software Berly Desktop 2.0

BIBLIOTECA ESTANDAR BERLY 2.0

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


96 Nova32 Development Software Berly Desktop 2.0

Berly dispone de un conjunto de funciones prediseñadas para facilitar su trabajo como programador de aplicaciones EXIRION OS, recordemos que Berly Desktop es un lenguaje para el desarrollo de sistemas de gestión, por lo cual no hay funciones matemáticas avanzadas, trigonometrías o en general de ciencias, en cambio Berly intenta incluir un rico repertorio de funciones, lo más posible útiles en el mundo del sistema operativo EXIRION, para lo cual se describe a continuación toda la Biblioteca Estandar de Berly 2.0

LIBRERÍA: runtime

CONSTANTES Black Blink Blue Brown BW40 BW80 C40 C80 CO40 CO80 Cyan DarkGray Font8x8 Green LightBlue LightCyan LightGray LightGreen LightMagenta LightRed Magenta Mono Red ScreenHeight ScreenWidth White Yellow

Black color attribute Blink attribute Blue color attribute Brown color attribute 40 columns black and white screen mode. 80 columns black and white screen mode. 40 columns color screen mode. 80 columns color screen mode. 40 columns color screen mode. 80 columns color screen mode. Cyan color attribute Dark gray color attribute Internal ROM font mode Green color attribute Light Blue color attribute Light cyan color attribute Light gray color attribute Light green color attribute Light magenta color attribute Light red color attribute Magenta color attribute Monochrome screen mode (hercules screens) Red color attribute Current screen height. Current screen width White color attribute Yellow color attribute

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


97 Nova32 Development Software Berly Desktop 2.0

TIPOS tcrtcoord

Type to denote SCREEN coordinates

PROCESOS Y FUNCIONES

AssignCrt ClrEol ClrScr cursorbig cursoroff cursoron Delay DelLine GotoXY HighVideo InsLine KeyPressed LowVideo NormVideo NoSound ReadKey Sound TextBackground TextColor TextMode WhereX WhereY Window

Assign file to SCREEN. Clear from cursor position till end of line. Clear current window. Show big cursor Hide cursor Display cursor Delay program execution. Delete line at cursor position. Set cursor position on screen. Switch to highlighted text mode Insert an empty line at cursor position Check if there is a keypress in the keybuffer Switch to low intensity colors. Return to normal (startup) modus Stop system speaker Read key from keybuffer Sound system speaker Set text background Set text color Set screen mode. Return X (horizontal) cursor position Return Y (vertical) cursor position Create new window on screen.

VARIABLES GLOBALES

CheckBreak CheckEOF CheckSnow DirectVideo LastMode

Check for CTRL-Break keystroke. Not used. Check for EOF on standard input. Not used. Check snow on CGA screens. Not used. Use direct video access. EXIRION only Last screen mode.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


98 Nova32 Development Software Berly Desktop 2.0

TextAttr WindMax WindMaxX WindMaxY WindMin WindMinX WindMinY

Mask to filter text attribute Lower right corner of currently defined window X coordinate of lower right corner of the defined window Y coordinate of lower right corner of the defined window Upper left corner of currently defined window X coordinate of upper left corner of the defined window Y coordinate of upper left corner of the defined window

LIBRERÍA: exirion CONSTANTES anyfile archive directory fauxiliary fcarry FileNameLen filerecnamelength fmclosed fminout fminput fmoutput foverflow fparity fsign fzero hidden readonly sysfile TextRecBufSize TextRecNameLength volumeid

Match any file attribute Archive file attribute Directory file attribute CPU auxiliary flag. Not used. CPU carry flag. Not used. Maximum length of a filename Maximum length of FileName part in FileRec File is closed File is read and write File is read only File is write only CPU overflow flag. Not used. CPU parity flag. Not used. CPU sign flag. Not used. CPU zero flag. Not used. Hidden file attribute Read-Only file attribute System file attribute Size of default buffer in TextRec Maximum length of filename in TextRec Volumd ID file attribute

TIPOS ComStr DateTime DirStr ExtStr FileRec NameStr

Command-line string type Record containing a date/time description Full directory string type. Filename extension string type. Record describing an untyped file Fill filename string type.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


99 Nova32 Development Software Berly Desktop 2.0

PathStr Registers SearchRec TextBuf TextRec TLineEndStr

Full File path string type. Record to keep CPU registers for exirion all. Unused. File Search Results record Type for default buffer in TextRec Record describing Text files End-of-line string

PROCESOS Y FUNCIONES AddDisk DiskFree DiskSize DosExitCode DosVersion DTToUnixDate EnvCount EnvStr Exec FExpand FindClose FindFirst FindNext FSearch FSplit GetCBreak GetDate GetEnv GetFAttr GetFTime GetIntVec GetLongName GetMsCount GetShortName GetTime GetVerify Intr Keep MSDos PackTime SetCBreak SetDate SetFAttr SetFTime SetIntVec

Add disk definition to list if drives (Unix only, EXIRION not support) Get free size on Disk. Get total size of disk. Exit code of last executed program. Current EXIRION/OS version Convert a DateTime to unix timestamp Return the number of environment variables Return environment variable by index Execute another program, and wait for it to finish. Expand a relative path to an absolute path Dispose resources allocated by a FindFirst/FindNext sequence. Start search for one or more files. Find next matching file after FindFirst Search a file in searchpath Split a full-path filename in parts. Get control-Break flag Get the current date Get environment variable by name. Get file attributes Get file last modification time. Get interrupt vector Get the long filename of a OS 8.3 filename. Number of milliseconds since a starting point. Get the short (8.3) filename of a long filename. Return the current time Get verify flag Execute interrupt Terminate and stay resident. Execute OS system call Pack DateTime value to a packed-time format. Set Control-Break flag status Set system date Set file attributes Set file modification time. Set interrupt vector

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


100 Nova32 Development Software Berly Desktop 2.0

SetTime SetVerify SwapVectors UnixDateToDt UnpackTime weekday

Set system time Set verify flag Swap interrupt vectors Convert a unix timestamp to a DateTime record Unpack packed file time to a DateTime value Return the day of the week

VARIABLES GLOBALES DosError

Last EXIRION/OS error

LIBRERÍA: ext32 CONSTANTES ConfigExtension DateDelta DriveDelim EmptyStr EmptyWideStr faAnyFile faArchive faDirectory faHidden faReadOnly faSymLink faSysFile faVolumeId feInvalidHandle filerecnamelength fmOpenRead fmOpenReadWrite fmOpenWrite fmShareCompat fmShareDenyNone fmShareDenyRead fmShareDenyWrite fmShareExclusive fsFromBeginning fsFromCurrent fsFromEnd GUID_NULL

Default application configuration file extension. Days between 1/1/0001 and 12/31/1899 Drive letter delimiter Empty String Constant Empty wide string. Match any file Archive bit is set File is a directory Hidden file. Read-Only file. File is a symlink System file (EXIRION/Windows only) Volume id (Fat filesystem, EXIRION/Windows only) FileOpen error value Length of filerec filename field. Open file in read-only mode Open file in read/write mode. Open file in write-only mode Open file in EXIRION share-compatibility mode Do not lock file. Lock file so other processes cannot read. Lock file so other processes can only read. Lock file for exclusive use Start seek operation from beginning of file. Start seek operation from current position in file. Start seek operation from end of file. NULL GUID constant

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


101 Nova32 Development Software Berly Desktop 2.0

HexDisplayPrefix HoursPerDay JulianEpoch LeadBytes MaxCurrency MaxDateTime MAX_PATH MinCurrency MinDateTime MinsPerDay MinsPerHour MonthDays MSecsPerDay MSecsPerSec NullStr PathDelim PathSep pfBCB4Produced pfDelphi4Produced pfDesignOnly pfExeModule pfIgnoreDupUnits pfLibraryModule pfModuleTypeMask pfNeverBuild pfPackageModule pfProducerMask pfProducerUndefined pfRunOnly pfV3Produced RTL_SIGBUS RTL_SIGDEFAULT RTL_SIGFPE RTL_SIGILL RTL_SIGINT RTL_SIGLAST RTL_SIGQUIT RTL_SIGSEGV SecsPerDay SecsPerMin SwitchChars SysConfigDir TextRecBufSize TextRecNameLength

String to prepend to hexadecimal values Number of hours in a day. Starting point of the Julian calendar Lead bytes in Multi-Byte character sets Maximum currency value Maximum TDateTime value. Maximum length of a fully qualified filename (including path) Minimum Currency value Minimum TDateTime value. Number of minutes per day. Number of minutes per hour. Array with number of days in the months for leap and nonleap years. Number of milliseconds per day Number of milliseconds per second Pointer to an empty string Path (directory) delimiter. Path separator. (Separates paths in search path lists) Not used. Not used. Package is a design-time only package Package is an executable Ignore duplicate units in package Package is a library Mask for module type flags Never-build flag was specified when compiling package Package is a real package (not exe) Mask for producer flags Not used. Package is a run-time only package Not used. Bus error signal number (Unix only) Default signal handler (Unix only) Floating Point Error signal number (Unix only) Illegal instruction signal number (Unix only) INTERRUPT signal number (Unix only) Last signal number (Unix only) QUIT signal number (Unix only) Segmentation fault signal number (Unix only) Number of seconds per day Number of seconds per minute Characters which start a command-line switch System configuration directory. Buffer size of text file record. Length of text file record filename field

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


102 Nova32 Development Software Berly Desktop 2.0

ufImplicitUnit ufMainUnit ufOrgWeakUnit ufPackageUnit ufWeakPackageUnit ufWeakUnit UnixDateDelta UnixEpoch

Unit was implicitly imported into package (did not appear in package contains list) Unit is the main unit of the package Unit is the original weak packaged unit Unit is a packaged unit (appeared in package contains list) Weak (original or not) packaged unit Unit is a weak packaged unit Number of days between 1.1.1900 and 1.1.1970 Starting point of the unix calendar (1/1/1970)

TIPOS EHeapException ExceptClass FileRec Int128Rec Int64Rec LongRec OWordRec PByteArray PDayTable PString PSysCharSet PWordarray TBeepHandler TByteArray TBytes TCreateGUIDFunc TDayTable TEventType TEventTypes TExecuteFlags TextBuf TextRec TFilename TFilenameCaseMatch TFileRec TFileSearchOption TFileSearchOptions TFloatFormat TFloatRec TFloatValue TFormatSettings TGetAppNameEvent TGetTempDirEvent

Heap exception Exception Class reference Record describing an untyped file. Record representing a 128-bit unsigned integer. Record describing an Int64 value Record describing a longint value Identical to the Int128Rec record. Pointer to an array of byte. Pointer to TDayTable type. Pointer to a ansistring Pointer to TSysCharSet type. Pointer to an array of word. Beep handler prototype Array of bytes Array of byte Callback prototype to create GUIDs Array of day names. Log event type Set of TEventType Flags for ExecuteProcess Text record buffer array type Record describing a text file type Filename type Type describing how ExpandFileNameCase found the resulting filename Record describing an untyped file. Options for the FileSearch call. Set of TFileSearchOption Formats for the FloatToText function. Record descriing a float value Type of float to return in the buffer for TextToFloat. Record with all the strings that determine formatting Callback type to get customized application name. Function prototype for OnGetTempDir handler.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


103 Nova32 Development Software Berly Desktop 2.0

TGetTempFileEvent TGetVendorNameEvent THandle TIntegerSet TLineEndStr TMbcsByteType TMonthNameArray TProcedure TReplaceFlags TSearchRec TSignalState TSysCharSet TSysLocale TTerminateProc TTextRec TTimeStamp TWeekNameArray TWordArray WordRec

Function prototype for OnGetTempFile handler. Prototype for OnGetVendorName event. File Handle type. Set with size of integer. End-of-line string Type of multi-byte character set. Array type for array of month variables Procedural type Flags for StringReplace function Record describing a search handle or result State of the signal handler (unix only) Set of characters. Type describing the current locale Terminate procedure procedural variable. Record describing a text file. TimeStamp structure

Record describing a word value.

CLASES EAbort EAbstractError EAccessViolation EArgumentException EArgumentOutOfRangeException EAssertionFailed EBusError EControlC EConvertError EDivByZero EExternal EExternalException EFormatError EHeapMemoryError EInOutError EInterror EIntfCastError EIntOverflow EInvalidCast EInvalidContainer EInvalidInsert EInvalidOp

Abort error. Abstract error. Access Violation error Invalid argument passed to a function Argument out of valid range passed to a function Assertion failed error. Bus error exception Control-C (abort) was pressed on the console. Conversion error. Division by zero error. External Exception. External exception Formatting error exception Heap memory error Input/Output error Integer operation error. Invalid interface cast error. Integer overflow error. Invalid typecast error. Invalid container error. Invalid insert error. Invalid operation.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


104 Nova32 Development Software Berly Desktop 2.0

EInvalidPointer EMathError ENoThreadSupport ENotImplemented ENoWideStringSupport EOSError EOutOfMemory EOverflow EPackageError EPrivilege EPropReadOnly EPropWriteOnly ERangeError ESafecallException EStackOverflow EUnderflow EVariantError Exception EZeroDivide IReadWriteSync TMultiReadExclusiveWriteSynchronizer TSimpleRWSync

Invalid pointer operation Mathematical error No Thread support error. Exception raised in case of a not implemented feature. Exception raised if no widestring support is available in the executable Operating system error. Out of memory error. Float overflow error. Package error. Privileged instruction error. Read-only property error. Write-only property error. Range check error. SafeCall exception. Stack overflow error. Float underflow error Variant error. Base class of all exceptions. Division by zero error. Read/Write synchronizer Standard implementation of a IReadWriteSync interface Read/Write synchronizing object.

PROCESOS Y FUNCIONES AbandonSignalHandler Abort AddDisk AddTerminateProc AdjustLineBreaks AnsiCompareFileName AnsiCompareStr AnsiCompareText AnsiDequotedStr AnsiExtractQuotedStr AnsiLastChar AnsiLowerCase AnsiLowerCaseFileName

Abandon the signal handler Abort program execution. Add a disk to the list of known disks (Unix only) Add a procedure to the exit chain. Convert possible line-endings to the currently valid line ending. Compare 2 filenames. Compare 2 ansistrings, case sensitive, ignoring accents characters. Compare 2 ansistrings, case insensitive, ignoring accents characters. Removes the first quoted string from a string. Return a pointer to the last character of a string. Return a lowercase version of a string. Convert filename to lowercase.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


105 Nova32 Development Software Berly Desktop 2.0

AnsiPos AnsiQuotedStr AnsiSameStr AnsiSameText AnsiStrComp AnsiStrIComp AnsiStrLastChar AnsiStrLComp AnsiStrLIComp AnsiStrLower AnsiStrPos AnsiStrRScan AnsiStrScan AnsiStrUpper AnsiUpperCase AnsiUpperCaseFileName AppendStr ApplicationName AssignStr BCDToInt Beep BoolToStr ByteToCharIndex ByteToCharLen ByteType CallTerminateProcs ChangeFileExt CharToByteLen CompareMem CompareMemRange CompareStr

Return Position of one ansistring in another. Return a quoted version of a string. Checks whether 2 strings are the same (case sensitive) Checks whether 2 strings are the same (case insensitive) Compare two null-terminated strings. Case sensitive. Compare two null-terminated strings. Case insensitive. Return a pointer to the last character of a string. Compare a limited number of characters of 2 strings Compares a given number of characters of a string, case insensitive. Convert a null-terminated string to all-lowercase characters. Return position of one null-terminated substring in another Find last occurrence of a character in a nullterminated string. Find first occurrence of a character in a nullterminated string. Convert a null-terminated string to all-uppercase characters. Return an uppercase version of a string, taking into account special characters. Convert filename to uppercase. Append one ansistring to another. Return a default application name Assigns an ansistring to a null-terminated string. Convert a BCD coded integer to a normal integer. Sound the system bell. Convert a boolean value to a string. Convert a character index in Bytes to an Index in characters Convert a length in bytes to a length in characters. Return the type of byte in an ansistring for a multibyte character set Call the exit chain procedures. Change the extension of a filename. Convert a length in characters to a length in bytes. Compare two memory areas. Compare 2 memory locations Compare 2 ansistrings case-sensitively, ignoring special characters.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


106 Nova32 Development Software Berly Desktop 2.0

CompareText ComposeDateTime ConcatPaths CreateDir CreateGUID CurrentYear CurrToStr CurrToStrF Date DateTimeToFileDate DateTimeToStr DateTimeToString DateTimeToSystemTime DateTimeToTimeStamp DateToStr DayOfWeek DecodeDate DecodeDateFully DecodeTime DeleteFile DirectoryExists DiskFree DiskSize DisposeStr DoDirSeparators EncodeDate EncodeTime ExceptAddr ExceptFrameCount ExceptFrames ExceptionErrorMessage ExceptObject ExcludeLeadingPathDelimiter ExcludeTrailingBackslash ExcludeTrailingPathDelimiter

Compare 2 ansistrings case insensitive. Add a date and time Concatenate an array of paths to form a single path Create a new directory Create a new GUID Return the current year Convert a currency value to a string. Format a currency to a string Return the current date. Convert a TDateTime value to a file age (integer) Converts a TDateTime value to a string using a predefined format. Converts a TDateTime value to a string with a given format. Converts a TDateTime value to a systemtime structure. Converts a TDateTime value to a TimeStamp structure. Converts a TDateTime value to a date string with a predefined format. Returns the day of the week. Decode a TDateTime to a year,month,day triplet Decode a date with additional date of the week. Decode a TDateTime to a hour,minute,second,millisec quartet Delete a file from the filesystem. Check whether a directory exists in the file system. Return the amount of free diskspace Return the total amount of diskspace. Dispose an ansistring from the heap. Convert known directory separators to the current directory separator. Encode a Year,Month,Day to a TDateTime value. Encode a Hour,Min,Sec,millisec to a TDateTime value. Current exception address. Number of frames included in an exception backtrace Return a message describing the exception. Current Exception object. Strip the leading path delimiter of a path Strip trailing directory separator from a pathname, if needed. Strip trailing directory separator from a pathname, if needed.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


107 Nova32 Development Software Berly Desktop 2.0

ExecuteProcess ExeSearch ExpandFileName ExpandFileNameCase ExpandUNCFileName ExtractFileDir ExtractFileDrive ExtractFileExt ExtractFileName ExtractFilePath ExtractRelativepath ExtractShortPathName FileAge FileClose FileCreate FileDateToDateTime FileExists FileGetAttr FileGetDate FileIsReadOnly FileOpen FileRead FileSearch FileSeek FileSetAttr FileSetDate FileTruncate FileWrite FindClose FindCmdLineSwitch FindFirst FindNext FloattoCurr FloatToDateTime FloatToDecimal FloatToStr FloatToStrF FloatToText

Execute another process (program). Search for an executable Expand a relative filename to an absolute filename. Expand a filename entered as case insensitive to the full path as stored on the disk. Expand a relative filename to an absolute UNC filename. Extract the drive and directory part of a filename. Extract the drive part from a filename. Return the extension from a filename. Extract the filename part from a full path filename. Extract the path from a filename. Extract a relative path from a filename, given a base directory. Returns a 8.3 path name Return the timestamp of a file. Close a file handle. Create a new file and return a handle to it. Convert a FileDate value to a TDateTime value. Check whether a particular file exists in the filesystem. Return attributes of a file. Return the file time of an opened file. Check whether a file is read-only. Open an existing file and return a filehandle Read data from a filehandle in a buffer. Search for a file in a path. Set the current file position on a file handle. Set the attributes of a file. Set the date of a file. Truncate an open file to a given size. Write data from a buffer to a given filehandle. Close a find handle Check whether a certain switch is present on the command-line. Start a file search and return a findhandle Find the next entry in a findhandle. Convert a float to a Currency value. Convert a float to a TDateTime value. Convert a float value to a TFloatRec value. Convert a float value to a string using a fixed format. Convert a float value to a string using a given format. Return a string representation of a float, with a

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


108 Nova32 Development Software Berly Desktop 2.0

FloatToTextFmt FmtStr ForceDirectories Format FormatBuf FormatCurr FormatDateTime FormatFloat FreeAndNil GetAppConfigDir GetAppConfigFile GetCurrentDir GetDirs GetEnvironmentString GetEnvironmentVariable GetEnvironmentVariableCount GetFileHandle GetLastOSError GetLocalTime GetLocalTimeOffset GetModuleName GetTempDir GetTempFileName GetUserDir GuidCase GUIDToString HashName HookSignal IncAMonth IncludeLeadingPathDelimiter IncludeTrailingBackslash IncludeTrailingPathDelimiter IncMonth InquireSignal IntToHex

given format. Convert a float value to a string using a given mask. Format a string with given arguments. Create a chain of directories Format a string with given arguments. Format a string with given arguments and store the result in a buffer. Format a currency Return a string representation of a TDateTime value with a given format. Format a float according to a certain mask. Free object if needed, and set object reference to Nil Return the appropriate directory for the application's configuration files. Return an appropriate name for an application configuration file. Return the current working directory of the application. Return a list of directory names from a path. Return an environment variable by index. Return the value of an environment variable. Return the number of variables in the environment. Extract OS handle from an untyped file or text file. Return the last code from the OS. Get the local time. Return the name of the current module Return name of system's temporary directory Return the name of a temporary file. Returns the current user's home directory. Return the index of a GUID in an array of GUID values Convert a TGUID to a string representation. Calculate a hash from a null-terminated string Hook a specified signal Increase a date with a certain amount of months Prepend a path delimiter if there is not already one. Add trailing directory separator to a pathname, if needed. Add trailing directory separator to a pathname, if needed. Increases the month in a TDateTime value with a given amount. Check whether a signal handler is set (unix only) Convert an integer value to a hexadecimal string.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


109 Nova32 Development Software Berly Desktop 2.0

IntToStr IsDelimiter IsEqualGUID IsLeapYear IsPathDelimiter IsValidIdent LastDelimiter LeftStr LoadStr LowerCase MSecsToTimeStamp NewStr Now OutOfMemoryError QuotedStr RaiseLastOSError RemoveDir RenameFile ReplaceDate ReplaceTime RightStr SafeLoadLibrary SameFileName SameText SetCurrentDir SetDirSeparators ShowException Sleep SScanf StrAlloc StrBufSize StrByteType strcat StrCharLength

Convert an integer value to a decimal string. Check whether a given string is a delimiter character. Check whether two TGUID variables are equal. Determine whether a year is a leap year. Is the character at the given position a pathdelimiter ? Check whether a string is a valid identifier name. Return the last occurrence of a set of delimiters in a string. Return a number of characters starting at the left of a string. Load a string from the resource tables. Return a lowercase version of a string. Convert a number of milliseconds to a TDateTime value. Allocate a new ansistring on the heap. Returns the current date and time. Raise an EOutOfMemory exception Return a quotes version of a string. Raise an exception with the last Operating System error code. Remove a directory from the filesystem. Rename a file. Replace the date part of a date/time stamp Replace the time part Return a number of characters from a string, starting at the end. Load a library safely Are two filenames referring to the same file ? Checks whether 2 strings are the same (case insensitive) Set the current directory of the application. Set the directory separators to the known directory separators. Show the current exception to the user. Suspend execution of a program for a certain time. Scan a string for substrings and return the substrings Allocate a null-terminated string on the heap. Return the size of a null-terminated string allocated on the heap. Return the type of byte in a null-terminated string for a multi-byte character set Concatenate 2 null-terminated strings. Return the length of a null-terminated string in

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


110 Nova32 Development Software Berly Desktop 2.0

strcomp StrCopy StrDispose strecopy strend StrFmt stricomp StringReplace StringToGUID strlcat strlcomp StrLCopy StrLen StrLFmt strlicomp strlower strmove strnew StrNextChar StrPas StrPCopy StrPLCopy strpos strrscan strscan StrToBool StrToBoolDef StrToCurr StrToCurrDef

characters. Compare 2 null-terminated strings, case sensitive. Copy a null-terminated string Dispose of a null-terminated string on the heap. Copy a null-terminated string, return a pointer to the end. Return a pointer to the end of a null-terminated string Format a string with given arguments, store the result in a buffer. Compare 2 null-terminated strings, case insensitive. Replace occurrences of one substring with another in a string. Convert a string to a native TGUID type. Concatenate 2 null-terminated strings, with length boundary. Compare limited number of characters of 2 nullterminated strings Copy a null-terminated string, limited in length. Length of a null-terminated string. Format a string with given arguments, but with limited length. Compare limited number of characters in 2 nullterminated strings, ignoring case. Convert null-terminated string to all-lowercase. Move a null-terminated string to new location. Allocate room for new null-terminated string. Returns a pointer to the location of the next empty character in a null-terminated string Convert a null-terminated string to an ansistring. Copy an ansistring to a null-terminated string. Copy a limited number of characters from an ansistring to a null-terminated string. Find position of one null-terminated substring in another. Find last occurrence of a character in a nullterminated string. Find first occurrence of a character in a nullterminated string. Convert a string to a boolean value Convert string to boolean value, returning default in case of error Convert a string to a currency value Convert a string to a currency value, using a default value

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


111 Nova32 Development Software Berly Desktop 2.0

StrToDate StrToDateDef StrToDateTime StrToDateTimeDef StrToFloat StrToFloatDef StrToInt StrToInt64 StrToInt64Def StrToIntDef StrToQWord StrToQWordDef StrToTime StrToTimeDef strupper Supports SysErrorMessage SystemTimeToDateTime TextToFloat Time TimeStampToDateTime TimeStampToMSecs TimeToStr Trim TrimLeft TrimRight TryEncodeDate TryEncodeTime TryFloatToCurr TryStringToGUID TryStrToBool TryStrToCurr TryStrToDate TryStrToDateTime TryStrToFloat TryStrToInt

Convert a date string to a TDateTime value. Convert string to date, returning a default value Convert a date/time string to a TDateTime value. Convert string to date/time, returning a default value Convert a string to a floating-point value. Convert a string to a float, with a default value. Convert a string to an integer value. Convert a string to an Int64 value. Convert a string to an Int64 value, with a default value Convert a string to an integer value, with a default value. Convert a string to a QWord. Try to convert a string to a QWord, returning a default value in case of failure. Convert a time string to a TDateTime value. Convert string to time, returning a default value Convert null-terminated string to all-uppercase Check whether a class or given interface supports an interface Format a system error message. Convert a system time to a TDateTime value. Convert a buffer to a float value. Returns the current time. Convert a TimeStamp value to a TDateTime value. Converts a timestamp to a number of milliseconds. Convert a TDateTime time to a string using a predefined format. Trim whitespace from the ends of a string. Trim whitespace from the beginning of a string. Trim whitespace from the end of a string. Try to encode a date, and indicate success. Try to encode a time, and indicate success. Try to convert a float value to a currency value and report on success. Try to transform a string to a GUID Try to convert a string to a boolean value Try to convert a string to a currency Try to convert a string with a date indication to a TDateTime value Try to convert a string with date/time indication to a TDateTime value Try to convert a string to a float. Try to convert a string to an integer, and report on success.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


112 Nova32 Development Software Berly Desktop 2.0

TryStrToInt64 TryStrToQWord TryStrToTime UnhookSignal UpperCase VendorName WideCompareStr WideCompareText WideFmtStr WideFormat WideFormatBuf WideLowerCase WideSameStr WideSameText WideUpperCase WrapText

Try to convert a string to an int64 value, and report on success. Try to convert a string to a QWord value, and report on success Try to convert a string with a time indication to a TDateTime value UnHook a specified signal Return an uppercase version of a string. Return Application vendor Name Compare two widestrings (case sensitive) Compare two widestrings (ignoring case). Widestring format Format a wide string. Format widestring in a buffer. Change a widestring to all-lowercase. Check whether two widestrings are the same (case sensitive) Check whether two widestrings are the same (ignoring case) Change a widestring to all-lowercase. Word-wrap a text.

VARIABLES GLOBALES CurrencyDecimals CurrencyFormat CurrencyString DateSeparator DecimalSeparator DefaultFormatSettings FalseBoolStrs FormatSettings ListSeparator LongDateFormat LongDayNames LongMonthNames LongTimeFormat NegCurrFormat OnBeep OnCreateGUID OnGetApplicationName OnGetTempDir OnGetTempFile OnGetVendorName OnShowException ShortDateFormat

Number of decimals in currency amounts. Format string for currencies. Name of currency. Date separator character (subject to locale). Decimal point separator. Storage for default settings False Strings used in StrToBool conversion Alias for DefaultFormatSettings Separator character for lists Long date format string (subject to locale). Full names of days. Full names of months. Long time format string (subject to locale) Format string for negative currencies. Event called by Beep to actually implement beep Callback to create GUID values Callback to get a customized application name. Handler for GetTempDir function. Handler for GetTempFileName function. Vendor name callback Callback to show unhandled exceptions. Short Date Format string (subject to locale).

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


113 Nova32 Development Software Berly Desktop 2.0

ShortDayNames ShortMonthNames ShortTimeFormat SysLocale ThousandSeparator TimeAMString TimePMString TimeSeparator TrueBoolStrs TwoDigitYearCenturyWindow

Names of days, abbreviated form. Names of months, abbreviated form. Short time format string (subject to locale). Variable with locale information Thousand grouping character. AM indicator string. PM indicator string. Time separator character. True Strings used in StrToBool conversion Window to determine what century 2 digit years are in.

LIBRERÍA: graph CONSTANTES AndPut AnsiToASCIITransTable BkSlashFill black blue BoldFont BottomText brown CenterLn CenterText CGA CGAC0 CGAC1 CGAC2 CGAC3 CGAHi ClipOff ClipOn CloseDotFill CopyPut CurrentDriver cyan D12bit D15bit D16bit

Draw operation: use AND Default ansi transliteration table. Fill style: Diagonal (backslash) lines Color code: black. Color code: blue Font number: Bold font. Vertical text alignment: Align text to bottom Color code: brown Line style: centered line Horizontal text alignment: Center text Graphic driver for CGA cards CGA Graphic driver mode C0 CGA Graphic driver mode C1 CGA Graphic driver mode C2 CGA Graphic driver mode C3 CGA Graphic driver Hi-res mode Viewport clipping off Viewport clipping on Fill style: Closely spaced dotted lines Draw operation: use Copy Currently used driver Color code: Cyan Mode: Depth 12 bit Mode: Depth 15 bit Mode: Depth 16 bit

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


114 Nova32 Development Software Berly Desktop 2.0

D1bit D24bit D2bit D32bit D4bit D64bit D6bit D8bit darkgray DashedLn Default DefaultFont Detect detectMode DottedLn DrawTextBackground EGA EGA64 EGA64Hi EGA64Lo EGABlack EGABlue EGABrown EGACyan EGADarkgray EGAGreen EGAHi EGALightblue EGALightcyan EGALightgray EGALightgreen EGALightmagenta EGALightred EGALo EGAMagenta EGAMono EGAMonoHi EGARed EGAWhite EGAYellow EmptyFill EuroFont fillpatternTable G1024x768x16 G1024x768x16M

Mode: Depth 1 bit Mode: Depth 24 bit Mode: Depth 2 bit Mode: Depth 32 bit Mode: Depth 4 bit Mode: Depth 64 bit Mode: Depth 6 bit Mode: Depth 8 bit Color code: Dark gray Line style: dashed line Default mode Font number: Normal font Mode: Detect mode. Mode: Autodetect optimal mode Line style: Dotted line Should the background of texts be drawn or should it be left untouched ? Graphic driver for EGA cards Graphic driver for EGA 64 cards EGA64 graphic driver high resolution mode EGA64 graphic driver low resolution mode Color code: EGA Black Color code: EGA blue Color code: EGA brown Color code: EGA cyan Color code: EGA dark gray Color code: EGA green EGA graphic driver high resolution mode Color code: EGA Light blue Color code: EGA Light cyan Color code: EGA Light gray Color code: EGA Light green Color code: EGA light magenta Color code: EGA light red EGA graphic driver low resolution mode Color code: EGA magenta Graphic driver for EGA monochrome cards EGAMono graphic driver high resolution mode Color code: EGA red Color code: EGA white Color code: EGA yellow Fill style: Do not fill Font number: ? Table with standard fill patterns Mode: Resolution 1024x768, 16 colors Mode: Resolution 1024x768, 16M colors

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


115 Nova32 Development Software Berly Desktop 2.0

G1024x768x16M32 G1024x768x256 G1024x768x32K G1024x768x64K G1152x864x16 G1152x864x16M G1152x864x16M32 G1152x864x256 G1152x864x32K G1152x864x64K G1280x1024x16 G1280x1024x16M G1280x1024x16M32 G1280x1024x256 G1280x1024x32K G1280x1024x64K G1600x1200x16 G1600x1200x16M G1600x1200x16M32 G1600x1200x256 G1600x1200x32K G1600x1200x64K G320x200x16 G320x200x16M G320x200x16M32 G320x200x256 G320x200x32K G320x200x64K G320x240x256 G320x400x256 G360x480x256 G640x200x16 G640x350x16 G640x480x16 G640x480x16M G640x480x16M32 G640x480x2 G640x480x256 G640x480x32K G640x480x64K G720x348x2 G800x600x16 G800x600x16M G800x600x16M32 G800x600x256 G800x600x32K

Mode: Resolution 1024x758, 16M 32-bit colors Mode: Resolution 1024x768, 256 colors Mode: Resolution 1024x768, 32K colors Mode: Resolution 1024x768, 64K colors Mode: Resolution 1152x864, 16 colors Mode: Resolution 1152x864, 16M colors Mode: Resolution 1152x864, 16M 32-bitcolors Mode: Resolution 1152x864, 256 colors Mode: Resolution 1152x864, 32K colors Mode: Resolution 1152x864, 64K colors Mode: Resolution 1280x1024, 16 colors Mode: Resolution 1280x1024, 16M colors Mode: Resolution 1280x1024, 16M 32-bit colors Mode: Resolution 1280x1024, 256 colors Mode: Resolution 1280x1024, 32K colors Mode: Resolution 1280x1024, 64K colors Mode: Resolution 1600x1200, 16 colors Mode: Resolution 1600x1200, 16M colors Mode: Resolution 1600x1200, 16M 32-bit colors Mode: Resolution 1600x1200, 256 colors Mode: Resolution 1600x1200, 32K colors Mode: Resolution 1600x1200, 64K colors Mode: Resulution 320x200, 16 colors Mode: Resolution 320x200, 16M colors Mode: Resolution 320x200, 16M 32-bit colors Mode: Resolution 320x200, 256 colors Mode: Resolution 320x200, 32K colors Mode: Resolution 320x200, 64K colors Mode: Resolution 320x240, 256 colors Mode: Resolution 320x400, 256 colors Mode: Resolution 360x480, 256 colors Mode: Resolution x, colors Mode: Resolution x, colors Mode: Resolution x, colors Mode: Resolution 640x480, 16M colors Mode: Resolution 640x480, 16M 32-bit colors Mode: Resolution 640x480, 2 colors Mode: Resolution 640x480, 256 colors Mode: Resolution 640x480, 32K colors Mode: Resolution 640x480, 64K colors Mode: Resolution 720x348, 2 colors Mode: Resolution 800x600, 16 colors Mode: Resolution 800x600, 16M colors Mode: Resolution 800x600, 16M 32-bit colors Mode: Resolution 800x600, 256 colors Mode: Resolution 800x600, 32K colors

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


116 Nova32 Development Software Berly Desktop 2.0

G800x600x64K GothicFont GraphStringTransTable green grError grFileNotFound grFontNotFound grInvalidDriver grInvalidFont grInvalidFontNum grInvalidMode grInvalidVersion grIOerror grNoFloodMem grNoFontMem grNoInitGraph grNoLoadMem grNoScanMem grNotDetected grOk HatchFill HercMono HercMonoHi highNewDriver highNewMode HorizDir InterleaveFill LCOMFont LeftText lightblue lightcyan lightgray lightgreen lightmagenta lightred LineFill lowNewDriver lowNewMode LowRes LtBkSlashFill LtSlashFill m1024x768 m1280x1024 m1600x1200 m2048x1536 m320x200

Mode: Resolution 800x600, 64K colors Font number: Gothic font Table used when transliterating strings. Color code: green Error: Unknown error. Error: File for driver not found. Error: font description file not found. Error: Invalid driver specified Error: Invalid font description Error: Invalid font number Error: Invalid mode specified. Error: Invalid version. Error: Unspecified Input/Output error. Error: Could not allocate memory for flood operation. Error: Not enough memory to load font. Error: Graphical system not initialized Error: Memory error. Error: Could not allocate memory for scan Error: Graphics device not detected. Graphical operation went OK. Fill style: Hatch lines Mode: Hercules, mono color Mode: Hercules card, monochrome, high resolution Mode: highest number for new driver Mode: Highest possible value of the new modes. Text write direction: Horizontal Fill style: Interleaving lines Font number: ? Horizontal text alignment: Align text left Color code: Light blue Color code: Light cyan Color code: Light gray Color code: Light green Color code: Light magenta Color code: Light red Fill style: Fill using horizontal lines Mode: lowest number for new driver Mode: Lowest possible value of the new modes. Mode: Low resolution. Fill style: Light diagonal (backslash) lines Fill style: Light diagonal (slash) lines Mode: Resolution 1024x768 Mode: Resolution 1280x1024 Mode: Resolution 1600x1200 Mode: Resolution 2048x1536 Mode: Resolution 320x200

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


117 Nova32 Development Software Berly Desktop 2.0

m320x256 m320x400 m512x384 m640x200 m640x256 m640x350 m640x400 m640x480 m800x600 m832x624 magenta MaxColors maxsmallint MCGA MCGAC0 MCGAC1 MCGAC2 MCGAC3 MCGAHi MCGAMed NormalPut NormWidth NotPut OrPut red resolutions RightText SansSerifFont ScriptFont SimpleFont SlashFill SmallFont SolidFill SolidLn ThickWidth TopOff TopOn TopText TriplexFont TSCRFont UserBitLn UserCharSize UserFill VertDir VESA VGA

Mode: Resolution 320x256 Mode: Resolution 320x400 Mode: Resolution 512x384 Mode: Resolution 640x200 Mode: Resolution 640x256 Mode: Resolution 640x350 Mode: Resolution 640x400 Mode: Resolution 640x480 Mode: Resolution 800x600 Mode: Resolution 832x624 Color code: Magenta Max amount of colors in a palette Maximum value for smallint type Graphic driver for MCGA cards MCGA Graphic driver mode C0 MCGA Graphic driver mode C1 MCGA Graphic driver mode C2 MCGA Graphic driver mode C3 MCGA Graphic driver high resolution mode MCGA Graphic driver medium resolution mode Draw operation: Use Normal (copy) operation Line width: Normal width Draw operation: use NOT Draw operation: use OR Color code: Red Array with actual resolutions of the new modes Horizontal text alignment: Align text right Font number: Sans Serif font Font number: Script font Font number: Simple font Fill style: Diagonal (slash) lines Font number: Small font Fill style: Solid fill. Line style: Solid line Line width: double width Top off Top on Vertical text alignment: Align text to top Font number: Triplex font Font number: Terminal font Line style: User defined User character size Fill style: User-defined fill. Text write direction: Vertical Mode: VESA graphics adaptor. Mode: VGA graphics adaptor.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


118 Nova32 Development Software Berly Desktop 2.0

VGAHi VGALo VGAMed white WideDotFill XHatchFill XORPut yellow

Mode: VGA high resolution (640x480) Mode: VGA low resolution (640x200) Mode: VGA medium resolution (640x350) Color code: White Fill style: Widely spaced dotted lines Fill style: Heavy hatch lines Draw operation: use XOR Color code: Yellow

TIPOS ArcCoordsType CircleProc clrviewproc defpixelproc ellipseproc FillPatternType FillSettingsType GetBkColorProc getimageproc getpixelproc getrgbpaletteproc getscanlineproc graphfreememprc graphgetmemprc graph_float hlineproc imagesizeproc initmodeproc lineproc LineSettingsType OutTextXYProc PaletteType patternlineproc PCharsetTransTable PModeInfo PointType putimageproc putpixelproc restorestateproc RGBRec savestateproc

Describe the last arc which was drawn on screen Standard circle drawing routine prototype. Standard clearviewport routine prototype Standard pixel drawing routine prototype. Standard ellipse drawing routine prototype. Bit pattern used when drawing lines. Set bits are drawn. Record describing fill mode GetBKColor callback prototype Standard GetImage procedure prototype. Standard pixel fetching routine prototype This routine prototype is a hook for GetRGBPalette Standard getscanline routine prototype Procedure prototype, used when heap memory is freed by the graph routines. Procedure prototype, used when heap memory is needed by the graph routines. The platform's preferred floating point size for fast graph operations Standard procedure prototype to draw a single horizontal line Standard ImageSize calculation procedure prototype. Standard routine prototype to initialize a mode. Standard line drawing routine prototype. Record describing current line drawing mode This routine prototype is a hook for OutTextXY Record describing palette. Standard procedure prototype to draw a patterned line Pointer to TCharsetTransTable array. Pointer to TModeInfo record Record describing a point in a 2 dimensional plane Standard PutImage procedure prototype. Standard pixel drawing routine prototype Standard routine prototype to restore the graphical state at a closegraph call. Record describing palette RGB color Standard routine prototype to save the graphical state before a

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


119 Nova32 Development Software Berly Desktop 2.0

setactivepageproc SetAllPaletteProc SetBkColorProc setrgbpaletteproc setvisualpageproc TCharsetTransTable TextSettingsType TModeInfo TNewModeInfo TResolutionRec ViewPortType vlineproc

mode is set. Standard SetActivePage procedure prototype. This routine prototype is a hook for SetAllPalette SetBKColor callback prototype This routine prototype is a hook for SetRGBPalette Standard SetVisualPage procedure prototype. Character transliteration table, with entries for 256 characters Record describing how texts are drawn. Record describing a graphical mode. Mode information for new modes.a Record describing resolution Record describing a viewport Standard procedure prototype to draw a single vertical line

PROCESOS Y FUNCIONES Arc Bar Bar3D ClearDevice Closegraph DetectGraph DrawPoly Ellipse FillEllipse FillPoly FloodFill GetArcCoords GetAspectRatio GetColor GetDefaultPalette GetDirectVideo GetDriverName GetFillPattern GetFillSettings GetGraphMode GetLineSettings GetMaxColor GetMaxMode GetMaxX GetMaxY GetModeName GetModeRange GetPalette GetPaletteSize GetTextSettings

Draw part of a circle Draw filled rectangle Draw filled 3-dimensional rectangle Clear the complete screen Close graphical system. Detect correct graphical driver to use Draw a polygone Draw an ellipse Draw and fill an ellipse Draw, close and fill a polygone Fill an area with a given color Return coordinates of last drawn arc or ellipse. Return screen resolution Return current drawing color Return default palette Determine whether direct video mode is active. Return current driver name Return current fill pattern Return current fill settings Get current graphical modus Get current line drawing settings return maximum number of colors Return biggest mode for the current driver Return maximal X coordinate Return maximal Y coordinate Return description a modus Return lowest and highest modus of current driver Return current palette Return maximal number of entries in current palette Return current text style

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


120 Nova32 Development Software Berly Desktop 2.0

GetViewSettings GetX GetY GraphDefaults GraphErrorMsg GraphResult InitGraph InstallUserDriver InstallUserFont LineRel LineTo MoveRel MoveTo OutText PieSlice queryadapterinfo Rectangle RegisterBGIDriver RegisterBGIfont RestoreCrtMode Sector SetAspectRatio SetColor SetDirectVideo SetFillPattern SetFillStyle SetGraphMode SetLineStyle SetPalette SetTextJustify SetTextStyle SetUserCharSize SetViewPort SetWriteMode TextHeight TextWidth

Return current viewport Return current cursor X position Return current cursor Y position Reset graphical mode to defaults Return a description of an error Result of last graphical operation Initialize grpahical system Install a user driver Install a user-defined font Draw a line starting from current position in given direction Draw a line starting from current position to a given point Move cursor relative to current position Move cursor to absolute position. Write text on the screen at the current location. Draw a pie-slice Function called to retrieve the current video adapter settings. Draw a rectangle on the screen. Register a new BGI driver. Register a new BGI font Restore text screen Draw and fill a sector of an ellipse Set aspect ration of the screen Set foreground drawing color Attempt to enter direct video mode. Set drawing fill pattern Set drawing fill style Set graphical mode Set line drawing style Set palette entry using color constant Set text placement style Set text style Set user character size for vector font Set the graphical drawing window Specify binary operation to perform when drawing on screen Return height (in pixels) of the given string Return width (in pixels) of the given string

VARIABLES GLOBALES Circle ClearViewPort DirectPutPixel GetBkColor GetImage GetPixel GetRGBPalette

Draw a complete circle Clear the current viewport Hook to directly draw a pixel on the screen. Return current background color Return a copy of a screen area Return color of pixel Hook to set a RGB palette entries.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


121 Nova32 Development Software Berly Desktop 2.0

GetScanLine GraphFreeMemPtr GraphGetMemPtr HLine ImageSize InternalEllipse Line OutTextXY PatternLine PutImage PutPixel RestoreVideoState SaveVideoState SetActivePage SetAllPalette SetBkColor SetRGBPalette SetVisualPage VLine

Hook to get a scan line from the screen. Hook to free heap memory. Hook to get heap memory Hook to draw a solid horizontal line Return size to store image Hook to draw an ellipse Draw a line between 2 points Write text on the screen on given position Hook to draw a patterned line Draw an in-memory image to the screen Draw a pixel on the screen Hook to restore a saved video mode Hook to save the current video state Set active graphical page Specify a complete new palette Set background drawing color Set palette entry using RGB value Set video page which is displayed. Hook to draw a solid vertical line

LIBRERÍA: math CONSTANTES EqualsValue GreaterThanValue Infinity LessThanValue MaxExtended MaxFloat MinExtended MinFloat NaN NegativeValue NegInfinity PositiveValue ZeroValue

Values are the same First values is greater than second value Value is infinity First value is less than second value Maximum value of extended type Maximum value of float type Minimum value (closest to zero) of extended type Minimum value (closest to zero) of float type Value is Not a Number Value is negative Value is negative (minus) infinity Value is positive Value is zero

TIPOS

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


122 Nova32 Development Software Berly Desktop 2.0

float PFloat PInteger TFPUException TFPUExceptionMask TFPUPrecisionMode TFPURoundingMode tpaymenttime TRoundToRange TValueRelationship TValueSign

Float type used in all calls Pointer to Float type. Pointer to integer type Type describing Floating Point processor exceptions. Type to set the Floating Point Unit exception mask. Type describing the default precision for the Floating Point processor. Type describing the rounding mode for the Floating Point processor. Type used in financial (interest) calculations. Range with valid range of digits in RoundTo Type to describe relational order between values Type indicating sign of a valuea

CLASES EInvalidArgument

Exception raised when invalid arguments are passed to a function.

PROCESOS Y FUNCIONES arccos arccosh arcosh arcsin arcsinh arctan2 arctanh arsinh artanh ceil ClearExceptions CompareValue cosecant cosh cot cotan csc cycletorad degtograd degtorad DivMod EnsureRange floor

Return inverse cosine Return inverse hyperbolic cosine Return inverse hyperbolic cosine Return inverse sine Return inverse hyperbolic sine Return arctangent of (y/x) Return inverse hyperbolic tangent Return inverse hyperbolic sine Return inverse hyperbolic tangent Return the lowest integer number greater than or equal to argument Clear Floating Point Unit exceptions Compare 2 values Calculate cosecant Return hyperbolic cosine Alias for Cotan Return cotangent Alias for cosecant Convert cycle angle to radians angle Convert degree angle to grads angle Convert degree angle to radians angle. Return DIV and MOD of arguments Change value to it falls in specified range. Return the largest integer smaller than or equal to argument

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


123 Nova32 Development Software Berly Desktop 2.0

Frexp GetExceptionMask GetPrecisionMode GetRoundMode gradtodeg gradtorad hypot ifthen InRange intpower IsInfinite IsNan IsZero ldexp lnxp1 log10 log2 logn Max MaxIntValue maxvalue mean meanandstddev Min MinIntValue minvalue momentskewkurtosis norm operator **(float, float): float operator **(Int64, Int64): Int64 popnstddev popnvariance power radtocycle radtodeg radtograd randg RandomFrom RandomRange RoundTo SameValue sec secant SetExceptionMask

Return mantissa and exponent. Get the Floating Point Unit exception mask. Return the Floating Point Unit precision mode. Return the Floating Point Unit rounding mode. Convert grads angle to degrees angle Convert grads angle to radians angle Return hypotenuse of triangle Return one of two values, depending on a boolean condition Check whether value is in range. Return integer power. Check whether value is infinite Check whether value is Not a Number Check whether value is zero Return (2 to the power p) times x Return natural logarithm of 1+X Return 10-Based logarithm. Return 2-based logarithm Return N-based logarithm. Return largest of 2 values Return largest element in integer array Return largest value in array Return mean value of array Return mean and standard deviation of array Return smallest of two values. Return smallest value in integer array Return smallest value in array Return 4 first moments of distribution Return Euclidian norm

Return population variance Return population variance Return real power. Convert radians angle to cycle angle Convert radians angle to degrees angle Convert radians angle to grads angle Return gaussian distributed random number. Return a random element of an array of numbers Return a random number in a range Round to the specified number of digits Check whether 2 float values are the same Alias for secant Calculate secant Set the Floating Point Unit exception mask.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


124 Nova32 Development Software Berly Desktop 2.0

SetPrecisionMode SetRoundMode Sign SimpleRoundTo

Set the Floating Point Unit precision mode. Set the Floating Point Unit rounding mode. Return sign of argument Round to the specified number of digits (rounding up if needed) Return sine and cosine of argument Return hyperbolic sine Return standard deviation of data Return sum of values Return the sum of an array of integers Return sum of squares of values Return sum and sum of squares of values. Return tangent Return hyperbolic tangent Return total varians of values Return variance of values

sincos sinh stddev sum sumInt sumofsquares sumsandsquares tan tanh totalvariance variance

LIBRERÍA: system CONSTANTES AbstractErrorProc AllFilesMask AllowDirectorySeparators AllowDriveSeparators AssertErrorProc BackTraceStrFunc CtrlZMarksEOF DefaultStackSize DefaultTextLineBreakStyle DirectorySeparator DriveSeparator Erroraddr Errorcode ErrorProc ExceptProc ExitProc ExtensionSeparator E_NOINTERFACE

Custom abstract error handling procedure File mask for all files on the current platform Set of characters considered directory separators Set of characters considered drive separators Custom assert error handling procedure Standard backtrace formatting routine Determine whether CTRL-Z marks the end of file. Default size for a new thread's stack (4MiB by default). Default line ending style. Character used to separate directory parts. Character used to separate directory parts. Address where the last error occurred. Last error code. Custom error handling procedure. Current exception handling procedure. Exit procedure pointer. Character which separates the filename from the file extension. Interface call result: Error: not an interface

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


125 Nova32 Development Software Berly Desktop 2.0

E_NOTIMPL E_UNEXPECTED Filemode FileNameCaseSensitive float_flag_denormal float_flag_divbyzero float_flag_inexact float_flag_invalid float_flag_overflow float_flag_underflow float_round_down float_round_nearest_even float_round_to_zero float_round_up fmAppend fmClosed fmInOut fmInput fmOutput fpc_in_abs_long fpc_in_abs_real fpc_in_addr_x fpc_in_arctan_real fpc_in_assert_x_y fpc_in_assigned_x fpc_in_bitsizeof_x fpc_in_break fpc_in_bsf_x fpc_in_bsr_x fpc_in_chr_byte fpc_in_concat_x fpc_in_const_abs fpc_in_const_odd fpc_in_const_ptr fpc_in_const_sqr fpc_in_const_swap_long fpc_in_const_swap_qword fpc_in_const_swap_word fpc_in_continue fpc_in_copy_x

Interface call result: Interface not implemented Interface call result: Unexpected error Default file mode for untyped files. OS treatment of filenames is case sensitive. IEC/IEEE floating-point exception flag: ? IEC/IEEE floating-point exception flag: Division by zero error IEC/IEEE floating-point exception flag: ? IEC/IEEE floating-point exception flag: Invalid operation error IEC/IEEE floating-point exception flag: Overflow error IEC/IEEE floating-point exception flag: Underflow error Round down Round to nearest even number Round in the direction of zero (down for positive, up for negative) Round up File mode: File is open for writing, appending to the end. File mode: File is closed. File mode: File is open for reading and writing. File mode: File is open for reading. File mode: File is open for writing. Internal ABS function FPC compiler internal procedure index: abs (real) FPC compiler internal procedure index: addr FPC compiler internal procedure index: arctan (real) FPC compiler internal procedure index: assert FPC compiler internal procedure index: assigned FPC compiler internal procedure index: bitsizeof FPC compiler internal procedure index: break FPC compiler internal procedure index: bsf_x FPC compiler internal procedure index: bsr_x FPC compiler internal procedure index: chr FPC compiler internal procedure index: concat FPC compiler internal procedure index: abs FPC compiler internal procedure index: sqr FPC compiler internal procedure index: sqr FPC compiler internal procedure index: sqr FPC compiler internal procedure index: swap (long) FPC compiler internal procedure index: swap (qword) FPC compiler internal procedure index: swap (word) FPC compiler internal procedure index: continue FPC compiler internal procedure index: copy

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


126 Nova32 Development Software Berly Desktop 2.0

fpc_in_cos_real fpc_in_cycle fpc_in_dec_x fpc_in_dispose_x fpc_in_exclude_x_y fpc_in_exit fpc_in_exp_real fpc_in_fillchar_x fpc_in_finalize_x fpc_in_frac_real fpc_in_get_caller_addr fpc_in_get_caller_frame fpc_in_get_frame fpc_in_high_x fpc_in_hi_long fpc_in_hi_qword fpc_in_hi_word fpc_in_include_x_y fpc_in_inc_x fpc_in_initialize_x fpc_in_int_real fpc_in_leave fpc_in_length_string fpc_in_ln_real fpc_in_low_x fpc_in_lo_long fpc_in_lo_qword fpc_in_lo_word fpc_in_mmx_pcmpeqb fpc_in_mmx_pcmpeqd fpc_in_mmx_pcmpeqw fpc_in_mmx_pcmpgtb fpc_in_mmx_pcmpgtd fpc_in_mmx_pcmpgtw fpc_in_move_x fpc_in_new_x fpc_in_ofs_x fpc_in_ord_x fpc_in_pack_x_y_z fpc_in_pi_real fpc_in_pred_x fpc_in_prefetch_var fpc_in_readln_x fpc_in_readstr_x fpc_in_read_x fpc_in_reset_typedfile

FPC compiler internal procedure index: cos (real) FPC compiler internal procedure index: cycle FPC compiler internal procedure index: dec FPC compiler internal procedure index: dispose FPC compiler internal procedure index: exclude FPC compiler internal procedure index: exit FPC internal compiler routine: in_exp_real FPC internal compiler routine: in_fillchar_x FPC compiler internal procedure index: finalize FPC internal compiler routine: in_frac_real FPC internal compiler routine: in_get_caller_addr FPC internal compiler routine: in_get_caller_frame FPC internal compiler routine: in_get_frame FPC compiler internal procedure index: high FPC compiler internal procedure index: hi (long) FPC compiler internal procedure index: hi (qword) FPC compiler internal procedure index: hi (word) FPC compiler internal procedure index: include FPC compiler internal procedure index: inc FPC compiler internal procedure index: initialize FPC internal compiler routine: in_int_real FPC compiler internal procedure index: leave FPC compiler internal procedure index: length FPC compiler internal procedure index: ln (real) FPC compiler internal procedure index: low FPC compiler internal procedure index: lo (long) FPC compiler internal procedure index: lo (qword) FPC compiler internal procedure index: lo (word) FPC compiler internal procedure index: MMX FPC compiler internal procedure index: MMX FPC compiler internal procedure index: MMX FPC compiler internal procedure index: MMX FPC compiler internal procedure index: MMX FPC compiler internal procedure index: MMX FPC internal compiler routine: in_move_x FPC compiler internal procedure index: new FPC compiler internal procedure index: ofs FPC compiler internal procedure index: ord FPC compiler internal procedure index: pack FPC internal compiler routine: in_pi_real FPC compiler internal procedure index: pred FPC compiler internal procedure index: prefetch FPC compiler internal procedure index: readln Internal read string procedure FPC compiler internal procedure index: read FPC compiler internal procedure index: reset

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


127 Nova32 Development Software Berly Desktop 2.0

fpc_in_reset_x fpc_in_rewrite_typedfile fpc_in_rewrite_x fpc_in_round_real fpc_in_sar_x fpc_in_sar_x_y fpc_in_seg_x fpc_in_setlength_x fpc_in_settextbuf_file_x fpc_in_sin_real fpc_in_sizeof_x fpc_in_slice fpc_in_sqrt_real fpc_in_sqr_real fpc_in_str_x_string fpc_in_succ_x fpc_in_trunc_real fpc_in_typeinfo_x fpc_in_typeof_x fpc_in_unpack_x_y_z fpc_in_val_x fpc_in_writeln_x fpc_in_writestr_x fpc_in_write_x fpc_objc_encode_x fpc_objc_protocol_x growheapsize1 growheapsize2 growheapsizesmall InitProc IObjectInstance IsMultiThread LFNSupport LineEnding maxExitCode maxint MaxKeptOSChunks maxLongint MaxPathLen MaxSIntValue maxSmallint MaxUIntValue Max_Frame_Dump

FPC compiler internal procedure index: reset FPC compiler internal procedure index: rewrite FPC compiler internal procedure index: rewrite FPC internal compiler routine: in_round_real FPC compiler internal procedure index: sar_x FPC compiler internal procedure index: sar_x_y FPC compiler internal procedure index: seg FPC compiler internal procedure index: setlength FPC compiler internal procedure index: settextbuf FPC compiler internal procedure index: sin (real) FPC compiler internal procedure index: sizeof FPC internal compiler routine: in_slice FPC compiler internal procedure index: sqrt (real) FPC compiler internal procedure index: sqr (real) FPC compiler internal procedure index: str FPC compiler internal procedure index: succ FPC internal compiler routine: in_trunc_real FPC compiler internal procedure index: typeinfo FPC compiler internal procedure index: typeof FPC compiler internal procedure index: unpack FPC compiler internal procedure index: val FPC compiler internal procedure index: writeln Internal write string procedure FPC compiler internal procedure index: write FPC compiler internal procedure index: encode FPC compiler internal procedure index: protocol Grow rate for block less than 256 Kb. Grow rate for block larger than 256 Kb. Fixed size small blocks grow rate Initialization routine GUID for the IObject interface Indicates whether more than one thread is running in the application. Constant describing support for long filenames. Constant describing the current line ending character. Maximum exit code supported by the operating system. Maximum integer value. Maximum number of OS chunks to be kept in memory Maximum longint value. Constant defining the maximum length of filenames (including path) Maximum String-size value. Maximum smallint value. Maximum unsigned integer value. Maximum number of frames to show in error frame

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


128 Nova32 Development Software Berly Desktop 2.0

ModuleIsCpp ModuleIsLib ModuleIsPackage PathSeparator RaiseMaxFrameCount RaiseProc RT_ACCELERATOR RT_ANICURSOR RT_ANIICON RT_BITMAP RT_CURSOR RT_DIALOG RT_FONT RT_FONTDIR RT_GROUP_CURSOR RT_GROUP_ICON RT_HTML RT_ICON RT_MANIFEST RT_MENU RT_MESSAGETABLE RT_RCDATA RT_STRING RT_VERSION RuntimeErrorExitCodes SafeCallErrorProc sLineBreak StackError StdErrorHandle StdInputHandle StdOutputHandle S_FALSE S_OK ThreadingAlreadyUsed UnixGetModuleByAddrHook UnusedHandle VarAddRefProc varany vararray varboolean varbyref

dump. program compiled by CPP ? Determines whether the current module is a library Determines whether the current module is a package Character used to separate paths in a search list Maximum number of frames to include in TExceptObject Procedure to raise an exception. Constant identifying an accelerator resouce Resource type: Animated cursor Resource type: Animated icon Constant identifying a bitmap resource Constant identifying a cursor resource Constant identifying a dialog resource Constant identifying a font resource Constant identifying a font directory resource Constant identifying a group cursor resource Constant identifying a group icon resource Resource type: HTML data Constant identifying an icon resource Resource type: manifest Constant identifying a menu resource Constant identifying a message data resource Constant identifying a binary data resource Constant identifying a string table resource Constant identifying a version info resource Mapping between runtime-error constants and program exit codes Error handler for safecall errors Alias for LineEnding Indicate whether there was a stack error. Value of the OS handle for the standard error-output file. Value of the OS handle for the standard input file. Value of the OS handle for the standard output file. Interface call result: Not OK Interface call result: OK Internal constant for the threading system. Don't use. (Unix only) callback for GetModuleByAddr Value indicating an unused file handle (as reported by the OS). Callback to increase reference count of a variant. Variant type: Any Variant type: variant Array Variant type: Boolean type Variant type: By reference

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


129 Nova32 Development Software Berly Desktop 2.0

varbyte VarClearProc VarCopyProc varcurrency vardate vardecimal vardispatch vardouble varempty varerror varint64 varinteger varlongword varnull varolestr varqword varrecord varshortint varsingle varsmallint varstrarg varstring VarToLStrProc VarToWStrProc vartypemask varuint64 varunknown varustrarg varustring varvariant varword varword64 vmtAfterConstruction vmtAutoTable vmtBeforeDestruction vmtClassName vmtDefaultHandler vmtDefaultHandlerStr vmtDestroy vmtDispatch vmtDispatchStr vmtDynamicTable vmtEquals vmtFieldTable vmtFreeInstance vmtGetHashCode

Variant type: Byte (8 bit) Callback to clear a variant. Callback to copy a variant Variant type: Currency Variant type: Date Variant type: Decimal (BCD) Variant type: dispatch interface Variant type: Double float Variant type: Empty variant Variant type: Error type Variant type: Integer (64-Bit) Variant type: Integer (32-bit) Variant type: Word (32 bit) Variant type: Null variant Variant type: OLE string (widestring) Variant type: Word (64-bit) Record variant type Variant type: Shortint (16 bit) Variant type: Single float Variant type: smallint (8 bit) Variant type: String Variant type: String Callback to convert a variant to a ansistring. Callback to convert a variant to a widestring. Variant type: Mask to extract type Unsigned 64-bit value in a variant Variant type: Unknown Unicode string argument value Unicode string value in Variant Variant type: Variant (arrays only) Variant type: Word (16 bit) Variant type: Word (64-bit) VMT Layout: ? VMT layout: ? VMT Layout: ? VMT Layout: location of class name. VMT Layout: ? VMT Layout: ? VMT Layout: Location of destructor pointer. Offset to dispatch table Offset to string dispatch table VMT Layout: location of dynamic methods table. Offset to the Equals method pointer VMT Layout: Location of fields table. VMT Layout: location of FreeInstance method. Offset to the GetHashCode method pointer

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


130 Nova32 Development Software Berly Desktop 2.0

vmtInitTable vmtInstanceSize vmtIntfTable vmtMethodStart vmtMethodTable vmtMsgStrPtr vmtNewInstance vmtParent vmtSafeCallException vmtToString vmtTypeInfo vtAnsiString vtBoolean vtChar vtClass vtCurrency vtExtended vtInt64 vtInteger vtInterface vtObject vtPChar vtPointer vtPWideChar vtQWord vtString vtUnicodeString vtVariant vtWideChar vtWideString

VMT Layout: ? VMT Layout: Location of class instance size in VMT VMT layout: Interface table VMT layout: start of method table. VMT Layout: Method table start. VMT layout: message strings table. VMT Layout: location of NewInstance method. VMT Layout: location of pointer to parent VMT. VMT Layout: ? Offset to the ToString method pointer VMT Layout: Location of class type information. TVarRec type: Ansistring TVarRec type: Boolean TVarRec type: Char TVarRec type: Class type TVarRec type: Currency TVarRec type: Extended TVarRec type: Int64 (signed 64-bit integer) TVarRec type: Integer TVarRec type: Interface TVarRec type: Object instance TVarRec type: PChar TVarRec type: pointer TVarRec type: PWideChar TVarRec type: QWord (unsigned 64-bit integer) TVarRec type: String Unicode string argument TVarRec type: Variant TVarRec type: Widechar TVarRec type: WideString

TIPOS AnsiChar Cardinal DWord EnumResLangProc EnumResNameProc EnumResTypeProc HGLOBAL HMODULE HRESULT IInterface Int16

Alias for 1-byte sized char. An unsigned 32-bits integer. An unsigned 32-bits integer Callback for language resource enumeration Callback for resource name enumeration Callback for resource type enumeration Windows compatibility type for use in resources Windows compatibility type for use in resources 32-Bit signed integer. Basic interface for all COM based interfaces

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


131 Nova32 Development Software Berly Desktop 2.0

Int32 Int8 Integer IntegerArray IntPtr jmp_buf MAKEINTRESOURCE NativeInt NativeUint PAnsiChar PAnsiString PBoolean PByte pcalldesc PCardinal PChar PClass PComp PCurrency PDate PDateTime PDispatch pdispdesc PDouble PDWord pdynarrayindex pdynarraytypeinfo PError PEventState PExceptObject PExtended PGuid PInt64 PInteger PIntegerArray PInterface pinterfaceentry pinterfacetable PJmp_buf PLongBool PLongint PLongWord PMemoryManager PMsgStrTable PointerArray POleVariant

A signed 16-bits integer Generic array of integer. Record type to store processor information. Alias for the PChar type. Alias for PtrInt Alias for PtrUint Alias for PChar type. Pointer to an ansistring type. Pointer to a Boolean type. Pointer to byte type Pointer to TCallDesc record. Pointer to Cardinal type Pointer to null-terminated string. Pointer to TClass Pointer to Complex type Pointer to currency type. Pointer to a TDateTime type. Pointer to TDatetime Pointer to IDispatch interface type Pointer to tdispdesc record Pointer to double-sized float value. Pointer to DWord type Pointer to tdynarrayindex type. Pointer to TDynArrayTypeInfo type. Pointer to an Error type. Pointer to EventState, which is an opaque type. Pointer to Exception handler procedural type TExceptProc Pointer to extended-sized float value. Pointer to TGUID type. Pointer to Int64 type Pointer to integer type Pointer to IntegerArray type Pointer to IInterface interface Pointer to tinterfaceentry record. Pointer to tinterfacetable record. Pointer to jmp_buf record Pointer to a LongBool type. Pointer to Longint type Pointer to LongWord type Pointer to TMemoryManager record Pointer to array of TMsgStrTable records. Generic pointer array. Pointer to OleVariant type.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


132 Nova32 Development Software Berly Desktop 2.0

PPAnsiChar PPByte PPChar PPCharArray PPDispatch PPDouble PPLongint PPointer PPointerArray PPPChar PPPointer PPPWideChar PPtrInt PPtrUInt PPUnknown PPWideChar PQWord PRTLCriticalSection PRTLEvent PShortInt PShortString PSingle PSizeInt PSmallInt pstringmessagetable PText PtrInt PtrUInt PUCS2Char PUCS4Char PUCS4CharArray PUnicodeChar PUnicodeString PUnknown PUTF8String pvararray pvararraybound pvararrayboundarray pvararraycoorarray pvardata PVariant pvariantmanager PVarRec

Alias for PPChar type. Pointer to PByte type. Pointer to an array of pointers to nullterminated strings. Pointer to TPCharArray type. Pointer to PDispatch pointer type Pointer to PDouble type. Pointer to PLongint type. Pointer to a pointer type. Pointer to PointerArray type Pointer to PPChar. Pointer to a PPointer type. Pointer to PPWideChar type. Pointer to PtrInt type. Pointer to unsigned integer of pointer size Pointer to untyped pointer Pointer to link id="PWideChar"> type. Pointer to QWord type Pointer to #rtl.system.TRTLCriticalSection type. Pointer to RTLEvent, which is an opaque type. Pointer to shortint type Pointer to a shortstring type. Pointer to single-sized float value. Pointer to a SizeInt type Pointer to smallint type Pointer to TStringMessageTable record. Pointer to text file. Signed integer type with same size as Pointer. Unsigned integer type with same size as Pointer. Pointer to UCS2Char character. Pointer to UCS4Char Pointer to array of UCS4Char characters. Pointer to unicode character Pointer to unicodestring Untyped pointer Pointer to UTF8String Pointer to TVarArray type. Pointer to tvararraybound type. Pointer to tvararrayboundarray type. Pointer to tvararraycoorarray type. Pointer to TVarData record. Pointer to Variant type. Pointer to TVariantManager record. Pointer to TVarRec type.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


133 Nova32 Development Software Berly Desktop 2.0

PVmt PWideChar PWideString PWord PWordBool Real real48 SizeInt SizeUInt TAbstractErrorProc TAllocateThreadVarsHandler TAnsiChar TAssertErrorProc TBackTraceStrFunc TBasicEventCreateHandler TBasicEventHandler TBasicEventWaitForHandler TBeginThreadHandler TBoundArray tcalldesc TClass TCriticalSectionHandler TCriticalSectionHandlerTryEnter TCtrlBreakHandler TDate TDateTime tdispdesc tdynarrayindex tdynarraytypeinfo TEndThreadHandler TEntryInformation TError TErrorProc TExceptObject TExceptProc TextFile TFPCHeapStatus TFPResourceHandle TFPResourceHGLOBAL

Pointer to TVMT record Pointer to WChar. Pointer to widestring type Pointer to word type Pointer to a WordBool type. Alias for real type TP compatible real type (6 bytes) definition Signed integer type which fits for sizes Unsigned Integer type which fits for sizes Abstract error handler procedural type. Threadvar allocation callback type for TThreadManager. Alias for 1-byte sized char. Assert error handler procedural type. Type for formatting of backtrace dump. callback type for creating eventstate in TThreadManager. Generic callback type for handling eventstate in TThreadManager. Wait for basic event callback type for TThreadManager. Callback for thread start in TThreadManager. Dynamic array of integer. COM/OLE dispatch call argument description. Class of TObject. Generic callback type for critical section handling in TThreadManager. Function prototype for TryEnterCriticalsection CTRL-C Handler prototype Alias for TDateTime type. Encoded Date-Time type. COM/OLE dispatch call description. Type with the correct size for index into a dynamic array. Type information for a dynamic array. Callback for thread end in TThreadManager. Executable entry point information structure Error type, used in variants. Standard error handler procedural type. Exception object Exception handler procedural type Alias for Text file type. Record describing the state of the default FPC heap manager. Handle to resource TFPResourceHGLOBAL

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


134 Nova32 Development Software Berly Desktop 2.0

TFPResourceHMODULE TGetCurrentThreadIdHandler TGuid THandle THeapStatus TInitThreadVarHandler TInterfacedClass tinterfaceentry tinterfaceentrytype tinterfacetable TMemoryManager TMethod TMsgStrTable TPCharArray TProcedure TReleaseThreadVarsHandler TRelocateThreadVarHandler TResourceHandle TResourceManager TRTLCreateEventHandler TRTLCriticalSection TRTLEventHandler TRTLEventHandlerTimeout TRTLEventSyncHandler trtlmethod TRuntimeError TSafeCallErrorProc TSemaphoreDestroyHandler TSemaphorePostHandler TSemaphoreWaitHandler TSempahoreInitHandler TStringMessageTable TTextLineBreakStyle TThreadFunc

Handle to module containing resource Callback type for retrieving thread ID in TThreadManager. Standard GUID representation type. Type alias. Record describing current heap status. Threadvar initialization callback type for TThreadManager. TObject descendent implementing the IInterface interface Interfaces table entry. Dispatch interface entry type Record to store list of interfaces of a class. Record describing the current memory manager Record describing a method. Record used in string message handler table. Array of PChar Simple procedural type. Threadvar release callback type for TThreadManager. Threadvar relocalization callback type for TThreadManager. Handle to a resource, for use in the resource loading routines Resource manager definition Callback type for creating a TRTLEvent type in TThreadManager. A critical section. Generic TRTLEvent handling type for TThreadManager. TRTLEvent timeout handling type for TThreadManager. Callback type for event sycnhronization in TThreadManager. Callback type for synchronization event. Type of runtime-error for the Error procedure Prototype for the safecall error handler Function prototype for destroying a semaphore Function prototype for posting an event to a semaphore Function prototype to wait on a semaphore Function prototype for initializing a semaphore String message table container for class. Text line break style. (end of line character) Thread function prototype

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


135 Nova32 Development Software Berly Desktop 2.0

TThreadGetPriorityHandler TThreadHandler TThreadID TThreadManager TThreadSetPriorityHandler TThreadSwitchHandler TTime TUCS4CharArray TUnicodeStringManager tvararray tvararraybound tvararrayboundarray tvararraycoorarray tvardata tvariantmanager tvarop TVarRec tvartype TVmt TWaitForThreadTerminateHandler TWideStringManager UCS2Char UCS4Char UCS4String UInt16 UInt32 UInt64 UInt8 UIntPtr UnicodeChar UTF8String ValReal ValSInt ValUInt WChar

Callback type for thread priority getting in TThreadManager. Generic thread handler callback for TThreadManager. Type for Thread-IDs Thread manager record. Callback type for thread priority setting in TThreadManager. Callback type for thread switch in TThreadManager. Alias for TDateTime type. Array of UCS4Char characters. Unicode string manager Type describing variant array Type describing variant array bounds. array of tvararraybound records. Array of variant array coordinates Variant record. Record describing the variant manager. Variant operation. Record describing an element in an array of const Type with size of variant type. Virtual method table layout Callback type for thread termination in TThreadManager. Record containing the various callbacks of the widestring manager. UCS2 unicode character. UCS unicode character (unsigned 32 bit word) String of UCS4Char characters. Unsigned 64-bit integer Unicode string character UTF-8 unicode (ansi) string. Largest available floating point type Val-Signed integer. Val-unsigned integer Wide char (16-bit sized char)

CLASES IDispatch

Dispatch interface

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


136 Nova32 Development Software Berly Desktop 2.0

IEnumerable IEnumerator IInvokable IUnknown TAggregatedObject TContainedObject TInterfacedObject TObject

Interface to retrieve an enumerator from a class. Enumerator support interface Interface with RTTI associated with it. Basic interface for all COM-based interfaces Aggregated object Base class for contained objects TObject descendent implementing the IUnknown interface Base class of all classes.

PROCESOS Y FUNCIONES abs AbstractError AcquireExceptionObject AddExitProc Addr Align AllocMem AnsiToUtf8 Append arctan ArrayStringToPPchar Assert Assign Assigned BasicEventCreate basiceventdestroy basiceventResetEvent basiceventSetEvent basiceventWaitFor BeginThread BEtoN binStr BlockRead BlockWrite Break BsfByte BsfDWord BsfQWord

Calculate absolute value Generate an abstract error. Obtain a reference to the current exception object Add an exit procedure to the exit procedure chain. Return address of a variable Return aligned version of an address Allocate and clear memory. Convert ansi string to UTF-8 string Open a file in append mode Calculate inverse tangent Concert an array of string to an array of nullterminated strings Check validity of a given condition. Assign a name to a file Check if a pointer is valid Obsolete. Don't use Obsolete. Don't use Obsolete. Don't use Obsolete. Don't use Obsolete. Don't use Start a new thread. Convert Big Endian-ordered integer to Nativeordered integer Convert integer to string with binary representation. Read data from an untyped file into memory Write data from memory to an untyped file Exit current loop construct. Return the position of the rightmost set bit in an 8-bit value Return the position of the rightmost set bit in a 32-bit value Return the position of the rightmost set bit in a

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


137 Nova32 Development Software Berly Desktop 2.0

BsfWord BsrByte BsrDWord BsrQWord BsrWord chdir chr Close CloseThread CompareByte CompareChar CompareChar0 CompareDWord CompareWord Concat Continue Copy cos Cseg Dec DefaultAnsi2UnicodeMove DefaultAnsi2WideMove DefaultUnicode2AnsiMove DefaultWide2AnsiMove Delete Dispose DoneCriticalsection DoneThread Dseg DumpExceptionBackTrace Dump_Stack DynArraySetLength EndThread EnterCriticalsection

64-bit value Return the position of the rightmost set bit in a 16-bit value Return the position of the leftmost set bit in an 8-bit value Return the position of the leftmost set bit in a 32-bit value Return the position of the leftmost set bit in a 64-bit value Return the position of the leftmost set bit in a 16-bit value Change current working directory. Convert byte value to character value Close a file Close a thread and free up resources used by the thread Compare 2 memory buffers byte per byte ompare 2 memory buffers character per character Compare two buffers character by character till a null-character is reached. Compare 2 memory buffers DWord per DWord Compare 2 memory buffers word per word Append one string to another. Continue with next loop cycle. Copy part of a string. Calculate cosine of angle Return code segment Decrease value of variable Standard widestring manager callback Standard implementation of Ansi to Widestring conversion routine Standard widestring manager callback Standard implementation of Widestring to Ansi conversion routine Delete part of a string. Free dynamically allocated memory Clean up a critical section. End the current thread Return data segment Create backtrace Dump stack to the given text file. Set the length of a dynamic array End the current thread. Enter a critical section

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


138 Nova32 Development Software Berly Desktop 2.0

EnumResourceLanguages EnumResourceNames EnumResourceTypes EOF EOLn Erase Error Exclude Exit exp FilePos FileSize FillByte FillChar FillDWord FillQWord FillWord FindResource FindResourceEx float_raise Flush FlushThread FPower10 frac Freemem Freememory FreeResource GetCurrentThreadId getdir GetFPCHeapStatus GetHeapStatus GetMem GetMemory GetMemoryManager GetProcessID GetResourceManager GetThreadID GetThreadManager GetUnicodeStringManager GetVariantManager GetWideStringManager

Enumerate available languages for a resource of given type and name Enumerate available resource names for a specified resource type Enumerate available resource types Check for end of file Check for end of line Delete a file from disk Generate run-time error Exlude element from a set if it is present. Exit current subroutine. Exponentiate Get position in file Size of file Fill memory region with 8-bit pattern Fill memory region with certain character Fill memory region with 32-bit pattern Fill memory range with QWord (64-bit) values Fill memory region with 16-bit pattern Locate a resource and return a handle to it. Find a resource based on type, name, language Raise floating point exception Write file buffers to disk Flush all standard files Fast multiply with a power of 10 Return fractional part of floating point value. Release allocated memory Alias for FreeMem Free a loaded resource Return the id of the currently running thread. Return the current directory Return FPC heap manager status information Return the memory manager heap status. Allocate new memory on the heap Alias for GetMem Return current memory manager Get the current process ID Return the currently active resource manager Get the current Thread ID. Return the current thread manager Return a copy of the currently active unicodetring manager. Return the current variant manager. Return a copy of the currently active widestring manager.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


139 Nova32 Development Software Berly Desktop 2.0

get_caller_addr get_caller_frame get_cmdline get_frame halt hexStr hi High HINSTANCE Inc Include IndexByte IndexChar IndexChar0 IndexDWord IndexQWord Indexword InitCriticalSection InitThread InitThreadVars Insert int InterlockedCompareExchange InterLockedDecrement InterLockedExchange InterLockedExchangeAdd InterLockedIncrement IOResult IsMemoryManagerSet Is_IntResource KillThread LeaveCriticalsection Length LEtoN ln lo LoadResource LockResource

Return the address of the caller. Return the frame pointer of the caller Return the command-line as a null-terminated string Return the current frame Stop program execution. Convert integer value to string with hexadecimal representation. Return high byte/word of value. Return highest index of open array or enumerated Windows compatibility type for use in resources Increase value of integer variable Include element in set if it was not yet present. Search for a byte in a memory range. Search for a character in a memory range. Return index of a character in null-terminated array of char. Search for a DWord value in a memory range. Return the position of a QWord in a memory range Search for a WORD value in a memory range. Initialize a critical section Initialize a thread Initialize threadvars Insert one string in another. Calculate integer part of floating point value. Conditional exchange Thread-safe decrement Exchange 2 integers in a thread-safe way Thread-safe add and exchange of 2 values Thread-safe increment Return result of last file IO operation Is the memory manager set Check whether a resource is an internal resource Kill a running thread Leave a critical section Returns length of a string or array. Convert Little Endian-ordered integer to Native-ordered integer Calculate logarithm Return low byte/word of value. Load a resource for use Lock a resource

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


140 Nova32 Development Software Berly Desktop 2.0

longjmp Low lowerCase MakeLangID MemSize mkdir Move MoveChar0 New NtoBE NtoLE Null OctStr odd Ofs operator *(variant, variant): variant operator **(variant, variant): variant operator +(variant, variant): variant operator -(variant): variant operator -(variant, variant): variant operator /(variant, variant): variant operator :=(ansistring): olevariant operator :=(ansistring): variant operator :=(Boolean): olevariant operator :=(Boolean): variant operator :=(Byte): olevariant operator :=(Byte): variant operator :=(Char): olevariant operator :=(Char): variant operator :=(comp): olevariant operator :=(comp): variant operator :=(currency): olevariant operator :=(currency): variant operator :=(Double): olevariant

Jump to address. Return lowest index of open array or enumerated Return lowercase version of a string. Create a langauge ID Return the size of a memory block. Create a new directory. Move data from one location in memory to another Move data till first zero character Dynamically allocate memory for variable Convert Native-ordered integer to a Big Endian-ordered integer Convert Native-ordered integer to a Little Endian-ordered integer Null variant Convert integer to a string with octal representation. Is a value odd or even ? Return offset of a variable. Implement multiplication (*) operation on variants. Implement power (**) operation on variants. Implement addition (+) operation on variants. Implement - (unary minus, negation) operation on variants. Implement subtraction (-) operation on variants. Implement division (/) operation on variants.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


141 Nova32 Development Software Berly Desktop 2.0

operator :=(Double): variant operator :=(DWord): olevariant operator :=(DWord): variant operator :=(extended): olevariant operator :=(extended): variant operator :=(Int64): olevariant operator :=(Int64): variant operator :=(longbool): olevariant operator :=(longbool): variant operator :=(LongInt): olevariant operator :=(LongInt): variant operator :=(olevariant): ansistring operator :=(olevariant): Boolean operator :=(olevariant): Byte operator :=(olevariant): Char operator :=(olevariant): comp operator :=(olevariant): currency operator :=(olevariant): Double operator :=(olevariant): DWord operator :=(olevariant): extended operator :=(olevariant): Int64 operator :=(olevariant): longbool operator :=(olevariant): LongInt operator :=(olevariant): QWord operator :=(olevariant): Real operator :=(olevariant): ShortInt operator :=(olevariant): shortstring operator :=(olevariant): single operator :=(olevariant): SmallInt operator :=(olevariant): TDateTime operator :=(olevariant): TError operator :=(olevariant): UnicodeString operator :=(olevariant): variant operator :=(olevariant): WideChar operator :=(olevariant): widestring operator :=(olevariant): Word

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


142 Nova32 Development Software Berly Desktop 2.0

operator :=(olevariant): wordbool operator :=(QWord): olevariant operator :=(QWord): variant operator :=(Real): olevariant operator :=(Real): variant operator :=(real48): Double operator :=(real48): extended operator :=(ShortInt): olevariant operator :=(ShortInt): variant operator :=(shortstring): olevariant operator :=(shortstring): variant operator :=(single): olevariant operator :=(single): variant operator :=(SmallInt): olevariant operator :=(SmallInt): variant operator :=(TDateTime): olevariant operator :=(TDateTime): variant operator :=(TError): olevariant operator :=(TError): variant operator :=(UCS4String): variant operator :=(UnicodeString): olevariant operator :=(UnicodeString): variant operator :=(UTF8String): variant operator :=(variant): ansistring operator :=(variant): Boolean operator :=(variant): Byte operator :=(variant): Char operator :=(variant): comp operator :=(variant): currency operator :=(variant): Double operator :=(variant): DWord operator :=(variant): extended operator :=(variant): Int64 operator :=(variant): longbool operator :=(variant): LongInt operator :=(variant): olevariant operator :=(variant): QWord operator :=(variant): Real operator :=(variant): ShortInt operator :=(variant): shortstring EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


143 Nova32 Development Software Berly Desktop 2.0

operator :=(variant): single operator :=(variant): SmallInt operator :=(variant): TDateTime operator :=(variant): TError operator :=(variant): unicodestring operator :=(variant): UTF8String operator :=(variant): WideChar operator :=(variant): widestring operator :=(variant): Word operator :=(variant): wordbool operator :=(WideChar): olevariant operator :=(WideChar): variant operator :=(widestring): olevariant operator :=(widestring): variant operator :=(Word): olevariant operator :=(Word): variant operator :=(wordbool): olevariant operator :=(wordbool): variant operator <(variant, variant): Boolean operator <=(variant, variant): Boolean operator =(variant, variant): Boolean operator >(variant, variant): Boolean operator >=(variant, variant): Boolean operator and(variant, variant): variant operator div(variant, variant): variant operator mod(variant, variant): variant operator not(variant): variant operator or(variant, variant): variant operator shl(variant, variant): variant operator shr(variant, variant): variant operator xor(variant, variant): variant

Implement < (less than) operation on variants. Implement <= (less than than or equal) operation on variants. Implement = (equality) operation on variants. Implement > (greater than) operation on variants. Implement >= (greater than or equal) operation on variants. Implement logical/binary and operation on variants Implement div (integer division) operation on variants. Implement mod (modulo) operation on variants. Implement logical/binary not operation on variants Implement logical/binary or operation on variants Implement binary shl operation on variants. Implement binary shr operation on variants. Implement logical/binary xor operation on variants

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


144 Nova32 Development Software Berly Desktop 2.0

Ord Pack Paramcount ParamStr pi Pos Power Pred prefetch ptr RaiseList Random Randomize Read ReadBarrier ReadDependencyBarrier ReadLn ReadStr ReadWriteBarrier Real2Double ReAllocMem ReAllocMemory ReleaseExceptionObject Rename Reset ResumeThread Rewrite rmdir RolByte RolDWord RolQWord RolWord RorByte RorDWord RorQWord RorWord round RTLEventCreate RTLeventdestroy

Return ordinal value of an ordinal type. Create packed array from normal array Return number of command-line parameters passed to the program. Return value of a command-line argument. Return the value of PI. Search for substring in a string. Return previous element for an ordinal type. Prefetch a memory location Combine segment and offset to pointer List of currently raised exceptions. Generate random number Initialize random number generator Read from a text file into variable Memory Read Barrier Memory Read Dependency Barrier Read from a text file into variable and goto next line Read variables from a string Memory read/write barrier Convert Turbo Pascal style real to double. Re-allocate memory on the heap Alias for ReAllocMem Decrease the reference count of the current exception object. Rename file on disk Open file for reading Resume a suspended thread. Open file for writing Remove directory when empty. Rotate bits of a byte value to the left Rotate bits of a DWord (cardinal) value to the left Rotate bits of a QWord (64-bit) value to the left Rotate bits of a word value to the left Rotate bits of a byte value to the right Rotate bits of a DWord (cardinal) value to the right Rotate bits of a QWord (64-bit) value to the right Rotate bits of a word value to the right Round floating point value to nearest integer number. Create a new RTL event Destroy a RTL Event

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


145 Nova32 Development Software Berly Desktop 2.0

RTLeventResetEvent RTLeventSetEvent RTLeventsync RTLeventWaitFor RunError SarInt64 SarLongint SarShortint SarSmallint Seek SeekEOF SeekEOLn Seg Setjmp SetLength SetMemoryManager SetResourceManager SetString SetTextBuf SetTextLineEnding SetThreadManager SetUnicodeStringManager SetVariantManager SetWideStringManager ShortCompareText sin SizeOf SizeofResource Slice Space Sptr sqr sqrt Sseg Str StringOfChar StringToPPChar StringToUnicodeChar StringToWideChar strlen strpas

Reset an event Notify threads of the event. Obsolete. Don't use Wait for an event. Generate a run-time error. 64-bit Shift Arithmetic Right 32-bit Shift Arithmetic Right 8-bit Shift Arithmetic Right 16-bit Shift Arithmetic Right Set file position Set file position to end of file Set file position to end of line Return segment Save current execution point. Set length of a string. Set a memory manager Set the resource manager Set length of a string and copy buffer. Set size of text file internal buffer Set the end-of-line character for the given text file. Set the thread manager, optionally return the current thread manager. Set the unicodestring manager Set the current variant manager. Set the widestring manager Compare 2 shortstrings Calculate sine of angle Return size of a variable or type. Return the size of a particular resource Return part of an array Return a string of spaces Return current stack pointer Calculate the square of a value. Calculate the square root of a value Return stack segment register value. Convert a numerical value to a string. Return a string consisting of 1 character repeated N times. Split string in list of null-terminated strings Convert an ansistring to a null-terminated array of unicode characters. Convert a string to an array of widechars. Length of a null-terminated string. Convert a null-terminated string to a shortstring.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


146 Nova32 Development Software Berly Desktop 2.0

Succ SuspendThread Swap SwapEndian SysAllocMem SysAssert SysBackTraceStr SysFlushStdIO SysFreemem SysFreememSize SysGetFPCHeapStatus SysGetHeapStatus SysGetmem SysInitExceptions SysInitFPU SysInitStdIO SysMemSize SysReAllocMem SysResetFPU SysSetCtrlBreakHandler SysTryResizeMem ThreadGetPriority ThreadSetPriority ThreadSwitch trunc Truncate TryEnterCriticalsection UCS4StringToUnicodeString UCS4StringToWideString Unassigned UnicodeCharLenToString UnicodeCharLenToStrVar UnicodeCharToString UnicodeCharToStrVar UnicodeStringToUCS4String UnicodeToUtf8 UniqueString UnlockResource UnPack upCase

Return next element of ordinal type. Suspend a running thread. Swap high and low bytes/words of a variable Swap endianness of the argument System memory manager: Allocate memory Standard Assert failure implementation Format an address suitable for inclusion in a backtrace System memory manager free routine. System memory manager free routine. Return the status of the FPC heapmanager System implementation of GetHeapStatus System memory manager memory allocator. Initialize exceptions. Initialize the FPU Initialize standard input and output. System memory manager: free size. System memory manager: Reallocate memory Reset the floating point unit. System CTRL-C handler System memory manager: attempt to resize memory. Return the priority of a thread. Set the priority of a thread. Signal possibility of thread switch Truncate a floating point value. Truncate the file at position Try entering a critical section Convert a UCS-4 encoded string to a unicode string Unassigned variant. Convert a memory buffer with unicode characters to an ansistring Convert a memory buffer with unicode characters to an ansistring Convert unicode character to string Convert a null-terminated memory buffer with unicode characters to an ansistring Convert a unicode string to a UCS-4 string. Make sure reference count of string is 1 Unlock a previously locked resource Create unpacked array from packed array Convert a string to all uppercase.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


147 Nova32 Development Software Berly Desktop 2.0

UTF8Decode UTF8Encode Utf8ToAnsi Utf8ToUnicode Val VarArrayGet VarArrayPut VarArrayRedim VarCast WaitForThreadTerminate WideCharLenToString WideCharLenToStrVar WideCharToString WideCharToStrVar WideStringToUCS4String Write WriteBarrier WriteLn WriteStr

Convert an UTF-8 encoded unicode string to a widestring Convert a widestring to an UTF-8 encoded unicode string Convert a UTF-8 encoded unicode string to an ansistring Convert a buffer with UTF-8 characters to widestring characters Calculate numerical/enumerated value of a string. Put a value in a single cell of a variant array Redimension a variant array Cast a variant to a certain type Wait for a thread to terminate. Convert a length-limited array of widechar to an ansistring Convert a length-limited array of widechar to an ansistring Convert a null-terminated array of widechar to an ansistring Convert a null-terminated array of widechar to an ansistring Convert a widestring to a UCS-4 encoded string. Write variable to a text file Memory write barrier Write variable to a text file and append newline Write variables to a string

VARIABLES GLOBALES argv DispCallByIDProc envp ErrOutput ExitCode InOutRes Input IsConsole

Pointer to the array of command-line arguments Callback to perform dispatch interface procedure call by ID. Pointer to the array of environment variables Alias for StdErr Exit code for the program, will be communicated to the OS on exit. Result of last I/O operation. Read-Only. Standard input text file. True for console applications, False for GUI applications.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


148 Nova32 Development Software Berly Desktop 2.0

IsLibrary mem meml memw Output RandSeed ReturnNilIfGrowHeapFails softfloat_exception_flags softfloat_exception_mask softfloat_rounding_mode StackBottom StackLength StackTop StdErr StdOut ThreadID widestringmanager

True if the current module is a library. Otherwise module is an excutable Direct memory access (EXIRION/OS only) in bytes Direct memory access (EXIRION/OS only) in longints Direct memory access (EXIRION/OS only) in words Standard output text file. Seed for Random function. Describe behaviour if getmem fails. Current soft float exception flags Current soft float exception mask Rounding mode for softfloat Current stack bottom. Maximum stack length. Top location of the stack. Standard diagnostic output text file. Alias for Output. Current Thread ID. Current widestring manager.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


149 Nova32 Development Software Berly Desktop 2.0

PROGRAMACION VISUAL Y GRAFICOS

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


150 Nova32 Development Software Berly Desktop 2.0

En el sistema operativo EXIRION/OS, no existe un único modelo de interface gráfica de usuario (UI), EXIRION desde su creación fue pensado para poder ser ejecutado en una amplia gama de computadores con diferentes prestaciones, beneficios y desventajas, todos compatibles con la familia de microprocesadores x86 de intel, por lo cual en EXIRION existen 2 modos gráficos.

Modos gráficos de EXIRION/OS:

1. El modo de Escritorio de 16 bits, para equipos no muy potentes, que utilizando una simple tarjeta VGA de 1 MB, pueden disfrutar de un entorno gráfico para ejecutar programas en ventanas, con menos de 4 MB en RAM. 2. El modo de Escritorio de 32 bits para equipos modernos con tarjetas gráficas de fabricantes como NVidea, ATI, Intel Graphics, etc. Donde las prestaciones de hardware permiten trabajar con modos XGA y true-color.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


151 Nova32 Development Software Berly Desktop 2.0

El escritorio de 16 bits (GUI16), solo puede proporcionar una resolución máxima de 640x480 pixels con una paleta de 16 colores.

El escritorio de 32 bits (GUI32), puede proporcionar una resolución máxima de 1024x768 pixels con una paleta de 16 millones de colores aproximadamente, depende de las características del hardware de video presente en el computador.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


152 Nova32 Development Software Berly Desktop 2.0

El modo gráfico de EXIRION/OS a diferencia del modo CONSOLA(24 filas x 80 columnas) y del modo ETM(Gestor de LAN), es proporcionado al sistema operativo mediante la implementación de API‟s y un Framework.

Para desarrollar aplicativos de Escritorio a 16 bits, podemos utilizar los API:   

Nova32 XA2600 version 1.0 Nova32 XA2600 version 2.0 Nova32 GEX16

Debido a que estos API fueron diseñados para los compiladores Nova32 RiverPlex!, C y C++, su estudio queda fuera de los objetivos de esta obra, para mayor información consulte el manual de desarrollo en RiverPlex!, publicado por Nova32 Development Software.

Para desarrollar aplicaciones para el Escritorio de 32 bits, se debe utilizar el Framework GEX32 (Graphics for EXirion on 32 bits), escrito por Rolando Fernández Benavidez como una extensión de 32 bits para el kernel de 16 bits de EXIRION/OS.

Para cambiar de un modo a otro, simplemente usamos el comando GRAPHICS desde la consola de SYSPROC y proceder a reiniciar el equipo para que se cargue la nueva UI de usuario: Para el Escritorio de 16 bits: GRAPHICS 16 [ENTER] Para el Escritorio de 32 bits: GRAPHICS 32 [ENTER]

Para más información consultar el manual de usuario del sistema operativo EXIRION/OS publicado por Nova32 Development Software.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


153 Nova32 Development Software Berly Desktop 2.0

EL FRAMEWORK, GEX32 Y EXIRION

Un Framework(plataforma, entorno, marco de trabajo) es desde el punto de vista del desarrollo de software, una estructura de soporte definida, en la cual otro proyecto de software puede ser organizado y desarrollado. El Framework GEX32 (Graphics for EXirion on 32 bits) es el marco de trabajo ideal para desarrollar poderosas aplicaciones para el Escritorio de 32 bits del sistema operativo EXIRION/OS 1.2600.1 No existe versión para otros sistemas operativos, fue construido exclusivamente para extender los servicios de 16 bits, del kernel exirion, mediante la implementación interna de un DPMI a 32 bits. En computación, el DOS Protected Mode Interface (Interfaz de Modo Protegido para sistemas operativos basados en una tabla de interrupciones intel x86 a 16 bits como EXIRION/OS, abreviado DPMI) es una especificación introducida en 1989 que permite a un programa de 16 bits ejecutarse en modo protegido, permitiendo así el acceso a muchas posibilidades del procesador que no están disponibles en modo real de 16 bits. Casi todos los extensores de OS se basan en DPMI, y permiten a los programas de EXIRION/OS acceder a toda la memoria disponible en el PC y ejecutarse en modo protegido. Un servicio DPMI puede ser de 16-bit, 32-bit, o "universal". Puede ser provisto por el sistema operativo anfitrión (virtual DPMI host) o por un extensor de OS (OS extender), como OS/32A, CWSDPMI o HDPMI.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


154 Nova32 Development Software Berly Desktop 2.0

El framework GEX32 incluye:    

Soporte de programas a 32 bits Biblioteca estandar de controles gráficos visuales (botones, iconos, etc.) Lenguaje Berly 2.0 Software para desarrollar y unir diferentes componentes de un proyecto de desarrollo de programas (utilidad make y JCL de compilación).

El framework GEX32 permite:  

Facilitar el desarrollo de software en el Escritorio GUI32 de EXIRION OS. Evitar los detalles de bajo nivel, permitiendo concentrar más esfuerzo y tiempo en identificar los requerimientos de software.

ARQUITECTURA DEL FRAMEWORK Nova32 GEX32

El Framework GEX32 esta compuesto por las siguientes capas:      

Berly 2.0: Especificación de Lenguaje y compilador Berly Standart Library: Biblioteca estandar de funciones para Berly 2.0 Global Working Const: Biblioteca de constantes de trabajo globales Basic Type Library : Biblioteca basica de tipos Core Common Library: Biblioteca de funciones nucleo de GEX32 Basic Class Library: Biblioteca de clases basicas de GEX32

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


155 Nova32 Development Software Berly Desktop 2.0

LICENCIA DEL FRAMEWORK GEX32 ***************************************************************************** * GEX32 Framework for EXIRION OS * * "Graphics for Exirion on 32 bits" * * * * This version is a complete translation of the release of GEX32 * * written in C++ by * * Rolando Fernandez Benavidez. * * * * * * Licensed Material property of Nova32 Development Software * * Copyright (C) Rolando Fernandez Benavidez 2001-2009. * * All Rights Reserved. * * * * Use Restricted Rights * * Use, duplication or disclosure restricted * * by Schedule Contract with Nova32 Development Software. * * * * Library: GEX32.PPU * * * *****************************************************************************

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


156 Nova32 Development Software Berly Desktop 2.0

FRAMEWORK GEX32 A FONDO

El API GEX16 y el Framework GEX32 fueron creados en C y C++ para el sistema operativo EXIRION/OS kernel 1.2600.1 A continuación se detallan todas las partes del Framework GEX32 de manera completa, trasladados de C++ a PASCAL para poder utilizarlos desde Berly 2.0, se tuvo que re-escribir y compilar el código de C++ a PASCAL, puesto que Berly 2.0 no tiene manera de acceder a librerías de tipo C++, solo a unidades PPU de PASCAL.

(GWC)Constantes Globales de Trabajo {**********************************************************************} {* GLOBAL CONST *} {**********************************************************************} const {GEX Framework Gex_White = Gex_Black = Gex_Blue = Gex_NavyBlue = Gex_Red = Gex_Brown = Gex_Yellow = Gex_LYellow = Gex_Cyan = Gex_LCyan = Gex_Blues = Gex_Pink = Gex_Violet = Gex_Green = Gex_LGreen = Gex_BlackCyan= Gex_Purple = Gex_LPurple = Gex_Purplay = Gex_Candy = Gex_Gray =

RGB Colors 16 bit palette} $FFFF; $0000; $0014; $001F; $F800; $4000; $FFE0; $FFF0; $07FF; $87FF; $041F; $FC18; $FC1F; $0400; $07E0; $0410; $4008; $8010; $801F; $F810; $8410;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


157 Nova32 Development Software Berly Desktop 2.0

Gex_LGray = $C618; Gex_Orange = $FC00; Gex_Gold = $8200; Gex_Live = $8400; Gex_CyanClassic= $4410; Gex_Vinyl = $0210; Gex_Skin = $FC10; Gex_Natura = $8008; { GEX32 Compatible with GEX16 types} DUMMY = 0; GEX_BASE GEX_CUSTOM GEX_WINDOW GEX_BUTTON GEX_IMAGE GEX_CHECK GEX_EDIT GEX_FRAME GEX_PASSWORD GEX_RADIO GEX_STATIC GEX_LIST GEX_VIEW

= = = = = = = = = = = = =

$0000; $0001; $0002; $0003; $0004; $0005; $0006; $0007; $0008; $0009; $000A; $000B; $000C;

GEX_DATA_TABLE GEX_DATA_SET GEX_DATE_TIME GEX_DEBUG_CTL

= = = =

$0028; $0029; $002A; $002B;

WNDTIV CTLHEIGHT EDITHEIGHT MINWINWIDTH MINWINHEIGHT MOUSE_LEFT MOUSE_RIGHT MOUSE_FREE SOLID_FILL

= = = = = = = = =

$0014; 28; 15; $0032; $0032; $0000; $0001; -1; 1;

// //C++ MOUSE_LEFT = -1 //C++ MOUSE_RIGHT = 1

LEFT CENTER RIGHT [-1][0][1]

{GEX KEYBOARD CONST} GKEY_UP = 72; GKEY_DOWN = 80; GKEY_LEFT = 75; GKEY_RIGHT = 77; GKEY_TAB = 9; GKEY_ENTER = 13; GKEY_ESC = 27; EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


158 Nova32 Development Software Berly Desktop 2.0

GKEY_BACKSPACE GKEY_SPACE GKEY_HOME GKEY_END GKEY_REPAG GKEY_AVPAG GKEY_INSERT GKEY_DELETE GKEY_F1 GKEY_F2 GKEY_F3 GKEY_F4 GKEY_F5 GKEY_F6 GKEY_F7 GKEY_F8 GKEY_F9 GKEY_F10 GKEY_F11 GKEY_F12

= = = = = = = = = = = = = = = = = = = =

8; 32; 71; 79; 73; 81; 82; 83; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 133; 134;

{ MSGBOX RESULTS } IDOK IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO

= = = = = = =

$0014; $0015; $0016; $0017; $0018; $0019; $001A;

{MSGBOX MODELS} MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_YESNOCANCEL MB_YESNO MB_RETRYCANCEL

= = = = = =

$001E; $001F; $0020; $0021; $0022; $0023;

{MSGBOX ICONS} MB_ICONSTOP MB_ICONQUESTION MB_ICONEXCLAMATION MB_ICONINFORMATION MB_NOICON

= = = = =

$0028; $001E; $0014; $000A; $0000;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


159 Nova32 Development Software Berly Desktop 2.0

(BTL) Biblioteca Basica de Tipos:

type HEVENT = record x,y,b:integer; end; type HSENDER = record left,top,width,height:integer; end; type GMemoryTable = record Columns:integer; Records:integer; Cell: array[1..100,1..40] of string[80]; end; type CMD_OK = record x1,y1,x2,y2:integer; end; type CMD_OKCANCEL = record Ax1,Ay1,Ax2,Ay2:integer; Bx1,By1,Bx2,By2:integer; end; type GDataSkin = record DataSource: string[80]; Skin : string[80]; DesktopStyle: boolean; BackgroundColor : word; BackgroundImage : string[80]; WindowBackColor : word; WindowTitleForeColor : word; WindowTitleImage : string[80]; WindowCloseImage : string[80]; ButtonImage: string[80]; CheckOnImage:string[80]; CheckOffImage : string[80]; RadioOnImage : string[80]; RadioOffImage : string[80]; EditForeColor : word; EditBackColor : word; EditFocusForeColor : word; EditFocusBackColor: word; FrameForeColor : word; EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


160 Nova32 Development Software Berly Desktop 2.0

StaticForeColor : word; StaticBackColor : word; SCREEN: string[80]; MB_ICONSTOP: string; MB_ICONQUESTION: string; MB_ICONEXCLAMATION: string; MB_ICONINFORMATION: string; FD_FILES: string; FD_FOLDERS: string; end;

(CCL) Biblioteca de funciones Core: {**********************************************************************} {* GEX32 CORE FUNCTIONS INTERFACE *} {**********************************************************************} procedure MouseDriver(Enabled:boolean); function Mouse_x() : integer; function Mouse_y() : integer; function OnClick() : boolean; procedure MouseDo(); procedure MouseMove(Mx,My:integer); function MouseOver(X1,Y1,X2,Y2:integer):boolean; procedure MouseCursor(cursor:integer); procedure PostQuitMessage(sText:string;rc:integer); procedure GEX_Initialize(SCRsize,BKColor:word); procedure GEX_UseMouse(); procedure GEX_End(); procedure GEX_Wait(Time:integer); function GEX_Key(): char; function GEX_GetDate():string; function GEX_VerifyOS():boolean; function GEX_VerifyGraphic():boolean; procedure DEBUG_MouseWrite_xy(); function DEBUG_Mouse_x(mode:integer): integer; function DEBUG_Mouse_y(mode:integer): integer; function LoadThemes(sFileName:string): GSkin; procedure SaveThemes(myTheme:GSkin;sFileName:string); procedure BITMAP16(x0,y0:integer;FileName:String;CRGB:byte;Alpha:boolean); procedure Splash(Timer:integer;Image:string;Background:integer); function MessageBox(sText,sTitle:string;dType,dIcon:integer;Skin:GSkin):integer;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


161 Nova32 Development Software Berly Desktop 2.0

BCL(Biblioteca Basica de Clases) de interface con Berly 2.0:

{**********************************************************************} {* GEX CLASS INTERFACE *} {**********************************************************************} type Gex = class public Id:byte; Left:integer; Top:integer; Height:integer; Width:integer; Visible: boolean; constructor Create(); function ToString():string; virtual; function GetType():byte; end; {**********************************************************************} {* GDateTime CLASS INTERFACE *} {**********************************************************************} type GDateTime = class public {Standart constructor} constructor Create(); public {Published Properties} Id:byte; Day,Month,Year:word; Hour,Minute,Second:word; public {Published Methods} procedure Now(); function ToStringSPFormat():string; function ToStringUSFormat():string; function ToStringTime():string; function GetType():byte; end;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


162 Nova32 Development Software Berly Desktop 2.0

{**********************************************************************} {* GDebug CLASS INTERFACE *} {**********************************************************************} type GDebug = class public Id:byte; Left:integer; Top:integer; PageSize:integer; Index:integer; Watch: array[1..50] of string[30]; constructor Create(); procedure Add(values:string;info:string); procedure Add(values:char;info:string); procedure Add(values:boolean;info:string); procedure Add(values:longint;info:string); procedure Add(values:double;info:string); procedure View(); procedure Clear(); end; {*********************************************************************} {* GSCREEN CLASS INTERFACE *} {*********************************************************************} type GScreen = class public constructor Create(); public WIDTH,HEIGHT: integer; Resolution:string[80]; Palette:integer; {Deprecated} BackgroundImage:string[128]; BackgroundSolid:word; procedure SetBackgroundImage(); procedure SetBackgroundSolid(); procedure Clear(); end; {***********************************************************************} {* GSKIN CLASS INTERFACE *} {**********************************************************************} type GSkin = class public {Standart constructor} constructor Create(); EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


163 Nova32 Development Software Berly Desktop 2.0

{Published properties} public DataSource: string[80]; Skin : string[80]; DesktopStyle: boolean; BackgroundColor : word; BackgroundImage : string[80]; WindowBackColor : word; WindowTitleForeColor : word; WindowTitleImage : string[80]; WindowCloseImage : string[80]; ButtonImage: string[80]; CheckOnImage:string[80]; CheckOffImage : string[80]; RadioOnImage : string[80]; RadioOffImage : string[80]; EditForeColor : word; EditBackColor : word; EditFocusForeColor : word; EditFocusBackColor: word; FrameForeColor : word; StaticForeColor : word; StaticBackColor : word; SCREEN: string[80]; MB_ICONSTOP: string; MB_ICONQUESTION: string; MB_ICONEXCLAMATION: string; MB_ICONINFORMATION: string; FD_FILES: string; FD_FOLDERS: string; {Published methods} public function IsImageGround():boolean; end; {**********************************************************************} {* GWINDOW CLASS INTERFACE *} {**********************************************************************} type GWindow = class(Gex) {Published properties} public GName:string[80]; BackColor:word; Title:string[80]; TitleSkin:string[80]; EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


164 Nova32 Development Software Berly Desktop 2.0

TitleForeColor:word; CloseButtonSkin:string[80]; Float:boolean; Grow:boolean; Transparent:boolean; msg:integer; Sender: HSENDER; Background:GScreen; Skin : GSkin; {Standart Constructor} public constructor Create(Desktop:GScreen;mySkin:GSkin); {Published Methods} public procedure OnInitInstance(); virtual; procedure OnInitDialog(); virtual; procedure OnPaint(); procedure OnClose(); function DoModal():integer; procedure WindowProcedure(); virtual; procedure Add(var pSender:HSENDER); function ToString(): string; virtual; procedure MoveTo(px,py:integer); {Protected Methods} protected procedure DirectDraw(); procedure DirectDestroy(); procedure DirectFree(); procedure DrawCloseButton(); function DispatchMessage(dMessage:integer):boolean; function TraslateMessage(dMessage:integer):HEVENT; function WMouse_x():integer; function WMouse_y():integer; function WOnClick():integer; procedure WMouseDo(); procedure WMouseMove(Mx,My:integer); function WMouseOver(X1,Y1,X2,Y2:integer):boolean; function GexCommand(var pEvent:HEVENT;var pSender:HSENDER):boolean; function GexDestroy(var pEvent:HEVENT;var pSender:HSENDER):boolean; end;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


165 Nova32 Development Software Berly Desktop 2.0

{***********************************************************************} {* GBUTTON CLASS INTERFACE *} {**********************************************************************} type GButton = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public {Published properties} Value: string[80]; Background: word; BackColor : word; ForeColor :word; Sender:HSENDER; Skin:GSkin; public {Published Methods} procedure Show(); procedure Hide(); procedure UpdateOnForm(); protected {Protected Methods} procedure BUTTON_DirectDraw(x1,y1,x2:integer;szCaption:string); procedure BUTTON_DirectDestroy(x1,y1,x2:integer;dBackColor:word);

end; {***********************************************************************} {* GSTATIC CLASS INTERFACE *} {***********************************************************************} type GStatic = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public {Published properties} Value: string[80]; Background: word; BackColor : word; ForeColor :word; Sender:HSENDER; EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


166 Nova32 Development Software Berly Desktop 2.0

Skin:GSkin; public {Published Methods} procedure Show(); procedure Hide(); procedure UpdateOnForm(); protected {Protected Methods} procedure STATIC_DirectDraw(x1,y1,x2:integer;szCaption:string); procedure STATIC_DirectDestroy(x1,y1,x2:integer;dBackColor:word);

end; {***********************************************************************} {* GEDIT CLASS INTERFACE *} {***********************************************************************} type GEdit = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public {Published properties} Value: string[80]; Background: word; BackColor : word; ForeColor :word; MaskForeColor : word; MaskBackColor: word; Sender:HSENDER; Skin:GSkin; public {Published Methods} procedure Show(); procedure Hide(); procedure Clear(); procedure SetFocus(); procedure UpdateOnForm(); protected {Protected Methods} procedure EDIT_DirectDraw(x1,y1,x2:integer;szCaption:string);

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


167 Nova32 Development Software Berly Desktop 2.0

procedure EDIT_DirectDestroy(x1,y1,x2:integer;dBackColor:word); procedure EDIT_DirectEmpty(x1,y1,x2:integer;dBackColor,dForeColor:word;sText:string ); procedure EDIT_DirectActivate(x1,y1,x2:integer); procedure EDIT_DirectDeactivate(x1,y1,x2:integer;dBackColor,dForeColor:word;sText:s tring); procedure EDIT_DirectExec(x1,y1,x2:integer;dBackColor,dForeColor:word;sText:string) ; virtual; end; {**********************************************************************} {* GPASSWORD CLASS INTERFACE *} {**********************************************************************} type GPassword = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public {Published properties} Value: string[80]; Background: word; BackColor : word; ForeColor :word; MaskForeColor : word; MaskBackColor: word; Sender:HSENDER; Skin:GSkin; public {Published Methods} procedure Show(); procedure Hide(); procedure Clear(); procedure SetFocus(); procedure UpdateOnForm(); protected {Protected Methods} procedure EDIT_DirectDraw(x1,y1,x2:integer;szCaption:string); procedure EDIT_DirectDestroy(x1,y1,x2:integer;dBackColor:word);

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


168 Nova32 Development Software Berly Desktop 2.0

procedure EDIT_DirectEmpty(x1,y1,x2:integer;dBackColor,dForeColor:word;sText:string ); procedure EDIT_DirectActivate(x1,y1,x2:integer); procedure EDIT_DirectDeactivate(x1,y1,x2:integer;dBackColor,dForeColor:word;sText:s tring); procedure EDIT_DirectExec(x1,y1,x2:integer;dBackColor,dForeColor:word;sText:string) ; virtual; end; {***********************************************************************} {* GRadio CLASS INTERFACE *} {**********************************************************************} type GRadio = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public {Published properties} Value: string[80]; Background: word; BackColor : word; ForeColor :word; Sender:HSENDER; Skin:GSkin; Enabled : boolean; public {Published Methods} procedure Show(); procedure Hide(); procedure UpdateOnForm(); procedure Checked(); procedure UnChecked(); protected {Protected Methods} procedure RADIO_DirectDraw(x1,y1:integer;szCaption:string;dEnabled:boolean); procedure RADIO_DirectDestroy(x1,y1,x2,dBackColor:word); procedure RADIO_DrawRadio(dTop,dLeft:integer;dEnabled:boolean);

end; EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


169 Nova32 Development Software Berly Desktop 2.0

{**********************************************************************} {* GCheck CLASS INTERFACE *} {*********************************************************************} type GCheck = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public {Published properties} Value: string[80]; Background: word; BackColor : word; ForeColor :word; Sender:HSENDER; Skin:GSkin; Enabled : boolean; public {Published Methods} procedure Show(); procedure Hide(); procedure UpdateOnForm(); procedure Checked(); procedure UnChecked(); procedure OnClick(); protected {Protected Methods} procedure RADIO_DirectDraw(x1,y1:integer;szCaption:string;dEnabled:boolean); procedure RADIO_DirectDestroy(x1,y1,x2,dBackColor:word); procedure RADIO_DrawRadio(dTop,dLeft:integer;dEnabled:boolean); end; {**********************************************************************} {* GImage CLASS INTERFACE *} {*********************************************************************} type GImage = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


170 Nova32 Development Software Berly Desktop 2.0

{Published properties} Value: string[80]; Background: word; Sender:HSENDER; Skin:GSkin; public {Published Methods} procedure Show(); procedure Hide(); procedure UpdateOnForm(); protected {Protected Methods} procedure IMAGE_DirectDraw(x1,y1,x2,y2:integer;szCaption:string); procedure IMAGE_DirectDestroy(x1,y1,x2,y2:integer;dBackColor:word);

end; {**********************************************************************} {* GFrame CLASS INTERFACE *} {**********************************************************************} type GFrame = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); public {Published properties} Value: string[80]; Background: word; BackColor: word; ForeColor: word; CaptionWidth: integer; Sender:HSENDER; Skin:GSkin; public {Published Methods} procedure Show(); procedure Hide(); procedure UpdateOnForm(); protected {Protected Methods} EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


171 Nova32 Development Software Berly Desktop 2.0

procedure FRAME_DirectDraw(x1,y1,x2,y2:integer;szCaption:string); procedure FRAME_DirectDestroy(x1,y1,x2,y2:integer;dBackColor:word);

end; {**********************************************************************} {* GListBox CLASS INTERFACE *} {*********************************************************************} type GListBox = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); protected IDX_LIST: integer; public {Published properties} MaxRows:integer; //50 PageIndex:integer; // 0..40 Index:integer; //idx on array Elements: array[1..50] of string[40]; Skin: GSkin; Sender: HSENDER; Title : string[80]; Value : string[40]; public {Published Methods} procedure AddItem(values:string); procedure AddItem(values:char); procedure AddItem(values:boolean); procedure AddItem(values:longint); procedure AddItem(values:double); procedure Show(); procedure Hide(); procedure OnClick(); procedure Clear(); procedure UpdateOnForm(); procedure SelectedIndex(dPage,dIdx:integer); protected {Protected methods} procedure LIST_DirectDrawAllItems(); procedure LIST_DirectSelectIndex(dIndex:integer); end;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


172 Nova32 Development Software Berly Desktop 2.0

{**********************************************************************} {* GDataTable CLASS INTERFACE *} {*********************************************************************} type GDataTable = class public {Standart Constructor} constructor Create(); public {Published properties} Id : byte; Cursor:integer; IsTop:boolean; IsBottom:boolean; Table: GMemoryTable; public {Published Methods} procedure ClearAll(); procedure New(); procedure Edit(dCell:integer;values:string); procedure Edit(dCell:integer;values:longint); procedure Edit(dCell:integer;values:double); procedure Edit(dCell:integer;values:boolean); procedure Edit(dCell:integer;values:GDateTime;bFormat:boolean); //true=SP,false=US procedure Delete(); procedure Move(dCur:integer); procedure MoveFirst(); procedure MoveLast(); procedure MoveNext(); procedure MovePrevious(); function Find(dColumn:integer;sValue:string):boolean; function Finder(dColumn:integer;sValue:string):boolean; procedure SaveBinary(sFileName:string); procedure LoadBinary(sFileName:string); function GetNumeric(dColumn:integer):longint; function GetDecimal(dColumn:integer):double; function GetString(dColumn:integer):string; function GetLogical(dColumn:integer):boolean; end; {**********************************************************************} {* GDataSet CLASS INTERFACE *} {**********************************************************************} type GDataSet = class public {Standart Constructor} constructor Create(); EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


173 Nova32 Development Software Berly Desktop 2.0

public {Published Properties} Id: byte; Count:integer; Collection: array[1..18] of GDataTable; end; {***********************************************************************} {* GDataView CLASS INTERFACE *} {***********************************************************************} type GDataView = class(Gex) public {Standart constructor} constructor Create(MyTheme:GSkin); protected IDX_LIST: integer; public {Published properties} MaxRows:integer; //100 PageIndex:integer; // 0..90 {----------------------------------} { PAGE: PageIndex: Records-RATE} {----------------------------------} { 1 00 01-10 } { 2 10 11-20 } { 3 20 21-30 } { 4 30 31-40 } { 5 40 41-50 } { 6 50 51-60 } { 7 60 61-70 } { 8 70 71-80 } { 9 80 81-90 } {10 90 91-100 } { Record actual = PageIndex + Index} { Example: } { 17 := 10 + 7; } {----------------------------------} Index:integer; //idx on array Elements: array[1..100] of string; Skin: GSkin; Sender: HSENDER; Title : string[80]; Value : string; DataSource : GDataTable; ColumnsWidth: array[1..40] of integer; public EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


174 Nova32 Development Software Berly Desktop 2.0

{Published Methods} procedure Show(); procedure Hide(); procedure OnClick(); procedure Fill(); procedure Clear(); procedure UpdateOnForm(); procedure SelectedIndex(dPage,dIdx:integer); protected {Protected methods} procedure LIST_DirectDrawAllItems(); procedure LIST_DirectSelectIndex(dIndex:integer); end; {***********************************************************************} {* GFileDialog CLASS INTERFACE *} {***********************************************************************} type GFileDialog = class(Gex) {Published properties} public GName:string[80]; BackColor:word; Title:string[80]; TitleSkin:string[80]; TitleForeColor:word; CloseButtonSkin:string[80]; Float:boolean; Grow:boolean; Transparent:boolean; msg:integer; Sender: HSENDER; Background:GScreen; Skin : GSkin; Value : string; {Standart Constructor} public constructor Create(Desktop:GScreen;mySkin:GSkin); {Published Methods} public procedure OnInitInstance(); procedure OnInitDialog(); procedure OnPaint(); procedure OnClose(); function Show():integer; procedure WindowProcedure(); procedure Add(var pSender:HSENDER); EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


175 Nova32 Development Software Berly Desktop 2.0

{Protected Methods and Objects} protected imgIcon : GImage; txtDir : GEdit; txtFile : GEdit; lstFiles: GDataView; cmdOK : GButton; Tablefs :GDataTable; procedure DirectDraw(); procedure DirectDestroy(); procedure DirectFree(); procedure DrawCloseButton(); function DispatchMessage(dMessage:integer):boolean; function TraslateMessage(dMessage:integer):HEVENT; function WMouse_x():integer; function WMouse_y():integer; function WOnClick():integer; procedure WMouseDo(); procedure WMouseMove(Mx,My:integer); function WMouseOver(X1,Y1,X2,Y2:integer):boolean; function GexCommand(var pEvent:HEVENT;var pSender:HSENDER):boolean; function GexDestroy(var pEvent:HEVENT;var pSender:HSENDER):boolean; end;

“Para mayor información consulte el manual de desarrollo en Nova32 Framework Gex32 publicado por Nova32 Development Software.”

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


176 Nova32 Development Software Berly Desktop 2.0

ACCESO A BASES DE DATOS

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


177 Nova32 Development Software Berly Desktop 2.0

INTRODUCCION

El manejo de bases de datos relacionales es sumamente importante en cualquier lenguaje de programación, en BERLY 2.0 existen un conjunto de instrucciones que intentan facilitar este trabajo con el objetivo de que el programador de aplicaciones se enfoque especialmente en las reglas de negocio del proceso que está abstrayendo al ambiente computacional o informático, dejando de preocuparse por aspectos técnicos como la conexión, y ejecuciones de querys de maneras complicadas. Por el momento para la versión BERLY 2.0 Desktop + EXIRION/OS se dispone únicamente de acceso a base de datos relacional el motor Nova32 DMO 3.0 (Data Massive Objects), sin embargo el desarrollo continua para poder brindar acceso a diversos tipos de proveedores de datos.

Para realizar las operaciones de conexión y ejecución de sentencias DMO contra la base de datos, utilizamos el API DMO 3.0 de Nova32.

ARQUITECTURA DMO 3.0

El API DMO versión 3.0 tiene una arquitectura software orientada a capas, la capa mas baja podemos representarla como un programa de aplicación creado en Berly 2.0, la capa intermedia es el API 3.0 y la capa del ultimo extremo es una Base de Datos de tipo DMO 3.0, de esta manera cualquier programa creado en Berly 2.0 utilizando el API 3.0 puede acceder a todos los servicios de una Base de Datos DMO 3.0, para modo mono estación, para modo compartido o de red, no se dispone de compatibilidad ya que DMO 3.0 es una base de datos mono estación, para desarrollar sistemas de gestión en red, se debe utilizar el gestor transaccional ETM 1.0 de Nova32, y los lenguajes BLAST XC y BLEM XC, ya que ETM es en modo Terminal de consola sin soporte de modo grafico ni ventanas, un programa compilado en Berly 2.0 no puede funcionar en ETM 1.0, debido también a que EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


178 Nova32 Development Software Berly Desktop 2.0

Berly 2.0 carece de un API para acceder a los servicios de ETM, en resumen una Base de Datos DMO 3.0 es para aplicaciones mono estación.

Nova32 API DMO 3.0

A continuación se lista todo el API DMO 3.0 de Nova32 para creación y administración de Bases de Datos relacionales tipo Data Massive Objects versión 3.0

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


179 Nova32 Development Software Berly Desktop 2.0

Public API-Functions for linking Module static PPU:

MAKE Permite crear una nueva base de datos en el sistema operativo EXIRION/OS. Sintaxis: function

MAKE(lpszName,lpszDataSource,lpszPassword,lpszNIP:string;dLog:boolean):integer;

Parametros: lpszName

Nombre de la Base de Datos (string)

lpszDataSource

Ruta de data set particionado para almacenar la Base de Datos (string)

lpszPassword

Password de administrador (string)

lpszNIP

NIP de seguridad DMO 3.0 (string)

dLog

Activar o desactivar el uso de logs (boolean)

Valor de retorno: Un integer que puede tener los siguientes valores: -1 1 2 3 4 0

Longitud de NIP no valida Longitud de Nombre no valida Longitud de DataSource no valida Logitud de Password no valida Error grave en acceso a memoria auxiliar Operación completada correctamente

GROUP Permite agregar los campos informativos a una nueva base de datos en el sistema operativo EXIRION/OS. Sintaxis: function

GROUP(sDBA,sProject,sGroup,sType,sRemarks:string):boolean;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


180 Nova32 Development Software Berly Desktop 2.0

Parametros: sDBA sProject sGroup sType sRemarks

Administrador de Base de Datos (string) Proyecto (string) Grupo de trabajo (string) Tipo de plataforma (string) Comentarios del administrador de la Base de Datos (string)

Valor de retorno: Un boolean que puede tener como resultado TRUE si la operación fue exitosa, en caso contrario un FALSE.

SYSKEY Permite modificar el password de administrador a una base de datos en uso, en el sistema operativo EXIRION/OS. Sintaxis: function

SYSKEY(lpszNewPassword:string):integer;

Parametros: lpszNewPassword

Nuevo password de administrador de Base de Datos (string)

Valor de retorno: Un integer que puede tener los siguientes valores: 1 2 0

No hay ninguna Base de Datos en uso Logitud de Password no valida Operación completada correctamente

HISTORY Permite modificar el modo Auto-Log, es decir activa o desactiva el registro de logs a una base de datos en uso, en el sistema operativo EXIRION/OS. Sintaxis: function

HISTORY(dMode:boolean):integer;

Parametros: dMode

Activa o desactiva el registro de Logs (boolean)

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


181 Nova32 Development Software Berly Desktop 2.0

Valor de retorno: Un integer que puede tener los siguientes valores: 1 0

No hay ninguna Base de Datos en uso Operación completada correctamente

OPEN Permite abrir una base de datos existente en el sistema operativo EXIRION/OS. Sintaxis: function

OPEN(lpszName,lpszDataSource,lpszPassword,lpszUser:string):integer;

Parametros: lpszName

Nombre de la Base de Datos (string)

lpszDataSource

Ruta de data set particionado para almacenar la Base de Datos (string)

lpszPassword

Password de administrador (string)

lpszUser

Usuario DMO 3.0 (string)

Valor de retorno: Un integer que puede tener los siguientes valores: 1 2 3 88 19 0

Longitud de Nombre no valida Longitud de DataSource no valida Logitud de Password no valida Versión DMO incorrecta Password incorrecto Operación completada correctamente

FREE Permite cerrar una base de datos existente en el sistema operativo EXIRION/OS. Sintaxis: procedure FREE();

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


182 Nova32 Development Software Berly Desktop 2.0

AUTHOR Permite devolver el campo Administrador de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

AUTHOR():string;

PROJECT Permite devolver el campo Proyecto de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

PROJECT():string;

GROUPS Permite devolver el campo Grupo de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

GROUPS():string;

MODEL Permite devolver el campo Modelo o Tipo de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

MODEL():string;

REMARKS Permite devolver el campo Comentarios de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

REMARKS():string;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


183 Nova32 Development Software Berly Desktop 2.0

CREATE Permite crear una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

CREATE(lpszTableName:string):integer;

Parametros: lpszTableName

Nombre de la Tabla (string)

Valor de retorno: Un integer que puede tener los siguientes valores: 99 2 1 0

No hay ninguna Base de Datos abierta Longitud de nombre de tabla no valida (8 caracteres maximo) Error grave de acceso a memoria auxiliar Operación completada correctamente

FIELDS Permite crear los campos a una Tabla nueva dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

FIELDS(lpszName:string;dType,dLength:integer):integer;

Parametros: lpszName dType dLength

Nombre del campo (string) Tipo de Campo (integer) Longitud del campo (integer)

//|----------------------------------------------------------| //| D M O Data types Abstract | //|----------------------------------------------------------| //| Name Value Code C++ Pascal | //|----------------------------------------------------------| //| DmoNumeric longint 0 long LongInt | //| DmoDecimal double 1 double Double | //| DmoLogical boolean 2 char Boolean | //| DmoCharacter string 3 char[256] String | //| DmoDate string 4 char[11] String | //|----------------------------------------------------------|

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


184 Nova32 Development Software Berly Desktop 2.0

Valor de retorno: Un integer que puede tener los siguientes valores: 99 1 0

No hay ninguna Base de Datos abierta Longitud de nombre de campo no valida (8 caracteres maximo) Operación completada correctamente

SAFIE Permite salvar los campos creados a una Tabla nueva dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

SAFIE():integer;

Valor de retorno: Un integer que puede tener los siguientes valores: 99 1 0

No hay ninguna Base de Datos abierta Error grave de acceso a memoria auxiliar Operación completada correctamente

USE Permite abrir una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo, para consultas o modificaciones. Sintaxis: function

USE(lpszTable:string):integer;

Parametros: lpszTable

Nombre de la tabla (string)

Valor de retorno: Un integer que puede tener los siguientes valores: 1 2 3 4 88 0

No hay ninguna Base de Datos abierta Longitud de nombre de Tabla no valida (8 caracteres maximo) Error grave de acceso a memoria auxiliar La Tabla no es un miembro de la Base de Datos en uso, o no tiene estructura Versión DMO incorrecta Operación completada correctamente

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


185 Nova32 Development Software Berly Desktop 2.0

DELETED Devuelve TRUE si el registro actual del cusor se encuentra marcado para borrado de una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo, en caso contrario devolverá FALSE. Sintaxis: function

DELETED():boolean;

CLOSED Cierra una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: procedure CLOSED();

APPENDBLANK Agrega un registro en blanco en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: procedure APPENDBLANK();

REPLACE Informa al DMO 3.0 Data Provider, que se realizara el remplazo de los campos del registro actual, en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: procedure REPLACE(lpszField:string);

Parametros: lpszField

Nombre del campo a actualizar o reemplazar (string)

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


186 Nova32 Development Software Berly Desktop 2.0

BY Informa al DMO 3.0 Data Provider, que se realizara el remplazo de los campos del registro actual con un valor determiando por esta funciĂłn, en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: procedure BY(lpszField:string);

Parametros: lpszField

Valor para actualizar o reemplazar (string)

SKIP Informa al DMO 3.0 Data Provider, que avance del registro actual al siguiente en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: procedure SKIP();

SAY Permite mostrar el valor guardado en un campo del registro actual en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: function

SAY(lpszField:string):string;

Parametros: lpszField

Nombre del campo de la tabla (string)

Valor de retorno: Un string que puede tener el valor almacenado en el campo, o un nulo, si el Campo este vacio o el nombre del campo es incorrecto.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


187 Nova32 Development Software Berly Desktop 2.0

GO Informa al DMO 3.0 Data Provider, que avance del registro actual al informado por esta función en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: procedure GO(dCursor:longint);

Parametros: dCursor Número de registro a mover el cursor, si el número solicitado es mayor a los existentes en la Tabla en uso, el cursor se mueve hasta el último registro, y si la cantidad solicitada en negativa el cursor se moverá al primer registró. (longint)

GOTOP Informa al DMO 3.0 Data Provider, que el cursor se posicione en el primer registro en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis:

procedure GOTOP();

GOBOTTOM Informa al DMO 3.0 Data Provider, que el cursor se posicione en el último registro en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo. Sintaxis: procedure GOBOTTOM();

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


188 Nova32 Development Software Berly Desktop 2.0

RECNO Devuelve el número de registro actual apuntado por el cursor en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo, sin importar si están marcados para borrado o no. Sintaxis: function

RECNO():longint;

COUNT Devuelve el número total de registros actuales en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo, sin importar si están marcados para borrado o no.

Sintaxis: function

COUNT():longint;

RECCOUNT, ALIAS DE COUNT Devuelve el número total de registros actuales en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo, sin importar si están marcados para borrado o no.

Sintaxis: function

RECCOUNT():longint;

ISBOF Devuelve TRUE si el cursor se encuentra localizado en el primer registro de la Tabla en uso, FALSE en caso contrario. Sintaxis: function

ISBOF():boolean;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


189 Nova32 Development Software Berly Desktop 2.0

ISEOF Devuelve TRUE si el cursor se encuentra localizado en el último registro de la Tabla en uso, FALSE en caso contrario. Sintaxis: function

ISEOF():boolean;

RECSIZE Devuelve el tamaño en bytes del registro actual de la Tabla en uso. Sintaxis: function

RECSIZE():integer;

DELETENOW Marca para borrado el registro actual en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo, sin importar si están marcados para borrado o no, después de que un registro es marcado para borrado, no podrá ser visto con SAY o LOCATE. Sintaxis: procedure DELETENOW();

RECALL Desmarca de borrado el registro actual en una Tabla dentro de una base de datos en uso, existente en el sistema de almacenamiento activo, sin importar si están marcados para borrado o no, después de que un registro es desmarcado para borrado, si podrá ser visto con SAY o LOCATE. Sintaxis: procedure RECALL();

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


190 Nova32 Development Software Berly Desktop 2.0

REMOVE Elimina de manera permanente una Tabla de la Base de Datos en uso, la eliminación es a bajo nivel de disco, por lo cual no podrá ser recuperada. Sintaxis: function

REMOVE(lpszTable:string):integer;

Parametros: lpszTable

Nombre de la tabla (string)

Valor de retorno: Un integer que puede tener los siguientes valores: 88 1 2 3 0

No hay ninguna Base de Datos abierta La Tabla esta en uso Nombre de Tabla es nulo Error grave de acceso a memoria auxiliar Operación completada correctamente

LOCATE Realiza una búsqueda de registro en la Tabla en uso actual, de la Base de Datos abierta, permite definir el tipo de búsqueda, Modo(TRUE) la búsqueda es desde el primer registro, Modo(FALSE) la búsqueda inicia desde el registro actual apuntado por el cursor, si bExac es TRUE la coincidencia del campo será exacta, en caso contrario la coincidencia no requiere ser exacta.

Sintaxis: procedure LOCATE(lpszField,lpszValue:string;bMode,bExact:boolean);

Parametros: lpszField lpszValue bMode bExact

Nombre del campo de la tabla para la busqueda (string) Valor a buscar Modo de posición del cursor para iniciar la busqueda Modo de comparación.

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


191 Nova32 Development Software Berly Desktop 2.0

ISFOUND Despues de realizar una búsqueda de registro en la Tabla en uso actual, de la Base de Datos abierta, usando LOCATE, ISFOUND nos devolverá TRUE si el registro fue encontrado, FALSE en caso contrario. Colocando el cursor en el registro encontrado, en el primero o último registro de la tabla al no localizarlo, depende de la búsqueda realizada por el DMO 3.0 Data Provider.

Sintaxis:

function

ISFOUND():boolean;

DSUM El DMO 3.0 Data Provider coloca el cursor en el primer registro de la Tabla e inicia la sumatoria de todos los valores del campo especificado de la tabla en uso, el campo deberá ser númerico, en caso contrario devolverá valores negativos ilegibles. Sintaxis: function

DSUM(lpszField:string):double;

ZAP El DMO 3.0 Data Provider inicia la eliminación a bajo nivel de manera permanente de todos los registros marcados para borrado, es una operación delicada, ya que la Tabla será tomada de manera exclusiva por el DMO 3.0 Data Provider, y no será liberada hasta completar la operación, este proceso puede tardar poco o mucho tiempo dependiendo directamente de la cantidad de registros y del tamaño en bytes que ocupa cada registro en la Tabla. Es recomendable realizar un respaldo de la Tabla, hantes de realizar un ZAP, ya que si el proceso de bloquea antes de terminar, por una falla de hardware o eléctrica, la Tabla quedara dañada de forma permanente sin posibilidad de repararla. EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


192 Nova32 Development Software Berly Desktop 2.0

Sintaxis:

function

ZAP(lpszTable,lpszFieldSTD:string):integer;

Parametros: lpszTable lpszFieldSTD

Nombre de la tabla a depurar (string) Nombre del campo guia, para depurar, puede ser cualquiera de la tabla.

Valor de retorno: Un integer que puede tener los siguientes valores: 1 2 3 4 20 88 0

No hay ninguna Base de Datos abierta La longitud del nombre de la tabla es incorrecta Error grave de acceso a memoria auxiliar al iniciar el proceso La tabla no contiene estructura ni registros Error grave de acceso a memoria auxiliar posterior a la mitad del proceso Versión de runtime de DMO incorrecta Operación completada correctamente

PACK, ALIAS ZAP El DMO 3.0 Data Provider inicia la eliminación a bajo nivel de manera permanente de todos los registros marcados para borrado, es una operación delicada, ya que la Tabla será tomada de manera exclusiva por el DMO 3.0 Data Provider, y no será liberada hasta completar la operación, este proceso puede tardar poco o mucho tiempo dependiendo directamente de la cantidad de registros y del tamaño en bytes que ocupa cada registro en la Tabla. Es recomendable realizar un respaldo de la Tabla, hantes de realizar un ZAP, ya que si el proceso de bloquea antes de terminar, por una falla de hardware o eléctrica, la Tabla quedara dañada de forma permanente sin posibilidad de repararla.

Sintaxis: function

PACK(lpszTable,lpszFieldSTD:string):integer;

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


193 Nova32 Development Software Berly Desktop 2.0

Parametros: lpszTable lpszFieldSTD

Nombre de la tabla a depurar (string) Nombre del campo guia, para depurar, puede ser cualquiera de la tabla.

Valor de retorno: Un integer que puede tener los siguientes valores: 1 2 3 4 20 88 0

No hay ninguna Base de Datos abierta La longitud del nombre de la tabla es incorrecta Error grave de acceso a memoria auxiliar al iniciar el proceso La tabla no contiene estructura ni registros Error grave de acceso a memoria auxiliar posterior a la mitad del proceso Versión de runtime de DMO incorrecta Operación completada correctamente

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


194 Nova32 Development Software Berly Desktop 2.0

ANEXO

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


195 Nova32 Development Software Berly Desktop 2.0

EJEMPLO DE PROGRAMA BERLY 2.0

<xml versión=’1.0’ encoding=’utf-8’ ?> <page> <berly> <appgex> Programa1 <programmer> Rolando Fernández Benavidez <system> EXIRION/OS <date> 22/11/2012 <remarks> Programa ejemplo Hola mundo </berly> <source> (* Import extern library berly 2.0 collection

</appgex> </programmer> </system> </date> </remarks>

*)

<import> runtime , exirion , graph , ext32 , gex32 , dmo implements </import> (* Definition Dialog standart on Desktop *) <class> GDialogA extends object(GWindow) public process OnInitInstance(); virtual; process OnInitDialog(); virtual; process WindowProcedure(); virtual; </class> (* Define global variables on *) <memory> A Desktop MySkin rEvent

set set set set

integer GScreen GSkin HEVENT

type type type type

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


196 Nova32 Development Software Berly Desktop 2.0

frmDialogA set GDialogA type </memory>

(* Define global const *) <macros> MACRO1 final 0; </macros> (* Implements of virtual methods of Dialog

*)

<process> GDialogA.OnInitInstance() routine </process> <process> GDialogA.OnInitDialog() routine </process> <process> GDialogA.WindowProcedure() routine BEGIN_MESSAGE_MAP (DispatchMessage(msg)) GFORMS LISTENER rEvent := TraslateMessage(msg); //Button event listener (* if(GexCommand(rEvent,cmdOK.Sender)) then OnClose; else //Continue Dialog endif *) GexDestroy(rEvent,Sender); END_MESSAGE_MAP </process>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernĂĄndez Benavidez in the MĂŠxico States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


197 Nova32 Development Software Berly Desktop 2.0

//Main Program execution <application> //Standart verification OS support GEX_VerifyOS; //Command line writeln(´Hello World Berly 2.0 terminal mode…´); readkey; //Graphics mode with Gex32 Framework support: GEX_Initialize(4,Gex_Vinyl); GEX_UseMouse; Desktop.Create(); MySkin.Create(); Desktop.BackgroundImage := MySkin.SCREEN; Desktop.SetBackgroundImage(); frmDialogA.Create(Desktop,MySkin); frmDialogA.Title := ´Hello World…´; frmDialogA.Width := 640; frmDialogA.Height := 480; frmDialogA.Left := 100; frmDialogA.Top := 100; frmDialogA.DoModal();

GEX_End; </application> </source> </page>

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


198 Nova32 Development Software Berly Desktop 2.0

JCL para compilación a 32 bits en EXIRION/OS

EXIRION/OS and Nova32 Development Software are registered trademarks of RolandoFernández Benavidez in the México States and other countries. All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.