Running Diagnostics on the CDC 1700 Simulator
=============================================

1. Overview

        The diagnostics system (System Maintenance Monitor) is available from
bitsavers.org as bits/CDC/1700_Cyber18/20100517/SYSTEM17_SMM_DIAGS.TAP. The
simulator is able to boot this tape and has successfully run the following
diagnostics with some caveats (for more detailed information see
pdf/CDC/1700/SMM17 at bitsavers.org).

        In some cases the diagnostics fail to run correctly on the simulator
for various reasons:

        - Some tests require hardware modifications or special cabling
        - Some tests perform timing checks which are difficult to implement
          in the simulator without further documentation or access to the
          diagnostic source code
        - Some tests check for features which are not implemented in the
          simulator. E.G. The disk controllers write Checkwords (CRC) for each
          sector written but the documentation does not specify the CRC
          algorithm in sufficient detail to allow the simulator to correctly
          simulate the feature.


Partial listing from the maintenance monitor:

FF QL1 12166  04EB      Quick Look 1 (basic instruction set test)
                        Passed
FE QL2 10196  095C      Quick Look 2 (more detailed instruction set test)
                        Passed with and without protect mode enabled
01 COM 12166  0990      Comprehensive instruction set test
                        Passed
03 PTP 12166  05B8      1723/77 Paper Tape Punch Test
                        Passed (Interrupt + character mode)
04 PTR 12166  03C8      1721/77 Paper Tape Reader Test
                        Passed (Interrupt + Character mode)
05 TTY 10226  093B      1711/1712/1713 Teletype Test
                        Passed
08 DP1 12166  0EE6      1738 Disk Pack Test
                        Passed (Single/dual 854, overlapped seeks)
0A BD1 10076  08BD      1706 Buffered Data Channel Test
                        Passed (Need to use non-interrupt TTY output)
0C LP1 11056  07E7      1740/1742/93x2 Line Printer Test
                        Passed
15 MT3 09306  0A96      1732 Magnetic Tape Test
                        Passed sections 0 - 5. Section 6 fails
1C CMD 12166  07C6      4KW Command Test
                        Passed
4B PET 12166  0C14      1732-2/1732-3 Magnetic Tape Test
                        Passed in programmed I/O mode
                        Failed in DMA mode
80 DRM 11086  2702      BG504 Drum Test
                        Passed
91 RTC 10216  04DA      System 17 Real Time Clock Test
                        Passed

In addition the following tests were run but are not available on the above
tape:

7A MDC 10186  1CE9      1733-2 Multiple Drive Cartridge Disk Test
                        Fails seek timing and checkword tests


2. Running diagnostics

        Detailed information on running the System Maintenance Monitor can be
found at bitsavers.org in "pdf/cdc/1700/smm17". Here is a sample test run of
the COMmand test (test 01), a CPU instruction test, using the default settings
for running the test:

Sample test run of the COMmand test (test 01), a CPU instruction test. Note
that SMM uses a private bootstrap and we have to load that into the simulator
by hand (User input to SMM17 is marked with "<==="):

        CDC1700 simulator V4.0-0 Beta        git commit id: 9d2079df
        sim> attach mt0 SYSTEM17_SMM_DIAGS.TAP 
        sim> do -v CDC1700/smm32KMTboot
        CDC1700/smm32KMTboot-6> echo Loading SMM17 MT bootstrap (32KW)
        Loading SMM17 MT bootstrap (32KW)
        CDC1700/smm32KMTboot-7> echo

        CDC1700/smm32KMTboot-9> set cpu sstop
        CDC1700/smm32KMTboot-10> set mt0 locked
        CDC1700/smm32KMTboot-11> set dca interrupt=F
        CDC1700/smm32KMTboot-12> boot -S mt0

        PROGRAM PROTECT NOT SET PROTECTED TEST NOT RUN 

        SMM17  VERSION 4.0  CP2F
        COPYRIGHT CONTROL DATA CORP. 1974 



        BUILD TEST LIST 
        0000 /  0000?  0101 <==================== High byte is test # (COM)
                                                  Low byte is repetition count
        0000 /  0000?  


        COM001  COMMAND TEST. 
         IA = 0A00,  FC = 01 CP2F,   VERSION 4.0  

        0121 /  020D?  <========================= Return to keep defaults

        0044 /  0BB8?  <=========================


         A1    Q1    A2    Q2   
        0121  020D  0044  0BB8  

        0124  020D  0001  0A17  
        0124 /  020D?  
        Simulation stopped, P: 0837 (P 0DFE                    INQ     $FE)

