Revistas en disco
 Fanzine Nº1 - Julio 1992
Anterior
Menú
Logotipo

Fanzine
Número 1 - JULIO 1992

GURUS Y GURUSITOS

(c) Warlord

 > LOAD DEMO.S
 OK
        ......
        Cmove   $28c1,Diwstop   ; Display Window X + Y Stop
        Cmove   $38,Ddfstrt     ; Data Fetch Start
        Cmove   $d0,Ddfstop     ; Data Fetch Stop
        Cmove   $0,Bpl1mod      ; Odd Bitplane Modulo
        Cmove   $0,Bpl2mod      ; Even Bitplane Modulo
        Cmove   $1200,Bplcon0   ; Bitplane Control Register
plane1l Cmove   $0000,Bpl1ptl   ; Address Pointer Lower Word
plane1h Cmove   $0000,Bpl1pth   ; Address Pointer Upper Word
        Cmove   $000,color00    ; $dff180 colour 0
        ......
 > ASSEMBLE
 Pass 1
 Pass 2
 550 lines assembled into 670 bytes executable relocatable code
 40345 bytes used
 OK
 > RUN
                  Software error - task held
                  Finish ALL disk activity
                  Select CANCEL to reset/debug

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Aaaaaaaaaaaaahhhhhhhhhhhhhhhh !!!!!!!!!!!

¡¡ OTRO GURU !! ¿¿ POR QUE?? ¿¿ QUE HE HECHO YO PARA MERECER ESTO ??

¡ LOS ODIO ! ... ¡ODIO A LOS GURUS! ... ¡ME VENGARE! ... ¡¡ VENGANZA !! ...


Esta es la reacción típica de un esforzado programador ante la agradable visita de nuestros amigos los gurus. ¡Pero no debiera de ser así!, ¡Debemos recibirles bien! ... Decirles: ¡Oh gracias señor guru!, ¡encantado de que me visite!, ¿y por qué?, porque nos da la información exacta de dónde se ha cometido nuestro fallo:

       Software Failure.       Press left mouse button to continue.
               Guru Meditation #02010009.00009310

Para los curiosos, vamos a intentar explicar mas o menos su significado. De todos modos explicar todos los términos que aquí aparecen sería como escribir aquí el "Rom Kernel Manual", al que remito a los interesados.

  Código especifico del error -----+         +--- Dirección de trabajo
                                   |         |      "Task address"
                            02 01 0009 . 00009310
                             |  |
      Numero del subsistema -+  +--- Código general del error

La "Task address" es simplemente la dirección de la RAM a donde apuntaba cuando se produjo el error. En nuestro ejemplo ocurrió en la dirección 9310 (en hexadecimal). En este caso ello significa que ocurrió en el " CLI process number 1 " (Proceso 1 del CLI). Si estás depurando (debugging) un programa que utiliza muchas direcciones distintas esto puede serte útil. Esto me informa de que el problema estaba en mi programa y no el sistema.

En la parte izqda aparece un numero formado por tres campos:

Los primeros dos dígitos, nos dice que módulo del sistema operativo arrojó el error. En nuestro ejemplo era el 02, que nos informa de que el error ocurrió en la "graphics library" (librería de gráficos)

El primer dígito es aún mas divertido. El bit mas significativo de este dígito nos dice si el sistema se puede recuperar o no. Si el número hubiese sido 82 en lugar de 02, hubiera significado la muerte fulminante y posterior reseteo del amiga. La notación hexadecimal puede dar lugar a confusión. Si el primer de los dígitos es mayor que 7 (hexadecimal) entonces réstale 8. Así, si hubiese sido B1, (A=10, B=11, C=12, D=13,E=14,F=15) al restarle 8 queda:

             B - 8  = 3
                     \|/
     Nos queda pues: 31.

Esto quiere decir que el error lo dio el Workbench. La tabla de los códigos de identificación es:

          Exec Library        01     Console Device      11
          Graphics Library    02     GamePort Device     12
          Layers Library      03     Keyboard Device     13
          Intuition Library   04     TrackDisk Device    14
          Math Library        05     Timer Device        15
          CList Library       06     CIA Resource        20
          DOS Library         07     Disk Resource       21
          RAM Library         08     Misc Resource       22
          Icon Library        09     BootStrap           30
          Audio Device        10     Workbench           31

Los dos dígitos siguientes especifican el tipo general de error que ha ocurrido.La mayoría de las veces es 00,aunque también pueden ser otros como se indica a continuación. En nuestro caso es el 01, lo que viene a significar que la librería de gráficos no ha sido capaz de encontrar suficiente memoria libre.

     Memoria insuficiente      01    error de apertura de dispositivo  04
     error al crear librería   02    error de apertura de medio        05
     error de apertura de lib. 03    error de entrada/salida           06

Los cuatro últimos dígitos del numero de alerta, nos dan información específica del error. La interpretación de este depende del código del subsistema. Pueden aparecer números iguales con significados distintos. En nuestro ejemplo el código especifico es el 0009. Como hablamos de un error en la librería de gráficos,podemos determinar que el error es el llamado "TextTmpRas" que indica un fallo en la llamada a la rutina de texto (que imprime un carácter en la pantalla), pues ésta se ha que dado sin memoria al intentar asignar memoria para la estructura de datos.

Un caso especial es el causado por una trampa (trap) del 68000 (por ejemplo se ejecuta un código ilegal). Su ejecución causará una alerta. Cuando esto suceda,la parte izquierda del guru será un valor pequeño, mientras el código del subsistema y el código general serán 0. Los "números trampa" son parte del chip 68000, y no son asignados por la ROM como los demás códigos.La mayoría de ellos no son mostrados por el ordenador. La siguiente, es una lista de los posibles errores:

       Error de Bus           02      Violación de privil.   08
       Error de dirección     03      Rasto de la instr.     09
       Instruction ilegal     04      Emulación línea A      0A
       Divides por 0          05      emulación línea F      0B
       instrucción CHK        06      TRAP 0 ... 15          20 ... 2F
       TRAPV (sobrecarga)     07

La siguiente es una lista de los códigos específicos de error:

    Exec Library
    ExcptVect      81000001
    BaseChkSum     81000002
    LibChkSum      81000003
    LibMem         81000004
    MemCorrupt     81000005
    IntrMem        81000006
    Graphics Library
    CopDisplay     82010001
    CopInstr       82010002
    CopListOver    82000003
    CopIListOver   82000004
    CopListHead    82010005
    LongFrame      82010006
    ShortFrame     82010007
    FloodFill      82010008
    TextTmpRas     02010009
    BltBitMap      8201000A
    Intuition Library
    GadgetType     84000001
    CreatePort     84010002
    ItemAlloc      84010003
    SubAlloc       84010004
    PlaneAlloc     84010005
    ItemBoxTop     84000006
    OpenScreen     84010007
    OpenScrnRast   84010008
    SysScrnType    84000009
    AddSWGadget    8401000A
    OpenWindow     8401000B
    BadState       8400000C
    BadMessage     8400000D
    WeirdEcho      8400000E
    NoConsole      8400000F
    DOS Library
    StartMem       07010001
    EndTask        07000002
    QPktFail       07000003
    AsyncPkt       07000004
    FreeVec        07000005
    DiskBlkSeq     07000006
    BitMap         07000007
    KeyFree        07000008
    BadChkSum      07000009
    DiskError      0700000A
    KeyRange       0700000B
    BadOverlay     0700000C
    TrackDisk Device
    TDCalibSeek    14000001
    TDDelay        14000002
    Timer Device
    TMBadReq       15000001
    Disk Resource
    DRHasDisk      21000001
    DRIntNoAct     21000002
    BootStrap
    BootError      30000001

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