    1 FMT  ("12002A/B XL MEMORY DIAGNOSTIC"/) 
    2 REM  (C) HEWLETT-PACKARD CO.
    3 REM  SERVICE #24397-16004 REV. 2040 
    4 PRNT 1  
    5 CLCC 0  
    6 LET  I=0  
    7 BUF  D(1024) E(1024) X(14336) I(56) 
   10 IOCA  
   12 IOA  LDA #0 
   14 IOA  STA #1 
   16 IOA  CMA
   18 IOA  STA #2 
   20 IOA  LDB #1 
   22 IOA  XST
   24 IOA  DEF #1 
   26 IOA  CPA #1 
   27 IOA  JMP *+2
   28 IOA  JSB RTN
   30 IOA  CPB #2 
   32 IOA  JMP *+2
   34 IOA  JSB RTN
   36 IOA  LDA .36
   38 IOA  STA A,I
   40 IOA  STA B,I
   41 IOA  CMA
   42 IOA  STA C,I
   44 IOA  STC 11 
   46 IOA  JMP *+1
   48 IOA  LDB B
   49 IOA  CMA
   50 IOA  STA 1,I
   52 IOA  CLC 11 
   54 IOA  JMP *+1
   56 IOA  CPA C,I
   58 IOA  JSB RTN
   60 IOA  STA E
   62 IOA  JSB RTN
   64 LET  #0=@125252 
   66 LET  A=@137 
   68 LET  B=@77777 
   70 LET  C=@73777 
   72 LET  E=0  
   74 IORA  
   76 SKIF E#0  
   78 GOTO 100  
   80 SKIF #510#-1  
   82 GOTO 100  
   90 PRNT 99 
   92 GOTO 9999 
   99 FMT  ("NOT MAPPED DIAG. NOT EXECUTED"/) 
  100 LET  Z=X(!) 
  101 GOSB 6500 
  102 GOSB 7000 
  104 GOSB 7500 
  114 LET  S=@40  
  116 GOSB 800  
  120 GOSB 1000 
  122 GOSB 200  
  124 GOSB 2000 
  126 GOSB 200  
  128 GOSB 3000 
  130 GOSB 200  
  132 GOSB 4000 
  134 GOSB 200  
  136 GOSB 5000 
  138 GOSB 200  
  142 GOSB 6000 
  144 GOSB 200  
  146 GOSB 8000 
  166 GOTO 9990 
  200 REM   
  201 LET  P=0  
  202 LET  N=S  
  203 PRNT 290  
  204 GOSB 900  
  205 PRNT 292 N  
  206 STC  @11  
  208 LET  E=0  
  209 LET  #400=0 
  210 IORA  
  212 SKIF E#0  
  214 GOSB 9000 
  215 LET  N=N+@20  
  218 SKIF N=>M 
  220 GOTO 204  
  222 PRNT  
  223 CLC  @11  
  224 RTN   
  290 FMT  ("PAGES ") 
  292 FMT  (K3X)
  294 FMT  (/6X)
  400 PRGM A CONTROLLED TEST
  401 BUF  D(1024) E(1024) X(14336) I(56) 
  402 LET  Z=X(!) 
  403 PRNT 404  
  404 FMT  ("TEST NO.? ") 
  406 INPT #500 
  407 SKIF #500#-1  
  408 GOTO 9999 
  409 SKIF #500<10  
  410 GOTO 665  
  411 SKIF #500=>0  
  412 GOTO 665  
  413 SKIF #500#0 
  414 GOTO 665  
  415 GOSB 800  
  416 SKIF #500#1 
  418 GOTO 500  
  419 SKIF #500#2 
  420 GOTO 510  
  421 SKIF #500#3 
  422 GOTO 520  
  424 SKIF #500#4 
  426 GOTO 530  
  428 SKIF #500#5 
  430 GOTO 540  
  432 SKIF #500#6 
  434 GOTO 550  
  436 SKIF #500#7 
  438 GOTO 560  
  440 SKIF #500#8 
  442 GOTO 570  
  444 SKIF #500#9 
  446 GOTO 580  
  449 STOP  
  500 GOSB 600  
  501 GOSB 7000 
  502 GOSB 640  
  503 GOTO 501  
  504 GOTO 402  
  510 GOSB 600  
  511 GOSB 7500 
  512 GOSB 640  
  513 GOTO 511  
  514 GOTO 402  
  520 GOSB 650  
  521 GOSB 1000 
  522 GOSB 200  
  523 GOSB 640  
  524 GOTO 521  
  525 GOTO 402  
  530 GOSB 650  
  531 GOSB 2000 
  532 GOSB 200  
  533 GOSB 640  
  534 GOTO 531  
  535 GOTO 402  
  540 GOSB 650  
  541 GOSB 3000 
  542 GOSB 200  
  543 GOSB 640  
  544 GOTO 541  
  545 GOTO 402  
  550 GOSB 650  
  551 GOSB 4000 
  552 GOSB 200  
  553 GOSB 640  
  554 GOTO 551  
  555 GOTO 402  
  560 GOSB 650  
  561 GOSB 5000 
  562 GOSB 200  
  563 GOSB 640  
  564 GOTO 561  
  565 GOTO 402  
  570 GOSB 650  
  571 GOSB 6000 
  572 GOSB 200  
  573 GOSB 640  
  574 GOTO 571  
  575 GOTO 402  
  580 GOSB 620  
  581 GOSB 600  
  582 GOSB 8014 
  583 GOSB 640  
  584 GOTO 582  
  585 GOTO 402  
  600 PRNT 691  
  602 INPT @M 
  604 SKIF M>@40  
  606 GOTO 600  
  608 SKIF M=<@377  
  610 GOTO 600  
  611 LET  M=M+1  
  612 PRNT 698  
  613 INPT I  
  614 SKIF I#0  
  616 LET  I=1  
  618 RTN   
  620 PRNT 692  
  621 INPT @X 
  622 SKIF X>@17  
  623 GOTO 620  
  624 SKIF X<@100 
  625 GOTO 620  
  626 LET  I(1)=X 
  627 LET  I(2)=0 
  628 LET  X=1  
  630 RTN   
  640 SKIF I#0  
  641 RTN  1  
  642 LET  I=I-1  
  643 SKIF I#0  
  644 RTN  1  
  645 RTN   
  650 PRNT 690  
  651 INPT @S 
  652 SKIF S=>@40 
  653 GOTO 650  
  654 PRNT 691  
  655 INPT @M 
  656 SKIF M=<@377  
  657 GOTO 654  
  658 SKIF S<M  
  659 GOTO 650  
  660 LET  M=M+1  
  661 GOTO 612  
  665 PRNT 696 0  
  666 PRNT 695  
  667 PRNT 696 1  
  668 PRNT 7000 
  669 PRNT 696 2  
  670 PRNT 7500 
  671 PRNT 696 3  
  672 PRNT 1000 
  673 PRNT 696 4  
  674 PRNT 2000 
  675 PRNT 696 5  
  676 PRNT 3000 
  677 PRNT 696 6  
  678 PRNT 4000 
  679 PRNT 696 7  
  680 PRNT 5000 
  681 PRNT 696 8  
  682 PRNT 6000 
  683 PRNT 696 9  
  684 PRNT 8000 
  685 PRNT 697  
  689 GOTO 402  
  690 FMT  ("STARTING PAGE NO.? ")
  691 FMT  ("HIGHEST PAGE NO.? ") 
  692 FMT  ("SELECT CODE? ")  
  695 FMT  ("TEST SELECTION"/)
  696 FMT  ("TEST NO. "I1"= ")
  697 FMT  ("TEST NO.-1= EXIT"/)  
  698 FMT  ("LOOP COUNT? ") 
  800 REM   
  801 IOCB  
  802 IOB  STA #200 
  803 IOB  STB #201 
  804 IOB  JSB IOD
  806 IOB  LIA 5
  808 IOB  STA #400 
  809 IOB  STC 5
  810 IOB  LDA .140 
  811 IOB  LDB 0,I
  812 IOB  SZB
  813 IOB  STC 11 
  814 IOB  JMP *+1
  815 IOB  LDA #200 
  816 IOB  LDB #201 
  817 IOB  JSB RTN
  818 INT  5 B  
  820 REM  ERROR
  822 IOCD  
  824 IOD  STA #404 
  826 IOD  STB #403 
  828 IOD  LDA P
  830 IOD  SZA
  832 IOD  JMP *+4
  834 IOD  ASR 10 
  836 IOD  LDA 1
  838 IOD  IOR .100 
  840 IOD  STA #401 
  842 IOD  LDA 0,I
  844 IOD  STA #402 
  846 IOD  CCA
  848 IOD  STA E
  850 IOD  JSB RTN
  852 RTN   
  900 LET  X=@120 
  902 LET  C=N  
  904 MAP  X C  
  906 LET  C=C+1  
  907 SKIF C<M  
  908 LET  C=X.@37  
  909 LET  X=X+1  
  910 SKIF X>@137 
  912 GOTO 904  
  914 RTN   
 1000 FMT  ("MEMORY ADDRESS TEST"/) 
 1002 IOCA  
 1004 IOA  CCA
 1006 IOA  STA #0 
 1008 IOA  LDB Z
 1010 IOA  LDA 1
 1012 IOA  XOR #0 
 1014 IOA  STA #405 
 1016 IOA  STA 1,I
 1018 IOA  LDA 1,I
 1020 IOA  CPA #405 
 1022 IOA  RSS
 1024 IOA  JSB IOD
 1026 IOA  ISZ E
 1028 IOA  INB,RSS
 1030 IOA  JSB RTN
 1032 IOA  SSB,RSS
 1034 IOA  JMP *-12 
 1035 IOA  JSB CFS
 1036 IOA  JSB STP
 1037 IOA  LDB Z
 1038 IOA  LDA 1
 1040 IOA  XOR #0 
 1042 IOA  STA #405 
 1044 IOA  LDA 1,I
 1046 IOA  CPA #405 
 1048 IOA  JMP *+2
 1050 IOA  JSB IOD
 1052 IOA  ISZ E
 1054 IOA  INB,RSS
 1056 IOA  JSB RTN
 1058 IOA  SSB,RSS
 1060 IOA  JMP *-11 
 1062 IOA  ISZ #0 
 1064 IOA  JSB RTN
 1065 IOA  JSB CFS
 1066 IOA  JSB STP
 1067 IOA  CLA
 1068 IOA  STA E
 1070 IOA  JMP 2
 1090 PRNT 1000 
 1092 RTN   
 2000 FMT  ("MEMORY PATTERN TEST"/) 
 2001 IOCA  
 2002 IOA  CCA
 2003 IOA  STA #405 
 2004 IOA  LDB Z
 2006 IOA  STA 1,I
 2008 IOA  INB
 2010 IOA  SSB,RSS
 2012 IOA  JMP *-3
 2014 IOA  JSB CFS
 2015 IOA  JSB STP
 2016 IOA  LDB Z
 2017 IOA  LDA 1,I
 2018 IOA  CPA #405 
 2020 IOA  RSS
 2022 IOA  JSB IOD
 2023 IOA  ISZ E
 2024 IOA  INB,RSS
 2025 IOA  JSB RTN
 2026 IOA  SSB,RSS
 2030 IOA  JMP *-8
 2032 IOA  CPA #3 
 2034 IOA  JSB RTN
 2036 IOA  CPA #2 
 2038 IOA  LDA #3 
 2040 IOA  CPA #1 
 2042 IOA  LDA #2 
 2044 IOA  CPA #0 
 2046 IOA  LDA #1 
 2048 IOA  SZA,RSS
 2050 IOA  LDA #0 
 2052 IOA  CPA .-1
 2054 IOA  CLA
 2056 IOA  CLB
 2058 IOA  STB E
 2060 IOA  JSB CFS
 2062 IOA  JSB STP
 2064 IOA  JMP 1
 2100 LET  #0=@52525  
 2102 LET  #1=@125252 
 2104 LET  #2=@25000  
 2106 LET  #3=@152777 
 2110 PRNT 2000 
 2112 RTN   
 3000 FMT  ("WORST CASE PATTERN TEST"/) 
 3001 IOCA  
 3012 IOA  LDA Z
 3014 IOA  LDB Z
 3016 IOA  STA #4 
 3018 IOA  AND .140 
 3020 IOA  CPA .140 
 3022 IOA  CLA
 3024 IOA  SZA
 3026 IOA  CCA
 3028 IOA  STA 1,I
 3030 IOA  LDA #4 
 3032 IOA  INA
 3034 IOA  INB
 3036 IOA  SSB,RSS
 3038 IOA  JMP 2
 3039 IOA  JSB CFS
 3040 IOA  JSB STP
 3042 IOA  LDA Z
 3044 IOA  LDB Z
 3046 IOA  STA #4 
 3048 IOA  AND .140 
 3050 IOA  CPA .140 
 3052 IOA  CLA
 3054 IOA  SZA
 3055 IOA  CCA
 3056 IOA  STA #405 
 3057 IOA  LDA 1,I
 3058 IOA  CPA #405 
 3060 IOA  RSS
 3062 IOA  JSB IOD
 3064 IOA  CLA
 3066 IOA  STA 1,I
 3068 IOA  LDA #4 
 3070 IOA  INA
 3071 IOA  ISZ E
 3072 IOA  INB,RSS
 3073 IOA  JSB RTN
 3074 IOA  SSB,RSS
 3076 IOA  JMP *-19 
 3078 IOA  JSB CFS
 3080 IOA  JSB STP
 3100 PRNT 3000 
 3110 RTN   
 4000 FMT  ("ADDRESS PARITY TEST"/) 
 4001 IOCA  
 4002 IOA  CLE
 4004 IOA  LDB Z
 4006 IOA  LDA 1
 4008 IOA  RBL,ERB
 4010 IOA  SLA,ARS
 4012 IOA  CME
 4014 IOA  SZA
 4016 IOA  JMP *-3
 4018 IOA  SEZ
 4020 IOA  CCA,CLE
 4022 IOA  ELB,RBR
 4024 IOA  STA 1,I
 4026 IOA  CPB #0 
 4028 LET  #0=@77777  
 4030 IOA  JMP *+3
 4032 IOA  INB
 4034 IOA  JMP 2
 4035 IOA  JSB CFS
 4036 IOA  JSB STP
 4037 IOA  LDB Z
 4038 IOA  LDA 1
 4040 IOA  RBL,ERB
 4042 IOA  SLA,ARS
 4044 IOA  CME
 4046 IOA  SZA
 4048 IOA  JMP *-3
 4050 IOA  SEZ
 4052 IOA  CCA,CLE
 4053 IOA  ELB,RBR
 4054 IOA  STA #405 
 4055 IOA  LDA 1,I
 4056 IOA  CPA #405 
 4058 IOA  JMP *+2
 4059 IOA  JSB IOB
 4060 IOA  ISZ E
 4061 IOA  RSS
 4062 IOA  JSB RTN
 4063 IOA  CPB #0 
 4064 IOA  JMP *+3
 4066 IOA  INB
 4068 IOA  JMP *-20 
 4070 IOA  SEZ,CME
 4072 IOA  JSB RTN
 4074 IOA  CLA
 4076 IOA  STA E
 4078 IOA  JSB CFS
 4080 IOA  JSB STP
 4082 IOA  JMP 1
 4100 PRNT 4000 
 4110 RTN   
 5000 FMT  ("DISTURBANCE TEST"/)
 5001 IOCA  
 5002 IOA  CLA
 5004 IOA  STA #5 
 5006 IOA  CLE
 5008 IOA  CLF 1
 5010 IOA  LDB Z
 5012 IOA  JSB IOC
 5014 IOA  STA 1,I
 5016 IOA  LDA 1
 5017 IOA  IOR .100000
 5018 IOA  CMA,SZA,RSS
 5019 IOA  JMP *+3
 5020 IOA  INB
 5022 IOA  JMP *-7
 5024 IOA  LDB Z
 5025 IOA  JSB IOC
 5026 IOA  STA #405 
 5027 IOA  LDA 1,I
 5028 IOA  CPA #405 
 5030 IOA  RSS
 5031 IOA  JSB IOD
 5032 IOA  ISZ E
 5033 IOA  CLA,INA,RSS
 5034 IOA  JSB RTN
 5035 IOA  STA E
 5036 IOA  LDA 1
 5037 IOA  IOR .100000
 5038 IOA  CMA,SZA,RSS
 5039 IOA  JMP *+3
 5040 IOA  INB
 5041 IOA  JMP *-15 
 5042 IOA  JSB CFS
 5043 IOA  JSB STP
 5044 IOA  SFC 1
 5045 IOA  JMP *+3
 5046 IOA  STF 1
 5048 IOA  JMP 4
 5050 IOA  SEZ
 5052 IOA  JMP *+3
 5054 IOA  CCE
 5056 IOA  JMP 3
 5058 IOA  LDA #5 
 5060 IOA  SZA
 5062 IOA  JSB RTN
 5064 IOA  CCA
 5066 IOA  JMP 1
 5068 IOCC  
 5070 IOC  CLA
 5072 IOC  SEZ
 5074 IOC  CMA
 5076 IOC  SLB
 5078 IOC  CMA
 5080 IOC  BLF,BLF
 5082 IOC  SFS 1
 5084 IOC  JMP *+4
 5086 IOC  SSB
 5088 IOC  CLA
 5090 IOC  JMP *+3
 5092 IOC  SSB,RSS
 5094 IOC  CLA
 5096 IOC  BLF,BLF
 5098 IOC  IOR #5 
 5100 IOC  JSB RTN
 5200 PRNT 5000 
 5210 RTN   
 6000 FMT  ("PARITY GENERATOR TEST"/) 
 6002 IOCA  
 6003 IOA  CLA
 6004 IOA  STA #0 
 6005 IOA  LDB Z
 6012 IOA  STA #405 
 6014 IOA  CLC 5
 6016 IOA  STF 5
 6018 IOA  STA 1,I
 6020 IOA  CLF 5
 6022 IOA  STC 5
 6024 IOA  LDA 1,I
 6026 IOA  CPA #405 
 6028 IOA  JMP *+5
 6030 IOA  JSB IOD
 6032 IOA  CLA
 6034 IOA  STA E
 6036 IOA  HLT 0
 6038 IOA  ISZ E
 6040 IOA  JMP *-5
 6042 IOA  CPB #400 
 6044 IOA  RSS
 6046 IOA  JMP *-8
 6047 IOA  STA 1,I
 6048 IOA  CPA .-1
 6049 IOA  JMP *+10 
 6050 IOA  CLE,ELA
 6051 IOA  IOR #0 
 6052 IOA  CPA #0 
 6053 IOA  JMP *+2
 6054 IOA  JMP 2
 6055 IOA  ERA
 6056 IOA  STA #0 
 6057 IOA  INA
 6058 IOA  JMP 2
 6059 IOA  STA E
 6060 IOA  CLC 0
 6061 IOA  JSB RTN
 6062 PRNT 6000 
 6063 RTN   
 6500 REM  XLD & XST
 6502 IOCA  
 6504 IOA  LDA A
 6506 IOA  STA A,I
 6508 IOA  LDA B
 6510 IOA  STA B,I
 6512 IOA  LDA C
 6514 IOA  STA C,I
 6516 IOA  LDA D
 6518 IOA  STA D,I
 6520 IOA  LDB B
 6522 IOA  XLD
 6524 IOA  DEF 1,I
 6526 IOA  CPA A
 6528 IOA  RSS
 6530 IOA  JSB RTN
 6532 IOA  CPB D
 6534 IOA  RSS
 6536 IOA  JSB RTN
 6538 IOA  CLA
 6540 IOA  LDB B
 6542 IOA  XST
 6552 IOA  DEF 1,I
 6554 IOA  CPA A,I
 6556 IOA  RSS
 6558 IOA  JSB RTN
 6560 IOA  LDA C
 6562 IOA  CPA C,I
 6564 IOA  RSS
 6566 IOA  JSB RTN
 6568 IOA  DLD
 6570 IOA  DEF B,I
 6572 IOA  CPA B
 6574 IOA  RSS
 6576 IOA  JSB RTN
 6578 IOA  CPB D
 6580 IOA  RSS
 6582 IOA  JSB RTN
 6584 IOA  ISZ E
 6585 LET  A=@77776 
 6586 LET  B=@75776 
 6587 LET  C=@77777 
 6588 LET  D=@75777 
 6589 MAP  @136 @37 
 6590 MAP  @137 @37 
 6591 LET  E=0  
 6592 IORA  
 6593 SKIF E=0  
 6594 GOTO 6600 
 6595 PRNT 6599 
 6596 LET  L=@26*256+@40  
 6597 STOP L  
 6599 FMT  (/"ERROR - XST, XLD FAILED"//) 
 6600 REM   
 6622 IOCA  
 6624 LET  P=@137 
 6630 IOA  LDA .377 
 6632 IOA  STA M
 6634 IOA  STA P,I
 6638 IOA  LDA #0 
 6639 LET  #0=@125252 
 6640 IOA  LDB #1 
 6641 LET  #1=@77777  
 6642 IOA  XST
 6644 IOA  DEF 1,I
 6646 IOA  XLD
 6647 IOA  DEF 1,I
 6648 IOA  LDB #400 
 6649 IOA  SZB
 6650 IOA  JSB RTN
 6651 IOA  CPA #0 
 6652 IOA  JSB RTN
 6653 IOA  INA,SZA
 6654 IOA  JSB RTN
 6655 IOA  CCA
 6656 IOA  ADA M
 6658 IOA  STA M
 6660 IOA  CPA .37
 6662 IOA  JSB RTN
 6664 IOA  JMP 2
 6666 GOSB 800  
 6668 LET  #400=0 
 6670 IORA  
 6672 CLC  0  
 6674 LET  M=M+1  
 6676 PRNT 6680 M 
 6680 FMT  ("TOTAL MEMORY = "I3"K WORDS"/)
 6699 RTN   
 7000 FMT  ("XST, XLD & MAP RAM TEST"/) 
 7001 PRNT 7000 
 7100 REM  MAP RAM TEST 
 7101 IOCA  
 7102 IOA  LDA .30
 7104 IOA  STA P,I
 7106 IOA  LDB A
 7107 IOA  XST
 7108 IOA  DEF 1,I
 7113 IOA  LDA P,I
 7114 IOA  INA
 7115 IOA  CPA M
 7116 IOA  JMP *+2
 7118 IOA  JMP *-8
 7120 IOA  LDA .30
 7122 IOA  STA P,I
 7124 IOA  LDB A
 7125 IOA  STA #405 
 7126 IOA  XLD
 7128 IOA  DEF 1,I
 7130 IOA  CPA P,I
 7132 IOA  JMP *+2
 7134 IOA  JSB IOD
 7135 IOA  LDA P,I
 7136 IOA  INA
 7137 IOA  LDB A
 7138 IOA  STB #403 
 7139 IOA  ISZ E
 7140 IOA  CPA M
 7142 IOA  JMP *+2
 7144 IOA  JMP *-15 
 7146 IOA  LDA P
 7148 IOA  AND .77
 7150 IOA  STA P,I
 7152 GOSB 800  
 7162 LET  P=@137 
 7164 LET  A=@77776 
 7166 LET  E=0  
 7167 LET  #400=0 
 7168 IORA  
 7170 SKIF E#0  
 7172 GOSB 9000 
 7174 LET  P=P-1  
 7176 LET  A=A-1024 
 7178 SKIF P<@100 
 7180 GOTO 7166 
 7200 REM   
 7202 IOCA  
 7220 IOA  LDA .100 
 7222 IOA  STA P
 7224 IOA  LDA .1777
 7226 IOA  STA A
 7228 IOA  LDA P
 7230 IOA  AND .77
 7232 IOA  IOR .40
 7234 IOA  STA P,I
 7236 IOA  LDB A
 7238 IOA  XST
 7240 IOA  DEF 1,I
 7242 IOA  ISZ P
 7244 IOA  LDA A
 7246 IOA  ADA .2000
 7248 IOA  SSA,RSS
 7250 IOA  JMP *-12 
 7252 IOA  LDA .100 
 7254 IOA  STA P
 7256 IOA  LDA .1777
 7257 IOA  STA A
 7258 IOA  LDB P,I
 7259 IOA  STB #405 
 7260 IOA  LDB A
 7262 IOA  XLD
 7264 IOA  DEF 1,I
 7266 IOA  CPA P,I
 7268 IOA  JMP *+2
 7270 IOA  JSB IOD
 7271 IOA  ISZ P
 7272 IOA  LDA A
 7273 IOA  STA #403 
 7274 IOA  ADA .2000
 7275 IOA  ISZ E
 7276 IOA  SSA
 7277 IOA  JMP *+2
 7278 IOA  JMP *-16 
 7280 IOA  LDB .100 
 7282 IOA  CLA
 7284 IOA  STA 1,I
 7286 IOA  INB
 7288 IOA  INA
 7290 IOA  CPB .140 
 7292 IOA  JSB RTN
 7293 IOA  JMP *-5
 7294 LET  E=0  
 7295 LET  #400=0 
 7296 IORA  
 7297 SKIF E#0  
 7298 GOSB 9000 
 7300 REM   
 7304 IOCC  
 7306 IOC  ISZ #0 
 7310 INT  7 C  
 7320 IOCA  
 7322 IOA  CLC 0
 7324 IOA  CLA
 7325 IOA  STA #0 
 7326 IOA  OTA 7
 7328 IOA  LDA #1 
 7330 LET  #1=@125252 
 7332 IOA  STA A,I
 7334 IOA  LDB A
 7336 IOA  CMA
 7338 IOA  STF 0
 7340 IOA  STC 7
 7342 IOA  XST
 7344 IOA  DEF 1,I
 7346 IOA  LIA 2
 7347 IOA  CLF 0
 7348 IOA  LDA #0 
 7350 IOA  SZA,RSS
 7352 IOA  JSB RTN
 7354 IOA  LDA A,I
 7356 IOA  CPA #1 
 7358 IOA  ISZ E
 7400 LET  E=0  
 7402 LET  P=@37  
 7404 MAP  @137 @37 
 7407 LET  A=@77776 
 7408 IORA  
 7410 SKIF E=0  
 7412 RTN   
 7414 PRNT 7490 
 7415 LET  L=@26*256+@41  
 7420 STOP L  
 7490 FMT  (/"ERROR - XST WITH MPT ON FAILED"//)
 7500 REM  ("MAP ENABLE TEST"/) 
 7502 PRNT 7500 
 7504 IOCA  
 7506 IOA  LDA #1 
 7508 IOA  CLB
 7510 IOA  STB A,I
 7512 IOA  STB B,I
 7514 IOA  STA A,I
 7516 IOA  CPA B,I
 7518 IOA  JSB RTN
 7520 IOA  STB A,I
 7522 IOA  STA B,I
 7524 IOA  CPA A,I
 7526 IOA  JSB RTN
 7528 IOA  STC 11 
 7530 IOA  STA B,I
 7532 IOA  CPA A,I
 7534 IOA  JSB RTN
 7536 IOA  STB B,I
 7537 IOA  STA A,I
 7538 IOA  CPB A,I
 7540 IOA  JSB RTN
 7541 IOA  STB A,I
 7542 IOA  JMP *+1
 7544 IOA  STA B,I
 7546 IOA  CPA A,I
 7548 IOA  RSS
 7550 IOA  JSB RTN
 7552 IOA  CLC 11 
 7554 IOA  STB B,I
 7556 IOA  CPB A,I
 7557 IOA  JMP *+2
 7558 IOA  JSB RTN
 7560 IOA  STA B,I
 7562 IOA  CPA A,I
 7564 IOA  JSB RTN
 7566 IOA  STC 11 
 7568 IOA  JMP *+1
 7570 IOA  CLC 13 
 7572 IOA  CPB B,I
 7574 IOA  JSB RTN
 7576 IOA  STC 13 
 7578 IOA  CPB B,I
 7580 IOA  RSS
 7582 IOA  JSB RTN
 7583 IOA  CCA
 7584 IOA  XOR .2 
 7585 IOA  OTA 0
 7586 IOA  STF 0
 7587 IOA  STC 6,C
 7588 IOA  CLA
 7589 IOA  INA,SZA
 7590 IOA  SFC 6
 7591 IOA  JMP *+2
 7592 IOA  JMP *-3
 7593 IOA  CPB B,I
 7594 IOA  JSB RTN
 7595 IOA  CLC 0
 7596 IOA  CLA
 7597 IOA  OTA 0
 7598 IOA  ISZ E
 7600 LET  #1=@125252 
 7602 LET  A=@77776 
 7604 LET  B=@75776 
 7606 MAP  @136 @37 
 7608 MAP  @137 @37 
 7610 LET  E=0  
 7612 IOCC  
 7613 INT  6 0  
 7614 INT  6 C  
 7616 IORA  
 7617 INT  6 0  
 7618 SKIF E=0  
 7620 RTN   
 7621 PRNT 7622 
 7622 FMT  (/"ERROR - MAP ENABLE FAILED"//) 
 7623 LET  L=@26*256+@42  
 7624 STOP L  
 8000 FMT  ("DMA AND ADDRESS EXTENSION TEST"/)
 8002 CLC  0  
 8004 IBP  I(1) I(56)  CL 
 8005 LET  X=1  
 8006 OTA  2 1  
 8007 LET  D=0  
 8008 LIA  2 D  
 8009 LET  I(X)=D.@77 
 8010 LET  X=X+1  
 8011 SKIF D=0  
 8012 GOTO 8007 
 8013 OTA  2 0  
 8014 PRNT 8000 
 8016 PRNT 8019 
 8019 FMT  ("    LOGICAL - PHYSICAL"/)
 8020 IOCA  
 8022 IOA  LDA .140 
 8024 IOA  LDB .40
 8026 IOA  STB 0,I
 8028 IOA  STC 20,C 
 8030 IOA  LIA 20 
 8032 IOA  STA #0 
 8034 IOA  LIA 21 
 8036 IOA  STA #1 
 8038 IOA  LIA 22 
 8040 IOA  STA #2 
 8042 IOA  LIA 23 
 8044 IOA  STA #3 
 8046 IOA  CLC 0
 8048 IOA  LDA .140 
 8050 IOA  CLB
 8052 IOA  STB 0,I
 8054 IOA  JSB RTN
 8070 MAP  @137 @77 
 8075 STC  @11  
 8080 IBP  D(1) D(1024)  CL 
 8085 MAP  @137 @76 
 8090 IBP  D(1) D(1024)  CL 
 8092 CLC  @11  
 8100 MAP  @141 @40 
 8110 MAP  @142 @41 
 8115 LET  X=1  
 8120 OTAC 2 I(X) 
 8130 OTA  2 7  
 8135 LET  D(1)=2,D(!),-1 
 8140 OTA  @20 D(!) 
 8145 OTA  @21 1  
 8150 IORA  
 8180 SKIF D(!)=#0.@77777-3 
 8185 GOSB 9100 
 8190 SKIF #1=2 
 8195 GOSB 9100 
 8200 SKIF D(!)=#2.@77777 
 8205 GOSB 9100 
 8210 SKIF #3=-1  
 8215 GOSB 9100 
 8225 LET  X=X+1  
 8230 SKIF I(X)=0 
 8235 GOTO 8120 
 8260 MAP  @137 @77 
 8265 STC  @11  
 8270 LET  D(1)=0,@125252,-4  
 8275 MAP  @137 @76 
 8280 LET  D(1)=2,0,0 
 8282 CLC  @11  
 8285 MAP  @141 @40 
 8290 MAP  @142 @41 
 8295 LET  X=1  
 8300 OTAC 2 I(X) 
 8310 OTA  2 7  
 8315 STCC @13  
 8320 OTA  @20 E(!) 
 8325 OTA  @21 1  
 8330 IORA  
 8360 SKIF E(!)=#0.@77777-3 
 8365 GOSB 9130 
 8370 SKIF #1=2 
 8375 GOSB 9130 
 8380 SKIF #2=@125252 
 8381 GOSB 9130 
 8382 SKIF #3=-4  
 8383 GOSB 9130 
 8384 OTAC 2 I(X) 
 8390 OTA  2 7  
 8391 OTA  @20 E(!) 
 8392 OTA  @21 0  
 8393 LET  E(1)=0,0,0 
 8394 STCC @13  
 8395 IORA  
 8396 SKIF E(!)=#0.@77777-3 
 8400 GOSB 9140 
 8401 SKIF 0=#2.@77777:#1:#3  
 8402 GOSB 9140 
 8405 LET  X=X+1  
 8410 SKIF I(X)=0 
 8415 GOTO 8300 
 8420 PRNT 8425 
 8425 FMT  ("    MAP RAM DATA & INTF. LATCH"/)
 8430 LET  X=1  
 8435 LET  J=1  
 8440 LET  N=@40  
 8445 MAP  @137 N 
 8450 STC  @11  
 8455 LET  D(1)=J,N,N*-1  
 8457 CLC  @11  
 8460 LET  N=N+1  
 8465 SKIF N>M-1  
 8470 GOTO 8445 
 8475 LET  N=1  
 8480 LET  #10=J+@140 
 8485 LET  #11=N+@40  
 8495 MAP  #10 #11  
 8505 STCC @13  
 8510 OTAC 2 I(X) 
 8515 OTA  2 7  
 8520 OTA  @20 0  
 8525 OTA  @21 J  
 8530 IORA  
 8560 SKIF #0=@100003 
 8565 GOSB 9150 
 8570 SKIF #1=J 
 8575 GOSB 9150 
 8580 SKIF #2=N+@40:@100000 
 8585 GOSB 9150 
 8590 SKIF #3=N+@40*-1  
 8595 GOSB 9150 
 8600 LET  N=N+1  
 8605 SKIF M=<N+@40 
 8610 GOTO 8485 
 8615 LET  J=J+1  
 8620 SKIF J>@37  
 8625 GOTO 8440 
 8630 LET  X=X+1  
 8632 CFS   
 8635 SKIF I(X)=0 
 8640 GOTO 8435 
 8700 FMT  ("    ADDER TEST ON CONTROLLER"/)
 8701 PRNT 8700 
 8702 LET  P=@20  
 8703 OTAC 2 I(1) 
 8705 MAP  @141 P 
 8706 OTA  @20 0  
 8708 OTA  @21 @201 
 8710 OTA  @22 0  
 8712 OTA  @23 0  
 8714 OTA  2 7  
 8716 OTA  2 3  
 8717 STCC @13  
 8718 STCC @21  
 8720 LET  C=0  
 8722 SFC  @21  
 8724 GOTO 8740 
 8726 LET  C=C+1  
 8728 SKIF C>200  
 8730 GOTO 8722 
 8731 CLC  0  
 8732 PRNT 8739 I(1)  
 8734 STOP  
 8739 FMT  (/"ERROR - DMA TIMED OUT SC "K2//) 
 8740 CLC  0  
 8746 IOCA  
 8748 IOA  LDB Z
 8750 IOA  LDA D
 8752 IOA  STA #405 
 8754 IOA  STB #403 
 8755 IOA  LDA 1,I
 8756 IOA  CPA #405 
 8757 IOA  JMP *+3
 8758 IOA  STA #404 
 8759 IOA  JMP *+7
 8760 IOA  ADA .100 
 8761 IOA  ADB .100 
 8762 IOA  SSB,RSS
 8765 IOA  JMP *-10 
 8766 IOA  CLA
 8767 IOA  CLB
 8768 IOA  STB E
 8770 IOA  STA D
 8773 LET  Q=0  
 8774 LET  N=Q*@20+P  
 8775 LET  D=Q*@40000 
 8776 GOSB 900  
 8777 LET  E=0  
 8778 STC  @11  
 8779 IORA  
 8780 SKIF E=0  
 8781 GOSB 8800 
 8784 LET  Q=Q+1  
 8786 SKIF Q>1  
 8788 GOTO 8774 
 8794 LET  P=P+1  
 8795 SKIF P=>M-@40 
 8796 GOTO 8703 
 8799 RTN   
 8800 CLC  0  
 8802 PRNT 8890 
 8804 PRNT 9092 @141 N  
 8806 GOTO 9022 
 8890 FMT  (/"ERROR - DMA ADDER FAILED"/) 
 9000 CLC  0  
 9010 SKIF #400=0 
 9012 GOTO 9018 
 9014 PRNT 9090 
 9016 GOTO 9020 
 9018 PRNT 9091 #400  
 9020 PRNT 9092 #401 #402 
 9022 PRNT 9093 #403 #404 #405  
 9090 FMT  (/"ERROR - COMPARE"/)
 9091 FMT  (/"ERROR - PARITY ADDR. "K6/)
 9092 FMT  (6X"- MAP LOC. "K3" PAGE "K3/) 
 9093 FMT  (6X"- ADDR. "K6" ACT. "K6" EXP. "K6//) 
 9094 LET  L=#402/16  
 9095 LET  L=@26*256+L  
 9099 STOP L  
 9100 PRNT 9190 I(X)  
 9102 PRNT 9191 
 9104 GOTO 9162 
 9130 PRNT 9190 I(X)  
 9132 PRNT 9192 
 9134 GOTO 9162 
 9140 PRNT 9190 I(X)  
 9142 PRNT 9196 
 9144 GOTO 9162 
 9150 PRNT 9190 I(X)  
 9152 PRNT 9193 
 9154 PRNT 9194 #0 #1 #2 #3 
 9156 LET  K=N+@40:@100000  
 9158 LET  L=N+@40*-1 
 9160 PRNT 9195 @100003 J K L 
 9162 PRNT  
 9164 LET  L=@26*256+@43  
 9166 STOP L  
 9190 FMT  (/"ERROR - DMA SELECT CODE "K2/) 
 9191 FMT  (8X"SELF CONFIGURE NOT FROM PHYSICAL"/)
 9192 FMT  (8X"SELF CONFIGURE OVERIDE FAILED"/) 
 9193 FMT  (8X"MAPPED DMA FAILED"/) 
 9194 FMT  (8X"CARD DMA R0 "K6" R1 "K6" R2 "K6" R3 "K6/)
 9195 FMT  (8X"EXPECTED"4(4XK6)/) 
 9196 FMT  (8X"MAP TO LOC. 140 FAILED"/)
 9900 PRGM L LOOP ON DIAGNOSTIC 
 9901 CLC  0  
 9902 LET  I=1  
 9903 BUF  D(1024) E(1024) X(14336) I(56) 
 9904 GOTO 100  
 9989 FMT  ("PASS "%I6/)
 9990 SKIF I#0  
 9991 GOTO 9998 
 9992 PRNT 9989 I 
 9993 LET  I=I+1  
 9994 SKIF I=<32767 
 9995 LET  I=1  
 9996 CLC  0  
 9997 GOTO 100  
 9998 PRNT 9999 
 9999 FMT  ("DIAGNOSTIC COMPLETE"/) 
                                                                                                                                        