1 ! 2 .DEFINE .BUFBYTZ% = 200% 3 MAP (DIR.) QIOW$=2% 4 MAP (ERR.) ERRBLK$=2%, NUMBYT% 5 MAP (BUF.) BUF$=.BUFBYTZ% 6 MAP (MASK.) CHARMASK$=32% 7 LSET CHARMASK$ = STRING$(32%,255%) ! any character is a terminator 8 CALL ADR BY REF (CHARMASK$,C%) 9 LSET QIOW$ = CHR$(3%) + CHR$(12%) 10 CALL ADR BY REF (ERRBLK$,E%) 20 INPUT "TERMINAL NAME (DD) ";DD$ 40 INPUT "TERMINAL NUMBER (N) ";N% 70 INPUT "LOGICAL UNIT #";LUN% 80 CALL DIR BY REF (4%*256%+7%,LUN%,DD$,N%) !ALUN 90 GOSUB 900 100 INPUT "EVENT FLAG # =",V% 110 CALL DIR BY REF (QIOW$,3%*256%,LUN%,V%,E%,0%,0%,0%,0%,0%,0%,0%) !IOATT 115 GOSUB 900 120 INPUT "STRING TO TYPE=";S$ 130 L% = LEN(S$) 135 CALL ADR BY REF (S$,A%) 140 CALL DIR BY REF (QIOW$,256%+8%,LUN%,V%,E%,0%,A%,L%,0%,0%,0%,0%) !IOWLB 145 GOSUB 900 160 LSET BUF$ = STRING$(.BUFBYTZ%,0%) ! in case buffer debug needed 170 CALL ADR BY REF (BUF$,A%) 180 CALL DIR BY REF (QIOW$,10%*256%+8%+16%+128%+1%,LUN%,V%,E%,0%,A%,1%,1%,C%,0%,0%) !IORTT 190 GOSUB 900 200 C$ = CHR$(RE%) 210 PRINT ASCII(C$);"=";C$ 220 INPUT "READ AGAIN?";Y$ 230 IF Y$="Y" THEN 180 240 CALL DIR BY REF (QIOW$,4%*256%,LUN%,V%,E%,0%,0%,0%,0%,0%,0%,0%) !IODET 250 GOSUB 900 260 GOTO 20 900 DE% = ASCII(SEG$(ERRBLK$,1,1)) 910 RE% = ASCII(SEG$(ERRBLK$,2,2)) 920 PRINT "DIR$ STATUS =";DE%,"SPECIFICALLY ";RE% 930 PRINT "CHARACTER COUNT =";NUMBYT% 940 RETURN