mirror of
https://github.com/rdolbeau/NuBusFPGA.git
synced 2024-12-26 05:29:29 +00:00
169 lines
7.2 KiB
ArmAsm
169 lines
7.2 KiB
ArmAsm
.include "atrap.inc"
|
|
.include "globals.inc"
|
|
.include "declrom.inc"
|
|
|
|
.include "ROMDefs.inc"
|
|
.include "Video.inc"
|
|
.include "DepVideo.inc"
|
|
|
|
sRsrc_Board = 1 /* board sResource (>0 & <128) */
|
|
sRsrc_VidS8 = 0x80 /* functional sResources */
|
|
|
|
_sRsrcDir:
|
|
OSLstEntry sRsrc_Board,_sRsrc_Board /* board sRsrc List */
|
|
OSLstEntry sRsrc_VidS8,_sRsrc_VidS8 /* video sRsrc List */
|
|
.long EndOfList
|
|
|
|
_sRsrc_Board:
|
|
OSLstEntry sRsrcType,_BoardType /* offset to board descriptor */
|
|
OSLstEntry sRsrcName,_BoardName /* offset to name of board */
|
|
DatLstEntry boardId,NuBusFPGAID /* board ID # (assigned by DTS) */
|
|
/* OSLstEntry PrimaryInit,_sPInitRec */ /* offset to PrimaryInit exec blk */
|
|
OSLstEntry vendorInfo,_VendorInfo /* offset to vendor info record */
|
|
/* OSLstEntry SecondaryInit,_sSInitRec */ /* offset to SecondaryInit block */
|
|
.long EndOfList
|
|
|
|
_BoardType:
|
|
.short catBoard /* board sResource */
|
|
.short typBoard
|
|
.short 0
|
|
.short 0
|
|
|
|
_BoardName:
|
|
.String "SBusFPGA Video" /* name of board */
|
|
|
|
/* _VidICON ; optional icon, not needed */
|
|
/* _sVidNameDir ; optional name(s), not needed */
|
|
|
|
_sPInitRec:
|
|
.long _EndsPInitRec-_sPInitRec /* physical block size */
|
|
/* INCLUDE "NuBusFPGAPrimaryInit.a" /* the header/code */ */
|
|
ALIGN 2
|
|
_EndsPInitRec:
|
|
|
|
/* _sSInitRec */
|
|
/* .long _EndsSInitRec-_sSInitRec ; physical block size */
|
|
/* INCLUDE "NuBusFPGASecondaryInit.a" ; the header/code */
|
|
/* ALIGN 2 */
|
|
/* _EndsSInitRec */
|
|
|
|
_VendorInfo:
|
|
OSLstEntry vendorId,_VendorId /* offset to vendor ID */
|
|
OSLstEntry revLevel,_RevLevel /* offset to revision */
|
|
OSLstEntry partNum,_PartNum /* offset to part number record */
|
|
OSLstEntry date,_Date /* offset to ROM build date */
|
|
.long EndOfList
|
|
|
|
_VendorId:
|
|
.string "Romain Dolbeau" /* vendor ID */
|
|
_RevLevel:
|
|
.string "NuBusFPGA V1.0" /* revision level */
|
|
_PartNum:
|
|
.string "Part Number" /* part number */
|
|
_Date:
|
|
.string "&SysDate" /* date */
|
|
|
|
_sRsrc_VidS8:
|
|
OSLstEntry sRsrcType,_VideoType /* video type descriptor */
|
|
OSLstEntry sRsrcName,_VideoName /* offset to driver name string */
|
|
/* OSLstEntry sRsrcDrvrDir,_VidDrvrDir ; offset to driver directory */
|
|
DatLstEntry sRsrcHWDevId,1 /* hardware device ID */
|
|
OSLstEntry MinorBaseOS,_MinorBase /* offset to frame buffer array */
|
|
OSLstEntry MinorLength,_MinorLength /* offset to frame buffer length */
|
|
OSLstEntry sGammaDir,_GammaDirS /* directory for 640x480 monitor */
|
|
/* Parameters */
|
|
OSLstEntry firstVidMode,_EBMs /* offset to EightBitMode parms */
|
|
.long EndOfList /* end of list */
|
|
|
|
_VideoType:
|
|
.short catDisplay /* <Category> */
|
|
.short typeVideo /* <Type> */
|
|
.short drSwApple /* <DrvrSw> */
|
|
.short DrHwNuBusFPGA /* <DrvrHw> */
|
|
|
|
_VideoName:
|
|
.string "Video_NuBusFPGA" /* video driver name */
|
|
_MinorBase:
|
|
.long defMinorBase /* frame buffer offset */
|
|
_MinorLength:
|
|
.long defMinorLength /* frame buffer length */
|
|
|
|
/* _VidDrvrDir */
|
|
/* OSLstEntry sMacOS68020,_sMacOS68020 driver directory for Mac OS */
|
|
/* .long EndOfList */
|
|
/* */
|
|
/* _sMacOS68020 */
|
|
/* .long _End020Drvr- sMacOS68020 ; physical block size */
|
|
/* INCLUDE 'NuBusFPGADrvr.a' ; driver code */
|
|
/* _End020Drvr */
|
|
|
|
|
|
_GammaDirS: /* for the 640x480 monitor */
|
|
OSLstEntry 128,_SmallGamma
|
|
.long EndOfList
|
|
|
|
_SmallGamma:
|
|
.long _EndSmallGamma-_SmallGamma
|
|
.short SGammaResID
|
|
.string "Small Gamma" /* Monitors name */
|
|
ALIGN 2
|
|
.short $0000 /* gVersion */
|
|
.short DrHwNuBusFPGA /* gType */
|
|
.short $0000 /* gFormulaSize */
|
|
.short $0001 /* gChanCnt */
|
|
.short $0100 /* gDataCnt */
|
|
.short $0008 /* gChanWidth */
|
|
.long $0005090B,$0E101315,$17191B1D,$1E202224
|
|
.long $2527282A,$2C2D2F30,$31333436,$37383A3B
|
|
.long $3C3E3F40,$42434445,$4748494A,$4B4D4E4F
|
|
.long $50515254,$55565758,$595A5B5C,$5E5F6061
|
|
.long $62636465,$66676869,$6A6B6C6D,$6E6F7071
|
|
.long $72737475,$76777879,$7A7B7C7D,$7E7F8081
|
|
.long $81828384,$85868788,$898A8B8C,$8C8D8E8F
|
|
.long $90919293,$94959596,$9798999A,$9B9B9C9D
|
|
.long $9E9FA0A1,$A1A2A3A4,$A5A6A6A7,$A8A9AAAB
|
|
.long $ABACADAE,$AFB0B0B1,$B2B3B4B4,$B5B6B7B8
|
|
.long $B8B9BABB,$BCBCBDBE,$BFC0C0C1,$C2C3C3C4
|
|
.long $C5C6C7C7,$C8C9CACA,$CBCCCDCD,$CECFD0D0
|
|
.long $D1D2D3D3,$D4D5D6D6,$D7D8D9D9,$DADBDCDC
|
|
.long $DDDEDFDF,$E0E1E1E2,$E3E4E4E5,$E6E7E7E8
|
|
.long $E9B9EAEB,$ECECEDEE,$EEEFF0F1,$F1F2F3F3
|
|
.long $F4F5F5F6,$F7F8F8F9,$FAFAFBFC,$FCFDFEFF
|
|
_EndSmallGamma:
|
|
|
|
_EBMs:
|
|
OSLstEntry mVidParams,_EBVParms /* offset to vid parameters */
|
|
DatLstEntry mPageCnt,Pages8s /* number of video pages */
|
|
DatLstEntry mDevType,defmDevType /* device type */
|
|
.long EndOfList /* end of list */
|
|
_EBVParms:
|
|
.long _EndEBVParms-_EBVParms /* physical block size */
|
|
.long defmBaseOffset /* QuickDraw base offset ; vpBaseOffset */
|
|
.short RB8s /* physRowBytes ; vpRowBytes */
|
|
.short defmBounds_Ts,defmBounds_Ls,defmBounds_Bs,defmBounds_Rs /* vpBounds */
|
|
.short defVersion /* bmVersion ; vpVersion */
|
|
.short 0 /* packType not used ; vpPackType */
|
|
.long 0 /* packSize not used ; vpPackSize */
|
|
.long defmHRes /* bmHRes */
|
|
.long defmVRes /* bmVRes */
|
|
.short ChunkyIndexed /* bmPixelType */
|
|
.short 8 /* bmPixelSize */
|
|
.short 1 /* bmCmpCount */
|
|
.short 8 /* bmCmpSize */
|
|
.long defmPlaneBytes /* bmPlaneBytes */
|
|
_EndEBVParms:
|
|
|
|
/* Declaration ROM directory at end */
|
|
DeclROMDir:
|
|
OSLstEntry 0, _sRsrcDir
|
|
.long DeclRomEnd-_sRsrcDir /* Length should be 0x824 */
|
|
DeclROMCRC: .long 0x0 /* TODO: calculate this */
|
|
.byte 1 /* Revision Level */
|
|
.byte appleFormat /* Apple Format */
|
|
.long testPattern /* magic TestPattern */
|
|
.byte 0 /* reserved */
|
|
.byte 0x0F /* byte lane marker */
|
|
DeclRomEnd:
|
|
.end
|
|
|