;*; Updated on 06-Dec-91 at 10:48 AM by Michele Tonti; edit time: 0:00:10 ;*************************** AMUS Program Label ****************************** ; Filename: WRAP.M68 Date: 12/6/91 ; Category: UTIL Hash Code: 304-132-200-010 Version: 1.0 ; Initials: KUNI/AM Name: RENE S. HOLLAN ; Company: UDISCO LTD. Telephone #: 5144818107 ; Related Files: ; Min. Op. Sys.: Expertise Level: ; Special: ; Description: This program will wrap the input file at a specified column ; to an output file. If no column specified, 80 is assumed. ; ;***************************************************************************** ;************************************************************************* ;* * ;* WRAP COMMAND PROGRAM - Ver. 1.0 * ;* * ;************************************************************************* ; ; NOTICE ; ;All rights reserved. This software is the property of UDISCO LTD. and ;the material contained herein is the proprietary property and trade ;secrets of UDISCO LTD., embodying substantial creative efforts and ;confidential information, ideas and expressions, no part of which may be ;reproduced or transmitted in any form or by any means, electronic, ;mechanical, or otherwise, including photocopying or input into any ;information storage or retrieval system without the express written ;permission of UDISCO LTD. ; ;CAUTION: Unauthorized distribution or reproduction of this material may ;subject you to legal action. ; ; ; WRAP: Program to wrap input file at specified column to ; output file. ; ; SYNTAX: WRAP <input file> <output file> <wrap column> ; ; <wrap column> defaults to 80. ; ; Author: Rene S. Hollan ; ; COPYRIGHT (C) 1988 - Udisco Ltd., Montreal, Canada. ; ; Edit History ; ------------ ; ; [100] 11 May, 1988 ; Coding starts. /RSH ; ; SEARCH SYS SEARCH SYSSYM .OFINI .OFDEF IDDB,D.DDB ; Input DDB .OFDEF ODDB,D.DDB ; Output DDB .OFDEF LENGTH,4 ; line length .OFSIZ IMPSIZ ; impure area size VMAJOR=1 ; major version VMINOR=0 ; minor version VSUB=0 ; sub version VEDIT=100. ; edit version LF=10. ; line feed CR=13. ; carriage return WRAP: PHDR -1,,PH$REU!PH$REE ; program header GETIMP IMPSIZ,A0 ; A0 --> impure area FSPEC IDDB(A0) ; FSPEC Input DDB FSPEC ODDB(A0) ; FSPEC Output DDB INIT IDDB(A0) ; INIT the Input DDB INIT ODDB(A0) ; INIT the Output DDB OPENI IDDB(A0) ; open files OPENO ODDB(A0) BYP ; skip blanks MOV #80.,D1 ; assume nothing left TRM ; end of line BEQ 8$ ; yup! GTDEC ; get wrap column 8$: MOV D1,LENGTH(A0) ; and save it 10$: CLR D0 ; clear character counter 20$: CTRLC EXIT ; in case bored FILINB IDDB(A0) ; read a character TST IDDB+D.SIZ(A0) ; end of file? BEQ EXIT ; yup! - all done FILOTB ODDB(A0) ; and output it CMPB D1,#LF ; is it a line feed? BEQ 10$ ; yup! - restart counter INC D0 ; increment counter CMP D0,LENGTH(A0) ; too long? BLT 20$ ; nope MOVB #CR,D1 ; CR-LF the file FILOTB ODDB(A0) MOVB #LF,D1 FILOTB ODDB(A0) BR 10$ EXIT: CLOSE IDDB(A0) ; close files CLOSE ODDB(A0) EXIT END