//*************************************************************************** // // FileName: // $Workfile: ZIVACHIP.H $ // // Author: // TOSHIBA [PCS](PSY) Seiichi Nakamura // Copyright (c) 1997 TOSHIBA CORPORATION // // Description: // //*************************************************************************** // $Header: /DVD Drivers/ZiVA.VxD/ZIVACHIP.H 18 98/06/01 6:38p Yagi $ // $Modtime: 98/05/29 9:11a $ // $Nokeywords:$ //*************************************************************************** //*************************************************************************** // //*************************************************************************** #ifndef _ZIVACHIP_H_ #define _ZIVACHIP_H_ #define ZIVA_INT_ERR (0x00000001L) #define ZIVA_INT_PICV (0x00000002L) #define ZIVA_INT_GOPV (0x00000004L) #define ZIVA_INT_SEQV (0x00000008L) #define ZIVA_INT_ENDV (0x00000010L) #define ZIVA_INT_PICD (0x00000020L) #define ZIVA_INT_VSYNC (0x00000040L) #define ZIVA_INT_AOR (0x00000080L) #define ZIVA_INT_EPTM (0x00000080L) #define ZIVA_INT_UND (0x00000100L) #define ZIVA_INT_ENDC (0x00000200L) #define ZIVA_INT_RDYS (0x00000400L) #define ZIVA_INT_SCN (0x00000800L) #define ZIVA_INT_USR (0x00001000L) #define ZIVA_INT_ENDP (0x00002000L) #define ZIVA_INT_ENDD (0x00004000L) #define ZIVA_INT_AEE (0x00008000L) #define ZIVA_INT_BUFF (0x00010000L) #define ZIVA_INT_SEQE (0x00020000L) #define ZIVA_INT_NV (0x00040000L) #define ZIVA_INT_HLI (0x00080000L) #define ZIVA_INT_RDYD (0x00100000L) #define ZIVA_INT_RESERV1 (0x00200000L) #define ZIVA_INT_AUD (0x00400000L) #define ZIVA_INT_INIT (0x00800000L) // by oka #define PBT_INT_END_VOB (0x00000001L) #define PBT_INT_NV_PCK (0x00000002L) typedef enum { ZIVARESULT_NOERROR = 0, ZIVARESULT_TIMEOUT } ZIVARESULT; typedef enum { RESET_AUTHENTICATION = 0, GET_CHALLENGE_DATA = 1, SEND_RESPONSE_DATA = 2, SEND_CHALLENGE_DATA = 3, GET_RESPONSE_DATA = 4, SEND_DISK_KEY = 5, SEND_TITLE_KEY = 6, SET_DECRYPTION_MODE = 7, SET_PASS_THROUGH_MODE = 8 } COPY_PROTECT_COMMAND_TYPE; typedef enum { SET_NEW_COMMAND = 0, COMMAND_COMPLETE = 1, COMMAND_ERROR = 2, READY_DKEY = 3 } COPY_PROTECT_COMMAND; typedef enum { ZIVA_STATE_INITIALIZATION = 0x01, ZIVA_STATE_IDLE = 0x02, ZIVA_STATE_PLAY = 0x04, ZIVA_STATE_PAUSE = 0x08, ZIVA_STATE_SCAN = 0x10, ZIVA_STATE_FREEZE = 0x20, ZIVA_STATE_SLOWMOTION = 0x40 } ZIVA_PROC_STATE; class CIOIF; //--------------------------------------------------------------------------- // CZiVA for CL6105 //--------------------------------------------------------------------------- class CZiVA { public: //------------------------ // Private class for ZiVA //------------------------ class CZiVAMemory { private: DWORD Address; CZiVA *m_ziva; public: CZiVAMemory(); void Init( CZiVA *pziva , DWORD addr ); DWORD Get( DWORD *pData ); DWORD Set( DWORD Data ); DWORD GetAndSet( DWORD Mask, DWORD SetData ); CZiVAMemory& operator=(const DWORD &Data ) { Set( Data ); return *this; }; operator DWORD() { DWORD Data; Get( &Data ); return Data; }; CZiVAMemory& operator&=(const DWORD &Data ); CZiVAMemory& operator|=(const DWORD &Data ); }; friend class CZiVAMemory; private: // datas CIOIF *m_pioif; static BYTE UXData[]; BYTE * gpbRead; // Read pointer to the UCode buffer IKernelService *m_pKernelObj; // Kernel service object private: // commands ZIVARESULT ZiVACommand( DWORD CommandID, DWORD d1 = 0, DWORD d2 = 0, DWORD d3 = 0, DWORD d4 = 0, DWORD d5 = 0, DWORD d6 = 0 ); ZIVARESULT ZiVACommandNoWait( DWORD CommandID, DWORD d1 = 0, DWORD d2 = 0, DWORD d3 = 0, DWORD d4 = 0, DWORD d5 = 0, DWORD d6 = 0 ); DWORD ZiVAWriteReg(DWORD Addr, DWORD Data ); DWORD ZiVAReadReg(DWORD Addr, DWORD *Data ); DWORD ZiVAWriteIMEM(DWORD Addr, DWORD Data ); DWORD ZiVAReadIMEM(DWORD Addr, DWORD *Data ); // for microcode down load.... DWORD load_GetDWORD(); DWORD load_GetDWORDSwap(); DWORD load_GetDWORDSwapBackward(); public: // datas CZiVAMemory Host_Control; CZiVAMemory ROM_INFO; CZiVAMemory DRAM_INFO; CZiVAMemory UCODE_MEMORY; CZiVAMemory VIDEO_MODE; CZiVAMemory DISPLAY_ASPECT_RATIO; CZiVAMemory ASPECT_RATIO_MODE; CZiVAMemory PAN_SCAN_SOURCE; CZiVAMemory PAN_SCAN_HORIZONTAL_OFFSET; CZiVAMemory TOP_BORDER; CZiVAMemory BORDER_COLOR; CZiVAMemory BACKGROUND_COLOR; CZiVAMemory OSD_EVEN_FIELD; CZiVAMemory OSD_ODD_FIELD; CZiVAMemory IC_TYPE; CZiVAMemory ERR_CONCEALMENT_LEVEL; CZiVAMemory ERR_HORIZONTAL_SIZE; CZiVAMemory ERR_VERTICAL_SIZE; CZiVAMemory ERR_ASPECT_RATIO_INFORMATION; CZiVAMemory ERR_FRAME_RATE_CODE; CZiVAMemory FORCE_CODED_ASPECT_RATIO; CZiVAMemory AUDIO_CONFIG; CZiVAMemory AUDIO_DAC_MODE; CZiVAMemory AUDIO_CLOCK_SELECTION; CZiVAMemory IEC_958_DELAY; CZiVAMemory AUDIO_ATTENUATION; CZiVAMemory IEC_958_CHANNEL_STATUS_BITS; CZiVAMemory AC3_OUTPUT_MODE; CZiVAMemory AC3_OPERATIONAL_MODE; CZiVAMemory AC3_LOW_BOOST; CZiVAMemory AC3_HIGH_CUT; CZiVAMemory AC3_PCM_SCALE_FACTOR; CZiVAMemory AC3_LFE_OUTPUT_ENABLE; CZiVAMemory AC3_VOICE_SELECT; CZiVAMemory AC3_L_LEVEL; CZiVAMemory AC3_C_LEVEL; CZiVAMemory AC3_R_LEVEL; CZiVAMemory AC3_SL_LEVEL; CZiVAMemory AC3_SR_LEVEL; CZiVAMemory AC3_CENTER_DELAY; CZiVAMemory AC3_SURROUND_DELAY; CZiVAMemory BITSTREAM_TYPE; CZiVAMemory BITSTREAM_SOURCE; CZiVAMemory SD_MODE; CZiVAMemory CD_MODE; CZiVAMemory AV_SYNC_MODE; CZiVAMemory VIDEO_PTS_SKIP_INTERVAL; CZiVAMemory VIDEO_PTS_REPEAT_INTERVAL; CZiVAMemory AUTOPAUSE_ENABLE; CZiVAMemory VIDEO_ENV_CHANGE; CZiVAMemory MEMCOPY_XFER_BLOCKSIZE; CZiVAMemory INT_MASK; CZiVAMemory AUTO_FLUSH_INTERVAL; CZiVAMemory RDY_S_THRESHOLD_LOW; CZiVAMemory MEMORY_MAP; CZiVAMemory PCI_BUFFER_START; CZiVAMemory PCI_BUFFER_END; CZiVAMemory DSI_BUFFER_START; CZiVAMemory DSI_BUFFER_END; CZiVAMemory OSD_BUFFER_START; CZiVAMemory OSD_BUFFER_END; CZiVAMemory OSD_BUFFER_IDLE_START; CZiVAMemory USER_DATA_BUFFER_START; CZiVAMemory USER_DATA_BUFFER_END; CZiVAMemory USER_DATA_READ; CZiVAMemory USER_DATA_WRITE; CZiVAMemory DUMP_DATA_BUFFER_START; CZiVAMemory DUMP_DATA_BUFFER_END; CZiVAMemory SUB_PICTURE_PALETTE_START; CZiVAMemory SUB_PICTURE_PALETTE_END; CZiVAMemory PROC_STATE; CZiVAMemory MRC_ID; CZiVAMemory MRC_STATUS; CZiVAMemory INT_STATUS; CZiVAMemory HLI_INT_SRC; CZiVAMemory BUFF_INT_SRC; CZiVAMemory UND_INT_SRC; CZiVAMemory PBT_INT_SRC; CZiVAMemory AOR_INT_SRC; CZiVAMemory AEE_INT_SRC; CZiVAMemory ERR_INT_SRC; CZiVAMemory VIDEO_EMPTINESS; CZiVAMemory AUDIO_EMPTINESS; CZiVAMemory CURR_PIC_DISPLAYED; CZiVAMemory NEXT_PIC_DISPLAYED; CZiVAMemory VIDEO_FIELD; CZiVAMemory OSD_VALID; CZiVAMemory NUM_DECODED; CZiVAMemory NUM_SKIPPED; CZiVAMemory NUM_REPEATED; CZiVAMemory MRC_PIC_PTS; CZiVAMemory MRC_PIC_STC; CZiVAMemory N_AUD_DECODED; CZiVAMemory NEXT_SECTOR_ADDR; CZiVAMemory N_SYS_ERRORS; CZiVAMemory N_VID_ERRORS; CZiVAMemory N_AUD_ERRORS; CZiVAMemory DATE_TIME; CZiVAMemory VERSION; CZiVAMemory EXTENDED_VERSION; CZiVAMemory PIC1_BUFFER_START; CZiVAMemory PIC1_PTS; CZiVAMemory PIC1_PAN_SCAN; CZiVAMemory PIC1_USER_DATA; CZiVAMemory PIC1_TREF_PTYP_FLGS; CZiVAMemory PIC2_BUFFER_START; CZiVAMemory PIC2_PTS; CZiVAMemory PIC2_PAN_SCAN; CZiVAMemory PIC2_USER_DATA; CZiVAMemory PIC2_TREF_PTYP_FLGS; CZiVAMemory PIC3_BUFFER_START; CZiVAMemory PIC3_PTS; CZiVAMemory PIC3_PAN_SCAN; CZiVAMemory PIC3_USER_DATA; CZiVAMemory PIC3_TREF_PTYP_FLGS; CZiVAMemory STREAM_ID; CZiVAMemory PACKET_LEN; CZiVAMemory PES_HEADER; CZiVAMemory SUBPIC_EMPTINESS; CZiVAMemory H_SIZE; CZiVAMemory V_SIZE; CZiVAMemory APSECT_RATIO; CZiVAMemory FRAME_RATE; CZiVAMemory BIT_RATE; CZiVAMemory VBV_SIZE; CZiVAMemory SEQ_FLAGS; CZiVAMemory DISP_SIZE_H_V; CZiVAMemory TIME_CODE; CZiVAMemory GOP_FLAGS; CZiVAMemory TEMP_REF; CZiVAMemory PIC_TYPE; CZiVAMemory VBV_DELAY; CZiVAMemory PIC_HEADER; CZiVAMemory AUDIO_TYPE; CZiVAMemory MPEG_AUDIO_HEADER1; CZiVAMemory AC3_FRAME_NUMBER; CZiVAMemory LPCM_AUDIO_EMPHASIS_FLAG; CZiVAMemory MPEG_AUDIO_HEADER2; CZiVAMemory LPCM_AUDIO_MUTE_FLAG; CZiVAMemory AC3_BSI_IS_BEING_READ; CZiVAMemory LPCM_AUDIO_FRAME_NUMBER; CZiVAMemory AC3_BSI_VALID; CZiVAMemory LPCM_AUDIO_QUANTIZATION_WORD_LENGTH; CZiVAMemory AC3_BSI_FRAME; CZiVAMemory LPCM_AUDIO_SAMPLING_FREQUENCY; CZiVAMemory AC3_FSCOD_FRMSIZECOD; CZiVAMemory LPCM_AUDIO_NUMBER_OF_AUDIO_CHANNELS; CZiVAMemory AC3_BSID_BSMOD; CZiVAMemory LPCM_AUDIO_DYNAMIC_RANGE_CONTROL; CZiVAMemory AC3_ACMOD_CMIXLEV; CZiVAMemory AC3_SURMIXLEV_DSURMOD; CZiVAMemory AC3_LFEON_DIALNORM; CZiVAMemory AC3_COMPR_LANGCOD; CZiVAMemory AC3_MIXLEV_ROOMTYP; CZiVAMemory AC3_DIALNORM2_COMPR2; CZiVAMemory AC3_LANGCOD2_MIXLEV2; CZiVAMemory AC3_ROOMTYP2_COPYRIGHTB; CZiVAMemory AC3_ORIGBS_TIMECOD1; CZiVAMemory AC3_TIMECOD2; CZiVAMemory SE_STATUS; CZiVAMemory NEW_AUDIO_MODE; CZiVAMemory NEW_SUBPICTURE_PALETTE; CZiVAMemory NEW_AUDIO_CONFIG; CZiVAMemory VSYNC_HEARTBEAT; CZiVAMemory ML_HEARTBEAT; CZiVAMemory SUBPICTURE_ENABLE; CZiVAMemory HIGHLIGHT_ENABLE; CZiVAMemory CURRENT_BUTTON; CZiVAMemory AU_CLK_INOUT; //Toshiba special CZiVAMemory IDLE_DELAY; CZiVAMemory ERR_MPEG_VERSION; // 98.04.02 H.Yagi CZiVAMemory VERTICAL_DISPLAYMODE; // 98.04.02 H.Yagi CZiVAMemory AC3_ENGINE_VERSION; // 98.04.02 H.Yagi CZiVAMemory ROM_END_POINTER; // 98.04.02 H.Yagi CZiVAMemory CURRENT_VOB_CELL_ID; // 98.04.02 H.Yagi CZiVAMemory PREV_VOBU_VIDEO_RLBN; // 98.04.02 H.Yagi CZiVAMemory HOST_OPTIONS; // 98.05.29 H.Yagi // Authentication CZiVAMemory KEY_ADDRESS; // Yagi CZiVAMemory KEY_LENGTH; // Yagi CZiVAMemory KEY_COMMAND; // Yagi CZiVAMemory KEY_STATUS; // Yagi CZiVAMemory DRIVE_CHALLENGE_0; // Yagi CZiVAMemory DRIVE_CHALLENGE_1; // Yagi CZiVAMemory DRIVE_CHALLENGE_2; // Yagi CZiVAMemory DRIVE_CHALLENGE_3; // Yagi CZiVAMemory DRIVE_CHALLENGE_4; // Yagi CZiVAMemory DRIVE_CHALLENGE_5; // Yagi CZiVAMemory DRIVE_CHALLENGE_6; // Yagi CZiVAMemory DRIVE_CHALLENGE_7; // Yagi CZiVAMemory DRIVE_CHALLENGE_8; // Yagi CZiVAMemory DRIVE_CHALLENGE_9; // Yagi CZiVAMemory DECODER_CHALLENGE_0; // Yagi CZiVAMemory DECODER_CHALLENGE_1; // Yagi CZiVAMemory DECODER_CHALLENGE_2; // Yagi CZiVAMemory DECODER_CHALLENGE_3; // Yagi CZiVAMemory DECODER_CHALLENGE_4; // Yagi CZiVAMemory DECODER_CHALLENGE_5; // Yagi CZiVAMemory DECODER_CHALLENGE_6; // Yagi CZiVAMemory DECODER_CHALLENGE_7; // Yagi CZiVAMemory DECODER_CHALLENGE_8; // Yagi CZiVAMemory DECODER_CHALLENGE_9; // Yagi CZiVAMemory DRIVE_RESULT_0; // Yagi CZiVAMemory DRIVE_RESULT_1; // Yagi CZiVAMemory DRIVE_RESULT_2; // Yagi CZiVAMemory DRIVE_RESULT_3; // Yagi CZiVAMemory DRIVE_RESULT_4; // Yagi CZiVAMemory DECODER_RESULT_0; // Yagi CZiVAMemory DECODER_RESULT_1; // Yagi CZiVAMemory DECODER_RESULT_2; // Yagi CZiVAMemory DECODER_RESULT_3; // Yagi CZiVAMemory DECODER_RESULT_4; // Yagi CZiVAMemory TITLE_KEY_0; // Yagi CZiVAMemory TITLE_KEY_1; // Yagi CZiVAMemory TITLE_KEY_2; // Yagi CZiVAMemory TITLE_KEY_3; // Yagi CZiVAMemory TITLE_KEY_4; // Yagi public: CZiVA( void ); public: // commands void Init( IKernelService *pKernelObj, CIOIF *pioif ); void CppInit( DWORD KeyAddr ); // Type 0: NTSC, Type 1: NTSC BOOL WriteMicrocode( DWORD Type ); DWORD ZiVAWriteMemory(DWORD Addr, DWORD Data ); DWORD ZiVAReadMemory(DWORD Addr, DWORD *Data ); ZIVARESULT Abort( DWORD Flush ); ZIVARESULT Digest( DWORD x, DWORD y, DWORD decimation, DWORD threshold, DWORD start ); ZIVARESULT DumpData_VCD( DWORD start, DWORD length, DWORD address ); ZIVARESULT DumpData_DVD( DWORD numberOfBytes ); ZIVARESULT Fade( DWORD level, DWORD fadetime ); ZIVARESULT Freeze( DWORD displayMode ); // by oka ZIVARESULT HighLight( DWORD button, DWORD action ); ZIVARESULT HighLight2( DWORD Contrast, DWORD Color, DWORD YGeom, DWORD XGeom ); // ZIVARESULT NewAudioMode( void ); ZIVARESULT NewPlayMode( void ); ZIVARESULT Pause( DWORD displaymode ); ZIVARESULT Play( DWORD playmode, DWORD fadetime, DWORD start, DWORD stop ); ZIVARESULT MemCopy( DWORD romAddr, DWORD dramAddr, DWORD Length ); ZIVARESULT Reset( void ); ZIVARESULT Resume( void ); ZIVARESULT Scan( DWORD skip, DWORD scanmode, DWORD displaymode ); ZIVARESULT ScreenLoad( DWORD address, DWORD length, DWORD displaymode ); ZIVARESULT SelectStream( DWORD streamtype, DWORD streamnumber ); ZIVARESULT SetFill( DWORD x, DWORD y, DWORD length, DWORD height, DWORD color ); ZIVARESULT SetStreams( DWORD videoID, DWORD audioID ); ZIVARESULT SingleStep( DWORD displaymode ); ZIVARESULT SlowMotion( DWORD N, DWORD displaymode ); // by oka ZIVARESULT Magnify( DWORD x, DWORD y, DWORD factor ); // ZIVARESULT SwitchOSDBuffer( DWORD evenfield, DWORD oddfield ); ZIVARESULT TransferKey( DWORD KeyType, DWORD Authenticate ); }; #endif // _ZIVACHIP_H_ //*************************************************************************** // End of //***************************************************************************