If a test terminates with A1 containing xxy4 (where xx is the test # and
y is the number of register pairs to be displayed) it was successful. If it
terminates with A1 containing xxy8, the test failed and the remaining
registers indicate what and where the failure occured (format is test
dependent).


3. Scripts for running SMM17

        These scripts allow SMM17 to be run with various test features
enabled. All of the scripts assume that a bootable SMM17 tape image is
attached to mt0.

3.1 Basic SMM17 boot sequence

        echo Loading SMM17
        echo
        set cpu sstop
        set mt0 locked
        boot -S mt0

3.2 Use Buffered Data Channel #1 for tape access

        echo Loading SMM17 - Uses BDC #1
        echo
        set cpu sstop
        set mt0 locked
        set dca interrupt=F
        boot -DS mt0

3.3 Load MBS and use non-interrupt driven TTY output

        echo Loading SMM17
        echo   - MBS loaded
        echo   - Non-interrupt driven TTY output
        echo
        set cpu sstop
        set cpu sskip
        set mt0 locked
        boot -S mt0
        c
        d a 31E0
        set cpu nosskip
        set cpu nosstop
        c


4. Notes on specific diagnostic tests

        MBS (Monitor Based Subroutine package) must be loaded for tests 0F
        and 4B.

        Test 0F (BD2, 1706/1716 Data Channel Test) requires a 7-track tape
        for section 4 (relies on the controller masking the output to 6-bits).

        Test 0F (BD2, 1706/1716 Data Channel Test) gets an error 0004 with
        Q set to 001C! The problem seems to be related to returning 7-track
        status in Director Status 2 (if I disable setting IO_ST2_7TRACK
        everything works correctly for sections 2 and 4).

        Test 4A (MTX, 1731/1732 Mag Tape Test) hangs while writing to the
        TTY. The source listing (60411400C...) does not match the code
        loaded from the magtape image.

        Test 4B (PET, 1732-2/-3 Mag Tape subsystem test) can only be used if
        the mag tape controller type is set to 1732-3. The test can access
        the controller in 2 modes; programmed I/O which only works up to
        800 BPI and DMA (called DSA) which works up to 1600 BPI. In programmed
        I/O mode the tests complete successfully. In DSA mode, the test
        fails during the first read from tape (writes work successfully) with
        a timeout waiting for "end of operation". My current hypothesis is
        that the controller asserts "end of operation" when all of the data
        has been transferred to the CPU but delays generating an interrupt
        until it has processed the CRC at the end of the block. I would need
        to look at the test source listing before making any changes.

        Test 7A (MDC, 1733-2 Cartridge Disk Controller) passes most test.
        The seek timing test fails - I don't want to debug this without
        source listings. The checkword test fails since we don't store the
        checkword data in the emulated storage and it is not clear there
        is sufficient documentation to be able to construct a valid checkword
        on the fly.


5. Directory listing of the SMM17 tape (with descriptions)

BIN QL

