1 Rem Parallel port analyzer 2 rem By Rolan Yang 3 Rem Email: rxy5310@hertz.njit.edu 5 KEY OFF 10 DT = 632 20 ST = DT+1:CT = DT +2 30 CLS:locate 1,25:print "\ Parallel Port Analyzer /" 32 locate 2,25:print " \------------------------/" 33 LOCATE 10,1 35 PRINT" Sel PE Busy Ack [7] [6] [5] [4] [3] [2] [1] [0] Strobe" 40 PRINT" 13 12 11 10 09 08 07 06 05 04 03 02 01" 50 PRINT" o o o o o o o o o o o o o" 55 PRINT 60 PRINT" <----------Ground----------> s/d Init Err LF" 70 PRINT" 25 24 23 22 21 20 19 18 17 16 15 14" 80 PRINT" o o o o o o o o o o o o" 90 LOCATE 8,20:PRINT"Parallel Port Location: ";DT 93 locate 18,10:print "Note: to toggle the data bits, type the" 94 locate 19,10:print "number corresponding to the bit #" 95 locate 20,10:print "Type 'P' to change port #" 96 locate 21,10:print "Lpt1 is usually 888 and Lpt2 is 632" 97 locate 23,25:print "PPA written Dec 1991 --Rolan Yang rxy5310@hertz.njit.edu" 100 D = INP(DT):S = INP(ST):C=INP(CT) 110 LOCATE 4,5:PRINT"Data (";DT;"):";D;" " 120 LOCATE 5,5:PRINT"Status (";ST;"):";S 130 LOCATE 6,5:PRINT"Control (";CT;"):";C 140 T = D:FOR X = 7 TO 0 STEP -1 150 IF T < 2^X THEN 170 160 LOCATE 12,28+4*(7-X):PRINT CHR$(219):F(X) = 1 170 IF T => 2^X THEN T = T - 2^X ELSE LOCATE 12,28+4*(7-X):PRINT"o":F(X)=-1 180 NEXT X 181 out ct,c:t=c 182 if t => 128 then t=t-128 183 if t => 64 then t=t-64 184 if t => 32 then t=t-32 185 if t => 16 then t=t-16 186 locate 16,46:if t => 8 then t=t-8:cs = -1:print "o" else cs=1:print chr$(219) 187 locate 16,50:if t => 4 then t=t-4:ci = -1:print chr$(219) else ci=1:print "o" 188 locate 16,58:if t => 2 then t=t-2:cl = -1:print "o" else cl=1:print chr$(219) 190 T = INP(ST):GOTO 270 250 T = INP(ST):IF S <> T THEN 270 260 A$ = INKEY$:IF A$ = "" THEN 100 ELSE 350 270 S = T 280 LOCATE 5,5:PRINT"Status (";ST;"):";S 290 IF T => 128 THEN T=T-128:LOCATE 12,20:PRINT CHR$(219):ELSE LOCATE 12,20:PRINT"o" 300 IF T => 64 THEN T=T-64:LOCATE 12,24:PRINT CHR$(219):ELSE LOCATE 12,24:PRINT"o" 310 IF T => 32 THEN T=T-32:LOCATE 12,16:PRINT CHR$(219):ELSE LOCATE 12,16:PRINT"o" 320 IF T => 16 THEN T=T-16:LOCATE 12,12:PRINT CHR$(219):ELSE LOCATE 12,12:PRINT"o" 330 IF T => 8 THEN T=T-8:LOCATE 16,54:PRINT CHR$(219):ELSE LOCATE 16,54:PRINT"o" 340 GOTO 250 350 A = VAL(A$) 360 IF A$ <>"0" AND A = 0 OR A > 7 THEN 380 370 F(A)=F(A)*-1: D=D+(F(A)*2^A) :OUT DT,D:GOTO 100 380 IF A$ = "p" OR A$ = "P" THEN LOCATE 8,45:INPUT "",DT:GOTO 20 381 if a$ = "l" or a$ = "L" then c=c+2*cl:goto 130 382 if a$ = "i" or a$ = "I" then c=c+4*ci:goto 130 383 if a$ = "s" or a$ = "S" then c=c+8*cs:goto 130 385 IF A$ = CHR$(27) THEN end 390 GOTO 250