INFO-VAX	Fri, 18 Jan 2008	Volume 2008 : Issue 36

   Contents:
Looking for tape copy program
Re: Looking for tape copy program
Re: Looking for tape copy program
Re: Looking for tape copy program
Re: Looking for tape copy program
Re: Looking for tape copy program
VMS to Nexsan storage?
Re: Why Writers Buy Asbestos Undies

----------------------------------------------------------------------

Date: Fri, 18 Jan 2008 06:48:11 -0800 (PST)
From: "tomarsin2015@comcast.net" <tomarsin2015@comcast.net>
Subject: Looking for tape copy program
Message-ID: <67bfb8f9-ea7f-4f5e-9312-265e78aa99e4@i3g2000hsf.googlegroups.com>

Hello
A few years back, I had a tape program that would allow me to do a
tape to tape copy. The program would allow me to copy from 1 format to
another (ie dlt to dat etc). I searched thru the freeware software
archives and thru some of the sig tapes libraries, but cannot find the
program. Does anybody recall the program?
tks
phil

------------------------------

Date: Fri, 18 Jan 2008 10:44:42 -0500
From: "Richard B. Gilbert" <rgilbert88@comcast.net>
Subject: Re: Looking for tape copy program
Message-ID: <4790C96A.7060001@comcast.net>

tomarsin2015@comcast.net wrote:
> Hello
> A few years back, I had a tape program that would allow me to do a
> tape to tape copy. The program would allow me to copy from 1 format to
> another (ie dlt to dat etc). I searched thru the freeware software
> archives and thru some of the sig tapes libraries, but cannot find the
> program. Does anybody recall the program?
> tks
> phil

I've never had two tape drives on the same system/cluster to play with 
so I don't know that this will work but . . .

How about COPY MKA500:*.* MKB500:

------------------------------

Date: Fri, 18 Jan 2008 10:57:38 -0500
From: "Peter Weaver" <info-vax@weaverconsulting.ca>
Subject: Re: Looking for tape copy program
Message-ID: <03d701c859ea$da8b4a00$2802a8c0@CHARONLAP>

----- Original Message ----- 
> A few years back, I had a tape program that would allow me to do a
> tape to tape copy. The program would allow me to copy from 1 format to
> another (ie dlt to dat etc). I searched thru the freeware software
> archives and thru some of the sig tapes libraries, but cannot find the
> program. Does anybody recall the program?
> tks
> phil
>

This one? Don't remember where I got it from but it worked when I needed to 
copy a bunch a tapes for a customer that had to hand a bunch of tapes over 
to a court.

$ ty tapecopy.mar
        .TITLE  TapeCopy
        .IDENT  /GKF110990/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Program makes physical copies of tapes
; including a verification pass.
;
; Input:
;
;       input tape must be mounted:
;
;               $ MOUNT/FOREIGN tapename: "" TAPECOPY$INPUT
;
;       output tape must be mounted:
;
;               $ MOUNT/FOREIGN tapename: "" TAPECOPY$OUTPUT
;
;
        $IODEF                                  ; get IO$... definitions

        .MACRO  Check,?L1       ; check status macro
        BLBS    R0,L1
        RET
L1:
        .ENDM   Check

InputTapeNameDesc:              ; logical name input tape
        .ASCID  /TAPECOPY$INPUT/
InputTapeChannel:
        .BLKW   1
InputTapeIOSB:
        .BLKW   4

OutputTapeNameDesc:             ; logical name output tape
        .ASCID  /TAPECOPY$OUTPUT/
OutputTapeChannel:
        .BLKW   1
OutputTapeIOSB:
        .BLKW   4

TapeMarkCount:          ; tape marks encountered
        .BLKL   1

BufferSize=64*1024-1;
Buffer: .BLKB   BufferSize
VerifyBuffer:
        .BLKB   BufferSize

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;
        .ENTRY  TapeCopy$Main,0

;
; assign channel to input tape
;
        $ASSIGN_S -
                DEVNAM=InputTapeNameDesc,-
                CHAN=InputTapeChannel
        Check
;
; assign channel to output tape
;
        $ASSIGN_S -
                DEVNAM=OutputTapeNameDesc,-
                CHAN=OutputTapeChannel
        Check
        CLRL    TapeMarkCount           ; init TM count
