WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 1 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (1) ; 0001 %title 'WFLP' ; 0002 %sbttl 'READ AND TRANSLATE WP FORMAT FLOPPIES' ; 0003 MODULE WFLP (MAIN = WFLP,IDENT = '01.00') = ; 0004 BEGIN ; 0005 ; 0006 ! ; 0007 ! Free software BY ; 0008 ! Project Software & Development, Inc. ; 0009 ! ; 0010 ! This software is furnished for free and may be used and copied as ; 0011 ! desired. This software or any other copies thereof may be provided ; 0012 ! or otherwise made available to any other person. No title to and ; 0013 ! ownership of the software is hereby transferred or allowed. ; 0014 ! ; 0015 ! The information in this software is subject to change without notice ; 0016 ! and should not be construed as a commitment by PROJECT SOFTWARE ; 0017 ! AND DEVELOPMENT, INC. ; 0018 ! ; 0019 ! PROJECT SOFTWARE assumes no responsibility for the use or reliability ; 0020 ! of this software on any equipment whatsoever. ; 0021 ! ; 0022 ! Project Software & Development, Inc. ; 0023 ! 14 Story St. ; 0024 ! Cambridge, Ma. 02138 ; 0025 ! 617-661-1444 ; 0026 ! ; 0027 ; 0028 !++ ; 0029 ! FACILITY: ; 0030 ! ; 0031 ! ABSTRACT: ; 0032 ! READ AND CONVERT WORD PROCESSOR FLOPPIES ; 0033 ! ; 0034 ! ENVIRONMENT: ; 0035 ! REQUIRES PHYSICAL IO PRIV ; 0036 ! ; 0037 ! AUTHOR: V. GRAHAM , CREATION DATE: OCT 1981 ; 0038 ! ; 0039 ! MODIFIED BY: ; 0040 ! ; 0041 ! , : VERSION ; 0042 ! 01 - ; 0043 !-- WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 2 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (2) ; 0044 ! ; 0045 ! TABLE OF CONTENTS: ; 0046 ! ; 0047 ; 0048 FORWARD ROUTINE ; 0049 WFLP, ; 0050 GETDOC, ; 0051 PUTBLK, ; 0052 HOME, ; 0053 UPCASE : NOVALUE, ; 0054 USCRAM, ; 0055 DEBLK, ; 0056 DISNUM, ; 0057 DOCNUM, ; 0058 GETBLK, ; 0059 CVT_A_X, ; 0060 PUT_OUT_REC, ; 0061 OPEN_OUT_FILE, ; 0062 CLOSE_OUT_FILE; ; 0063 ; 0064 ! ; 0065 ! INCLUDE FILES: ; 0066 ! ; 0067 LIBRARY ; 0068 'SYS$LIBRARY:LIB'; ; 0069 ! ; 0070 ! MACROS: ; 0071 ! ; 0072 ; 0073 ! ; 0074 ! EQUATED SYMBOLS: ; 0075 ! ; 0076 ; 0077 BIND ; 0078 CRLF = UPLIT (BYTE(10,13)); ; 0079 ! ; 0080 ! OWN STORAGE: ; 0081 ! ; 0082 OWN ; 0083 NULL_LINE : VECTOR[2] INITIAL(2,CRLF), ; 0084 O_CHAN : WORD, ; 0085 INCHAN : WORD, ; 0086 INDEX_HEADER : BYTE INITIAL(0), ; 0087 DEBUG_FLAG : BYTE INITIAL(0), ; 0088 OUT_FILE_NAME_LEN, ; 0089 ; 0090 ; P 0091 OUT_FILE_FAB : $FAB (FAC=PUT ; 0092 ,RAT=CR), ; 0093 ; 0094 OUT_FILE_RAB : $RAB (FAB=OUT_FILE_FAB); ; 0095 ! ; 0096 ! EXTERNAL REFERENCES: ; 0097 ! ; 0098 EXTERNAL ROUTINE ; 0099 LIB$GET_INPUT, ; 0100 LIB$PUT_OUTPUT; WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 3 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) ; 0101 ROUTINE WFLP = ; 0102 ; 0103 !++ ; 0104 ! FUNCTIONAL DESCRIPTION: ; 0105 ! ; 0106 ! ; 0107 ! FORMAL PARAMETERS: ; 0108 ! ; 0109 ! NONE ; 0110 ! ; 0111 ! IMPLICIT INPUTS: ; 0112 ! ; 0113 ! NONE ; 0114 ! ; 0115 ! IMPLICIT OUTPUTS: ; 0116 ! ; 0117 ! NONE ; 0118 ! ; 0119 ! ROUTINE VALUE: ; 0120 ! COMPLETION CODES: ; 0121 ! ; 0122 ! NONE ; 0123 ! ; 0124 ! SIDE EFFECTS: ; 0125 ! ; 0126 ! NONE ; 0127 ! ; 0128 !-- ; 0129 ; 0130 BEGIN ; 0131 LITERAL ; 0132 MAX_DOC = 200; ; 0133 LOCAL ; 0134 STATUS; ; 0135 ; 0136 OWN ; 0137 OUT_FILE_NAME_ADDR : VECTOR[64,BYTE], ; 0138 OUT_FILE_NAME_DESC : VECTOR[2] INITIAL (64,OUT_FILE_NAME_ADDR), ; 0139 DOC_NO : VECTOR[4,BYTE], ; 0140 DOC_NO_DESC : VECTOR[2,LONG] INITIAL (4,DOC_NO), ; 0141 DOC_INDEX, ; 0142 IN_LEN, ; 0143 INAM_ADDR : VECTOR[32,BYTE], ; 0144 INAM : VECTOR[2] INITIAL (32,INAM_ADDR), ; 0145 OUTBUF : VECTOR[512,BYTE], ; 0146 INBUF :VECTOR[512,BYTE], ; 0147 USCRAM_VEC : VECTOR[384,WORD], ; 0148 HOME_VEC : VECTOR[384,WORD], ; 0149 DOC_HDRVEC : VECTOR[384,WORD], ; 0150 BLK_NUM; ; 0151 LIB$PUT_OUTPUT($DESCRIPTOR(' ')); ; 0152 LIB$PUT_OUTPUT($DESCRIPTOR(' WFLP V1.00')); ; 0153 ; 0154 LIB$PUT_OUTPUT($DESCRIPTOR(' ')); ; 0155 WHILE .IN_LEN EQL 0 DO ; 0156 LIB$GET_INPUT(INAM,$DESCRIPTOR('Floppy drive (example DYA1:) : ') ; 0157 ,IN_LEN); WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 4 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) ; 0158 ; 0159 INAM[0] = .IN_LEN; ; 0160 ; 0161 UPCASE(INAM[0],.INAM[1]); ; 0162 LIB$PUT_OUTPUT($DESCRIPTOR(' ')); ; 0163 LIB$PUT_OUTPUT($DESCRIPTOR('Document # 1 is the floppy index.')); ; 0164 LIB$PUT_OUTPUT($DESCRIPTOR(' ')); ; 0165 LIB$PUT_OUTPUT($DESCRIPTOR('Type E to exit program')); ; 0166 ; 0167 ; 0168 IF NOT (STATUS = ; 0169 $ASSIGN (CHAN = INCHAN,DEVNAM=INAM)) ; 0170 THEN SIGNAL (.STATUS); ; 0171 ; 0172 IF NOT (STATUS = ; 0173 $ASSIGN (CHAN = O_CHAN,DEVNAM=$DESCRIPTOR('TT'))) ; 0174 THEN SIGNAL(.STATUS); ; 0175 ; 0176 !++ ; 0177 ! GET HOME BLOCK ; 0178 !-- ; 0179 BLK_NUM = 2; ! HOME BLOCK ; 0180 GETBLK(BLK_NUM,INBUF); ! GET IT ; 0181 USCRAM(INBUF,HOME_VEC); ! UNSCRAMBLE IT ; 0182 HOME(HOME_VEC); ! DISPLAY IT ; 0183 ; 0184 BEGIN ! LOCAL LOOP BODY ; 0185 BIND HEADER_BLK_PTR = HOME_VEC[10]:VECTOR[,WORD]; ! PTR TO FIRST DOC HEADER ; 0186 ; 0187 !++ ; 0188 ! THE DIRECTORY IS DOCUMENT #1 ; 0189 !-- ; 0190 WHILE 1 DO ; 0191 BEGIN ; 0192 IN_LEN = 0; ; 0193 LIB$PUT_OUTPUT($DESCRIPTOR(' ')); ; 0194 WHILE .IN_LEN EQL 0 DO ; 0195 LIB$GET_INPUT(DOC_NO_DESC,$DESCRIPTOR('Document # : '), IN_LEN); ; 0196 IF .DOC_NO[0] EQL %C'E' OR .DOC_NO[0] EQL %C'e' THEN EXITLOOP; ; 0197 DOC_NO = CVT_A_X(IN_LEN,DOC_NO); ; 0198 IF .DOC_NO EQL 1 THEN INDEX_HEADER = 1 ELSE INDEX_HEADER = 0; ; 0199 ; 0200 DOC_INDEX = .DOC_NO - 1; ; 0201 ; 0202 IF .DOC_INDEX LSS 0 OR .DOC_INDEX GTR MAX_DOC THEN ; 0203 LIB$PUT_OUTPUT($DESCRIPTOR('Invalid document number')) ; 0204 ELSE ; 0205 BEGIN ; 0206 OUT_FILE_NAME_LEN = 0; ; 0207 LIB$PUT_OUTPUT($DESCRIPTOR(' ')); ; 0208 LIB$GET_INPUT(OUT_FILE_NAME_DESC ; 0209 ,$DESCRIPTOR('Output file name (default SYS$OUTPUT): ') ; 0210 ,OUT_FILE_NAME_LEN); ; 0211 ; 0212 IF .OUT_FILE_NAME_LEN NEQ 0 THEN ; 0213 OPEN_OUT_FILE(OUT_FILE_NAME_LEN,OUT_FILE_NAME_ADDR); ; 0214 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 5 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) ; 0215 IF .HEADER_BLK_PTR[.DOC_INDEX] EQL 0 THEN ; 0216 LIB$PUT_OUTPUT($DESCRIPTOR('Document does not exsit')) ; 0217 ELSE ; 0218 BEGIN ; 0219 GETBLK(HEADER_BLK_PTR[.DOC_INDEX],INBUF); ; 0220 USCRAM(INBUF,DOC_HDRVEC); ; 0221 GETDOC(DOC_HDRVEC); ; 0222 IF .OUT_FILE_NAME_LEN NEQ 0 THEN CLOSE_OUT_FILE(); ; 0223 END; ; 0224 END; ; 0225 ; 0226 END; !OF WHILE ; 0227 ; 0228 END; ! OF BEGIN LOCAL LOOP BODY ; 0229 ; 0230 RETURN 1; ; 0231 END; !End of WPFLP .TITLE WFLP WFLP .IDENT \01.00\ .PSECT $PLIT$,NOWRT,NOEXE,2 P.AAA: .BYTE 10, 13 ; 0D 0A 00000 P.AAC: .ASCII \ \ ; 20 00002 .BLKB 1 ; 00003 P.AAB: .LONG 1 ; 00000001 00004 .ADDRESS P.AAC ; 00000000' 00008 P.AAE: .ASCII \ WFLP V1.00\ ; 20 50 4C 46 57 20 20 20 0000C ; 30 30 2E 31 56 20 00014 .BLKB 2 ; 0001A P.AAD: .LONG 14 ; 0000000E 0001C .ADDRESS P.AAE ; 00000000' 00020 P.AAG: .ASCII \ \ ; 20 00024 .BLKB 3 ; 00025 P.AAF: .LONG 1 ; 00000001 00028 .ADDRESS P.AAG ; 00000000' 0002C P.AAI: .ASCII \Floppy drive (example DYA1:) : \; 64 20 79 70 70 6F 6C 46 00030 ; 78 65 28 20 65 76 69 72 00038 ; 59 44 20 65 6C 70 6D 61 00040 ; 20 3A 20 29 3A 31 41 00048 .BLKB 1 ; 0004F P.AAH: .LONG 31 ; 0000001F 00050 .ADDRESS P.AAI ; 00000000' 00054 P.AAK: .ASCII \ \ ; 20 00058 .BLKB 3 ; 00059 P.AAJ: .LONG 1 ; 00000001 0005C .ADDRESS P.AAK ; 00000000' 00060 P.AAM: .ASCII \Document # 1 is the floppy index.\ ; 74 6E 65 6D 75 63 6F 44 00064 ; 20 73 69 20 31 20 23 20 0006C ; 70 6F 6C 66 20 65 68 74 00074 ; 78 65 64 6E 69 20 79 70 0007C ; 2E 00084 .BLKB 3 ; 00085 P.AAL: .LONG 33 ; 00000021 00088 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 6 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) .ADDRESS P.AAM ; 00000000' 0008C P.AAO: .ASCII \ \ ; 20 00090 .BLKB 3 ; 00091 P.AAN: .LONG 1 ; 00000001 00094 .ADDRESS P.AAO ; 00000000' 00098 P.AAQ: .ASCII \Type E to exit program\ ; 74 20 45 20 65 70 79 54 0009C ; 70 20 74 69 78 65 20 6F 000A4 ; 6D 61 72 67 6F 72 000AC .BLKB 2 ; 000B2 P.AAP: .LONG 22 ; 00000016 000B4 .ADDRESS P.AAQ ; 00000000' 000B8 P.AAS: .ASCII \TT\ ; 54 54 000BC .BLKB 2 ; 000BE P.AAR: .LONG 2 ; 00000002 000C0 .ADDRESS P.AAS ; 00000000' 000C4 P.AAU: .ASCII \ \ ; 20 000C8 .BLKB 3 ; 000C9 P.AAT: .LONG 1 ; 00000001 000CC .ADDRESS P.AAU ; 00000000' 000D0 P.AAW: .ASCII \Document # : \ ; 74 6E 65 6D 75 63 6F 44 000D4 ; 20 3A 20 23 20 000DC .BLKB 3 ; 000E1 P.AAV: .LONG 13 ; 0000000D 000E4 .ADDRESS P.AAW ; 00000000' 000E8 P.AAY: .ASCII \Invalid document number\ ; 20 64 69 6C 61 76 6E 49 000EC ; 74 6E 65 6D 75 63 6F 64 000F4 ; 72 65 62 6D 75 6E 20 000FC .BLKB 1 ; 00103 P.AAX: .LONG 23 ; 00000017 00104 .ADDRESS P.AAY ; 00000000' 00108 P.ABA: .ASCII \ \ ; 20 0010C .BLKB 3 ; 0010D P.AAZ: .LONG 1 ; 00000001 00110 .ADDRESS P.ABA ; 00000000' 00114 P.ABC: .ASCII \Output file name (default SYS$OUTPUT): \ ; 66 20 74 75 70 74 75 4F 00118 ; 65 6D 61 6E 20 65 6C 69 00120 ; 6C 75 61 66 65 64 28 20 00128 ; 55 4F 24 53 59 53 20 74 00130 ; 20 3A 29 54 55 50 54 00138 .BLKB 1 ; 0013F P.ABB: .LONG 39 ; 00000027 00140 .ADDRESS P.ABC ; 00000000' 00144 P.ABE: .ASCII \Document does not exsit\ ; 74 6E 65 6D 75 63 6F 44 00148 ; 6F 6E 20 73 65 6F 64 20 00150 ; 74 69 73 78 65 20 74 00158 .BLKB 1 ; 0015F P.ABD: .LONG 23 ; 00000017 00160 .ADDRESS P.ABE ; 00000000' 00164 .PSECT $OWN$,NOEXE,2 NULL_LINE: .LONG 2 ; 00000002 00000 .ADDRESS CRLF ; 00000000' 00004 O_CHAN: .BLKB 2 ; 00008 INCHAN: .BLKB 2 ; 0000A WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 7 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) INDEX_HEADER: .BYTE 0 ; 00 0000C DEBUG_FLAG: .BYTE 0 ; 00 0000D .BLKB 2 ; 0000E OUT_FILE_NAME_LEN: .BLKB 4 ; 00010 OUT_FILE_FAB: .BYTE 3 ; 03 00014 .BYTE 80 ; 50 00015 .WORD 0 ; 0000 00016 .LONG 0 ; 00000000 00018 .LONG 0 ; 00000000 0001C .LONG 0 ; 00000000 00020 .LONG 0 ; 00000000 00024 .WORD 0 ; 0000 00028 .BYTE 1 ; 01 0002A .BYTE 0 ; 00 0002B .LONG 0 ; 00000000 0002C .BYTE 0 ; 00 00030 .BYTE 0 ; 00 00031 .BYTE 2 ; 02 00032 .BYTE 2 ; 02 00033 .LONG 0 ; 00000000 00034 .LONG 0 ; 00000000 00038 .LONG 0 ; 00000000 0003C .LONG 0 ; 00000000 00040 .LONG 0 ; 00000000 00044 .BYTE 0 ; 00 00048 .BYTE 0 ; 00 00049 .WORD 0 ; 0000 0004A .LONG 0 ; 00000000 0004C .WORD 0 ; 0000 00050 .BYTE 0 ; 00 00052 .BYTE 0 ; 00 00053 .LONG 0 ; 00000000 00054 .LONG 0 ; 00000000 00058 .LONG 0[2] ; 00000000# 0005C OUT_FILE_RAB: .BYTE 1 ; 01 00064 .BYTE 68 ; 44 00065 .WORD 0 ; 0000 00066 .LONG 0 ; 00000000 00068 .LONG 0 ; 00000000 0006C .LONG 0 ; 00000000 00070 .WORD 0[3] ; 0000# 00074 .WORD 0 ; 0000 0007A .LONG 0 ; 00000000 0007C .WORD 0 ; 0000 00080 .BYTE 0 ; 00 00082 .BYTE 0 ; 00 00083 .WORD 0 ; 0000 00084 .WORD 0 ; 0000 00086 .LONG 0 ; 00000000 00088 .LONG 0 ; 00000000 0008C .LONG 0 ; 00000000 00090 .LONG 0 ; 00000000 00094 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 8 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) .BYTE 0 ; 00 00098 .BYTE 0 ; 00 00099 .BYTE 0 ; 00 0009A .BYTE 0 ; 00 0009B .LONG 0 ; 00000000 0009C .ADDRESS OUT_FILE_FAB ; 00000000' 000A0 .LONG 0 ; 00000000 000A4 OUT_FILE_NAME_ADDR: .BLKB 64 ; 000A8 OUT_FILE_NAME_DESC: .LONG 64 ; 00000040 000E8 .ADDRESS OUT_FILE_NAME_ADDR ; 00000000' 000EC DOC_NO: .BLKB 4 ; 000F0 DOC_NO_DESC: .LONG 4 ; 00000004 000F4 .ADDRESS DOC_NO ; 00000000' 000F8 DOC_INDEX: .BLKB 4 ; 000FC IN_LEN: .BLKB 4 ; 00100 INAM_ADDR: .BLKB 32 ; 00104 INAM: .LONG 32 ; 00000020 00124 .ADDRESS INAM_ADDR ; 00000000' 00128 OUTBUF: .BLKB 512 ; 0012C INBUF: .BLKB 512 ; 0032C USCRAM_VEC: .BLKB 768 ; 0052C HOME_VEC: .BLKB 768 ; 0082C DOC_HDRVEC: .BLKB 768 ; 00B2C BLK_NUM:.BLKB 4 ; 00E2C CRLF= P.AAA HEADER_BLK_PTR= HOME_VEC+20 .EXTRN LIB$GET_INPUT, LIB$PUT_OUTPUT, SYS$ASSIGN .PSECT $CODE$,NOWRT,2 WFLP: .WORD ^M ;Save R2,R3,R4,R5,R6,R7,R8 0101 01FC 00000 MOVAB W^LIB$GET_INPUT, R8 ;LIB$GET_INPUT, R8 58 0000G CF 9E 00002 MOVAB G^LIB$SIGNAL, R7 ;LIB$SIGNAL, R7 57 00000000G 00 9E 00007 MOVAB @#SYS$ASSIGN, R6 ;@#SYS$ASSIGN, R6 56 00000000G 9F 9E 0000E MOVAB W^LIB$PUT_OUTPUT, R5 ;LIB$PUT_OUTPUT, R5 55 0000G CF 9E 00015 MOVAB W^P.AAB, R4 ;P.AAB, R4 54 0000' CF 9E 0001A MOVAB W^IN_LEN, R3 ;IN_LEN, R3 53 0000' CF 9E 0001F PUSHL R4 ;R4 0151 54 DD 00024 CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 00026 PUSHAB 24(R4) ;P.AAD 0152 18 A4 9F 00029 CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 0002C PUSHAB 36(R4) ;P.AAF 0154 24 A4 9F 0002F CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 00032 1$: TSTL (R3) ;IN_LEN 0155 63 D5 00035 BNEQ 2$ ;2$ 0D 12 00037 PUSHL R3 ;R3 0156 53 DD 00039 PUSHAB 76(R4) ;P.AAH 4C A4 9F 0003B PUSHAB 36(R3) ;INAM 24 A3 9F 0003E WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 9 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) CALLS #3, (R8) ;#3, LIB$GET_INPUT 68 03 FB 00041 BRB 1$ ;1$ 0155 EF 11 00044 2$: MOVL (R3), 36(R3) ;IN_LEN, INAM 0159 24 A3 63 D0 00046 PUSHL 40(R3) ;INAM+4 0161 28 A3 DD 0004A PUSHAB 36(R3) ;INAM 24 A3 9F 0004D CALLS #2, W^UPCASE ;#2, UPCASE 0000V CF 02 FB 00050 PUSHAB 88(R4) ;P.AAJ 0162 58 A4 9F 00055 CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 00058 PUSHAB 132(R4) ;P.AAL 0163 0084 C4 9F 0005B CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 0005F PUSHAB 144(R4) ;P.AAN 0164 0090 C4 9F 00062 CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 00066 PUSHAB 176(R4) ;P.AAP 0165 00B0 C4 9F 00069 CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 0006D CLRQ -(SP) ;-(SP) 0169 7E 7C 00070 PUSHAB -246(R3) ;INCHAN FF0A C3 9F 00072 PUSHAB 36(R3) ;INAM 24 A3 9F 00076 CALLS #4, (R6) ;#4, SYS$ASSIGN 66 04 FB 00079 MOVL R0, R2 ;R0, STATUS 52 50 D0 0007C BLBS R2, 3$ ;STATUS, 3$ 0168 05 52 E8 0007F PUSHL R2 ;STATUS 0170 52 DD 00082 CALLS #1, (R7) ;#1, LIB$SIGNAL 67 01 FB 00084 3$: CLRQ -(SP) ;-(SP) 0173 7E 7C 00087 PUSHAB -248(R3) ;O_CHAN FF08 C3 9F 00089 PUSHAB 188(R4) ;P.AAR 00BC C4 9F 0008D CALLS #4, (R6) ;#4, SYS$ASSIGN 66 04 FB 00091 MOVL R0, R2 ;R0, STATUS 52 50 D0 00094 BLBS R2, 4$ ;STATUS, 4$ 0172 05 52 E8 00097 PUSHL R2 ;STATUS 0174 52 DD 0009A CALLS #1, (R7) ;#1, LIB$SIGNAL 67 01 FB 0009C 4$: MOVL #2, 3372(R3) ;#2, BLK_NUM 0179 0D2C C3 02 D0 0009F PUSHAB 556(R3) ;INBUF 0180 022C C3 9F 000A4 PUSHAB 3372(R3) ;BLK_NUM 0D2C C3 9F 000A8 CALLS #2, W^GETBLK ;#2, GETBLK 0000V CF 02 FB 000AC PUSHAB 1836(R3) ;HOME_VEC 0181 072C C3 9F 000B1 PUSHAB 556(R3) ;INBUF 022C C3 9F 000B5 CALLS #2, W^USCRAM ;#2, USCRAM 0000V CF 02 FB 000B9 PUSHAB 1836(R3) ;HOME_VEC 0182 072C C3 9F 000BE CALLS #1, W^HOME ;#1, HOME 0000V CF 01 FB 000C2 5$: CLRL (R3) ;IN_LEN 0192 63 D4 000C7 PUSHAB 200(R4) ;P.AAT 0193 00C8 C4 9F 000C9 CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 000CD 6$: TSTL (R3) ;IN_LEN 0194 63 D5 000D0 BNEQ 7$ ;7$ 0E 12 000D2 PUSHL R3 ;R3 0195 53 DD 000D4 PUSHAB 224(R4) ;P.AAV 00E0 C4 9F 000D6 PUSHAB -12(R3) ;DOC_NO_DESC F4 A3 9F 000DA CALLS #3, (R8) ;#3, LIB$GET_INPUT 68 03 FB 000DD BRB 6$ ;6$ 0194 EE 11 000E0 7$: CMPB -16(R3), #69 ;DOC_NO, #69 0196 45 8F F0 A3 91 000E2 BEQL 8$ ;8$ 05 13 000E7 CMPB -16(R3), #101 ;DOC_NO, #101 65 8F F0 A3 91 000E9 8$: BNEQ 9$ ;9$ 03 12 000EE BRW 18$ ;18$ 00AB 31 000F0 9$: PUSHAB -16(R3) ;DOC_NO 0197 F0 A3 9F 000F3 PUSHL R3 ;R3 53 DD 000F6 CALLS #2, W^CVT_A_X ;#2, CVT_A_X 0000V CF 02 FB 000F8 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 10 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (3) MOVL R0, -16(R3) ;R0, DOC_NO F0 A3 50 D0 000FD CMPL -16(R3), #1 ;DOC_NO, #1 0198 01 F0 A3 D1 00101 BNEQ 10$ ;10$ 07 12 00105 MOVB #1, -244(R3) ;#1, INDEX_HEADER FF0C C3 01 90 00107 BRB 11$ ;11$ 04 11 0010C 10$: CLRB -244(R3) ;INDEX_HEADER FF0C C3 94 0010E 11$: SUBL3 #1, -16(R3), -4(R3) ;#1, DOC_NO, DOC_INDEX 0200 F0 A3 01 C3 00112 ; FC A3 00116 MOVL -4(R3), R0 ;DOC_INDEX, R0 0202 50 FC A3 D0 00118 BLSS 12$ ;12$ 09 19 0011C CMPL R0, #200 ;R0, #200 000000C8 8F 50 D1 0011E BLEQ 13$ ;13$ 06 15 00125 12$: PUSHAB 256(R4) ;P.AAX 0203 0100 C4 9F 00127 BRB 15$ ;15$ 3A 11 0012B 13$: CLRL -240(R3) ;OUT_FILE_NAME_LEN 0206 FF10 C3 D4 0012D PUSHAB 268(R4) ;P.AAZ 0207 010C C4 9F 00131 CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 00135 PUSHAB -240(R3) ;OUT_FILE_NAME_LEN 0208 FF10 C3 9F 00138 PUSHAB 316(R4) ;P.ABB 0209 013C C4 9F 0013C PUSHAB -24(R3) ;OUT_FILE_NAME_DESC 0208 E8 A3 9F 00140 CALLS #3, (R8) ;#3, LIB$GET_INPUT 68 03 FB 00143 TSTL -240(R3) ;OUT_FILE_NAME_LEN 0212 FF10 C3 D5 00146 BEQL 14$ ;14$ 0C 13 0014A PUSHAB -88(R3) ;OUT_FILE_NAME_ADDR 0213 A8 A3 9F 0014C PUSHAB -240(R3) ;OUT_FILE_NAME_LEN FF10 C3 9F 0014F CALLS #2, W^OPEN_OUT_FILE ;#2, OPEN_OUT_FILE 0000V CF 02 FB 00153 14$: MOVL -4(R3), R0 ;DOC_INDEX, R0 0215 50 FC A3 D0 00158 TSTW 1856(R3)[R0] ;HEADER_BLK_PTR[R0] 0740 C340 B5 0015C BNEQ 16$ ;16$ 09 12 00161 PUSHAB 348(R4) ;P.ABD 0216 015C C4 9F 00163 15$: CALLS #1, (R5) ;#1, LIB$PUT_OUTPUT 65 01 FB 00167 BRB 17$ ;17$ 0215 2F 11 0016A 16$: PUSHAB 556(R3) ;INBUF 0219 022C C3 9F 0016C PUSHAW 1856(R3)[R0] ;HEADER_BLK_PTR[R0] 0740 C340 3F 00170 CALLS #2, W^GETBLK ;#2, GETBLK 0000V CF 02 FB 00175 PUSHAB 2604(R3) ;DOC_HDRVEC 0220 0A2C C3 9F 0017A PUSHAB 556(R3) ;INBUF 022C C3 9F 0017E CALLS #2, W^USCRAM ;#2, USCRAM 0000V CF 02 FB 00182 PUSHAB 2604(R3) ;DOC_HDRVEC 0221 0A2C C3 9F 00187 CALLS #1, W^GETDOC ;#1, GETDOC 0000V CF 01 FB 0018B TSTL -240(R3) ;OUT_FILE_NAME_LEN 0222 FF10 C3 D5 00190 BEQL 17$ ;17$ 05 13 00194 CALLS #0, W^CLOSE_OUT_FILE ;#0, CLOSE_OUT_FILE 0000V CF 00 FB 00196 17$: BRW 5$ ;5$ 0190 FF29 31 0019B 18$: MOVL #1, R0 ;#1, R0 0130 50 01 D0 0019E RET ; 0101 04 001A1 ; Routine Size: 418 bytes, Routine Base: $CODE$ + 0000 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 11 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (4) ; 0232 ROUTINE CVT_A_X(DIGITS,ASTR) = ; 0233 BEGIN ; 0234 LOCAL ; 0235 J, ; 0236 STR, ; 0237 TEMP; ; 0238 ; 0239 STR = ..ASTR AND %X'0F0F0F'; ; 0240 ; 0241 IF ..DIGITS GTR 3 THEN RETURN 1000; ; 0242 ; 0243 J = 1; ; 0244 TEMP = 0; ; 0245 ; 0246 DECR I FROM ..DIGITS-1 TO 0 DO ; 0247 BEGIN ; 0248 MAP STR :VECTOR[,BYTE]; ; 0249 TEMP = .TEMP+(.J*.STR[.I]); ; 0250 J = .J*10; ; 0251 END; ; 0252 RETURN .TEMP; ; 0253 END; CVT_A_X:.WORD ^M ;Save R2,R3 0232 000C 00000 BICL3 #-986896, @8(AP), -(SP) ;#-986896, @ASTR, STR 0239 08 BC FFF0F0F0 8F CB 00002 ; 7E 0000A CMPL @4(AP), #3 ;@DIGITS, #3 0241 03 04 BC D1 0000B BLEQ 1$ ;1$ 06 15 0000F MOVZWL #1000, R0 ;#1000, R0 50 03E8 8F 3C 00011 RET ; 04 00016 1$: MOVL #1, R3 ;#1, J 0243 53 01 D0 00017 CLRL R2 ;TEMP 0244 52 D4 0001A MOVL @4(AP), R0 ;@DIGITS, I 0246 50 04 BC D0 0001C BRB 3$ ;3$ 0D 11 00020 2$: MOVZBL (SP)[R0], R1 ;STR[I], R1 0249 51 6E40 9A 00022 MULL2 R3, R1 ;J, R1 51 53 C4 00026 ADDL2 R1, R2 ;R1, TEMP 52 51 C0 00029 MULL2 #10, R3 ;#10, J 0250 53 0A C4 0002C 3$: SOBGEQ R0, 2$ ;I, 2$ 0246 F0 50 F4 0002F MOVL R2, R0 ;TEMP, R0 0233 50 52 D0 00032 RET ; 0232 04 00035 ; Routine Size: 54 bytes, Routine Base: $CODE$ + 01A2 ; 0254 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 12 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (5) ; 0255 ROUTINE OPEN_OUT_FILE(NAME_LEN,NAME_ADDR) = ; 0256 BEGIN ; 0257 LOCAL ; 0258 RMS_STATUS; ; 0259 ; 0260 OUT_FILE_FAB[FAB$B_FNS] = ..NAME_LEN; ; 0261 OUT_FILE_FAB[FAB$L_FNA] = .NAME_ADDR; ; 0262 ; 0263 IF NOT (RMS_STATUS = $CREATE(FAB = OUT_FILE_FAB)) THEN ; 0264 SIGNAL_STOP(.RMS_STATUS); ; 0265 ; 0266 IF NOT (RMS_STATUS = $CONNECT(RAB = OUT_FILE_RAB)) THEN ; 0267 SIGNAL_STOP(.RMS_STATUS); ; 0268 RETURN 1; ; 0269 END; .EXTRN SYS$CREATE, SYS$CONNECT OPEN_OUT_FILE: .WORD ^M ;Save R2,R3 0255 000C 00000 MOVAB G^LIB$STOP, R3 ;LIB$STOP, R3 53 00000000G 00 9E 00002 MOVB @4(AP), W^OUT_FILE_FAB+52 ;@NAME_LEN, OUT_FILE_FAB+52 0260 0000' CF 04 BC 90 00009 MOVL 8(AP), W^OUT_FILE_FAB+44 ;NAME_ADDR, OUT_FILE_FAB+44 0261 0000' CF 08 AC D0 0000F PUSHAB W^OUT_FILE_FAB ;OUT_FILE_FAB 0263 0000' CF 9F 00015 CALLS #1, @#SYS$CREATE ;#1, @#SYS$CREATE 00000000G 9F 01 FB 00019 MOVL R0, R2 ;R0, RMS_STATUS 52 50 D0 00020 BLBS R2, 1$ ;RMS_STATUS, 1$ 05 52 E8 00023 PUSHL R2 ;RMS_STATUS 0264 52 DD 00026 CALLS #1, (R3) ;#1, LIB$STOP 63 01 FB 00028 1$: PUSHAB W^OUT_FILE_RAB ;OUT_FILE_RAB 0266 0000' CF 9F 0002B CALLS #1, @#SYS$CONNECT ;#1, @#SYS$CONNECT 00000000G 9F 01 FB 0002F MOVL R0, R2 ;R0, RMS_STATUS 52 50 D0 00036 BLBS R2, 2$ ;RMS_STATUS, 2$ 05 52 E8 00039 PUSHL R2 ;RMS_STATUS 0267 52 DD 0003C CALLS #1, (R3) ;#1, LIB$STOP 63 01 FB 0003E 2$: MOVL #1, R0 ;#1, R0 0256 50 01 D0 00041 RET ; 0255 04 00044 ; Routine Size: 69 bytes, Routine Base: $CODE$ + 01D8 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 13 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (6) ; 0270 ROUTINE CLOSE_OUT_FILE = ; 0271 BEGIN ; 0272 LOCAL ; 0273 RMS_STATUS; ; 0274 ; 0275 IF NOT (RMS_STATUS = $CLOSE(FAB = OUT_FILE_FAB)) THEN ; 0276 SIGNAL_STOP(.RMS_STATUS); ; 0277 RETURN 1; ; 0278 END; .EXTRN SYS$CLOSE CLOSE_OUT_FILE: .WORD ^M<> ;Save nothing 0270 0000 00000 PUSHAB W^OUT_FILE_FAB ;OUT_FILE_FAB 0275 0000' CF 9F 00002 CALLS #1, @#SYS$CLOSE ;#1, @#SYS$CLOSE 00000000G 9F 01 FB 00006 BLBS R0, 1$ ;RMS_STATUS, 1$ 09 50 E8 0000D PUSHL R0 ;RMS_STATUS 0276 50 DD 00010 CALLS #1, G^LIB$STOP ;#1, LIB$STOP 00000000G 00 01 FB 00012 1$: MOVL #1, R0 ;#1, R0 0271 50 01 D0 00019 RET ; 0270 04 0001C ; Routine Size: 29 bytes, Routine Base: $CODE$ + 021D ; 0279 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 14 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (7) ; 0280 ROUTINE GETDOC(DOC_HDR) = ; 0281 BEGIN ; 0282 OWN DOCBUF : VECTOR[512,BYTE], ; 0283 OUTVEC : VECTOR[384,WORD]; ; 0284 ; 0285 BIND HDR_VEC = .DOC_HDR : VECTOR[,WORD], ! DOCUMENT HEADER ; 0286 BLK_CNT = HDR_VEC[5] :WORD, ! # OF BLKS IN DOCUMENT ; 0287 FILE_NUM = HDR_VEC[11] : WORD, ; 0288 BLK_PTR_LIST = HDR_VEC[%O'55'] : VECTOR[,WORD]; ! LIST OF BLK # IN DOC ; 0289 ; 0290 DOCNUM(FILE_NUM,BLK_CNT); ; 0291 IF .INDEX_HEADER AND (.OUT_FILE_NAME_LEN EQL 0) THEN ; 0292 LIB$PUT_OUTPUT( ; 0293 $DESCRIPTOR(' Document Ident. Doc #')); ; 0294 ; 0295 INCR I FROM 0 TO .BLK_CNT-1 DO ; 0296 ; 0297 BEGIN ; 0298 IF .BLK_PTR_LIST[.I] NEQ 0 THEN ; 0299 BEGIN ; 0300 GETBLK(BLK_PTR_LIST[.I],DOCBUF); ; 0301 USCRAM(DOCBUF,OUTVEC); ; 0302 DEBLK(OUTVEC,DOCBUF); ; 0303 PUTBLK(DOCBUF); ; 0304 END ; 0305 ELSE EXITLOOP; ; 0306 END; ; 0307 ; 0308 PUTBLK(0); ! END OF DOCUMENT - FLUSH THE BUFFER ; 0309 ; 0310 RETURN 1; ; 0311 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.ABG: .ASCII \ Document Ident. Doc #\ ; 65 6D 75 63 6F 44 20 20 00168 ; 74 6E 65 64 49 20 74 6E 00170 ; 20 20 20 20 20 20 20 2E 00178 ; 44 20 20 20 20 20 20 20 00180 ; 23 20 63 6F 00188 P.ABF: .LONG 36 ; 00000024 0018C .ADDRESS P.ABG ; 00000000' 00190 .PSECT $OWN$,NOEXE,2 DOCBUF: .BLKB 512 ; 00E30 OUTVEC: .BLKB 768 ; 01030 .PSECT $CODE$,NOWRT,2 GETDOC: .WORD ^M ;Save R2,R3,R4,R5 0280 003C 00000 MOVAB W^DOCBUF, R5 ;DOCBUF, R5 55 0000' CF 9E 00002 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 15 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (7) ADDL3 #10, 4(AP), R2 ;#10, DOC_HDR, R2 0286 04 AC 0A C1 00007 ; 52 0000B ADDL3 #22, 4(AP), R0 ;#22, DOC_HDR, R0 0287 04 AC 16 C1 0000C ; 50 00010 ADDL3 #90, 4(AP), R4 ;#90, DOC_HDR, R4 0288 04 AC 0000005A 8F C1 00011 ; 54 00019 PUSHR #^M ;#^M 0290 05 BB 0001A CALLS #2, W^DOCNUM ;#2, DOCNUM 0000V CF 02 FB 0001C BLBC -3620(R5), 1$ ;INDEX_HEADER, 1$ 0291 0F F1DC C5 E9 00021 TSTL -3616(R5) ;OUT_FILE_NAME_LEN F1E0 C5 D5 00026 BNEQ 1$ ;1$ 09 12 0002A PUSHAB W^P.ABF ;P.ABF 0293 0000' CF 9F 0002C CALLS #1, W^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT 0292 0000G CF 01 FB 00030 1$: MOVZWL (R2), R3 ;(R2), R3 0295 53 62 3C 00035 MNEGL #1, R2 ;#1, I 52 01 CE 00038 BRB 3$ ;3$ 2C 11 0003B 2$: TSTW (R4)[R2] ;(R4)[I] 0298 6442 B5 0003D BEQL 4$ ;4$ 2B 13 00040 PUSHL R5 ;R5 0300 55 DD 00042 PUSHAW (R4)[R2] ;(R4)[I] 6442 3F 00044 CALLS #2, W^GETBLK ;#2, GETBLK 0000V CF 02 FB 00047 PUSHAB 512(R5) ;OUTVEC 0301 0200 C5 9F 0004C PUSHL R5 ;R5 55 DD 00050 CALLS #2, W^USCRAM ;#2, USCRAM 0000V CF 02 FB 00052 PUSHL R5 ;R5 0302 55 DD 00057 PUSHAB 512(R5) ;OUTVEC 0200 C5 9F 00059 CALLS #2, W^DEBLK ;#2, DEBLK 0000V CF 02 FB 0005D PUSHL R5 ;R5 0303 55 DD 00062 CALLS #1, W^PUTBLK ;#1, PUTBLK 0000V CF 01 FB 00064 3$: AOBLSS R3, R2, 2$ ;R3, I, 2$ 0295 52 53 F2 00069 ; D0 0006C 4$: CLRL -(SP) ;-(SP) 0308 7E D4 0006D CALLS #1, W^PUTBLK ;#1, PUTBLK 0000V CF 01 FB 0006F MOVL #1, R0 ;#1, R0 0281 50 01 D0 00074 RET ; 0280 04 00077 ; Routine Size: 120 bytes, Routine Base: $CODE$ + 023A WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 16 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (8) ; 0312 ROUTINE USCRAM (I_BUF,O_BUF) = ; 0313 BEGIN ; 0314 STRUCTURE ; 0315 NIB [X;Y] = ; 0316 [(Y+1)/2] ; 0317 NIB<4*X,4>; ; 0318 BIND ; 0319 WORK_BUF = .I_BUF; !:VECTOR[,BYTE]; ; 0320 BIND ; 0321 OBUF = .O_BUF : VECTOR[,WORD]; ; 0322 ; 0323 INCR I FROM 0 TO 255 DO ; 0324 OBUF[.I] =.(WORK_BUF+.I+128)<0,8,0>; ; 0325 ! (OBUF+(.I*2))<0,8,0> = .(WORK_BUF+.I+128)<0,8,0>; ; 0326 ; 0327 INCR I FROM 0 TO 255 DO ; 0328 BEGIN ; 0329 MAP ; 0330 WORK_BUF : NIB; ; 0331 BIND ; 0332 TEMP = OBUF[.I] :WORD; ; 0333 ; 0334 IF .I THEN ; 0335 TEMP<8,4,0> = .WORK_BUF[.I-1] ; 0336 ELSE TEMP<8,4,0> = .WORK_BUF[.I+1]; ; 0337 ; 0338 ! (OBUF+(.I*2))<8,4,0> = .(WORK_BUF+(.I))<4,4,0>; ; 0339 ! (OBUF+.I*2)+1)<8,4,0> = .(WORK_BUF+(.I))<0,4,0>; ; 0340 ; 0341 END; ; 0342 ; 0343 RETURN 1; ; 0344 END; USCRAM: .WORD ^M ;Save R2 0312 0004 00000 CLRL R0 ;I 0323 50 D4 00002 1$: ADDL3 4(AP), R0, R1 ;I_BUF, I, R1 0324 50 04 AC C1 00004 ; 51 00008 MOVZBW 128(R1), @8(AP)[R0] ;128(R1), @O_BUF[I] 08 BC40 0080 C1 9B 00009 AOBLEQ #255, R0, 1$ ;#255, I, 1$ 0323 50 000000FF 8F F3 00010 ; EC 00017 CLRL R0 ;I 0327 50 D4 00018 2$: BLBC R0, 3$ ;I, 3$ 0334 06 50 E9 0001A MOVAB -1(R0), R1 ;-1(R0), R1 0335 51 FF A0 9E 0001D BRB 4$ ;4$ 04 11 00021 3$: MOVAB 1(R0), R1 ;1(R0), R1 0336 51 01 A0 9E 00023 4$: MULL2 #4, R1 ;#4, R1 51 04 C4 00027 EXTZV R1, #4, @4(AP), R2 ;R1, #4, @I_BUF, R2 04 51 EF 0002A ; 52 04 BC 0002D PUSHAW @8(AP)[R0] ;@O_BUF[I] 08 BC40 3F 00030 INSV R2, #8, #4, @(SP)+ ;R2, #8, #4, @(SP)+ 08 52 F0 00034 ; 9E 04 00037 AOBLEQ #255, R0, 2$ ;#255, I, 2$ 0327 50 000000FF 8F F3 00039 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 17 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (8) ; D9 00040 MOVL #1, R0 ;#1, R0 0313 50 01 D0 00041 RET ; 0312 04 00044 ; Routine Size: 69 bytes, Routine Base: $CODE$ + 02B2 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 18 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (9) ; 0345 ROUTINE HOME(BUF) = ; 0346 BEGIN ; 0347 OWN ; 0348 HOVEC : VECTOR[80,BYTE], ; 0349 HOBUF : VECTOR[2] INITIAL (80,HOVEC); ; 0350 LOCAL ; 0351 TEMP; ; 0352 BIND ; 0353 WORK_BUF = .BUF: VECTOR[,WORD]; ; 0354 ; 0355 IF NOT .DEBUG_FLAG THEN RETURN 1; ; 0356 ; 0357 INCR I FROM 0 TO 128 DO ; 0358 BEGIN ; 0359 TEMP = .WORK_BUF[.I]; ; 0360 ; P 0361 $FAO ($DESCRIPTOR(' HB word !OW !OW !XW') ; P 0362 ,0 ; P 0363 ,HOBUF ; P 0364 ,.I ; P 0365 ,.TEMP ; 0366 ,.TEMP); ; 0367 LIB$PUT_OUTPUT(HOBUF); ; 0368 END; ; 0369 RETURN 1; ; 0370 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.ABI: .ASCII \ HB word !OW !OW !XW\ ; 64 72 6F 77 20 42 48 20 00194 ; 57 4F 21 20 57 4F 21 20 0019C ; 57 58 21 20 001A4 P.ABH: .LONG 20 ; 00000014 001A8 .ADDRESS P.ABI ; 00000000' 001AC .PSECT $OWN$,NOEXE,2 HOVEC: .BLKB 80 ; 01330 HOBUF: .LONG 80 ; 00000050 01380 .ADDRESS HOVEC ; 00000000' 01384 .EXTRN SYS$FAO .PSECT $CODE$,NOWRT,2 HOME: .WORD ^M ;Save R2,R3 0345 000C 00000 BLBC W^DEBUG_FLAG, 2$ ;DEBUG_FLAG, 2$ 0355 2D 0000' CF E9 00002 CLRL R2 ;I 0357 52 D4 00007 1$: MOVZWL @4(AP)[R2], R3 ;@BUF[I], TEMP 0359 53 04 BC42 3C 00009 PUSHL R3 ;TEMP 0366 53 DD 0000E PUSHR #^M ;#^M 0C BB 00010 PUSHAB W^HOBUF ;HOBUF 0000' CF 9F 00012 CLRL -(SP) ;-(SP) 7E D4 00016 PUSHAB W^P.ABH ;P.ABH 0000' CF 9F 00018 CALLS #6, @#SYS$FAO ;#6, @#SYS$FAO 00000000G 9F 06 FB 0001C WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 19 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (9) PUSHAB W^HOBUF ;HOBUF 0367 0000' CF 9F 00023 CALLS #1, W^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT 0000G CF 01 FB 00027 AOBLEQ #128, R2, 1$ ;#128, I, 1$ 0357 52 00000080 8F F3 0002C ; D5 00033 2$: MOVL #1, R0 ;#1, R0 0346 50 01 D0 00034 RET ; 0345 04 00037 ; Routine Size: 56 bytes, Routine Base: $CODE$ + 02F7 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 20 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (10) ; 0371 ROUTINE GETBLK(NUM,BUF) = ; 0372 BEGIN ; 0373 ! ONE LOG BLK = 3 PHY SECTORS ; 0374 ! SECTORS ARE FROM 1 TO 26 ; 0375 ! TRACKS ARE FROM 0 T0 76 ; 0376 ! TRACKS 0,74,75,76 ARE UNUSED ; 0377 ! TRACKS 1 TO 73 CONTAIN 632 BLOCKS (0 TO 631) THUS THE BASE = TRACK 1 SECTOR 1 ; 0378 ! EACH BLOCK CONTAINS 256 12 BIT WORDS (384 BYTES) ; 0379 ! BLOCK 2 IS THE HOME BLOCK ; 0380 ! ; 0381 LITERAL ; 0382 SECTOR_OFFSET = 3, ! SECTOR OFFSET FOR INTERLEAVING ; 0383 SECTORS_PER_BLK = 3, ; 0384 SECTORS_PER_TRACK = 26, ; 0385 BASE_TRACK = 1, ; 0386 BASE_SECTOR = 1; ; 0387 ; 0388 BIND ; 0389 WORK_BUF = .BUF :VECTOR[,BYTE]; ; 0390 BIND ; 0391 SECTOR_ORDER = UPLIT (BYTE ; 0392 (0, ; 0393 1,4,7, ; 0394 10,13,16, ; 0395 19,22,25, ; 0396 2,5,8, ; 0397 11,14,17, ; 0398 20,23,26, ; 0399 3,6,9, ; 0400 12,15,18, ; 0401 21,24)) :VECTOR[,BYTE]; ; 0402 ; 0403 OWN ; 0404 ; 0405 SECTOR_INDEX : BYTE, ; 0406 DISK_ADDR : VECTOR[4,BYTE]; ; 0407 BIND ; 0408 BLKNUM = .NUM : WORD, ; 0409 SECTOR =DISK_ADDR[0]:BYTE UNSIGNED, ; 0410 TRACK = DISK_ADDR[2]:BYTE UNSIGNED; ; 0411 LOCAL ; 0412 STATUS, ; 0413 IN_IOSB : VECTOR[4,WORD], ; 0414 TEMP; ; 0415 ; 0416 TEMP = SECTORS_PER_BLK*.BLKNUM; ; 0417 SECTOR_INDEX = (.TEMP MOD SECTORS_PER_TRACK) + BASE_SECTOR; ; 0418 SECTOR = .SECTOR_ORDER[.SECTOR_INDEX]; ; 0419 TRACK = (.TEMP/SECTORS_PER_TRACK) + BASE_TRACK; ; 0420 ; 0421 INCR I FROM 0 TO 2 DO ; 0422 BEGIN ; 0423 DISNUM(BLKNUM,DISK_ADDR); ; 0424 IF NOT (STATUS = ; P 0425 $QIOW (CHAN = .INCHAN ; P 0426 ,FUNC = IO$_READPBLK ; P 0427 ,IOSB = IN_IOSB WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 21 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (10) ; P 0428 ,P1 = WORK_BUF[.I*128] ; P 0429 ,P2 = 128 ; 0430 ,P3 = .DISK_ADDR)) THEN SIGNAL (.STATUS); ; 0431 ; 0432 IF .IN_IOSB[0] NEQ SS$_NORMAL THEN SIGNAL (.IN_IOSB[0]); ; 0433 ; 0434 IF .SECTOR EQL 24 THEN ! ALWAYS LAST SECTOR ; 0435 BEGIN ; 0436 SECTOR = 1; ; 0437 TRACK = .TRACK+1; ; 0438 END ; 0439 ELSE ; 0440 BEGIN ; 0441 SECTOR = .SECTOR+SECTOR_OFFSET; ; 0442 IF .SECTOR GTR SECTORS_PER_TRACK THEN ; 0443 SECTOR = .SECTOR - SECTORS_PER_TRACK; ; 0444 END; ; 0445 ; 0446 END; ; 0447 ; 0448 RETURN 1; ; 0449 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.ABJ: .BYTE 0, 1, 4, 7, 10, 13, 16, 19, 22, 25, 2, 5, 8, 11, 14, 17, 20, 23, - ; 13 10 0D 0A 07 04 01 00 001B0 26, 3, 6, 9, 12, 15, 18, 21, 24 ; 11 0E 0B 08 05 02 19 16 001B8 ; 0F 0C 09 06 03 1A 17 14 001C0 ; 18 15 12 001C8 .PSECT $OWN$,NOEXE,2 SECTOR_INDEX: .BLKB 1 ; 01388 .BLKB 3 ; 01389 DISK_ADDR: .BLKB 4 ; 0138C SECTOR_ORDER= P.ABJ SECTOR= DISK_ADDR TRACK= DISK_ADDR+2 .EXTRN SYS$QIOW .PSECT $CODE$,NOWRT,2 GETBLK: .WORD ^M ;Save R2,R3,R4,R5 0371 003C 00000 MOVAB G^LIB$SIGNAL, R5 ;LIB$SIGNAL, R5 55 00000000G 00 9E 00002 MOVAB W^SECTOR, R4 ;SECTOR, R4 54 0000' CF 9E 00009 SUBL2 #8, SP ;#8, SP 5E 08 C2 0000E MOVZWL @4(AP), R0 ;@NUM, TEMP 0416 50 04 BC 3C 00011 MULL2 #3, R0 ;#3, TEMP 50 03 C4 00015 EMUL #1, R0, #0, -(SP) ;#1, TEMP, #0, -(SP) 0417 50 01 7A 00018 ; 7E 00 0001B EDIV #26, (SP)+, R1, R1 ;#26, (SP)+, R1, R1 8E 1A 7B 0001D WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 22 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (10) ; 51 51 00020 ADDB3 #1, R1, -4(R4) ;#1, R1, SECTOR_INDEX 51 01 81 00022 ; FC A4 00025 MOVZBL -4(R4), R1 ;SECTOR_INDEX, R1 0418 51 FC A4 9A 00027 MOVB W^SECTOR_ORDER[R1], (R4) ;SECTOR_ORDER[R1], SECTOR 64 0000'CF41 90 0002B DIVL2 #26, R0 ;#26, R0 0419 50 1A C6 00031 ADDB3 #1, R0, 2(R4) ;#1, R0, TRACK 50 01 81 00034 ; 02 A4 00037 CLRL R2 ;I 0421 52 D4 00039 1$: PUSHL R4 ;R4 0423 54 DD 0003B PUSHL 4(AP) ;NUM 04 AC DD 0003D CALLS #2, W^DISNUM ;#2, DISNUM 0000V CF 02 FB 00040 CLRQ -(SP) ;-(SP) 0430 7E 7C 00045 CLRL -(SP) ;-(SP) 7E D4 00047 PUSHL (R4) ;DISK_ADDR 64 DD 00049 MOVZBL #128, -(SP) ;#128, -(SP) 7E 80 8F 9A 0004B ASHL #7, R2, R0 ;#7, I, R0 52 07 78 0004F ; 50 00052 PUSHAB @8(AP)[R0] ;@BUF[R0] 08 BC40 9F 00053 CLRQ -(SP) ;-(SP) 7E 7C 00057 PUSHAB 32(SP) ;IN_IOSB 20 AE 9F 00059 PUSHL #12 ;#12 0C DD 0005C MOVZWL -4994(R4), -(SP) ;INCHAN, -(SP) 7E EC7E C4 3C 0005E CLRL -(SP) ;-(SP) 7E D4 00063 CALLS #12, @#SYS$QIOW ;#12, @#SYS$QIOW 00000000G 9F 0C FB 00065 MOVL R0, R3 ;R0, STATUS 53 50 D0 0006C BLBS R3, 2$ ;STATUS, 2$ 0424 05 53 E8 0006F PUSHL R3 ;STATUS 0430 53 DD 00072 CALLS #1, (R5) ;#1, LIB$SIGNAL 65 01 FB 00074 2$: CMPW (SP), #1 ;IN_IOSB, #1 0432 01 6E B1 00077 BEQL 3$ ;3$ 06 13 0007A MOVZWL (SP), -(SP) ;IN_IOSB, -(SP) 7E 6E 3C 0007C CALLS #1, (R5) ;#1, LIB$SIGNAL 65 01 FB 0007F 3$: CMPB (R4), #24 ;SECTOR, #24 0434 18 64 91 00082 BNEQ 4$ ;4$ 08 12 00085 MOVB #1, (R4) ;#1, SECTOR 0436 64 01 90 00087 INCB 2(R4) ;TRACK 0437 02 A4 96 0008A BRB 5$ ;5$ 0434 0B 11 0008D 4$: ADDB2 #3, (R4) ;#3, SECTOR 0441 64 03 80 0008F CMPB (R4), #26 ;SECTOR, #26 0442 1A 64 91 00092 BLEQU 5$ ;5$ 03 1B 00095 SUBB2 #26, (R4) ;#26, SECTOR 0443 64 1A 82 00097 5$: AOBLEQ #2, R2, 1$ ;#2, I, 1$ 0421 52 02 F3 0009A ; 9D 0009D MOVL #1, R0 ;#1, R0 0372 50 01 D0 0009E RET ; 0371 04 000A1 ; Routine Size: 162 bytes, Routine Base: $CODE$ + 032F WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 23 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (11) ; 0450 ROUTINE DISNUM(BLK,ADDR) = ; 0451 BEGIN ; 0452 LOCAL ; 0453 FAOBUF : VECTOR[80,BYTE], ; 0454 FAODES : VECTOR[2]; ; 0455 BIND ; 0456 ADDR_W = .ADDR :VECTOR[2,WORD], ; 0457 BLK_W = .BLK : WORD; ; 0458 ; 0459 IF NOT .DEBUG_FLAG THEN RETURN 1; ; 0460 ; 0461 FAODES[0] = 80; ; 0462 FAODES[1] = FAOBUF; ; 0463 ; P 0464 $FAO ($DESCRIPTOR(' Block No. !XW Track !XW Sector !XW!/') ; P 0465 ,FAODES[0] ; P 0466 ,FAODES ; P 0467 ,.BLK_W ; P 0468 ,.ADDR_W[1] ; 0469 ,.ADDR_W[0]); ; 0470 LIB$PUT_OUTPUT(FAODES); ; 0471 RETURN 1; ; 0472 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.ABL: .ASCII \ Block No. !XW Track !XW Sector !XW!/\ ; 4E 20 6B 63 6F 6C 42 20 001CB ; 20 20 57 58 21 20 2E 6F 001D3 ; 58 21 20 6B 63 61 72 54 001DB ; 72 6F 74 63 65 53 20 57 001E3 ; 2F 21 57 58 21 20 001EB .BLKB 3 ; 001F1 P.ABK: .LONG 38 ; 00000026 001F4 .ADDRESS P.ABL ; 00000000' 001F8 .PSECT $CODE$,NOWRT,2 DISNUM: .WORD ^M<> ;Save nothing 0450 0000 00000 MOVAB -88(SP), SP ;-88(SP), SP 5E A8 AE 9E 00002 MOVL 8(AP), R0 ;ADDR, R0 0451 50 08 AC D0 00006 BLBC W^DEBUG_FLAG, 1$ ;DEBUG_FLAG, 1$ 0459 2C 0000' CF E9 0000A MOVZBL #80, (SP) ;#80, FAODES 0461 6E 50 8F 9A 0000F MOVAB 8(SP), 4(SP) ;FAOBUF, FAODES+4 0462 04 AE 08 AE 9E 00013 MOVZWL (R0), -(SP) ;(R0), -(SP) 0469 7E 60 3C 00018 MOVZWL 2(R0), -(SP) ;2(R0), -(SP) 7E 02 A0 3C 0001B MOVZWL @4(AP), -(SP) ;@BLK, -(SP) 7E 04 BC 3C 0001F PUSHAB 12(SP) ;FAODES 0C AE 9F 00023 PUSHAB 16(SP) ;FAODES 10 AE 9F 00026 PUSHAB W^P.ABK ;P.ABK 0000' CF 9F 00029 CALLS #6, @#SYS$FAO ;#6, @#SYS$FAO 00000000G 9F 06 FB 0002D PUSHL SP ;SP 0470 5E DD 00034 CALLS #1, W^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT 0000G CF 01 FB 00036 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 24 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (11) 1$: MOVL #1, R0 ;#1, R0 0451 50 01 D0 0003B RET ; 0450 04 0003E ; Routine Size: 63 bytes, Routine Base: $CODE$ + 03D1 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 25 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (12) ; 0473 ROUTINE DOCNUM(NUM,CNT) = ; 0474 BEGIN ; 0475 LOCAL ; 0476 FAOBUF : VECTOR[80,BYTE], ; 0477 FAODES : VECTOR[2]; ; 0478 BIND ; 0479 SIZE = .CNT : WORD, ; 0480 DOCNUM = .NUM : WORD; ; 0481 ; 0482 FAODES[0] = 80; ; 0483 FAODES[1] = FAOBUF; ; 0484 ; P 0485 $FAO ($DESCRIPTOR('!/+***** Document No. !UW Size !UW *******+!/') ; P 0486 ,FAODES[0] ; P 0487 ,FAODES ; P 0488 ,.DOCNUM ; 0489 ,.SIZE); ; 0490 LIB$PUT_OUTPUT(FAODES); ; 0491 RETURN 1; ; 0492 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.ABN: .ASCII \!/+***** Document No. !UW Size !UW *******+!/\ ; 2A 2A 2A 2A 2A 2B 2F 21 001FC ; 6E 65 6D 75 63 6F 44 20 00204 ; 55 21 20 2E 6F 4E 20 74 0020C ; 21 20 65 7A 69 53 20 57 00214 ; 2A 2A 2A 2A 2A 20 57 55 0021C ; 2F 21 2B 2A 2A 00224 .BLKB 3 ; 00229 P.ABM: .LONG 45 ; 0000002D 0022C .ADDRESS P.ABN ; 00000000' 00230 .PSECT $CODE$,NOWRT,2 DOCNUM: .WORD ^M<> ;Save nothing 0473 0000 00000 MOVAB -84(SP), SP ;-84(SP), SP 5E AC AE 9E 00002 MOVZBL #80, -(SP) ;#80, FAODES 0482 7E 50 8F 9A 00006 MOVAB 8(SP), 4(SP) ;FAOBUF, FAODES+4 0483 04 AE 08 AE 9E 0000A MOVZWL @8(AP), -(SP) ;@CNT, -(SP) 0489 7E 08 BC 3C 0000F MOVZWL @4(AP), -(SP) ;@NUM, -(SP) 7E 04 BC 3C 00013 PUSHAB 8(SP) ;FAODES 08 AE 9F 00017 PUSHAB 12(SP) ;FAODES 0C AE 9F 0001A PUSHAB W^P.ABM ;P.ABM 0000' CF 9F 0001D CALLS #5, @#SYS$FAO ;#5, @#SYS$FAO 00000000G 9F 05 FB 00021 PUSHL SP ;SP 0490 5E DD 00028 CALLS #1, W^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT 0000G CF 01 FB 0002A MOVL #1, R0 ;#1, R0 0474 50 01 D0 0002F RET ; 0473 04 00032 ; Routine Size: 51 bytes, Routine Base: $CODE$ + 0410 ; 0493 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 26 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (13) ; 0494 ROUTINE DEBLK(IN_BUF,O_BUF) = ; 0495 BEGIN ; 0496 LOCAL ; 0497 TEMP; ; 0498 BIND ; 0499 WORK_BUF = .IN_BUF ; !: VECTOR[,WORD]; ; 0500 ; 0501 BIND ; 0502 OUT_BUF = .O_BUF : VECTOR[,BYTE]; ; 0503 ; 0504 ; 0505 INCR I FROM 0 TO 511 BY 2 DO ; 0506 BEGIN ; 0507 OUT_BUF[.I] = .(WORK_BUF+.I)<6,6,0> ; !FIRST CHAR ; 0508 IF .OUT_BUF[.I] NEQ 0 THEN OUT_BUF[.I] = .OUT_BUF[.I] + %X'1F'; ; 0509 OUT_BUF[.I+1] = .(WORK_BUF+.I)<0,6,0> ; !SECOND CHAR ; 0510 IF .OUT_BUF[.I+1] NEQ 0 THEN OUT_BUF[.I+1] = .OUT_BUF[.I+1] + %X'1F'; ; 0511 END; ; 0512 ; 0513 RETURN 1; ; 0514 END; DEBLK: .WORD ^M ;Save R2 0494 0004 00000 CLRL R1 ;I 0505 51 D4 00002 1$: ADDL3 8(AP), R1, R0 ;O_BUF, I, R0 0507 51 08 AC C1 00004 ; 50 00008 EXTZV #6, #6, @4(AP)[R1], R2 ;#6, #6, @IN_BUF[I], R2 06 06 EF 00009 ; 52 04 BC41 0000C MOVB R2, (R0) ;R2, (R0) 60 52 90 00010 BEQL 2$ ;2$ 0508 03 13 00013 ADDB2 #31, (R0) ;#31, (R0) 60 1F 80 00015 2$: ADDL3 8(AP), R1, R0 ;O_BUF, I, R0 0509 51 08 AC C1 00018 ; 50 0001C EXTZV #0, #6, @4(AP)[R1], R2 ;#0, #6, @IN_BUF[I], R2 06 00 EF 0001D ; 52 04 BC41 00020 MOVB R2, 1(R0) ;R2, 1(R0) 01 A0 52 90 00024 BEQL 3$ ;3$ 0510 04 13 00028 ADDB2 #31, 1(R0) ;#31, 1(R0) 01 A0 1F 80 0002A 3$: ACBL #511, #2, R1, 1$ ;#511, #2, I, 1$ 0505 02 000001FF 8F F1 0002E ; FFCC 51 00035 MOVL #1, R0 ;#1, R0 0495 50 01 D0 00038 RET ; 0494 04 0003B ; Routine Size: 60 bytes, Routine Base: $CODE$ + 0443 ; 0515 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 27 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (14) ; 0516 ROUTINE PUTBLK(BUF) = ; 0517 BEGIN ; 0518 OWN ; 0519 SAVE_J, ; 0520 LAST_CHAR_SPECIAL, ; 0521 O_BUF : VECTOR[508,BYTE], ; 0522 FLAGS : BITVECTOR[8]; ! CHARACTER FLAGS ; 0523 MACRO ; 0524 BOLD_M = 0%, ; 0525 UNDS_M = 1%, ; 0526 OSTRK_M = 2%, ; 0527 JSTFY_M = 3%, ; 0528 SUPSCR_M = 4%, ; 0529 SUBSCR_M = 5%, ; 0530 RULER_M = 6%, ; 0531 SHIFT_M = 7%; ; 0532 BUILTIN ; 0533 NULLPARAMETER; ; 0534 ; 0535 LOCAL ; 0536 I, ! RAW DATA ARRAY INDEX ; 0537 J, ! FORMATTED DATA ARRAY INDEX ; 0538 STATUS; ; 0539 ; 0540 ; 0541 BIND ; 0542 RAW_BUF = .BUF+4 : VECTOR[,BYTE]; ! SKIP FIRST 4 BYTES ; 0543 ; 0544 IF NULLPARAMETER(1) THEN ! FLUSH OPERATION ; 0545 BEGIN ; 0546 IF .SAVE_J NEQ 0 THEN ; 0547 PUT_OUT_REC(SAVE_J,O_BUF); ; 0548 SAVE_J = 0; ; 0549 RETURN 1; ; 0550 END; ; 0551 ; 0552 I = 0; ; 0553 J = .SAVE_J; ; 0554 ; 0555 IF .DEBUG_FLAG THEN ; 0556 IF NOT (STATUS = ; P 0557 $QIOW (CHAN = .O_CHAN ; P 0558 ,FUNC = IO$_WRITELBLK ; P 0559 ,P1 = RAW_BUF ; 0560 ,P2 = 508)) THEN SIGNAL (.STATUS); ; 0561 ; 0562 WHILE (.RAW_BUF[.I] NEQ 0) AND (.I LEQ 507) DO ; 0563 BEGIN ; 0564 IF .RAW_BUF[.I] EQL %C'[' THEN FLAGS[SHIFT_M] = 1 ; 0565 ELSE IF .RAW_BUF[.I] EQL %C']' THEN FLAGS[SHIFT_M] = 0 ; 0566 ELSE IF .RAW_BUF[.I] EQL %C'^' AND (.I EQL 507) THEN ; 0567 LAST_CHAR_SPECIAL = 1 ; 0568 ELSE IF .RAW_BUF[.I] EQL %C'^' OR .LAST_CHAR_SPECIAL THEN ; 0569 BEGIN ! SPECIAL CHAR ; 0570 IF NOT .LAST_CHAR_SPECIAL THEN I = .I+1 ; 0571 ELSE LAST_CHAR_SPECIAL = 0; ; 0572 SELECTONE .RAW_BUF[.I] OF WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 28 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (14) ; 0573 SET ; 0574 [0]: LAST_CHAR_SPECIAL = 1; ; 0575 [%C'!']: FLAGS[BOLD_M] = 1; ; 0576 [%C'"']: FLAGS[BOLD_M] = 0; ; 0577 [%C'#']: FLAGS[UNDS_M] = 1; ; 0578 [%C'$']: FLAGS[UNDS_M] = 0; ; 0579 ; 0580 [%C'%']: BEGIN ! CHANGE TAB TO SPACE ; 0581 O_BUF[.J] = %C' '; ; 0582 J = .J+1; ; 0583 END; ; 0584 ; 0585 [%C'&']: FLAGS[OSTRK_M] = 1; ; 0586 [%C'''']: FLAGS[OSTRK_M] = 0; ; 0587 ; 0588 [%C'(']: FLAGS[JSTFY_M] = 1; ; 0589 [%C')']: FLAGS[JSTFY_M] = 0; ; 0590 ; 0591 [%C'*']: BEGIN ! END OF LINE ; 0592 PUT_OUT_REC(J,O_BUF); ; 0593 J = 0; ; 0594 !O_BUF[.J] = 10; ; 0595 !O_BUF[.J+1] = 13; ; 0596 !J = .J+2; ; 0597 END; ; 0598 ; 0599 [%C'+']: BEGIN ; 0600 O_BUF[.J] = 12; ; 0601 J = .J+1; ; 0602 END; ; 0603 ; 0604 [%C',']: FLAGS[SUPSCR_M] = 1; ; 0605 [%C'-']: FLAGS[SUPSCR_M] = 0; ; 0606 [%C'.']: FLAGS[SUBSCR_M] = 1; ; 0607 [%C'/']: FLAGS[SUBSCR_M] = 0; ; 0608 !!!!! [%C'0']: ; 0609 ; 0610 [%C'1']: BEGIN ; 0611 O_BUF[.J] = %C'['; ; 0612 J = .J+1; ; 0613 END; ; 0614 ; 0615 [%C'2']: BEGIN ; 0616 O_BUF[.J] = %C'\'; ; 0617 J = .J+1; ; 0618 END; ; 0619 ; 0620 [%C'3']: BEGIN ; 0621 O_BUF[.J] = %C']'; ; 0622 J = .J+1; ; 0623 END; ; 0624 ; 0625 [%C'4']: BEGIN ; 0626 O_BUF[.J] = %C'^'; ; 0627 J = .J+1; ; 0628 END; ; 0629 [%C'5']: BEGIN WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 29 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (14) ; 0630 O_BUF[.J] = %C'_'; ; 0631 J = .J+1; ; 0632 END; ; 0633 !!!! LINE MODIFY [%C'6']: ; 0634 ; 0635 [%C'7']: !START RULER ; 0636 BEGIN ; 0637 DO ! UNTIL END RULER ; 0638 BEGIN ; 0639 I = .I+1; ; 0640 IF .RAW_BUF[.I] EQL %C'[' THEN ; 0641 FLAGS[SHIFT_M] = 1; ; 0642 END ; 0643 UNTIL .RAW_BUF[.I] EQL %C'^'; ; 0644 I = .I+1; ; 0645 END; ; 0646 ; 0647 !ONLY IF RULER SPANS BLOCKS ; 0648 [%C'8']: I = .I+1; ! END RULER ; 0649 ; 0650 TES; ; 0651 ; 0652 END ; 0653 ; 0654 ELSE ! NOT A SPECIAL CHARACTER ; 0655 BEGIN ; 0656 O_BUF[.J] = .RAW_BUF[.I]; ; 0657 IF NOT .FLAGS[SHIFT_M] THEN ; 0658 IF (.O_BUF[.J] GTR 64) AND (.O_BUF[.J] LSS 91) THEN ; 0659 O_BUF[.J] = .O_BUF[.J] + 32; !LOWER CASE ; 0660 J = .J+1; ; 0661 END; ; 0662 ; 0663 I = .I+1; ; 0664 ; 0665 END; ! OF WHILE 1 ; 0666 ; 0667 IF .J NEQ 0 THEN SAVE_J = .J ELSE SAVE_J = 0; ; 0668 ; 0669 ; 0670 RETURN 1; ; 0671 END; .PSECT $OWN$,NOEXE,2 SAVE_J: .BLKB 4 ; 01390 LAST_CHAR_SPECIAL: .BLKB 4 ; 01394 O_BUF: .BLKB 508 ; 01398 FLAGS: .BLKB 1 ; 01594 .PSECT $CODE$,NOWRT,2 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 30 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (14) PUTBLK: .WORD ^M ;Save R2,R3,R4,R5 0516 003C 00000 MOVAB W^FLAGS, R5 ;FLAGS, R5 55 0000' CF 9E 00002 SUBL2 #4, SP ;#4, SP 5E 04 C2 00007 ADDL3 #4, 4(AP), R3 ;#4, BUF, R3 0542 04 AC 04 C1 0000A ; 53 0000E TSTB (AP) ;(AP) 0544 6C 95 0000F BLEQU 1$ ;1$ 05 1B 00011 TSTL 4(AP) ;4(AP) 04 AC D5 00013 BNEQ 3$ ;3$ 16 12 00016 1$: TSTL -516(R5) ;SAVE_J 0546 FDFC C5 D5 00018 BEQL 2$ ;2$ 0D 13 0001C PUSHAB -508(R5) ;O_BUF 0547 FE04 C5 9F 0001E PUSHAB -516(R5) ;SAVE_J FDFC C5 9F 00022 CALLS #2, W^PUT_OUT_REC ;#2, PUT_OUT_REC 0000V CF 02 FB 00026 2$: BRW 54$ ;54$ 0548 01F5 31 0002B 3$: CLRL R4 ;I 0552 54 D4 0002E MOVL -516(R5), (SP) ;SAVE_J, J 0553 6E FDFC C5 D0 00030 BLBC -5511(R5), 4$ ;DEBUG_FLAG, 4$ 0555 2A EA79 C5 E9 00035 CLRQ -(SP) ;-(SP) 0560 7E 7C 0003A CLRQ -(SP) ;-(SP) 7E 7C 0003C MOVZWL #508, -(SP) ;#508, -(SP) 7E 01FC 8F 3C 0003E PUSHL R3 ;R3 53 DD 00043 CLRQ -(SP) ;-(SP) 7E 7C 00045 MOVQ #32, -(SP) ;#32, -(SP) 7E 20 7D 00047 MOVZWL -5516(R5), -(SP) ;O_CHAN, -(SP) 7E EA74 C5 3C 0004A CLRL -(SP) ;-(SP) 7E D4 0004F CALLS #12, @#SYS$QIOW ;#12, @#SYS$QIOW 00000000G 9F 0C FB 00051 BLBS R0, 4$ ;STATUS, 4$ 0556 09 50 E8 00058 PUSHL R0 ;STATUS 0560 50 DD 0005B CALLS #1, G^LIB$SIGNAL ;#1, LIB$SIGNAL 00000000G 00 01 FB 0005D 4$: MOVZBL (R4)[R3], R1 ;(I)[R3], R1 0562 51 6443 9A 00064 BNEQ 6$ ;6$ 03 12 00068 5$: BRW 53$ ;53$ 01AB 31 0006A 6$: CMPL R4, #507 ;I, #507 000001FB 8F 54 D1 0006D BGTR 5$ ;5$ F4 14 00074 CMPB R1, #91 ;R1, #91 0564 5B 8F 51 91 00076 BNEQ 7$ ;7$ 06 12 0007A BISB2 #128, (R5) ;#128, FLAGS 65 80 8F 88 0007C BRB 18$ ;18$ 6A 11 00080 7$: CMPB R1, #93 ;R1, #93 0565 5D 8F 51 91 00082 BNEQ 8$ ;8$ 06 12 00086 BICB2 #128, (R5) ;#128, FLAGS 65 80 8F 8A 00088 BRB 21$ ;21$ 79 11 0008C 8$: CLRL R0 ;R0 0566 50 D4 0008E CMPB R1, #94 ;R1, #94 5E 8F 51 91 00090 BNEQ 9$ ;9$ 0B 12 00094 INCL R0 ;R0 50 D6 00096 CMPL R4, #507 ;I, #507 000001FB 8F 54 D1 00098 BEQL 13$ ;13$ 1E 13 0009F 9$: BLBS R0, 10$ ;R0, 10$ 0568 08 50 E8 000A1 BLBS -512(R5), 10$ ;LAST_CHAR_SPECIAL, 10$ 03 FE00 C5 E8 000A4 BRW 50$ ;50$ 0147 31 000A9 10$: BLBS -512(R5), 11$ ;LAST_CHAR_SPECIAL, 11$ 0570 04 FE00 C5 E8 000AC INCL R4 ;I 54 D6 000B1 BRB 12$ ;12$ 04 11 000B3 11$: CLRL -512(R5) ;LAST_CHAR_SPECIAL 0571 FE00 C5 D4 000B5 12$: MOVZBL (R4)[R3], R2 ;(I)[R3], R2 0572 52 6443 9A 000B9 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 31 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (14) BNEQ 14$ ;14$ 07 12 000BD 13$: MOVL #1, -512(R5) ;#1, LAST_CHAR_SPECIAL 0574 FE00 C5 01 D0 000BF BRB 26$ ;26$ 0572 74 11 000C4 14$: CMPB R2, #33 ;R2, #33 21 52 91 000C6 BNEQ 15$ ;15$ 05 12 000C9 BISB2 #1, (R5) ;#1, FLAGS 0575 65 01 88 000CB BRB 26$ ;26$ 0572 6A 11 000CE 15$: CMPB R2, #34 ;R2, #34 22 52 91 000D0 BNEQ 16$ ;16$ 05 12 000D3 BICB2 #1, (R5) ;#1, FLAGS 0576 65 01 8A 000D5 BRB 30$ ;30$ 0572 7B 11 000D8 16$: CMPB R2, #35 ;R2, #35 23 52 91 000DA BNEQ 17$ ;17$ 05 12 000DD BISB2 #2, (R5) ;#2, FLAGS 0577 65 02 88 000DF BRB 32$ ;32$ 0572 7B 11 000E2 17$: CMPB R2, #36 ;R2, #36 24 52 91 000E4 BNEQ 19$ ;19$ 05 12 000E7 BICB2 #2, (R5) ;#2, FLAGS 0578 65 02 8A 000E9 18$: BRB 34$ ;34$ 0572 7B 11 000EC 19$: CMPB R2, #37 ;R2, #37 25 52 91 000EE BNEQ 20$ ;20$ 0C 12 000F1 MOVAB -508(R5), R0 ;O_BUF, R0 0581 50 FE04 C5 9E 000F3 MOVB #32, @0(SP)[R0] ;#32, @J[R0] 00 BE40 20 90 000F8 BRB 28$ ;28$ 0582 4C 11 000FD 20$: CMPB R2, #38 ;R2, #38 0572 26 52 91 000FF BNEQ 22$ ;22$ 05 12 00102 BISB2 #4, (R5) ;#4, FLAGS 0585 65 04 88 00104 21$: BRB 36$ ;36$ 0572 6A 11 00107 22$: CMPB R2, #39 ;R2, #39 27 52 91 00109 BNEQ 23$ ;23$ 05 12 0010C BICB2 #4, (R5) ;#4, FLAGS 0586 65 04 8A 0010E BRB 36$ ;36$ 0572 60 11 00111 23$: CMPB R2, #40 ;R2, #40 28 52 91 00113 BNEQ 24$ ;24$ 05 12 00116 BISB2 #8, (R5) ;#8, FLAGS 0588 65 08 88 00118 BRB 36$ ;36$ 0572 56 11 0011B 24$: CMPB R2, #41 ;R2, #41 29 52 91 0011D BNEQ 25$ ;25$ 05 12 00120 BICB2 #8, (R5) ;#8, FLAGS 0589 65 08 8A 00122 BRB 36$ ;36$ 0572 4C 11 00125 25$: CMPB R2, #42 ;R2, #42 2A 52 91 00127 BNEQ 27$ ;27$ 10 12 0012A PUSHAB -508(R5) ;O_BUF 0592 FE04 C5 9F 0012C PUSHAB 4(SP) ;J 04 AE 9F 00130 CALLS #2, W^PUT_OUT_REC ;#2, PUT_OUT_REC 0000V CF 02 FB 00133 CLRL (SP) ;J 0593 6E D4 00138 26$: BRB 36$ ;36$ 0572 37 11 0013A 27$: CMPB R2, #43 ;R2, #43 2B 52 91 0013C BNEQ 29$ ;29$ 0C 12 0013F MOVAB -508(R5), R0 ;O_BUF, R0 0600 50 FE04 C5 9E 00141 MOVB #12, @0(SP)[R0] ;#12, @J[R0] 00 BE40 0C 90 00146 28$: BRB 41$ ;41$ 0601 6E 11 0014B 29$: CMPB R2, #44 ;R2, #44 0572 2C 52 91 0014D BNEQ 31$ ;31$ 05 12 00150 BISB2 #16, (R5) ;#16, FLAGS 0604 65 10 88 00152 30$: BRB 36$ ;36$ 0572 1C 11 00155 31$: CMPB R2, #45 ;R2, #45 2D 52 91 00157 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 32 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (14) BNEQ 33$ ;33$ 05 12 0015A BICB2 #16, (R5) ;#16, FLAGS 0605 65 10 8A 0015C 32$: BRB 36$ ;36$ 0572 12 11 0015F 33$: CMPB R2, #46 ;R2, #46 2E 52 91 00161 BNEQ 35$ ;35$ 05 12 00164 BISB2 #32, (R5) ;#32, FLAGS 0606 65 20 88 00166 34$: BRB 36$ ;36$ 0572 08 11 00169 35$: CMPB R2, #47 ;R2, #47 2F 52 91 0016B BNEQ 37$ ;37$ 05 12 0016E BICB2 #32, (R5) ;#32, FLAGS 0607 65 20 8A 00170 36$: BRB 49$ ;49$ 0572 7C 11 00173 37$: CMPB R2, #49 ;R2, #49 31 52 91 00175 BNEQ 38$ ;38$ 0D 12 00178 MOVAB -508(R5), R0 ;O_BUF, R0 0611 50 FE04 C5 9E 0017A MOVB #91, @0(SP)[R0] ;#91, @J[R0] 00 BE40 5B 8F 90 0017F BRB 43$ ;43$ 0612 46 11 00185 38$: CMPB R2, #50 ;R2, #50 0572 32 52 91 00187 BNEQ 39$ ;39$ 0D 12 0018A MOVAB -508(R5), R0 ;O_BUF, R0 0616 50 FE04 C5 9E 0018C MOVB #92, @0(SP)[R0] ;#92, @J[R0] 00 BE40 5C 8F 90 00191 BRB 51$ ;51$ 0617 78 11 00197 39$: CMPB R2, #51 ;R2, #51 0572 33 52 91 00199 BNEQ 40$ ;40$ 0D 12 0019C MOVAB -508(R5), R0 ;O_BUF, R0 0621 50 FE04 C5 9E 0019E MOVB #93, @0(SP)[R0] ;#93, @J[R0] 00 BE40 5D 8F 90 001A3 BRB 51$ ;51$ 0622 66 11 001A9 40$: CMPB R2, #52 ;R2, #52 0572 34 52 91 001AB BNEQ 42$ ;42$ 0D 12 001AE MOVAB -508(R5), R0 ;O_BUF, R0 0626 50 FE04 C5 9E 001B0 MOVB #94, @0(SP)[R0] ;#94, @J[R0] 00 BE40 5E 8F 90 001B5 41$: BRB 51$ ;51$ 0627 54 11 001BB 42$: CMPB R2, #53 ;R2, #53 0572 35 52 91 001BD BNEQ 44$ ;44$ 0D 12 001C0 MOVAB -508(R5), R0 ;O_BUF, R0 0630 50 FE04 C5 9E 001C2 MOVB #95, @0(SP)[R0] ;#95, @J[R0] 00 BE40 5F 8F 90 001C7 43$: BRB 51$ ;51$ 0631 42 11 001CD 44$: CMPB R2, #55 ;R2, #55 0572 37 52 91 001CF BNEQ 47$ ;47$ 16 12 001D2 45$: INCL R4 ;I 0639 54 D6 001D4 CMPB (R4)[R3], #91 ;(I)[R3], #91 0640 5B 8F 6443 91 001D6 BNEQ 46$ ;46$ 04 12 001DB BISB2 #128, (R5) ;#128, FLAGS 0641 65 80 8F 88 001DD 46$: CMPB (R4)[R3], #94 ;(I)[R3], #94 0643 5E 8F 6443 91 001E1 BNEQ 45$ ;45$ EC 12 001E6 BRB 48$ ;48$ 0644 05 11 001E8 47$: CMPB R2, #56 ;R2, #56 0572 38 52 91 001EA BNEQ 52$ ;52$ 24 12 001ED 48$: INCL R4 ;I 0648 54 D6 001EF 49$: BRB 52$ ;52$ 0568 20 11 001F1 50$: MOVAB -508(R5), R0 ;O_BUF, R0 0656 50 FE04 C5 9E 001F3 ADDL2 (SP), R0 ;J, R0 50 6E C0 001F8 MOVB R1, (R0) ;R1, (R0) 60 51 90 001FB BBS #7, (R5), 51$ ;#7, FLAGS, 51$ 0657 65 07 E0 001FE ; 0F 00201 CMPB (R0), #64 ;(R0), #64 0658 40 8F 60 91 00202 BLEQU 51$ ;51$ 09 1B 00206 CMPB (R0), #91 ;(R0), #91 5B 8F 60 91 00208 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 33 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (14) BGEQU 51$ ;51$ 03 1E 0020C ADDB2 #32, (R0) ;#32, (R0) 0659 60 20 80 0020E 51$: INCL (SP) ;J 0660 6E D6 00211 52$: INCL R4 ;I 0663 54 D6 00213 BRW 4$ ;4$ 0562 FE4C 31 00215 53$: TSTL (SP) ;J 0667 6E D5 00218 BEQL 54$ ;54$ 07 13 0021A MOVL (SP), -516(R5) ;J, SAVE_J FDFC C5 6E D0 0021C BRB 55$ ;55$ 04 11 00221 54$: CLRL -516(R5) ;SAVE_J FDFC C5 D4 00223 55$: MOVL #1, R0 ;#1, R0 0517 50 01 D0 00227 RET ; 0516 04 0022A ; Routine Size: 555 bytes, Routine Base: $CODE$ + 047F WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 34 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (15) ; 0672 ROUTINE PUT_OUT_REC(LEN,ADDR) = ; 0673 BEGIN ; 0674 ; 0675 IF .OUT_FILE_NAME_LEN NEQ 0 THEN ; 0676 BEGIN ; 0677 LOCAL ; 0678 RMS_STATUS; ; 0679 ; 0680 OUT_FILE_RAB[RAB$W_RSZ] = ..LEN; ; 0681 OUT_FILE_RAB[RAB$L_RBF] = .ADDR; ; 0682 ; 0683 IF NOT (RMS_STATUS = $PUT(RAB = OUT_FILE_RAB)) THEN ; 0684 SIGNAL_STOP(.RMS_STATUS); ; 0685 END ; 0686 ELSE ; 0687 BEGIN ; 0688 LOCAL ; 0689 BUF_DES: VECTOR[2]; ; 0690 ; 0691 IF .INDEX_HEADER THEN ; 0692 BEGIN ; 0693 LOCAL J, ; 0694 LSTR : VECTOR[64,BYTE]; ; 0695 CH$FILL(%C'.',64,LSTR); ; 0696 BUF_DES[0] = ..LEN-5; ; 0697 BUF_DES[1] = .ADDR+3; ; 0698 BEGIN !LOCAL BLOCK ; 0699 BIND STR = .BUF_DES[1] : VECTOR[,BYTE]; ; 0700 J=0; ; 0701 INCR I FROM 0 TO .BUF_DES[0] -1 DO ; 0702 BEGIN ; 0703 IF .STR[.I] EQL %C'>' THEN LSTR[.J] = %C' ' ; 0704 ELSE IF .STR[.I] EQL %C'<' THEN J = 31 ; 0705 ELSE LSTR[.J] = .STR[.I]; ; 0706 J = .J+1; ; 0707 END; ; 0708 BUF_DES[0] = .J; ; 0709 BUF_DES[1] = LSTR; ; 0710 END; !LOCAL BLOCK ; 0711 END ; 0712 ELSE ; 0713 BEGIN ; 0714 BUF_DES[0] = ..LEN; ; 0715 BUF_DES[1] = .ADDR; ; 0716 END; ; 0717 ; 0718 LIB$PUT_OUTPUT(BUF_DES); ; 0719 END; ; 0720 ; 0721 ; 0722 RETURN 1; ; 0723 END; .EXTRN SYS$PUT WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 35 01.00 READ AND TRANSLATE WP FORMAT FLOPPIES 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (15) PUT_OUT_REC: .WORD ^M ;Save R2,R3,R4,R5,R6 0672 007C 00000 MOVAB W^OUT_FILE_NAME_LEN, R6 ;OUT_FILE_NAME_LEN, R6 56 0000' CF 9E 00002 MOVAB -72(SP), SP ;-72(SP), SP 5E B8 AE 9E 00007 TSTL (R6) ;OUT_FILE_NAME_LEN 0675 66 D5 0000B BEQL 1$ ;1$ 22 13 0000D MOVW @4(AP), 118(R6) ;@LEN, OUT_FILE_RAB+34 0680 76 A6 04 BC B0 0000F MOVL 8(AP), 124(R6) ;ADDR, OUT_FILE_RAB+40 0681 7C A6 08 AC D0 00014 PUSHAB 84(R6) ;OUT_FILE_RAB 0683 54 A6 9F 00019 CALLS #1, @#SYS$PUT ;#1, @#SYS$PUT 00000000G 9F 01 FB 0001C BLBS R0, 9$ ;RMS_STATUS, 9$ 6B 50 E8 00023 PUSHL R0 ;RMS_STATUS 0684 50 DD 00026 CALLS #1, G^LIB$STOP ;#1, LIB$STOP 00000000G 00 01 FB 00028 BRB 9$ ;9$ 0675 60 11 0002F 1$: BLBC -4(R6), 7$ ;INDEX_HEADER, 7$ 0691 4A FC A6 E9 00031 MOVC5 #0, (SP), #46, #64, (SP) ;#0, (SP), #46, #64, LSTR 0695 6E 00 2C 00035 ; 0040 8F 2E 00038 ; 6E 0003C SUBL3 #5, @4(AP), 64(SP) ;#5, @LEN, BUF_DES 0696 04 BC 05 C3 0003D ; 40 AE 00041 ADDL3 #3, 8(AP), 68(SP) ;#3, ADDR, BUF_DES+4 0697 08 AC 03 C1 00043 ; 44 AE 00047 CLRL R0 ;J 0700 50 D4 00049 MNEGL #1, R2 ;#1, I 0701 52 01 CE 0004B BRB 6$ ;6$ 20 11 0004E 2$: MOVZBL @68(SP)[R2], R1 ;@BUF_DES+4[I], R1 0703 51 44 BE42 9A 00050 CMPB R1, #62 ;R1, #62 3E 51 91 00055 BNEQ 3$ ;3$ 06 12 00058 MOVB #32, (SP)[R0] ;#32, LSTR[J] 6E40 20 90 0005A BRB 5$ ;5$ 0E 11 0005E 3$: CMPB R1, #60 ;R1, #60 0704 3C 51 91 00060 BNEQ 4$ ;4$ 05 12 00063 MOVL #31, R0 ;#31, J 50 1F D0 00065 BRB 5$ ;5$ 04 11 00068 4$: MOVB R1, (SP)[R0] ;R1, LSTR[J] 0705 6E40 51 90 0006A 5$: INCL R0 ;J 0706 50 D6 0006E 6$: AOBLSS 64(SP), R2, 2$ ;BUF_DES, I, 2$ 0701 52 40 AE F2 00070 ; DB 00074 MOVL R0, 64(SP) ;J, BUF_DES 0708 40 AE 50 D0 00075 MOVAB (SP), 68(SP) ;LSTR, BUF_DES+4 0709 44 AE 6E 9E 00079 BRB 8$ ;8$ 0691 0A 11 0007D 7$: MOVL @4(AP), 64(SP) ;@LEN, BUF_DES 0714 40 AE 04 BC D0 0007F MOVL 8(AP), 68(SP) ;ADDR, BUF_DES+4 0715 44 AE 08 AC D0 00084 8$: PUSHAB 64(SP) ;BUF_DES 0718 40 AE 9F 00089 CALLS #1, W^LIB$PUT_OUTPUT ;#1, LIB$PUT_OUTPUT 0000G CF 01 FB 0008C 9$: MOVL #1, R0 ;#1, R0 0673 50 01 D0 00091 RET ; 0672 04 00094 ; Routine Size: 149 bytes, Routine Base: $CODE$ + 06AA ; 0724 WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 36 01.00 UPCASE 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (16) ; 0725 %SBTTL 'UPCASE' ; 0726 ROUTINE UPCASE (STRLEN,STRADDR) : NOVALUE = ; 0727 ; 0728 BEGIN ; 0729 CH$TRANSLATE( ; 0730 CH$TRANSTABLE( ; 0731 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24, ; 0732 25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46, ; 0733 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68, ; 0734 69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, ; 0735 91,92,93,94,95,96, 65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80, ; 0736 81,82,83,84,85,86,87,88,89,90, 123,124,125,126,127), ; 0737 .STRLEN,CH$PTR(.STRADDR), ; 0738 %C' ', ; 0739 .STRLEN,CH$PTR(.STRADDR)); ; 0740 END; .PSECT $PLIT$,NOWRT,NOEXE,2 P.ABO: .BYTE 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - ; 07 06 05 04 03 02 01 00 00234 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - ; 0F 0E 0D 0C 0B 0A 09 08 0023C 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - ; 17 16 15 14 13 12 11 10 00244 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - ; 1F 1E 1D 1C 1B 1A 19 18 0024C 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - ; 27 26 25 24 23 22 21 20 00254 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 65, 66, - ; 2F 2E 2D 2C 2B 2A 29 28 0025C 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - ; 37 36 35 34 33 32 31 30 00264 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127 ; 3F 3E 3D 3C 3B 3A 39 38 0026C ; 47 46 45 44 43 42 41 40 00274 ; 4F 4E 4D 4C 4B 4A 49 48 0027C ; 57 56 55 54 53 52 51 50 00284 ; 5F 5E 5D 5C 5B 5A 59 58 0028C ; 47 46 45 44 43 42 41 60 00294 ; 4F 4E 4D 4C 4B 4A 49 48 0029C ; 57 56 55 54 53 52 51 50 002A4 ; 7F 7E 7D 7C 7B 5A 59 58 002AC .PSECT $CODE$,NOWRT,2 UPCASE: .WORD ^M ;Save R2,R3,R4,R5 0726 003C 00000 MOVTC 4(AP), @8(AP), #32, W^P.ABO, - ;STRLEN, @STRADDR, #32, P.ABO, - 0729 08 BC 04 AC 2E 00002 4(AP), @8(AP) ;STRLEN, @STRADDR 0000' CF 20 00007 ; 08 BC 04 AC 0000B RET ; 0726 04 0000F ; Routine Size: 16 bytes, Routine Base: $CODE$ + 073F WFLP WFLP 2-Dec-1981 11:31:24 VAX-11 Bliss-32 V2.1-667 Page 37 01.00 UPCASE 2-Dec-1981 11:26:42 _DRB2:[SYSMGR.NLSYMB]WFLP.BLI;18 (16) ; 0741 ; 0742 END !End of module ; 0743 ELUDOM .EXTRN LIB$SIGNAL, LIB$STOP ; PSECT SUMMARY ; ; Name Bytes Attributes ; ; $PLIT$ 692 NOVEC,NOWRT, RD ,NOEXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; $OWN$ 5525 NOVEC, WRT, RD ,NOEXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; $CODE$ 1871 NOVEC,NOWRT, RD , EXE,NOSHR, LCL, REL, CON,NOPIC,ALIGN(2) ; LIBRARY STATISTICS ; ; -------- Symbols -------- Blocks ; File Total Loaded Percent Read ; ; _DRB2:[SYSLIB]LIB.L32;3 7325 34 0 299 ; COMMAND QUALIFIERS ; BLISS /MACH=AS/LIST WFLP ; Size: 1871 code + 6217 data bytes ; Run Time: 00:38.1 ; Elapsed Time: 14:18.3 ; Memory Used: 409 pages ; Compilation Complete .END WFLP