mac-rom/OS/StartMgr/STEqu.a
Elliot Nunn 4325cdcc78 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 09:52:23 +08:00

287 lines
13 KiB
Plaintext

;
; File: STEqu.a
;
; Contains: This file contains all the various equates required by the StartTest routines.
; Originally derived from STStartup.a.
;
; Written by: Russ L. Emmons
;
; Modified by: Scott Smyers
;
; Copyright: © 1983-1990, 1992 by Apple Computer, Inc., all rights reserved.
;
; Codes used in: ROM
;
; Change History (most recent first):
;
; <16> 1/13/92 RB Rolled in Terror version.
;
; ===================== Terror History ==========================
;
; <5> 2/18/91 djw Rolled in Scott Smyer's changes
; <4> 1/14/91 CCH Rolled in Scott Smyer's changes.
; <3> 12/14/90 HJR Removed FPU equates (they are now local in non-crittest.a,
; removed some hard coded equates for ROM sizes.
; <2> 9/5/90 CCH Removed hardcoded offsets for ROM checksums and ROM size.
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Pre-Terror ROM comments begin here.
; ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; <4> 4/27/90 CV Rolling in changes from mainproj. Original comments below.
; {8} 4/24/90 SS Added equates for Critical, NonCritical and CritBit, which were
; previously defined in USTStartUp.a. Also, changed MyROMSums and
; MyROMEnd equates to offsets from the base of ROM instead of
; being hard coded addresses.
; {7} 4/20/90 SS Removed my local Egret equates and the SCSI equates. I'm now
; using the equates in the HWPrivateEqu and EgretEqu files as per
; suggestions which came up in the code review of 4/16/90.
; <3> 3/12/90 CV Rolling in changes from mainproj. Original comments below.
; {6} 3/9/90 SS Added equates for RBI support. Moved the SCSI register equates
; out of USTNonCritTsts.a into here.
; <2> 3/2/90 CV Rolling in changes from main project. Original comments below.
; {5} 2/27/90 SS Added equates for the new Egret test number and the sound
; interrupt test number. Also added 7 equates to support the
; Egret interface routines. I copied these equates from the
; EgretEqu.a file while they were still valid. I am now
; independant of that include file's future changes.
; <5> 1/3/90 SWC Rolled in changes from main project. Original comment below:
; {3} 12/28/89 SES Made changes for Mark Appleman. Added ErrFMCCacheTest.
; Removed ErrOSSCntrTest.
; <4> 12/27/89 SWC Rolled in changes from main project. Original comment below:
; {2} 12/26/89 GMR Added non-critical RPUTest error code. Removed the extra
; SizeMemory error codes (not needed any more).
; <3> 11/13/89 SWC Rolled in source changes from Reality. Original comments below:
; {1.5} 11/13/89 SES added error codes for FMC shift register test, OSS register test,
; OSS counter test and OSS interrupt test.
; {1.4} 8/18/89 rle added new error codes for use in reporting ram failures by bank
; <1.3> 5/16/89 rle changed V1DDRA again to make ok for test manager, keeping bit 4
; set for Gary; added new error codes for non-crit and critical
; tests; cut in floating point test equates; added bit definition
; (for 32-bit machines only!) to provide info that parity ram is
; installed
; <1.2> 4/30/89 GGD Changed V1DDRA to set bit 4 (vOverlay on MacII) to be an output
; to support universal ROM.
; <1.1> 4/28/89 rle moved initial stack pointer for RBV machines above screen;
; updated via data direction register for Aurora
; <1.0> 3/28/89 rle new file replaces equates previously found in StartTest files
;
;------------------------------------------------------------------------------
pOff EQU 2 ;VIA 2 power off bit
SV1 EQU 0 ;VIA 1 sound volume bit 0
SV2 EQU 1 ;VIA 1 sound volume bit 1
sync EQU 3 ;VIA 1 sync modem control bit
aStack EQU $2600 ;initial stack pointer
IF CPU ³ 020 THEN ; <13>
TROMCode EQU $AAAA5555 ;special code in Test ROMs <13>
myIntMask EQU $2500 ;Power off ints only allowed <13>
ELSEIF onMac | onMacPP | onHcMac THEN ; <13>
TROMCode EQU $55AAAA55 ;special code in Test ROMs <13>
K512 EQU $00080000 ;512K <13>
Meg1 EQU $00100000 ;1 Meg <13>
Meg2 EQU $00200000 ;2 Meg <13>
V1DDRA EQU $09 ;VIA 1 DDRA, test code only <13>
myIntMask EQU $2700 ;no ints allowed for Aladdin <13>
IF hasPowerMgr THEN ; <13>
myROMEnd EQU $00040000 ;256K ROM <13>
V1DDRB EQU $3D ;VIA 1 DDRB <13>
Jumper EQU 2 ;testmode <13>
banksize equ 32*2*1024 ;smallest bank size for laguna <13>
ELSE
myROMEnd EQU $00040000 ;256K ROM <8>
ENDIF
ENDIF
;---------------------------------------------------------------------------------
;
; PRAM non-critical test equates
;
NCFailFlag equ $F9 ;location of NC test failure flag
NCFailHist equ $F0 ;Starting PRAM address of NC test failure history
NCHistBytes equ $8 ;Number of NC test numbers in the history log
NCLastFailure equ $FC ;Start address of error code for last NC test failure
NCLstFailBytes equ $4 ;number of bytes in failure code
;---------------------------------------------------------------------------------
; Some delay constants (using the VIA reg access as a time constant <7>
delay325uS equ $100 ;VIA based delay for 325µsecs <7>
delay1mS equ $320 ;Delay for 1 mS <7>
; Some handy equates
cr EQU $0D ;carriage return character
lf EQU $0A ;line feed character
sec EQU $0C ;timer count for one second
nak EQU '?' ;nak for invalid request
ast EQU '*' ;an asterisk
AutoVector2 EQU $68 ;offset to AutoVector location for level 2 interrupt <5>
; _TestManager trap a0 points to this record
Ops EQU 0 ;Trap record offset to options
NumPass EQU 2 ;Trap record offset to options
RAMLow EQU 4 ;Trap record offset to RAM low address
RAMHigh EQU 8 ;Trap record offset to RAM high address
spare EQU 12 ;Trap record offset to spare longint
; Flag bit assignments for register d7
MsgQ EQU 16 ;a message is queued for output
SCCok EQU 17 ;the SCC has been inited
nosleep EQU 18 ;prevent sleep on sad mac? (16-bit machines) <v1.3>
parity EQU 18 ;is parity ram installed? (32-bit machines) <v1.3>
star EQU 19 ;an asterisk * has been received
aski EQU 20 ;set if using hex ascii format
echo EQU 21 ;echo received parameters
timer EQU 22 ;timer active if set
crlf EQU 23 ;append <cr-lf> if set
excp EQU 24 ;unexpected exception received
nmi EQU 25 ;the NMI switch was hit
test EQU 26 ;the VIA loopback was found
beok EQU 27 ;a BusError is expected and is OK
stop EQU 28 ;stop on error if set
loop EQU 29 ;loop on error if set
pram EQU 30 ;store test results in clock pRAM
boot EQU 31 ;boot system when done with this test
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; end of generic equates
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Signatures for the ROM based NMI routine to determine if the NMI is the
; result of an expected parity error
PGCParity equ 'PGCp' ;PGC style parity error (IIci)
RPUParity equ 'RPUp' ;RPU style parity error (IIfx)
OrwellParity equ 'Orwl' ;Orwell style parity error (Eclipse/Spike)
; Equates used for ROM Based Burnin (RBI) <6>
SigBytes EQU 'RBBI' ;RBI signature <6>
SCSIBIBytes EQU 'SCBI' ;SCSI RBI signature
SigLocs EQU $007C00FC ;PRAM Locations of signature bytes <6>
SCSIBILocs EQU $007800F8 ;PRAM Locations of SCSI Burnin signature
; Error codes for d7.w
ErrROM EQU $0001 ;major error code ROM CheckSum Test
ErrRAMX EQU $0002 ;major error code RAM first chunk
ErrRAMA EQU $0003 ;major error code Bank A
ErrRAMB EQU $0004 ;major error code Bank B
ErrAddr EQU $0005 ;major error code RAM addressing
ErrVIA1 EQU $0006 ;major error code VIA 1 access
ErrVIA2 EQU $0007 ;major error code VIA 2 access
ErrRAMC EQU $0008 ;major error code data buss high RAM
ErrMap EQU $0009 ;major error code MMU failure
ErrNUB EQU $000A ;major error code NUBUS access
ErrSCSI EQU $000B ;major error code SCSI access
ErrIWM EQU $000C ;major error code IWM access
ErrSCC EQU $000D ;major error code SCC access
ErrData EQU $000E ;major error code Data Bus test
ErrMac EQU $000F ;reserved for Macintosh DS compatibility
ErrPmgrSt equ $0010 ;major error code for pwrmgr self test
ErrSizeMem equ $0011 ;major error code for sizing memory
ErrSccIop equ $0012 ;major error code for SCC PIC access
ErrDynBus equ $0013 ;major error code for dynamic bus sizing <v1.3>
ErrPmgrTurnOn equ $0014 ;major error code for turning on power <v1.3>
ErrParRAM equ $0015 ;major error code for parity ram <v1.3>
ErrEgretInit equ $0030 ;major error code for unresponsive Egret <9>
ErrMapRAM equ $0080 ;major error code for mapper ram
ErrMapAddr equ $0081 ;major error code for mapper ram addr
ErrVidRAM equ $0082 ;major error code video ram data
ErrVidAddr equ $0083 ;major error code video ram addressing
ErrSCCReg equ $0084 ;major error code for scc register test
ErrSCCLoop equ $0085 ;major error code for scc internal loop test
ErrSCCTimer equ $0086 ;major error code for scc timer test
ErrViaTest equ $0087 ;major error code for via test
ErrSCSITest equ $0088 ;major error code for scsi test
ErrASCTest equ $0089 ;major error code for asc test
ErrPramTest equ $008A ;major error code for pram test
ErrRBVTest equ $008B ;major error code for RBV chip <v1.3>
ErrSWIMTest equ $008C ;major error code for swim chip <v1.3>
ErrFPU equ $008D ;major error code for floating point proc <v1.3>
ErrPGCTest equ $008E ;major error code for parity generator <v1.3>
ErrFMCRegTest equ $008F ;major error code for FMC shift register test <v1.5>
ErrFMCCacheTest equ $0090 ;major error code for FMC cache test <v1.5><3>
ErrOSSRegTest equ $0091 ;major error code for OSS register test <v1.5><3>
ErrOSSIntTest equ $0092 ;major error code for OSS interrupt test <v1.5>
ErrRPUTest equ $0093 ;major error code for RPU test
ErrEgretTest equ $0094 ;major error code for Egret test <5>
ErrTestSndInts equ $0095 ;major error code for Sound Interrupts test <5>
ErrTestCLUT equ $0096 ;major error code for CLUT RAM test <10>
ErrTestVRAM equ $0097 ;major error code for V8 video RAM test <11>
;
;The following equates are used in the non critical test table. The bit equate is used
; to test the state of the "Critical" bit
;
ErrEX EQU $FF00 ;major error code exception
VTEntries EQU 64 ;#entries in exeception vector table
;the following exception codes should be used for all new cpu's after mac II
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;the following exception codes were redone for the modern victorian and laguna so that
;the test number would not be clobbered by an unexpected exception.
;this way, you will know what test you were running when an exception occurred
;d7.l now looks like this:
;d7.uw = flag bits as before
;d7.lwub = exception code
;d7.lwlb = current test #
;the following exception codes are ored in with the current test/error code no.
; SRC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 68000/68020 exception codes used by Test Manager and power on tests
BECode EQU $0100 ;Bus Error exception code
ADCode EQU $0200 ;Address Error exception code
ILCode EQU $0300 ;illegal Error exception code
ZDCode EQU $0400 ;Zero divide Error exception code
CICode EQU $0500 ;Check inst Error exception code
TPCode EQU $0600 ;cpTrapcc,Trapcc,TrapV exception code
PVCode EQU $0700 ;Privilege violation exception code
TECode EQU $0800 ;Trace exception code
ATCode EQU $0900 ;Line A exception code
FTCode EQU $0A00 ;Line F exception code
UNCode EQU $0B00 ;unassigned exception code
CPCode EQU $0C00 ;CP protocol violation
FMCode EQU $0D00 ;format exception
SICode EQU $0E00 ;spurious interrrupt exception code
TNCode EQU $0F00 ;Trap inst exception code
L1Code EQU $1000 ;interrupt level 1
L2Code EQU $1100 ;interrupt level 2
L3Code EQU $1200 ;interrupt level 3
L4Code EQU $1300 ;interrupt level 4
L5Code EQU $1400 ;interrupt level 5
L6Code EQU $1500 ;interrupt level 6
L7Code EQU $1600 ;interrupt level 7
F1Code EQU $1700 ;FPCP bra or set on unordered cond
F2Code EQU $1800 ;FPCP inexact result
F3Code EQU $1900 ;FPCP divide by zero
F4Code EQU $1A00 ;FPCP underflow
F5Code EQU $1B00 ;FPCP operand error
F6Code EQU $1C00 ;FPCP overflow
F7Code EQU $1D00 ;FPCP signaling NAN
PCCode EQU $1E00 ;PMMU configuration
PICode EQU $1F00 ;PMMU illegal operation
PACode EQU $2000 ;PMMU access level violation