;*************************** AMUS Program Label ******************************
; Filename: ARCRES.M68 Date: 032389
; Category: UTIL Hash Code: 746-311-455-753 Version: 1.0(103)
; Initials: ULTR/AM Name: DAVID PALLMANN
; Company: ULTRASOFT Telephone #: 5163984848
; Related Files: WLDSCN.OBJ,ARCHIV.M68,ARCDIR.M68
; Min. Op. Sys.: Expertise Level: BEG
; Special: Must lnklit with wldscn
; Description: Restores files which have been archived using ARCHIV. To
; restore a set of files, type .ARCRES device=archive-file.
; eg. .ARCRES dsk0=baic
;*****************************************************************************
;***************************************************************************;
; ;
; ARCRES ;
; restore an archive image to AMOS files ;
; ;
; Author: David F. Pallmann ;
; Copyright (C) 1984 by LMS Technical Services, Inc. ;
; ;
;***************************************************************************;
;
; File makes external references to MAC:SYSLIB.LIB.
; After assembly, enter this command: .LNKLIT file
;
OBJNAM ARCRES.LIT
VMAJOR=1
;edit history
VEDIT=100. ;06-Jan-84 DFP creation.
VEDIT=101. ;07-Apr-84 DFP correct restore of 0-byte files.
VEDIT=102. ;12-Apr-84 DFP add PPNs to disk if required.
VEDIT=103. ;17-Apr-84 DFP correct bug introduced by 102 edit!
;universals
SEARCH SYS
SEARCH SYSSYM
EXTERN $ADPPN
;registers
IMP=A5 ;impure index
;impure area
OFINI
OFDEF FILE,D.DDB ;DDB for writing AMOS files
OFDEF ARCDIR,D.DDB ;DDB for reading archive directory
OFDEF ARCDAT,D.DDB ;DDB for reading archive data
OFDEF WRKDDB,D.DDB ;DDB for $ADPPN call
OFSIZ IMPSIZ
START: PHDR -1,0,PH$REE!PH$REU ;program header
GETIMP IMPSIZ,IMP ;allocate impure area
;get output device specification
GETDEV: BYP
LIN
JEQ HELP
FSPEC FILE(IMP)
INIT FILE(IMP)
ORB #D$ERC!D$BYP,FILE+D.FLG(IMP) ; 102
;bypass '='
SKIP: BYP
CMMB (A2)+,#'=
JNE HELP
;get archive name
GETARC: BYP
LIN
JEQ HELP
SAVE A2
FSPEC ARCDIR(IMP),XXX
MOVW #[MAP],ARCDIR+D.EXT(IMP)
INIT ARCDIR(IMP)
REST A2
FSPEC ARCDAT(IMP),XXX
MOVW #[ARC],ARCDAT+D.EXT(IMP)
INIT ARCDAT(IMP)