;
; rewind input tape
;
        $QIOW_S CHAN=InputTapeChannel,-
                FUNC=#IO$_REWIND,-
                IOSB=InputTapeIOSB
        Check
        MOVZWL  InputTapeIOSB,R0
        Check
;
; rewind output tape
;
        $QIOW_S CHAN=OutputTapeChannel,-
                FUNC=#IO$_REWIND,-
                IOSB=OutputTapeIOSB
        Check
        MOVZWL  OutputTapeIOSB,R0
        Check
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; read next block
;
ReadBlock:

        $QIOW_S CHAN=InputTapeChannel,-
                FUNC=#IO$_READVBLK,-
                IOSB=InputTapeIOSB,-
                P1=Buffer,-
                P2=#BufferSize
        Check
        MOVZWL  InputTapeIOSB,R0
        BLBS    R0,WriteBlock           ; ok...,write it
        CMPL    R0,#SS$_ENDOFFILE       ; tape mark?
        BEQL    WriteTM                 ; yes...
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; write tape mark
;
WriteTM:

        INCL    TapeMarkCount           ; count this TM
        $QIOW_S CHAN=OutputTapeChannel,-; write TM
                FUNC=#IO$_WRITEOF,-
                IOSB=OutputTapeIOSB
        Check
        MOVZWL  OutputTapeIOSB,R0
        Check
        CMPL    TapeMarkCount,#2        ; end of volume?
        BEQL    GotoVerification        ; yes..., now start verification
        BRW     ReadBlock               ; no..., read next block
;
GotoVerification:
        BRW     Verification
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; write next block
;
WriteBlock:

        CLRL    TapeMarkCount           ; reset TM count
        MOVZWL  InputTapeIOSB+2,R1      ; R1=blocksize block read
        $QIOW_S CHAN=OutputTapeChannel,-
                FUNC=#IO$_WRITEVBLK,-
                IOSB=OutputTapeIOSB,-
                P1=Buffer,-
                P2=R1
        Check
        MOVZWL  OutputTapeIOSB,R0
        Check
        BRW     ReadBlock               ; start another copy
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Tape verification
;
;
Verification:
;
; rewind input tape
;
        $QIOW_S CHAN=InputTapeChannel,-
                FUNC=#IO$_REWIND,-
                IOSB=InputTapeIOSB
        Check
        MOVZWL  InputTapeIOSB,R0
        Check
;
; rewind output tape
;
        $QIOW_S CHAN=OutputTapeChannel,-
                FUNC=#IO$_REWIND,-
                IOSB=OutputTapeIOSB
        Check
        MOVZWL  OutputTapeIOSB,R0
        Check
        CLRL    TapeMarkCount           ; init TM count
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; read block from input tape
;
ReadInput:
;
        $QIOW_S CHAN=InputTapeChannel,-
                FUNC=#IO$_READVBLK,-
                IOSB=InputTapeIOSB,-
                P1=Buffer,-
                P2=#BufferSize
        Check
        MOVZWL  InputTapeIOSB,R0
        BLBS    R0,ReadOutput           ; normal block
        INCL    TapeMarkCount           ; assume it's a TM
        CMPL    R0,#SS$_ENDOFFILE       ; tape mark?
        BEQL    ReadTMOnly              ; yes...
        RET
;
ReadOutput:
;
        CLRL    TapeMarkCount           ; no TM tracing anymore
;
ReadTMOnly:
;
        $QIOW_S CHAN=OutputTapeChannel,-
                FUNC=#IO$_READVBLK,-
                IOSB=OutputTapeIOSB,-
                P1=VerifyBuffer,-
                P2=#BufferSize
        Check
        MOVZWL  OutputTapeIOSB,R0
        BLBS    R0,CompareBlock
        CMPL    R0,#SS$_ENDOFFILE       ; tape mark?
        BEQL    CompareTM               ; yes...
        RET
;
CompareTM:
;
        TSTL    TapeMarkCount           ; any TM expected on output tape?
        BEQL    CompareError            ; no...
        CMPL    TapeMarkCount,#2        ; end of tape?
        BEQL    Exit                    ; yes...
        BRW     ReadInput               ; continue
