	TITLE	'MYDOS UTILITIES PROGRAM'
	LIST	I
;  Copyright 1984, Charles Marslett, Wordmark Systems
;
;  Permission is granted by the author for any use whatsoever of this
;    code, so long as this notice remains in the source code, and so
;    long as the source to this routine, however modified or unmodified,
;    is made available for a nominal cost.
;
;  FMS ENTRY POINTS (These should not be changed lightly!)
;
;  [Data]
;
FILES	=	$0709		;MAX NUMBER OF OPEN DISK FILES
RAMDKU	=	$070A		;LOC OF RAM DISK DRIVE NO
DFUNIT	=	$070B		;CURRENT DEFAULT UNIT NUMBER
SECDAT	=	$070E		;CURRENT I/O SECTOR SIZE (1=128, 2=256)
DLINK	=	$0711		;OFFSET TO THE LINK FIELD IN EACH SECTOR
ANDCD	=	$0734		;OFFSET TO THE MASK EXTRACTING NEXT SECTOR BITS
DKIO2	=	$0769		;SECTOR I/O SUBROUTINE ENTRY POINT
WRCMD	=	$0779		;ADDRESS OF WRITE COMMAND BYTE (50/57)
STATE	=	$07BE		;CURRENT STATE OF DUP/MEM/AUTORUN
DKTYPE	=	$07C4		;DISK SECTOR SIZE TABLE (8 BYTES)
DRVDEF	=	$07CC		;FLOPPY DRIVE CONFIGURATION TABLE (8-BYTES)
MDINIT	=	$07E0		;MDOS initialization code
MAPBUF	=	$0908		;512-BYTE BUFFER DOWN IN RESIDENT AREA
HDTAB	=	$0B15		;HARD DISK DRIVE SIZE TABLE (0 = FLOPPY)
WOTDCB	=	$0B25		;PROTOTYPE DRIVE MODE SET TABLE
MAPAGE	=	$0BBA		;Page configuration table (64-bytes) in MDOS
;
;  [Code]
;
CONFIGR	=	$0B2F		;CONFIGURE DRIVE SUBROUTINE ENTRY
RDCONF	=	$0B9A		;READ CONFIGURATION STATE SUBROUTINE ENTRY
STEPBP	=	$0C5D		;STEP TO THE NEXT BOOT SECTOR BUFFER ADDRESS
;
;
;  RAM disk I/O driver patch locations
;
RDKLMT	=	$0C3A		;Size of RAM disk
RDAD1	=	$0C0D		;Three locations where the control address
RDAD2	=	$0C19		;  needs to be stored
RDAD3	=	$0C4C
NMLMAP	=	$0C14		;Mask (1=part of mapping register)
;
;  Starting location for the MDUP code
;
ORIGIN	=	$1AE0		;FIRST BYTE AFTER MDOS(19CE - 4.00)
;
;  Patches linking MDUP into MDOS
;
	ORG	$70C
	DW	RESEND		;START OF FREE MEMORY (end of resident stuff)
;
	ORG	$085E
	JMP	INIT		;DUP INITIALIZATION ENTRY POINT
;
;
;  DEFINED VALUES
;
CR	=	$9B
EOF	=	$88
;
OPEN	=	3
GETREC	=	5
GETCHR	=	7
PUTCHR	=	11
CLOSE	=	12
RENAME	=	32
DELETE	=	33
LOCK	=	35
UNLOCK	=	36
FORMAT	=	254
;
;  ROM AND RAM ADDRESSES
;
CARTST	=	$BFFA
;
AUDF1	=	$D200
AUDCTL	=	$D208
SKRES	=	$D20A
SERIN	=	$D20D
SEROUT	=	$D20D
IRQEN	=	$D20E
SKCTL	=	$D20F
PBCTL	=	$D303
;
FASCII	=	$D8E6
IFP	=	$D9AA
EDITRV	=	$E400
DSKIO	=	$E453
CIOV	=	$E456
SIOV	=	$E459
SETVBV	=	$E45C
CIOINV	=	$E46E
;
WARMST	=	$08
DOSVEC	=	$0A
DOSINI	=	$0C
POKMSK	=	$10
BRKKEY	=	$11
RAMLO	=	$1A
;
DUNITZ	=	$21
DCMDZ	=	$22
DBUFZ	=	$24
DLENZ	=	$28
DAUX1Z	=	$2A
DAUX2Z	=	$2B
DAUX3Z	=	$2C
;
LMARGN	=	$52
RMARGN	=	$53
;
FR0	=	$D4
VECTOR	=	$D4
HDBUF	=	$D6
BUFAD	=	$DA
BUFLEN	=	$DC
FNPTR	=	$DE
TEMP	=	$E0
TEMP2	=	$E1
;
INBUFF	=	$F3
;
VSERIN	=	$20A
VIMIRQ	=	$216
CDTMV3	=	$21C
CDTMF3	=	$22A
SHFLOK	=	$2BE
RUNAD	=	$2E0
INITAD	=	$2E2
MEMTOP	=	$2E5
MEMLO	=	$2E7
DVSTAT	=	$2EA		;SYSTEM STATUS BUFFER
;
DDEVIC	=	$300
DUNIT	=	$301
DCMD	=	$302
DSTAT	=	$303
DBUF	=	$304
DTIMEO	=	$306
DLEN	=	$308
DAUX	=	$30A
HATABS	=	$31A
;
IOCB	=	$340
ICDNO	=	$341
ICMD	=	$342
ISTAT	=	$343
IBUF	=	$344
ILEN	=	$348
IAUX	=	$34A
;
	ORG	ORIGIN		;START OF MDUP
;
	INCLUDE	D:MDUP1.ASM	;RESIDENT CODE
;
MSBASE	=	*		;START OF NON-RESIDENT CODE
;
	INCLUDE	D:MDUP2.ASM	;DATA AREAS AND THE MAIN MENU
;
	INCLUDE	D:MDUP3.ASM	;COPY, LIST, CREATE, AND DELETE FUNCTIONS
;
	INCLUDE	D:MDUP4.ASM	;ENTIRE DISK FUNCS (FORMAT, COPY, WRT BOOT)
;
	INCLUDE	D:MDUP5.ASM	;PROGRAM LOAD AND SAVE FUNCTIONS
;
	INCLUDE	D:MDUP6.ASM	;CONFIGURATION FUNCTIONS
;
	INCLUDE	D:MDUP7.ASM	;MISC. SUBROUTINES
;
DUPEND	=	*
DUPLEN	=	DUPEND-DUPBASE
MSLEN	=	DUPEND-MSBASE
	END	MENUSL
