;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
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