NuBusFPGA/nubus-to-ztex-gateware/rom.a
2022-04-17 11:25:48 +02:00

1 line
7.7 KiB
Plaintext

;Include files
PRINT OFF
INCLUDE 'SysErr.a' ;Macintosh System equates
INCLUDE 'SysEqu.a' ;Macintosh System equates
INCLUDE 'ROMEqu.a' ;Declaration ROM equates
INCLUDE 'SlotEqu.a' ;Slot Manager equates and macros
INCLUDE 'TimeEqu.a' ;Macintosh traps
INCLUDE 'Traps.a' ;Macintosh traps
INCLUDE 'VideoEqu.a' ;Video driver equates
INCLUDE 'DepVideoEqu.a'
PRINT ON
MACHINE MC68020
DclROM MAIN
sRsrc_Board EQU 1 ; board sResource (>0 & <128)
sRsrc_VidS8 EQU $80 ; functional sResources
_sRsrcDir
OSLstEntry sRsrc_Board,_sRsrc_Board ; board sRsrc List
OSLstEntry sRsrc_VidS8,_sRsrc_VidS8 ; video sRsrc List
DatLstEntry EndOfList,0 ; end of list
STRING C
_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
DatLstEntry EndOfList,0 ; end of list
_BoardType
DC.W CatBoard ; board sResource
DC.W TypBoard
DC.W 0
DC.W 0
_BoardName
DC.L 'SBusFPGA Video' ; name of board
; _VidICON ; optional icon, not needed
; _sVidNameDir ; optional name(s), not needed
_sPInitRec
DC.L _EndsPInitRec-_sPInitRec ; physical block size
INCLUDE 'NuBusFPGAPrimaryInit.a' ; the header/code
ALIGN 2
_EndsPInitRec
;_sSInitRec
; DC.L _EndsSInitRec-_sSInitRec ; physical block size
; INCLUDE 'NuBusFPGASecondaryInit.a' ; the header/code
; ALIGN 2
;_EndsSInitRec
STRING C
_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
DatLstEntry EndOfList,0
_VendorId
DC.L 'Romain Dolbeau' ; vendor ID
_RevLevel
DC.L 'NuBusFPGA V1.0' ; revision level
_PartNum
DC.L 'Part Number' ; part number
_Date
DC.B '&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
DatLstEntry EndOfList,0 ; end of list
STRING C
_VideoType
DC.W CatDisplay ; <Category>
DC.W TypVideo ; <Type>
DC.W DrSwApple ; <DrvrSw>
DC.W DrHwNuBusFPGA ; <DrvrHw>
_VideoName
DC.L 'Video_NuBusFPGA' ; video driver name
_MinorBase
DC.L defMinorBase ; frame buffer offset
_MinorLength
DC.L defMinorLength ; frame buffer length
;_VidDrvrDir
; OSLstEntry sMacOS68020,_sMacOS68020 driver directory for Mac OS
; DatLstEntry EndOfList,0
;
;_sMacOS68020
; DC.L _End020Drvr- sMacOS68020 ; physical block size
; INCLUDE 'NuBusFPGADrvr.a' ; driver code
;_End020Drvr
STRING C
_GammaDirS ; for the 640x480 monitor
OSLstEntry 128,_SmallGamma
DatLstEntry EndOfList,0
_SmallGamma
DC.L _EndSmallGamma-_SmallGamma
DC.W SGammaResID
DC.B 'Small Gamma' ; Monitors name
ALIGN 2
DC.W $0000 ; gVersion
DC.W DrHwNuBusFPGA ; gType
DC.W $0000 ; gFormulaSize
DC.W $0001 ; gChanCnt
DC.W $0100 ; gDataCnt
DC.W $0008 ; gChanWidth
DC.L $0005090B,$0E101315,$17191B1D,$1E202224
DC.L $2527282A,$2C2D2F30,$31333436,$37383A3B
DC.L $3C3E3F40,$42434445,$4748494A,$4B4D4E4F
DC.L $50515254,$55565758,$595A5B5C,$5E5F6061
DC.L $62636465,$66676869,$6A6B6C6D,$6E6F7071
DC.L $72737475,$76777879,$7A7B7C7D,$7E7F8081
DC.L $81828384,$85868788,$898A8B8C,$8C8D8E8F
DC.L $90919293,$94959596,$9798999A,$9B9B9C9D
DC.L $9E9FA0A1,$A1A2A3A4,$A5A6A6A7,$A8A9AAAB
DC.L $ABACADAE,$AFB0B0B1,$B2B3B4B4,$B5B6B7B8
DC.L $B8B9BABB,$BCBCBDBE,$BFC0C0C1,$C2C3C3C4
DC.L $C5C6C7C7,$C8C9CACA,$CBCCCDCD,$CECFD0D0
DC.L $D1D2D3D3,$D4D5D6D6,$D7D8D9D9,$DADBDCDC
DC.L $DDDEDFDF,$E0E1E1E2,$E3E4E4E5,$E6E7E7E8
DC.L $E9B9EAEB,$ECECEDEE,$EEEFF0F1,$F1F2F3F3
DC.L $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
DatLstEntry EndOfList,0 ; end of list
_EBVParms
DC.L _EndEBVParms-_EBVParms ; physical block size
DC.L defmBaseOffset ; QuickDraw base offset ; vpBaseOffset
DC.W RB8s ; physRowBytes ; vpRowBytes
DC.W defmBounds_Ts,defmBounds_Ls,defmBounds_Bs,defmBounds_Rs ; vpBounds
DC.W defVersion ; bmVersion ; vpVersion
DC.W 0 ; packType not used ; vpPackType
DC.L 0 ; packSize not used ; vpPackSize
DC.L defmHRes ; bmHRes
DC.L defmVRes ; bmVRes
DC.W ChunkyIndexed ; bmPixelType
DC.W 8 ; bmPixelSize
DC.W 1 ; bmCmpCount
DC.W 8 ; bmCmpSize
DC.L defmPlaneBytes ; bmPlaneBytes
_EndEBVParms
WITH FHeaderRec
ORG ROMSize-FHeaderRec.fhBlockSize
DC.L (_sRsrcDir-*)**$00FFFFFF ;offset to sResource directory
DC.L ROMSize ;length of declaration data
DC.L 0 ;CRC {Patched by crcPatch}
DC.B 2 ;revision (1-9)
DC.B AppleFormat ; format
DC.L TestPattern ;test pattern
DC.B 0 ;reserved byte
DC.B $0F ;ByteLanes: 1111 0001
ENDWITH
END