;
CompareBlock:
;
        TSTL    TapeMarkCount           ; epected TM on output tape?
        BNEQ    CompareError            ; yes...
        CMPW    InputTapeIOSB+2,OutputTapeIOSB+2 ; same length?
        BNEQ    CompareError            ; no...
        CMPC3   InputTapeIOSB+2,Buffer,VerifyBuffer ; contents match?
        BNEQ    CompareError            ; no...
        BRW     ReadInput
;
CompareError:
;
        MOVL    #4,R0                   ; end with FATAL nomessage
        RET
;
Exit:
        MOVL    #SS$_NORMAL,R0
        RET                             ; successful exit
        .END    TapeCopy$Main


Peter Weaver
www.weaverconsulting.ca
CHARON-VAX  CHARON-AXP DataStream Reflection PreciseMail HP Commercial 
Hardware

------------------------------

Date: Fri, 18 Jan 2008 08:02:57 -0800 (PST)
From: IanMiller <gxys@uk2.net>
Subject: Re: Looking for tape copy program
Message-ID: <3f1fb19a-c2a0-4c77-9a9b-af61939817f1@e10g2000prf.googlegroups.com>

On Jan 18, 2:48 pm, "tomarsin2...@comcast.net"
<tomarsin2...@comcast.net> wrote:
> Hello
> A few years back, I had a tape program that would allow me to do a
> tape to tape copy. The program would allow me to copy from 1 format to
> another (ie dlt to dat etc). I searched thru the freeware software
> archives and thru some of the sig tapes libraries, but cannot find the
> program. Does anybody recall the program?
> tks
> phil

TCOPY ?
http://mvb.saic.com/freeware/vax83d/tcopy/

------------------------------

Date: Fri, 18 Jan 2008 11:59:12 -0500
From: norm.raphael@metso.com
Subject: Re: Looking for tape copy program
Message-ID: <OFF160E0AC.4410CA00-ON852573D4.005D3917-852573D4.005D49C7@metso.com>

This is a multipart message in MIME format.
--=_alternative 005D49C5852573D4_=
Content-Type: text/plain; charset="US-ASCII"

Attempts to compile this yield errors:

%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-I-BRANCHBET, (1) branch between routines from routine 
OUTPUTTAPECHANNEL
%AMAC-I-BRANCHBET, (1) branch between routines from routine OUTPUTTAPEIOSB
%AMAC-I-BRANCHBET, (1) branch between routines from routine TAPEMARKCOUNT
%AMAC-I-BRANCHBET, (1) branch between routines from routine BUFFER
%AMAC-I-BRANCHBET, (1) branch between routines from routine VERIFYBUFFER
%AMAC-E-DATINCODE, (1) data in code stream
%AMAC-E-STORCODLAB, (1) stored code labels must be declared entry points 
in rout
ine OUTPUTTAPECHANNEL
%AMAC-E-STORCODLAB, (1) stored code labels must be declared entry points 
in rout
ine OUTPUTTAPECHANNEL
%AMAC-E-STORCODLAB, (1) stored code labels must be declared entry points 
in rout
ine OUTPUTTAPECHANNEL
%AMAC-E-STORCODLAB, (1) stored code labels must be declared entry points 
in rout
ine OUTPUTTAPECHANNEL
%AMAC-E-STORCODLAB, (1) stored code labels must be declared entry points 
in rout
ine OUTPUTTAPECHANNEL
%AMAC-E-STORCODLAB, (1) stored code labels must be declared entry points 
in rout
ine OUTPUTTAPECHANNEL
%AMAC-E-STORCODLAB, (1) stored code labels must be declared entry points 
in rout
ine OUTPUTTAPECHANNEL
%AMAC-E-PREVERROR, (1) previous errors prevent further analysis

"Peter Weaver" <info-vax@weaverconsulting.ca> wrote on 01/18/2008 10:57:38 
AM:

