	TITLE	COVER	- Diskette Contents List - Main	Module
	SUBTTL	Version	1.0 - June 1983
	PAGE	81,132
;
;			      ********************
;			      *	   DD Systems	 *
;			      ********************
;
CODE	SEGMENT	PARA PUBLIC 'CODE'
	ASSUME	CS:CODE,DS:CODE
;
	EXTRN	RESTR:BYTE
	EXTRN	DOPRT:NEAR
;
	ORG	100H
BEGIN:	JMP	START
;
	PUBLIC	VERS
;
VERS	DB	0			;DOS Version flag
DDRV	DB	0			;Default drive at entry
NDRV	DB	0			;Number	of drives in system
PRMT	DB	13,10,'Enter drive to list (Esc to quit): $'
ERMSG1	DB	13,10,'Invalid drive$'
SETPRT	DB	27,'0',27,'C',44,15,0	;Set 1/8" 132 character
RESPRT	DB	27,64,0			;Restore to power up status
;
	EXTRN	GETTTL:NEAR,GETFRE:NEAR,SCAN:NEAR
	EXTRN	SORT:NEAR,PRINT:NEAR
	EXTRN	PSX:BYTE
;
START	PROC	NEAR
	MOV	DX,OFFSET SETPRT
	CALL	DOPRT			;Set printer
	MOV	AH,30H
	INT	21H			;Check DOS Version
	OR	AL,AL
	JZ	NOTTWO			;V1.x
	DEC	AL			;V2.0
NOTTWO:	MOV	VERS,AL			;Save DOS flag
	MOV	AH,19H
	INT	21H			;Get default drive
	MOV	DDRV,AL			;  and save
	MOV	DL,AL
	MOV	AH,0EH
	INT	21H			;Get number of drives
	MOV	NDRV,AL			;  and save
;
;	Start of main loop
;
MLOOP:	MOV	DX,OFFSET PRMT		;Prompt	for drive
	MOV	AH,9
	INT	21H
	MOV	AH,1
	INT	21H			;Get user response
	CMP	AL,1BH			;Check for exit
	JE	QUIT			;He's done, so get off
	OR	AL,' '			;Force lower case
	SUB	AL,'a'-1		;Compute drive number
	JNC	DRVOK			;May be	valid drive
ERR1:	MOV	DX,OFFSET ERMSG1	;Invalid drive message
	MOV	AH,9
	INT	21H			;Error message out
	JMP	MLOOP
DRVOK:	CMP	AL,NDRV			;Check for installed drive
	JA	ERR1			;Drive not installed
	DEC	AL
	MOV	DL,AL
	MOV	AH,0EH
	INT	21H			;Make selected drive default
	CALL	GETTTL			;Get title
	CALL	GETFRE			;Get free space
	CALL	SCAN			;Load directory	entries
	CALL	SORT			;Sequence directory entries
	CALL	PRINT			;Produce listing
	JMP	MLOOP
;
QUIT:	MOV	DL,12
	MOV	AH,2
	INT	21H			;Force page restore
	MOV	DL,DDRV			;Load entry default drive
	MOV	AH,0EH
	INT	21H			;Restore default
	TEST	PSX,1
	JZ	NOREST
	MOV	DX,OFFSET RESTR
	CALL	DOPRT			;Restore page
NOREST:	MOV	DX,OFFSET RESPRT
	CALL	DOPRT			;Reset printer
	INT	20H			;  and exit
START	ENDP
;
CODE	ENDS
;
	END	BEGIN
