* SAVE DEFAULTS VERSION 1.2 S.R.Usher 17/4/88
SAV_DEF MOVEQ #-1,D1 ;Try to open TERM_DEF from default
MOVEQ #3,D3 ;device, NEW(overwrite) mode
LEA FILE1,A0
MOVE.L A0,A3
MOVEQ #1,D0
TRAP #2
CMP.B #-8,D0 ;If EXists error then delete it and
BEQ DEL_FIL ;goto REOPEN
CMP.B #-9,D0 ;If In Use error then return
BEQ KEY_END
CMP.B #0,D0 ;If opened then goto saving routine
BEQ END_OPE
LEA FILE2,A0 ;As above except for FLP1_TERM_DEF
MOVE.L A0,A3
MOVEQ #1,D0
TRAP #2
CMP.B #-8,D0
BEQ DEL_FIL
CMP.B #-9,D0
BEQ KEY_END
CMP.B #0,D0
BEQ END_OPE
LEA FILE3,A0 ;As above except for MDV1_TERM_DEF
MOVE.L A0,A3
MOVEQ #1,D0
TRAP #2
CMP.B #-8,D0
BEQ DEL_FIL
CMP.B #-9,D0
BEQ KEY_END
CMP.B #0,D0
BEQ END_OPE
REOPEN MOVEQ #2,D3 ;Change to NEW(exclusive) opening mode
MOVE.L A3,A0 ;and do as above except not checking
MOVEQ #1,D0 ;EXists error
TRAP #2
TST.B D0
BLT KEY_END
END_OPE LEA WKSPAC+64,A3 ;Load address of System Variables into
MOVE.W #64,D2 ;A3 and the number of bytes into D2
MOVE.W #500,D3 ;Timeout = 10 seconds
SAVE_LP MOVE.B (A3)+,D1 ;Move byte into D1
MOVEQ #5,D0
TRAP #3 ;Send it to the file
TST.W D2 ;Test if D2 is zero
DBLT D2,SAVE_LP ;If not then decrement D2 repeat loop
TST.B 133(A6)
BEQ CLOSE
MOVEQ #-1,D1
MOVEQ #5,D0
TRAP #3
CLOSE MOVEQ #2,D0 ;Close file
TRAP #2
BRA KEY_END ;Return
DEL_FIL MOVE.L A2,A5 ;Save A2 in A5
MOVE.L A3,A0 ;Move address of filename into A0
MOVEQ #4,D0
TRAP #2 ;Delete file
MOVE.L A5,A2 ;Replace A2
BRA.S REOPEN ;Return