-
Notifications
You must be signed in to change notification settings - Fork 4
/
UniversalTables.a
7799 lines (7197 loc) · 364 KB
/
UniversalTables.a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
;__________________________________________________________________________________________________
;
; 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
ALIGN 4
CPUIDProductLookup
IF hasHMC THEN ; <SM46>
dc.l InfoPDM-* ; PDM
dc.l InfoPDMcoldFusion-* ; PDM (Cold Fusion) <SM70>
dc.l InfoPDMCarlSagan-* ; PDM (Carl Sagan) <SM88>
ENDIF ; <SM46>
IF hasPratt THEN
dc.l InfoBlackbird-* ; Blackbird <SM39>
ENDIF
IF hasMSC THEN
dc.l InfoYeager-* ; Yeager with real MBT chip
dc.l InfoPowerBookDuo210-* ; PowerBook Duo 210
dc.l InfoPowerBookDuo230-* ; PowerBook Duo 230
dc.l InfoPowerBookDuo235-* ; PowerBook Duo 235 (230+active matrix)
;dc.l InfoEscher-* ; Escher 33MHz <H65>
ENDIF
IF hasSonora THEN
dc.l InfoVail16-* ; Vail 16 Mhz
dc.l InfoLCIII-* ; Vail 25 Mhz
dc.l InfoVail33-* ; Vail 33 Mhz <SM29>
ENDIF
IF hasDJMEMC THEN
dc.l InfoWombat20-* ; Wombat @ 20 Mhz in Lego packaging <H52><SM29>
dc.l InfoCentris650-* ; Wombat @ 25 Mhz in Lego packaging <H41><SM29>
dc.l InfoQuadra650-* ; Wombat @ 33 Mhz in Lego packaging <H41><SM29>
dc.l InfoQuadra800-* ; Wombat @ 33 Mhz in Frigidaire packaging <H41><H45><SM29>
dc.l InfoWombat40-* ; Wombat @ 40 Mhz in Lego packaging <H41><SM29>
dc.l InfoWombat40F-* ; Wombat @ 40 Mhz in Frigidaire packaging <H52><H61><SM29>
dc.l InfoCentris610-* ; WLCD @ 20 Mhz <H41><SM29>
dc.l InfoQuadra610-* ; WLCD @ 25 Mhz <H41><SM29>
dc.l InfoWLCD33-* ; WLCD @ 33 Mhz <H64><SM29>
IF forSmurf THEN
dc.l InfoRiscQuadra800-* ; Quadra800 w/Smurf card <SM86>
dc.l InfoRiscCentris650-* ; Centris650 w/Smurf card <SM86>
dc.l InfoRiscCentris610-* ; Centris610 w/Smurf card <SM89>
dc.l InfoRiscQuadra610-* ; Quadra610 w/Smurf card <SM89>
dc.l InfoRiscQuadra650-* ; Quadra650 w/Smurf card <SM89>
ENDIF
IF forSTP601 THEN
dc.l InfoSTPCentris650-* ; Centris650 w/STP card <SM86>
dc.l InfoSTPQuadra650-* ; Quadra650 w/STP card <SM86>
dc.l InfoSTPQuadra40F-* ; 40mhz wombat w/STP card <SM89>
dc.l InfoSTPQuadra800-* ; Quadra800 w/STP card <SM89>
dc.l InfoSTPCentris610-* ; Centris610 w/STP card <SM89>
dc.l InfoSTPQuadra610-* ; Quadra610 w/STP card <SM89>
ENDIF
ENDIF
IF hasYMCA AND hasPSC THEN ; <SM46>
dc.l InfoCyclone33-* ; Cyclone 33 Mhz <SM19> fau
dc.l InfoQuadra840AV-* ; Cyclone 40 Mhz <SM40> fau
dc.l InfoCentris660AV-* ; Tempest 25 Mhz <SM26> fau
dc.l InfoTempest33-* ; Tempest 33 Mhz <SM40> fau
ENDIF ; <SM46>
IF hasOrwell AND forSmurf THEN
dc.l InfoRiscQuadra700-* ; Quadra 700 w/Risc Card <SM86>
dc.l InfoRiscQuadra900-* ; Quadra 900 w/Risc Card <SM86>
dc.l InfoRiscQuadra950-* ; Quadra 950 w/Risc Card <SM86>
ENDIF
IF hasGrandCentral THEN
dc.l InfoTNTProto1-*
ENDIF
dc.l InfoUnknownUnknown-* ; totally lost
dc.l 0 ; end of list
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Decoder Lookup Table
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
ProductLookup
IF hasVISADecoder THEN ; <SM46>
dc.l InfoMacLC-* ; Macintosh LC <12><SM17>
ENDIF ; <SM46>
IF forSTP601 THEN
dc.l InfoSTPQuadra700-* ; Quadra 700 w/STP Card <SM86>
dc.l InfoSTPQuadra900-* ; Quadra 900 w/STP Card <SM86>
dc.l InfoSTPQuadra950-* ; Quadra 950 w/STP Card <SM86>
ENDIF
IF hasOrwell THEN
dc.l InfoQuadra700-* ; Quadra 700, 1 direct slot, 2 NuBus slots <T7>
dc.l InfoQuadra900-* ; Quadra 900, 1 direct slot, 5 NuBus slots <13>
dc.l InfoQuadra950-* ; Quadra 950, 1 direct slot, 5 NuBus slots <5>
ENDIF
IF hasJaws THEN
dc.l InfoPowerBook170-* ; PowerBook 140 and 170 <8>
ENDIF
IF hasNiagra THEN
dc.l InfoPowerBook180-* ; PowerBook 180 <H9>
ENDIF
IF hasVISADecoder THEN
dc.l InfoVISAUnknown-* ; unknown VISA decoder based machine <12>
ENDIF
IF hasJaws THEN
dc.l InfoJAWSUnknown-* ; unknown JAWS based machine <25>
ENDIF
IF hasMDU THEN ; <SM46>
dc.l InfoMacIIsi-* ; Macintosh IIsi <3><SM46>
ENDIF ; <SM46>
dc.l InfoUnknownUnknown-* ; totally lost
dc.l 0 ; end if list, no match, check decoder again
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Decoder Lookup Table
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
DecoderLookup
IF hasVISADecoder THEN ; <SM46>
dc.l VISADecoderTable-* ; check for VISA decoder <SM5>
ENDIF ; <SM46>
IF hasNiagra THEN
dc.l Niagratable-* ; check for Niagra decoder
ENDIF
IF hasJaws THEN
dc.l JAWStable-* ; check for JAWS decoder <25><61>
ENDIF
IF hasOrwell THEN
dc.l OrwellDecoderTable-* ; check for Orwell memory controller <13><19>
ENDIF
IF hasMDU THEN
dc.l MDUtable-* ; check for MDU decoder <SM46>
ENDIF
dc.l UnknownDecoderTable-* ; always find something
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
;
; Product Info Tables
;
;ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
IF hasPratt THEN ; <SM39>
IMPORT SndCntlBlackbird, PrattIntTbl
IMPORT PrattPMgrPrims,ImmgBabyRock
; PowerBook Blackbird product table
ALIGN 4
InfoBlackbird
dc.l PrattTable-InfoBlackbird ; offset to decoder info
dc.l RamInfoPratt-InfoBlackbird ; offset to ram bank info
dc.l VideoInfoPratt-InfoBlackbird ; offset to video info
dc.l NuBusInfoPratt-InfoBlackbird ; offset to NuBus info
dc.w 0|\ ; hwCfgFlags
(1<<hwCbSCSI)|\ ; SCSI port present
(1<<hwCbClock)|\ ; New clock chip present
(1<<hwCbFPU)|\ ; FPU chip present (option)
(1<<hwCbMMU)|\ ; Some kind of MMU present (see MMUType for what kind).
(1<<hwCbADB)|\ ; Apple Desktop Bus present.
(1<<hwCbPwrMgr) ; Power Manager present
dc.b boxBlackbird ; product kind
dc.b PrattDecoder ; 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
ROMExists,\ ; ROMAddr is valid
DiagROMExists,\ ; DiagROMAddr is valid
VIA1Exists,\ ; VIA1Addr is valid
SCCRdExists,\ ; SCCRdAddr is valid
SCCWrExists,\ ; SCCWrAddr is valid
IWMExists,\ ; IWMAddr is valid
SCSIExists,\ ; SCSIAddr is valid
SCSIDackExists,\ ; SCSIDackAddr is valid
SCSIHskExists,\ ; SCSIHskAddr is valid
VIA2Exists,\ ; VIA2Addr is valid
ASCExists,\ ; ASCAddr is valid
VDACExists,\ ; VDAC (CSC) is valid
SONICExists ; SONIC is valid
BitVector32 \ ; Flags for valid base addresses 32-63
SingerExists,\ ; PrattAddr is valid
PrattExists ; SingerAddr is valid
BitVector32 ; Flags for valid base addresses 64-95
dc.l \ ; Flags for valid ext feature flags 0-31
(ADBPwrMgr)|\ ; PMGR ADB
(ClockPwrMgr)|\ ; PMGR clock/pram
(SoundHasSoundIn)|\ ; Has 8-bit mono sound input <LW7>
(Sound16Bit)|\ ; has 16-bit hardware
(SoundStereoIn)|\ ; has stereo sound input
(SoundStereoOut)|\ ; has stereo sound output
(SoundPlayAndRecord)|\ ; can Play and Record simultaneously
(1<<SoundLineLevel)|\ ; requires line level on sound input port
(1<<PMgrNewIntf)|\ ; serial PMgr interface and new protocol
(1<<SupportsIdle)|\ ; supports idle mode
(1<<hasNewMemMgr)|\ ; supports idle mode
(1<<SoftVBL) ; SoftVBL is valid
dc.l 0 ; Flags for valid ext feature flags 32-63
dc.l 0 ; Flags for valid ext feature flags 64-95
dc.b $56,$00,$00,$00 ; Check VIA1 PA6, PA4, PA2, PA1
dc.b $12,$00,$00,$00 ; VIA1 PA6 = 0, PA4 = 1, PA2 = 0, PA1 = 1
dc.l VIA1InitPratt-InfoBlackbird ; VIA1 init info
dc.l VIA2InitPratt-InfoBlackbird ; VIA2 needs init
dc.l SndCntlBlackBird-InfoBlackbird ; sound control vector table
dc.l PMGRClockPRAM-InfoBlackbird ; clock/PRAM vector table
dc.l PMGRADBTable-InfoBlackbird ; ADB/DebugUtil vector table
dc.l PrattPMgrPrims-InfoBlackbird ; Power Manager primitives
dc.l PrattIntTbl-InfoBlackbird ; interrupt handlers table <SM38>
dc.l ImmgBabyRock-InfoBlackbird ; use BabyRock Internal Modem Manager
dc.w cpuIDPortable|\ ; CPU ID: portable design center
cpuIDinBoard|\ ; CPU ID: supplemental ID in Mother/Daughter board ID registers
8 ; CPU ID: Blackbird ID is 8
dc.w 0 ; spare <SM74>
dc.l IconInfoTIM-InfoBlackbird ; offset to ICON info <SM74>
ENDIF ; {hasPratt}
IF hasMSC THEN
IMPORT SndCntlPBDuo210, MSCPmgrPrims, MSCIntTbl,MBTPmgrPrims
ALIGN 4
InfoPowerBookDuo210
dc.l MSCTable-InfoPowerBookDuo210 ; offset to decoder info
dc.l RAMInfoMSC-InfoPowerBookDuo210 ; offset to ram bank info
dc.l VideoInfoMSC-InfoPowerBookDuo210 ; offset to video info
dc.l NuBusInfoMSC-InfoPowerBookDuo210 ; offset to NuBus info
dc.w 0|\ ; hwCfgFlags
(1<<hwCbSCSI)|\ ; SCSI port present
(1<<hwCbClock)|\ ; New clock chip present
(1<<hwCbFPU)|\ ; FPU chip present (option)
(1<<hwCbMMU)|\ ; Some kind of MMU present (see MMUType for what kind).
(1<<hwCbADB)|\ ; Apple Desktop Bus present.
(1<<hwCbPwrMgr) ; Power Manager present
dc.b boxPowerBookDuo210 ; product kind <H29>
dc.b MSCDecoder ; 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
ROMExists,\ ; ROMAddr is valid
DiagROMExists,\ ; DiagROMAddr is valid
VIA1Exists,\ ; VIA1Addr is valid
SCCRdExists,\ ; SCCRdAddr is valid
SCCWrExists,\ ; SCCWrAddr is valid
IWMExists,\ ; IWMAddr is valid <H6>
SCSIExists,\ ; SCSIAddr is valid
SCSIDackExists,\ ; SCSIDackAddr is valid
SCSIHskExists,\ ; SCSIHskAddr is valid
ASCExists,\ ; ASCAddr is valid
RBVExists,\ ; RBVAddr is valid
VDACExists ; VDACAddr (GSC) is valid <H9>
BitVector32 ; Flags for valid base addresses 32-63
BitVector32 ; Flags for valid base addresses 64-95
dc.l \ ; Flags for valid ext feature flags 0-31
(ADBPwrMgr)|\ ; PMGR ADB
(ClockPwrMgr)|\ ; PMGR clock/pram
(SoundHasSoundIn)|\ ; Has 8-bit mono sound input <LW7>
(1<<SupportsIdle)|\ ; supports idle mode
(1<<PMgrNewIntf)|\ ; serial PMgr interface and new protocol
(1<<MSCChipBit) ; MSC variant of the RBV <H5>
dc.l 0 ; Flags for valid ext feature flags 32-63
dc.l 0 ; Flags for valid ext feature flags 64-95
dc.b $56,$00,$00,$00 ; Check VIA1 PA6, PA4, PA2, PA1
dc.b $00,$00,$00,$00 ; VIA1 PA6 = 0, PA4 = 0, PA2 = 0, PA1 = 0
dc.l VIA1InitMSC-InfoPowerBookDuo210 ; VIA1 init info
dc.l 0 ; no VIA2 to init
dc.l SndCntlPBDuo210-InfoPowerBookDuo210 ; sound control vector table
dc.l PMGRClockPRAM-InfoPowerBookDuo210 ; clock/PRAM vector table <H4>
dc.l PMGRADBTable-InfoPowerBookDuo210 ; ADB/DebugUtil vector table <H30>
dc.l MSCPmgrPrims-InfoPowerBookDuo210 ; Power Manager primitives <SM33>
dc.l MSCIntTbl-InfoPowerBookDuo210 ; interrupt handlers table <SM38>
dc.l 0 ; internal modem manager
dc.w cpuIDPortable|\ ; CPU ID: portable design center
cpuIDinReg|\ ; CPU ID: register contains complete ID
4 ; CPU ID: PowerBook Duo 210 is 4
dc.w 0 ; spare <SM74>
dc.l IconInfoDBLite-InfoPowerBookDuo210 ; offset to ICON info <SM74>
ALIGN 4
InfoPowerBookDuo230
dc.l MSCTable-InfoPowerBookDuo230 ; offset to decoder info
dc.l RAMInfoMSC-InfoPowerBookDuo230 ; offset to ram bank info
dc.l VideoInfoMSC-InfoPowerBookDuo230 ; offset to video info
dc.l NuBusInfoMSC-InfoPowerBookDuo230 ; offset to NuBus info
dc.w 0|\ ; hwCfgFlags
(1<<hwCbSCSI)|\ ; SCSI port present
(1<<hwCbClock)|\ ; New clock chip present
(1<<hwCbFPU)|\ ; FPU chip present (option)
(1<<hwCbMMU)|\ ; Some kind of MMU present (see MMUType for what kind).
(1<<hwCbADB)|\ ; Apple Desktop Bus present.
(1<<hwCbPwrMgr) ; Power Manager present
dc.b boxPowerBookDuo230 ; product kind <H29>
dc.b MSCDecoder ; 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
ROMExists,\ ; ROMAddr is valid
DiagROMExists,\ ; DiagROMAddr is valid
VIA1Exists,\ ; VIA1Addr is valid
SCCRdExists,\ ; SCCRdAddr is valid
SCCWrExists,\ ; SCCWrAddr is valid
IWMExists,\ ; IWMAddr is valid <H6>
SCSIExists,\ ; SCSIAddr is valid
SCSIDackExists,\ ; SCSIDackAddr is valid
SCSIHskExists,\ ; SCSIHskAddr is valid
ASCExists,\ ; ASCAddr is valid
RBVExists,\ ; RBVAddr is valid
VDACExists ; VDACAddr (GSC) is valid <H9>
BitVector32 ; Flags for valid base addresses 32-63
BitVector32 ; Flags for valid base addresses 64-95
dc.l \ ; Flags for valid ext feature flags 0-31
(ADBPwrMgr)|\ ; PMGR ADB
(ClockPwrMgr)|\ ; PMGR clock/pram
(SoundHasSoundIn)|\ ; Has 8-bit mono sound input <LW7>
(1<<SupportsIdle)|\ ; supports idle mode
(1<<PMgrNewIntf)|\ ; serial PMgr interface and new protocol
(1<<MSCChipBit) ; MSC variant of the RBV <H5>
dc.l 0 ; Flags for valid ext feature flags 32-63
dc.l 0 ; Flags for valid ext feature flags 64-95
dc.b $56,$00,$00,$00 ; Check VIA1 PA6, PA4, PA2, PA1
dc.b $00,$00,$00,$00 ; VIA1 PA6 = 0, PA4 = 0, PA2 = 0, PA1 = 0
dc.l VIA1InitMSC-InfoPowerBookDuo230 ; VIA1 init info
dc.l 0 ; no VIA2 to init
dc.l SndCntlPBDuo210-InfoPowerBookDuo230 ; sound control vector table
dc.l PMGRClockPRAM-InfoPowerBookDuo230 ; clock/PRAM vector table <H4>
dc.l PMGRADBTable-InfoPowerBookDuo230 ; ADB/DebugUtil vector table <H30>
dc.l MSCPmgrPrims-InfoPowerBookDuo230 ; Power Manager primitives <SM33>
dc.l MSCIntTbl-InfoPowerBookDuo230 ; interrupt handlers table <SM38>
dc.l 0 ; internal modem manager
dc.w cpuIDPortable|\ ; CPU ID: portable design center
cpuIDinReg|\ ; CPU ID: register contains complete ID
5 ; CPU ID: PowerBook Duo 230 is 5
dc.w 0 ; spare <SM74>
dc.l IconInfoDBLite-InfoPowerBookDuo230 ; offset to ICON info <SM74>
ALIGN 4
InfoPowerBookDuo235
dc.l MSCTable-InfoPowerBookDuo235 ; offset to decoder info
dc.l RAMInfoMSC-InfoPowerBookDuo235 ; offset to ram bank info
dc.l VideoInfoMSC-InfoPowerBookDuo235 ; offset to video info
dc.l NuBusInfoMSC-InfoPowerBookDuo235 ; offset to NuBus info
dc.w 0|\ ; hwCfgFlags
(1<<hwCbSCSI)|\ ; SCSI port present
(1<<hwCbClock)|\ ; New clock chip present
(1<<hwCbFPU)|\ ; FPU chip present (option)
(1<<hwCbMMU)|\ ; Some kind of MMU present (see MMUType for what kind).
(1<<hwCbADB)|\ ; Apple Desktop Bus present.
(1<<hwCbPwrMgr) ; Power Manager present
dc.b boxPowerBookDuo250 ; product kind <SM100>
dc.b MSCDecoder ; 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
ROMExists,\ ; ROMAddr is valid
DiagROMExists,\ ; DiagROMAddr is valid
VIA1Exists,\ ; VIA1Addr is valid
SCCRdExists,\ ; SCCRdAddr is valid
SCCWrExists,\ ; SCCWrAddr is valid
IWMExists,\ ; IWMAddr is valid <H6>
SCSIExists,\ ; SCSIAddr is valid
SCSIDackExists,\ ; SCSIDackAddr is valid
SCSIHskExists,\ ; SCSIHskAddr is valid
ASCExists,\ ; ASCAddr is valid
RBVExists,\ ; RBVAddr is valid
VDACExists ; VDACAddr (GSC) is valid <H9>
BitVector32 ; Flags for valid base addresses 32-63
BitVector32 ; Flags for valid base addresses 64-95
dc.l \ ; Flags for valid ext feature flags 0-31
(ADBPwrMgr)|\ ; PMGR ADB
(ClockPwrMgr)|\ ; PMGR clock/pram
(SoundHasSoundIn)|\ ; Has 8-bit mono sound input <LW7>
(1<<SupportsIdle)|\ ; supports idle mode
(1<<PMgrNewIntf)|\ ; serial PMgr interface and new protocol
(1<<MSCChipBit) ; MSC variant of the RBV <H5>
dc.l 0 ; Flags for valid ext feature flags 32-63
dc.l 0 ; Flags for valid ext feature flags 64-95
dc.b $56,$00,$00,$00 ; Check VIA1 PA6, PA4, PA2, PA1
dc.b $00,$00,$00,$00 ; VIA1 PA6 = 0, PA4 = 0, PA2 = 0, PA1 = 0
dc.l VIA1InitMSC-InfoPowerBookDuo235 ; VIA1 init info
dc.l 0 ; no VIA2 to init
dc.l SndCntlPBDuo210-InfoPowerBookDuo235 ; sound control vector table
dc.l PMGRClockPRAM-InfoPowerBookDuo235 ; clock/PRAM vector table <H4>
dc.l PMGRADBTable-InfoPowerBookDuo235 ; ADB/DebugUtil vector table <H30>
dc.l MSCPmgrPrims-InfoPowerBookDuo235 ; Power Manager primitives <SM33>
dc.l MSCIntTbl-InfoPowerBookDuo235 ; interrupt handlers table <SM38>
dc.l 0 ; internal modem manager
dc.w cpuIDPortable|\ ; CPU ID: portable design center
cpuIDinReg|\ ; CPU ID: register contains complete ID
6 ; CPU ID: PowerBook Duo 235 is 6
dc.w 0 ; spare <SM74>
dc.l IconInfoDBLite-InfoPowerBookDuo235 ; offset to ICON info <SM74>
ALIGN 4
InfoYeager
dc.l MSCTable-InfoYeager ; offset to decoder info
dc.l RAMInfoMSC-InfoYeager ; offset to ram bank info
dc.l VideoInfoMSC-InfoYeager ; offset to video info
dc.l NuBusInfoMSC-InfoYeager ; offset to NuBus info
dc.w 0|\ ; hwCfgFlags
(1<<hwCbSCSI)|\ ; SCSI port present
(1<<hwCbClock)|\ ; New clock chip present
(1<<hwCbFPU)|\ ; FPU chip present (option)
(1<<hwCbMMU)|\ ; Some kind of MMU present (see MMUType for what kind).
(1<<hwCbADB)|\ ; Apple Desktop Bus present.
(1<<hwCbPwrMgr) ; Power Manager present
dc.b boxYeagerC ; product kind <H29>
dc.b MSCDecoder ; 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
ROMExists,\ ; ROMAddr is valid
DiagROMExists,\ ; DiagROMAddr is valid
VIA1Exists,\ ; VIA1Addr is valid
SCCRdExists,\ ; SCCRdAddr is valid
SCCWrExists,\ ; SCCWrAddr is valid
IWMExists,\ ; IWMAddr is valid <H6>
SCSIExists,\ ; SCSIAddr is valid
SCSIDackExists,\ ; SCSIDackAddr is valid
SCSIHskExists,\ ; SCSIHskAddr is valid
ASCExists,\ ; ASCAddr is valid
RBVExists,\ ; RBVAddr is valid
VDACExists ; VDACAddr (GSC) is valid <H9>
BitVector32 ; Flags for valid base addresses 32-63
BitVector32 ; Flags for valid base addresses 64-95
dc.l \ ; Flags for valid ext feature flags 0-31
(ADBPwrMgr)|\ ; PMGR ADB
(ClockPwrMgr)|\ ; PMGR clock/pram
(SoundHasSoundIn)|\ ; Has 8-bit mono sound input <LW7>
(1<<SupportsIdle)|\ ; supports idle mode
(1<<PMgrNewIntf)|\ ; serial PMgr interface and new protocol
(1<<MSCChipBit) ; MSC variant of the RBV <H5>
dc.l 0 ; Flags for valid ext feature flags 32-63
dc.l 0 ; Flags for valid ext feature flags 64-95
dc.b $56,$00,$00,$00 ; Check VIA1 PA6, PA4, PA2, PA1
dc.b $00,$00,$00,$00 ; VIA1 PA6 = 0, PA4 = 0, PA2 = 0, PA1 = 0
dc.l VIA1InitMSC-InfoYeager ; VIA1 init info
dc.l 0 ; no VIA2 to init
dc.l SndCntlPBDuo210-InfoYeager ; sound control vector table
dc.l PMGRClockPRAM-InfoYeager ; clock/PRAM vector table <H4>
dc.l PMGRADBTable-InfoYeager ; ADB/DebugUtil vector table <H30>
dc.l MBTPmgrPrims-InfoYeager ; Power Manager primitives <SM33>
dc.l MSCIntTbl-InfoYeager ; interrupt handlers table <SM38>
dc.l 0 ; internal modem manager
dc.w cpuIDPortable|\ ; CPU ID: portable design center
cpuIDinReg|\ ; CPU ID: register contains complete ID
0 ; CPU ID: Yeager is 16
dc.w 0 ; spare <SM74>
dc.l IconInfoDBLite-InfoYeager ; offset to ICON info <SM74>
ENDIF ; {hasMSC}
IF hasNiagra THEN
IMPORT SndCntlPB180, NiagraPMgrPrims, NiagraIntTbl
; PowerBook 180 product table
ALIGN 4
InfoPowerBook180
dc.l NiagraTable-InfoPowerBook180 ; offset to decoder info
dc.l RamInfoNiagra-InfoPowerBook180 ; offset to ram bank info
dc.l VideoInfoNiagra-InfoPowerBook180 ; offset to video info
dc.l NuBusInfoNiagra-InfoPowerBook180 ; offset to NuBus info
dc.w 0|\ ; hwCfgFlags
(1<<hwCbSCSI)|\ ; SCSI port present
(1<<hwCbClock)|\ ; New clock chip present
(1<<hwCbFPU)|\ ; FPU chip present.
(1<<hwCbMMU)|\ ; Some kind of MMU present (see MMUType for what kind).
(1<<hwCbADB)|\ ; Apple Desktop Bus present.
(1<<hwCbPwrMgr) ; Power Manager present
dc.b boxPowerBook180 ; product kind
dc.b NiagraDecoder ; 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
ROMExists,\ ; ROMAddr is valid
DiagROMExists,\ ; DiagROMAddr is valid
VIA1Exists,\ ; VIA1Addr is valid
SCCRdExists,\ ; SCCRdAddr is valid
SCCWrExists,\ ; SCCWrAddr is valid
IWMExists,\ ; IWMAddr is valid
SCSIExists,\ ; SCSIAddr is valid
SCSIDackExists,\ ; SCSIDackAddr is valid
SCSIHskExists,\ ; SCSIHskAddr is valid
VIA2Exists,\ ; VIA2Addr is valid
ASCExists,\ ; ASCAddr is valid
VDACExists,\ ; VDACAddr (GSC) is valid <H9>
JAWSExists ; JAWSAddr is valid
BitVector32 ; Flags for valid base addresses 32-63
BitVector32 ; Flags for valid base addresses 64-95
dc.l \ ; Flags for valid ext feature flags 0-31
(ClockRTC)|\ ; Has RTC clock/PRAM
(ADBPwrMgr)|\ ; PowerManager ADB