.LIST TTM .TITLE SEAOU OUTPUT ROUTINE FOR SEARCH .MCALL EXIT$S,QIOW$S,GTIM$,DIR$,PUT$ ; FF: .WORD 14 OUT: .BLKB 512 TIME: GTIM$ BUFT IEND: .ASCIZ /%3N/<11><11>/*****%M ITEMS FOUND*****/ ISTFF: .ASCII /%F/ IST: .ASCII /%NBIBLIOGRAPHY SEARCH ON %VA/<11><11>/%Y%3S%2Z%3SPAGE %M/ IST2: .ASCII /%NSEARCH TERM/<11>/%VA/ IST3: .ASCIZ /%NSEARCH RES/<11>/%VA%N/ .EVEN BUF: .WORD 0,NBUF BUFT: .BLKW 5. BUFS: .BLKW 10. ; .ENABL LSB SEAOU:: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) ADD @4(R5),TOTAL CMP TOTAL,#2200. BGT NEWPG TST NPR BEQ NEWPG CMP #5,NPR BLE NEWPG 10$: CALL IOUT TST R0 BGE 5$ IOT 5$: INC NPR INC NFND MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 RETURN ; NEWPG: MOV R5,-(SP) DIR$ #TIME INC NPAGE MOV N1,BUF MOV #BUFS,R2 MOV NPAGE,(R2)+ MOV N2,(R2)+ MOV #SBUF,(R2)+ MOV N3,(R2)+ MOV #RBUF,(R2)+ MOV #OUT,R0 MOV #IST,R1 MOV #BUF,R2 TST NPR BEQ 20$ MOV #ISTFF,R1 20$: CALL $EDMSG SUB #OUT,R0 ;GET # OF CHAR MOV (SP)+,R5 ;RESTORE CALLING ARG MOV R0,-(SP) ;SAVE BUFFER COUNT MOV @6(R5),R0 ;GET LUN CALL GETFD MOV (SP)+,R1 ;BUFFER COUNT MOV R5,-(SP) MOV #OUT,R2 MOV R2,R4 CALL CHRSCN ; QIOW$S #IO.WVB,#5,#23,,,,<#OUT,R0> MOV (SP)+,R5 MOV #1,NPR CLR TOTAL BR 10$ ; SEAEN:: MOV NFND,BUF MOV #OUT,R0 MOV #IEND,R1 MOV #BUF,R2 CALL $EDMSG SUB #OUT,R0 ;GET # OF CHAR MOV R0,-(SP) ;SAVE BUFFER COUNT MOV @2(R5),R0 ;GET LUN CALL GETFD MOV (SP)+,R1 ;BUFFER COUNT MOV #OUT,R2 MOV R2,R4 CALL CHRSCN CLR NPR CLR TOTAL RETURN ; TOTAL: .WORD 0 ; .CSECT SEADA NBUF: .BLKB 70. SBUF: .BLKB 70. RBUF: .BLKB 70. N1: .WORD 0 N2: .WORD 0 N3: .WORD 0 NPAGE: .WORD 0 NFND: .WORD 0 NPR: .WORD 0 IFIRST: .WORD 0 IIEND: .WORD 0 .END