|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 5891 (0x1703)
Types: TextFile
Names: »stackdump«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
└─⟦3b20aab50⟧ »EurOpenD3/network/snmp/kip-snmp.91.tar.Z«
└─⟦b503a39fe⟧
└─⟦this⟧ »kip/doc/stackdump«
Return-Path: <normac!tim@russell.stanford.edu>
Received: from russell.stanford.edu by safe.stanford.edu with Sendmail; Thu, 16 Oct 86 23:28:39 pdt
Received: by russell.stanford.edu with Sendmail; Thu, 16 Oct 86 23:36:38 pdt
Date: Thu, 16 Oct 86 23:36:38 pdt
From: normac!tim@russell.stanford.edu
To: croft@russell.stanford.edu
Subject: stack packets explained
Actual-Sender: Tim McCreery
Bill-
Sorry it took me so long to send you this. I looked around but either
I can't find what I had done previously or else I deleted it: probably
the latter in a space-saving move.
Here is a typical continuously dumping stack packet:
[B ] S: 220 D: 255 T: 679 dT: 679 (0001) L: 64
FF DC 4B 00 3D 44 73 74 6B 00 00 05 1A 00 06 ED ..K.=Dstk.......
A0 20 00 00 00 03 08 00 06 EB AA 4E B9 00 00 04 . .........N....
F2 4E B9 00 00 04 F2 4E B9 00 00 04 F2 4E B9 00 .N.....N.....N..
00 04 F2 4E B9 00 00 04 F2 4E B9 00 00 04 F2 4E ...N.....N.....N
Here are the details:
FF DC 4B | 00 3D | 44 | 73 74 6B | 00 00 05 1A | 00 06 ED
<--- 01 ----> <- 02 --> <03> <---- 04 ----> <------ 05 -------> <------ 06 --
A0 | 20 00 | 00 00 03 08 | 00 06 EB AA | 4E B9 | 00 00 04
--> <- 07 --> <------ 08 -------> <------ 09 -------> <- 10 --> <------ 11 --
F2 | 4E B9 | 00 00 04 F2 | 4E B9 | 00 00 04 F2 | 4E B9 | 00
--> <- 10 --> <------ 11 -------> <- 10 --> <------ 11 -------> <- 10 --> <--
00 04 F2 | 4E B9 | 00 00 04 F2 | 4E B9 | 00 00 04 F2 | 4E
- 11 -------> <- 10 --> <------ 11 -------> <- 10 --> <------ 11 -------> etc.
01 - lap header: 0x4B = 'K' is Kinetics lap type.
02 - data count (plus DDP hop count if this was a long DDP).
03 - type of Kinetics lap packet: 0x44 = 'D' is the diagnostic type.
04 - ASCII "stk" for stack packet.
****
All addresses that refer to PROM locations or RAM locations
used by the PROM are dependent on the revision level of the PROM.
The following addresses are based on the PROM known by the
checksum 7E8B which should be all units now shipped and should
include all units in the field which have been upgraded.
****
05 - 0x51A is first true stack address: from the PROM, this is
the return address after the call to the stack packet routine.
The call is from the routine "nultrap" which is the default
exception handler used for every type of exception/interrupt
except specifically the AppleTalk/8530 and the Ethernet chip
and whatever else might be specifically replaced.
06 - From the PROM, 0x6EDA0 is a return address in the exception vectors
after the "jsr nultrap" which is also used to indicate which
exception/interrupt occurred.
Here is the magic formula:
The vectors start at 0x6EC7A.
Each vector is 6 bytes, the length of the "jsr nultrap".
0x6EDA0 - 0x6EC7A = 0x126 = 294.
(294. - 6) / 6 = 48.
Exception vector 48. is the Ethernet interrupt service.
I have included a table at the end of this mail which tells all
in terms of which vectors are used for what.
***
At this point, the remainder of the stack is interpreted
according to type of exception that occurs. Consult the
Motorola 68000 manual for details.
***
07 - 0x2000 is the processor status at the time of the Ethernet interrupt.
08 - 0x308 is the interrupted instruction location in the PROM. In this
case, it is during warm restart initialization, right after we have
lowered priority (and before we have set the real Ethernet ineterrupt
routine address into the vector).
09 - In the PROM's RAM area, 0x6EBAA is the address of a temporary scratch
area used for during various PROM routines.
10 - This turns out to be beyond the bottom of the stack which also happens
to be where the vectors begin. This is a "jsr" instruction.
11 - 0x4F2 is the address of the "nultrap" routine.
Exception Table for PROM 7E8B
=====================================
6EC8C | 2: Bus error
6EC92 | 3: Address error
6EC98 | 4: Illegal instruction
6EC9E | 5: Zero divide
6ECA4 | 6: CHK instruction
6ECAA | 7: TRAPV instruction
6ECB0 | 8: Privilege violation
6ECB6 | 9: Trace
6ECBC | 10: Line 1010 emulator
6ECC2 | 11: Line 1111 emulator
6ECC8 | 12: Unused
6ECCE | 13: Unused
6ECD4 | 14: Unused
6ECDA | 15: Unused
6ECE0 | 16: Level 2 dispatcher
6ECE6 | 17: Unused
6ECEC | 18: Unused
6ECF2 | 19: Unused
6ECF8 | 20: Unused
6ECFE | 21: Unused
6ED04 | 22: Unused
6ED0A | 23: Unused
6ED10 | 24: Spurious Interrupt
6ED16 | 25: Level 1 Interrupt Autovector
6ED1C | 26: Level 2 Interrupt Autovector
6ED22 | 27: Level 3 Interrupt Autovector
6ED28 | 28: Level 4 Interrupt Autovector
6ED2E | 29: Level 5 Interrupt Autovector
6ED34 | 30: Level 6 Interrupt Autovector
6ED3A | 31: Level 7 Interrupt Autovector
6ED40 | 32: TRAP 00 Instruction Vectors
6ED46 | 33: TRAP 01 Instruction Vectors
6ED4C | 34: TRAP 02 Instruction Vectors
6ED52 | 35: TRAP 03 Instruction Vectors
6ED58 | 36: TRAP 04 Instruction Vectors
6ED5E | 37: TRAP 05 Instruction Vectors
6ED64 | 38: TRAP 06 Instruction Vectors
6ED6A | 39: TRAP 07 Instruction Vectors
6ED70 | 40: TRAP 08 Instruction Vectors
6ED76 | 41: TRAP 09 Instruction Vectors
6ED7C | 42: TRAP 10 Instruction Vectors
6ED82 | 43: TRAP 11 Instruction Vectors
6ED88 | 44: TRAP 12 Instruction Vectors
6ED8E | 45: TRAP 13 Instruction Vectors
6ED94 | 46: TRAP 14 Instruction Vectors
6ED9A | 47: TRAP 15 Instruction Vectors
6EDA0 | 48: Ethernet service
6EDA6 | 49: Deadman timer service
6EDAC | 50: Timeout service
6EDB2 | 51: Applebus service
6EDB8 | 52: Q-bus host service
6EDBE | 53: Multibus host service
6EDC4 | 54: Unused
6EDCA | 55: Unused
6EDD0 | 56: Unused
6EDD6 | 57: Unused
6EDDC | 58: Unused
6EDE2 | 59: Unused
6EDE8 | 60: Unused
6EDEE | 61: Unused
6EDF4 | 62: Unused
6EDFA | 63: Unused