Listing of file='P31D030C' on disk='vmedia/702-0079.wvd.zip'
# Sector 179, program filename = 'P31D030C' 0010 REM . 2231W-3-01 (1/16/77) 340013 0150 DIM I7$(1)5,G$33,I$(1)8,F$(4)33,T$(1)1,E$40,G$(4)40,D$56,H$56,A1$2,F1$(4) 33,A2$2,B$16,D$(100,8)2,A3$10,B1$2,C$3,J$2,K$1,M$30,N$35,O$30,P$30,K1$(1) 1,B2$10,C2$3,D2$3 0160 B$=HEX(01300231043208331034203540368037) : D1$="EXPANDED" : E1$="LINE FEED TEST" : F1$="PRINT" : G1$="SELECT" : M$="ACCEPTABLE RESULT IS " : N$="VERTICALLY SPACED DOWN THIS PAGE " 0230 P$="2231W-3 PRINTER DIAGNOSTIC" : O$="DEPRESS - RETURN(EXEC) " : INIT(0A)J$ : INIT(0A)K$ : INIT(0A)C$ : GOSUB '110 : PRINT HEX(030A) : GOSUB '201 : PRINT TAB(18);"STATIC PRINTER CONDITIONS" : PRINT K$ : PRINT TAB(20);"POWER MUST BE ON" 0310 PRINT TAB(17);G1$;" LAMP MUST BE ON" : PRINT TAB(16);"WIDE PAPER IN THE PRINTER" : PRINT TAB(12);"ADJUST TOP OF FORM TO LINE NO 4" : PRINT J$ : PRINT TAB(6);O$;" TO START ";P$ : $IF ON /000,390 : T2=80 : GOTO 400 0390 T2=8000 0400 GOSUB 5120 : GOSUB '0 0420 DEFFN'1 : GOSUB '105("COMPLETE PRINTER") : GOSUB '32 : GOSUB '35 : GOSUB '40 : GOSUB '50 : GOSUB 3610 : GOSUB '80 : GOSUB '90 : GOSUB '120 : STOP "END OF PRINTER DIAGNOSTIC" : LOAD DC T#6,"START" 0540 DEFFN'2 : GOSUB '105("DATA BUFFER") 0550 GOSUB '32 : GOTO 550 0570 DEFFN'3 : GOSUB '105("HEAD SOLENOID") 0580 GOSUB '35 : GOTO 580 0600 DEFFN'4 : GOSUB '105("SPIRAL PATTERN") 0610 GOSUB '40 : GOTO 610 0630 DEFFN'5 : GOSUB '105("PAPER MOTION") 0640 GOSUB '50 : GOTO 640 0660 DEFFN'6 : GOSUB '105("COMPLETE CHARACTER SET") 0670 GOSUB '70 : GOTO 670 0690 DEFFN'7 : GOSUB '105("SPECIAL PATTERN") 0700 GOSUB '80 : GOTO 700 0730 DEFFN'8 : GOSUB '105("GRAPHIC CRT OUTPUT") 0740 GOSUB '120 : GOTO 740 0790 DEFFN'16 : RETURN CLEAR 0810 GOSUB 4970 : PRINT TAB(4);"* PRINTER SUB TEST MENU *" : GOSUB 5000 : PRINT TAB(15);"SPECIAL FUNCTION KEY DESIGNATION" : PRINT K$ : PRINT TAB(5);" 9 - ";E1$;TAB(33);"14 - REPETITIVE CHAR OUTPUT" 0870 PRINT TAB(5);"10 - VERTICAL TAB TEST";TAB(33);"15 - ALTERNATING BIT PATTE RN" : PRINT TAB(5);"11 - CARRIAGE RETURN TESTS";TAB(33);"16 - ";D1$;" SPIRAL" 0890 PRINT TAB(5);"12 - PIN ";G1$;"ION TEST";TAB(33);"17 - OPERATOR ACTION TES TS" : PRINT TAB(5);"13 - DIAGONAL LINE TEST";TAB(33);"18 - LINE FEED ";G1$;"ION " : PRINT TAB(33);"31 - RETURN TO MASTER MENU" 0920 KEYIN B1$,920,940 : GOTO 920 0940 IF B1$<=HEX(08)THEN 920 : ON VAL(B1$)GOTO 920,920,920,920,920,920,920,920,960,980,1000,1030,1120,10 50,1060,1080,1110,1150,920,920,920,920,920,920,920,920,920,920,920,920,12 00 0960 GOSUB '105("LINE FEED") : GOTO 2560 0980 GOSUB '105("VERTICAL TAB") : GOTO 2800 1000 GOSUB '105("CARRIAGE RETURN") : GOTO 3050 1030 GOTO 6820 1050 GOTO 5600 1060 GOSUB '105("ALTERNATING BIT PATTERN") : GOTO 5510 1080 GOSUB '105("EXPANDED SPIRAL PATTERN") : GOTO 2400 1110 GOTO 4320 1120 GOSUB '105("DIAGONAL LINE") : GOTO 6290 1150 PRINT HEX(03) : INIT(00)C2$,D2$ : PRINT C$;C$ : INPUT "ENTER THE LINE FEED SPACING INCREMENT TO BE TESTED(1-15)",R : IF R>16THEN 1150 : GOSUB '105("LINE FEED SPACING") : GOTO 6430 1200 GOSUB '0 1240 DEFFN'31 1250 DEFFN'0 : RETURN CLEAR 1270 GOSUB '110 : GOSUB 4970 : PRINT TAB(4);"* MASTER MENU *" : GOSUB 5000 : PRINT TAB(17);"SPECIAL FUNCTION KEY DESIGNATION" : PRINT K$ 1330 PRINT TAB(5);"1 - COMPLETE PRINTER TEST";TAB(33);"5 - PAPER MOTION TESTS" : PRINT TAB(5);"2 - DATA BUFFER TEST";TAB(33);"6 - COMPLETE CHARACTER SET" 1350 PRINT TAB(5);"3 - HEAD SOLENOID TEST";TAB(33);"7 - SPECIAL PATTERN TEST" : PRINT TAB(5);"4 - SPIRAL PATTERN TEST";TAB(33);"8 - GRAPHIC OUTPUT TEST" : PRINT TAB(32);"16 - PRINTER SUB TEST-MENU" : PRINT K$ 1390 STOP " ( PRESS DESIRED S.F. KEY ) " : GOSUB '100 1510 DEFFN'32 1540 D$="DATA BITS " : GOSUB '100 : GOSUB 2940 : PRINT HEX(0E);"DATA BUFFER TEST" : PRINT J$ : A1$=HEX(00) : PRINT D$;" 1 THROUGH 6 HEX(3F=?)" : INIT(3F)G$ : GOSUB 1810 : PRINT K$ : PRINT D$;" 5 & 6 HEX(30=0)" : INIT(30)G$ : GOSUB 1810 : PRINT K$ 1660 PRINT D$;" 1,3,5 & 6 HEX(35=5)" : INIT(35)G$ : GOSUB 1810 : PRINT K$ : PRINT D$;" 2,4,5 & 6 HEX(3A=:)" : INIT(3A)G$ : GOSUB 1810 : PRINT K$ : PRINT D$;" 5,6 & 7 HEX(70=p)" : INIT(70)G$ : GOSUB 1810 : PRINT K$ : PRINT D$;" 2,4 & 6 HEX(2A=*)" : INIT(2A)G$ : GOSUB 1810 1770 PRINT K$ : PRINT D$;" 1,3,5 & 7 HEX(55=U)" : INIT(55)G$ : PRINT K$ 1810 FOR I=1TO 5 : PRINT A1$;G$;G$;G$;G$ : NEXT I : RETURN 1850 DEFFN'35 : GOSUB 2940 : GOSUB '100 : PRINT HEX(0E);"HEAD SOLENOID FIRING TEST";HEX(0D0A) : FOR K=1TO 2 : PRINT HEX(410D420D430D440D450D460D) : FOR I=1TO 5 : PRINT "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=!@#$%^&*()"; 1930 PRINT "?.abcdefghijklmnopqrstuv"; : PRINT "wxyz!@#$%^&*()-+1234567890-=';/.:?ABCDEFGHIJKLMNOPQRSTUVWXYZ"; : PRINT HEX(0E) : PRINT "TTTTT=====55555wwwwwjjjjmmmm;;;;;;;;jjjjjjjjtt==55wwjjMM"; 1970 PRINT "++;;;;BBBN" : NEXT I : FOR I=1TO 3 : FOR J=1TO (65) : PRINT "AB"; : NEXT J : PRINT "AB" : NEXT I : PRINT J$ : NEXT K : RETURN 2150 DEFFN'40 : GOSUB '100 : GOSUB 2940 : PRINT HEX(0E);"SPIRAL PRINT TEST";HEX(0D0A) : F$=HEX(00) 2200 K1$(1)=HEX(10) : FOR I=1TO 132 : MAT COPY K1$()TO F$()<I,1> : IF K1$(1)<HEX(7E)THEN 2250 : K1$(1)=HEX(0F) 2250 ADD(K1$(1),01) : IF K1$(1)<>HEX(20)THEN 2280 : ADD(K1$(1),01) 2280 NEXT I : FOR I=1TO 112 : FOR J=1TO 4 : PRINT F$;F$(J); : NEXT J : K1$(1)=STR(F$(1),1,1) : MAT COPY F$()<2,131>TO F$() : STR(F$(4),33,1)=K1$(1) : IF I<>57THEN 2390 : IF F$=HEX(0E)THEN 2450 : GOSUB 2940 2390 NEXT I 2400 F$=HEX(0E) : GOSUB 2940 : PRINT F$;D1$;" SPIRAL PRINT TEST" : PRINT K$ : GOTO 2200 2450 IF VAL(B1$)=16THEN 2400 : RETURN 2550 DEFFN'50 2560 GOSUB '100 : GOSUB 2940 : PRINT HEX(0E);E1$;" #1 - (HEX CODE 0A)" : PRINT J$ : PRINT HEX(2A) : FOR I=1TO 17 : PRINT HEX(0A0A2A) : NEXT I : PRINT K$ : PRINT M$;" 18 STARS "; : PRINT N$ : IF VAL(B1$)=9THEN 2560 2800 GOSUB 2940 : PRINT HEX(0E);"VERTICAL TAB TEST (HEX CODE-0B)" : FOR I=1TO 9 : PRINT HEX(0B);"VERTICAL TAB NO.";I : NEXT I : PRINT C$ : I=10 : PRINT M$; : PRINT " 9 EVENLY SPACED VERTICAL "; : PRINT "TABS SIX LINES APART." : IF VAL(B1$)=10THEN 2800 : GOTO 3050 2940 PRINT HEX(0C) : PRINT "(TOP OF FORM TEST - HEX CODE 0C) MUST BE THE FIRST "; : PRINT "LINE OF PRINT AT THE TOP OF A NEW PAGE." : PRINT K$ : RETURN 3050 GOSUB 2940 3060 PRINT HEX(0E);"CARRIAGE RETURN TEST SECTION" : PRINT K$ : PRINT HEX(0E);"SINGLE CHARACTER CARRIAGE RETURN TEST" : PRINT K$ : C2$=HEX(210D00) : FOR I=1TO 57 : PRINT C2$; : ADD(STR(C2$,1,1),01) : NEXT I 3160 GOSUB 2940 : PRINT HEX(0E);"FIVE LINES OF 82 CHARACTERS ENDING THE LINE "; : PRINT "WITH A - HEX CODE (0D)." : PRINT K$ : GOSUB 3380 : FOR I=1TO 5 : PRINT STR(G$,1,29); : PRINT " PROGRAM SENT HEX CODE(0D) AT THE END OF THIS LINE."; 3240 PRINT HEX(0D) : NEXT I 3280 PRINT J$ : PRINT HEX(0E);"PRINT 5 LINES OF 132 CHARACTERS PER LINE, "; : PRINT "USING THE HARDWARE C/R." : PRINT K$ : FOR I=1TO 5 : PRINT G$;G$;G$;G$;STR(G$,1,12); : NEXT I : GOSUB 3420 3380 G$="123456789-123456789-123456789-" : RETURN 3420 PRINT J$ : PRINT HEX(0E);"PRINT 5 LINES TO "; : PRINT "DEMONSTRATE THE HARDWARE C/R (LINE OVER RUN)" : PRINT K$ : FOR I=1TO 5 : PRINT G$;G$;G$;G$;STR(G$,1,12); : PRINT "OVER RUN FROM PREVIOUS LINE" : NEXT I : IF VAL(B1$)=11THEN 3060 : RETURN 3590 DEFFN'70 : GOSUB 2940 : PRINT HEX(0E);"PRINTABLE HEX CODES" 3610 PRINT C$ 3640 PRINT TAB(10);"112 CHARACTER SET-CODES 10 TO 7E "; : PRINT "FIRST CHAR IS HEX(20),(LAST CHARACTER IS HEX(20), REPLACES HEX(7F) " : PRINT K$ : INIT(2A)G$(1) : GOSUB 3810 : INIT(0F)D$ : INIT(46)H$ : FOR I=1TO 56 : ADD(STR(D$,I),01) 3720 ADD(STR(H$,I),01) : NEXT I 3770 FOR I=1TO 5 : PRINT "* ";D$; : PRINT H$;" *" : NEXT I 3810 PRINT G$(1);G$(1);STR(G$(1),1,36) : RETURN 3860 DEFFN'80 : GOSUB '100 3930 GOSUB 2940 : PRINT HEX(0E);"SPECIAL PATTERN TEST" : PRINT K$ 3960 MAT REDIM G$(26)5 : N=RND(0) : N=0 3990 P3=1 : INIT(10)I7$() : FOR I=1TO 26 : BIN(STR(I7$(1),1))=INT(RND(1)*94+33) : G$(I)=STR(I7$(1),1) : STR(I7$(1),2)=STR(I7$(1),1) : MAT COPY I7$()TO G$()<P3,5> : P3=P3+5 : NEXT I 4110 FOR I=1TO 26 : PRINT TAB(I*5-5);STR(G$(I),1,1); : NEXT I : PRINT " " : FOR J=1TO 4 : FOR I=1TO 25 : PRINT STR(G$(I),1,5); : NEXT I : PRINT STR(G$(26),1,5) : NEXT J : N=N+1 : IF N<11THEN 3990 : MAT REDIM G$(4)40 4270 RETURN 4320 DEFFN'90 4360 GOSUB 4890 : PRINT HEX(0C0C0C) : PRINT TAB(20);"PRINTS AT - 6 LINES PER INCH" : GOSUB 4920 : PRINT TAB(10);"(TO START ";G1$;"/DE";G1$;" AND AUDIO ALARM TESTS)" : GOSUB '100 : GOSUB 5120 4490 GOSUB 4890 : PRINT TAB(15);"(TO START THE PRINTER CLEAR TEST)" : GOSUB '100 : GOSUB 2940 : PRINT J$ : PRINT HEX(0E);" VERIFY THAT THE AUDIO ALARM IS SOUNDING" : PRINT J$ : K=1 : GOSUB 5150 : GOSUB 4890 : PRINT HEX(0C0C0C) 4590 PRINT TAB(17);"PERFORM THE FOLLOWING FUNCTIONS" : PRINT K$ : PRINT TAB(10);"DEPRESS ";G1$;" AND THEN CLEAR ON THE PRINTER" : PRINT K$;TAB(27);"T H E N" : PRINT K$;TAB(20);"DEPRESS - RETURN(EXEC)" : GOSUB '100 : PRINT HEX(0B0B) 4660 PRINT " - - E R R O R - - IN "; : GOSUB 5090 : GOSUB '110 : FOR I=1TO 7 : PRINT HEX(0C) : NEXT I : PRINT : PRINT TAB(10);HEX(0A);" RE-SELECT THE PRINTER " : PRINT C$ : GOSUB 4930 : GOSUB 5090 : GOSUB '100 4780 PRINT HEX(0E);"OPERATOR SELECT CLEAR TEST" 4860 IF VAL(B1$)=17THEN 4360 : RETURN 4890 GOSUB 4970 : PRINT K$ : PRINT TAB(20);"OPERATOR ACTION REQUIRED" 4920 PRINT K$ 4930 PRINT TAB(20);O$ : PRINT J$ : RETURN 4970 GOSUB '110 : PRINT J$ : PRINT HEX(030A);TAB(20);P$ 5000 PRINT TAB(4); : FOR I=1TO 56 : PRINT "*"; : NEXT I : PRINT : RETURN 5090 T1=1 : J=T2 : GOTO 5180 5120 T1=2 : J=T2 : GOTO 5180 5150 T1=3 : J=T2/50 : K=1 5180 FOR I=1TO J : KEYIN F$,5210,5210 : GOTO 5220 5210 IF F$=HEX(0D)THEN 5240 5220 NEXT I : GOTO 5290 5240 I=J : NEXT I 5250 RETURN 5290 ON T1GOTO 5180,5370,5390 5310 STOP "ERROR IN KEYIN SUBROUTINE" 5330 GOTO 5250 5370 PRINT HEX(07) : GOTO 5180 5390 GOSUB '100 : PRINT "THE OPERATOR MUST DE";G1$;;" AND";" RE-";G1$;" THIS PRINTER "; : PRINT "AT LEAST ONCE PER LINE FOR ABOUT 5 LINES "; : PRINT "OF PRINT AT THIS TIME - LINE NO.";K : PRINT HEX(07) : K=K+1 : GOTO 5180 5460 RETURN 5510 GOSUB '100 : PRINT HEX(0C0D) 5530 FOR I=1TO 528 : PRINT "U*"; : NEXT I : IF VAL(B1$)=15THEN 5530 5600 PRINT HEX(030A0A) : GOSUB '110 : PRINT TAB(10);"ENTER THE CHARACTER(S) THAT YOU WANT REPEATED" : INPUT H$ : GOSUB '105("REPETITIVE CHAR OUTPUT") : GOSUB '100 5660 PRINT H$; : PRINT H$; : PRINT H$; : GOTO 5660 5700 IF VAL(B1$)=14THEN 5600 : RETURN 5720 DEFFN'105(D$) : GOSUB '110 : PRINT HEX(030A0A0A0A0A) : PRINT TAB(10);"* * * * * * * * * * * * * * * * * * * * * * * *" : PRINT TAB(10);"* *" 5770 PRINT TAB(10);"*";TAB(35-INT(LEN(D$)/2));D$;TAB(56);"*" : PRINT TAB(10);"* *" : PRINT TAB(10);"* TEST IN PROGRESS *" 5800 PRINT TAB(10);"* *" : PRINT TAB(10);"* * * * * * * * * * * * * * * * * * * * * * * *" : PRINT HEX(0A) : PRINT TAB(10);"KEY HALT/STEP & SFK 31 TO RETURN TO MAIN MENU" 5840 GOSUB '100 : PRINT HEX(0D) : RETURN 5880 DEFFN'110 : SELECT PRINT 005(64) : RETURN 5910 DEFFN'120 : GOSUB '100 : GOSUB 2940 : GOSUB '110 5930 GOSUB '100 : PRINT HEX(0E);"GRAPHIC OUTPUT TEST SECTION";HEX(0A0A) : PRINT HEX(0E);"0" : PRINT HEX(0E);"1 LOW" : PRINT HEX(0E);"2 ORDER" : PRINT HEX(0E);"3 BITS" 5960 PRINT HEX(0E);"4"; : PRINT TAB(7); : PRINT HEX(0E5F);"THIS IS THE PIN FIRING ORDER FROM HIGH ORDER TO LOW ORDE R" : PRINT HEX(0E);"5 HIGH" : PRINT HEX(0E);"6 ORDER" : PRINT HEX(0E);"7 BITS" : IF VAL(B1$)=12THEN 6860 6040 PRINT HEX(0A0E);"THIS TEST PRINTS 5 LINES OF RANDOM MULTIPLE PIN SETTINGS " : PRINT HEX(0A) : FOR I=1TO 100 : FOR J=1TO 8 : X=INT(RND(1)*255) : INIT(00)A1$ : BIN(STR(A1$,1,2))=X : D$(I,J)=A1$ : NEXT J : NEXT I : GOSUB 6750 6180 PRINT K$ : A1$=HEX(8000) : A2$=HEX(0100) : K=7 : L=0 : GOSUB 6630 : PRINT J$ : A1$=HEX(4000) : A2$=HEX(0200) : K=6 : L=1 : GOSUB 6630 : PRINT J$ : A1$=HEX(2000) : A2$=HEX(0400) : K=5 : L=2 : GOSUB 6630 : PRINT J$ : A1$=HEX(1000) : A2$=HEX(0800) : K=4 : L=3 : GOSUB 6630 : PRINT J$ 6290 GOSUB 2940 6300 PRINT HEX(0A0E);"FIVE SERIES OF DIAGONAL LINES BEGINNING WITH THE 0 BIT " ; : PRINT K$ : A1$=HEX(8000) : FOR I=1TO 100 : FOR J=1TO 8 : ROTATE(STR(A1$,1,1),1) : D$(I,J)=A1$ : NEXT J : NEXT I : GOSUB 6750 : IF VAL(B1$)=13THEN 6300 6410 INIT(00)C2$,D2$ : R=INT((RND(1)*8)+1) 6430 GOSUB '100 : PRINT C$ : PRINT HEX(0E);"LINE FEED SPACING TEST IS MEASURED IN ";R;" INCREMENTS" : PRINT K$ 6460 FOR I=1TO R : IF INT(I*72/R)=I*72/RTHEN 6490 : NEXT I 6490 PRINT HEX(0E);"THE GAP SHOULD BE ";I;" INCH/ES APART" : C2$=HEX(090054) : D2$=HEX(09000A) : BIN(STR(C2$,2,1))=R : BIN(STR(D2$,2,1))=R : PRINT C2$ : FOR J=1TO (72/R)*I-1 : PRINT D2$ : NEXT J : PRINT "T" : IF VAL(B1$)=18THEN 6460 6600 RETURN 6630 FOR I=1TO 49 : FOR J=1TO 8 : D$(I,J)=A1$ : NEXT J : NEXT I : FOR I=50TO 100 : FOR J=1TO 8 : D$(I,J)=A2$ : NEXT J : NEXT I : D$(1,1)=HEX(F000) : D$(100,8)=HEX(0F00) : FOR I=1TO 5 6740 PRINT HEX(0E);"PRINTS FIVE LINES OF ALTERNATING ";K;" BIT &";L;" BIT FIR ING PATTERNS" 6750 FOR I=1TO 5 : A3$=HEX(0700) : PRINT HEX(090F08);D$() : $GIO/005(12114100,A3$) : NEXT I : RETURN 6810 DEFFN'140 6820 GOSUB '110 : PRINT HEX(030A0A) : PRINT TAB(5);"THE PRINTER IS NOW PRINTING A LAYOUT OF THE BIT PATTERN";HE X(0A) : GOTO 5930 6860 GOSUB '110 6870 PRINT TAB(5);"ENTER THE 1 DIGIT CORRESPONDING TO THE BIT YOU DESIRE (0-7) "; : INPUT A1$ : IF A1$<HEX(30)THEN 7030 : IF A1$>HEX(37)THEN 7030 : $TRAN(STR(A1$,1),B$)R : GOSUB '105("PIN SELECTION TEST") : STR(A1$,2,1)=HEX(00) 6940 FOR I=1TO 100 : FOR J=1TO 8 : D$(I,J)=A1$ : NEXT J : NEXT I : D$(1,1)=HEX(FF00) : PRINT HEX(0A0E);"SINGLE PIN SELECTION TEST";HEX(0A) 6990 GOSUB 6750 : GOTO 6990 7010 IF VAL(B1$)=13THEN 6820 : RETURN 7030 PRINT HEX(030A) : PRINT TAB(13);"ILLEGAL HEX DIGITS. PLEASE TRY AGAIN" : PRINT J$ : GOTO 6870 8000 DEFFN'201 : PRINT "1. 204","2. 214","3. 215","4. 216" : PRINT HEX(0C0C); : INPUT "SELECT PRINTER ADDRESS",Q : PRINT HEX(0A0A0A0D) : RETURN 8500 DEFFN'100 : ON Q GOTO 8520,8530,8540,8550 8520 SELECT PRINT 204(132) : RETURN 8530 SELECT PRINT 214(132) : RETURN 8540 SELECT PRINT 215(132) : RETURN 8550 SELECT PRINT 216(132) : RETURN