Revistas en papel
 Amiga World Nº17 - Enero 1991
Anterior
MenĂº
Logotipo

El Amiga Me Encanta ha conseguido el permiso por escrito de IDG Comunications España
para ofrecer los artículos de la revista Amiga World España.

Las librerías del AMIGA Amiga World

Por Francisco Javier Rodríguez

En esta nueva sección se verán todas las funciones de las librerías del Amiga. Dichas funciones son accesibles desde lenguajes como el C, Ensamblador o Basic, por lo cual la flexibilidad es total. Como ya sabrán, mediante la correspondiente programación, se pueden añadir librerías propias al sistema. En esta sección comentaremos todas las funciones del sistema, aunque también se publicarán todas aquellas que usted haya creado y desee insertarlas en este espacio. La sintaxis que se utilizará será la siguiente:

Sintaxis: el modo en el que se debe escribir en 'C' o el salto de llamada y los registros de parámetros en Ensamblador.

Descripción: Que es lo que realiza la función.

Parámetros: el significado de los parámetros.

EXEC Library.

La EXEC Library es la única que no precisa del comando OpenLibrary para acceder a esta, ya que en todo el sistema del Amiga es la única que posee un apuntador fijo en memoria: la dirección $4. A continuación pasaremos a comentar cada una de las funciones.

INITCODE

Sintaxis:  InitCode( StartClass, version)
 
-72
D0
D1

Descripción: Esta función inicializa un módulo de código residente con la clase proporcionada y con la versión igual o superior a la proporcionada.

Parámetros: StartClass: Valor con la clase de código arranque en caliente, en frío).


INITSTRUCT

Sintaxis:  InitStruct( InitTable, Memory, Size)
  -78 A1 A2 D0

Descripción: Esta función inicia una tabla de estructura en la memoria con los valores especificados.

Parámetros:  InitTable: puntero a la tabla de datos.
  Memory: Puntero a la zona de memoria.
  Size: Tamaño de la estructura a inicializar.

FINDRESIDENT

Sintaxis:  Resident  =  FindResident (Name)
  D0   -96 A1

Descripción: Esta función busca en el sistema la lista del módulo residente perteneciente al nombre dado.

Parámetros: Name: Dirección en la que se encuentra la lista del módulo residente, o 0 si no se ha encontrado.


INITRESIDENT

Sintaxis:  InitResident( Resident, Seglist)
  -102 A1 D1

Descripción: Esta función inicializa un módulo residente.

Parámetros:  Resident: Puntero al módulo.
  SegList: Puntero a la lista de segmento.

ALERT

Sintaxis:  Alert( AlertNum, Parameters)
  -108 D7 A5

Descripción: Esta función muestra un mensaje de error al usuario.

Parámetros:  AlertNum: Número describiendo el error.
  Parameters: Puntero a los parámetros.

DEBUG

Sintaxis:  Debug()
  -114

Descripción: Esta función ejecuta el Debugger del sistema. Si la dirección ha sido cambiada mediante la función SetFunction(), entonces podrá utilizarse otro debugger.


DISABLE

Sintaxis:  Disable()
  -120

Descripción: Esta función inhabilita todas las interrupciones del sistema.


FORBID

Sintaxis:  Forbid()
  -132

Descripción: Esta función anula el 'Dispatching' del sistema dando a cada una de las tareas x tiempo de ejecución.


PERMIT

Sintaxis:  Permit()
  -138

Descripción: Esta función permite tiempo de procesador a otros programas no incluidos en el Dispatcher.


SETSR

Sintaxis:  OldSR  = SetSR( NewSR, Mask)
  D0   -144 D0 D1

Descripción: Mediante esta función se pueden realizar cambios en el SR del procesador.

Parámetros:  NewSR: nuevo valor para el SR.
  Mask: contiene los bits que serán transmitidos al CR.

Resultado: OldSR: El contenido del SR antes de la llamada a la función.


SUPERSTATE

Sintaxis:  OldSysStack  =  SuperState()
  D0   -150

Descripción: Esta función pone al procesador en modo supervisor.

Resultado: OldSysStack contiene el valor que el usuario debe dar al final la operación.


USERSTATE

Sintaxis:  UserState (SysStack)
  -156 D0

Descripción: Esta función define el procesador en modo usuario.

Parámetro: SysStack: valor devuelto por la función SuperState().


SETINTVECTOR

Sintaxis:  OldInterrupt  =  SetIntVector  (IntNumber, Interrupt)
  D0   -162 D0 A1

Descripción: Esta función define una nueva interrupción basándose en el parámetro IntNumber.

Parámetros:  IntNumber: número de interrupción.
 

Interrupt: Puntero al nudo de estructura, conteniendo el salto al handler y el puntero al segmento de datos.


ADDINITSERVER

Sintaxis:  AddIntServer( IntNumber, Interrupt)
  -168 D0 -150

Descripción: Esta función añade una nueva interrupción a la lista de interrupciones. La prioridad de la nueva interrupción se define cuando esta se ejecuta.

Parámetros:  IntNumber: número de interrupción.
  Interrupt: Puntero al nudo de estructura de la interrupción.

REMINTSERVER

Sintaxis:  RemintServer  (IntNumber, Interrupt)
  -174 D0 A1

Descripción: Esta función remueve la estructura dada de interrupción de la lista del servidor.

Parámetros:  IntNumber: número de interrupción.
  Interrupt: Puntero de estructura de interrupción.

CAUSE

Sintaxis:  CAUSE (INTERRUPT)
  -180 A1

Descripción: Esta función causa la ejecución de una interrupción por software.

Parámetros: Interrupt: Puntero a una estructura de interrupción (ya inicializada).


ALLOCATE

Sintaxis:  MemoryBlock  =  Allocate( FreeList, ByteSize)
  D0   -168 D0 -150

Descripción: Esta función busca a través de FreeList un bloque libre del tamaño dado, si este es encontrado se devuelve el puntero en D0.

Parámetros:  FreeList: puntero a una cabecera de lista de memoria.
  ByteSize: tamaño del bloque deseado en Bytes.

DEALLOCATE

Sintaxis:  Deallocate( FreeList, MemoryBlock, ByteSize)
  -192 A0 A1 D0

Descripción: Esta función es la opuesta a la anterior, ya que libera la memoria alojada y la inserta en la estructura FreeList.

Parámetros:  FreeList: Puntero a una lista de memoria libre.
  MemoryBlock: Puntero al bloque de memoria.
  ByteSize: Tamaño del bloque de memoria.

Envía esta página web a un amigo:
Esta opción está desactivada temporalmente, rogamos disculpen las molestias

Volver a la página anterior

Al menú principal