> ----- Original Message ----- 
> > A few years back, I had a tape program that would allow me to do a
> > tape to tape copy. The program would allow me to copy from 1 format to
> > another (ie dlt to dat etc). I searched thru the freeware software
> > archives and thru some of the sig tapes libraries, but cannot find the
> > program. Does anybody recall the program?
> > tks
> > phil
> >
> 
> This one? Don't remember where I got it from but it worked when I needed 
to 
> copy a bunch a tapes for a customer that had to hand a bunch of tapes 
over 
> to a court.
> 
> $ ty tapecopy.mar
>         .TITLE  TapeCopy
>         .IDENT  /GKF110990/
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;
> ; Program makes physical copies of tapes
> ; including a verification pass.
> ;
> ; Input:
> ;
> ;       input tape must be mounted:
> ;
> ;               $ MOUNT/FOREIGN tapename: "" TAPECOPY$INPUT
> ;
> ;       output tape must be mounted:
> ;
> ;               $ MOUNT/FOREIGN tapename: "" TAPECOPY$OUTPUT
> ;
> ;
>         $IODEF                                  ; get IO$... definitions
> 
>         .MACRO  Check,?L1       ; check status macro
>         BLBS    R0,L1
>         RET
> L1:
>         .ENDM   Check
> 
> InputTapeNameDesc:              ; logical name input tape
>         .ASCID  /TAPECOPY$INPUT/
> InputTapeChannel:
>         .BLKW   1
> InputTapeIOSB:
>         .BLKW   4
> 
> OutputTapeNameDesc:             ; logical name output tape
>         .ASCID  /TAPECOPY$OUTPUT/
> OutputTapeChannel:
>         .BLKW   1
> OutputTapeIOSB:
>         .BLKW   4
> 
> TapeMarkCount:          ; tape marks encountered
>         .BLKL   1
> 
> BufferSize=64*1024-1;
> Buffer: .BLKB   BufferSize
> VerifyBuffer:
>         .BLKB   BufferSize
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;
> ;
>         .ENTRY  TapeCopy$Main,0
> 
> ;
> ; assign channel to input tape
> ;
>         $ASSIGN_S -
>                 DEVNAM=InputTapeNameDesc,-
>                 CHAN=InputTapeChannel
>         Check
> ;
> ; assign channel to output tape
> ;
>         $ASSIGN_S -
>                 DEVNAM=OutputTapeNameDesc,-
>                 CHAN=OutputTapeChannel
>         Check
>         CLRL    TapeMarkCount           ; init TM count
> ;
> ; rewind input tape
> ;
>         $QIOW_S CHAN=InputTapeChannel,-
>                 FUNC=#IO$_REWIND,-
>                 IOSB=InputTapeIOSB
>         Check
>         MOVZWL  InputTapeIOSB,R0
>         Check
> ;
> ; rewind output tape
> ;
>         $QIOW_S CHAN=OutputTapeChannel,-
>                 FUNC=#IO$_REWIND,-
>                 IOSB=OutputTapeIOSB
>         Check
>         MOVZWL  OutputTapeIOSB,R0
>         Check
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;
> ; read next block
> ;
> ReadBlock:
> 
>         $QIOW_S CHAN=InputTapeChannel,-
>                 FUNC=#IO$_READVBLK,-
>                 IOSB=InputTapeIOSB,-
>                 P1=Buffer,-
>                 P2=#BufferSize
>         Check
>         MOVZWL  InputTapeIOSB,R0
>         BLBS    R0,WriteBlock           ; ok...,write it
>         CMPL    R0,#SS$_ENDOFFILE       ; tape mark?
>         BEQL    WriteTM                 ; yes...
>         RET
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;
> ; write tape mark
> ;
> WriteTM:
> 
>         INCL    TapeMarkCount           ; count this TM
>         $QIOW_S CHAN=OutputTapeChannel,-; write TM
>                 FUNC=#IO$_WRITEOF,-
>                 IOSB=OutputTapeIOSB
>         Check
>         MOVZWL  OutputTapeIOSB,R0
>         Check
>         CMPL    TapeMarkCount,#2        ; end of volume?
>         BEQL    GotoVerification        ; yes..., now start verification
>         BRW     ReadBlock               ; no..., read next block
> ;
> GotoVerification:
>         BRW     Verification
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;
> ; write next block
> ;
> WriteBlock:
> 
>         CLRL    TapeMarkCount           ; reset TM count
>         MOVZWL  InputTapeIOSB+2,R1      ; R1=blocksize block read
>         $QIOW_S CHAN=OutputTapeChannel,-
>                 FUNC=#IO$_WRITEVBLK,-
>                 IOSB=OutputTapeIOSB,-
>                 P1=Buffer,-
>                 P2=R1
>         Check
>         MOVZWL  OutputTapeIOSB,R0
>         Check
>         BRW     ReadBlock               ; start another copy
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;
> ; Tape verification
> ;
> ;
> Verification:
> ;
> ; rewind input tape
> ;
>         $QIOW_S CHAN=InputTapeChannel,-
>                 FUNC=#IO$_REWIND,-
>                 IOSB=InputTapeIOSB
>         Check
>         MOVZWL  InputTapeIOSB,R0
>         Check
> ;
> ; rewind output tape
> ;
>         $QIOW_S CHAN=OutputTapeChannel,-
>                 FUNC=#IO$_REWIND,-
>                 IOSB=OutputTapeIOSB
>         Check
>         MOVZWL  OutputTapeIOSB,R0
>         Check
>         CLRL    TapeMarkCount           ; init TM count
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;
> ; read block from input tape
> ;
> ReadInput:
> ;
>         $QIOW_S CHAN=InputTapeChannel,-
>                 FUNC=#IO$_READVBLK,-
>                 IOSB=InputTapeIOSB,-
>                 P1=Buffer,-
>                 P2=#BufferSize
>         Check
>         MOVZWL  InputTapeIOSB,R0
>         BLBS    R0,ReadOutput           ; normal block
>         INCL    TapeMarkCount           ; assume it's a TM
>         CMPL    R0,#SS$_ENDOFFILE       ; tape mark?
>         BEQL    ReadTMOnly              ; yes...
>         RET
> ;
> ReadOutput:
> ;
>         CLRL    TapeMarkCount           ; no TM tracing anymore
> ;
> ReadTMOnly:
> ;
>         $QIOW_S CHAN=OutputTapeChannel,-
>                 FUNC=#IO$_READVBLK,-
>                 IOSB=OutputTapeIOSB,-
>                 P1=VerifyBuffer,-
>                 P2=#BufferSize
>         Check
>         MOVZWL  OutputTapeIOSB,R0
>         BLBS    R0,CompareBlock
>         CMPL    R0,#SS$_ENDOFFILE       ; tape mark?
>         BEQL    CompareTM               ; yes...
>         RET
> ;
> CompareTM:
> ;
>         TSTL    TapeMarkCount           ; any TM expected on output 
tape?
>         BEQL    CompareError            ; no...
>         CMPL    TapeMarkCount,#2        ; end of tape?
>         BEQL    Exit                    ; yes...
>         BRW     ReadInput               ; continue
> ;
> CompareBlock:
> ;
>         TSTL    TapeMarkCount           ; epected TM on output tape?
>         BNEQ    CompareError            ; yes...
>         CMPW    InputTapeIOSB+2,OutputTapeIOSB+2 ; same length?
>         BNEQ    CompareError            ; no...
>         CMPC3   InputTapeIOSB+2,Buffer,VerifyBuffer ; contents match?
>         BNEQ    CompareError            ; no...
>         BRW     ReadInput
> ;
> CompareError:
> ;
>         MOVL    #4,R0                   ; end with FATAL nomessage
>         RET
> ;
> Exit:
>         MOVL    #SS$_NORMAL,R0
>         RET                             ; successful exit
>         .END    TapeCopy$Main
> 
> 
> Peter Weaver
> www.weaverconsulting.ca
> CHARON-VAX  CHARON-AXP DataStream Reflection PreciseMail HP Commercial 
> Hardware
> 
> 

--=_alternative 005D49C5852573D4_=
Content-Type: text/html; charset="US-ASCII"


<br><font size=2 face="sans-serif">Attempts to compile this yield errors:</font>
<br>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-I-BRANCHBET, (1) branch between
routines from routine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-I-BRANCHBET, (1) branch between
routines from routine OUTPUTTAPEIOSB</font>
<br><font size=2 face="sans-serif">%AMAC-I-BRANCHBET, (1) branch between
routines from routine TAPEMARKCOUNT</font>
<br><font size=2 face="sans-serif">%AMAC-I-BRANCHBET, (1) branch between
routines from routine BUFFER</font>
<br><font size=2 face="sans-serif">%AMAC-I-BRANCHBET, (1) branch between
routines from routine VERIFYBUFFER</font>
<br><font size=2 face="sans-serif">%AMAC-E-DATINCODE, (1) data in code
stream</font>
<br><font size=2 face="sans-serif">%AMAC-E-STORCODLAB, (1) stored code
labels must be declared entry points in rout</font>
<br><font size=2 face="sans-serif">ine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-E-STORCODLAB, (1) stored code
labels must be declared entry points in rout</font>
<br><font size=2 face="sans-serif">ine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-E-STORCODLAB, (1) stored code
labels must be declared entry points in rout</font>
<br><font size=2 face="sans-serif">ine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-E-STORCODLAB, (1) stored code
labels must be declared entry points in rout</font>
<br><font size=2 face="sans-serif">ine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-E-STORCODLAB, (1) stored code
labels must be declared entry points in rout</font>
<br><font size=2 face="sans-serif">ine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-E-STORCODLAB, (1) stored code
labels must be declared entry points in rout</font>
<br><font size=2 face="sans-serif">ine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-E-STORCODLAB, (1) stored code
labels must be declared entry points in rout</font>
<br><font size=2 face="sans-serif">ine OUTPUTTAPECHANNEL</font>
<br><font size=2 face="sans-serif">%AMAC-E-PREVERROR, (1) previous errors
prevent further analysis</font>
<br>
<br><font size=2><tt>&quot;Peter Weaver&quot; &lt;info-vax@weaverconsulting.ca&gt;
wrote on 01/18/2008 10:57:38 AM:<br>
<br>
&gt; ----- Original Message ----- <br>
&gt; &gt; A few years back, I had a tape program that would allow me to
do a<br>
&gt; &gt; tape to tape copy. The program would allow me to copy from 1
format to<br>
&gt; &gt; another (ie dlt to dat etc). I searched thru the freeware software<br>
&gt; &gt; archives and thru some of the sig tapes libraries, but cannot
find the<br>
&gt; &gt; program. Does anybody recall the program?<br>
&gt; &gt; tks<br>
&gt; &gt; phil<br>
&gt; &gt;<br>
&gt; <br>
&gt; This one? Don't remember where I got it from but it worked when I
needed to <br>
&gt; copy a bunch a tapes for a customer that had to hand a bunch of tapes
over <br>
&gt; to a court.<br>
&gt; <br>
&gt; $ ty tapecopy.mar<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .TITLE &nbsp;TapeCopy<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .IDENT &nbsp;/GKF110990/<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; ;<br>
&gt; ; Program makes physical copies of tapes<br>
&gt; ; including a verification pass.<br>
&gt; ;<br>
&gt; ; Input:<br>
&gt; ;<br>
&gt; ; &nbsp; &nbsp; &nbsp; input tape must be mounted:<br>
&gt; ;<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ MOUNT/FOREIGN
tapename: &quot;&quot; TAPECOPY$INPUT<br>
&gt; ;<br>
&gt; ; &nbsp; &nbsp; &nbsp; output tape must be mounted:<br>
&gt; ;<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ MOUNT/FOREIGN
tapename: &quot;&quot; TAPECOPY$OUTPUT<br>
&gt; ;<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $IODEF &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;; get IO$... definitions<br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .MACRO &nbsp;Check,?L1 &nbsp; &nbsp; &nbsp;
; check status macro<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BLBS &nbsp; &nbsp;R0,L1<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; RET<br>
&gt; L1:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .ENDM &nbsp; Check<br>
&gt; <br>
&gt; InputTapeNameDesc: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;
logical name input tape<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .ASCID &nbsp;/TAPECOPY$INPUT/<br>
&gt; InputTapeChannel:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .BLKW &nbsp; 1<br>
&gt; InputTapeIOSB:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .BLKW &nbsp; 4<br>
&gt; <br>
&gt; OutputTapeNameDesc: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; logical
name output tape<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .ASCID &nbsp;/TAPECOPY$OUTPUT/<br>
&gt; OutputTapeChannel:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .BLKW &nbsp; 1<br>
&gt; OutputTapeIOSB:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .BLKW &nbsp; 4<br>
&gt; <br>
&gt; TapeMarkCount: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; tape marks encountered<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .BLKL &nbsp; 1<br>
&gt; <br>
&gt; BufferSize=64*1024-1;<br>
&gt; Buffer: .BLKB &nbsp; BufferSize<br>
&gt; VerifyBuffer:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .BLKB &nbsp; BufferSize<br>
&gt; <br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; ;<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .ENTRY &nbsp;TapeCopy$Main,0<br>
&gt; <br>
&gt; ;<br>
&gt; ; assign channel to input tape<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $ASSIGN_S -<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DEVNAM=InputTapeNameDesc,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHAN=InputTapeChannel<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; ;<br>
&gt; ; assign channel to output tape<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $ASSIGN_S -<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DEVNAM=OutputTapeNameDesc,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CHAN=OutputTapeChannel<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CLRL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; init TM count<br>
&gt; ;<br>
&gt; ; rewind input tape<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=InputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_REWIND,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=InputTapeIOSB<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;InputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; ;<br>
&gt; ; rewind output tape<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=OutputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_REWIND,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=OutputTapeIOSB<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;OutputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; ;<br>
&gt; ; read next block<br>
&gt; ;<br>
&gt; ReadBlock:<br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=InputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_READVBLK,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=InputTapeIOSB,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P1=Buffer,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P2=#BufferSize<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;InputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BLBS &nbsp; &nbsp;R0,WriteBlock &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; ok...,write it<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CMPL &nbsp; &nbsp;R0,#SS$_ENDOFFILE &nbsp;
&nbsp; &nbsp; ; tape mark?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BEQL &nbsp; &nbsp;WriteTM &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; yes...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; RET<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; ;<br>
&gt; ; write tape mark<br>
&gt; ;<br>
&gt; WriteTM:<br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; INCL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; count this TM<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=OutputTapeChannel,-; write
TM<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_WRITEOF,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=OutputTapeIOSB<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;OutputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CMPL &nbsp; &nbsp;TapeMarkCount,#2 &nbsp;
&nbsp; &nbsp; &nbsp;; end of volume?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BEQL &nbsp; &nbsp;GotoVerification &nbsp;
&nbsp; &nbsp; &nbsp;; yes..., now start verification<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BRW &nbsp; &nbsp; ReadBlock &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; no..., read next block<br>
&gt; ;<br>
&gt; GotoVerification:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BRW &nbsp; &nbsp; Verification<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; ;<br>
&gt; ; write next block<br>
&gt; ;<br>
&gt; WriteBlock:<br>
&gt; <br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CLRL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; reset TM count<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;InputTapeIOSB+2,R1 &nbsp;
&nbsp; &nbsp;; R1=blocksize block read<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=OutputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_WRITEVBLK,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=OutputTapeIOSB,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P1=Buffer,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P2=R1<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;OutputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BRW &nbsp; &nbsp; ReadBlock &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; start another copy<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; ;<br>
&gt; ; Tape verification<br>
&gt; ;<br>
&gt; ;<br>
&gt; Verification:<br>
&gt; ;<br>
&gt; ; rewind input tape<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=InputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_REWIND,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=InputTapeIOSB<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;InputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; ;<br>
&gt; ; rewind output tape<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=OutputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_REWIND,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=OutputTapeIOSB<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;OutputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CLRL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; init TM count<br>
&gt; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
&gt; ;<br>
&gt; ; read block from input tape<br>
&gt; ;<br>
&gt; ReadInput:<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=InputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_READVBLK,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=InputTapeIOSB,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P1=Buffer,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P2=#BufferSize<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;InputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BLBS &nbsp; &nbsp;R0,ReadOutput &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; normal block<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; INCL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; assume it's a TM<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CMPL &nbsp; &nbsp;R0,#SS$_ENDOFFILE &nbsp;
&nbsp; &nbsp; ; tape mark?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BEQL &nbsp; &nbsp;ReadTMOnly &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; yes...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; RET<br>
&gt; ;<br>
&gt; ReadOutput:<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CLRL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; no TM tracing anymore<br>
&gt; ;<br>
&gt; ReadTMOnly:<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; $QIOW_S CHAN=OutputTapeChannel,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FUNC=#IO$_READVBLK,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IOSB=OutputTapeIOSB,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P1=VerifyBuffer,-<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P2=#BufferSize<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; Check<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVZWL &nbsp;OutputTapeIOSB,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BLBS &nbsp; &nbsp;R0,CompareBlock<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CMPL &nbsp; &nbsp;R0,#SS$_ENDOFFILE &nbsp;
&nbsp; &nbsp; ; tape mark?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BEQL &nbsp; &nbsp;CompareTM &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; yes...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; RET<br>
&gt; ;<br>
&gt; CompareTM:<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; TSTL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; any TM expected on output tape?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BEQL &nbsp; &nbsp;CompareError &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; no...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CMPL &nbsp; &nbsp;TapeMarkCount,#2 &nbsp;
&nbsp; &nbsp; &nbsp;; end of tape?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BEQL &nbsp; &nbsp;Exit &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; yes...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BRW &nbsp; &nbsp; ReadInput &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; continue<br>
&gt; ;<br>
&gt; CompareBlock:<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; TSTL &nbsp; &nbsp;TapeMarkCount &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; ; epected TM on output tape?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BNEQ &nbsp; &nbsp;CompareError &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; yes...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CMPW &nbsp; &nbsp;InputTapeIOSB+2,OutputTapeIOSB+2
; same length?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BNEQ &nbsp; &nbsp;CompareError &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; no...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; CMPC3 &nbsp; InputTapeIOSB+2,Buffer,VerifyBuffer
; contents match?<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BNEQ &nbsp; &nbsp;CompareError &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; no...<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; BRW &nbsp; &nbsp; ReadInput<br>
&gt; ;<br>
&gt; CompareError:<br>
&gt; ;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVL &nbsp; &nbsp;#4,R0 &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; end with FATAL nomessage<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; RET<br>
&gt; ;<br>
&gt; Exit:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; MOVL &nbsp; &nbsp;#SS$_NORMAL,R0<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; RET &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; successful
exit<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; .END &nbsp; &nbsp;TapeCopy$Main<br>
&gt; <br>
&gt; <br>
&gt; Peter Weaver<br>
&gt; www.weaverconsulting.ca<br>
&gt; CHARON-VAX &nbsp;CHARON-AXP DataStream Reflection PreciseMail HP Commercial
<br>
&gt; Hardware<br>
&gt; <br>
&gt; <br>
</tt></font>
--=_alternative 005D49C5852573D4_=--

