From: SMTP%"MX-List@WKUVX1.WKU.EDU" 9-MAR-1994 18:28:20.36 To: EVERHART CC: Subj: Re: BASE64 Decoder? X-ListName: Message Exchange Discussion List Warnings-To: <> Errors-To: List-Mgr@WKUVX1.WKU.EDU Sender: List-Mgr@WKUVX1.WKU.EDU From: lederman@intransit_tsc.vntsc.dot.gov (lederman) X-Newsgroups: vmsnet.mail.mx Subject: Re: BASE64 Decoder? Message-ID: <1994Mar9.142325.44@bosv01> Date: 9 Mar 94 14:23:23 EST Reply-To: MX-List@WKUVX1.WKU.EDU Distribution: inet Organization: INTRANSIT (VNTSC) Lines: 50 To: MX-List@WKUVX1.WKU.EDU X-Gateway-Source-Info: USENET I also needed to decode some MIME files, and expect to do so more in the future. With some help from Dan Wing I was able to figure out a way. It isn't very elegant, but it works. First I obtained the MX 4.0 Beta kit. Then I extracted DECODE.OLB from one of the save sets (I think C). Then by reading the KITINSTAL.COM, I came up (after a couple of tries) with this command file which will link MX_DECODE.EXE even if you're still running on 3.3 as I am: $ LINK /map /NOUSERLIBRARY /exe = MX_DECODE.EXE sys$input /opt DECODE.OLB/INCLUDE=MX_DECODE/LIB DECODE.OLB/LIB MX_EXE:MX_SHR.EXE/SHARE $ EXIT You should define a foreign command like MX_DECODE :== $sys$login:MX_DECODE.EXE or wherever you put the image, or you can RUN it and be prompted for the missing input and output files. The trick is that you have to go into the BASE64 text file and change the header so MX_DECODE will recognize it. I suppose an editor command procedure could be developed for this, but I did mine manually. The following worked for me when decoding some JPEG files: the output is variable-length Stream-LF, but it could be anything. You can stick (probably) any valid FDL file into the header. I've also tried fixed-length 512 byte files and they work. MIME-Version: 1.0 Content-Transfer-Encoding: BASE64 Content-Type: APPLICATION/VMS-RMS; VMS-FDL="SYSTEM; SOURCE VAX/VMS;;FILE; ALLOCATION 100; BEST_TRY_CONTIGUOUS no; CONTIGUOUS no; EXTENSION 0; GLOBAL_BUFFER_COUNT 0; FILE_MONITORING no; ORGANIZATION sequential; READ_CHECK no; SUPERSEDE no; WRITE_CHECK no; PROTECTION (system:RWD, owner:RWD, group:, world:);; RECORD; BLOCK_SPAN yes; CARRIAGE_CONTROL none; FORMAT stream_lf; SIZE 0;" As I said, not very elegant (with the hand editing), but it has worked for me. -- B. Z. Lederman. My personal opinions.