mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-29 20:49:19 +00:00
294 lines
13 KiB
Plaintext
294 lines
13 KiB
Plaintext
;
|
||
; File: Video.a
|
||
;
|
||
; Contains: Equates for video drivers as defined in CARDS & DRIVERS.
|
||
;
|
||
; Written by: Dave Fung, but he’ll deny it.
|
||
;
|
||
; Copyright: © 1990, 1992-1993 by Apple Computer, Inc., all rights reserved.
|
||
;
|
||
; Change History (most recent first):
|
||
;
|
||
; <SM8> 12/13/93 PN Roll in KAOs and Horror changes to support Malcom and AJ
|
||
; machines
|
||
; <SM7> 08-06-93 jmp Added more csDisplayTypes.
|
||
; <SM6> 6/25/93 IH Update kHasSerialSense to kHasDirectConnect
|
||
; <5> 6/1/93 IH Add VDSwitchInfo
|
||
; <SM4> 04-07-93 jmp Added the csc id’s of one of the new driver calls for supporting
|
||
; the Display Manager.
|
||
; <SM3> 4/6/93 fau Synchronized with Ludwig.
|
||
; <LW3> 4/5/93 fau Removed the now-private codes for Cyclone's video-in driver, as
|
||
; well as the records defined for them.
|
||
; <SM2> 4/5/93 chp Synchronize with Ludwig.
|
||
; <LW2> 2/16/93 fau Changed VDCompOut and added VDInternalInfo for changes to the
|
||
; Civic driver.
|
||
; <SM4> 7/7/92 CSS Update from Reality.
|
||
; <18> 7/1/92 DCL This file is the replacement for the now obsolete VideoEqu.a.
|
||
; Changed the 'including' name to match the new file name.
|
||
; <SM3> 6/19/92 KW (fau,P3) Added the interface for VDCompositeOut. Added the
|
||
; latest cs Codes for the new Cyclone calls.
|
||
; <SM2> 5/20/92 KW Roll in from Pandora, P2
|
||
;----------------------------------------------------
|
||
; Pre SuperMario Comments below
|
||
;----------------------------------------------------
|
||
; <17> 6/14/91 JL Checked in official MPW 3.2ƒ version. Temporarily lost comment
|
||
; about sGammaDir and sRsrcVidNames - will be restored. Didn't
|
||
; publish comment about commented out mTable.
|
||
; <16> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to
|
||
; all uppercase (for security reasons)
|
||
; <15> 7/18/90 jmp Removed the cscVidInit equate and changed cscVidKillIO to
|
||
; cscKillIO.
|
||
; <14> 7/11/90 jmp Added mode equates for video cards NOT having contiguous (i.e.,
|
||
; 1, 2, 4, 8 [, 16, 32]) modes.
|
||
; <13> 7/11/90 jmp Added comment about some equates here; cleaned up <12>’s
|
||
; comment, removed goofy “to do.”
|
||
; <12> 6/27/90 jmp Added equate names from 2nd Ed. of CARDS & DRIVERS.
|
||
;
|
||
; To Do:
|
||
;
|
||
|
||
; Version: 3.3
|
||
; Created: Friday, October 20, 1989 at 10:11:40 PM
|
||
;
|
||
; File: VideoEqu.a
|
||
;
|
||
; Assembler Interface to the Macintosh Libraries
|
||
; Copyright Apple Computer, Inc. 1986-1988
|
||
; All Rights Reserved
|
||
;
|
||
; Modification History:
|
||
; <6> 03/02/90 JAL secondaryINIT belongs in ROMEqu.a
|
||
; <4> 03/02/90 JAL Added sixteenBitMode, thirtyTwoBitMode,
|
||
; secondaryINIT, and spGammaDir.
|
||
;<C742/02Feb87 GWN> Changed video parameters to an sBlock.
|
||
; 11 Jun 87 KLH Added Control Codes & Status Codes.
|
||
; 2 Jul 87 KLH Added VDSetEntryRecord.
|
||
; 1.0 CCH 11/ 9/1988 Adding to EASE.
|
||
; END EASE MODIFICATION HISTORY
|
||
;•1.1 CCH 9/14/1988 Updated EASE with the current rev of this file.
|
||
;--------------------------------------------------------------------
|
||
|
||
IF &TYPE('__INCLUDINGVIDEO__') = 'UNDEFINED' THEN
|
||
__INCLUDINGVIDEO__ SET 1
|
||
;
|
||
; Video sResource parameter Id's
|
||
;
|
||
|
||
mBaseOffset EQU 1 ;Id of mBaseOffset.
|
||
mRowBytes EQU 2
|
||
mBounds EQU 3
|
||
mVersion EQU 4
|
||
mHRes EQU 5
|
||
mVRes EQU 6
|
||
mPixelType EQU 7
|
||
mPixelSize EQU 8
|
||
mCmpCount EQU 9
|
||
mCmpSize EQU 10
|
||
mPlaneBytes EQU 11
|
||
;* mTable EQU 12
|
||
;* mPageCnt EQU 13
|
||
mVertRefRate EQU 14
|
||
|
||
|
||
mVidParams EQU 1 ;Video parameter block id.
|
||
mTable EQU 2 ;Offset to the table.
|
||
mPageCnt EQU 3 ;Number of pages
|
||
mDevType EQU 4 ;Device Type
|
||
|
||
|
||
;
|
||
; Video sResource List Id's
|
||
;
|
||
|
||
oneBitMode EQU 128 ;Id of OneBitMode Parameter list.
|
||
twoBitMode EQU 129 ;Id of TwoBitMode Parameter list.
|
||
fourBitMode EQU 130 ;Id of FourBitMode Parameter list.
|
||
eightBitMode EQU 131 ;Id of EightBitMode Parameter list.
|
||
sixteenBitMode EQU 132 ;Id of SixteenBitMode Parameter list.
|
||
thirtyTwoBitMode EQU 133 ;Id of ThirtyTwoBitMode Parameter list.
|
||
|
||
firstVidMode EQU 128 ; If we ever decide to add/drop a modes
|
||
secondVidMode EQU 129 ; in a particular card, it makes more
|
||
thirdVidMode EQU 130 ; sense to name the modes in an ordinal
|
||
fourthVidMode EQU 131 ; fashion rather than in a cardinal
|
||
fifthVidMode EQU 132 ; one. (The RBV equates do this.) <14>
|
||
sixthVidMode EQU 133
|
||
|
||
spGammaDir EQU 64
|
||
spVidNamesDir EQU 65 ; <12>
|
||
|
||
|
||
; csTimingFormat values in VDTimingInfo
|
||
;
|
||
kDeclROMtables EQU 'decl' ; look in the declartion rom for timing info
|
||
;
|
||
; csConnectFlags values in VDDisplayConnectInfo
|
||
;
|
||
|
||
kAllModesValid EQU 0 ; All modes not trimmed by primary init are know to be good
|
||
kAllModesSafe EQU 1 ; All modes not trimmed by primary init are know to be good
|
||
kReportsTagging EQU 2 ; To identify smart monitors we must be able to detect tagged displays
|
||
kHasDirectConnect EQU 3 ; True implies that serial data link is active through sense lines
|
||
kIsMonoDev Equ 4 ; Says whether there’s an RGB (0) or Monochrome (1) connection.
|
||
; Note: The kIsMonoDev bit is backwards from gdDevType bit because
|
||
; we’ve already shipped some color LCD products that way,
|
||
; and we’d really like to default to RGB (i.e., three guns),
|
||
; and zero is a good default value.
|
||
;
|
||
; csConnectFlag values in VDTimingInfo
|
||
|
||
kModeValid Equ 0 ; Says that this mode should NOT be trimmed.
|
||
kModeSafe Equ 1 ; Says that this mode is safe.
|
||
|
||
; csDisplayType values in VDDisplayConnectInfo
|
||
|
||
kUnknownConnect EQU 1 ; Not sure how we’ll use this, but seems like a good idea.
|
||
kPanelConnect EQU 2 ; For use with fixed-in-place LCD panels.
|
||
kPanelTFTConnect Equ 2 ; Alias for kPanelConnect (because some ROM have already GM’d that way).
|
||
kFixedModeCRTConnect EQU 3 ; For use with fixed-mode (i.e., very limited range) displays.
|
||
kMultiModeCRT1Connect EQU 4 ; 320x200 maybe, 12" maybe, 13" (default), 16" certain, 19" maybe, 21" maybe
|
||
kMultiModeCRT2Connect EQU 5 ; 320x200 maybe, 12" maybe, 13" certain, 16" (default), 19" certain, 21" maybe
|
||
kMultiModeCRT3Connect EQU 6 ; 320x200 maybe, 12" maybe, 13" certain, 16" certain, 19" default, 21" certain
|
||
kMultiModeCRT4Connect EQU 7 ; Expansion to large multi mode (not yet used)
|
||
kModelessConnect EQU 8 ; Expansion to modeless model (not yet used)
|
||
kFullPageConnect Equ 9 ; 640x818 (to get 8bpp in 512K case) and 640x870 (these two only)
|
||
kVGAConnect Equ 10 ; 640x480 VGA default -- question everything else
|
||
kNTSCConnect Equ 11 ; NTSC ST (default), FF, STconv, FFconv
|
||
kPALConnect Equ 12 ; PAL ST (default), FF, STconv, FFconv
|
||
kHRConnect Equ 13 ; 640x400 (to get 8bpp in 256K case) and 640x480 (these two only)
|
||
kPanelFSTNConnect Equ 14 ; For use with fixed-in-place LCD FSTN (aka “Supertwist”) panels.
|
||
|
||
;
|
||
; Control Codes
|
||
;
|
||
|
||
cscReset EQU 0
|
||
cscKillIO EQU 1 ; <15>
|
||
cscSetMode EQU 2
|
||
cscSetEntries EQU 3
|
||
cscSetGamma EQU 4 ; <12>
|
||
cscGrayPage EQU 5
|
||
cscGrayScreen EQU 5 ; This is what C&D 2 calls it. <12>
|
||
cscSetGray EQU 6
|
||
cscSetInterrupt EQU 7 ; <12>
|
||
cscDirectSetEntries EQU 8 ; <12>
|
||
cscSetDefaultMode EQU 9 ; <12>
|
||
cscSwitchMode Equ 10 ;
|
||
cscSetSync Equ 11 ;
|
||
|
||
;
|
||
; Status Codes
|
||
;
|
||
|
||
cscGetMode EQU 2
|
||
cscGetEntries EQU 3
|
||
cscGetPageCnt EQU 4
|
||
cscGetPages EQU 4 ; This is what C&D 2 calls it. <12>
|
||
cscGetPageBase EQU 5
|
||
cscGetBaseAddr EQU 5 ; This is what C&D 2 calls it. <12>
|
||
cscGetGray EQU 6 ; <12>
|
||
cscGetInterrupt EQU 7 ; <12>
|
||
cscGetGamma EQU 8 ; <12>
|
||
cscGetDefaultMode EQU 9 ; <12>
|
||
cscGetCurMode EQU 10 ;
|
||
cscGetSync EQU 11 ;
|
||
cscGetConnection EQU 12 ; Return information about the connection to the display
|
||
cscGetModeTiming EQU 13 ; Return timing info for a mode
|
||
|
||
|
||
csGTable EQU 0 ; [long] pointer to gamma table
|
||
csTable EQU 0 ; [long] pointer to CLUT
|
||
csStart EQU 4 ; [word] entry start number
|
||
csCount EQU 6 ; [word] entry count to change
|
||
|
||
;
|
||
; mVidParams block
|
||
;
|
||
|
||
VPBlock RECORD 0 ;Video Parameters block.
|
||
vpBaseOffset DS.L 1 ;Offset to page zero of video RAM (From minorBaseOS).
|
||
vpRowBytes DS.W 1 ;Width of each row of video memory.
|
||
vpBounds DS.W 4 ;BoundsRect for the video display (gives dimensions).
|
||
vpVersion DS.W 1 ;PixelMap version number.
|
||
vpPackType DS.W 1 ;
|
||
vpPackSize DS.L 1 ;
|
||
vpHRes DS.L 1 ;Horizontal resolution of the device (pixels per inch).
|
||
vpVRes DS.L 1 ;Vertical resolution of the device (pixels per inch).
|
||
vpPixelType DS.W 1 ;Defines the pixel type.
|
||
vpPixelSize DS.W 1 ;Number of bits in pixel.
|
||
vpCmpCount DS.W 1 ;Number of components in pixel.
|
||
vpCmpSize DS.W 1 ;Number of bits per component
|
||
vpPlaneBytes DS.L 1 ;Offset from one plane to the next.
|
||
vpBlockSize EQU *
|
||
ENDR
|
||
|
||
|
||
|
||
VDSetEntryRecord RECORD 0
|
||
csTable DS.L 1 ; ^ColorSpec - (long) Pointer to an array of color specs
|
||
csStart DS.W 1 ; INTEGER - (word) Which spec in array to start with, or -1
|
||
csCount DS.W 1 ; INTEGER - (word) Number of color spec entries to set
|
||
ENDR
|
||
|
||
VDSwitchInfo RECORD 0
|
||
csMode DS.W 1 ; INTEGER - (word) mode - depth
|
||
csData DS.L 1 ; LONGINT - (long) functional sResource of mode
|
||
csPage DS.W 1 ; INTEGER - (word) page to switch in
|
||
csBaseAddr DS.L 1 ; Ptr - (long) base address of page
|
||
csReserved DS.L 1 ; LONGINT - (long) reserved - set to 0
|
||
ENDR
|
||
|
||
VDTimingInfo RECORD 0
|
||
csTimingMode DS.L 1 ; LONGINT - (long) timing mode (a la InitGDevice)
|
||
csTimingReserved DS.L 1 ; LONGINT - (long) reserved
|
||
csTimingFormat DS.L 1 ; LONGINT - (long) what format is the timing info
|
||
csTimingData DS.L 1 ; LONGINT - (long) data supplied by driver
|
||
csTimingFlags DS.L 1 ; LONGINT - (long) mode within device
|
||
ENDR
|
||
|
||
VDDisplayConnectInfo RECORD 0
|
||
csDisplayType DS.W 1 ; INTEGER - (word) Type of display connected
|
||
csConnectTagged DS.W 1 ; INTEGER - (word) Display is currently "it" (tagged to identify component)
|
||
csConnectFlags DS.L 1 ; LONGINT - (long) what format is the timing info
|
||
csDisplayComponent DS.L 1 ; LONGINT - (long) if the card has a direct connection to the display, it returns the display component here (FUTURE)
|
||
csConnectReserved DS.L 1 ; LONGINT - (long) reserved
|
||
ENDR
|
||
|
||
VDPageInfo RECORD 0
|
||
csMode DS.W 1 ; INTEGER - (word) mode within device
|
||
csData DS.L 1 ; LONGINT - (long) data supplied by driver
|
||
csPage DS.W 1 ; INTEGER - (word) page to switch in
|
||
csBaseAddr DS.L 1 ; Ptr - (long) base address of page
|
||
ENDR
|
||
|
||
VDSizeInfo RECORD 0
|
||
csHSize DS.W 1 ; INTEGER - (word) desired/returned h size
|
||
csHPos DS.W 1 ; INTEGER - (word) desired/returned h position
|
||
csVSize DS.W 1 ; INTEGER - (word) desired/returned v size
|
||
csVPos DS.W 1 ; INTEGER - (word) desired/returned v position
|
||
ENDR
|
||
|
||
VDSettings RECORD 0
|
||
csParamCnt DS.W 1 ; INTEGER - (word) number of params
|
||
csBrightMax DS.W 1 ; INTEGER - (word) max brightness
|
||
csBrightDef DS.W 1 ; INTEGER - (word) default brightness
|
||
csBrightVal DS.W 1 ; INTEGER - (word) current brightness
|
||
csCntrstMax DS.W 1 ; INTEGER - (word) max contrast
|
||
csCntrstDef DS.W 1 ; INTEGER - (word) default contrast
|
||
csCntrstVal DS.W 1 ; INTEGER - (word) current contrast
|
||
csTintMax DS.W 1 ; INTEGER - (word) max tint
|
||
csTintDef DS.W 1 ; INTEGER - (word) default tint
|
||
csTintVal DS.W 1 ; INTEGER - (word) current tint
|
||
csHueMax DS.W 1 ; INTEGER - (word) max hue
|
||
csHueDef DS.W 1 ; INTEGER - (word) default hue
|
||
csHueVal DS.W 1 ; INTEGER - (word) current hue
|
||
csHorizDef DS.W 1 ; INTEGER - (word) default horizontal
|
||
csHorizVal DS.W 1 ; INTEGER - (word) current horizontal
|
||
csHorizMax DS.W 1 ; INTEGER - (word) max horizontal
|
||
csVertDef DS.W 1 ; INTEGER - (word) default vertical
|
||
csVertVal DS.W 1 ; INTEGER - (word) current vertical
|
||
csVertMax DS.W 1 ; INTEGER - (word) max vertical
|
||
ENDR
|
||
|
||
ENDIF ; ...already included
|