//Every block has the following header: // 0 - compressed size includeing header (word) // 2 - CRC-16 (word) // 4 - block type // 6 - uncompressed size (word) // 8 .. (compressed size + 5) - compressed data (byte array) dword CompressTFD (byte *pSrc, dword SourceBufferSize, byte *pDest, word TFDType, word SysID, void *pPercentFinishedCallback) { word OrigSize, CompSize; dword OutBufferSize, NrBlocks = 0, FullSize = SourceBufferSize; byte *FileHeader; //PercentFinishedCallback is called for every block. PercentFinished contains a number between 0 and 100 void (*PercentFinishedCallback) (dword PercentFinished) = pPercentFinishedCallback; //Build the tfd file header FileHeader = pDest; if (pDest) { STORE_WORD (pDest , 0x0008); STORE_WORD (pDest + 4, SysID); STORE_WORD (pDest + 6, 0x0001); pDest += 10; } OutBufferSize = 10; while (SourceBufferSize) { if (PercentFinishedCallback) PercentFinishedCallback ((FullSize - SourceBufferSize) * 100 / FullSize); NrBlocks++; OrigSize = (SourceBufferSize > 0x7ffa) ? 0x7ffa : SourceBufferSize; if (pDest) { CompSize = CompressBlock (pSrc, OrigSize, pDest + 8); //Build the block header STORE_WORD (pDest , CompSize + 6); STORE_WORD (pDest + 4, TFDType); STORE_WORD (pDest + 6, OrigSize); STORE_WORD (pDest + 2, CRC16 (0, pDest + 4, 4 + CompSize)); pDest += CompSize + 8; } else CompSize = CompressBlock (pSrc, OrigSize, NULL); OutBufferSize += CompSize + 8; SourceBufferSize -= OrigSize; pSrc += OrigSize; } if (FileHeader) { STORE_WORD (FileHeader + 8, NrBlocks); STORE_WORD (FileHeader + 2, CRC16 (0, FileHeader + 4, 6)); } if (PercentFinishedCallback) PercentFinishedCallback (100); return OutBufferSize; }
static void CheckCompression(char *mptr, int msize, char *dptr, int it, int *balgorithm, int*breference, int *bsize, char *best, int max) { int ib; int osize; int overhead; int first, last; int length; char difference[MOUTPUT], output[MOUTPUT]; for(ib=0; ib<msize; ib++) { difference[ib]=mptr[ib]^dptr[ib]; } // // compress with LZMA // osize= -1; // osize=CompressLzma(difference, dsize, output, MOUTPUT); if(osize>=0) { if(osize< *bsize) { *balgorithm=_compress_lzma; *breference=it; *bsize=osize; memcpy(best,output,osize); } } // // look for (offset,value) pairs // osize=CompressPairs(dptr, msize, output, MOUTPUT); if(osize>=0) { if(osize< *bsize) { *balgorithm=_compress_pairs; *breference=it; *bsize=osize; memcpy(best,output,osize); } } // // look for block // osize=CompressBlock(difference, mptr, msize, output, MOUTPUT); if(osize>=0) { if(osize+4< *bsize) { *balgorithm=_compress_block; *breference=it; *bsize=osize; memcpy(best,output,osize); } } }
//---------------------------------------------------------------------------- // // block compression // // addr: address of start of datatype // dtype: DIY datatype // comm: MPI communicator // comp_buf: pointer to compressed buffer, datatype DIY_BYTE (output) // comp_size: size of compressed buffer in bytes // // side effects: allocates comp_buf, will be freed automatically the next // time this function is called, user need not free comp_buf, // but should use up the result before calling again, because it will disappear // // returns: error code // int DIY_Compress_block(void* addr, DIY_Datatype dtype, MPI_Comm comm, unsigned char **comp_buf, int *comp_size) { comp_buf_v.clear(); CompressBlock(addr, dtype, comm, &comp_buf_v, comp_size); *comp_buf = &comp_buf_v[0]; return 0; }
ULONG _Compress(PVOID pvOutput, ULONG OutBufferSize, PVOID pvInput, ULONG InputSize) { PBYTE pbOutput, pbInput; ULONG CompresseBlockSize, BlockCount, InputBlockSize, OutputBlockSize; struct { ULONG CompressedSize; ULONG OriginalSize; ULONG BlockCount; } *pHeader; CompresseBlockSize = 0xE380; BlockCount = 0; *(PULONG_PTR)&pHeader = (ULONG_PTR)pvOutput; pbOutput = (PBYTE)(pHeader + 1); pbInput = (PBYTE)pvInput; pHeader->OriginalSize = InputSize; while (InputSize != 0) { ++BlockCount; InputBlockSize = min(InputSize, CompresseBlockSize); OutputBlockSize = CompressBlock(pbOutput + 2, OutBufferSize - 2, pbInput, InputBlockSize); OutBufferSize += 2; *(PUSHORT)pbOutput = OutputBlockSize; OutBufferSize -= OutputBlockSize; pbOutput += OutputBlockSize; pbInput += InputBlockSize; *pbOutput++ = 1; InputSize -= InputBlockSize; } *pbOutput++ = 0; pHeader->BlockCount = BlockCount; pHeader->CompressedSize = pbOutput - (PBYTE)pvOutput + sizeof(*pHeader) - sizeof(pHeader->OriginalSize); return pHeader->CompressedSize + sizeof(pHeader->OriginalSize); }
bool RunJPEGCompressor(JPEGCompressor *self,FILE *output) { uint32_t shifts= (self->eobshift-1)| (self->zeroshift-1<<3)| (self->eobshift-1<<6)| (self->acmagnitudeshift-1<<9)| (self->acremaindershift-1<<12)| (self->acsignshift-1<<15)| (self->dcmagnitudeshift-1<<18)| (self->dcremaindershift-1<<21)| (self->dcsignshift-1<<24); fputc((shifts>>24)&0xff,output); fputc((shifts>>16)&0xff,output); fputc((shifts>>8)&0xff,output); fputc(shifts&0xff,output); InitializeRangeEncoder(&self->encoder,STDIOWriteFunction,output); // Parse the JPEG structure. If this is the first bundle, // we have to first find the start marker. int parseres=ParseJPEGMetadata(&self->jpeg,self->start,self->end-self->start); if(parseres==JPEGMetadataParsingFailed) return false; if(parseres==JPEGMetadataFoundEndOfImage) return false; // TODO: Do sanity and conformance checks here. size_t totallength=self->end-self->start; size_t metadatalength=self->jpeg.bytesparsed; if(metadatalength>=0x1000000) return false; // Write metadata length. for(int i=23;i>=0;i--) { WriteBit(&self->encoder,(metadatalength>>i)&1,0x800); } // Write metadata. for(int i=0;i<metadatalength;i++) for(int j=7;j>=0;j--) { WriteBit(&self->encoder,(self->start[i]>>j)&1,0x800); } // Initialize bitstream reader and Huffman lookup tables // to read JPEG data. InitializeBitStreamReader(&self->bitstream,self->start+self->jpeg.bytesparsed, totallength-metadatalength); for(int i=0;i<4;i++) { if(self->jpeg.huffmandefined[0][i]) { InitializeHuffmanTable(&self->dctables[i]); for(int j=0;j<256;j++) { if(self->jpeg.huffmantables[0][i].codes[j].length) AddHuffmanCode(&self->dctables[i], self->jpeg.huffmantables[0][i].codes[j].code, self->jpeg.huffmantables[0][i].codes[j].length,j); } } if(self->jpeg.huffmandefined[1][i]) { InitializeHuffmanTable(&self->actables[i]); for(int j=0;j<256;j++) { if(self->jpeg.huffmantables[1][i].codes[j].length) AddHuffmanCode(&self->actables[i], self->jpeg.huffmantables[1][i].codes[j].code, self->jpeg.huffmantables[1][i].codes[j].length,j); } } } // Reset JPEG predictors. memset(self->predicted,0,sizeof(self->predicted)); // Allocate memory for a few rows of data, for neighbour blocks. JPEGBlock *rows[4][3]={NULL}; for(int i=0;i<self->jpeg.numscancomponents;i++) for(int j=0;j<3;j++) { rows[i][j]=malloc(self->jpeg.horizontalmcus* self->jpeg.scancomponents[i].component->horizontalfactor* sizeof(JPEGBlock)); if(!rows[i][j]) return false; //JPEGOutOfMemoryError; } // Initialize arithmetic encoder contexts. InitializeContexts(&self->eobbins[0][0][0],sizeof(self->eobbins)); InitializeContexts(&self->zerobins[0][0][0][0],sizeof(self->zerobins)); InitializeContexts(&self->pivotbins[0][0][0][0],sizeof(self->pivotbins)); InitializeContexts(&self->acmagnitudebins[0][0][0][0][0],sizeof(self->acmagnitudebins)); InitializeContexts(&self->acremainderbins[0][0][0][0],sizeof(self->acremainderbins)); InitializeContexts(&self->acsignbins[0][0][0][0],sizeof(self->acsignbins)); InitializeContexts(&self->dcmagnitudebins[0][0][0],sizeof(self->dcmagnitudebins)); InitializeContexts(&self->dcremainderbins[0][0][0],sizeof(self->dcremainderbins)); InitializeContexts(&self->dcsignbins[0][0][0][0],sizeof(self->dcsignbins)); int restartcounter=0; int restartindex=0; for(int row=0;row<self->jpeg.verticalmcus;row++) for(int col=0;col<self->jpeg.horizontalmcus;col++) { if(self->jpeg.restartinterval&&restartcounter==self->jpeg.restartinterval) { if(!FlushAndSkipRestartMarker(&self->bitstream,restartindex)) return false; restartindex=(restartindex+1)&7; restartcounter=0; memset(self->predicted,0,sizeof(self->predicted)); } restartcounter++; for(int comp=0;comp<self->jpeg.numscancomponents;comp++) { int hblocks=self->jpeg.scancomponents[comp].component->horizontalfactor; int vblocks=self->jpeg.scancomponents[comp].component->verticalfactor; JPEGQuantizationTable *quantization=self->jpeg.scancomponents[comp].component->quantizationtable; for(int mcu_y=0;mcu_y<vblocks;mcu_y++) for(int mcu_x=0;mcu_x<hblocks;mcu_x++) { int x=col*hblocks+mcu_x; int y=row*vblocks+mcu_y; JPEGBlock *current=&rows[comp][y%3][x]; JPEGBlock *west; if(x==0) west=NULL; else west=&rows[comp][y%3][x-1]; JPEGBlock *north; if(y==0) north=NULL; else north=&rows[comp][(y-1)%3][x]; if(!ReadBlock(self,current,comp)) return false; //fprintf(stderr,"%d,%d,%d: ",x,y,comp); //for(int i=0;i<64;i++) fprintf(stderr,"%d ",current->c[i]); //fprintf(stderr,"\n"); CompressBlock(self,comp,current,north,west,quantization); } } } // Kludge in a closing block, if possible. if(self->bitstream.pos!=self->end-2) return false; if(self->bitstream.pos[0]!=0xff) return false; if(self->bitstream.pos[1]!=0xd9) return false; metadatalength=2; // Write metadata length. for(int i=23;i>=0;i--) { WriteBit(&self->encoder,(metadatalength>>i)&1,0x800); } // Write metadata. for(int i=0;i<metadatalength;i++) for(int j=7;j>=0;j--) { WriteBit(&self->encoder,(self->bitstream.pos[i]>>j)&1,0x800); } FinishRangeEncoder(&self->encoder); for(int i=0;i<4;i++) for(int j=0;j<3;j++) free(rows[i][j]); return true; }
int TAP_Main (void) { AddTime(0, 0); BMP_WriteHeader(NULL, 0, 0); BootReason(); BuildWindowBorder(); BuildWindowInfo(); BuildWindowLine(); BuildWindowLineSelected(); BuildWindowScrollBar(); BuildWindowTitle(); busyWait(); CalcAbsSectorFromFAT(NULL, 0); CalcPrepare(); CalcTopIndex(0, 0); Callback(0, NULL, 0, 0, 0, 0); CallbackHelper(NULL, NULL, 0, 0, 0, 0); CallBIOS(0, 0, 0, 0, 0); CallFirmware(0, 0, 0, 0, 0); CallTraceEnable(FALSE); CallTraceEnter(NULL); CallTraceExit(NULL); CallTraceInit(); CaptureScreen(0, 0, 0, NULL, 0, 0); ChangeDirRoot(); CheckSelectable(0, 0); combineVfdData(NULL, NULL); compact(NULL, 0); CompressBlock(NULL, 0, NULL); CompressedTFDSize(NULL, 0, NULL); CompressTFD(NULL, 0, NULL, 0, 0, NULL); CRC16(0, NULL, 0); CRC32 (0, NULL, 0); Delay(0); DialogEvent(NULL, NULL, NULL); DialogMsgBoxButtonAdd(NULL, FALSE); DialogMsgBoxExit(); DialogMsgBoxInit(NULL, NULL, NULL, NULL); DialogMsgBoxShow(); DialogMsgBoxShowInfo(0); DialogMsgBoxShowOK(); DialogMsgBoxShowOKCancel(0); DialogMsgBoxShowYesNo(0); DialogMsgBoxShowYesNoCancel(0); DialogMsgBoxTitleSet(NULL, NULL); DialogProfileChange(NULL); DialogProfileCheck(NULL, NULL, FALSE); DialogProfileLoad(NULL); DialogProfileLoadDefault(); DialogProfileLoadMy(NULL, FALSE); DialogProfileSave(NULL); DialogProfileSaveDefault(); DialogProfileScrollBehaviourChange(FALSE, FALSE); DialogProgressBarExit(); DialogProgressBarInit(NULL, NULL, 0, 0, NULL, 0, 0); DialogProgressBarSet(0, 0); DialogProgressBarShow(); DialogProgressBarTitleSet(NULL); DialogWindowChange(NULL, FALSE); DialogWindowCursorChange(FALSE); DialogWindowCursorSet(0); DialogWindowExit(); DialogWindowHide(); DialogWindowInfoAddIcon(0, 0, NULL); DialogWindowInfoAddS(0, 0, 0, NULL, 0, 0, 0, 0, 0); DialogWindowInfoDeleteAll(); DialogWindowInit(NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0); DialogWindowItemAdd(NULL, 0, NULL, 0, FALSE, FALSE, 0, NULL); DialogWindowItemAddSeparator(); DialogWindowItemChangeFlags(0, FALSE, FALSE); DialogWindowItemChangeIcon(0, 0, NULL); DialogWindowItemChangeParameter(0, NULL, 0); DialogWindowItemChangeValue(0, NULL, 0); DialogWindowItemDelete(0); DialogWindowItemDeleteAll(); DialogWindowRefresh(); DialogWindowReInit(0, 0, 0, 0, 0, 0); DialogWindowScrollDown(); DialogWindowScrollDownPage(); DialogWindowScrollUp(); DialogWindowScrollUpPage(); DialogWindowShow(); DialogWindowTabulatorSet(0, 0); DialogWindowTitleChange(NULL, NULL, NULL); DialogWindowTypeChange(0); DrawMsgBoxButtons(); DrawMsgBoxTitle(); DrawOSDLine(0, 0, 0, 0, 0, 0); DrawProgressBarBar(0, 0); DrawProgressBarTitle(); DrawWindowBorder(); DrawWindowInfo(); DrawWindowLine(0); DrawWindowLines(); DrawWindowScrollBar(); DrawWindowTitle(); EndMessageWin(); exitHook(); ExtractLine(NULL, NULL); FileSelector(NULL, NULL, NULL, 0); FileSelectorKey(0, 0); FindDBTrack(); FindInstructionSequence(NULL, NULL, 0, 0, 0, 0); findSendToVfdDisplay(0, 0); FlashAddFavourite(NULL, 0, FALSE); FlashDeleteFavourites(); FlashFindEndOfServiceNameTableAddress(); FlashFindEndOfServiceTableAddress(0); FlashFindServiceAddress(0, 0, 0, 0); FlashFindTransponderIndex(0, 0, 0); FlashGetBlockStartAddress(0); FlashGetChannelNumber(0, 0, 0, 0); FlashGetSatelliteByIndex(0); FlashGetServiceByIndex(0, FALSE); FlashGetServiceByName (NULL, FALSE); FlashGetTransponderCByIndex(0); FlashGetTransponderSByIndex(0, 0); FlashGetTransponderTByIndex(0); FlashGetTrueLocalTime(0, 0); FlashGetType(); FlashInitialize(0); FlashProgram(); FlashReindexFavourites(0, 0, 0); FlashReindexTimers(0, 0, 0); FlashRemoveCASServices(FALSE); FlashRemoveServiceByIndex(0, FALSE); FlashRemoveServiceByIndexString(NULL, FALSE); FlashRemoveServiceByLCN(NULL, FALSE); FlashRemoveServiceByName(NULL, FALSE); FlashRemoveServiceByPartOfName(NULL, FALSE); FlashRemoveServiceByUHF(NULL, FALSE, FALSE); FlashServiceAddressToServiceIndex(NULL); FlashWrite(NULL, NULL, 0, NULL); FlushCache(NULL, 0); FreeOSDRegion(0); fwHook(0); GetAudioTrackPID(0, NULL); GetClusterPointer(0); GetCurrentEvent(NULL); GetEEPROMAddress(); GetEEPROMPin(); GetFrameBufferPixel(0, 0); GetFrameSize(0, 0); GetFWInfo(0, 0, 0, 0, 0, 0, 0, 0); GetHeapParameter(NULL, 0); GetLine(NULL, 0); GetOSDMapAddress(); GetOSDRegionHeight(0); GetOSDRegionWidth(0); GetPinStatus(); GetPIPPosition(NULL, NULL, NULL, NULL); getRECSlotAddress(); GetSysOsdControl(0); GetToppyString(0); HasEnoughItemMemory(); HDD_AAM_Disable(); HDD_AAM_Enable(0); HDD_APM_Disable(); HDD_APM_Enable(0); HDD_BigFile_Read(NULL, 0, 0, NULL); HDD_BigFile_Size(NULL); HDD_BigFile_Write(NULL, 0, 0, NULL); HDD_ChangeDir(NULL); HDD_DecodeRECHeader(NULL, NULL); HDD_EncodeRECHeader(NULL, NULL, 0); HDD_FappendOpen(NULL); HDD_FappendWrite(NULL, NULL); HDD_FindPCR(NULL, 0); HDD_FindPMT(NULL, 0, NULL); HDD_FreeSize(); HDD_GetClusterSize(); HDD_GetFileDir(NULL, 0, NULL); HDD_GetFirmwareDirCluster(); HDD_GetHddID(NULL, NULL, NULL); HDD_IdentifyDevice(NULL); HDD_isAnyRecording(); HDD_isCryptedStream(NULL, 0); HDD_isRecording(0); HDD_LiveFS_GetChainLength(0); HDD_LiveFS_GetFAT1Address(); HDD_LiveFS_GetFAT2Address(); HDD_LiveFS_GetFirstCluster(0); HDD_LiveFS_GetLastCluster(0); HDD_LiveFS_GetNextCluster(0); HDD_LiveFS_GetPreviousCluster(0); HDD_LiveFS_GetRootDirAddress(); HDD_LiveFS_GetSuperBlockAddress(); HDD_MakeNewRecName(NULL, 0); HDD_Move(NULL, NULL, NULL); HDD_ReadClusterDMA(0, NULL); HDD_ReadSector(0, 0); HDD_ReadSectorDMA(0, 0, NULL); HDD_RECSlotGetAddress(0); HDD_RECSlotIsPaused(0); HDD_RECSlotPause(0, FALSE); HDD_RECSlotSetDuration(0, 0); HDD_SetCryptFlag(NULL, 0); HDD_SetFileDateTime(NULL, 0, 0, 0); HDD_SetSkipFlag (NULL, FALSE); HDD_SetStandbyTimer(0); HDD_Smart_DisableAttributeAutoSave(); HDD_Smart_DisableOperations(); HDD_Smart_EnableAttributeAutoSave(); HDD_Smart_EnableOperations(); HDD_Smart_ExecuteOfflineImmediate(0); HDD_Smart_ReadData(0); HDD_Smart_ReadThresholdData(0); HDD_Smart_ReturnStatus(); HDD_Stop(); HDD_TAP_Callback(0, NULL, 0, 0, 0, 0); HDD_TAP_Disable(0, 0); HDD_TAP_DisableAll(0); HDD_TAP_DisabledEventHandler(0, 0, 0); HDD_TAP_GetCurrentDir(NULL); HDD_TAP_GetCurrentDirCluster(); HDD_TAP_GetIDByFileName(NULL); HDD_TAP_GetIDByIndex(0); HDD_TAP_GetIndexByID(0); HDD_TAP_GetInfo(0, NULL); HDD_TAP_GetStartParameter(); HDD_TAP_isAnyRunning(); HDD_TAP_isBatchMode(); HDD_TAP_isDisabled(0); HDD_TAP_isDisabledAll(); HDD_TAP_isRunning(0); HDD_TAP_SendEvent(0, FALSE, 0, 0, 0); HDD_TAP_SetCurrentDirCluster(0); HDD_TAP_Start(NULL, FALSE, NULL, NULL); HDD_TAP_StartedByTAP(); HDD_TAP_Terminate(0); HDD_TouchFile(NULL); HDD_TranslateDirCluster(0, NULL); HDD_TruncateFile(NULL, 0); HDD_Write(NULL, 0, NULL); HDD_WriteClusterDMA(0, NULL); HDD_WriteSectorDMA(0, 0, NULL); HookEnable(0, 0); HookExit(); HookIsEnabled(0); HookMIPS_Clear(0, 0, 0); HookMIPS_Set(0, 0, 0); HookSet(0, 0); IMEM_Alloc(0); IMEM_Init(0); IMEM_isInitialized(); IMEM_Compact(); IMEM_Free(NULL); IMEM_GetInfo(NULL, NULL); IMEM_Kill(); InfoTestGrid(); INICloseFile(); INIFindStartEnd(NULL, NULL, NULL, 0); INIGetARGB(NULL, NULL, NULL, NULL, NULL, 0); INIGetHexByte(NULL, 0, 0, 0); INIGetHexDWord(NULL, 0, 0, 0); INIGetHexWord(NULL, 0, 0, 0); INIGetInt(NULL, 0, 0, 0); INIGetString(NULL, NULL, NULL, 0); INIKillKey(NULL); INIOpenFile(NULL); INISaveFile(NULL); INISetARGB(NULL, 0, 0, 0, 0); INISetComment(NULL); INISetHexByte(NULL, 0); INISetHexDWord(NULL, 0); INISetHexWord(NULL, 0); INISetInt(NULL, 0); INISetString(NULL, NULL); initCodeWrapper(0); InitTAPAPIFix(); InitTAPex(); InteractiveGetStatus(); InteractiveSetStatus(FALSE); intLock(); intUnlock(0); isAnyOSDVisible(0, 0, 0, 0); isLegalChar(0, 0); isMasterpiece(); isMPMenu(); iso639_1(0); isOSDRegionAlive(0); isValidChannel(NULL); LangGetString(0); LangLoadStrings(NULL, 0, 0); LangUnloadStrings(); Log(NULL, NULL, FALSE, 0, NULL); LowerCase(NULL); MakeValidFileName(NULL, 0); MHEG_Status(); MPDisplayClearDisplay(); MPDisplayClearSegments(0, 0); MPDisplayDisplayLongString(NULL); MPDisplayDisplayShortString(NULL); MPDisplayGetDisplayByte(0); MPDisplayGetDisplayMask(0); MPDisplayInstallMPDisplayFwHook(); MPDisplaySetAmFlag(0); MPDisplaySetColonFlag(0); MPDisplaySetDisplayByte(0, 0); MPDisplaySetDisplayMask(0, 0); MPDisplaySetDisplayMemory(NULL); MPDisplaySetDisplayMode(0); MPDisplaySetPmFlag(0); MPDisplaySetSegments(0, 0); MPDisplayToggleSegments(0, 0); MPDisplayUninstallMPDisplayFwHook(); MPDisplayUpdateDisplay(); Now(NULL); OSDCopy(0, 0, 0, 0, 0, 0, 0); OSDLinesForeDirty(FALSE); ParseLine(NULL, NULL, 0); ProfileDirty(); ProfileInit(); ProfileLoad(NULL, FALSE); ProfileMayReload(); ReadEEPROM(0, 0, NULL); ReadIICRegister(0, 0, 0, 0, NULL); Reboot(0); ReceiveSector(0); RTrim(NULL); SaveBitmap(NULL, 0, 0, NULL); SendEvent(0, 0, 0, 0); SendEventHelper(NULL, 0, 0, 0); SendHDDCommand(0, 0, 0, 0, 0, 0, 0); SendToFP(NULL); SeparatePathComponents(NULL, NULL, NULL, NULL); SetCrashBehaviour(0); setSymbol14(0, 0); setSymbol17(0, 0); ShowMessageWin(NULL, NULL, NULL, 0); ShowMessageWindow(NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0); Shutdown(0); SoundSinus(0, 0, 0); StrEndsWith(NULL, NULL); stricstr(NULL, NULL); SubtitleGetStatus(); SubtitleSetStatus(FALSE); SuppressedAutoStart(); SwapDWords(0); SwapWords(0); TAP_Osd_PutFreeColorGd(0, 0, 0, NULL, FALSE, 0); TAPCOM_CloseChannel(NULL); TAPCOM_Finish(NULL, 0); TAPCOM_GetChannel(0, NULL, NULL, NULL, NULL); TAPCOM_GetReturnValue(NULL); TAPCOM_GetStatus(NULL); TAPCOM_LastAlive(NULL); TAPCOM_OpenChannel(0, 0, 0, NULL); TAPCOM_Reject(NULL); TAPCOM_StillAlive(NULL); TFDSize(NULL); TimeDiff(0, 0); TimeFormat(0, 0, 0); TunerGet(0); TunerSet(0); UncompressBlock(NULL, 0, NULL, 0); UncompressedFirmwareSize(NULL); UncompressedLoaderSize(NULL); UncompressedTFDSize(NULL); UncompressFirmware(NULL, NULL, NULL); UncompressLoader(NULL, NULL, NULL); UncompressTFD(NULL, NULL, NULL); UpperCase(NULL); ValidFileName(NULL, 0); WindowDirty(); WriteIICRegister(0, 0, 0, 0, NULL); YUV2RGB(0, 0, 0, NULL, NULL, NULL); YUV2RGB2(0, 0, 0, NULL, NULL, NULL); return 0; }