mac-rom/OS/UniversalTables.a

753 lines
38 KiB
Plaintext

;__________________________________________________________________________________________________
;
; File: UniversalTables.a
;
; Contains: Product decoder and info tables
;
; Written by: Horrorists, SuperMarioists, and Universalists everywhere
;
; Copyright: © 1991-1994 by Apple Computer, Inc. All rights reserved.
;
; Change History (most recent first):
;
; <SM107> 1/14/94 LB The product info table for TNTProto1 now uses the Fridgidaire
; floppy drive and media icons.
; <SM106> 12/13/93 PN Roll in KAOs and Horror changes to support Malcom and AJ
; machines.
; <SM105> 11/19/93 chp Add hasEnhancedLtalk ProductInfo flag to Cyclone/Tempest
; products. Support for both internal and external SCSI96 buses on
; TNT.
; <SM104> 11/17/93 KW added a 40 MHz wombat to the STP product tables.
; <SM103> 11/10/93 fau Added the TNT Product Info Tables.
; <SM102> 11/10/93 KW added STPs own productinfo tables. Thanks to rich.
; <SM101> 11/9/93 KW hacked in some changes for STP machines. Because of the hacks,
; old quadras, wombats probably will not boot. I will fix that
; and make less of a hack after our SCM build
; <SM100> 11/8/93 JRH boxDBLite16 is now boxPowerBookDuo250. boxDBLite20 is now
; boxPenLite.
; <SM99> 10/21/93 SAM Roll in <MC7> from cm900ftjesus.
; <MC7> 10/21/93 SAM Added SoundStereoMixing and SoundPlayAndRecord to PDM,
; ColdFusion, and CarlSagan's Universal tables.
; <SM98> 10/21/93 GMR Roll in <MC6> from mc900ftjesus.
; <MC6> 10/20/93 GMR Fixed the BartExists valid flag for CF so it properly does the
; optional check for it (as in PDM).
; <SM97> 10/10/93 SAM Roll in <MC4> and <MC5> from mc900ftjesus.
; <MC5> 10/10/93 SAM For PDM: Added hasEnhancedLTalk to PDM/ColdFusion/CarlSagan, cuz
; they do.
; <MC4> 10/10/93 SAM For PDM: Changed the PDM labels (since the evt support has been
; dropped). Removed hasSoftVBL from PDM/CF/CS. Added hasNewMemMgr
; to all three. Pointed Carl Sagan's decoder table ptr at PDM's
; instead of Cold Fusion's (which has a different internal SCSI
; address...)
; <SM96> 10/6/93 RC Take Out PDM EVT1 support
; <SM95> 10/1/93 JDR Updated the snd primitives routine names according to
; SndPrimitives.a.
; <SM94> 9/25/93 SAM Backed out the last change. The productInfo tables should be
; keyed off of a decoder type.
; <SM93> 9/15/93 PN Add hasAMIC into ProductInfo table for PDM to fix the Universal
; build
; <SM92> 8/20/93 chp The name of the Cyclone interrupt primitives table changed in
; InterruptHandlers.a. Reflect that change in ProductInfo.
; <SM91> 8/17/93 SAM Put forSmurf conds around all the smurf junk.
; <SM90> 08-16-93 jmp Changed the PDM VideoInfo record to reflect the fact that PDM
; uses Slot $9Õs sPRAM as is reserved in the NuBusInfo record for
; PDM. This fixes the problem where PDMs sPRAM kept getting blown
; away.
; <SM89> 8/13/93 KW adding two more smurf wombats
; <SM88> 8/12/93 BG Removed the ProductInfo for WLCD_C1 as it will never exist.
; Added ProductInfo (and associated pointers) for Carl Sagan.
; <SM87> 8/11/93 RC Enabled extra slots on PDM and Cold Fusion for Second Wave Nubus
; Expansion box
; <SM86> 8/11/93 KW added some productinfo tables for a few new smurf machines
; <SM85> 8/4/93 GMR Added separate NuBusInfo table for ColdFusion, and fixed the one
; for PDM.
; <SM84> 08-03-93 jmp Update the videoinfo records in this file to contain the new
; field from the HORROR sources.
; <SM83> 7/27/93 GMR Added Bart flags and base addresses to PDM/ColdFusion tables.
; <SM82> 7/14/93 PN Add hasHardPowerOff to MacLC external feature
; <SM81> 6/28/93 SAM Updated the ColdFusion family table to know about the second
; SCSI bus (ie the SCSI mgr can now handle it!)
; <SM80> 6/24/93 SAM Added one table for all the ColdFusions (w/o SCSI2exists for
; now)
; <SM79> 6/17/93 joe Added the SoundInLineLevel bit to the PDMInfo records so that
; Telecaster will turn on its mic preamp.
; <SM78> 6/14/93 kc Roll in Ludwig.
; <SM78> 6/10/93 SAM Add hasHardPowerOff to PDM info.
; <LW14> 4/29/93 fau Bug#: 1081636: Added the SoundLineLevelInput to Cyclone and
; Tempest. Changed all Sound8BitMono to SoundHasSoundIn. Added
; SoundStereoIn where appropriate. All these are to reflect
; changes in Reality.
; <LW13> 4/19/93 chp Fix some documentation.
; <LW12> 4/14/93 fau Added the required changes for moving CivicExists and
; SebastianExists to Cyclone/Tempest info tables. Added hasPRAM
; to slots A/B for Cyclone/Tempest.
; <SM77> 6/3/93 SAM Updated PDMs boxflags to correspond with the changes made in
; InternalOnlyEqu.a
; <SM76> 6/2/93 GMR Changed PDM's Interrupt table to point to it's own, unique table
; (for disabling level 3 ints).
; <SM75> 5/25/93 joe Now the PDM info tables use SndCntlPDM instead of
; SndCntlCyclone.
; <SM74> 5/19/93 GMR Moved Sonydriver icon tables over to this file, so we don't have
; to change the floppy driver for each new machine.
; <SM73> 5/6/93 SAM Turned SoftVBLs back on for both kinds of PDMs. Put the VIA1
; initialization back the way it should be (not the cyclone way) -
; for PDM.
; <SM72> 5/3/93 RC Turned on SerialDMA driver for AMIC 2 PDM and made sure that it
; was not turned on for PDM (EVT1)
; <SM71> 4/22/93 SAM Changed some offsets in the PDMAMIC2Info table that were added
; in the previous change.
; <SM70> 4/21/93 SAM Added an entry for the Evt2 PDMs which have a different CPU id.
; <SM69> 4/15/93 RC Turned off Serial DMA for PDM
; <SM68> 4/11/93 chp Add SerialDMA and HAL binding to ProductInfo of Cyclone,
; Tempest, and PDM. Fix usage of has68kEmulator for dc.l instead
; of BitVector32 because the latter doesn't accept encoded values.
; <SM67> 4/6/93 fau Removed the 'slotDisabled' from PDM's NuBus info table so that
; we can support the Ventana Board.
; <SM66> 4/5/93 jb Changed "SingerExists" to "AwacsExists" in hasHMC & infoPDM.
; <SM65> 3/31/93 chp Synchronize SuperMario with Ludwig changes.
; <LW9> 3/24/93 mal Removed hasinterrupt flag from slot 9 for Cyclone & Tempest.
; <LW8> 3/22/93 fau Added a new VideoInfoTempest to support a different board id for
; Tempest. Note that Cyclone33 and Cyclone40 share the same one,
; as do Tempest25 and Tempest33 -- this should probably change if
; these other machines ship.
; <LW7> 3/21/93 fau Changed the DefaultRSRC for Cyclone40/33 to 4 (maybe NonFPU)
; from 3 (FPU only). These should really be equates.
; <SM64> 3/5/93 CCH Added MaceExists to PDMInfo and Mace address to HMCDecoderInfo.
; <LW6> 2/26/93 fau Updated the ID for Cyclone40 (HW requested an $F --I don't like
; it but tough). Removed all support for Cyclone EVT3.
; <LW5> 2/24/93 chp Cyclone VIA1 port A initialization updated to take advantage of
; the new wait/request multiplexer in the rev. 04 PSC.
; <LW4> 2/15/93 FU Moved the InfoCycloneEVT3 record to be after the other 4 cyclone
; ones, so that we always compare first against a YMCA-based
; machine. Fixed the offset of a couple of tables in
; InfoCyclone40 that were using InfoCyclone33 as their base!
; <LW3> 2/12/93 GS Updated the InfoCyclone40 record to conatin the new CPUID for
; the 40MHz Cyclone.
; <SM63> 2/11/93 CSS Update Vail tables to indicate Egret8 and VDACAddr (SONORA) is
; valid. So that Vail CPU will boot again with SuperMario.
; <SM62> 2/8/93 CSS Update from Horror: Add OrwellExists to Quadra based machines.
; This to get the test TestFor OrwellExists to work in the SCSI
; manager to determine whether to run the SCSI96 SCSI manager or
; the SCSI96BIOS SCSI manager. This test may not be the best test
; for this, but this is the way it was in Horror.
; <SM61> 2/5/93 SAM Touched up the last touchup. Sorry about that.
; <SM60> 2/5/93 SAM Touched up the last checkin.
; <SM59> 2/5/93 RC Added has68kEmulator to Smurf on Wombat
; <SM57> 2/5/93 SAM Hey, PDM supports 256 mb of RAM now. How much does yours?
; <SM56> 2/2/93 GMR Added SWIM3Exists flag to PDM tables.
; <SM55> 1/27/93 RC Added the AMICExists flag to PDM
; <LW2> 1/22/93 fau Expanded the RamInfoTempest table to include all 8 possible
; banks.
; <SM54> 1/15/93 RC Took out the auto RAM Disk on Doot of PDM and reset the RAM size
; to 11 Meg
; <SM53> 1/14/93 PN Add MacIIsiIntTbl and SndCntlMacIIsi tables for Macsi to make
; SuperMario boot on si again.
; <SM52> 01-13-93 jmp Pointed VideoInfo Pratt at the CSC super sResource directory.
; <SM51> 01-11-93 jmp Updated various BoxFlag names.
; <SM50> 1/10/93 RC SWIM support worked on for Smurf on Wombat
; <SM49> 1/10/93 RC added IWM and SoftPower flags to PDM
; <SM48> 12/23/92 RC Added Support for Smurf on Wombat
; <SM47> 12/21/92 SWC Removed the InfoPrattUnknown ProductInfo table since Pratt has a
; CPU ID register and thus has no need of an "unknown" table.
; <SM46> 12/17/92 RB Removed some of the LC930 conditionals. Added back other hasXXXX
; conditionals to make it easier to build 1 off 1 Meg ROMs.
; Rescued the IIsi from the grave. Added hasYMCA for Cyclone
; machines and hasHMC for PDM.
; <SM45> 12/9/92 SAM Changed the CPU ID for PDM . Added 3 additional CPU IDs for the
; other PDM "boxes."
; <SM44> 12/9/92 jmp Changed PDMÕs VideoInfo record so that the physical framebuffer
; base is now at 0 and not 1M. Also, reflected this changed in
; the logical base, as well.
; <SM43> 12/5/92 jmp Temporarily pointed BlackBirdÕs VideoInfo tables to the
; ÒunknownÓ directory since CSC wonÕt be ready for initial
; bring-up (weÕll be using the VSC MMU-based DeclData instead).
; <SM42> 12/5/92 SWC Added special sound table for DJMEMC machines so their sound
; hardware initialization can also whack built-in video.
; <SM41> 12/4/92 fau Added StereoPlayandRecord and StereoMixing external features
; flags to Cyclone-type machines.
; <SM40> 12/4/92 fau Added tables for Tempest33 and Cyclone40 and update to use new
; boxflag names for Cyclone-type machines. Backed out <SM36>.
; <SM39> 12/1/92 EH Adding Tables for Blackbird.
; <SM38> 12/1/92 SWC Added IntHandlerPtr, a pointer to the interrupt handler setup
; table, to the ProductInfo tables. Removed all the Mac II family
; tables.
; <SM37> 11/30/92 dwc Added AMIC address to HMCDecoderTable for PDM.
; <SM36> 11/23/92 mal Moved CIVIC baseaddr to new location in DecoderInfo Table since
; DAFBAddr split with CIVICAddr.
; <SM35> 11/23/92 SWC Added an IMPORT of CudaADBTable and pointed all the Cuda-based
; machines to it.
; <SM34> 11/20/92 fau Modified the BasesValid2 for Tempest to not have any flags so
; that GetExtHardwareInfo will uses the YMCA decoder default bases
; to look and see if a MUNI exists. Added MUNIExists to Cyclone,
; CycloneEVT4 and to MMC/YMCADecoder.
; <SM33> 11/19/92 SWC Added PowerManagerPtr, a pointer to the Power Manager primitives
; table, to the ProductInfo tables. Put build conditionals back
; in. Obsoleted old tables and grouped them at the end of the file
; for later permenant deletion.
; <SM32> 11/11/92 fau Add ROM external feature bit and set on for Tempest to indicate
; that machine has Hard Power off.
; <SM31> 11/10/92 RB Moved four export labels that are undefined under an LC930
; build.
; <SM30> 11/7/92 jmp Eliminated the obsolete DAFB and LC VideoInfo records.
; <SM29> 11/7/92 rab Roll in Horror changes. Comments follow:
; <H64> 10/17/92 BG Added information for a possible WLCD33.
; <H63> 10/16/92 JC Add ROM external feature bit and set on for Vail and WLCD to
; indicate that machine has Hard Power off so it can be used by a
; disk based gestalt patch so that we do not need to add
; additional items to the table in the disk patch.
; <H62> 9/10/92 NJV Changed Vail table to no longer support simultaneous play and
; record and pointed sound primitives to new Vail sound primitives
; table.
; <H61> 8/25/92 BG Modified CPUIDProductLookup table to add a '-*' to the Wombat40F
; table entry. Oops.
; <H54> 6/30/92 HJR Cleaned up the NubusInfoDartanian and modified VideoInfoDart to
; use second wrap of the GSC to prevent QuickDraw bug.
; <H53> 6/26/92 BG Modified InfoWombat20, Wombat25 to have the correct combo
; resource byte for having an optional FPU (040LC or 040).
; <H52> 6/26/92 BG Added Wombat20,40 and WLCDc1 to the table so that they'll be
; looked for.
; <H51> 6/22/92 BG Added WLCDc1, Wombat20 and Wombat40L universal table entries, as
; Prod. Marketing seems to think they will become products
; sometime in the near future.
; <H50> 6/16/92 BG Changed the WLCD productInfo tables to point at the WLCD NuBus
; info. Also changed WLCD default resource combo to 4.
; <H49> 6/10/92 BG Changed the separator in the RamInfoWombat table from 'SamB' to
; its hex equivalent. For some reason, Asm was interpreting that
; as a PASCAL string (??) and adding a length byte to the start of
; it.
; <H48> 6/9/92 BG Fixed VIA1InitWombat to correctly set PA6 as an INPUT.
; <H47> 6/4/92 NJV Changed InfoVail tables since we can now play and record
; simultaneously.
; <H46> 6/3/92 BG When I updated the InfoWombat33F ProductInfo entry, I forgot to
; change the VIA1 ID bits. Fixed.
; <H45> 6/3/92 BG Rearranged the RamInfoWombat table to have the table-separator
; marker after banks 6&7 to make the djMEMCMerge code in
; SizeMemPatch.a a little easier to deal with.
; <SM28> 11/3/92 SWC Changed SlotEqu.a->Slots.a.
; <SM27> 10/30/92 HY Added SupportsROMDisk feature flag in InfoMacLC product info table.
; <SM26> 10/27/92 fau Added Tempest support. Removed ASCExists from Cyclone's
; universal info and added DSPExists and MACEExists to it.
; <SM25> 10/25/92 HY Changed boxflag for InfoMacLC product info table to boxMacLCII.
; <SM24> 10/22/92 fau Updated NubusInfoCyclone to reenable the slots that have been
; disabled way back in Pandora days.
; <SM23> 10/22/92 fau Deleted MMCExists and YMCAExists from all Cyclone related info.
; Added DSPExists and MACEExists to those structures.
; <SM22> 10/20/92 CCH Added InfoPDM to list of CPUID machines.
; <SM21> 10/18/92 CCH Added support for the PDM CPU.
; <SM20> 10/12/92 RB For the 1 Meg LC930 ROM, exclude all tables not related to the
; LC hardware.
; <SM19> 9/30/92 fau Added support for Cyclone EVT4. This included a new memory
; decoder YMCA added to the DecoderKind record, a new
; CycloneInfoEVT4 record and a new RamInfo record for EVT4. Also,
; used bit 21 that was unused in the universal bits for the YMCA.
; It should eventually be moved to the bit that the MMC uses right
; now.
; <SM18> 9/25/92 RB Added a ROM base address for dbLite & Cyclone when booting from
; RAM that is set to 4 Meg. Made the LC table work with LC II
; again. This will prevent the normal LC from booting, but at this
; point we need LC II to boot and not LC.
; <SM17> 9/9/92 RB Make the Mac LC boot on SuperMario by moving up the ProductInfo
; for the LC. Changed the DecoderInfo record for VISA (MacLC) to
; match the real LC ROM (Somehow it got screwed up) and added a
; sound control vector address for LC.
; <SM16> 9/8/92 chp For Cyclone, program the VIA1 port A W/Req bit as an output.
; This makes it a flip-flop which is initialized to Ò1,Ó disabling
; LocalTalk from polling serial characters on SCC port A.
; <SM15> 8/26/92 PN Set ASCBase globals to a safe location on Cyclone so that
; application that writes to ASCBase will safely write to ROM
; <SM14> 8/24/92 PN Take out CycloneboxEVT1 stuff
; <SM13> 8/20/92 CCH Changed Orwell address to $50F0xxxx space instead of $5000xxxx
; space.
; <SM12> 8/17/92 CCH Extended universal support to 96-bit, added versions for
; ProductInfo and DecoderInfo records, created DecoderAddr field
; in DecoderInfo for memory controller addresses, moved OrwellAddr
; field to DecoderAddr field, and started using BitVector32 macro.
; <SM10> 7/27/92 CSS Disable NewAge for EVT1.
; <SM9> 7/13/92 CCH Added conditionalized support for Cub Card on Quadra 700.
; <SM8> 6/21/92 RB Added a table for Cyclone EVT2, renamed the old Cyclone tables
; CycloneEVT1. The EVT1 support will be deleted later, after all
; systems have been upgraded to EVT2.
; <SM7> 6/18/92 RB Added a compile time conditional to temporarily support EVT1
; Cyclone. Look for 'forEVT1'
; <SM6> 6/4/92 KW (HJR,H44) Added dockingSlot to Dartanian slot E and enabled
; Slots C & D for Monet.
; (BG,H43) Modify some of the Wombat/WLCD universal table entries
; for optional FPU info, as well as an updated VIA1 CPU ID
; selection scheme.
; (NJV,H42) Adding SoundPlayAndRecord bit to ProductInfo Tables of
; machines that can play and record simultaneously.
; (BG,H41) Added Wombat(20,25,33,40) and WLCD (20,25) Universal
; information.
; (SWC,H40) Updated RamInfoDBLite for expandability up to 40MB.
; (jmp,H39) Changed the ÒsRsrcZydecoDirÓ name to the more generic
; ÒsRsrcBFBasedDirÓ (BF=BoxFlag) name.
; (AL,H38) Updated the Sonora info for the IHT entry point
; (changed from $58000000 to $50fc0000).
; The following H24..H21 came from Universal.a in Horror
; (NJV,H24) Added SoundPlayAndRecord bit to ProductInfo Tables of
; machines that can play and record simultaneously.
; (jmp,H23) Fixed a problem in the VideoInfo MacLC record that I
; caused in <H21>.
; (jmp,H22) Changed the ÒsRsrcZydecoDirÓ name to the more generic
; ÒsRsrcBFBasedDirÓ (BF=BoxFlag) name.
; (jmp,H21) Pruned the array of V8 VideoInfo records Õcuz we no
; longer need Õem.
; <SM5> 5/28/92 KW Some Horror Stuff. Moved VisaDecoderTable entry in
; DecoderLookup in front of Niagra. Changed VisaDecoderTable.
; Added PatchRomAddr to OrwellDecoderTable. Added
; (1<<PatchROMExists) to InfoQuadra900,InfoQuadra700.
; VideoInfoDAFB changed to F900000. Added H20 to nubusInfoMacLC
; <SM4> 5/26/92 CSS Cyclone roll in.
; <SM3> 5/25/92 RB Second pass of Cyclone changes...Removing Carnation and 4Square
; tables.
; <SM2> 5/22/92 RB Cyclone changes, added tables for Cyclone, and CUDA.
; <SM1> 5/2/92 kc Roll in Horror. Comments follow:
; <H34> 4/21/92 JC Add SonoraExistsBit to ExtValid flags for Sonora based machines.
; <H33> 4/20/92 NJV Adding changes needed to support Patch ROMs
; <H32> 4/19/92 JC Update Vail and Carnation Nubus Info tables. Move onboard video
; PRAM to slot B.
; <H31> 4/6/92 SWC Fixed DBLite's diagnostic ROM base address.
; <H30> 4/3/92 SWC Added ADB/DebugUtil primitives vector table to ProductInfo for
; each machine.
; <H29> 3/17/92 SWC Renamed InfoDBLite->InfoDBLite25 and InfoDBLiteLC->InfoDBLite33
; to reflect reality. Added InfoDBLite16 and InfoDBLite20 in case
; we decide to use them.
; <H28> 2/25/92 SWC Added SoundStereoMixing to the external features for the
; Carnation and Dartanian boxes.
; <H27> 2/21/92 HJR Enabled VDAC on NiagraInfo.
; <H26> 2/20/92 JC Update Carnation product info tables to enable Sonic when second
; rev Sonoras are available.
; <H25> 2/19/92 JC Update CPUID Register values for Carnation when not using 1st
; rev Sonora.
; <H24> 02/18/92 jmp Conditionalized (with ÒhasSonora1Ó) the video base addresses for
; the Sonora-based machines for the upcoming turn of the Sonora
; hardware.
; <H23> 2/18/92 JC Changed boxCarnation to boxCarnation33 and boxVail to boxVail25
; and added support for other Sonora based CPUs when hasSonora1 is
; false.
; <H22> 2/14/92 JC Remove alternate ROM Physical address for Sonora based machines.
; <H21> 2/13/92 HJR Added NiagraExistsBit to Niagra's ProductInfo external features,
; since Niagra is just a minor variant of Jaws.
; <H20> 1/30/92 SWC DBLite NuBus: marked slot 9 disabled since we'll be using its
; PRAM for Power Manager stuff, and enabled slots C and D so that
; NuBus cards installed in Gemini (docking station) will be
; recognized.
; <H19> 1/20/92 JC Use alternate ROM physical Address on Sonora based machines to
; be able to support Double Exposure on Vail and Enable FPUs on
; Carnation.
; <H18> 01/11/92 jmp Fixed some types in the InfoCarnation tables.
; <H17> 01/11/92 jmp Added in the two new fields for each of the VideoInfo records in
; this file.
; <H16> 1/9/92 SWC Marked slot E in DB-Lite's NubusInfo table as a docking slot so
; we can figure out which it is without hard-coding it someplace
; else.
; <H15> 12/20/91 JC Add Carnation 3 slot 16/25/33 Mhz and Vail 16/25 Mhz
; <H14> 12/16/91 HJR Add Tables for Niagra and Dartanian.
; <H13> 12/5/91 SAM Removed Vail's RAMInfo table cuz it is now indentical to
; Carnation's table.
; <H12> 12/4/91 SWC Added 3 new RAM banks to DB-Lite's RAM info table.
; <H11> 12/4/91 SWC Updated DB-Lite's CPU ID value for final hardware, and added a
; ProductInfo table for DB-Lite LC. Moved the CPU ID register
; description and the comment list containing the supported
; machines here so it'll be next to the CPUID ProductInfo table.
; <H10> 12/4/91 CCH Changed DBLite, Carnation, Vail to use ProductInfo-based CPUID
; register scheme. Also reorganized file to be info-type based.
; <H9> 11/26/91 jmp Added a ÒVDACÓ for DBLite and updated the framebuffer base
; address for the DBLite and Sonora tables.
; <H8> 11/25/91 SAM Added Vail/Carnation RAMInfo tables.
; <H7> 11/25/91 CCH Modified Carnation/Vail's NuBus info table to not nuke
; SecondWave. Also used standard VIA equates.
; <H6> 10/30/91 SWC Added IWM base address to MSC/DB-Lite tables since we now have
; dynamic support for it in the Sony driver.
; <H5> 10/22/91 SWC Removed references to MSCAddr and MSCExists and added
; MSCChipBit, since MSC is just a variant of the RBV.
; <H4> 10/15/91 SWC Added clock/PRAM primitives vector table to ProductInfo for each
; machine.
; <H3> 8/28/91 rww More header cleanup.
; <H2> 8/28/91 rww Header cleanup.
; <H1> 8/28/91 rww First checked in.
;__________________________________________________________________________________________________
; From now on, new product and decoder tables should go here. Since we can't patch these
; tables anyway, from now on they'll be located just underneath the dispatch table at link
; time, so the file can grow to fill the remaining free space. This should make
; it much easier to add new CPUs.
; The DB-Lite and unknown decoder and info tables were moved from Universal.a in order to
; free up some space there (about 350 bytes).
Print Off
Load 'StandardEqu.d'
Include 'HardwarePrivateEqu.a'
Include 'UniversalEqu.a'
Include 'Slots.a'
Include 'DepVideoEqu.a'
include 'ROMEqu.a'
Print On
Machine MC68030
UnivTables Proc
With DecoderKinds,DecoderInfo,ProductInfo,NuBusInfo
IMPORT SNDCNTLSPIKE ; <SM17>
IF hasVIAClock THEN
IMPORT RTCClockPRAM ; <H4>
ENDIF
IF ViaADB THEN
IMPORT ViaADBTable ; <H30>
ENDIF
IF hasPwrMgrClock THEN
IMPORT PMGRClockPRAM ; <H4>
ENDIF
IF PwrMgrADB THEN
IMPORT PMgrADBTable ; <H30>
ENDIF
IF hasEgret THEN
IMPORT EgretClockPRAM ; <H4>
IMPORT EgretADBTable ; <H30>
IMPORT CudaClockPRAM ; <SM2>
IMPORT CudaADBTable ; <SM35>
ENDIF
IF hasOrwell THEN
IMPORT QuadraADBTable ; <H30>
ENDIF
IF hasProtectedPRAM THEN
IMPORT NoPRAMClockPRAM ; <H4>
ENDIF
IF IopADB THEN
IMPORT IOPADBTable ; <H30>
ENDIF
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; CPUID Product Lookup Tables
;
; All CPUs listed in this table support the CPU ID register scheme.
;
; For truly hip, way new machines, a new CPU ID is defined (which hopefully will allow
; us to define new computers to our hearts' content without worrying about running out
; of IDs. The new register resides at the top of I/O address space ($5FFFFFFC) and is
; 32-bits long. It looks like this:
;
; Bits: : 31 - 16 : 15 - 12 : 11 : 10 - 0 :
; +-------------------------+---------+-----+-----------------+
; | signature, always $A55A | 0 to 15 | 0/1 | id field |
; +-------------------------+---------+-----+-----------------+
;
; Bits 15 to 12 represent the design center:
; b15 b14 b13 b12 Design center
; 0 0 0 0 High volume
; 0 0 0 1 Portables
; 0 0 1 0 High performance CISC
; 0 0 1 1 High performance RISC
; Bit 11 is a 0 if the whole ID exists in this ID register, 1 otherwise
; Bits 10 to 0 are the actual ID, per design center
;
; So, the currently defined machines and their CPU IDs are:
;
; %1010010101011010 0000 0 00000000000 $A55A 0000 high volume, ID 0: Vail 16MHz
; %1010010101011010 0000 0 00000000001 $A55A 0001 high volume, ID 1: Vail 25MHz
; %1010010101011010 0010 0 00000000010 $A55A 0003 high volume, ID 3: Vail 33MHz
;
; %1010010101011010 0001 0 00000000000 $A55A 1000 portables, ID 0: Yeager
; %1010010101011010 0001 0 00000000001 $A55A 1001 portables, ID 1: reserved
; %1010010101011010 0001 0 00000000010 $A55A 1002 portables, ID 2: Escher (33MHz) <H65>
; %1010010101011010 0001 0 00000000011 $A55A 1003 portables, ID 3: reserved (was PenLite)
; %1010010101011010 0001 0 00000000100 $A55A 1004 portables, ID 4: Duo 210 (25MHz)
; %1010010101011010 0001 0 00000000101 $A55A 1005 portables, ID 5: Duo 230 (33MHz)
; %1010010101011010 0001 0 00000000110 $A55A 1006 portables, ID 6: DBLite (16MHz)
; %1010010101011010 0001 0 00000000111 $A55A 1007 portables, ID 7: reserved 16MHz system
; &1010010101011010 0001 1 00000001000 $A55A 1008 portables, ID 8: BlackBird
;
; %1010010101011010 0001 0 00000010000 $A55A 1010 portables, ID 10: was an MBT system (yeager) not used
;
; %1010010101011010 0010 0 00000000000 $A55A 2000 high perf CISC, ID 0: Carnation
;
; %1010010101011010 0001 0 00000000111 $A55A 1808 portables, ID 0: Blackbird <SM39>
; %1010010101011010 0001 0 00000000111 $A55A 1809 portables, ID 1: reserved
; %1010010101011010 0001 0 00000000111 $A55A 180a portables, ID 2: reserved
; %1010010101011010 0001 0 00000000111 $A55A 180b portables, ID 3: reserved
; %1010010101011010 0001 0 00000000111 $A55A 180c portables, ID 4: reserved
; %1010010101011010 0001 0 00000000111 $A55A 180d portables, ID 5: reserved
; %1010010101011010 0001 0 00000000111 $A55A 180e portables, ID 6: reserved
; %1010010101011010 0001 0 00000000111 $A55A 180f portables, ID 7: reserved
;
; %1010010101011010 0010 1 01110101101 $A55A 2BAD high perf CISC ID 3AD: Wombat 20 MHz
; %1010010101011010 0010 1 01110101101 $A55A 2BAD high perf CISC ID 3AD: Wombat 25 MHz
; %1010010101011010 0010 1 01110101101 $A55A 2BAD high perf CISC ID 3AD: Wombat 33 MHz
; %1010010101011010 0010 1 01110101101 $A55A 2BAD high perf CISC ID 3AD: Wombat 40 MHz
; %1010010101011010 0010 1 01110101101 $A55A 2BAD high perf CISC ID 3AD: WLCD 20 MHz
; %1010010101011010 0010 1 01110101101 $A55A 2BAD high perf CISC ID 3AD: WLCD 25 MHz
;
; %1010010101011010 0011 0 00000010000 $A55A 3010 high perf RISC, ID 10: PDM <SM45>
; %1010010101011010 0011 0 00000010001 $A55A 3011 high perf RISC, ID 11: PDM (PDM in QFC)
; %1010010101011010 0011 0 00000010010 $A55A 3012 high perf RISC, ID 12: PDM (Carl Sagan)
; %1010010101011010 0011 0 00000010011 $A55A 3013 high perf RISC, ID 13: PDM (Cold Fusion)
;
; %1010010101011010 0011 0 00000010000 $A55A 3020 high perf RISC, ID 20: TNT
;
; %1010010101011010 0010 1 01000110000 $A55A 2830 Hi End Mac, ID 0: Cyclone 25/33/40 Mhz <SM7><SM26>
; Supplemental Cyclone/Tempest info in YMCA regs: M17 M16 M15 M14 <SM3><SM7><SM26>
;
; Cyclone33 : 0 1 1 1 ID = $7
; Cyclone40 : 1 1 1 1 ID = $F
; Tempest25 : 1 0 1 1 ID = $B
; Tempest33 : 1 0 0 0 ID = $8
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
EXPORT ProductLookup,CPUIDProductLookup,DecoderLookup,InfoNewWorld
ALIGN 4
CPUIDProductLookup
dc.l InfoNewWorld-*
dc.l 0 ; end of list
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Table of Unclear Purpose
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; These look like CPUID fields?
dc.l $3035
dc.l $0190
dc.l $3041
dc.l $01F8
dc.l 0
dc.l 0
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Product Lookup Table
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ProductLookup
dc.l 0 ; end of list
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Decoder Lookup Table
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
DecoderLookup
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Product Info Tables
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IMPORT SndCntNewWorld, NWClockPRAM, NWADBTable, NWIntTbl
; NewWorld product table (the only one)
ALIGN 4
InfoNewWorld
dc.l 0 ; no decoder info
dc.l RamInfoNewWorld-InfoNewWorld ; offset to ram bank info
dc.l VideoInfoNewWorld-InfoNewWorld ; offset to video info
dc.l NuBusInfoNewWorld-InfoNewWorld ; offset to NuBus info
dc.w 0|\ ; hwCfgFlags
(1<<hwCbClock)|\ ; New clock chip present
(1<<hwCbMMU) ; Some kind of MMU present
dc.b BoxExtended ; product kind
dc.b 26 ; decoder kind
dc.w $3FFF ; ROM85, New ROMs, Power Off ability.
dc.b 4 ; default ROM Resource configuration
dc.b ProductInfoVersion ; ProductInfo version
BitVector32 ; Flags for valid base addresses 0-31
BitVector32 \ ; Flags for valid base addresses 32-63
30
BitVector32 ; Flags for valid base addresses 64-95
dc.l \ ; Flags for valid ext feature flags 0-31
(SoundHasSoundIn)|\ ; Has 8-bit mono sound input
(Sound16Bit)|\ ; has 16-bit hardware
(SoundStereoIn)|\ ; has stereo sound input
(SoundStereoOut)|\ ; has stereo sound output
(SoundStereoMixing)|\ ; has stereo mixing
(SoundPlayAndRecord)|\ ; can Play and Record simultaneously
(1<<SoundLineLevel)|\ ; requires line level on sound input port
(1<<SupportsIdle)|\ ; supports idle mode
(1<<hasNewMemMgr)|\ ; supports idle mode
(1<<SoftVBL) ; SoftVBL is valid
dc.l \ ; Flags for valid ext feature flags 32-63
(1<<has68kEmulator//32)|\ ; This ROM starts up with a 68k emulator
(1<<37//32)|\
(1<<38//32)|\
(1<<50//32)
dc.l 0 ; Flags for valid ext feature flags 64-95
dc.b $00,$00,$00,$00 ; don't check any VIA bits
dc.b $00,$00,$00,$00 ; anything with this decoder matches
dc.l $1a4 ; VIA1 init info
dc.l 0 ; no VIA2 init info
dc.l SndCntNewWorld-InfoNewWorld ; sound control vector table
dc.l NWClockPRAM-InfoNewWorld ; clock/PRAM vector table
dc.l NWADBTable-InfoNewWorld ; ADB/DebugUtil vector table
dc.l 0 ; no Power Manager primitives
dc.l NWIntTbl-InfoNewWorld ; interrupt handlers table
dc.l 0 ; no internal modem manager
dc.w cpuIDRISC|\ ; CPU ID: RISC design center
cpuIDinReg|\ ; CPU ID: register contains complete ID
$35 ; specific ID
dc.w 0 ; spare
dc.l IconInfoNewWorld-InfoNewWorld ; offset to ICON info
dc.l $190
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Decoder Tables
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ALIGN 16
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; RAM Info Tables
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
RamInfoNewWorld
dc.l $00800000 ; 8 MB is smallest bank
dc.l $00000000,$40000000 ; 1 GB Bank A
dc.l $FFFFFFFF ; end of table
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; Video Info Tables
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
VideoInfoNewWorld
dc.w -1
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
; NuBus Info Tables
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
NuBusInfoNewWorld
dc.b 0|(1<<hasPRAM)|(1<<canInterrupt) ; slot 0
dc.b 0|(1<<slotDisabled) ; slot 1
dc.b 0|(1<<slotDisabled) ; slot 2
dc.b 0|(1<<slotDisabled) ; slot 3
dc.b 0|(1<<slotDisabled) ; slot 4
dc.b 0|(1<<slotDisabled) ; slot 5
dc.b 0|(1<<slotDisabled) ; slot 6
dc.b 0|(1<<slotDisabled) ; slot 7
dc.b 0|(1<<slotDisabled) ; slot 8
dc.b 0|(1<<slotDisabled) ; slot 9
dc.b 0|(1<<slotDisabled) ; slot A
dc.b 0|(1<<slotDisabled) ; slot B
dc.b 0|(1<<slotDisabled)|(1<<hasPRAM) ; slot C
dc.b 0|(1<<slotDisabled)|(1<<hasPRAM) ; slot D
dc.b 0|(1<<slotDisabled)|(1<<hasPRAM) ; slot E
dc.b 0 ; slot F
IconTable ; <SM74>
IconInfoNewWorld
dc.l DisketteIcon-IconInfoNewWorld ; drive 1 logical icon,
dc.l DisketteIcon-IconInfoNewWorld ; physical icon,
dc.w $0004 ; primary int removable, SuperDrive
dc.l DisketteIcon-IconInfoNewWorld ; drive 2 logical icon,
dc.l DisketteIcon-IconInfoNewWorld ; physical icon,
dc.w $0104 ; secondary ext removable, SuperDrive (Actually there is none...)
DisketteIcon
dc.w $7FFF,$FFF8,$8100,$0104,$8100,$7102,$8100,$8901
dc.w $8100,$8901,$8100,$8901,$8100,$8901,$8100,$8901
dc.w $8100,$7101,$8100,$0101,$80FF,$FE01,$8000,$0001
dc.w $8000,$0001,$8000,$0001,$8000,$0001,$8000,$0001
dc.w $8000,$0001,$8000,$0001,$87FF,$FFE1,$8800,$0011
dc.w $8800,$0011,$8800,$0011,$8800,$0011,$8800,$0011
dc.w $8800,$0011,$8800,$0011,$8800,$0011,$8800,$0011
dc.w $8800,$0011,$8800,$0011,$8800,$0011,$7FFF,$FFFE
dc.w $7FFF,$FFF8,$FFFF,$FFFC,$FFFF,$FFFE,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$7FFF,$FFFE
dc.w $0 ;old HD-20 driver drive ID string (null here)
_AssumeEq (DisketteIcon-IconTable),((DisketteIcon-IconTable)>>1)<<1
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; VIA Initialization Value Tables
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
dINPUT EQU 0
dOUTPUT EQU 1
VIA1InitNewWorld
dc.b \ ; vBufA initial value
(0<<vSync)|\ ; Synchronous modem disabled (active high)
(1<<4)|\ ;
(0<<6) ;
dc.b \ ; vDIRA initial value
(dOUTPUT<<vSync)|\ ; Synchronous modem is an output
(dOUTPUT<<4)|\ ;
(dOUTPUT<<6) ;
dc.b \ ; vBufB initial value
(1<<vXcvrSesBit)|\ ; Egret interrupt (xcvr session)
(1<<vViaFullBit)|\ ; Egret via full
(1<<vSysSesbit) ; Egret system session
dc.b \ ; vDIRB initial value
(dINPUT<<vXcvrSesBit)|\ ; xcvr session is an input
(dOUTPUT<<vViaFullBit)|\ ; viafull is an output
(dOUTPUT<<vSysSesbit) ; system session is an output
dc.b \ ; vPCR initial value
(%0<<0)|\ ; CA1 input neg active edge (60Hz interrupt)
(%000<<1)|\ ; CA2 (no connection)
(%0<<4)|\ ; CB1 input neg active edge (ADB clock)
(%000<<5) ; CB2 input neg active edge (ADB data)
dc.b \ ; vACR initial value
(%0<<0)|\ ; PA latch disable
(%0<<1)|\ ; PB latch disable
(%111<<2)|\ ; SR enabled for Egret
(%0<<5)|\ ; T2 timed interrupt
(%00<<6) ; T1 timed interrupt, PB7 disabled
dc.b $00
dc.b $58
dc.b $00
dc.b $00
dc.b $00
dc.b $00
dc.b $00
dc.b $00
EndProc
End