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