Listing of file='P03D010A' on disk='vmedia/702-0079.wvd.zip'
# Sector 356, program filename = 'P03D010A'
0010 DIM W$64,X$64,Y$1
: SELECT PRINT 005
: GOSUB 2010
: PRINT "FUNCTION KEYS CONTROL THIS PROGRAM"
: PRINT "KEYS 0 THRU 4 FOR 2203 EXERCISE"
0040 PRINT "KEY 0 PAPER TAPE READ DISPLAY PATTERNS"
: PRINT "KEY 1 READ FORWARD/BACKWARD RAPIDLY"
0060 PRINT "KEY 2 READ AND COMPARE LOOP TAPE"
: PRINT "KEY 3 READ AND COMPARE LOOP TAPE (REVERSE)"
: PRINT "KEY 4 (TEST OF PAPER TAPE MICRO-CODE)"
: PRINT " USES SPECIAL PAPER TAPE"
0070 PRINT "KEY 14 BACKWARD READ PAPER TAPE"
0080 STOP "SELECT DESIRED FUNCTION"
0090 DEFFN'0
: SELECT PRINT 005
0110 DATA LOAD BT(L=00)/618,W$
: PRINT HEX(03)
: GOSUB 190
: DATA LOAD BTR(L=00)/618,W$
: PRINT HEX(03)
: GOSUB 190
: GOTO 110
0180 OR (Y$,30)
: PRINT Y$;HEX(0A08);
: RETURN
0190 PRINT W$
: PRINT "HEXADECIMAL NOTATION"
: FOR I=1TO 64
: Y$=HEX(F0)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,4)
: OR (Y$,30)
: PRINT Y$;
: NEXT I
: FOR I=1TO 64
0290 Y$=HEX(0F)
: AND (Y$,STR(W$,I,1))
: OR (Y$,30)
: IF Y$<HEX(3A)THEN 340
: ADD(Y$,07)
0340 PRINT Y$;
: NEXT I
: PRINT
: PRINT HEX(0A0A0A0A0A0A0A0A);"BINARY NOTATION"
: PRINT HEX(0C0C0C0C0C0C0C0C0C);
: SELECT PRINT 405
: FOR I=1TO 64
: Y$=HEX(80)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,1)
: GOSUB 180
: Y$=HEX(40)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,2)
: GOSUB 180
0420 Y$=HEX(20)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,3)
: GOSUB 180
: Y$=HEX(10)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,4)
: GOSUB 180
: Y$=HEX(08)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,5)
: GOSUB 180
: Y$=HEX(04)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,6)
: GOSUB 180
0460 Y$=HEX(02)
: AND (Y$,STR(W$,I,1))
: ROTATE(Y$,7)
: GOSUB 180
: Y$=HEX(01)
: AND (Y$,STR(W$,I,1))
: GOSUB 180
: PRINT HEX(090C0C0C0C0C0C0C0C);
0490 NEXT I
: SELECT PRINT 005
: RETURN
0500 DEFFN'1
: SELECT PRINT 005
: GOSUB 2010
0540 DATA LOAD BT(L=00)/618,W$
: B=B+1
: PRINT W$
: PRINT "FORWARD READS=";B
: D=D+LEN(W$)
: PRINTUSING 650,D
: DATA LOAD BTR(L=00)/618,W$
: C=C+1
: PRINT W$
: PRINT "BACKWARD READS=";C
: D=D+LEN(W$)
: PRINTUSING 650,D
: PRINT HEX(010A)
: GOTO 540
0650 %NUMBER OF CHARACTERS READ=###,###,###,###
0660 DEFFN'14
: DATA LOAD BTR(L=00)/618,W$
: RETURN
0680 DEFFN'2
: GOSUB 2010
: PRINT "READ LOOP AND COMPARE RESULTS"
: W$=" "
: DATA LOAD BT(L=00)/618,W$
: DATA LOAD BT/618,Z$
: G,B=0
0710 X$=" "
: DATA LOAD BT(L=00)/618,X$
: DATA LOAD BT/618,Z$
: PRINT HEX(01)
: PRINTUSING 740,G,B
: IF W$=X$THEN 735
: B=B+1
: PRINT "GOOD PATTERN="
: HEXPRINT W$
: PRINT "LAST BAD PATTERN="
: HEXPRINT X$
: GOTO 710
0735 G=G+1
: GOTO 710
0740 %GOOD READS=#,###,### ERRORS=###,###,###,###
0750 DEFFN'3
: GOSUB 2010
: PRINT "READ LOOP REVERSE AND COMPARE"
: W$=" "
: DATA LOAD BTR(L=00)/618,W$
: DATA LOAD BTR/618,Z$
: G,B=0
0790 X$=" "
: DATA LOAD BTR(L=00)/618,X$
: DATA LOAD BTR/618,Z$
: PRINT HEX(010A)
: PRINTUSING 740,G,B
: IF W$=X$THEN 835
0822 B=B+1
: PRINT "GOOD PATTERN="
: HEXPRINT W$
: PRINT "LAST BAD PATTERN="
: HEXPRINT X$
: GOTO 790
0835 G=G+1
: GOTO 790
0990 DEFFN'4
: SELECT PRINT 005
: GOSUB 2010
: PRINT "2203 DATA LOAD BT TEST"
: DIM A$1,B$1,C$64,D$(3)22,F$(22)1,G$(128)2,H$2
: PRINT
: PRINT "TESTING DATALOAD BT (DECITEK)..."
: PRINT " DEVICE ADDRESS MUST BE: 618";
1030 PRINT
: STOP "--MOUNT TEST TAPE IN READER AND PRESS 'CONTINUE CR/LF'"
: PRINT
: SELECT TAPE 618,#6618
: B$=HEX(01)
: FOR I=1TO 64
: DATA LOAD BT(L=00)/618,A$
: STR(C$,I,1)=B$
: IF A$<>B$THEN 1530
: ADD(B$,01)
: FOR J=1TO I
: NEXT J
: NEXT I
1110 FOR I=1TO 64
: DATA LOAD BTRA$
: IF A$<>B$THEN 1530
: ADD(B$,FF)
: FOR J=1TO I
: NEXT J
: NEXT I
: A$=HEX(00)
1150 FOR I=1TO 22
: DATA LOAD BT(N=I,L=00)D$(2)
: FOR J=1TO I
: ADD(A$,01)
: IF STR(D$(2),J,1)<>A$THEN 1530
: IF D$(1)<>" "THEN 1530
: IF D$(3)<>" "THEN 1530
: NEXT J
: D$(2)=" "
: NEXT I
: ADD(A$,01)
: FOR I=22TO 1STEP -1
: DATA LOAD BTR(N=I+.5,L=00)F$()
1210 FOR J=1TO I
: IF F$(J)<>A$THEN 1530
: ADD(A$,FF)
: NEXT J
: NEXT I
: FOR K=1TO 3
: B$=HEX(FE)
: FOR I=1TO 19
1250 DATA LOAD BT(S=B$)G$()
: DATA LOAD BTA$
: ADD(A$,FF)
: IF A$<>B$THEN 1530
: XOR (B$,FF)
: DATA LOAD BTR(S=STR(B$,1))G$()
: DATA LOAD BTA$
: ADD(A$,01)
: IF A$<>B$THEN 1530
: ADD(B$,07)
: XOR (B$,FF)
: NEXT I
: NEXT K
: DATA LOAD BT(S=00)G$()
: A$=HEX(01)
: FOR I=1TO 10
: DATA LOAD BT(L=A$)#6,H$
1330 IF H$<>"AB"THEN 1530
: ADD(A$,19)
: NEXT I
: DATA LOAD BTR(N=3)E$
: FOR I=1TO 9
: ADD(A$,E7)
: DATA LOAD BTR(L=A$)H$
1360 IF H$<>"BA"THEN 1530
: NEXT I
: DATA LOAD BTR(N=100)G$()
: DATA LOAD BTR(S=00)G$()
: A$=HEX(FF)
: DATA LOAD BT(N=500,L=00,S=A$)D$()
: IF D$(1)<>STR(C$,1,22)THEN 1530
: IF D$(2)<>STR(C$,23,22)THEN 1530
: IF STR(D$(3),1,19)<>STR(C$,45,19)THEN 1530
1430 IF STR(D$(3),20)<>HEX(404142)THEN 1530
: DATA LOAD BTR(S=00)G$()
: DATA LOAD BT(N=255,L=00)G$()
1460 FOR I=1TO 5
: DATA LOAD BTR(N=250)/618,G$()
: DATA LOAD BT(N=100)G$()
: DATA LOAD BT(N=50)G$()
: DATA LOAD BTR(N=10)G$()
: DATA LOAD BTR(N=20)G$()
: DATA LOAD BTR(N=105)G$()
: DATA LOAD BT(N=235)G$()
: NEXT I
: DATA LOAD BTR(N=255)G$()
: DATA LOAD BTRA$
: IF A$<>HEX(01)THEN 1530
1520 PRINT "DATALOAD BT (DECITEK)... OK"
: GOTO 1540
1530 PRINT "DATALOAD BT (DECITEK)... ERROR"
1540 SELECT TAPE 10A
: STOP "END OF 2203 MICRO CODE TEST"
2000 DEFFN'31
: LOAD DC F"START"
2010 PRINT HEX(03);"2200 HARDWARE DIAGNOSTIC - 2203 PAPER TAPE READER --------
------"
: PRINT HEX(0A0A0A0A0A0A0A0A0A0A0A0A0A0A);"DIAGNOSTIC MENU ; KEY 'RESET' AN
D SF'31";HEX(01)
: RETURN