5 ! show time 10 OPTION BASE 0 @ DELAY 0,0 15 DIM B0$[20],B1$[500],B2$[1000] 20 DIM D$(10)[7*9],P$(2)[7*6] 25 A=1 30 CALL BFONT(D$,P$) 35 B0$="" @ CALL BSETUP(B0$) @ CALL ILSEND(B0$,A) 40 B1$="" @ CALL BFRAME(B1$,1,0,21,79) @ CALL ILSEND(B1$,A) 45 B1$="" @ CALL BFRAME(B1$,11,0,11,79) @ CALL ILSEND(B1$,A) 50 D0$="" @ T$="" 55 B2$="" @ D1$=D0$ @ CALL BDATE(B2$,D$(),P$(), 3,3,D0$) @ IF D1$#D0$ THEN CALL ILSEND(B2$,A) 60 B2$="" @ CALL BTIME(B2$,D$(),P$(),13,3,T$) @ CALL ILSEND(B2$,A) 65 DISP "20"&D0$&" "&T$ 70 IF LEN(KEY$)=0 THEN GOTO 55 75 B0$="" @ CALL BRESET(B0$) @ CALL ILSEND(B0$,A) 80 PUT "#43" 85 END 300 SUB BDATE(B$,D$(),P$(),R,C,D1$) ! build-date 305 D2$=DATE$ @ L=LEN(D1$) @ IF L=0 THEN D1$="99/99/99" 306 IF D2$=D1$ THEN GOTO 355 310 D=VAL(D2$[1,1]) @ IF L=0 OR (VAL(D1$[1,1]) # D) THEN CALL BDIGIT(B$,R,C,D$(),D) 315 D=VAL(D2$[2,2]) @ IF L=0 OR (VAL(D1$[2,2]) # D) THEN CALL BDIGIT(B$,R,C+10,D$(),D) 320 IF L=0 THEN CALL BPUNCT(B$,R,C+20,P$(),1) 325 D=VAL(D2$[4,4]) @ IF L=0 OR (VAL(D1$[4,4]) # D) THEN CALL BDIGIT(B$,R,C+27,D$(),D) 330 D=VAL(D2$[5,5]) @ IF L=0 OR (VAL(D1$[5,5]) # D) THEN CALL BDIGIT(B$,R,C+37,D$(),D) 335 IF L=0 THEN CALL BPUNCT(B$,R,C+47,P$(),1) 340 D=VAL(D2$[7,7]) @ IF L=0 OR (VAL(D1$[7,7]) # D) THEN CALL BDIGIT(B$,R,C+54,D$(),D) 345 D=VAL(D2$[8,8]) @ IF L=0 OR (VAL(D1$[8,8]) # D) THEN CALL BDIGIT(B$,R,C+64,D$(),D) 350 D1$=D2$ 355 END SUB 400 SUB BTIME(B$,D$(),P$(),R,C,T$) ! build-time 405 T1$=TIME$ @ L=LEN(T$) @ IF L=0 THEN T$="99:99:99" 410 D=VAL(T1$[1,1]) @ IF L=0 OR (VAL(T$[1,1]) # D) THEN CALL BDIGIT(B$,R,C,D$(),D) 415 D=VAL(T1$[2,2]) @ IF L=0 OR (VAL(T$[2,2]) # D) THEN CALL BDIGIT(B$,R,C+10,D$(),D) 420 IF L=0 THEN CALL BPUNCT(B$,R,C+20,P$(),0) 425 D=VAL(T1$[4,4]) @ IF L=0 OR (VAL(T$[4,4]) # D) THEN CALL BDIGIT(B$,R,C+27,D$(),D) 430 D=VAL(T1$[5,5]) @ IF L=0 OR (VAL(T$[5,5]) # D) THEN CALL BDIGIT(B$,R,C+37,D$(),D) 435 IF L=0 THEN CALL BPUNCT(B$,R,C+47,P$(),0) 440 D=VAL(T1$[7,7]) @ IF L=0 OR (VAL(T$[7,7]) # D) THEN CALL BDIGIT(B$,R,C+54,D$(),D) 445 D=VAL(T1$[8,8]) @ IF L=0 OR (VAL(T$[8,8]) # D) THEN CALL BDIGIT(B$,R,C+64,D$(),D) 450 T$=T1$ 455 END SUB 550 SUB BSETUP(B$) ! build-setup 555 B$=B$&CHR$(27)&"E"&CHR$(27)&"<" 560 END SUB 575 SUB BRESET(B$) ! build-reset 580 B$=B$&CHR$(27)&"E" 585 END SUB 600 SUB BFRAME(B$,R1,C1,R2,C2) ! build-frame 605 DEF FNC$(R,C)=CHR$(27)&"%"&CHR$(C)&CHR$(R) 610 V$=CHR$(124) @ H$="-" @ C$="+" 615 B$=B$&FNC$(R1,C1) 620 B$=B$&C$ @ FOR C=C1+1 TO C2-1 @ B$=B$&H$ @ NEXT C @ B$=B$&C$ 625 FOR R=R1+1 TO R2-1 630 B$=B$&FNC$(R,C1)&V$&FNC$(R,C2)&V$ 635 NEXT R 640 B$=B$&FNC$(R2,C1) 645 B$=B$&C$ @ FOR C=C1+1 TO C2-1 @ B$=B$&H$ @ NEXT C @ B$=B$&C$ 650 END SUB 700 SUB BDIGIT(B$,R,C,D$(),D) ! build-digit 705 DEF FNC$(R,C)=CHR$(27)&"%"&CHR$(C)&CHR$(R) 710 DEF FND$(N$,L)=N$[L*9+1,L*9+9] 715 FOR I=0 TO 6 720 B$=B$&FNC$(R+I,C)&FND$(D$(D),I) 725 NEXT I 730 END SUB 750 SUB BPUNCT(B$,R,C,P$(),P) ! build-punct 755 DEF FNC$(R,C)=CHR$(27)&"%"&CHR$(C)&CHR$(R) 760 DEF FNP$(P$,L)=P$[L*6+1,L*6+6] 765 FOR I=0 TO 6 770 B$=B$&FNC$(R+I,C)&FNP$(P$(P),I) 775 NEXT I 780 END SUB 800 SUB BFONT(D$(),P$()) ! build-font 810 D$(0)=" ##### ## ## ## #### #### ## ## ## ##### " ! 0 811 D$(1)=" ## #### ## ## ## ## ####### " ! 1 812 D$(2)=" ####### ## ## ## ####### ## ## #########" ! 2 813 D$(3)=" ####### ## ## ## ####### #### ## ####### " ! 3 814 D$(4)="## ## ## ## ## ## ## ######### ## ## " ! 4 815 D$(5)="########### ## ######## #### ## ####### " ! 5 816 D$(6)=" ####### ## #### ######## ## #### ## ####### " ! 6 817 D$(7)="########### ## ## ## ## ## ## " ! 7 818 D$(8)=" ####### ## #### ## ####### ## #### ## ####### " ! 8 819 D$(9)=" ####### ## #### ## ######## #### ## ####### " ! 9 820 P$(0)=" ## #### ## ## #### ## " ! : 821 P$(1)=" # # # ## # # # " ! / 830 END SUB 900 SUB ILSEND(B$,A) ! hp-il send 910 SEND UNT UNL LISTEN A MTA DATA B$ UNT UNL 920 END SUB