Ready HZLDPY 10:30 AM 10-Apr-73 1 !!!!!!!! HAZELTINE DISPLAY 4A EDIT 2 11/25/72 !!!!!!!!! 2 ! EDIT 2/27/73 R .N. BIALAC IIS. 3 ! PRESENTED TO USERS OF HAZELTINE 2000 ON DEC SYSTEMS BY INTERACTIVE INFORMATION SYSTEMS P.O. BOX 37403 CINCINNATI, OHIO 45222 MODIFIED FROM DEC VT5DPY BY RICK BIALAC AND KIM SHERIDAN 100 DIM J%(15,6),B%(7,1),D%(4,3),C%(5),M%(30),T(15) 150 INPUT "INTERVAL";S9% : IF S9%=0% THEN S9%=15% 200 J%(I%,0%)=-1% FOR I%=0% TO 15% : B%(I%,0%)=-1% FOR I%=0% TO 7% : D%(I%,0%)=-1% FOR I%=0% TO 4% : C%(I%)=0% FOR I%=0% TO 3% : C%(4%)=PEEK(2048%) : C%(5%)=PEEK(2050%) 300 CHANGE SYS(CHR$(6%)+CHR$(-3%)) TO M% : M%(I%)=M%(I%)+SWAP%(M%(I%+1%)) FOR I%=5% TO 27% STEP 2% 399 ! CLEAR SC REEN 400 GOSUB9990:X%, Y%= 0% 402 S$=SYS(CHR$(6%)+CHR$(9%)+CHR$(0%)) 403 R9$="STATUS ON "+DATE$(C%(4%))+" "+TIME$(C%(5%))+" UP:" 404 I%=FNS%(1%,0%,MID(S$,3%,INSTR(3%,S$,CHR$(0%))-3%)) 405 I%=FNS%(29%,0%,R9$) 410 I%=FNS%(0%,2%,"JOB WHO WHERE WHAT SIZE STATE RUN-TIME")+ FNS%(51%,2%,"BUSY DEVICES")+ FNS%(45%,3%,"DEV JOB WHY DEV JOB WHY")+ FNS%(50%,9%,"DISK STRUCTURE")+ FNS%(47%,16%,"SML BIG ERS TTY") 420 I%=FNS%(49%,17%,"0 0 0 0" ): GOSUB 10000 421 GOSUB 10000 1000 J9%,J%=0%: GOSUB 10000 1010 J%=J%+2% : J0%=PEEK(J%+M%(11%)) : IF J0%<0% THEN 2000 ELSE IF J0%=0% THEN 1010 ELSE J8%=0% : IF J%(J9%,0%)<>J% THEN J%(J9%,0%)=J% : J8%=1% : I%=FNS%(0%,J9%+3%,NUM$(J%/2%)) 1020 J1%=PEEK(J0%+20%) : IF J8% OR J%(J9%,1%)<>J1% THEN J%(J9%,1%)=J1% ELSE 1050 1030 S$=" **,** " : IF J1% THEN S$=NUM$(ASCII(CHR$(SWAP%(J1%)))) : S$=SPACE$(5%-LEN(S$))+MID(S$,2%,LEN(S$)-2%)+","+ RIGHT(NUM$(ASCII(CHR$(J1%))),2%) : S$=S$+SPACE$(7%-LEN(S$)) 1040 I%=FNS%(4%,J9%+3%,S$) 1050 J1%=PEEK(PEEK(J0%)) : J2%=ASCII(CHR$(SWAP%(PEEK(J1%+28%))))/2% : IF ASCII(CHR$(PEEK(J1%+2%)))<>J% THEN J2%=-1% ELSE IF PEEK(J1%+30%) AND 8192% THEN 1060 ELSE J2%=-1% 1060 IF J8% OR J%(J9%,2%)<>J2% THEN J%(J9%,2%)=J2% ELSE 1100 1070 IF J2%=-1% THEN S$="DET " ELSE S$="KB"+RIGHT(NUM$(J2%),2%) 1080 I%=FNS%(12%,J9%+3%,S$) 1100 J1%=PEEK(J%+M%(23%)) : IF J8% OR J%(J9%,3%)<>J1% THEN J%(J9%,3%)=J1% : I%=FNS%(17%,J9%+3%,RAD$(J1%)) 1110 J1%=PEEK(J%+M%(25%)) : IF J8% OR J%(J9%,4%)<>J1% THEN J%(J9%,4%)=J1% : I%=FNS%(20%,J9%+3%,RAD$(J1%)) 1120 J1%=ASCII(CHR$(PEEK(J0%+16%))) : IF J8% OR J%(J9%,5%)<>J1% THEN J%(J9%,5%)=J1% : I%=FNS%(24%,J9%+3%,CHR$(48%+J1%)+"K") 1130 J1%=PEEK(J%+M%(15%)) : J2%=1% : IF J1% AND PEEK(J%+M%(13%)) THEN 1160 ELSE J2%=J2%+2% : IF J1%<0% THEN 1160 ELSE J1%=J1%/4% 1140 J2%=J2%+2% : IF J1% AND 1% THEN 1160 ELSE J1%=J1%/2% : IF J1% THEN 1140 1160 T%=SWAP%(J2%) : J1%=M%(9%) 1170 T1%=PEEK(J1%) : IF T1%=-1% THEN T%=T%+1% ELSE IF ASCII(CHR$(T1%))<>J% THEN J1%=J1%+2% : GOTO 1170 1180 IF T% AND 1% THEN S$=" SW" ELSE S$=" " 1190 IF J8% OR J%(J9%,6%)<>T% THEN J%(J9%,6%)=T% : I%=FNS%(28%,J9%+3%,MID("RNRSHBXXFPSLCRMTLPDTPPPRTTKBDF", J2%,2%)+S$) 1200 T=PEEK(J0%+8%) : IF T<0 THEN T=T+65536. 1210 IF J8% OR T(J9%)<>T THEN T(J9%)=T ELSE 1900 1220 T0=T : T=INT(T/10.) : T0=T0-T*10. : GOSUB 29000 : S$=SPACE$(7%-LEN(S$))+S$+"."+CHR$(48%+T0) : I%=FNS%(34%,J9%+3%,S$) 1900 J9%=J9%+1% : GOTO 1010 2000 IF J9%<>16% THEN IF J%(J9%,0%)<>-1% THEN I%=FNS%(0%,J9%+3%,SPACE$(43%)) : J%(J9%,0%)=-1% : J9%=J9%+1% : GOTO 2000 2010 J%=46% : FOR J0%=1% TO 4% : ON J0% GOTO 2020,2030,2040,2050 2020 J1%=PEEK(2110%) : GOTO 2060 2030 J1%=PEEK(2114%) : GOTO 2060 2040 J1%=ASCII(CHR$(PEEK(2%))) : J%=J%+1% : GOTO 2060 2050 J1%=ASCII(CHR$(SWAP%(PEEK(2%)))) 2060 IF J1%<>C%(J0%-1%) THEN C%(J0%-1%)=J1% : S$=NUM$(J1%) : I%=FNS%(J%,17%,SPACE$(5%-LEN(S$))+S$) 2070 J%=J%+5% : NEXT J0% : J%=M%(21%) : J1%=M%(17%) : T%=1% : T1%=M%(19%) : J9%=0% : GOSUB 3000 : GOSUB 3000 : GOSUB 3000 : GOTO 4000 3000 FOR J0%=0% TO PEEK(M%(5%)+T%-1%) : J2%=PEEK(T1%) : IF J2%<0% THEN 3900 ELSE J8%=0% 3010 IF J8% OR D%(J9%,0%)<>SWAP%(J0%)+T% THEN J8%=1% : D%(J9%,0%)=SWAP%(J0%)+T% : I%=FNS%(45%,J9%+10%,MID("DFDKDP",T%,2%)+ RIGHT(NUM$(J0%),2%)) 3020 T$="" : IF J8% OR D%(J9%,1%)<>J2% THEN D%(J9%,1%)=J2% : S$=NUM$(ASCII(CHR$(J2%))) : I%=FNS%(49%,J9%+10%,SPACE$(5%-LEN(S$))+RIGHT(S$,2%)) : IF J2% AND 16384% THEN T$="PRI" ELSE T$="PUB" 3030 IF J8% OR D%(J9%,2%)<>PEEK(J%) THEN D%(J9%,2%)=PEEK(J%) ELSE 3060 3040 T=D%(J9%,2%) : IF T<0 THEN T=T+65536. 3050 S$=NUM$(T) : I%=FNS%(53%,J9%+10%,SPACE$(7%-LEN(S$))+ RIGHT(S$,2%)) 3060 IF J8% OR D%(J9%,3%)<>PEEK(J1%) THEN D%(J9%,3%)=PEEK(J1%) ELSE 3080 3070 S$=NUM$(ASCII(CHR$(D%(J9%,3%)))) : I%=FNS%(59%,J9%+10%,SPACE$(4%-LEN(S$))+RIGHT(S$,2%)) : S$=NUM$(ASCII(CHR$(SWAP%(D%(J9%,3%))))) : I%=FNS%(62%,J9%+10%,SPACE$(4%-LEN(S$))+RIGHT(S$,2%)) 3080 IF T$="" THEN 3100 ELSE IF J2% AND 8192% THEN T$=T$+"+LK" ELSE T$=T$+" " 3090 I%=FNS%(65%,J9%+10%,T$) 3100 J9%=J9%+1% 3900 T1%=T1%+2% : J%=J%+2% : J1%=J1%+2% : NEXT J0% : T%=T%+2% : RETURN 4000 IF J9%<>5% THEN IF D%(J9%,0%)<>-1% THEN I%=FNS%(45%,J9%+10%,CHR$(30%)) : X%=X%-1% : D%(J9%,0%)=-1% : J9%=J9%+1% : GOTO 4000 5000 T1%=M%(5%)+6% : T%=PEEK(PEEK(M%(7%)+6%)) : J9%=0% : GOSUB 25000 FOR J2%=0% TO 12% STEP 2% 5010 IF J9% AND 1% THEN IF B%(J9%,0%)<>-1% THEN I%=FNS%(58%,J9%/2%+4%,CHR$(30%)) : B%(J9%,0%)=-1% : J9%=J9%+1% : X%=X%-1% 5020 IF J9%<>8% THEN IF B%(J9%,0%)<>-1% THEN I%=FNS%(45%,J9%/2%+4%,CHR$(30%)) : X%=X%-1% : B%(J9%,0%),B%(J9%+1%,0%)=-1% : J9%=J9%+2% : GOTO 5020 6000 T=((PEEK(2048%)-PEEK(36%))*1440.+PEEK(38%)-PEEK(2050%)) *60.+60.-ASCII(CHR$(PEEK(2052%))) : GOSUB 29000 : I%=FNS%(62%,0%,SPACE$(8%-LEN(S$))+S$) 6010 J%=PEEK(2050%) : IF C%(5%)<>J% THEN C%(5%)=J% : I%=FNS%(49%,0%,TIME$(J%)) 6020 J%=PEEK(2048%) : IF C%(4%)<>J% THEN C%(4%)=J% : I%=FNS%(39%,0%,DATE$(J%)) 6025 GOTO 20000 9990 H8(0)=6 :H8(1)=126 9992 H8(2)=28: H8(3)=12 9994 H8(4)=127: H8(5)=127 9996 H8(6)=127: GOSUB 10080 10000 PRINT:RETURN 10010 H8(6)=127:GOTO 10080! CLEAR SCREEN 10020 H8(0)=3:H8(1)=126:H8(2)=29:H8(3)=127:GOTO 10080!CLEAR SCREEN 10030 ! 10010 IS REALLY CLEAR FOREGROUND 10040 H8(0)=2:H8(1)=126:H8(2)=31:GOTO 10080!SET FOREGROUND 10045 H8(4)=H8(4) + 96% IF H8(4) < 32% : H8(5) = H8(5) + 96% 10050 H8(3)=H8(3)+96% IF H8(3)<32% :H8(4)=H8(4)+96% : H8(0)=6%:H8(1)=126%:H8(2)=17%:H8(5)=127%:H8(6)=127% 10060 H8(0)=2:H8(1)=126:H8(2)=25:GOTO 10080!SET BACKGROUND 10070 H8(0)=4:H8(1)=126:H8(2)=26:H8(3)=127:H8(4)=127:GOTO 10080!INSERT L 10080 CHANGE H8 TO H8$:PRINT H8$;:RETURN 11076 PRINT" ONE",S$ 20000 GOSUB 10000:X%,Y% = 0%: SLEEP S9%: GOTO 1000 25000 FOR J0%=0% TO PEEK(T1%) : J%=ASCII(CHR$(PEEK(T%+2%))) : IF J%=0% THEN 25900 ELSE IF J% AND 1% THEN 25900 ELSE IF J2%=0% THEN IF PEEK(T%+30%) AND 8192% THEN 25900 25010 J8%=0% : IF B%(J9%,0%)<>SWAP%(J0%)+J2% THEN J8%=1% ELSE 25100 25020 B%(J9%,0%)=SWAP%(J0%)+J2% : GOSUB 26000 : I%=FNS%(I%,J9%/2%+4%,MID("KBDTLPPRPPCRMT",J2%+1%,2%)+ RIGHT(NUM$(J0%),2%)) 25030 GOSUB 26000 : I%=FNS%(I%+5%,J9%/2%+4%,RIGHT(NUM$(J%/2%),2%)) 25100 J%=PEEK(T%+30%) : IF J8% OR B%(J9%,1%)<>J% THEN B%(J9%,1%)=J% ELSE 25200 25110 S$="INIT" : IF J%<0% THEN S$="AS " : IF ASCII(CHR$(J%)) THEN S$="A+IN" 25120 GOSUB 26000 : I%=FNS%(I%+8%,J9%/2%+4%,S$) 25200 J9%=J9%+1% 25900 T%=T%+32% : NEXT J0% : T1%=T1%+2% : RETURN 26000 I%=45% : IF J9% AND 1% THEN I%=58% 26010 RETURN 29000 S$="" : T%=0% : T1%=T/3600. : IF T1% THEN T=T-3600.*T1% : GOSUB 29500 : S$=S$+":" 29010 T1%=T/60% : IF T1% OR T% THEN T=T-60%*T1% : GOSUB 29500 : S$=S$+":" 29020 T1%=T 29500 T$=NUM$(T1%+T%*100%) : S$=S$+MID(T$,2%+T%,LEN(T$)-2%-T%) : T%=1% : RETURN 32100 DEF FNS%(Q0%,Q1%,Q0$) 32105 Q0%=Q0%+1% 32110 H8(0%)=6%:H8(1%)=126%:H8(2%)=17%:H8(3%)=Q0%:H8(4%)=Q1%: H8(5%)=127%:H8(6%)=127% 32120 H8(3)=H8(3)+96% IF H8(3)<32% :H8(4)=H8(4)+96% 32125 CHANGE H8 TO H8$:PRINT H8$;:PRINT Q0$ 32130 FNS%=0%: FNEND 32767 END Ready ?