home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / MEMORIA / QUADRAM.ZIP / Q512TEST.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-05-23  |  4.8 KB  |  130 lines

  1. 100  '******************* Q512TEST *********************
  2. 200  '*               REVISION 5/14/83                 *
  3. 210  '*                 VERSION 1.3                    *
  4. 300  '*             QUADRAM CORPORATION                *
  5. 400  '*               4357 PARK DRIVE                  *
  6. 500  '*              NORCROSS, GA  30093               *
  7. 600  '*       Testing and diagnostics program for      *
  8. 700  '*         Quadram Corporation Quad 512+.         *
  9. 900  '**************************************************
  10. 1000  '
  11. 1100  '********* INITIALIZE **************
  12. 1200  CLEAR ,18000       'Keep BASIC out of expansion memory but leave room
  13. 1300                     'for the machine language memory test USR subroutine.
  14. 1310  DEF SEG
  15. 1340  ON ERROR GOTO 14900
  16. 1350  GOSUB 50000        'Disable function keys, except F10
  17. 1400  SCREEN 0,0: WIDTH 80
  18. 1500  DEFINT A-Z
  19. 1600  DIM Q(12)
  20. 1650  COMMON CH$
  21. 1655  FALSE=0:TRUE=NOT FALSE
  22. 1660  PLUG1=TRUE:PLUG2=TRUE
  23. 1700  GOSUB 49000        'Initialize COM and LPT port address variables
  24. 2005  DEF SEG:POKE 106,0
  25. 2010  DEF SEG=0:POKE 1050,PEEK(1052):CC1=PEEK(65521):CC2=PEEK(65522):CC3=PEEK(65523):IF CC1=206 THEN IF CC2=216 THEN CH$=CHR$(CC3)   'Values passed from MEMTEST
  26. 2020  DEF SEG
  27. 2025  IF CH$<>"" THEN 7900
  28. 2100  CLS:KEY OFF
  29. 2200  PRINT TAB(30);"QUADRAM CORPORATION":PRINT TAB(30);"QUAD 512+ TEST 1.3":PRINT TAB(28);"TESTING AND DIAGNOSTICS":PRINT TAB(32);"FOR QUAD 512+"
  30. 2300  LOCATE 5,50
  31. 2900  '***************** MAIN LINE **************
  32. 3400  PRINT:PRINT "              1  -  MEMORY TEST"
  33. 3500  PRINT "              2  -  ASYNC SERIAL TEST"
  34. 4100  PRINT "              7  -  DUAL PORT ASYNC TEST"
  35. 4300  PRINT "              A  -  TEST BOTH QUAD 512+ FUNCTIONS"
  36. 4700  PRINT "              X  -  RETURN TO QUADTEST MENU"
  37. 4800  PRINT
  38. 5000  BEEP:PRINT TAB(35)"INPUT TEST FUNCTION ";:CH$=INPUT$(1):PRINT CH$
  39. 5100  IF ASC(CH$)>=97 AND ASC(CH$)<=122 THEN CH$=CHR$(ASC(CH$)-32)
  40. 5110  IF CH$="X" THEN RUN "QUADTEST" ELSE GOSUB 47200
  41. 5200  IF CH$="A" THEN 9600
  42. 6100  IF VAL(CH$)<1 THEN GOTO 2100
  43. 6200  ON VAL(CH$) GOTO 9600,6900,2100,2100,2100,2100,7100
  44. 6300  GOTO 2100
  45. 6900  GOSUB 14810         'See if loop back plug is installed
  46. 6910  PRINT:GOSUB 13000
  47. 7000  GOTO 6910
  48. 7100  GOSUB 14810:GOSUB 14850    'See if both loop back plugs are installed
  49. 7110  PRINT:GOSUB 13000
  50. 7300  GOSUB 14200
  51. 7500  GOTO 7110
  52. 7600  '************* ALL FUNCTIONS CHECK **********
  53. 7700  CHAIN "memt512"
  54. 7900  '
  55. 8100  PRINT
  56. 8200  GOSUB 13000
  57. 8400  PRINT "TOTAL MEMORY ERRORS =";EM%;
  58. 8600  PRINT:GOTO 7600
  59. 9600  '*********** MEMORY CHECK ****************
  60. 9700  CHAIN "MEMT512"
  61. 13000  '*************** SERIAL PORT TEST *****************
  62. 13200  CLOSE
  63. 13400  ON ERROR GOTO 14900
  64. 13500  IF PLUG1 THEN OPEN "COM1:9600,N,8" AS #1 ELSE OPEN "COM1:9600,N,8,,CS,DS" AS #1:OUT (COMPORT1+4),(INP(COMPORT1+4) OR 16)       'if no plug then use 8250 test mode
  65. 13600  OPEN "SCRN:" FOR OUTPUT AS 2
  66. 13700  PAUSE = FALSE
  67. 13800  B$="RS232 TEST FIRST PORT--THE QUICK BROWN FOX JUMPED OVER THE FENCE 0123456789  ":PRINT #1,B$
  68. 13900  A$=INPUT$(LOC(1),#1)
  69. 14000  PRINT #2,A$;
  70. 14100  RETURN
  71. 14200  CLOSE
  72. 14300  IF PLUG2 THEN OPEN "COM2:9600,N,8" AS #1 ELSE OPEN "COM2:9600,N,8,,CS,DS" AS #1:OUT (COMPORT2+4),(INP(COMPORT2+4) OR 16)      'if no plug then use 8250 test mode
  73. 14400  OPEN "SCRN:" FOR OUTPUT AS 2
  74. 14500  B$="RS232 TEST SECOND PORT--THE QUICK BROWN FOX JUMPED OVER THE FENCE 0123456789  ":PRINT #1,B$
  75. 14600  A$=INPUT$(LOC(1),#1)
  76. 14700  PRINT #2,A$;
  77. 14800  RETURN
  78. 14810  '********* FIND OUT IF LOOPBACK PLUG IS INSTALLED *********
  79. 14812  PRINT TAB(30);"ASYNCHRONOUS PORT TEST":PRINT
  80. 14815  PLUG1=TRUE
  81. 14820  PRINT "IS LOOPBACK PLUG INSTALLED ON COM1: PORT CONNECTOR? ";:AN$=INPUT$(1):PRINT AN$
  82. 14830  IF AN$="N" OR AN$="n" THEN PLUG1=FALSE
  83. 14840  RETURN
  84. 14850  PLUG2=TRUE
  85. 14855  PRINT
  86. 14860  PRINT "IS LOOPBACK PLUG INSTALLED ON COM2: PORT CONNECTOR? ";:AN$=INPUT$(1):PRINT AN$
  87. 14870  IF AN$="N" OR AN$="n" THEN PLUG2=FALSE
  88. 14880  RETURN
  89. 14900  '**************** ERROR HANDLING ROUTINE **************
  90. 15100  IF (ERR<>24 OR (ERL<>13500 AND ERL<>14300)) THEN 15900
  91. 15105  EC=EC+1:IF EC<2 THEN RESUME        'TRY 3 TIMES
  92. 15110  EC=0
  93. 15200  IF (ERL<>13500 AND ERL<>14300) THEN 15600
  94. 15300  SOUND 60,10:PRINT:PRINT "COMMUNICATIONS PORT ERROR."
  95. 15400  PRINT "CTS and/or DSR signal missing.  Loopback plug may not be installed correctly.":PRINT "Are Quadboard switches and jumpers properly set?"
  96. 15500  RESUME
  97. 15600  IF ERL<>13900 AND ERL<>14600 THEN 16300
  98. 15700  PRINT "COMMUNICATIONS PORT MALFUNCTION.  BE SURE THAT LOOP BACK PLUG IS WIRED CORRECTLY"
  99. 15800  RESUME
  100. 15900  IF ERR=57 THEN IF ERL=13500 THEN PRINT "COM1 I/O error":RESUME ELSE IF ERL=14300 THEN PRINT "COM2 I/O error":RESUME
  101. 15910  IF ERR=57 THEN IF ERL=13500 THEN PRINT "COM1 I/O error":RESUME ELSE IF ERL=14300 THEN PRINT "COM2 I/O error":RESUME
  102. 16000  IF ERR=68 AND ERL=14300 THEN PRINT "COM2: PORT UNAVAILABLE":PRINT:RESUME
  103. 16300  ON ERROR GOTO 0
  104. 16350  STOP
  105. 40800  '************* DUAL SERIAL SECOND PORT TEST ************
  106. 40900  GOSUB 14200
  107. 41000  GOTO 7600
  108. 47000  '**** FUNCTION KEY 10 INTERRUPT ****
  109. 47010  DEF SEG=0:POKE 65521,0:POKE 65522,0:DEF SEG
  110. 47100  CLEAR ,30000:RUN "quadtest
  111. 47200  '***** PRINT F10 INTERRUPT MESSAGE ******
  112. 47210  CLS
  113. 47220  LOCATE 25,5:COLOR 23:PRINT "F10":COLOR 7:LOCATE 25,17:PRINT "to return to QUADTEST diagnostics main menu.":LOCATE 1,1
  114. 47300  RETURN
  115. 49000  '*********** Initialize COM and LPT port address variables ************
  116. 49010  DEF SEG=&H40
  117. 49020  COMPORT1=PEEK(0)+256*PEEK(1)
  118. 49030  COMPORT2=PEEK(2)+256*PEEK(3)
  119. 49032  LPTPORT1=PEEK(8)+256*PEEK(9)
  120. 49034  LPTPORT2=PEEK(10)+256*PEEK(11)
  121. 49036  IF LPTPORT2=0 THEN LPTPORT2=LPTPORT1
  122. 49040  DEF SEG
  123. 49050  RETURN
  124. 50000  '*********** DISABLE FUNCTION KEYS ************
  125. 50005  FOR I=1 TO 14:KEY (I) ON
  126. 50006  IF I=10 THEN ON KEY (I) GOSUB 47000 ELSE ON KEY(I) GOSUB 50100
  127. 50007  NEXT I:KEY OFF
  128. 50010  RETURN
  129. 50100  RETURN
  130.