TITLE TTYDIR A=1 B=2 C=3 D=4 E=5 F=6 G=7 IN=16 OUT=17 GO: .OPEN IN,[SIXBIT \ TTY.FILE.(DIR)\] .VALUE .OPEN OUT,[SIXBIT \ 1TTYTTYDIROUTPUT\] .VALUE SETZ B, ;B COUNT TOTAL NUMBER OF CHARS SETO D, ;D COUNTS LINES OF DATA FILL0: SETZ E, ;E COUNTS CHARS WITHIN LINE FILL: .IOT IN,A CAIN A,^M JRST FILL CAIN A,^J AOJA D,FILL0 CAIN A,^L JRST ZAP MOVEM A,BUF(B) DPB E,[221100,,BUF(B)] DPB D,[331100,,BUF(B)] ADDI E,1 AOJA B,FILL ZAP: .RDTIME A, .IOT OUT,[^P] .IOT OUT,["C] MOVEI C,(B) SUBI B,1 FIND: IMULI A,314713 ADDI A,461752 MOVE E,A IDIVI E,(B) MOVE E,F FIND1: SKIPL BUF(F) JRST FOUND CAIE F,(B) AOJA F,FIND1 SETZ F, FIND2: SKIPL BUF(F) JRST FOUND CAIE F,(E) AOJA F,FIND2 .VALUE FOUND: LDB G,[331100,,BUF(F)] ADDI G,10 .IOT OUT,[^P] .IOT OUT,["V] .IOT OUT,G LDB G,[221100,,BUF(F)] ADDI G,10 .IOT OUT,[^P] .IOT OUT,["H] .IOT OUT,G HRRZ G,BUF(F) .IOT OUT,G SETOM BUF(F) SOJG C,FIND .IOT OUT,[^P] .IOT OUT,["H] .IOT OUT,[10] .IOT OUT,[^P] .IOT OUT,["V] ADDI D,10 .IOT OUT,D .BREAK 16,160000 BUF: BLOCK 35.*64. EBUF: END GO