.NLIST .ENABL LC ;+ ; ; Free software BY ; Project Software & Development, Inc. ; ; This software is furnished for free and may be used and copied as ; desired. This software or any other copies thereof may be provided or ; otherwise made available to any other person. No title to and ; ownership of the software is hereby transferred or allowed. ; ; The information in this software is subject to change without notice ; and should not be construed as a commitment by PROJECT SOFTWARE ; AND DEVELOPMENT, INC. ; ; PROJECT SOFTWARE assumes no responsibility for the use or reliability ; of this software on any equipment whatsoever. ; ; Project Software & Development, Inc. ; 14 Story St. ; Cambridge, Ma. 02138 ; 617-661-1444 ; ; ; Title: MISPRE.MAC ; Author: Robin Miller ; Date: November 8, 1982 ; ; Description: ; ; Prefix file for MISH program. ; ; Modification History: ; ;- ; Local Equates: BELL = 7 ; ASCII for bell. HT = 9. ; ASCII for horizontal tab. LF = 10. ; ASCII for line feed. CR = 13. ; ASCII for carriage return. ESC = 27. ; ASCII for escape. SPACE = 32. ; ASCII for space. DELETE = 127. ; ASCII for delete. CVTSET = 37. ; Conversion offset count. MAXDUP = 37 ; Maximum duplicate count. MAXCNT = 77 ; Maximum non-duplicate count CMDSIZ = 256. ; Size of command line buffer. RECSIZ = 78. ; Size of input record buffer. ; RECSIZ = 80. ; Size of input record buffer. ERRSIZ = 80. ; Size of error message buffer. FILSIZ = 128. ; Maximum size for file names. BLKSIZ = 512. ; Size of block buffer (1 sector). BUFSIZ = 78. ; Size of transmit (output) buffer. ; BUFSIZ = 80. ; Size of transmit (output) buffer. ; BUFSAV = 2 ; Number of bytes to save at the ; ; end of the buffer. ; BUFEND = BUFSIZ-BUFSAV ; End of transmit buffer. bufend = blksiz*2 ; End of compress output buffer. ; Local equates for input file. INLUN = 2 ; Input file logical unit number. INEFN = 2 ; Input file event flag number. ; Local equates for output file. OUTLUN = 3 ; Output file logical unit number. OUTEFN = 3 ; Output file event flag number. ; Local equates for the terminal. TILUN = 4 ; Terminal input logical unit number. TIEFN = 4 ; Terminal input event flag number. TOLUN = 5 ; Terminal output logical unit number. TOEFN = 5 ; Terminal output event flag number. ERRLUN = 6 ; Error message logical unit number. ERREFN = 6 ; Error message event flah number. ; Macro to generate error message. .MACRO ERRMSG LABEL,MSG .NCHR $$$, .PSECT $ERMSG,RO,D,REL,CON LABEL: .ASCII \MSG\ .EVEN .PSECT MOV #LABEL,R1 MOV #$$$,R2 CALL OUTMSG .ENDM ;+ ; ; The format of the String Contol Byte (SCB) is: ; ; 80 40 20 10 8 4 2 1 (Hex) ; 7 6 5 4 3 2 1 0 ; --------------------------------- ; ! O ! K ! L ! J ! J ! J ! J ! J ! ; --------------------------------- ; ! ! ! ! ! ! ! ! ; ! !------------------------ ; ! K = 0 = Duplicate Character String: ; ! L = 0 = Duplicate Character is blank. ; ! L = 1 = Duplicate character is nonblank (and follows SCB). ; ! JJJJJ = Duplication count. ; ! ; ! K = 1 = Nonduplicate Character String. ; ! LJJJJJ = Character string length. ; ! ; !-> O = 0 = End of record (K L J J J J J = 0) ; O = 1 = All other SCB's. ; ; A String Control Byte with just bit 7 set means the record is ; continued in the next block. ; ;- ; String Control Byte bit definitions: B.MBON = 200 ; Must be on bit. B.NDUP = 100 ; Non-duplicate character string. B.NBLA = 40 ; Duplicate character is non-blank. .LIST