;*ADFSave
;---------
;Save an ADF image back to disc as an ADF file
;Entry:
; R0 = pointer to command tail
; R1 = no. of parameters
; R12 = pointer to module private word

.Entry_ADFSave
 STMFD   R13!, {R1-R12, R14}
 LDR     R12, [R12, #0]

 LDR     R1, [R12, #ADF_Mounted - VARS]	;check an ADF is mounted
 TEQ     R1, #0
 MOVEQ   R0, #1 << 31			;set V
 ADDEQS  R0, R0, R0			;  |
 ADRVS   R0, Error_Disc_Empty		;  |
 LDMVSFD R13!, {R1-R12, PC}		;  + report an error

 TEQ     R1, #2				;check it's not at APD
 MOVEQ   R0, #1 << 31			;set V
 ADDEQS  R0, R0, R0			;  |
 ADRVS   R0, Error_Disc_SaveAPD		;  |
 LDMVSFD R13!, {R1-R12, PC}		;  + report an error

 MOV     R1, R0				;filename
.ADFSave_Flush_Entry
 MOV     R2,     #O_FileType		; FCE - FileCoreFloppyImage
 LDR     R4, [R12, #DA_address - VARS]	;start address
 LDR     R5, [R12, #ADF_Buffer_Length - VARS]
 ADD     R5, R5, R4			;end address
 MOV     R0, #10			;save block of memory to file and date stamp it
 SWI     XOS_File			;PRM2-35 save file

LDMFD   R13!, {R1-R12, PC}