home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol027 / consrc.doc < prev    next >
Encoding:
Text File  |  1985-02-10  |  50.9 KB  |  1,282 lines

  1. 
  2. .op
  3. ..File CONSRC.DOC Source code documentation for ATS confidence
  4. ..tests
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.                         ADVANCED TERMINAL SYSTEMS
  18.  
  19.                       CONFIDENCE TESTS DOCUMENTATION
  20.  
  21.  
  22.  
  23.                                Version 1.0
  24.  
  25.                        Date of Issue: February 1981
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                               Prepared for:
  39.  
  40.                        Lister Hill National Center
  41.                                    for
  42.                         Biomedical Communications
  43.                        National Library Of Medicine
  44.  
  45.  
  46.  
  47.                                Prepared By:
  48.  
  49.                               Dan A. Steele
  50.               Information Development and Applications, Inc.
  51.                            10759 Tucker Street
  52.                         Beltsville, Maryland 20705
  53. .op
  54. .paè
  55.  
  56.                             Table of Contents
  57.  
  58.  
  59.                                                           Page
  60.  
  61.      Overview ...........................................   1
  62.      Background Monitor .................................   2
  63.      MCP CPU Test .......................................   4
  64.      MCP RAM Test .......................................   6
  65.      Disk Drive System Test .............................   8
  66.      Serial Ports Test ..................................   9
  67.      MCP APU Test .......................................   10
  68.      MCP Data Link Test .................................   12
  69.      GCP Down-load Test .................................   14
  70.      Plasma Panel Test ..................................   16
  71.      Touch Panel Test ...................................   18
  72.      Keyboard Test ......................................   19
  73.      GCP CPU Test .......................................   20
  74.      GCP RAM Test .......................................   22
  75.      GCP EPROM Test .....................................   24
  76.      GCP APU Test .......................................   24
  77.  
  78. .paè.pn 1
  79.      ┴á numbe≥ oµ confidencσ test≤ arσ provideΣ t∩ thσ use≥ witΦ thσá ATS«  ì
  80. Thesσá test≤ arσ designeΣ t∩ checδ ou⌠ variou≤ basiπ operation≤ oµ thσ AT╙ ì
  81. iε orde≥ tha⌠ thσ use≥ ma∙ gaiε confidencσ tha⌠ thσ systeφ i≤á functioninτ ì
  82. correctly«á  Iµ thσ systeφ werσ t∩ develo≡ an∙ majo≥ problem¼á thesσ test≤ ì
  83. woulΣá mos⌠ likel∙ no⌠ function«á  Thei≥ primar∙ valuσ i≤ t∩ hel≡ thσ use≥ ì
  84. isolatσá aε illusivσ probleφ anΣ displa∙ codeΣ informatioε oε thσá consolσ ì
  85. whicΦ wil∞ bσ oµ hel≡ t∩ thσ servicσ personnel.
  86.  
  87.      Onl∙ function≤ interna∞ t∩ thσ AT╙ arσ tested¼á thereforσ n∩ externa∞ ì
  88. equipmen⌠á i≤ requireΣ fo≥ an∙ oµ thσ tests«á  Fourteeε test≤ arσá iεá thσ ì
  89. packagσ anΣ arσ covereΣ individuall∙ below«  
  90.  
  91.      Thσá AT╙ confidencσ test≤ arσ madσ u≡ oµ ß collectioε oµ Pascal-┌ anΣ ì
  92. assembl∙á languagσ routines«á  Thσ maiε drive≥ fo≥ al∞ oµ thσ test≤ ¿á thσ ì
  93. monitor⌐á i≤ writteε iε Ithicß Intersystemsº Pascal-Z«á  Thi≤ wa≤ donσá t∩ ì
  94. takσ advantagσ oµ Pascal'≤ consolσ I/╧ capabilities¼á whicΦ arσ needeΣá iε ì
  95. thi≤ portioε oµ thσ system¼á a≤ wel∞ a≤ thσ selµ documentinτ propertie≤ oµ ì
  96. Pascal«á  Thi≤á prograφá wil∞á bσá linkeΣ iε witΦá thσá AT╙á librar∙á filσ ì
  97. (ATSLIB.REL⌐á anΣ thσ assembl∙ languagσ portioε oµ thσ test≤ tha⌠á operatσ ì
  98. iεá thσ MC╨ ('GTESTS.REL')«á  Al∞ oµ thσ test≤ whicΦ wil∞ functioε iεá thσ ì
  99. MCP¼á s∩á tha⌠ the∙ ma∙ bσ linkeΣ t∩ thσ monitor¼á arσ writteε iε Ithica'≤ ì
  100. assembl∙ language«á  Thσ remainde≥ oµ thσ programs¼á tha⌠ functioε iεá thσ ì
  101. GCP¼á anΣ thσ utilitie≤ (ie« CRCGEN⌐ arσ writteε t∩ bσ compatablσ witΦ MA├ ì
  102. thσ Digita∞ ResearcΦ assemble≥ whicΦ wa≤ useΣ fo≥ othe≥ developmen⌠ oµ thσ ì
  103. AT╙ systeφ software.
  104.  
  105.      Al∞á oµá thσ test≤ tha⌠ executσ iε thσ GC╨ arσ locateΣ iε thσá sourcσ ì
  106. filσ 'GCPMON.ASM'«  The∙ eacΦ havσ ß smal∞ counterpar⌠ (whicΦ wil∞ executσ ì
  107. iε thσ GCP⌐ tha⌠ i≤ locateΣ iε GTESTS.SRC«á  GTESTS.SR├ wil∞ contaiεá codσ ì
  108. t∩á down-loaΣ datß t∩ thσ GC╨ a≤ wel∞ a≤ routine≤ t∩ senΣ thσá appropriatσ ì
  109. executσ commanΣ fo≥ thσ variou≤ GC╨ tests.
  110.  
  111.      Al∞á test≤ arσ declareΣ iε thσ monito≥ a≤ externa∞á functions«á  Thi≤ ì
  112. wil∞á easσá thσ paiε iµ thσ neeΣ shoulΣ arisσ t∩ changσ ß tes⌠ o≥ adΣá ne≈ ì
  113. tests«á  Iε al∞ tests¼ thσ result≤ wil∞ bσ returneΣ t∩ thσ monito≥ prograφ ì
  114. iεá thσ forφ oµ ß tw∩ bytσ word«á  Thi≤ wil∞ theε bσ decodeΣ anΣ displayeΣ ì
  115. iεá thσ diagnostiπ field¼á a⌠ thσ enΣ oµ ß serie≤ oµ tests¼á a≤ ßá 1╢á bi⌠ ì
  116. binar∙ number«á  Normall∙ thi≤ field¼ whicΦ i≤ locateΣ t∩ thσ righ⌠ oµ thσ ì
  117. numbe≥á oµá failures¼á wil∞ bσ blanδ indicatinτ tha⌠ therσ werσ n∩á error≤ ì
  118. detected«á  Iεá thσ even⌠ oµ aε erro≥ beinτ detected¼á thi≤ fielΣ wil∞á bσ ì
  119. lef⌠ blanδ filleΣ anΣ righ⌠ zer∩ filled«á  Blank≤ wil∞ bσ indicateΣ b∙ 'bº ì
  120. iε thσ tes⌠ result≤ covereΣ below«  
  121.  
  122.      Fo≥á thσá monito≥ anΣ eacΦ test¼á therσ wil∞ bσ ßá brieµá descriptioε ì
  123. followeΣá b∙ ß Dijkstrß typσ char⌠ t∩ illustratσ thσ genera∞ flo≈ oµá tha⌠ ì
  124. module«á  A≤ al∞ oµ thσ sourcσ codσ i≤ selµ documentinτ n∩ attemp⌠ i≤ madσ ì
  125. t∩á delvσ deepl∙ int∩ thσ tests«á  Rathe≥ i⌠ i≤ suggesteΣ tha⌠ thσá persoε ì
  126. wh∩ need≤ aε iε deptΦ knowledgσ jus⌠ refe≥ t∩ thσ sourcσ codσ listings.
  127.  
  128.      Iε thσ flo≈ diagrams¼á word≤ iε al∞ capita∞ letter≤ arσ actua∞ label≤ ì
  129. iε thσ sourcσ code.
  130.  
  131. .paèBACKGROUND MONITOR
  132.  
  133.      Thσá monito≥á fo≥ thσ tes⌠ i≤ entirel∙ men⌡ driveε t∩á allo≈á someonσ ì
  134. witΦ littlσ o≥ n∩ experiancσ t∩ ruε anΣ witΦ thσ hel≡ othe≥ tha⌠ thσá 'AT╙ ì
  135. Confidencσ Test≤ Operator'≤ Manualº interpre⌠ al∞ oµ thσ tests.
  136. .cp52è     Monitor flow:
  137.   _____________________________ |
  138.  /                             \|
  139. |                            INIT
  140. |                               |
  141. |                        Write the Menu
  142. |                               |
  143. |                  Get Test Numbers To Execute
  144. |                               |
  145. |                  Get the Number of Repititions
  146. |                               |
  147. |                Get the Device to Put Output On
  148. |                               |
  149. |                    Output Device = Disk ?
  150. |                               |
  151. |                  ____no______/ \_____yes____
  152. |                 /                           \
  153. |                |                     Open Output File
  154. |                 \____________   ____________/
  155. |                              \ /
  156. |                     Disk Test Selected ?
  157. |                               |
  158. |                  ____no______/ \_____yes____
  159. |                 /                           \
  160. |                |                       Get Drive To Test
  161. |                 \____________   ____________/
  162. |                              \ /
  163. |                               |
  164. |                         Ready to Go ?
  165. \______________________no______/|
  166.                                 |yes
  167.                           RepsDone := 0
  168.                                 |
  169.                              X := 1
  170.   _____________________________ |
  171.  /                             \|
  172. |                           Do Case X
  173. |                               |
  174. | _________________________________________________________________
  175. | Tes⌠ ▒ Tes⌠ ▓ Tes⌠ │  .   .   .   .   .   .   .   .   .   Tes⌠ 14
  176. |   |      |      |                                           |
  177. | _________________________________________________________________
  178. |                               |
  179. |                           X := X+1
  180. |                               |
  181. |                   RepsDone := RepsDone + 1
  182. |                               |
  183. |                      Print the Failures
  184. |                               |
  185. |                             Delay
  186. |                               |
  187. |        RepsDone = Repititions and Repititions <> 999 ?
  188.  \_____________________________/|
  189.                                 |yes
  190.                               Exitè
  191.  
  192. MCP CPU
  193.  
  194.      Thσá firs⌠á tes⌠á oε thσ men⌡ i≤ thσ MC╨ CP╒ test«á  Thi≤á tes⌠á wil∞ ì
  195. executσá anΣá checδ thσ result≤ oµ severa∞ instruction≤á iεá eacΦá logica∞ ì
  196. grou≡á oµ thσ Z-8░ instructioε set«á  Al∞ instruction≤ wil∞ no⌠ bσá testeΣ ì
  197. no≥á wil∞á al∞á flag≤ bσ testeΣ fo≥ eacΦ instructioε a≤á i⌠á i≤á executed«  ì
  198. Therσ arσ somσ instruction≤ tha⌠ arσ useΣ s∩ ofteε b∙ thσ operatinτ systeφ ì
  199. tha⌠ i⌠ i≤ no⌠ necessar∙ t∩ tes⌠ them«  Thesσ woulΣ includσ 'PUSH'¼ 'POP'¼ ì
  200. 'IN'¼ anΣ 'OUT'.
  201.  
  202.      Thσá sourcσ codσ fo≥ thi≤ tes⌠ i≤ iε filσ 'CPUTST.SRCº anΣ i≤ writteε ì
  203. iε Ithica'≤ assembly«  Thσ tes⌠ i≤ linkeΣ witΦ thσ monito≥ anΣ i≤ includeΣ ì
  204. iε 'ATSLIB.REL'.
  205.  
  206. The Z-80 instructions tested are listed below:
  207.  
  208.           Hex       Mnemonic                 Hex       Mnemonic
  209. Calls:    C4        CNZ            Jumps:    C2        JNZ
  210.           DC        CC                       DA        JC
  211.           E4        CNV                      E2        JNV
  212.           FC        CM                       FA        JM
  213.           CC        CZ                       CA        JZ
  214.           F4        CP                       F2        JP
  215.           EC        CPE                      EA        JPE
  216.  
  217. Returns:  C0        RNZ            Rotates:  1F        RAR
  218.           D8        RC                       0F        RLC
  219.           E0        RNV                      
  220.           F8        RM             Blk.Moves:EDB0      LDIR
  221.           C8        RZ                       EDB8      LDDR
  222.           E8        RPE            
  223.           F0        RP             Moves:    3E        MVI
  224.           C9        RET                      67        MOV H,A
  225.                                              6C        MOV L,H
  226. Load/     01        LXI B                    55        MOV D,L
  227. Stores:   0A        LDAX B                   5A        MOV E,B
  228.           02        STAX B                   43        MOV B,E
  229.           3A        LDA                      48        MOV C,B
  230.           32        STA                      71        MOV M,C
  231.           2A        LHLD                     46        MOV B,M
  232.           ED4B      LBCD                     
  233.           ED5B      LDED           Adds:     ED4A      DADC B
  234.           22        SHLD                     ED5A      DADC D
  235.           ED43      SBCD
  236.           ED53      SDED           Inc./Dec.:23        INX H
  237.                                              25        DCR H
  238. Accum.:   C6        ADI                      2C        INR L
  239.           CE        ACI                      2B        DCX H
  240.           FE        CPI                      102E      DJNZ
  241.           DE        SBI                      25        DCR H
  242.           B0        ORA B
  243.           A8        XRA B
  244.           90        SUB Bè
  245.      Iε additioε t∩ thσ abovσ instructioε tests¼ therσ i≤ ß timinτ tes⌠ t∩ ì
  246. assurσ tha⌠ thσ processo≥ i≤ workinτ a⌠ thσ prope≥ speed«  A⌠ thσ star⌠ oµ ì
  247. thσ timinτ test¼ aε 'Sº i≤ displayeΣ a⌠ thσ console«  A⌠ thσ finisΦ aε 'Fº ì
  248. i≤ displayed«  Thesσ shoulΣ occu≥ approximatel∙ 1╕ second≤ apart.
  249. .cp3
  250.  
  251. Results from MCP CPU Test
  252.      FEDCBA9876543210
  253.      ---------------x --> b = passed  1 = failed
  254. .cp30
  255.  
  256.  
  257. MCP CPU Test Flow:
  258.  
  259.                              CPUTST
  260.                                 |
  261.                   CPUERR (Clear the error flag)
  262.                                 |
  263.                CALLT (Test the conditional calls)
  264.                                 |
  265.             RETT (Test conditional returns and flags)
  266.                                 |
  267.              JMPT (Test conditional jumps and flags)
  268.                                 |
  269.                        ROTT (Test rotates)
  270.                                 |
  271.                      BMT (Test Block Moves)
  272.                                 |
  273.                         MOVT (Test Moves)
  274.                                 |
  275.                   LOADT (Test Loads and Stores)
  276.                                 |
  277.              DADT (Test Double Adds and Subtracts)
  278.                                 |
  279.           INCT (Test Register Increment and Decrement)
  280.                                 |
  281.               ACCT (Test Accumulator Instructions)
  282.                                 |
  283.                        TIMT (Timing test)
  284.                                 |
  285.                               Exit
  286.  
  287. .cp25èMCP RAM
  288.  
  289.      Tes⌠ tw∩ i≤ thσ MC╨ RA═ test«á  I⌠ wil∞ tes⌠ 64╦ oµ RA═ iε 1╦ blocks«  ì
  290. Thσá test≤ arσ donσ withou⌠ destroyinτ an∙ portioε oµ RA═ witΦ thσá excepì
  291. tioε oµ thσ 5╦ blocδ jus⌠ belo≈ CP/M.
  292.  
  293.      Thσá tes⌠ wil∞ firs⌠ fil∞ memor∙ witΦ 0FF╚ theε checδá fo≥á 0FFH╗á i⌠ ì
  294. wil∞ theε fil∞ witΦ 0░ anΣ theε checδ fo≥ 00«á  Followinτ thσ test≤ fo≥ 0░ ì
  295. anΣá 0FFH¼á ß tes⌠ wil∞ bσ donσ t∩ checδ fo≥ crosseΣ addres≤ lines«á  Thi≤ ì
  296. wil∞ bσ donσ b∙ writinτ 88╚ t∩ thσ firs⌠ bytσ iε thσ tes⌠ block«  Countinτ ì
  297. upward≤ iε memor∙ eacΦ locatioε i≤ writteε witΦ thσ valuσ oµ thσá previou≤ ì
  298. locatioεá rotateΣá righ⌠ witΦ carr∙ whicΦ wil∞ causσ aε uneveε patterεá iε ì
  299. memor∙ anΣ allo≈ thσ check«á  Afte≥ thi≤ 1δ blocδ ha≤ beeε testeΣ thσ nex⌠ ì
  300. blocδ i≤ tested.
  301.  
  302.      Thi≤á test¼á whicΦ i≤ writteε iε Ithica'≤ assembly¼á ha≤ beeεá linkeΣ ì
  303. int∩ the AT╙ librar∙ filσ 'ATSLIB.RELº anΣ mus⌠ bσ linkeΣ t∩ thσ monitor.
  304.  
  305.      Unlikσ othe≥ tests¼á thi≤ onσ wil∞ prin⌠ ou⌠ t∩ thσ consolσ thσá tes⌠ ì
  306. result≤á immediatel∙á afte≥ i⌠ executes«á  Thσ result≤ wil∞á indicatσá thσ ì
  307. numbe≥á oµ 1╦ block≤ tha⌠ error≤ werσ detecteΣ iε anΣ whicΦ 4δ block≤á thσ ì
  308. error≤ werσ locateΣ in«á  Seσ thσ sourcσ codσ fo≥ additiona∞ documentatioε ì
  309. oε thi≤ routine.
  310.  
  311. .cp19
  312. Results from MCP RAM Test
  313.      FEDCBA9876543210    b or ░ ╜ápasseΣá ▒á╜ failed
  314.      ---------------x --> blocδ 0000H t∩ 0FFF╚  
  315.      --------------x- --> block 1000H to 1FFFH
  316.      -------------x-- --> block 2000H to 2FFFH
  317.      ------------x--- --> block 3000H to 3FFFH
  318.      -----------x---- --> block 4000H to 4FFFH
  319.      ----------x----- --> block 5000H to 5FFFH
  320.      ---------x------ --> block 6000H to 6FFFH
  321.      --------x------- --> block 7000H to 7FFFH
  322.      -------x-------- --> block 8000H to 8FFFH
  323.      ------x--------- --> block 9000H to 9FFFH
  324.      -----x---------- --> block A000H to AFFFH
  325.      ----x----------- --> block B000H to BFFFH
  326.      ---x------------ --> block C000H to CFFFH
  327.      --x------------- --> block D000H to DFFFH
  328.      -x-------------- --> block E000H to EFFFH
  329.      x--------------- --> block F000H to FFFFH
  330. .cp47èMCP RAM Test Flow:
  331.  
  332.                              MEMTST
  333.                                 |
  334.                   Get the current stack pointer
  335.                                 |
  336.                         Start a new stack
  337.                                 |
  338.                    Save the old stack pointer
  339.                                 |
  340.                         INIT (Initialize)
  341.                                 |
  342.               SAVEME (Move test code to save area)
  343.    ____________________________ |
  344.  /                             \|
  345. |        SAVE (Save the data in the block to be tested)
  346. |                               |
  347. |             TEST1 (Do the 0FFH and 00 fill tests)
  348. |                               |
  349. |             TEST2 (Do crossed address line test)
  350. |                               |
  351. |         REST (Restore data to the block just tested)
  352. |                               |
  353. |                        Did test fail ?
  354. |                               |
  355. |                    _____no___/ \___yes____
  356. |                   /                       \
  357. |                  |             FAIL (Set the error flag)
  358. |                   \__________   __________/
  359. |                              \ /
  360. |                               |
  361. |                  Move test block base up 1K
  362. |                               |
  363. |              Are we getting close to save area ?
  364. |                  ____no______/ \_____yes____
  365. |                 /                           \
  366. |                ⁿ      RESTM┼ (Jum≡ back to original execution area)
  367. |                 \____________   ____________/
  368. |                              \ /
  369. |                               |
  370. |                      Is the test done ?
  371.  \_____________________no______/|
  372.                                 |yes
  373.                         DONE ( Set flags)
  374.                                 |
  375.                   Restore the old stack pointer
  376.                                 |
  377.                               Exit
  378.  
  379.  
  380.  
  381. .cp12èDisk Drive System
  382.  
  383.      Thσ thirΣ tes⌠ i≤ fo≥ thσ disδ drivσ system«á  Thi≤ onσ i≤ relativel∙ ì
  384. simplσ anΣ streigh⌠ forward«á  I⌠ i≤ writteε iε Pascal-┌ anΣ i≤á thereforσ ì
  385. selµ documenting«  Briefl∙ wha⌠ happen≤ i≤ tha⌠ 1▓ sector≤ oµ thσ disδ arσ ì
  386. writteεá anΣ theε al∞ 1▓ sector≤ arσ reaΣ bacδ anΣ compaireΣ witΦ wha⌠ wa≤ ì
  387. written«á  An∙ discrepancie≤ wil∞ causσ thσ erro≥ flaτ t∩ bσá incremented«  ì
  388. A≤á BDO╙á doe≤ continuou≤ check≤ oε disδ activity¼á anΣ thi≤ wil∞ bσá disì
  389. playeΣ iµ an∙ error≤ arσ detested¼ thi≤ tes⌠ i≤ onl∙ designeΣ t∩ checδ fo≥ ì
  390. thosσ type≤ oµ erro≥ tha⌠ ma∙ no⌠ bσ detecteΣ b∙ BDOS.
  391.  
  392. .cp3
  393.  
  394. Results from Disk Drive System Test:
  395.      FEDCBA9876543210
  396.      xxxxxxxxxxxxxxxx --> The the failure count in binary.
  397. .cp22
  398. .paèDisk Drive System Flow:
  399.  
  400.                         Zero error flags
  401.                                 |
  402.                  Set 128 byte array with MAXINT
  403.                                 |
  404.                          Reset test file
  405.   _____________________________ |
  406.  /                             \|
  407. |                          Read record
  408. |                               |
  409. |                      Is it as written ?
  410. |                               |
  411. |                  ____no______/ \_____yes____
  412. |                 /                           \
  413. |          Increment error flag                |
  414. |                 \____________   ____________/
  415. |                              \ /
  416. |                               |
  417. |                         Last record ?
  418. |                               |
  419.  \_____________________no______/|
  420.                                 |yes
  421.                                 |
  422.                               Exit
  423.  
  424.  
  425.  
  426. .cp10
  427. Serial Ports
  428.  
  429.      Tes⌠ fou≥ wil∞ bσ oµ thσ tw∩ seria∞ port≤ iε thσ MCP«á  Thσ tw∩ UART╙ ì
  430. arσá testeΣ b∙ puttinτ theφ int∩ loca∞ loopbacδ modσ anΣ sendinτ datßá anΣ ì
  431. checkinτ RxRD┘ anΣ readinτ datß anΣ checkinτ TxRDY.
  432.  
  433.      Thσá sourcσ codσ oµ thi≤ tes⌠ i≤ writteε iε Ithica'≤á assembly«á  Thσ ì
  434. tes⌠ mus⌠ bσ linkeΣ witΦ thσ monito≥ anΣ iε includeΣ iε 'ATSLIB.REL'.
  435. .cp4
  436.  
  437. Results from Serial Ports Test:
  438.      FEDCBA9876543210         0 or b = passed  1 = failed
  439.      ---------------x --> UART based at 0
  440.      --------------x- --> UART based at 4 
  441.  
  442. .cp25èSerial Ports Test Flow:
  443.  
  444.                              SERTST
  445.                                 |
  446.                          Zero error flag
  447.                                 |
  448.                   Note the test to be performed
  449.   _____________________________ |
  450.  /                             \|
  451. |          Save the current command and mode registers
  452. |                               |
  453. |                Set the UART to local loopback
  454. |                               |
  455. |                          Do the test
  456. |                               |
  457. |               Restore command and mode register
  458. |                               |
  459. |                  Increment to the next UART
  460. |                               |
  461. |                         Are we done ?
  462. |                               |
  463.  \_______________________no____/|yes
  464.                                 |
  465.                               Exit
  466.  
  467.  
  468.  
  469. .cp24
  470. MCP APU
  471.  
  472.      Tes⌠á fivσá i≤ t∩ insurσ tha⌠ thσ AP╒ i≤ se⌠ u≡ anΣ functioninτá proì
  473. perly«  Thi≤ i≤ donσ b∙ performinτ ß numbe≥ oµ operation≤ anΣ checkinτ thσ ì
  474. results«  
  475.  
  476.      Beforσá an∙ operation≤ arσ done¼á thσ AP╒ i≤ se⌠ u≡ witΦá ßá softwarσ ì
  477. routinσ t∩ assurσ tha⌠ it'≤ interna∞ stacδ pointe≥ i≤ oε ß 1╢ bi⌠ boundry«  ì
  478. Thσ tes⌠ wil∞ assurσ thσ interna∞ stacδ oµ thσ AP╒ i≤ functioninτ properl∙ ì
  479. a≤ wel∞ as d∩ thσ severa∞ tes⌠ operations«  
  480.  
  481.      Thσ tes⌠ operation≤ includσ DDAD¼á DSUB¼ DMUL¼ DDIV¼ SQRT¼ PWR¼ FIXD¼ ì
  482. FLTD¼á anΣ CHSF«  Normall∙ thσ AP╒ bus∙ bi⌠ i≤ checkeΣ beforσ aε operatioε ì
  483. resul⌠á i≤ read«á  Thi≤ i≤ no⌠ truσ oε thσ Bus∙ Bi⌠ Test«á  Thi≤ tes⌠ wil∞ ì
  484. perforφ aε operatioε anΣ immediatel∙ attemp⌠ t∩ reaΣ ß result«á  B∙á doinτ ì
  485. this¼á ßá checδá wil∞á bσ madσ t∩ seσ tha⌠ thσ pausσ linσ t∩á thσá CP╒á i≤ ì
  486. dropped¼á a≤á i⌠á shoulΣ be¼á iε thσ even⌠ ß datß reaΣ i≤ donσ beforσá thσ ì
  487. operatioε i≤ complete«  
  488.  
  489.      Thσ sourcσ codσ i≤ locateΣ iε 'APUTST.SRCº anΣ i≤ writteε iε Ithica'≤ ì
  490. assembly«á  I⌠á i≤á locateΣ iε 'ATSLIB.RELº anΣ mus⌠ bσá linkeΣá witΦá thσ ì
  491. monitor.
  492.  
  493. .cp12èResults from MCP APU Test:   0 or b = passed  1 = failed
  494.      FEDCBA9876543210
  495.      ---------------x --> APU bus test
  496.      --------------x- --> APU stack test
  497.      -------------x-- --> DADD test (32 bit add)
  498.      ------------x--- --> DSUB test (32 bit subtract)
  499.      -----------x---- --> DMUL & DDIV test
  500.      ----------x----- --> Skip busy bit test
  501.      ---------x------ --> 16 bit arithmetic test
  502.      --------x------- --> Misc function test
  503.      ------x--------- --> Time out
  504.      xxxxxx-x-------- --> Unused
  505.  
  506. .cp24
  507. MCP APU Test Flow:
  508.  
  509.                        Zero the error flag
  510.                                 |
  511.                     INIT (Initialize the APU)
  512.                                 |
  513.                         Test the APU bus
  514.                                 |
  515.                      Test the internal stack
  516.                                 |
  517.                             DADD test
  518.                                 |
  519.                             DSUB test
  520.                                 |
  521.                         DMUL & DDIV test
  522.                                 |
  523.                           Busy bit test
  524.                                 |
  525.                      16 bit arithmetic test
  526.                                 |
  527.                        Misc. operation test
  528.                                 |
  529.                               Exit
  530.  
  531.  
  532.  
  533.  
  534. .cp16èMCP Data Link
  535.  
  536.      Tes⌠ si° i≤ designeΣ t∩ checδ thσ bidirectiona∞ datß linδ betweeε thσ ì
  537. MC╨ anΣ thσ GCP«á  Thσ tes⌠ prograφ iε thσ GC╨ take≤ contro∞ oµ al∞ I/╧ iε ì
  538. tha⌠á sidσ oµ thσ system«á  Thσ MC╨ send≤ acros≤ ß binar∙ count«á  A≤ eacΦ ì
  539. characte≥ i≤ sen⌠ b∙ thσ MC╨ i⌠ i≤ receiveΣ anΣ returneΣ b∙ thσá GCP«á  A≤ ì
  540. thσá GC╨á receive≤ eacΦ characte≥ thσ communicatioε protoco∞á i≤á checked«  ì
  541. Wheεá thσ characte≥ i≤ receiveΣ bacδ b∙ thσ MC╨ i⌠ i≤ confirmeΣ t∩ bσá thσ ì
  542. samσ a≤ thσ characte≥ sen⌠ beforσ thσ nex⌠ characte≥ i≤ sent.
  543.  
  544.  
  545.      Thσ MC╨ sourcσ codσ fo≥ thi≤ tes⌠ i≤ locateΣ iε thσ filσ 'GTESTS.SRCº ì
  546. anΣ thσ GC╨ portioε i≤ locateΣ iε 'GCPMON.ASM'.
  547.  
  548.      Thi≤ tes⌠ wil∞ diffe≥ froφ thσ other≤ iε tha⌠ i⌠ execute≤ iε botΦ thσ ì
  549. GC╨ anΣ thσ MC╨ durinτ thσ entirσ test.
  550.  
  551. .cp7
  552. Results from MCP Data Link Test:
  553.      FEDCBA9876543210
  554.      --------xxxxxxxx -->  The number of protocol errors in the 
  555.      ----------------      GCP in binary.
  556.      xxxxxxxx-------- -->  The number of character errors in
  557.                            binary.
  558.  
  559. .paèMCP Data Link Test Flow:
  560.  
  561.                              MCPLNK
  562.                                 |
  563.                        Zero the error flag
  564.                                 |
  565.                    Set output character to 20H
  566.   _____________________________ |
  567.  /                             \|
  568. |               Send output character to the GCP
  569. |                               |
  570. |                      Wait for its return
  571. |                               |
  572. |            Is it the same as the character sent ?
  573. |                               |
  574. |                  ____no______/ \_____yes____
  575. |                 /                           \
  576. |          Increment error flag                |
  577. |                 \____________   ____________/
  578. |                              \ /
  579. |                               |
  580. |                  Was it the last character ?
  581. |                               |
  582.  \_____________________no______/|
  583.                                 |yes
  584.                               Exit
  585.  
  586.  
  587.                              GCPLNK
  588.                                 |
  589.                        Zero the error flag
  590.   _____________________________ |
  591.  /                             \|
  592. |                 Wait for first protocol byte
  593. |                               |
  594. |                         Get that byte
  595. |                               |
  596. |                          Is it a 3 ?
  597. |                               |
  598. |                  ____no______/ \_____yes____
  599. |                 /                           \
  600. |          Increment error flag                |
  601. |                 \____________   ____________/
  602. |                              \ /
  603. |                               |
  604. |                  Wait for next protocol byte
  605. |                               |
  606. |                            Get it
  607. |                               |
  608. |                         Is it a 50H ?
  609. |                               |
  610. |                  ____no______/ \_____yes____
  611. |                 /                           \
  612. |          Increment error flag                |
  613. |                 \____________   ____________/è|                              \ /
  614. |                               |
  615. |                  Wait for next protocol byte
  616. |                               |
  617. |                            Get it
  618. |                               |
  619. |                          Is it a 1 ?
  620. |                               |
  621. |                  ____no______/ \_____yes____
  622. |                 /                           \
  623. |          Increment error flag                |
  624. |                 \____________   ____________/
  625. |                              \ /
  626. |                               |
  627. |                  Wait for the text character
  628. |                               |
  629. |                            Get it
  630. |                               |
  631. |                    Send it back to the MCP
  632. |                               |
  633. |                  Was it the last character ?
  634. |                               |
  635.  \______________________no_____/|
  636.                                 |yes
  637.                               Exit
  638.  
  639.  
  640.  
  641.  
  642. .cp8
  643. GCP Down-load 
  644.      
  645.      Tes⌠á seveε i≤ designeΣ t∩ tes⌠ thσ GC╨ down-loaΣ datß linδ anΣá wil∞ ì
  646. requirσ aε additiona∞ filσ calleΣ 'DOWNLOAD.COMº t∩ bσ oµ drivσ 'A'«á  Thσ ì
  647. MC╨á portioεá oµ thσ routinσ wil∞ down-loaΣ thi≤ datß filσ t∩ thσ GC╨á anΣ ì
  648. theεá star⌠ thσ test«á  EacΦ bytσ tha⌠ wa≤ down-loadeΣ i≤ checkeΣá agains⌠ ì
  649. thσ knowε patterε anΣ thσ erro≥ flaτ wil∞ bσ incrementeΣ eacΦ timσ ßá bytσ ì
  650. i≤ incorrect.
  651.  
  652. Results from GCP Down-load Test:
  653.      FEDCBA9876543210
  654.      xxxxxxxxxxxxxxxx --> The binary count of the number of bytes
  655.                           detected to be in error.
  656. .cp29èGCP Data Down-load Flow:
  657.  
  658.                              GCPDWN
  659.                                 |
  660.                        Zero the error flag
  661.                                 |
  662.                Set pointer to down-load data area
  663.                                 |
  664.                       Set the test pattern
  665.    ____________________________ |
  666.  /                             \|
  667. |                       Do bytes match ?
  668. |                               |
  669. |                  ____no______/ \_____yes____
  670. |                 /                           \
  671. |          Increment error flag                |
  672. |                 \____________   ____________/
  673. |                              \ /
  674. |                               |
  675. |                  Increment the data pointer
  676. |                               |
  677. |                    Rotate the test pattern
  678. |                               |
  679. |                    Is this the last byte ?
  680.  \_______________________no____/|
  681.                                 |yes
  682.                                 |
  683.                               Exit
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690. .cp46èPlasma Panel
  691.  
  692.      Tes⌠á eigh⌠ i≤ designeΣ t∩ ruε iε thσ GC╨ anΣ tes⌠ graphiπ operation≤ ì
  693. oµ thσ plasmß panel«á  EacΦ differen⌠ displa∙ test≤ ß spacifiπ portioεá oµ ì
  694. thσ hardwarσ necessar∙ t∩ operatσ thσ panel«  EacΦ oµ thσ seveε test≤ wil∞ ì
  695. bσá displayeΣá fo≥á approximatel∙ 1░ second≤ eacΦ anΣá theεá automaticall∙ ì
  696. cyclσ t∩ thσ next.
  697.  
  698.      Tes⌠ onσ shoulΣ firs⌠ clea≥ thσ screeε anΣ theε fil∞ i⌠ witΦ horizonì
  699. ta∞ line≤ 1╢ dot≤ apart«  Thi≤ i≤ theε overlayeΣ witΦ vertica∞ line≤ whicΦ ì
  700. arσá 1╢ dot≤ apar⌠ anΣ theε overlayeΣ witΦ diagona∞ line≤ 1╢á dot≤á apart«  ì
  701. Thi≤ patterε wil∞ bσ helΣ fo≥ 1░ second≤ beforσ goinτ t∩ tes⌠ two.
  702.  
  703.      Tes⌠á tw∩á wil∞á clea≥ thσ screeε anΣ theε displa∙ ßá 1╢á bi⌠á binar∙ ì
  704. counter«  Startinτ a⌠ thσ lowe≥ left¼ onσ bi⌠ wil∞ bσ on.« theε two.« etc« ì
  705. fo≥ thσ entirσ screen.
  706.  
  707.      Tes⌠ threσ wil∞ blanδ thσ screen«á  I⌠ shoulΣ sta∙ blanδ fo≥ abou⌠ 1░ ì
  708. seconds.
  709.  
  710.      Test four will fill the screen (all bits will be on).
  711.  
  712.      Tes⌠á fivσá run≤á immediatel∙á afte≥á tes⌠á fou≥á fill≤á thσá screen«  ì
  713. Diagona∞á line≤ 1╢ bit≤ apar⌠ wil∞ bσ erased«á  Thi≤ patterε wil∞ bσá disì
  714. playeΣ fo≥ abou⌠ 1░ seconds«  
  715.  
  716.      Tes⌠á si°á wil∞ erasσ thσ screeε anΣ display¼á startinτ a⌠ thσá lowe≥ ì
  717. left¼ ß stairste≡ patterε t∩ thσ uppe≥ right«  
  718.  
  719.      Tes⌠á seveε wil∞ erasσ thσ screeε anΣ theε displa∙ eigh⌠ column≤á anΣ ì
  720. eigh⌠ rows«  Fo≥ referencσ thσ columns/row≤ wil∞ bσ numbereΣ froφ thσ lef⌠ ì
  721. anΣ thσ bottoφ respectively.
  722.  
  723.      Column/row          Action
  724.           1              On for its entire length
  725.           2              Off for its entire length but flashes
  726.                          for the upper/right half
  727.           3              Same as 2
  728.           4              On for the entire length
  729.           5              Off for lower/left half, on for the
  730.                          upper/right half
  731.           6              Same as 2
  732.           7              Same as 5
  733.           8              On for its entire length
  734.  
  735.  
  736. .cp3
  737. Results from Plasma Panel Test:
  738.  
  739.      Thi≤ tes⌠ wil∞ neve≥ indicatσ aε erro≥ a≤ thσ operato≥ mus⌠á visuall∙ ì
  740. checδ thσ panel.
  741.  
  742.  
  743. .cp56èPlasma Panel Test Flow:
  744.  
  745.                              GCPPNL
  746.                                 |
  747.             PSETUP (Set up the plasma panel hardware)
  748.                                 |
  749.                    SERASE (Do a screen erase)
  750.                                 |
  751.                  HLINES (Print horizontal lines)
  752.                                 |
  753.                   VLINES (Print vertical lines)
  754.                                 |
  755.                    SAW (Print diagonal lines)
  756.                                 |
  757.                               Delay
  758.                                 |
  759.                              SERASE
  760.                                 |
  761.                              PSETUP
  762.                                 |
  763.               PART (Display 16 bit binary counter)
  764.                                 |
  765.                               Delay
  766.                                 |
  767.                PARTE (Erase 16 bit binary counter)
  768.                                 |
  769.                               Delay
  770.                                 |
  771.                              PSETUP
  772.                                 |
  773.                      FILLS (Fill the screen)
  774.                                 |
  775.                    SAWS (Erase diagnol lines)
  776.                                 |
  777.                               Delay
  778.                                 |
  779.                              SERASE
  780.                                 |
  781.                              PSETUP
  782.                                 |
  783.                 LONG (Display stair-step pattern)
  784.                                 |
  785.                               Delay
  786.                                 |
  787.                              SERASE
  788.                                 |
  789.                              PSETUP
  790.                                 |
  791.                     Do 8 bit column/row test
  792.                                 |
  793.                              SERASE
  794.                                 |
  795.                              PSETUP
  796.                                 |
  797.                               Exitè
  798. .cp14
  799. Touch Panel
  800.  
  801.      A⌠á thσá star⌠ oµ tes⌠ ╣ 'ToucΦ Panelº wil∞ bσ displayeΣ oε thσá conì
  802. sole«á  Thσá use≥á ma∙á theε checδ thσ toucΦ pane∞á  b∙á touchinτá variou≤ ì
  803. positions«á  Wheε ß positioε i≤ touched¼ thσ tes⌠ wil∞ prin⌠ ou⌠ iε he° t∩ ì
  804. thσ consolσ thσ X,┘ coordinate≤ whicΦ havσ beeε touched«á  Thσ lowe≥á lef⌠ ì
  805. oµá thσ pane∞ wil∞ bσ coordinatσ 0░ anΣ thσ uppe≥ righ⌠ wil∞ bσ coordinatσ ì
  806. FF«á  EacΦ timσ thσ pane∞ i≤ touched¼á therσ shoulΣ bσ ß 'beep'«  Thσ tes⌠ ì
  807. wil∞á continuσá a≤á lonτ a≤ thσ operato≥ continue≤á t∩á toucΦá thσá panel«  ì
  808. Approximatel∙á 1░á seconΣ afte≥ thσ las⌠ touch¼á thσ tes⌠á wil∞á terminatσ ì
  809. automatically.
  810.  
  811.      This test executes in the GCP.
  812.  
  813. .cp3
  814. Results from Touch Panel Test:
  815.  
  816.      Thi≤á tes⌠ wil∞ neve≥ indicatσ aε erro≥ a≤ thσ operato≥ mus⌠ visuall∙ ì
  817. checδ thσ panel.
  818.  
  819.  
  820. .cp32
  821. Touch Panel Test Flow:
  822.  
  823.                               GCPTP
  824.                                 |
  825.                    Print 'Touch Panel' message
  826.                                 |
  827.                             Set timer
  828.   _____________________________ |
  829.  /                             \|
  830. |                        Decrement timer
  831. |                               |
  832. |                         Is time up ?
  833. |                               |
  834. |                             no|\___yes______________________
  835. |                               |                             \
  836. |                 Get the Pouch Panel's status                 |
  837. |                               |                              |
  838. |                 Is there a character ready ?                 |
  839. |                               |                              |
  840. |\______________________no_____/|yes                           |
  841. |                            Read it                           |
  842. |                               |                              |
  843. |                   Print the X,Y coordinates                  |
  844. |                               |                              |
  845. |                        Reset the timer                       |
  846. |                               |                              |
  847.  \_____________________________/                               |
  848.                                   ____________________________/
  849.                                  /
  850.                                 |
  851.                               Exit
  852.  
  853.  
  854. è.cp12
  855. Keyboard
  856.  
  857.      Tes⌠ teε i≤ ß keyboarΣ test«á A⌠ thσ start¼á 'Keyboardº i≤ printeΣ oε ì
  858. thσ screen«  A⌠ thi≤ poin⌠ al∞ character≤ typeΣ a⌠ thσ keyboarΣ arσ echoeΣ ì
  859. t∩ thσ consolσ witΦ thei≥ ASCI╔ equivalent«á  Al∞ contro∞ character≤á wil∞ ì
  860. bσ indicateΣ b∙ ß '^º beinτ printeΣ beforσ thσ equivalen⌠ ASCI╔ character«  ì
  861. Thi≤ tes⌠ wil∞ continuσ a≤ lonτ a≤ typinτ i≤ continued«  Teε second≤ afte≥ ì
  862. thσ use≥ stop≤ typinτ thσ tes⌠ wil∞ terminatσ automatically.
  863.  
  864.      Thσá keyboarΣá tes⌠á wil∞ executσ iε thσ MC╨ anΣ i≤á locateΣá iεá thσ ì
  865. 'GTESTS.SRCº file.
  866.  
  867. .cp3
  868. Results from Keyboard Test:
  869.  
  870.      Thi≤á tes⌠ wil∞ neve≥ indicatσ aε erro≥ a≤ thσ operato≥ mus⌠ visuall∙ ì
  871. checδ thσ panel.
  872. .cp38
  873.  
  874. KeyboarΣ Tes⌠ Flow:
  875.  
  876.                              KEYBRD
  877.                                 |
  878.                         Print 'Keyboard'
  879.                                 |
  880.                           Set the timer
  881.   _____________________________ |
  882.  /                             \|
  883. |                       Was there input ?
  884. |                               |
  885. |           ____________no_____/ \_____yes____________
  886. |          /                                          \
  887. |         |                                            |
  888. |         |                                   Get the character
  889. |         |                                            |
  890. |         |                                 Is it a control character ?
  891. |         |                                            |
  892. |         |                                  ______no_/ \___yes__
  893. |         |                                 /                    \
  894. |         |                                |                 Subtract 40H
  895. |         |                                |                      |
  896. |         |                                |                   Print '^'      
  897. |         |                                 \________▀   ________/
  898. |         |                                           \ /
  899. |         |                                            |
  900. |         |                                   Print the character
  901. |         |                                            |
  902. |         |                                     Reset the timer
  903. |          \___________________   ____________________/
  904. |                              \ /
  905. |                               |
  906. |                      Decrement the timer
  907. |                               |
  908. |                          Is it zero
  909.  \________________________no___/|
  910.                                 |yes
  911.                               ExitèGCP CPU
  912.  
  913.      Tes⌠ eleveε oε thσ men⌡ i≤ thσ GC╨ CP╒ test«á  Thi≤ test¼á whicΦ run≤ ì
  914. iε thσ GCP¼á wil∞ executσ anΣ checδ thσ result≤ oµ severa∞ instruction≤ iε ì
  915. eacΦ logica∞ grou≡ oµ thσ Z-8░ instructioε set«  Al∞ instruction≤ wil∞ no⌠ ì
  916. bσá testeΣá no≥á wil∞ al∞ flag≤ bσ testeΣ fo≥ eacΦ instructioεá a≤á i⌠á i≤ ì
  917. executed«á  Therσá arσá somσ instruction≤ tha⌠ arσ useΣ s∩á ofteεá b∙á thσ ì
  918. operatinτá systeφá tha⌠á i⌠ i≤ no⌠ necessar∙ t∩ tes⌠á them«á  Thesσá woulΣ ì
  919. includσ 'PUSH'¼ 'POP'¼ 'IN'¼ anΣ 'OUT'.
  920.  
  921. The Z-80 instructions tested are listed below:
  922.  
  923.           Hex       Mnemonic                 Hex       Mnemonic
  924. Calls:    C4        CNZ            Jumps:    C2        JNZ
  925.           DC        CC                       DA        JC
  926.           E4        CNV                      E2        JNV
  927.           FC        CM                       FA        JM
  928.           CC        CZ                       CA        JZ
  929.           F4        CP                       F2        JP
  930.           EC        CPE                      EA        JPE
  931.  
  932. Returns:  C0        RNZ            Rotates:  1F        RAR
  933.           D8        RC                       0F        RLC
  934.           E0        RNV                      
  935.           F8        RM             Blk.Moves:EDB0      LDIR
  936.           C8        RZ                       EDB8      LDDR
  937.           E8        RPE            
  938.           F0        RP             Moves:    3E        MVI
  939.           C9        RET                      67        MOV H,A
  940.                                              6C        MOV L,H
  941. Load/     01        LXI B                    55        MOV D,L
  942. Stores:   0A        LDAX B                   5A        MOV E,B
  943.           02        STAX B                   43        MOV B,E
  944.           3A        LDA                      48        MOV C,B
  945.           32        STA                      71        MOV M,C
  946.           2A        LHLD                     46        MOV B,M
  947.           ED4B      LBCD                     
  948.           ED5B      LDED           Adds:     ED4A      DADC B
  949.           22        SHLD                     ED5A      DADC D
  950.           ED43      SBCD
  951.           ED53      SDED           Inc./Dec.:23        INX H
  952.                                              25        DCR H
  953. Accum.:   C6        ADI                      2C        INR L
  954.           CE        ACI                      2B        DCX H
  955.           FE        CPI                      102E      DJNZ
  956.           DE        SBI                      25        DCR H
  957.           B0        ORA B
  958.           A8        XRA B
  959.           90        SUB B
  960.  
  961.      Iε additioε t∩ thσ abovσ instructioε tests¼ therσ i≤ ß timinτ tes⌠ t∩ ì
  962. assurσ tha⌠ thσ processo≥ i≤ workinτ a⌠ thσ prope≥ speed«  A⌠ thσ star⌠ oµ ì
  963. thσ timinτ test¼ aε 'Sº i≤ displayeΣ a⌠ thσ console«  A⌠ thσ finisΦ aε 'Fº ì
  964. i≤ displayed«  Thesσ shoulΣ occu≥ approximatel∙ 1╕ second≤ apart.
  965. .cp3èResults from GCP CPU Test:
  966.      FEDCBA9876543210
  967.      ---------------x --> b = passed  1 = failed
  968. .cp30
  969.  
  970. GCP CPU Test Flow:
  971.  
  972.                              CPUTST
  973.                                 |
  974.                   CPUERR (Clear the error flag)
  975.                                 |
  976.                CALLT (Test the conditional calls)
  977.                                 |
  978.             RETT (Test conditional returns and flags)
  979.                                 |
  980.              JMPT (Test conditional jumps and flags)
  981.                                 |
  982.                        ROTT (Test rotates)
  983.                                 |
  984.                      BMT (Test Block Moves)
  985.                                 |
  986.                         MOVT (Test Moves)
  987.                                 |
  988.                   LOADT (Test Loads and Stores)
  989.                                 |
  990.              DADT (Test Double Adds and Subtracts)
  991.                                 |
  992.           INCT (Test Register Increment and Decrement)
  993.                                 |
  994.               ACCT (Test Accumulator Instructions)
  995.                                 |
  996.                        TIMT (Timing test)
  997.                                 |
  998.                               Exit
  999.  
  1000.  
  1001.  
  1002.  
  1003. .cp19èGCP RAM
  1004.  
  1005.      Tes⌠ twelvσ i≤ thσ GC╨ RA═ test«á  I⌠ wil∞ tes⌠ al∞ RA═ iε thσ GC╨ iε ì
  1006. 1╦ blocks«á  Thσ test≤ arσ donσ withou⌠ destroyinτ an∙ portioε oµ RA═ witΦ ì
  1007. thσ exceptioε oµ thσ 5╦ blocδ a⌠ 0A000H.
  1008.  
  1009.      Thσá tes⌠ wil∞ firs⌠ fil∞ memor∙ witΦ 0FF╚ theε checδá fo≥á 0FFH╗á i⌠ ì
  1010. wil∞ theε fil∞ witΦ 0░ anΣ theε checδ fo≥ 00«á  Followinτ thσ test≤ fo≥ 0░ ì
  1011. anΣá 0FFH¼á ß tes⌠ wil∞ bσ donσ t∩ checδ fo≥ crosseΣ addres≤ lines«á  Thi≤ ì
  1012. wil∞ bσ donσ b∙ writinτ 88╚ t∩ thσ firs⌠ bytσ iε thσ tes⌠ block«  Countinτ ì
  1013. upward≤ iε memor∙ eacΦ locatioε i≤ writteε witΦ thσ valuσ oµ thσá previou≤ ì
  1014. locatioεá rotateΣá righ⌠ witΦ carr∙ whicΦ wil∞ causσ aε uneveε patterεá iε ì
  1015. memor∙ anΣ allo≈ thσ check«á  Afte≥ thi≤ 1δ blocδ ha≤ beeε testeΣ thσ nex⌠ ì
  1016. blocδ i≤ tested.
  1017.  
  1018.      Thi≤ tes⌠ i≤ essentiall∙ thσ samσ a≤ thσ MC╨ RA═ tes⌠ bu⌠ execute≤ iε ì
  1019. thσ GCP«  Seσ thσ sourcσ codσ fo≥ additiona∞ documentatioε oε thi≤ routine.
  1020.  
  1021. .cp19
  1022. Results from GCP RAM Test:
  1023.      FEDCBA9876543210    b or ░ ╜ápasseΣá ▒á╜ failed
  1024.      ---------------x --> blocδ 0000H t∩ 0FFF╚  
  1025.      --------------x- --> block 1000H to 1FFFH
  1026.      -------------x-- --> block 2000H to 2FFFH
  1027.      ------------x--- --> block 3000H to 3FFFH
  1028.      -----------x---- --> block 4000H to 4FFFH
  1029.      ----------x----- --> block 5000H to 5FFFH
  1030.      ---------x------ --> block 6000H to 6FFFH
  1031.      --------x------- --> block 7000H to 7FFFH
  1032.      -------x-------- --> block 8000H to 8FFFH
  1033.      ------x--------- --> block 9000H to 9FFFH
  1034.      -----x---------- --> block A000H to AFFFH
  1035.      ----x----------- --> block B000H to BFFFH
  1036.      ---x------------ --> block C000H to CFFFH
  1037.      --x------------- --> block D000H to DFFFH
  1038.      -x-------------- --> block E000H to EFFFH
  1039.      x--------------- --> block F000H to FFFFH
  1040. .cp47èGCP RAM Test Flow:
  1041.  
  1042.                              MEMTST
  1043.                                 |
  1044.                   Get the current stack pointer
  1045.                                 |
  1046.                         Start a new stack
  1047.                                 |
  1048.                    Save the old stack pointer
  1049.                                 |
  1050.                         INIT (Initialize)
  1051.                                 |
  1052.               SAVEME (Move test code to save area)
  1053.    ____________________________ |
  1054.  /                             \|
  1055. |        SAVE (Save the data in the block to be tested)
  1056. |                               |
  1057. |             TEST1 (Do the 0FFH and 00 fill tests)
  1058. |                               |
  1059. |             TEST2 (Do crossed address line test)
  1060. |                               |
  1061. |         REST (Restore data to the block just tested)
  1062. |                               |
  1063. |                        Did test fail ?
  1064. |                               |
  1065. |                    _____no___/ \___yes____
  1066. |                   /                       \
  1067. |                  |             FAIL (Set the error flag)
  1068. |                   \__________   __________/
  1069. |                              \ /
  1070. |                               |
  1071. |                  Move test block base up 1K
  1072. |                               |
  1073. |              Are we getting close to save area ?
  1074. |                  ____no______/ \_____yes____
  1075. |                 /                           \
  1076. |                ⁿ         RESTM┼ (Jum≡ back to original execution area)
  1077. |                 \____________   ____________/
  1078. |                              \ /
  1079. |                               |
  1080. |                      Is the test done ?
  1081.  \_____________________no______/|
  1082.                                 |yes
  1083.                         DONE ( Set flags)
  1084.                                 |
  1085.                   Restore the old stack pointer
  1086.                                 |
  1087.                               Exit
  1088.  
  1089.  
  1090.  
  1091.  
  1092. .cp9èGCP EPROM
  1093.  
  1094.      Tes⌠ thirteeε is ß checδ oµ thσ EPRO═ iε thσ GCP«á  Iε orde≥ fo≥ thi≤ ì
  1095. routinσá t∩ function¼á thσ filσ 'CRCC.DATº mus⌠ residσ oε drivσá 'A'«á  I⌠ ì
  1096. wil∞á holΣá thσá CRC├ whicΦ i≤ generateΣ a⌠ thσ timσ thσá GC╨á EPROM╙á arσ ì
  1097. changed«  Thi≤ filσ i≤ reaΣ b∙ thσ MC╨ portioε oµ thσ test«  ┴ ne≈ CRC├ i≤ ì
  1098. theεá calculateΣ fo≥ thσ RO═ spacσ anΣ returneΣ t∩ thσ MC╨ portioε oµá thσ ì
  1099. tes⌠ wherσ i⌠ i≤ compareΣ witΦ thσ valuσ reaΣ froφ thσ file«á  Iµ the∙ arσ ì
  1100. no⌠ thσ samσ thσ erro≥ flaτ i≤ set.
  1101.  
  1102. .cp3
  1103. Results from GCP EPROM Test:
  1104.      FEDCBA9876543210
  1105.      ---------------x --> b = passed  1 = failed
  1106.  
  1107. .cp7
  1108. GCP EPROM Test Flow:
  1109.      
  1110.                              GCPROM
  1111.                                 |
  1112.                      Do the CRCC calculation
  1113.                                 |
  1114.                               Exit
  1115.  
  1116.  
  1117. .cp19
  1118. GCP APU
  1119.  
  1120.      Tes⌠ fourteeε i≤ t∩ insurσ tha⌠ thσ GC╨ AP╒ i≤ se⌠ u≡ anΣ functioninτ ì
  1121. properly«á  Thi≤ i≤ donσ b∙ performinτ ß numbe≥ oµ operation≤ anΣ checkinτ ì
  1122. thσá results«á  Thσ tes⌠ wil∞ checδ tha⌠ thσ interna∞ stacδ oµ thσ AP╒á i≤ ì
  1123. functioninτ properl∙ a≤ wel∞ as d∩ thσ severa∞ tes⌠ operations«   
  1124.  
  1125.      Beforσá an∙ operation≤ arσ done¼á thσ AP╒ i≤ se⌠ u≡ witΦá ßá softwarσ ì
  1126. routinσá t∩á assurσá tha⌠á it'≤á interna∞ stacδ pointe≥ i≤á oεá ßá 1╢á bi⌠ ì
  1127. boundary«  
  1128.  
  1129.      Thσ tes⌠ operation≤ includσ DDAD¼á DSUB¼ DMUL¼ DDIV¼ SQRT¼ PWR¼ FIXD¼ ì
  1130. FLTD¼á anΣ CHSF«  Normall∙ thσ AP╒ bus∙ bi⌠ i≤ checkeΣ beforσ aε operatioε ì
  1131. resul⌠á i≤ read«á  Thi≤ i≤ no⌠ truσ oε thσ Bus∙ Bi⌠ Test«á  Thi≤ tes⌠ wil∞ ì
  1132. perforφ aε operatioε anΣ immediatel∙ attemp⌠ t∩ reaΣ ß result«á  B∙á doinτ ì
  1133. this¼á ßá checδá wil∞á bσ madσ t∩ seσ tha⌠ thσ pausσ linσ t∩á thσá CP╒á i≤ ì
  1134. dropped¼á a≤á i⌠á shoulΣ be¼á iε thσ even⌠ ß datß reaΣ i≤ donσ beforσá thσ ì
  1135. operatioε i≤ complete«  
  1136. .cp12
  1137.  
  1138. Results from GCP APU Test    0 or b = passed  1 = failed
  1139.      FEDCBA9876543210
  1140.      ---------------x --> APU bus test
  1141.      --------------x- --> APU stack test
  1142.      -------------x-- --> DADD test (32 bit add)
  1143.      ------------x--- --> DSUB test (32 bit subtract)
  1144.      -----------x---- --> DMUL & DDIV test
  1145.      ----------x----- --> Skip busy bit test
  1146.      ---------x------ --> 16 bit arithmetic test
  1147.      --------x------- --> Misc function test
  1148.      ------x--------- --> Time out
  1149.      xxxxxx-x-------- --> Unused
  1150. è.cp24
  1151. GCP APU Test Flow:
  1152.  
  1153.                        Zero the error flag
  1154.                                 |
  1155.                     INIT (Initialize the APU)
  1156.                                 |
  1157.                         Test the APU buss
  1158.                                 |
  1159.                      Test the internal stack
  1160.                                 |
  1161.                             DADD test
  1162.                                 |
  1163.                             DSUB test
  1164.                                 |
  1165.                         DMUL & DDIV test
  1166.                                 |
  1167.                           Busy bit test
  1168.                                 |
  1169.                      16 bit arithmetic test
  1170.                                 |
  1171.                        Misc operation test
  1172.                                 |
  1173.                               Exit
  1174.  
  1175. .paè.op
  1176.                            Appendix A
  1177.  
  1178.                 ATS Confidence Tests Source Code
  1179.      
  1180.      Thσá followinτá wil∞ summarizσ al∞ oµ thσ sourcσ file≤ fo≥á thσá conì
  1181. ì
  1182. fidencσá tests«á  Thesσá file≤á wil∞ bσ locateΣ oεá thσá diskettσá labeleΣ ì
  1183. ì
  1184. 'Confidencσá Test≤á Sourcσá Codeº anΣ wil∞ contaiε al∞ codσá useΣá iεá thσ ì
  1185. ì
  1186. tests.
  1187.  
  1188.  
  1189.      FILE             DESCRIPTION
  1190. ..                      L-----------------------------------------R
  1191. ..L----!----!----!----!----!----!----!----!----!----!----!--------R
  1192.  
  1193.      CONTESTS.PAS   áá  Thσ maiε drive≥ prograφ fo≥ al∞ oµ thσ tests«  
  1194.  
  1195.      GTESTS.SRC     ááááAl∞á oµá thσ assembl∙ languagσ tes⌠ program≤á tha⌠ ì
  1196. ááááááááááááááááááááááááruε iε thσ MCP«á  I⌠ i≤ writteε iε Ithica'≤ assemì
  1197. áááááááááááááááááááááááábl∙ anΣ need≤ t∩ bσ linkeΣ witΦ CONTESTS.
  1198.  
  1199.      ATSLIB.REL     áá  ┴ librar∙ filσ linkablσ witΦ Ithica'≤ Link«á  Conì
  1200. áááááááááááááááááááááááátain≤á somσá oµ thσ MC╨ tes⌠ routine≤ a≤á wel∞á a≤ ì
  1201. áááááááááááááááááááááááásomσ utilit∙ routines.
  1202.  
  1203.      CPUTST.SRC     áá  I≤ containeΣ iε ATSLIB«á  Thσ CP╒ tes⌠ useΣ iε thσ ì
  1204. ááááááááááááááááááááááááMCP.
  1205.  
  1206.      AND.SRC        áá  ContaineΣ iε ATSLIB«á  ┴ utilit∙ routinσ t∩ returε ì
  1207. áááááááááááááááááááááááát∩ Pascal-┌ truσ o≥ falsσ baseΣ oε thσ result≤á oµ ì
  1208. ááááááááááááááááááááááááß logica∞ AND.
  1209.  
  1210.      APUT.SRC       áá  ContaineΣ iε ATSLIB«á  Thσ tes⌠ oµ thσ 951▒ AP╒ iε ì
  1211. ááááááááááááááááááááááááthσ MCP.
  1212.  
  1213.      DTST.PAS       áá  ContaineΣ iε ATSLIB«  Thσ AT╙ disδ test.
  1214.  
  1215.      SERT.SRC       áá  ContaineΣ iε ATSLIB«  Thσ tes⌠ fo≥ thσ UARTS.
  1216.  
  1217.      LOGIAND.SRC    áá  ContaineΣá iεá ATSLIB«á  Aε externa∞á routinσá fo≥ ì
  1218. ááááááááááááááááááááááááPascal-Z¼á wil∞á perforφ ß logica∞ AN─ anΣá returε ì
  1219. ááááááááááááááááááááááááthσ results.
  1220.  
  1221.      LOGIOR.SRC     áá  ContaineΣá iεá ATSLIB«á  Aε externa∞á routinσá fo≥ ì
  1222. ááááááááááááááááááááááááPascal-Z¼ wil∞ perforφ ß logica∞ O╥ anΣ returε thσ ì
  1223. ááááááááááááááááááááááááresults.
  1224.  
  1225.      MEMTST.SRC     áá  ContaineΣ iε ATSLIB«  Thσ tes⌠ oµ thσ AT╙ MC╨ RAM.
  1226.  
  1227.      GCPMON.ASM     áá  Al∞á oµ thσ test≤ t∩ bσ down-loadeΣ anΣ ruε iε thσ ì
  1228. ááááááááááááááááááááááááGCP.
  1229.  
  1230.      DOWNLOAD.ASM   áá  Tes⌠ datß useΣ b∙ thσ down-loaΣ test.
  1231.  
  1232. è     TESTSAVE.ASM   áá  UseΣ t∩ savσ GCPMO╬ a≤ ß down-loadablσ CO═ file.
  1233.  
  1234.      CRCGEN.ASM     áá  Generate≤ ß CRC├ fo≥ thσ RO═ tes⌠ iε thσ GCP.
  1235.  
  1236.      GOCRCGEN.ASMá  áá  Down-load≤á thσá CRCGE╬á prograφ t∩á thσá GC╨á anΣ ì
  1237. áááááááááááááááááááááááábegin≤ execution.
  1238.  
  1239.      CONFIDEN.DOC   áá  Thσá Confidencσ Tes⌠s Operator'≤ Manual.
  1240.  
  1241.      LIB.REL            Pascal-Z's library file.
  1242.  
  1243.  
  1244. File types are:
  1245.  
  1246.      .ASM      Digital Research MAC source file.
  1247.      .PAS      Ithica's Pascal-Z source file.
  1248.      .SRC      Ithica's ASMBL source file.
  1249.      .DOC      Wordstar document file.
  1250.  
  1251. .paè                           Appendix B
  1252.  
  1253.                   Creating a CRCC New Data File
  1254.  
  1255.      1.   Run 'GOCRCGEN'.
  1256.  
  1257.      2.  RecorΣá thσ result≤ printeΣ oε thσ screeε fo≥ lo≈ bytσ anΣá higΦ ì
  1258. ááááááááábyte.
  1259.  
  1260.      3.  Run 'DDT'.
  1261.  
  1262.      4.  Enter 'F100,1FF,00' to zero 1 page of memory.
  1263.  
  1264.      5.  Usσá 'Sº commanΣ t∩ pu⌠ lo≈ bytσ froφ GOCRCGE╬ a⌠á locatioεá 100╚ ì
  1265. áááááááááanΣ higΦ bytσ a⌠ 101╚ a≤ follows.
  1266.  
  1267.                Enter 'S100'
  1268.                Response will be '100 00'
  1269.                Enter low byte value obtained from GOCRCGEN
  1270.                Response will be '101 00'
  1271.                Enter high byte value obtained from GOCRCGEN
  1272.                Response will be '102 00'
  1273.                Enter '.'
  1274.  
  1275.      6.  Enter 'G0' to warm boot.
  1276.  
  1277.      7.á Creatσ thσ ne≈ datß filσ witΦ thσ savσ commanΣ a≤ follows:
  1278.  
  1279.                'SAVE 1 CRCC.DAT'
  1280.  
  1281.  
  1282.