home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Power Pack / Visual_Basic4_Power_Pack.bin / vb4files / pclvbw11 / selftest.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1996-11-20  |  9.2 KB  |  334 lines

  1. VERSION 2.00
  2. Begin Form Selftest 
  3.    AutoRedraw      =   -1  'True
  4.    Caption         =   "Self Test"
  5.    ClientHeight    =   4020
  6.    ClientLeft      =   2130
  7.    ClientTop       =   3165
  8.    ClientWidth     =   7365
  9.    FontBold        =   -1  'True
  10.    FontItalic      =   0   'False
  11.    FontName        =   "Courier New"
  12.    FontSize        =   8.25
  13.    FontStrikethru  =   0   'False
  14.    FontUnderline   =   0   'False
  15.    Height          =   4710
  16.    Left            =   2070
  17.    LinkTopic       =   "Form1"
  18.    ScaleHeight     =   4020
  19.    ScaleWidth      =   7365
  20.    Top             =   2535
  21.    Width           =   7485
  22.    Begin Menu menuInstruct 
  23.       Caption         =   "Instructions"
  24.    End
  25.    Begin Menu menuConfig 
  26.       Caption         =   "Configuration"
  27.       Begin Menu menuPC 
  28.          Caption         =   "Standard PC"
  29.       End
  30.       Begin Menu menuDigi 
  31.          Caption         =   "DigiBoard"
  32.       End
  33.       Begin Menu menuBOCA 
  34.          Caption         =   "BOCA Board"
  35.       End
  36.    End
  37.    Begin Menu menuSettings 
  38.       Caption         =   "Settings"
  39.       Begin Menu menu1stPort 
  40.          Caption         =   "1st Port"
  41.          Begin Menu menu1stCOM1 
  42.             Caption         =   "COM1"
  43.          End
  44.          Begin Menu menu1stCOM2 
  45.             Caption         =   "COM2"
  46.          End
  47.          Begin Menu menu1stCOM3 
  48.             Caption         =   "COM3"
  49.          End
  50.          Begin Menu menu1stCOM4 
  51.             Caption         =   "COM4"
  52.          End
  53.       End
  54.       Begin Menu menu2ndPort 
  55.          Caption         =   "2nd Port"
  56.          Begin Menu menu2ndCOM1 
  57.             Caption         =   "COM1"
  58.          End
  59.          Begin Menu menu2ndCOM2 
  60.             Caption         =   "COM2"
  61.          End
  62.          Begin Menu menu2ndCOM3 
  63.             Caption         =   "COM3"
  64.          End
  65.          Begin Menu menu2ndCOM4 
  66.             Caption         =   "COM4"
  67.          End
  68.       End
  69.    End
  70.    Begin Menu menuTest 
  71.       Caption         =   "Test"
  72.    End
  73.    Begin Menu menuExit 
  74.       Caption         =   "Exit"
  75.    End
  76. ' SELFTEST.BAS
  77. Option Explicit
  78. Sub Form_Load ()
  79. Dim X As String
  80.    The1stPort = COM1
  81.    The2ndPort = COM2
  82.     menu1stCOM1.Checked = True
  83.     menu2ndCOM2.Checked = True
  84.    NbrSelectors = 0
  85.    TestString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
  86.    Call ShowCaption
  87. End Sub
  88. Sub Instruct_Click ()
  89. End Sub
  90. Sub menu1stCOM1_Click ()
  91.     The1stPort = COM1
  92.     Call Uncheck1stComPorts
  93.     menu1stCOM1.Checked = True
  94.     Call ShowCaption
  95. End Sub
  96. Sub menu1stCOM2_Click ()
  97.     The1stPort = COM2
  98.     Call Uncheck1stComPorts
  99.     menu1stCOM2.Checked = True
  100.     Call ShowCaption
  101. End Sub
  102. Sub menu1stCOM3_Click ()
  103.     The1stPort = COM3
  104.     Call Uncheck1stComPorts
  105.     menu1stCOM3.Checked = True
  106.     Call ShowCaption
  107. End Sub
  108. Sub menu1stCOM4_Click ()
  109.     The1stPort = COM4
  110.     Call Uncheck1stComPorts
  111.     menu1stCOM4.Checked = True
  112.     Call ShowCaption
  113. End Sub
  114. Sub menu2ndCOM1_Click ()
  115.     The2ndPort = COM1
  116.     Call Uncheck2ndComPorts
  117.     menu2ndCOM1.Checked = True
  118.     Call ShowCaption
  119. End Sub
  120. Sub menu2ndCOM2_Click ()
  121.     The2ndPort = COM2
  122.     Call Uncheck2ndComPorts
  123.     menu2ndCOM2.Checked = True
  124.     Call ShowCaption
  125. End Sub
  126. Sub menu2ndCOM3_Click ()
  127.     The2ndPort = COM3
  128.     Call Uncheck2ndComPorts
  129.     menu2ndCOM3.Checked = True
  130.     Call ShowCaption
  131. End Sub
  132. Sub menu2ndCOM4_Click ()
  133.     The2ndPort = COM4
  134.     Call Uncheck2ndComPorts
  135.     menu2ndCOM4.Checked = True
  136.     Call ShowCaption
  137. End Sub
  138. Sub menuBOCA_Click ()
  139. Dim Code As Integer
  140. Dim Port As Integer
  141. Dim Status As Integer
  142. Dim Addr As Integer
  143. Dim Irq  As Integer
  144. 'modify the following to match your (dumb) BOCA board
  145. Addr = &H100
  146. Status = Addr + 7
  147. Irq = 10
  148. 'setup COM1 through COM4
  149. Code = SioPorts(4, COM1, Status, BOCABOARD)
  150. For Port = COM1 To COM4
  151.   Code = SioUART(Port, Addr + 8 * Port)
  152.   Code = SioIRQ(Port, Irq)
  153. Next Port
  154. SELFTEST.Print "COM1 to COM4 configured for BOCA Board"
  155. End Sub
  156. Sub menuDebug_Click ()
  157. Dim Code As Integer
  158. '''Code = GoOnline(COM1)
  159. '''SELFTEST.Print "SioGetc(COM1,182)="; SioGetc(COM1, 182)
  160. Call ShutDown
  161. End Sub
  162. Sub menuDigi_Click ()
  163. Dim Code As Integer
  164. Dim Port As Integer
  165. Dim Status As Integer
  166. Dim Addr As Integer
  167. Dim Irq  As Integer
  168. 'modify the following to match your DigiBoard PC/4 or PC/8
  169. Status = &H1C0
  170. Addr = &H180
  171. Irq = 5
  172. 'setup COM1 through COM4
  173. Code = SioPorts(4, COM1, Status, DIGIBOARD)
  174. For Port = COM1 To COM4
  175.   Code = SioUART(Port, Addr + 8 * Port)
  176.   Code = SioIRQ(Port, Irq)
  177. Next Port
  178. SELFTEST.Print "COM1 to COM4 configured for DigiBoard"
  179. End Sub
  180. Sub menuExit_Click ()
  181.   End
  182. End Sub
  183. Sub menuInstruct_Click ()
  184. SELFTEST.Cls
  185. SELFTEST.Print "SELFTEST can operate in one of two ways:"
  186. SELFTEST.Print
  187. SELFTEST.Print "1] A single port with a loopback adapter on the end."
  188. SELFTEST.Print "   The adapter should have TD & RD tied together."
  189. SELFTEST.Print
  190. SELFTEST.Print "2] Two serial ports on the same computer."
  191. SELFTEST.Print "   Connect the two ports together using a Null Modem Cable."
  192. SELFTEST.Print
  193. SELFTEST.Print "For maximum performance, you should disable Windows control"
  194. SELFTEST.Print "of the ports you are testing."
  195. SELFTEST.Print
  196. SELFTEST.Print "For example, to disable port COM1:, add 'COM1Base=0' and "
  197. SELFTEST.Print "and 'COM1Irq=-1' to SYSTEM.INI in section [386Enh], then"
  198. SELFTEST.Print "restart Windows."
  199. End Sub
  200. Sub menuPC_Click ()
  201. Dim Code As Integer
  202. Code = SioUART(COM1, &H3F8): Code = SioIRQ(COM1, 4)
  203. Code = SioUART(COM2, &H2F8): Code = SioIRQ(COM2, 3)
  204. Code = SioUART(COM3, &H3E8): Code = SioIRQ(COM3, 4)
  205. Code = SioUART(COM4, &H2E8): Code = SioIRQ(COM4, 3)
  206. SELFTEST.Print "COM1 to COM4 configured as standard PC ports"
  207. End Sub
  208. Sub menuTest_Click ()
  209.    Dim I, N As Integer
  210.    Dim Code As Integer
  211.    Dim Count As Integer
  212.    Dim TxCount As Integer
  213.    Dim RxCount As Integer
  214.    Dim TestLength As Integer
  215.    'begin test run
  216.    SELFTEST.Cls
  217.    RunNumber = RunNumber + 1
  218.    SELFTEST.Print "Run #"; RunNumber
  219.    'check ports
  220.    If (The1stPort = COM1) And (The2ndPort = COM3) Then
  221.      SELFTEST.Print "COM1 and COM3 share the same IRQ"
  222.      Exit Sub
  223.    End If
  224.    If (The1stPort = COM2) And (The2ndPort = COM4) Then
  225.      SELFTEST.Print "COM2 and COM4 share the same IRQ"
  226.      Exit Sub
  227.    End If
  228.    'turn on 1st port
  229.    Code = GoOnline(The1stPort)
  230.    If Code = 0 Then
  231.      Call ShutDown
  232.      Exit Sub
  233.    End If
  234.    'turn on 2nd port
  235.    If The1stPort <> The2ndPort Then
  236.      Code = GoOnline(The2ndPort)
  237.      If Code = 0 Then
  238.        Call ShutDown
  239.        Exit Sub
  240.      End If
  241.    End If
  242.    'test !
  243.    SELFTEST.Print "Test string = "; TestString
  244.    RxCount = SioInfo(Asc("R"))
  245.    TxCount = SioInfo(Asc("T"))
  246.    Call ShowConfig
  247.    SELFTEST.Print "[Test string will be sent 16 times]"
  248.    TestLength = Len(TestString)
  249.    SELFTEST.Print "  Sending: ";
  250.    For N = 1 To 16
  251.      SELFTEST.Print Right$(Str$(N), 3);
  252.      For I = 1 To TestLength
  253.        Code = SioPutc(The1stPort, Asc(Mid$(TestString, I, 1)))
  254.        If Code < 0 Then
  255.        Call SioError(SELFTEST, Code)
  256.          Call ShutDown
  257.          Exit Sub
  258.        End If
  259.      Next I
  260.    Next N
  261.    SELFTEST.Print
  262.    SELFTEST.Print "Receiving: ";
  263.    For N = 1 To 16
  264.      SELFTEST.Print Right$(Str$(N), 3);
  265.      For I = 1 To TestLength
  266.        Code = SioGetc(The2ndPort, 18)
  267.        If Code < 0 Then
  268.          SELFTEST.Print
  269.          Call SioError(SELFTEST, Code)
  270.          Call ShutDown
  271.          Exit Sub
  272.        Else
  273.          If Chr$(Code) <> Mid$(TestString, I, 1) Then
  274.            SELFTEST.Print
  275.            SELFTEST.Print "ERROR: Received "; Chr$(Code);
  276.            SELFTEST.Print ", but expected "; Mid$(TestString, I, 1);
  277.            SELFTEST.Print " for character #"; I
  278.            SELFTEST.Print "Line=&H"; Hex$(SioLine(The2ndPort))
  279.            Call ShutDown
  280.            Exit Sub
  281.          End If
  282.        End If
  283.      Next I
  284.    Next N
  285.    SELFTEST.Print
  286.    'check Tx statistics
  287.    Count = SioInfo(Asc("T")) - TxCount
  288.    SELFTEST.Print Count; "TX interrupts on ";
  289.    SELFTEST.Print 16 * TestLength; " characters";
  290.    If Count < 16 * TestLength Then
  291.      SELFTEST.Print " [FIFO operational]"
  292.    Else
  293.      SELFTEST.Print
  294.    End If
  295.    'check Rx statistics
  296.    Count = SioInfo(Asc("R")) - RxCount
  297.    SELFTEST.Print Count; " RX interrupts on ";
  298.    SELFTEST.Print 16 * TestLength; " characters";
  299.    If Count < 16 * TestLength Then
  300.      SELFTEST.Print " [FIFO operational]"
  301.    Else
  302.      SELFTEST.Print
  303.    End If
  304.    'clear buffers
  305.    Code = SioRxClear(The1stPort)
  306.    Code = SioTxClear(The1stPort)
  307.    If The1stPort <> The2ndPort Then
  308.      Code = SioRxClear(The2ndPort)
  309.      Code = SioTxClear(The2ndPort)
  310.    End If
  311.    'do loopback tests
  312.    Call Loopback(The1stPort)
  313.    If The1stPort <> The2ndPort Then
  314.      Call Loopback(The2ndPort)
  315.    End If
  316.    'done
  317.    Call ShutDown
  318.    SELFTEST.Print "*** Test complete"
  319. End Sub
  320. Sub Uncheck1stComPorts ()
  321. 'uncheck all COM ports
  322. menu1stCOM1.Checked = False
  323. menu1stCOM2.Checked = False
  324. menu1stCOM3.Checked = False
  325. menu1stCOM4.Checked = False
  326. End Sub
  327. Sub Uncheck2ndComPorts ()
  328. 'uncheck all COM ports
  329. menu2ndCOM1.Checked = False
  330. menu2ndCOM2.Checked = False
  331. menu2ndCOM3.Checked = False
  332. menu2ndCOM4.Checked = False
  333. End Sub
  334.