| Volver menú revistas | Número 1 - JULIO 1992 |
Página anterior |
| 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 !! ... 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 terminos que aquí aparecen sería como escribir aquí el "Rom Kernel Manual", al que remito a los interesados. Codigo especifico del error -----+ +--- Direccion de trabajo
| | "Task address"
02 01 0009 . 00009310
| |
Numero del subsistema -+ +--- Codigo 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 digitos, 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" (libreria de gráficos) El primer digito 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 digitos 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 codigos 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 digitos siguientes especifican
el tipo general de error que ha ocurrido.La mayoria de las veces es 00,aunque
tambien pueden ser otros como se indica a continuacion. En nuestro caso
es el 01, lo que viene a Memoria insuficiente 01 error de apertura de dispositivo 04
error al crear libreria 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 codigo del subsistema. Pueden aparecer numeros iguales con significados distintos. En nuestro ejemplo el codigo especifico es el 0009. Como hablamos de un error en la libreria 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 caracter 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 codigo ilegal). Su ejecucion causará una alerta. Cuando esto suceda,la parte izquierda del guru será un valor pequeño, mientras el codigo del subsistema y el codigo general serán 0. Los "numeros trampa" son parte del chip 68000, y no son asignados por la ROM como los demás códigos.La mayoria de ellos no son mostrados por el ordenador. La siguiente, es una lista de los posibles errores: Error de Bus 02 Violacion de privil. 08
Error de direccion 03 Rasto de la instr. 09
Instruction ilegal 04 Emulacion linea A 0A
Divides por 0 05 emulacion linea F 0B
instruccion CHK 06 TRAP 0 ... 15 20 ... 2F
TRAPV (sobrecarga) 07
La siguiente es una lista de los codigos especificos 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
|