------------------------------

Date: Fri, 18 Jan 2008 12:26:26 -0500
From: "Peter Weaver" <info-vax@weaverconsulting.ca>
Subject: Re: Looking for tape copy program
Message-ID: <042c01c859f7$42122a20$2802a8c0@CHARONLAP>

> Attempts to compile this yield errors:
>
> %AMAC-E-DATINCODE, (1) data in code stream
>...

Yup, on an Alpha or IA64 but not on a VAX. Add
        .PSECT  NOEXE,WRT,PAGE
just before the .ENTRY and it will compile.

Peter Weaver
www.weaverconsulting.ca
CHARON-VAX  CHARON-AXP DataStream Reflection PreciseMail HP Commercial 
Hardware 

------------------------------

Date: Fri, 18 Jan 2008 06:44:33 -0800 (PST)
From: ewilts@ewilts.org
Subject: VMS to Nexsan storage?
Message-ID: <2b8680a4-3d6a-4cb9-a51b-e5f48870f4af@i12g2000prf.googlegroups.com>

Has anybody connected Nexsan fibre storage to a VMS system?  Does it
work?  Well?

We're currently using EVA-based storage but since I have a new
SATABeast waiting to be installed, I was hoping I could throw some
archives out on the beast.  Thoughts?  The SATABeast has dual fibre
connections that run in an active/failover configuration (similar to
the original EVAs).

Thanks,
   .../Ed

--
Ed Wilts, Mounds View, MN, USA
mailto: ewilts@ewilts.org

------------------------------

Date: Fri, 18 Jan 2008 02:54:41 -0800 (PST)
From: IanMiller <gxys@uk2.net>
Subject: Re: Why Writers Buy Asbestos Undies
Message-ID: <413c5e72-de55-4d61-8c33-9ed220530001@e6g2000prf.googlegroups.com>

On Jan 17, 6:48 pm, yyyc186 <yyyc...@hughes.net> wrote:
> Here is what the Kirkus reviewer had to say.  I guess this explains
> why there were no OpenVMS books in their review database.
...

or perhaps he just does not like your style. You may find that
reviewer has a particular dislike for books with personality.

------------------------------

End of INFO-VAX 2008.036
************************