;***************************************************************************; ; ; ; ; ; VUECOM ; ; VUE-like File Compare ; ; ; ; ; ;***************************************************************************; ;1.0 01-Nov-84 DFP written by D. Pallmann. VMAJOR=1 SEARCH SYS SEARCH SYSSYM SEARCH TRM SEARCH CRT IMP=A5 TAB=11 LF=12 CR=15 ESC=33 .OFINI .OFDEF FILE1,D.DDB ;DDB for 1st file .OFDEF FILE2,D.DDB ;DDB for 2nd file .OFDEF BASE1,4 ;base of 1st file .OFDEF BASE2,4 ;base of 2nd file .OFSIZ IMPSIZ START: PHDR -1,0,PH$REE!PH$REU ;program header GETIMP IMPSIZ,IMP ;allocate impure area CHKLIN: BYP LIN BNE GETFLS HELP: TYPECR JMP EXIT GETFLS: FSPEC FILE1(IMP),M68 ;load DDB w/spec INIT FILE1(IMP) ;fetch driver, allocate buffer FSPEC FILE2(IMP),M68 ;load DDB w/spec INIT FILE2(IMP) ;fetch driver, allocate buffer LOAD: FETCH FILE1(IMP),A4 ;load file 1 JNE EXIT ;branch on error MOV A4,BASE1(IMP) ;save base FETCH FILE2(IMP),A4 ;load file 2 JNE EXIT ;branch on error MOV A4,BASE2(IMP) ;save base SETUP: CLS LOW TTYL DASHES CRT #12.,#1 TTYL DASHES CRT #23.,#1 TTYL DASHES CRT #1,#65. PFILE FILE1(IMP) CRT #23.,#65. PFILE FILE2(IMP) MOV BASE1(IMP),A4 CLR D5 CRT #2,#1 CALL DISPLAY MOV BASE2(IMP),A4 CLR D5 CRT #13.,#1 CALL DISPLAY MOV BASE1(IMP),A4 CLR D5 JOBIDX A0 MOV JOBTRM(A0),A1 ORW #T$IMI!T$ECS,T.STS(A1) READY: CMM BASE1(IMP),A4 BNE 10$ CRT #2,#1 BR 20$ 10$: CRT #13.,#1 20$: KBD EXIT EVAL: LEA A0,CMDTBL MOV #-2,D0 10$: TSTB @A0 BEQ READY ADDW #2,D0 CMMB (A0)+,D1 BNE 10$ BRANCH: MOVW JMPTBL[~D0],D0 JMP JMPTBL[~D0] CMDTBL: BYTE 'J-'@ BYTE 'K-'@ BYTE 'R-'@ BYTE 'T-'@ BYTE TAB BYTE ESC BYTE 0 EVEN JMPTBL: WORD DOWN-JMPTBL WORD UP-JMPTBL WORD BACK-JMPTBL WORD FWD-JMPTBL WORD SWITCH-JMPTBL WORD EXIT-JMPTBL PAGE SWITCH: CMM BASE1(IMP),A4 BEQ 10$ MOV BASE1(IMP),A4 CRT #2,#1 CALL DISPLAY JMP READY 10$: MOV BASE2(IMP),A4 CRT #13.,#1 CALL DISPLAY JMP READY PAGE BACK: TST D5 JEQ READY MOV A4,A0 ADD D5,A0 MOV #10.,D0 10$: DEC D5 BEQ 30$ CMPB -(A0),#LF BNE 10$ SOB D0,10$ 20$: INC D5 30$: CALL DISPLAY JMP READY PAGE FWD: MOV A4,A0 ADD D5,A0 MOV #10.,D2 10$: MOV #80.,D0 20$: INC D5 CMPB (A0)+,#LF BEQ 30$ SOB D0,20$ 30$: SOB D2,10$ CALL DISPLAY JMP READY PAGE DOWN: MOV A4,A0 ADD D5,A0 MOV #80.,D0 10$: INC D5 CMPB (A0)+,#LF BEQ 20$ SOB D0,10$ 20$: CALL DISPLAY JMP READY PAGE UP: TST D5 JEQ READY MOV A4,A0 ADD D5,A0 SUB #2,A0 SUB #2,D5 10$: DEC D5 BEQ 30$ CMPB -(A0),#LF BNE 10$ 20$: INC D5 30$: CALL DISPLAY JMP READY PAGE EXIT: CRLF EXIT DISPLAY: HIGH MOV #CR,D1 TTY MOV #10.,D0 MOV A4,A0 ADD D5,A0 CLR D2 10$: CTRLC EXIT MOVB (A0)+,D1 CMPB D1,#CR BNE 20$ SAVE D1 CLREOL REST D1 20$: TTY INC D2 CMPB D1,#LF BNE 30$ 24$: SOB D0,10$ RTN 30$: CMPB D1,#CR BNE 10$ INC D2 CMPB D2,#80. BEQ 24$ BR 10$ DASHES: ASCIZ /-------------------------------------------------------------------------------/ EVEN END .