devxlogo

Apparent Performance Problems

Apparent Performance Problems

Question:
Could you tell me why this takes a 150MHz Pentium with 64MB of RAM just to run fast enough to catch MCI time output?

 Private Sub Rply_Timer_Run()Dim ReplayTime As LongDim CTime As LongDim iTemp As LongDim iLong As LongDim j As IntegerReplayIndex = 0BaseData = 1000000000Do While Rply = True    ReplayTime = SaveData(ReplayIndex).CDTime_Data            iLong = frmCD2.MMControl1.Position        iTemp = iLong And &HFF00  &H100        CDTime = iTemp / 10        CTime = CStr(iTemp) / 10                frmCD2.lblCDTime.Caption = Format(CTime / 100, "0.000")        frmCD2.lblCDTime.Refresh                    If (ReplayTime >= CDTime And ReplayTime <= (CDTime + 10)) Then                  OutData = SaveData(ReplayIndex).In_Out_Data                ReplayIndex = ReplayIndex + 1                              OutputData = OutData - BaseData                          OutputDataA = (CLng(OutputData) 10000)          OutputDataB = (CLng(OutputData  1000)) - (CLng(OutputDataA * 1000))          OutputDataC = (CLng(OutputData)) -OutputDataA * 1000000) + CLng(OutputDataB * 1000))                                OutputDataA1 = CStr(OutputDataA)                OutputDataB1 = CStr(OutputDataB)                OutputDataC1 = CStr(OutputDataC)                            PCDioOutPortA1 (OutputDataA1)                PCDioOutPortB1 (OutputDataB1)                PCDioOutPortC1 (OutputDataC1)                 j = j + 1            Else                j = j + 1            End If                        If j = 100 Then                DoEvents                j = 0            End If    LoopEnd Sub

Any help would be very much appreciated. (Version: Version 4.0 Professional)

Answer:
The kernel of the solution is that sixteen is 2 to the fourth power. Each position in the hex string can be translated into four binary digits to create the final result. To do this, you need to create a lookup table of the following structure and data;

 cHex  cBin    0   0000    1   0001    2   0010    3   0011    4   0100    5   0101    6   0110    7   0111    8   1000    9   1001    A   1010    B   1011    C   1100    D   1101    E   1110    F   1111 

Now, you can take the hex result that comes from the BINARY keyword and decode it using the lookup table, stacking your result with the least significant bit on the right (backwards).

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist