image of READY prompt

Wang2200.org

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