1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-04-25 03:55:04 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

107 lines
3.1 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
MODULE NXTFIL( ! Get next file from list of files
IDENT='3'
%BLISS36(,
ENTRY(DAP$NEXTFILE)
)
) =
BEGIN
! COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1986.
! ALL RIGHTS RESERVED.
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND
! COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH
! THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR
! ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
! AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE
! SOFTWARE IS HEREBY TRANSFERRED.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
! NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
! EQUIPMENT CORPORATION.
!
! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
! ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
!++
! FACILITY: DAP
!
! ABSTRACT: Routines to transfer records or blocks of file data.
!
!
! ENVIRONMENT: RMS, BLISSNET, XPORT, Transportable code.
!
! AUTHOR: Andrew Nourse, CREATION DATE: 14-Sep-82
!
! Edit (%O'1', '12-Apr-84', 'Sandy Clemens')
! %( Add the TOPS-10 DAP sources for DIL V2. Use the standard DIL
! edit history format.
! )%
!
! Edit (%O'5', '5-Oct-84', 'Sandy Clemens')
! %( Add new format of COPYRIGHT notice. FILES: ALL )%
!
! 03 - Start TOPS-10 support [Doug Rayner]
! 02 - Filespec components (except node) should not be sticky
! 01 - Write code to handle multiple local input filespecs
!--
!
! INCLUDE FILES:
!
!LIBRARY 'BLI:XPORT';
LIBRARY 'RMS';
LIBRARY 'BLISSNET';
LIBRARY 'CONDIT';
LIBRARY 'DAP';
!
! Table of Contents
!
FORWARD ROUTINE
DAP$NEXTFILE;
!
! Externals
!
EXTERNAL ROUTINE DAP$MERGE,
DAP$CLOSE,
R$NULL,
DAP$OPENFILE;
GLOBAL ROUTINE DAP$NEXTFILE(FAB: REF $FAB_DECL, ERR)=
BEGIN
BIND NAM=.FAB[FAB$A_NAM]: $NAM_DECL;
BIND DIB=.FAB[FAB$A_DIB]: $DIB;
LOCAL BEGPTR;
IF NAM EQL 0 THEN RETURN 0; ! Cannot do without name block
BEGPTR=CH$PLUS(.FAB[FAB$A_FNA],.NAM[NAM$H_WCC_NEXT]); ! Point to spec delimiter
SELECT CH$RCHAR_A(BEGPTR) OF
SET
[%C',', %C'+']:
BEGIN
LOCAL FUNCTION;
LOCAL NEWFAB;
FUNCTION=.DIB[DIB$B_OPERATION];
NEWFAB=.DIB[DIB$A_NEW_FAB];
NAM[NAM$H_WCC_NEXT]=.NAM[NAM$H_WCC_NEXT]+1;
CH$WCHAR(0,CH$PTR(NAM[NAM$T_DEV])); ![2] Should not be sticky
CH$WCHAR(0,CH$PTR(NAM[NAM$T_DIR])); ![2] Should not be sticky
CH$WCHAR(0,CH$PTR(NAM[NAM$T_NAM])); ![2] Should not be sticky
CH$WCHAR(0,CH$PTR(NAM[NAM$T_EXT])); ![2] Should not be sticky
CH$WCHAR(0,CH$PTR(NAM[NAM$T_VER])); ![2] Should not be sticky
DAP$MERGE(FAB[$],MERGE$M_EXPANDED+MERGE$M_POINT,.ERR);
DAP$CLOSE(FAB[$],DAP$K_ACCOMP_PURGE,R$NULL); ![2] Close old access if any
DAP$OPENFILE(FAB[$],.FUNCTION,.NEWFAB,.ERR);
(.FAB[FAB$H_STS] EQL RMS$_SUC)
END;
[OTHERWISE]: 0;
TES
END;
END ELUDOM