;UCS - CONVERTS ENTIRE TEXT TO UPPER CASE; ; EXCLUDING WHAT MAY BE IN QUOTES! ; ;WRITTEN BY: JALAL RAISSI ; ;EDIT HISTORY: ; 1.0 01-JUN-85 CREATED. /JER ; DAVE PALLMAN'S ENCODE WAS USED AS PROTOTYPE! ;FORMAT: ; .UCS FILENAME ; .UCS TEST.BAS ; VMAJOR=1 VMINOR=1 SEARCH SYS SEARCH SYSSYM .OFINI .OFDEF IN,D.DDB ;INPUT FILE .OFDEF OUT,D.DDB ;OUTPUT FILE .OFDEF KEY,512. ;ENCRYPTION KEY .OFSIZ MEMSIZ QT=D4 START: PHDR -1,0,PH$REE!PH$REU ;PROGRAM HEADER GETIMP MEMSIZ,A5 ;ALLOCATE IMPURE AREA HELP: BYP ;BYPASS LEADING WHITE SPACE LIN ;END OF LINE? JNE GETIN ; NO CRLF ;NEWLINE TYPECR <FUNCTION: CONVERTS TEXT TO UPPER CASE.> TYPECR <USAGE: .UCS FILENAME> TYPECR <EXAMPLE: .UCS TEST.BAS> CRLF ;NEWLINE EXIT ;EXIT GETIN: MOV A2,A3 ;SAVE LINE INDEX FSPEC IN(A5),BAS ;PROCESS FILESPEC INIT IN(A5) ;LOAD DRIVER, ALLOCATE BUFFER GETOUT: MOV A3,A2 ;RESTORE LINE INDEX FSPEC OUT(A5),BAS ;PROCESS FILESPEC INIT OUT(A5) ;LOAD DRIVER, ALLOCATE BUFFER MOVW #[$$$],OUT+D.EXT(A5) ;SET OUTPUT EXTENSION TO .$$$ OPNIN: OPENI IN(A5) ;OPEN INPUT FILE OPNOUT: LOOKUP OUT(A5) ;CHECK FOR EXISTENCE OF OUTPUT FILE BNE 10$ ;NOT FOUND DSKDEL OUT(A5) ;DELETE OUTPUT FILE 10$: OPENO OUT(A5) ;OPEN OUTPUT FILE GETBYT: CTRLC ENDFIL ;BRANCH ON ^C FILINB IN(A5) ;READ BYTE TST IN+D.SIZ(A5) ;TEST FOR END-OF-FILE BEQ ENDFIL ;BRANCH ON END-OF-FILE CMPB D1,#42 ;IS IT A " BNE SKPQT TSTB QT BEQ SET CLR QT BR SKPQT SET: MOVB #1,QT SKPQT: CMPB D1,#12 ;IS IT A LF BNE SKPLF CLR QT SKPLF: TSTB QT BNE TTY UCS D1 ;CONVERT CHARACTER TO UCS TTY: TTY PUTBYT: FILOTB OUT(A5) ;OUTPUT UCSED BYTE BR GETBYT ;LOOP TILL END OF FILE ENDFIL: CLOSE IN(A5) CLOSE OUT(A5) CTRLC ABORT DELIN: DSKDEL IN(A5) RENOUT: MOV IN+D.FIL(A5),OUT+D.DDB(A5) MOVW IN+D.EXT(A5),OUT+D.DDB+4(A5) DSKREN OUT(A5) EXIT ABORT: DSKDEL OUT(A5) EXIT END