DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T s

⟦0b9466229⟧ TextFile

    Length: 5891 (0x1703)
    Types: TextFile
    Names: »stackdump«

Derivation

└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
    └─⟦3b20aab50⟧ »EurOpenD3/network/snmp/kip-snmp.91.tar.Z« 
        └─⟦b503a39fe⟧ 
            └─⟦this⟧ »kip/doc/stackdump« 

TextFile

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