|
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
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
Descripción: Esta función inhabilita todas las interrupciones del sistema. |
FORBID
Descripción: Esta función anula el 'Dispatching' del sistema dando a cada una de las tareas x tiempo de ejecución. |
PERMIT
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. |
|
|