; ; File: TFBDepVideoEqu.a ; ; Contains: Hardware-specific equates for the TFB Declaration ROM and Video Driver. ; ; Written by: George Norman, Dave Fung, Mike Puckett ; ; Copyright: © 1986-1992 by Apple Computer, Inc., all rights reserved. ; ; Change History (most recent first): ; ; 09-24-92 jmp Strange problem: On 040 CPU’s the TFBResetReg is seen only on ; byte-lane 3 (as would be expected), but on 020/030 CPUs, the ; TFBResetReg MUST be smeared from byte-lane zero. So, for the ; moment, I’ve “fixed” this problem with a conditional. In the ; future, we should perhaps do this dynamically in the code (i.e., ; so the build will work for both ROMs and Systems). ; <4> 8/21/91 JSM Clean up header. ; <3> 4/3/91 jmp When I was doing the byte-smearing fixes, I didn’t offset the ; TFB reset register correctly; i.e., TFBResetReg is one of the -3 ; instead of +3 offsets: TFB is weird. ; <2> 3/22/91 jmp Rolled in the current TERROR ROM version of the TFBDriver (for ; fixing a “screen tearing” problem at SetEntries time). ; <1> 11/5/90 jmp first checked in ; <2> 11/2/90 jmp Made changes so that the TFB Driver would no longer rely on the ; byte-smearing properties of the 68020/68030 to do its thing. ; <1.0> 11/16/88 CCH Added to EASE. ; 12/18/86 EHB Fixed resolution constants Changed mBaseOffset from 4 to 32 ; Set DisableVInt to proper value. ; Removed ROM equ since it conflicts with ; system build (Arrgh...) ; 12/10/86 GWN Added DisableVInt. ; 11/19/86 GWN Changed mBaseOffset from 0 to 4.................last time. ; 11/19/86 GWN Changed mBaseOffset from 0 to 4. ; 11/19/86 GWN Changed mBaseOffset from 4 to 0. ; 11/3/86 GWN Changed to new Video parameters as described in video card spec. ; (1,2,4 and 8-bit modes supported). Added mVertRefRate to video ; parameters. Changed to new SDM format header (ByteLanes field). ; Changed to 4-k ROM. Video driver is on ROM. Fixed video driver ; bugs: (1) SetEntries trash A0, (2) SetEntries/GetEntries Data ; NOT.; ; CurTFBDrvrVersion EQU 5 ;Used for override purposes. ROMSize EQU $1000 ;TFB is 4Kbyte ROM. TFBBoardId EQU $0005 ;TFB Board Id. sRsrcBoard EQU 1 ;Board sResource {May be any number in [0..127]} sRsrcVideo8 EQU 128 ;Video sResource {May be any number in [128..254]} sRsrcVideo4 EQU 129 ;Another Video sResource (for 4-bit TFB card) TFBTestPos EQU (265*1024)-4 ;Position to test for 256K vs. 512K of VRAM. TFBTestPat EQU 'MAC2' ;Test pattern. ; Parameter definitions {For Primary init} ; defScrnRow EQU $0080 ;Bytes per pixel line defMinorBase EQU 0 ;Video RAM Offset is 32 defMinorLength4 EQU $40000 ;Video RAM length is $40000 defMinorLength8 EQU $80000 ;Video RAM length is $80000 for 8-bit cards. ; Parameter definitions {New ones} ; defmBaseOffset EQU 32 ;Offset to base of video RAM defmBounds_T EQU 0 ;Bounds.Top defmBounds_L EQU 0 ;Bounds.Left defmBounds_B EQU 480 ;Bounds.Bottom defmBounds_R EQU 640 ;Bounds.Right defVersion EQU 0 ;Version = 0 defmHRes EQU $480000 ;Horizontal Pixels/inch defmVRes EQU $480000 ;Vertical pixels/inch defPixelType EQU 0 ;0 = Chunky defCmpCount EQU 1 ;Number of components in pixel defCmpSize EQU 1 ;Number of bits per component defmPlaneBytes EQU 0 ;Offset from one plane to the next. defmPageCnt EQU 1 ;Total number of pages defmVertRefRate EQU 67 ;Vert refresh rate defmDevType EQU 0 ;0 = CLUTType ; Hardware definitions (+3 to fix the fact the byte-smearing doesn’t happen ; on machines with MC68040 processors). ; TFBIBase EQU $8FFFC+3 TFBBase EQU $80000+3 ClrTbl EQU $90000+3 ClrVInt EQU $A0000+3 DisableVInt EQU $A0004+3 IntIcOn EQU $B0000+3 IntIcOff EQU $C0000+3 RdVSync EQU $D0000+3 RdVInt EQU $D0004+3 RdIntIc EQU $D0008+3 ; TFB Registers -- these are relative to dCtlDevBase+TFBBase (the -3’s are due ; to the fact that these addresses are in fact relative to the 0th addresses ; shown above. Ugh.) ; wCLUTDataReg EQU $18-3 wCLUTAddReg EQU $1C-3 rCLUTDataReg EQU $28-3 rCLUTAddReg EQU $2C-3 ; The following are also TFB registers; they control where the video page actually ; starts. ; wBaseOfstHi EQU $08 wBaseOfstLo EQU $0C ; Misc. TFB Constants. See the comments above about why -3 is used. ; If Not ForROM Then TFBResReg EQU $3C-3 ;offset to reset register Else TFBResReg EQU $3C ;offset to reset register Endif TFBReset EQU $B7 ;value to write for reset