    1 REM  ("12008A PROM CARD DIAGNOSTIC"/) 
    2 REM  (C) COPYRIGHT HEWLETT-PACKARD CO. ALL RIGHTS RESERVED  
    3 REM  SERVICE #24397-16008 REV. 2001 
    4 PRNT 1  
    5 BUF  P(10) D(2048)  
    6 LET  P=0  
    7 GTSC @3000 P  
    8 CLCC @0 
   10 OTAC @2 P 
   20 IOCA  
   22 LET  F=0  
   30 IOA  CLA
   32 IOA  OTA 31 
   34 IOA  STC 30,C 
   38 IOA  SFS 30 
   40 IOA  JSB RTN
   42 IOA  LIB 31 
   43 IOA  CLF 30 
   44 IOA  CPA 1
   46 IOA  INA,RSS
   52 IOA  JSB RTN
   54 IOA  STA F
   56 IOA  SSA,RSS
   58 IOA  JMP 2
   62 IOA  JSB RTN
   70 IORA  
   72 SKIF F#@100000  
   74 GOTO 100  
   76 SFS  @30  
   78 GOSB 900  
   82 SKIF F=0  
   84 GOSB 905  
   86 GOSB 910  
  100 OTA  @31 @100000  
  102 LIA  @30 D  
  104 SKIF D=@100000  
  106 GOSB 915  
  108 OTA  @31 @177777  
  110 LIA  @30 D  
  112 SKIF D=@177777  
  114 GOSB 915  
  116 OTA  @31 @125252  
  118 LIA  @30 D  
  120 SKIF D=@125252  
  122 GOSB 915  
  124 OTA  @31 @152525  
  126 LIA  @30 D  
  128 SKIF D=@152525  
  130 GOSB 915  
  150 OTA  @31 0  
  152 CLF  @30  
  154 OTA  @31 @100000  
  156 SFS  @30  
  158 GOSB 920  
  300 REM  START DMA TEST 
  302 LET  P(1)=@41600,0,D(!),-2048 
  303 IBP  D(1) D(2048)  CL 
  305 LET  F=0  
  310 LET  U=1  
  320 LET  N=1  
  321 CLCC @0 
  323 SKIF F=0  
  324 GOTO 330  
  326 GOSB 540  
  328 GOTO 370  
  330 GOSB 560  
  332 GOTO 370  
  370 SFC  @22  
  380 GOSB 940  
  381 STF  0  
  390 LET  M=P(2) 
  400 LET  Q=-2048  
  410 LET  R=D(!) 
  420 IOCB  
  422 IOB  LDA R,I  
  424 IOB  CPA M  
  426 IOB  RSS  
  428 IOB  JSB RTN  
  430 IOB  ISZ M  
  432 IOB  ISZ R  
  434 IOB  ISZ Q  
  436 IOB  JMP *-7  
  438 IOB  JSB RTN  
  440 IORB  
  450 SKIF Q=0  
  460 GOSB 947  
  470 LET  P(2)=U*2048  
  480 SKIF U=<15  
  490 GOTO 532  
  500 LET  U=U+1  
  530 GOTO 320  
  532 SKIF F=0  
  534 GOTO 600  
  536 LET  F=1  
  537 LET  P(2)=0 
  538 LET  U=1  
  539 GOTO 320  
  540 REM  NON SELF CONFIGURED DMA (326)  
  542 OTAC @2 P 
  546 LET  P(2)=P(2)+@100000  
  547 OTA  @31 P(2) 
  548 OTA  @21 P(1) 
  549 OTA  @22 P(3) 
  550 OTA  @23 P(4) 
  551 STCC @21  
  552 LET  C=0  
  553 SFC  @21  
  554 RTN   
  556 LET  C=C+1  
  557 SKIF C>2000 
  558 GOTO 553  
  559 GOSB 999  
  560 REM  SELF CONFIGURED DMA (330)  
  561 OTAC @2 P 
  562 LET  P(2)=P(2)+@100000  
  566 OTA  @20 P(!) 
  568 STCC @20  
  570 LET  C=0  
  572 SFC  @20  
  576 RTN   
  578 LET  C=C+1  
  580 SKIF C>2000 
  582 GOTO 572  
  584 GOSB 1002 
  600 REM  IRQ TEST 
  602 IOCA  
  604 LET  P(1)=@41600,@77770,D(!),-2048  
  605 CLCC 0  
  606 OTAC 2 P  
  608 OTAC @20 P(!) 
  610 IOA  CLA
  611 IOA  CLF 30 
  612 IOA  STC 20,C 
  614 IOA  INA,SZA,RSS
  616 IOA  JMP *+10 
  618 IOA  SFS 30 
  619 IOA  JMP *-3
  620 IOA  CLC 21,C 
  621 IOA  CLC 0,C
  622 IOA  STA T
  623 IOA  CLF 2
  626 IOA  LIA 23 
  628 IOA  STA C
  630 IOA  JSB RTN
  632 IOA  STA T
  634 IOA  JSB RTN
  636 IORA  
  638 SKIF T#0  
  640 GOSB 1002 
  641 SKIF C#0  
  642 GOSB 1020 
  643 SFC  @30  
  644 GOSB 1025 
  645 LIA  @31 A  
  646 SKIF A=0  
  647 GOSB 1025 
  649 GOTO 7  
  650 PRGM A PROM ACCESS PROGRAM
  652 LET  P=0  
  654 GTSC @3000 P  
  656 OTAC 2 P  
  658 PRNT 930  
  660 INPT @A $B @E 
  670 LET  S=A  
  680 SKIF A=>0 
  682 GOTO 936  
  684 SKIF A=<32767 
  690 GOTO 936  
  700 SKIF B#@15  
  710 LET  E=S  
  712 SKIF E=>0 
  714 GOTO 936  
  716 SKIF E=<32767 
  718 GOTO 936  
  720 SKIF A=<E 
  722 GOTO 650  
  725 PRNT 932  
  730 OTA  @31 A  
  740 STC  @30  
  750 LIA  @30 O  
  760 PRNT 944 S O  
  770 SKIF S#E  
  780 GOTO 810  
  790 LET  S=S+1  
  800 GOTO 740  
  810 PRNT 934  
  820 YES? 658  
  830 GOTO 1999 
  900 FMT  ("ERROR - FLAG NOT SET BY DEVICE COMMAND"/)
  901 PRNT 900  
  902 STOP  
  905 FMT  ("ERROR - ADDRESS READ BACK"/) 
  906 PRNT 905  
  907 STOP  
  910 FMT  ("ERROR - FIRST DEVICE COMMAND INC. ADDRESS REG."/)
  911 PRNT 910  
  912 STOP  
  915 FMT  ("ERROR - ADDRESS TO DATA LOOP BACK"/) 
  916 PRNT 915  
  917 STOP  
  920 FMT  ("ERROR - FLAG NOT SET BY IRQ"/) 
  921 PRNT 920  
  922 STOP  
  930 FMT  ("INPUT STARTING (,ENDING) ADDRESS, IN OCTAL   ")  
  932 FMT  ("ADDRESS"22X"DATA"/)  
  934 FMT  ("WOULD YOU LIKE TO CONTINUE?? ")
  936 PRNT 938  
  938 FMT  (/"YOU HAVE PASSED THE LIMITS OF PROM DATA."/) 
  939 GOTO 650  
  940 PRNT 941  
  941 FMT  ("ERROR - PARITY ERROR IN DMA TRANSFER."/) 
  942 STOP  
  944 FMT  ("("K6")",20X,K6/) 
  947 PRNT 948  
  948 FMT  ("ERROR - DATA DOES NOT EQUAL ADDRESS."/)  
  949 LET  M=M+1  
  950 LET  K=R-D(!)+1 
  951 PRNT 952 M D(K) 
  952 FMT  ("ADDRESS IS  "K6,10X,"DATA IS  "K6/)  
  953 STOP  
  999 PRNT 1000 
 1000 FMT  ("ERROR - NON SELF-CONFIGURED DMA DID NOT START."/)  
 1001 STOP  
 1002 PRNT 1010 
 1010 FMT  ("ERROR - SELF-CONFIGURED DMA DID NOT START."/)  
 1011 STOP  
 1020 PRNT 1022 
 1022 FMT  ("ERROR - 'IRQ' DID NOT INTERRUPT DMA"/) 
 1024 STOP  
 1025 PRNT 1026 
 1026 FMT  ("ERROR - 'CRS' DID NOT CLEAR ADDR. REG."/)
 1027 STOP  
 1999 REM  END  
                                                                                                                                            