FF QL1 12166  04E8      Quick Look 1
FE QL2 10196  095C      Quick Look 2
FC DPC 09146  0685      Disk Call-up Program
00 SMM 11046  10A3      System Maintenance Monitor
01 COM 12166  0990      Command Test
02 MY2 12166  0753      Memory Test
03 PTP 12166  05B8      1723/77 Paper Tape Punch Test
04 PTR 12166  03C8      1721/77 Paper Tape Reader Test
05 TTY 10226  093B      1711/12/13 Teletype Test
07 MT1 07046  0980      1731 Magnetic Tape Test
08 DP1 12166  0EE6      1738 Disk Pack Test
09 RPT 12166  023D      Random Protect Test
0A BD1 10076  08BD      1706 Buffered Data Channel Test
0B SC1 12166  0A2E      Satellite Coupler Test
0C LP1 11056  07E7      1740/42/93X2 Line Printer Test
0D CRP 10154  0C46      1728 Card Reader/Punch Test
0E MT2 11036  0BCA      1731 Magnetic Tape Test
0F BD2 10076  0A0B      1706/1716 Data Channel Test
10 DTB 10154  08A4      1700/8000 - 8049-A, 211 Display Test
11 DSC 04122  092F      1700 Data Set Controller Test
12 MY1 10186  0834      Memory Test
13 CR3 11056  0B46      1729-2/3 Card Reader Test
14 MEM 07046  0612      Memory Test
17 CR2 10154  0AE1      1726/405 Card Reader Test
1C CMD 12166  07C6      4K Command Test
1D DDT 07046  0BB1      1745-2 Display Test. Version 4.0
1E MOS 07046  05AF      MOS Memory Test
1F MTS 10206  053B      1731/32 Special Test
20 DS1 11056  0989      1747 DSC Test
23 LP5 10196  0F06      1742-120 Line Printer Test W/595-4 Train
27 DP3 10154  1517      1700 Disk Subsystem Test
2D UD3 08012  0971      3000 Channel Simulator Program Update
30 RX1 09246  148E      1700/FF104/955 System Test
31 LR1 09247  16C4      Unknown
32 LDR 09096  0182      Unknown
34 RX4 09166  12E9      Unknown
35 OCR 12146  1727      1735/915 OCR035 Test
36 AQM 11086  1327      DJ814A A/Q Communications Multiplexer (NUMOD) Test
3B DMP 10154  01F9      Printer/TTY Dump
3D SAS 08012  0EE6      3000 Channel Simulator Assembler
3E EDT 12166  0805      17X4 Library Editing Routine
40 DDC 11086  0B5B      1745/1746/211 Display Station Test
42 CLK 08176  0994      10126 Interval Timer - Day Clock Test
43 CTC 10216  1C90      1749 Communications Terminal Test
4A MTX 10076  11A8      1731/1732 Mag Tape Test
4B PET 12166  0C14      1732-2/1732-3 Magnetic Tape Test
4C HOR 10233  0FC9      1500 Series Remote Peripheral Controller Diagnostic
56 BC2 07155  15AC      SC17/1700 FR101 MEM/COM/IFP Test
57 UD1 01303  0774      1700 Source/6000 TVC Update
59 BC3 07155  0967      SC17/1700/FR101/FR113 Interface Test
60 KEY 04016  0D8F      Cyberdata Key Entry Station Test
61 RST 12146  0FD3      979 Reader/Sorter Test
69 PAD 11086  0CCF      Punch the 1726/405 Test Deck
6F DG4 02022  2340      1744/274 Digigraphic Test
70 GT0 10154  0623      GPGT Troubleshooting Test
71 GT1 10086  2880      GPGT DCI Test
72 GT2 07155  2842      GPGT Display Quality Test
73 GT3 10154  0C8B      GPGT Light Pen And Keyboard Test
74 GT4 12112  0A25      GPGT Communications Test
75 GT5 10154  0827      GPGT Communications Test (12 Bit Interface)
76 GT6 10154  0C87      GPGT Specification Vertification Test
78 CDD 07046  19AD      1739 Cartridge Disk Controller Test
80 DRM 11086  2702      BG504 Drum Test
81 CTR 07046  092C      FR117 Event Counter Subsystem Test
83 DIO 11096  06F3      1553/54 1544/45 Digital Input/Output Subsystem Test
84 DP5 07046  0F7C      1738 Quick Look Test
86 ACC 07155  0A81      Asynchronous Communication Controller (DJ815-A) Test
87 SCC 07155  0BCD      Synchronous Communication Controller (FJ606-A) Test
88 CPC 10216  0E5C      1725-1 Card Punch Test
89 BSC 11196  0CC3      Cyberdata Bisync Controller Test
8A HFP 07046  1CDE      1781-A Hardware Floating Point Unit Test
90 IOM 11096  0B8B      IOM Mother Unit Digital Input/Output Test
91 RTC 10216  04DA      System 17 Real Time Clock Test
92 PT1 10205  0617      1720-1 Paper Tape Punch Test
93 PT2 10205  05B1      1720-1 Paper Tape Reader Test
D0 CPY 07046  02CC      Tape To Tape Copy
F0 CPV 10216  03FB      Card Punch Verify Utility
FB REP 10216  14E2      Replace/Update 17X4 SMM Disk Library
FD INS 10216  0965      Mass Storage Maintenance System Installation Program
