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" 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" 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" 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 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" 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: 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" 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"
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_=-- ------------------------------ Date: Fri, 18 Jan 2008 12:26:26 -0500 From: "Peter Weaver" 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 Subject: Re: Why Writers Buy Asbestos Undies Message-ID: <413c5e72-de55-4d61-8c33-9ed220530001@e6g2000prf.googlegroups.com> On Jan 17, 6:48 pm, yyyc186 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 ************************