home *** CD-ROM | disk | FTP | other *** search
/ Zodiac Super OZ / MEDIADEPOT.ISO / FILES / 13 / PCLVBW11.ZIP / SELFTEST.FRM < prev    next >
Text File  |  1996-06-30  |  9KB  |  356 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. End
  77. ' SELFTEST.BAS
  78.  
  79. Option Explicit
  80.  
  81. Sub Form_Load ()
  82. Dim X As String
  83.    The1stPort = COM1
  84.    The2ndPort = COM2
  85.     menu1stCOM1.Checked = True
  86.     menu2ndCOM2.Checked = True
  87.    NbrSelectors = 0
  88.    TestString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
  89.    Call ShowCaption
  90. End Sub
  91.  
  92. Sub Instruct_Click ()
  93. End Sub
  94.  
  95. Sub menu1stCOM1_Click ()
  96.     The1stPort = COM1
  97.     Call Uncheck1stComPorts
  98.     menu1stCOM1.Checked = True
  99.     Call ShowCaption
  100. End Sub
  101.  
  102. Sub menu1stCOM2_Click ()
  103.     The1stPort = COM2
  104.     Call Uncheck1stComPorts
  105.     menu1stCOM2.Checked = True
  106.     Call ShowCaption
  107. End Sub
  108.  
  109. Sub menu1stCOM3_Click ()
  110.     The1stPort = COM3
  111.     Call Uncheck1stComPorts
  112.     menu1stCOM3.Checked = True
  113.     Call ShowCaption
  114. End Sub
  115.  
  116. Sub menu1stCOM4_Click ()
  117.     The1stPort = COM4
  118.     Call Uncheck1stComPorts
  119.     menu1stCOM4.Checked = True
  120.     Call ShowCaption
  121. End Sub
  122.  
  123. Sub menu2ndCOM1_Click ()
  124.     The2ndPort = COM1
  125.     Call Uncheck2ndComPorts
  126.     menu2ndCOM1.Checked = True
  127.     Call ShowCaption
  128. End Sub
  129.  
  130. Sub menu2ndCOM2_Click ()
  131.     The2ndPort = COM2
  132.     Call Uncheck2ndComPorts
  133.     menu2ndCOM2.Checked = True
  134.     Call ShowCaption
  135. End Sub
  136.  
  137. Sub menu2ndCOM3_Click ()
  138.     The2ndPort = COM3
  139.     Call Uncheck2ndComPorts
  140.     menu2ndCOM3.Checked = True
  141.     Call ShowCaption
  142. End Sub
  143.  
  144. Sub menu2ndCOM4_Click ()
  145.     The2ndPort = COM4
  146.     Call Uncheck2ndComPorts
  147.     menu2ndCOM4.Checked = True
  148.     Call ShowCaption
  149. End Sub
  150.  
  151. Sub menuBOCA_Click ()
  152. Dim Code As Integer
  153. Dim Port As Integer
  154. Dim Status As Integer
  155. Dim Addr As Integer
  156. Dim Irq  As Integer
  157. 'modify the following to match your (dumb) BOCA board
  158. Addr = &H100
  159. Status = Addr + 7
  160. Irq = 10
  161. 'setup COM1 through COM4
  162. Code = SioPorts(4, COM1, Status, BOCABOARD)
  163. For Port = COM1 To COM4
  164.   Code = SioUART(Port, Addr + 8 * Port)
  165.   Code = SioIRQ(Port, Irq)
  166. Next Port
  167. SELFTEST.Print "COM1 to COM4 configured for BOCA Board"
  168. End Sub
  169.  
  170. Sub menuDebug_Click ()
  171. Dim Code As Integer
  172. '''Code = GoOnline(COM1)
  173. '''SELFTEST.Print "SioGetc(COM1,182)="; SioGetc(COM1, 182)
  174. Call ShutDown
  175. End Sub
  176.  
  177. Sub menuDigi_Click ()
  178. Dim Code As Integer
  179. Dim Port As Integer
  180. Dim Status As Integer
  181. Dim Addr As Integer
  182. Dim Irq  As Integer
  183. 'modify the following to match your DigiBoard PC/4 or PC/8
  184. Status = &H1C0
  185. Addr = &H180
  186. Irq = 5
  187. 'setup COM1 through COM4
  188. Code = SioPorts(4, COM1, Status, DIGIBOARD)
  189. For Port = COM1 To COM4
  190.   Code = SioUART(Port, Addr + 8 * Port)
  191.   Code = SioIRQ(Port, Irq)
  192. Next Port
  193. SELFTEST.Print "COM1 to COM4 configured for DigiBoard"
  194. End Sub
  195.  
  196. Sub menuExit_Click ()
  197.   End
  198. End Sub
  199.  
  200. Sub menuInstruct_Click ()
  201. SELFTEST.Cls
  202. SELFTEST.Print "SELFTEST can operate in one of two ways:"
  203. SELFTEST.Print
  204. SELFTEST.Print "1] A single port with a loopback adapter on the end."
  205. SELFTEST.Print "   The adapter should have TD & RD tied together."
  206. SELFTEST.Print
  207. SELFTEST.Print "2] Two serial ports on the same computer."
  208. SELFTEST.Print "   Connect the two ports together using a Null Modem Cable."
  209. SELFTEST.Print
  210. SELFTEST.Print "For maximum performance, you should disable Windows control"
  211. SELFTEST.Print "of the ports you are testing."
  212. SELFTEST.Print
  213. SELFTEST.Print "For example, to disable port COM1:, add 'COM1Base=0' and "
  214. SELFTEST.Print "and 'COM1Irq=-1' to SYSTEM.INI in section [386Enh], then"
  215. SELFTEST.Print "restart Windows."
  216. End Sub
  217.  
  218. Sub menuPC_Click ()
  219. Dim Code As Integer
  220. Code = SioUART(COM1, &H3F8): Code = SioIRQ(COM1, 4)
  221. Code = SioUART(COM2, &H2F8): Code = SioIRQ(COM2, 3)
  222. Code = SioUART(COM3, &H3E8): Code = SioIRQ(COM3, 4)
  223. Code = SioUART(COM4, &H2E8): Code = SioIRQ(COM4, 3)
  224. SELFTEST.Print "COM1 to COM4 configured as standard PC ports"
  225. End Sub
  226.  
  227. Sub menuTest_Click ()
  228.    Dim I, N As Integer
  229.    Dim Code As Integer
  230.    Dim Count As Integer
  231.    Dim TxCount As Integer
  232.    Dim RxCount As Integer
  233.    Dim TestLength As Integer
  234.    'begin test run
  235.    SELFTEST.Cls
  236.    RunNumber = RunNumber + 1
  237.    SELFTEST.Print "Run #"; RunNumber
  238.    'check ports
  239.    If (The1stPort = COM1) And (The2ndPort = COM3) Then
  240.      SELFTEST.Print "COM1 and COM3 share the same IRQ"
  241.      Exit Sub
  242.    End If
  243.    If (The1stPort = COM2) And (The2ndPort = COM4) Then
  244.      SELFTEST.Print "COM2 and COM4 share the same IRQ"
  245.      Exit Sub
  246.    End If
  247.    'turn on 1st port
  248.    Code = GoOnline(The1stPort)
  249.    If Code = 0 Then
  250.      Call ShutDown
  251.      Exit Sub
  252.    End If
  253.    'turn on 2nd port
  254.    If The1stPort <> The2ndPort Then
  255.      Code = GoOnline(The2ndPort)
  256.      If Code = 0 Then
  257.        Call ShutDown
  258.        Exit Sub
  259.      End If
  260.    End If
  261.    'test !
  262.    SELFTEST.Print "Test string = "; TestString
  263.    RxCount = SioInfo(Asc("R"))
  264.    TxCount = SioInfo(Asc("T"))
  265.    Call ShowConfig
  266.    SELFTEST.Print "[Test string will be sent 16 times]"
  267.    TestLength = Len(TestString)
  268.    SELFTEST.Print "  Sending: ";
  269.    For N = 1 To 16
  270.      SELFTEST.Print Right$(Str$(N), 3);
  271.      For I = 1 To TestLength
  272.        Code = SioPutc(The1stPort, Asc(Mid$(TestString, I, 1)))
  273.        If Code < 0 Then
  274.        Call SioError(SELFTEST, Code)
  275.          Call ShutDown
  276.          Exit Sub
  277.        End If
  278.      Next I
  279.    Next N
  280.    SELFTEST.Print
  281.    SELFTEST.Print "Receiving: ";
  282.    For N = 1 To 16
  283.      SELFTEST.Print Right$(Str$(N), 3);
  284.      For I = 1 To TestLength
  285.        Code = SioGetc(The2ndPort, 18)
  286.        If Code < 0 Then
  287.          SELFTEST.Print
  288.          Call SioError(SELFTEST, Code)
  289.          Call ShutDown
  290.          Exit Sub
  291.        Else
  292.          If Chr$(Code) <> Mid$(TestString, I, 1) Then
  293.            SELFTEST.Print
  294.            SELFTEST.Print "ERROR: Received "; Chr$(Code);
  295.            SELFTEST.Print ", but expected "; Mid$(TestString, I, 1);
  296.            SELFTEST.Print " for character #"; I
  297.            SELFTEST.Print "Line=&H"; Hex$(SioLine(The2ndPort))
  298.            Call ShutDown
  299.            Exit Sub
  300.          End If
  301.        End If
  302.      Next I
  303.    Next N
  304.    SELFTEST.Print
  305.    'check Tx statistics
  306.    Count = SioInfo(Asc("T")) - TxCount
  307.    SELFTEST.Print Count; "TX interrupts on ";
  308.    SELFTEST.Print 16 * TestLength; " characters";
  309.    If Count < 16 * TestLength Then
  310.      SELFTEST.Print " [FIFO operational]"
  311.    Else
  312.      SELFTEST.Print
  313.    End If
  314.    'check Rx statistics
  315.    Count = SioInfo(Asc("R")) - RxCount
  316.    SELFTEST.Print Count; " RX interrupts on ";
  317.    SELFTEST.Print 16 * TestLength; " characters";
  318.    If Count < 16 * TestLength Then
  319.      SELFTEST.Print " [FIFO operational]"
  320.    Else
  321.      SELFTEST.Print
  322.    End If
  323.    'clear buffers
  324.    Code = SioRxClear(The1stPort)
  325.    Code = SioTxClear(The1stPort)
  326.    If The1stPort <> The2ndPort Then
  327.      Code = SioRxClear(The2ndPort)
  328.      Code = SioTxClear(The2ndPort)
  329.    End If
  330.    'do loopback tests
  331.    Call Loopback(The1stPort)
  332.    If The1stPort <> The2ndPort Then
  333.      Call Loopback(The2ndPort)
  334.    End If
  335.    'done
  336.    Call ShutDown
  337.    SELFTEST.Print "*** Test complete"
  338. End Sub
  339.  
  340. Sub Uncheck1stComPorts ()
  341. 'uncheck all COM ports
  342. menu1stCOM1.Checked = False
  343. menu1stCOM2.Checked = False
  344. menu1stCOM3.Checked = False
  345. menu1stCOM4.Checked = False
  346. End Sub
  347.  
  348. Sub Uncheck2ndComPorts ()
  349. 'uncheck all COM ports
  350. menu2ndCOM1.Checked = False
  351. menu2ndCOM2.Checked = False
  352. menu2ndCOM3.Checked = False
  353. menu2ndCOM4.Checked = False
  354. End Sub
  355.  
  356.