/CPYFIL (COPY FILE) MAINTENCE COMMAND TO COPY DOCUMENTS
/	.VERSION / /
/
/	COPYRIGHT (C) 1983
/	DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754
/
/	THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
/	ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
/	INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
/	COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
/	OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
/	TRANSFERRED.
/
/	THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
/	AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
/	CORPORATION.
/
/	DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
/	SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
/
/++
/	FACILITY:
/
/	ABSTRACT:
/
/	ENVIRONMENT:
/
/	AUTHOR: GEORGE PANOS		CREATION DATE: OCTOBER 31,1981
/
/--

/
/************************************************************************
/			EDIT HISTORY
/***************************************************************************
/
/	046	EMcD	11-Sep-85	Add Nordic translations
/					conditionalised
/	045	MART	02-AUG-85	FIX ITALIAN assembly bugs
/	044	EJL	12-OCT-84	fix COPY ONE, COPY ALL copying
/					wrong file
/	043	WCE	18-SEP-84	Change #'s to NUMBER in text messages
/	042	DFB	24-AUG-84	Fix bug due to hard wired references
/	041	WJY	07-AUG-84	Change "Not enough room..." error message
/					to reflect the possibility of a non-init
/					diskette (volume).  Bug WPSV2-96.
/	040	WCE	30-OCT-83	CHANGED CHRCNT TAG TO CHARCT
/	039	WJY	27-SEP-83	DM II V1.5 WINCHESTER SUPPORT
/					*note*  The term area has been replaced
/					by device.  Since device is already used
/					in another context, I left the term area
/					in the comments & only changed TEXT statements
/	038	HLP	23-SEP-83	Fix bug induced V10J when copy one by
/					  number it thinks has no name
/	037	HLP	01-SEP-83	QAR EZ-59 number over 200 in index doc
/					GENERAL CLEANUP & SOME RECONSTRUCTION
/			THRU		TO SAVE SPACE FOR THE ABOVE FIXES
/					ADDED SCREEN FOR ILLEGAL DOCUMENT NUMBER
/			19-SEP-83	REWORDED SCREEN TO SHOW THAT TYPING RETURN
/					TO A NUMBERED DOCUMENT ASSIGNS A NEW NUMBER
/	036	HLP	07-SEP-83	Replace SOTFL with 100; VALUE, thus
/					  eliminating the need for WPSRDF
/					  in MASTER.INF
/	035	WCE	19-JUL-83	Modify labels for new prefix file
/	034	DFB	26-MAY-83	Fix copy one doc msg
/	033	DFB	19-MAY-83	Fix to pass TBOE menu when input drive
/					=output drive. Go to "E"nter
/	032	GJP	12-JAN-83	save and restore names of documents
/					when user types command keys when
/					copying docs and no room on diskette
/	031	GJP	22-DEC-82	CAN'T COPY NUMBERED DOC BUG
/	030	AIB	14-DEC-82	conditionalize "Rubout key" messages
/	029	GJP	10-DEC-82	Clear out default drive and document
/					number upon returnn to Main Menu
/	028	GJP	30-NOV-82	MAKE SURE WE'RE REPLACING DRIVE 0
/	027	GJP	29-NOV-82	TYPING GARGAGE HAS NO MEANING
/	026	GJP	23-NOV-82	ERASE LINE FROM SCREEN ON ERROR
/	025	GJP	18-NOV-82	FIX COPY ONE BY NUMBER
/	024	GJP	17-NOV-82	REMOVE NOMEANING BUG (TOO LONG)
/	023	GJP	12-NOV-82	FIX 'THEN PRESS RETURN' BUG
/	022	GJP	10-NOV-82	CAN'T FIND DOC NAME AFTER HITTING GOLD KEYS
/	021	GJP	09-NOV-82	FIX UP COSMETIC MESSAGES
/	020	GJP	5-NOV-82	FIX SCREWS UP INDEX DOC ON  COPY ONE
/	019	GJP	26-OCT-82	FIX BUG THAT WILL NOT COPY NUMBERED DOC
/	018	GJP	22-OCT-82	NO DISKETTE IN DRIVE-WRONG MESSAGE
/	017	GJP	21-OCT-82	FIX UP ERROR MESSAGES
/	016	GJP	21-OCT-82	REMOVE ADDITIONAL LINE ON ERROR MESS
/	015	GJP	21-OCT-82	FIX ERASURE OF VALUE IN INBUF
/	014	GJP	20-OCT-82	FIX WON'T OVERWRITE WITH LESS THAN 8-BLOCKS
/	013	GJP	20-OCT-82	FIX ERASURE OF NAME ON WRONG INPUT
/	012	GJP	10-OCT-82	FIX PRES RETURN TO RECALL MAIN MENU BUG
/	011	GJP	05-OCT-82	FIX GOLD MENU RETURN
/	010	AIB	29-SEP-82	changed RUB CHAR, RUB WORD to Rubout
/	009	GDH	30-MAR-82	(another) fix to CREATE ordering.
/	008	DFB	26-MAR-82	Write out dir block after copy
/	007	GJP	22-MAR-82	Put code to display name to user
/	006	GJP	19-MAR-82	Fixed no-name in index bug
/	005	GDH	11-MAR-82	Fixed "create" ordering.
/	004	GJP	2-MAR-82	FIX COPY ALL BAD FILE NAME BUG
/	003	GJP	28-FEB-82	MAKE ROOM FOR ADDITIONAL FUNCTIONALITY
/	002	GDH	08-JAN-82	Implemented "read error detection".
/	001	PHA	21-JAN-82	CORRECTS LOSS OF HDR INFO DURING COPY


/ WRITE OUT COPY FILE UTITLITY



	FIELD 0
	*200
	JMP I	.+3
	JMP I	.+1
	7600
	RXLOAD
	*RXLDLS
	RXEWT=4
	RXEWT
	0
	RXQBLK=11
	RXQBLK
	.
	DLCPFL;100;CDF 30;-17
	0

/ CPYFIL.PA - COPY FILE UTILITY

	FIELD 3

/D036	*SOTFL
	*100		/ THE FIRST 100 LOCATIONS CONTAIN COMMON SYSTEM CONSTANTS
			/ (E.G. P177, ETCETERA.)
VALUE,	0
TABLE,	0	/ AREA TO SUPPORT DECIMAL CONVERSION
DPREC,	0	/ DECIMAL CONVERSION PRECISION COUNT FOR DEC CONVERT
DPREC1,	0	/ SIGNIFICANCE STARTER FOR DECIMAL CONVERSION RTNE
	CDFMYF=CDFEDT

/	BELOW ARE A BUNCH OF SAVE AREAS USED BY THIS PROGRAM
STATUS,	0		/ STATUS OF THE DOCUMENT. 0=EXISTS, -1=DOESN'T EXIST
CPYCHR,	0		/ HOLDS THE CHARACTER BEING COPIED WHEN
			/ CHECKING FOR GOLD HALT.
OPTION,	0		/ OPTION THE USER WANTS, TOP,BOTTOM,OVERWRITE
			/ -1=OVERWRITE DOC, 0=WRITE TO TOP, 1=WRITE TO BOTTOM
SVIDCN,	0		/ HOLDS THE INPUT DOCUMENT NUMBER
SVODCN,	0		/ HOLDS THE OUTPUT DOCUMENT NUMBER
SVIFNO,	0		/ FILE ID OF INPUT, DRIVE + FILE NO
SVOFNO,	0		/ FILE ID OF OUTPUT
SVISIZ,	0		/ SIZE OF INPUT DOCUMENT
SVOSIZ,	0		/ SIZE OF OUTPUT DOCUMENT
TODRV,	0		/ HOLDS THE DRIVE NUMBER WE'RE COPYING TO
FROMDR,	0		/ HOLDS THE DRIVE NUMBER WE'RE COPYING FROM
OSXTY,	60		/ TO MAKE ASCII NUMBERS WITH
DISKID,	0		/ HOLDS THE DISK ID OF THE SYSTEM DISKETTE
RSIGN,	0		/ HOLDS THE SIGNAL THAT WE WANT TO COPY BY NAME ONLY
COPYTP,	0		/ HOLDS THE TYPE OF COPY WE'RE DOING
			/ 1=COPY ONE, 2=COPY SOME, 3=COPY ALL
SIGNL,	0		/ SIGNAL TO TELL US WE'RE DOING NUMBERED DOCUMENTS
DRVNBR,	0		/ SAVE DRIVE NUMBER WHEN DOING COPY ONE
DCNBR,	0		/ SAVE THE DOCUMENT NUMBER WHEN DOING COPY ONE
PERIOD,	56		/ A PERIOD.
SVIDCH,	0		/ HOLDS THE INPUT DOCUMENT HEADER BLOCK NUMBER
HBLSIG,	0	/ SIGNAL THAT THE HOME BLOCK HAS BEEN READ 1=READ
M44,	-44	/ NUMBER OF WORDS TO MOVE FROM HEADER TO NEW DOCUMENT HDR
		/ THIS IS USED FOR LOOP CONTROL IN MOVING THE HEADER WORDS
		/ OF DATES, TIMES, RULERS, ETC TO THE NEW DOC HEADER
FOUR,	4		/ WHERE TO BEGIN MOVING WORDS FROM HDR TO HDR
NINE,	11		/ WHERE IN HDR TO PUT THE DOCUMENT NUMBER
/
HDRBLK,	0	/HEADER BLOCK NUMBER OF DOCUMENT TO BE COPIED	/A001
MSEVN,	-7	/ CONSTANT OF MINUS 7
MSPACE,	-40	/ SPACE TO CHECK FOR A SPACE			/A004
SEVEN,	7		/ CONSTANT OF 7 (USED TO ELIMINATE WORD WRAPS)
	INBUF2=INBUF+1	/ CONSTANT OF INBUF +1 FOR CHECKING LENGTH	/A006
MSTRLN,	-STRLEN		/ NEG OF STRING LENGTH, USED FOR LOOP CONTROL
PLT,	LT		/ LEFT ANGLE BRACKET
MLT,	-LT		/ NEG OF LEFT ANGLE BRACKET, TO REVERSE WHEN CHECKING
/			FOR LEFT ANGLE BRACKET
SFTRET,	-2012		/ A SOFT RETURN CHAR (TO CHECK FOR THEM)
WWRAPB,	2012-2040	/ A WORD WRAP BLANK (TO CHECK FOR THEM AFTER CHKING FOR
 /				WD WRP CHAR)
PWWRPB,	2040	/ POS WORD WRAP BLANK FOR RESTORING CHARACTERS
DCNBRS=200	/ LOCATION IN BUFFER FIELD WHERE FILE NUMBERS ARE STORED/A003
FLNBRS,	DCNBRS-1	/ WHERE FILE NUMBERS ARE IN BUFFER (FOR INDEX)	/A003
M512,	-1000		/ CONSTANT OF -512 (OCTAL)			/A007
ONE,	1		/ CONSTANT OF 1 (OCTAL)				/A007
SIGNL2,	0	/ SIGNAL THAT THE USER WANTS TO COPY DOC ON COPY SOME	/A007
SIGNL3,	0	/ SIGNAL THAT THE USER GAVE DOC A NAME ON COPY SOME	/A007
DOCSIG,	0	/ SIGNAL THAT ROTINE 'DTAO' ROUTINE IS USING 'READMU'	/A023
/M017 MOVED HERE FOR SPACE REASONS
ERSTAT,	0000	/TYPE OF CREATE ERROR MESSAGE TO DISPLAY
		/0 = GENERAL CANNOT CREATE
		/1 = DOC # OUT OF RANGE
		/2 = NO DOCS AVAILABLE

LSTSIZ,	0	/SIZE OF INPUT FILE
OVRSPCE,	0	/SIZE OF RESULT FILE 0 WHEN ADDING TO TOP OR BOTTOM
TOPSC,	PTOPSC	/ ADDED FOR SPACE REASONS				/A018
MDOCFS,	0	/ MINUS (NEGATIVE) NUMBER OF DOCS IN FILE SYSTEM	/A037
NDOCFS,	0	/ (POSITIVE) NUMBER OF DOCS IN FILE SYSTEM		/A037
IDNCNT,	0	/ ILLEGAL DOCUMENT NUMBER COUNT				/A037
IDNTMP,	0	/ ILLEGAL DOCUMENT NUMBER TEMP				/A037
DSTMED,	0	/ PTR. TO THE MEDIA TYPE STRING ('DISKETTE'or'VOLUME')	/A039
WINSRC,	0	/ FLAG INDICATING FROM DRIVE IS A WINNIE AREA		/A039
		/ IF = 0 NOT A WINNIE, IF .GT. 0 IT IS THE WINNIE AREA #/A039
WINDST,	0	/ SAME AS ABOVE FOR TO DRIVE				/A039
WINONE, 0	/ TRUTH FLAG INDICATING DEVICE # 1 IS A WINNIE AREA	/A039
/----------------------
	PAGE

BELL=	7		/ <BELL>
BACKSP=	10		/ <BACKSPACE>
TAB=	11		/ TAB CHARACTER
FF=	14		/ FORM FEED
LT=	74		/ LEFT ANGLE BRACKET
LF=	12		/ <LINE FEED>
CR=	15		/ <CARRIAGE RETURN>
KVTWIDTH=121		/ 81(10) IS THE WIDTH OF A LINE OF THE VT
SREXT=10	/ADDED TO SIZE OF LIST DOC DURING SIZING TO ALLOW 8(10) EXTRA
		/BLOCKS
/D042	MUIOFF=MUBUF+MNSYSA+4		/ LOCATION OF MENU BUFFER OFFSET
/D042	MUISTR=MUBUF+MNIBUF	/ BUFFER ADDR OF WHERE WP2CMF'S 'READ' AND
				/ 'FILNAM' COMMANDS READ INTO A FROM.

ADRASM= 0		/THIS ASSEMBLES THE CREATE MODULE SO IT WILL NOT
			/TRY TO DISPLAY ERROR MESSAGES BUT SET THE AC FOR
			/A PARTICULAR MESSAGE SO WPSTPR DISPLAYS APPROPRIATE
			/MESSAGE ON CREATE ERROR

/WE GET HERE AFTER HITTING MC-C-X-# WHERE X IS {A,S,O} AND		/A037
/N IS THE DRIVE NUMBER THAT CONTAINS THE SOURCE DISK			/A037
/THE MENU FOR THE INSTRUCTIONS TO REMOVE THE SYSTEM DISK IS DONE 	/A037
/WITHIN THIS MODULE.  WHY?  SO THAT WE ARE GUARANTEED TO HAVE	/A037
/CPYFIL LOADED BY THE TIME THE USER SEES THE TEXT ON THE SCREEN		/A037
/WHICH TELLS HIM THAT HE MAY REMOVE THE SYSTEM DISK			/A037

/THIS MAY BE DONE MORE EFFICIENTLY IN THE FUTURE WITH A MENU CALL...HLP	/A037

CPYFIL,	XX		

/FIRST GET THE DISK ID OF THE SYSTEM DISK SO WE CAN MAKE SURE THE SAME
/SYSTEM DISK IS INSERTED WHEN WE LEAVE CPYFIL TO RETURN TO MAIN MENU
	JMS	GTDKID		/ GET DISK ID
	DCA	DISKID		/ SAVE IT
	DCA	IDNCNT		/ CLEAR THE ILLEGAL DOCUMENT NUMBER COUNT/A037

/	THIS SECTION GETS ALL THE PARAMETERS PASSED INITIALLY BY THE USER
/	IT GETS THE TO AND FROM DRIVES AND IF NECESSARY TELLS THE USER TO REMOVE
/	THE SYSTEM DISKETTE AND INSERT THE DISKETTE THAT EITHER WILL RECEIVE
/	THE DOCUMNTS OR FROM WHICH DOCUMENTS WILL BE COPIED.

/	THE PARAMETERS THAT ARE PASSED ARE THE COPY TYPE WE'RE DOING (1=COPY
/	ONE DOCUMENT, 2=COPY SOME OF THE DOCUMENTS, 3=COPY ALL OF THE DOCUMENTS)
/	AND THE DRIVE NUMBERS THAT WE'RE COPYING FROM AND TO.

	CDFMNU
	TAD I	(MUBUF+MNTMP1)	/ GET THE COPY TYPE:1=ONE, 2=SOME, 3=ALL
	DCA	COPYTP		/ SAVE IT FOR FUTURE USE
	TAD I	(MUBUF+MNTMP4)	/ GET THE DRIVE WE'RE COPYING FROM
	DCA	FROMDR		/ SAVE IT
	TAD I	(MUBUF+MNTMP5)	/ GET THE DRIVE WE'RE COPYING TO
	DCA	TODRV		/ SAVE IT
	JMP	WINCHK		/ GO SEE IF WE'RE ON A WINNIE SYSTEM	/A039
WINRET,				/ WINCHK ROUTINE IS IN 2 PIECES FOR	/A039
				/ SPACE REASONS, SO WE ARE USING JUMPS	/A039
/D039	CDFMYF
	DCA	DSTMED		/ CDF IS DONE IN WINCHK RTNE., ADDRESS	/A039
				/ OF "DISKETTE" OR "VOLUME" LEFT IN AC	/A039

	TAD	TODRV		/ GET THE 'TO' DRIVE
	SNA CLA			/ IF ZERO, THEN SYSTEM DRIVE IS RECEIVING DRV
	JMP	RCVING		/ GO ASK HIM TO REMOVE THE SYSTEM DRIVE
	TAD	FROMDR		/ GET THE DRVIE NO WE'RE COPYING FROM
	SZA CLA			/ IF NON-ZERO, THEN NOT SYSTEM DRIVE
	JMP	GOBCK		/ DON'T ASK FOR SYSTEM DRIVE
	TAD	(COPYF		/ GET ADDRESS OF "CONTAINS"
GODISP,				/ GO DISPLAY MESSAGE
	JMS	DISP1		/ GO DISPLAY
GOBCK,
	JMP	CUGSP		/
RCVING,
	TAD	(RECEV		/ GET ADDRESS OF "TO RECEIVE"
	JMP	GODISP		/ GO DISPLAY IT

CUGSP,				/ PROMPT FOR COPY DOC NAME	
	DCA	RSIGN		/ CLEAR 'NAME ONLY' SIGNAL		/M031
	AC7777			/ SEE WHAT TYPE OF COPY WE'RE DOING		
	TAD	COPYTP		/ ARE WE DOING A COPY ONE?
	SZA CLA			/ YES, THEN PROCEED
	JMP	CPYSAL		/ GO PROCESS A COPY SOME OR COPY ALL


/ WE ARE DOING A COPY ONE AT A TIME

	DCA	SIGNL		/ CLEAR 'DOING NUMBERED DOCUMENT' SIGNAL
	MQL
	AC0002			/ SIGNAL MAIN MENU NOT DO FILNAM THIS TIME
	JMS	STTMPS		/ GO SET UP FOR MAIN MENU CALL

/ASK THE USER THE NAME OR NUMBER OF THE DOCUMENT
/HE WISHES TO COPY

	JMS I	TOPSC		/ GO ERASE AND DISP '--COPY DOCUMENT--'	/A018
	CIFMNU
	JMS I IOACAL
		0
		TXCS2		/ G. P. TWO SUBSTRINGS			/A037
		1505
		SPRMPT		/ "PLEASE ENTER THE NAME OR .. NOW WISH	/C037
		1605		/ POSITION FOR A NEW LINE		/M037
		NARG		/ NULL ARGUMENT FOR A NEW LINE
	JMS	APRORG		/ "AND PRESS RETURN OR GOLD MENU	/A037
	JMS	READMU		/ PROCESS INPUT FROM MENU
	JMP	GOLDMU		/ RETURN TO MM
	CDFMYF			/ READMU LEAVES DATA FIELD AT MENU
	JMS	HMBLCK		/ GO GET HOME BLOCK INTO MAIN MEMORY
	JMS	CPMNOV		/ GO COPY INPUT FROM MENU FLD TO CHECK IT
	JMS	CKINPT		/ GO SEE WHAT WAS PUT IN
	 JMP	CUGSP		/ HE HIT RETURN
	 JMP	NMNING		/ NO MEANING TO WHAT HE PUT IN
CUGSP1,	 CLA			/ MEANING

	TAD	FROMDR		/ GET THE FROM DRIVE NBR
	TAD	OSXTY		/ MAKE IT AN ASCII NUMBER
	JMS	FIXNAM		/ GO SET UP THE NAME
	JMS	CSTUFF		/ SUBROUTINE INVENTED TO SAVE SPACE	/A037

	MQL			/ Store number passed			/ A44
CUGSP2,	TAD	DCNBR		/ If DCNBR is zero we are doing
				/ copy one.  If non zero don't use
				/ number passed.  It can return a wrong
				/ value if the filename lookup is a
				/ subset of an existing name.  This
				/ should be fixed at the filename lookup
				/ routine and not here..but thats field test
				/ for you.
	SNA								/ A44
	ACL			/ COPY ONE. used number passed by cstuff/ A44
				/ UPDATE menu locations so right
				/ document number is being used.
	DCA	SVIDCN		/ SAVE IT FOR FUTURE USE
	TAD I	(MUBUF+MNFNO)	/ GET THE FILE ID
	AND	(7400		/ re-building menu words		/ A44
	TAD	SVIDCN		/ "   "        "    "			/ A44
	DCA	SVIFNO		/ SAVE  IT FOR FUTURE USE
	TAD	SVIFNO		/re-building menu words
	DCA I	(MUBUF+MNFNO	/					/ A44

	CDFMYF			/ GET BACK TO THIS FIELD
	AC7777
	TAD	COPYTP		/ ONLY IF IT'S A COPY ONE...		/A001
	SNA CLA
	JMS	FIXONE		/ FIND ITS HEADER BLK #			/A001
	TAD	STATUS		/ GET THE STATUS
	SMA CLA
	JMP	CTDIN		/ CONTINUE IF FILE EXISTS
	JMS	NDERR		/ COMPLAIN THAT IT DOESN'T EXIST
	INBUF+1			/ WHERE FILE NAME EXISTS, ALTERRED BY 'FIXNAME RTN
	JMP	CUGSP		/ GO ASK FOR ANOTHER
CTDIN,
	TAD	SIGNL		/ ARE WE DOING A NUMBERED FILE?
	SZA CLA			/ NO, CONTINUE...
	JMP	CTDIN3		/ YES					/C037
CTDIN2,				/ RETURN POINT AFTER NUMBER IS SET UP FOR FILNAM
	JMS	GTNAM		/ GO GET FULL NAME OF DOCUMENT IF DOING COPY ONE
	TAD	TODRV		/ GET THE TO DRIVE NBR
	TAD	OSXTY		/ MAKE IT AN ASCII NUMBER
	CDFMNU			/ CHANGE TO MENU FIELD
	DCA I	(MUBUF+MNIBUF		/ PUT DRIVE NUMBER AT MNIBUF	/C042
	TAD	(MUBUF+MNIBUF	/ GET ADDRESS OF MENU STRING	/C042
	DCA I	(MUBUF+MNPOS	/ PUT ADDR OF MENU STRING INTO MENU OFFSET/C042
	CDFMYF
	JMP	CTDIN1

CTDIN3,	TAD	SVIDCN		/ GET DOCUMENT NUMBER			/A037
	DCA	DCNBR		/ PUT IT WHERE ASKNM CAN DISPLAY IT	/A037
	JMP	MVNBR		/ GO TELL USER DOCUMENT HAS NO NAME	/A037

GOLDMU,		/ WHERE THINGS COME ON GOLD MENU
	CDFMNU								/A029
	DCA I	(MUBUF+MNFNO)	/ CLEAR OUT DEFAULT DOC AND DRV NUMBER	/A029
	CDFMYF								/A029
	JMS	REPLC		/ GO GET THE SYSTEM DISKETTE BACK UP
/D035	RETURN,
	DCA	SIGNL		/ CLEAR THE 'DOING NUMBERED FILES' SIGNAL
	CDIMNU								/A037
	JMP I CPYFIL

/--------------------
	PAGE

/DOCUMENT EXISTS ALREDY ON THE OUTPUT DRIVE SO DISPLAY TAO PROMPT
DTAO,
	XX
DTAO1,									/A018
	AC7777		/ SIGNAL READMU ROUTINE TO RETURN HERE ON	/A023
	DCA	DOCSIG	/ INCORRECT INPUT BY USER			/A023
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	CIFMNU
	JMS I IOACAL
		0
		DEXTS		/ADDRESS OF TEXT STRING
		305		/POSITION FIRST LINE ON SECOND ROW 5 COLUMN
		SVODCN		/ OUTPUT DOCUMENT NUMBER
	TAD	SIGNL		/ CHECK TO SEE IF ITS NUMBER ONLY
	SMA CLA
	JMS	DONAME		/ THERE IS A NAME TO IT, GO DISPLAY IT
	CIFMNU
	JMS I	IOACAL
	0
	DREST
		705
		1105
		1305
		1505
		1705
		2105
		2305
	JMS ORGOLD
		ORAR
	JMS	MVCPIN	/ GO SAVE NAME OF DOCUMENT IN CASE OF ERROR	/A012
	JMS READMU		/READ INPUT FROM MENU MODULE
		JMP GOLDMU	/GOLD M SO ASK FOR SYSTEM DISKETTE
		CDFMYF		/CHANGE DATA FIELD TO MINE
		SMA 		/IF AC NEGATIVE INAPPROPRIATE INPUT
		JMP STORE	/IF APPROPRIATE CONTINUE
		IAC		/ LETS SEE IF WE CAME FROM RTNWT	/A023
		SZA CLA		/ IF ZERO HERE WE CAME FORM MAIN MENU	/A023
		JMP	DTAO1	/ JUST A RETURN				/A023

/	CPMSGA -- SAVES THE NAME OF THE DOCUMENT BEING COPIED WHEN	/A012
/	THE USER TYPES IN THE WRONG THING				/A012
/									/A012
	JMS	MVINPT		/ COPY INPUT FROM MENU FIELD		/A037
	JMS	NOMEAN		/ DISPLAY TYPING '' HAS NO MEANING HERE	/A037
	JMS	COPOVR							/A012

	JMP DTAO1		/ASK AGAIN
STORE,	DCA	OPTION	/STORE THE OPTION WANTED
	DCA	DOCSIG	/ CLEAR SIGNAL TO RETURN HERE ON INCORRECT INPUT/A023
	JMP I	DTAO		/RETURN

/**********************************************************************
/
/	THIS CODE HANDLES COPY SOME AND COPY ALL OPERATIONS.
/	IT WILL FIRST GET FILE NAMES FROM THE INDEX DOCUMENT
/	AND COPY THEM OVER THEN IT WILL PROCEED TO COPY OVER THE
/	UNNAMED DOCUMENTS. IF A COPY SOME OPERATION, IT WILL DISPLAY
/	THE NAME TO THE USER AND ASK HIM IF HE WANTS TO COPY IT.
/
/**************************************************************************

CPYSAL,
	DCA	IDNTMP		/ CLEAR TEMPORARY IDN COUNT		/A037
	JMS	HMBLCK		/ GO GET THE HOME BLOCK IN TO MEMORY
	AC0004			/ SIGNAL MAIN MENU WE'VE GOT THE FILE
	CDFMNU
	DCA I	(MUBUF+MNTMP3)
	TAD	(MUBUF+MNIBUF	/ RE-INITALIZE MUISTR FOR 'FILNAM' RTNE/C042
	DCA  I	(MUBUF+MNPOS		/ INITIALIZE IT		/C042
	CDFMYF			
	TAD	SIGNL		/ GET INDEX END OF FILE SIGNAL
	SZA CLA			/ IS IT ON?
	JMP CPYSL3		/ YES, GO PROCESS NAMELESS DOCUMENTS
	TAD	FROMDR		/ GET THE DRIVE NUMBER WE'RE COPYING FROM
	BSW
	CLL RTL			/ SET UP DRIVE AND FILE NBR FOR OPEN
	IAC			/ INDEX FILE= FILE 1
	JMS	OPENRD		/ GO OPEN THE FILE FOR READING
CPYSL1,
	CLA
	JMS	GTLIST		/ GET A FILE NUMBER FROM INDEX FILE
	JMP	CPYSL3		/ END OF INDEX FILE

	TAD	MDOCFS		/ SEE IF A LEGAL DOCUMENT NUMBER	/A037
	SMA SZA			/					/A037
	JMP	CPYSL6		/ NOT A LEGAL DOCUMENT NUMBER		/A037
	TAD	NDOCFS		/ RESTORE DOCUMENT NUMBER		/A037

	JMS	MKNBR		/ GO CHECK IF FILE HAS BEEN DONE
	JMP	CPYSL1		/ YES IT HAS BEEN DONE
	AC7776			/ CHECK WHAT SORT OF COPY WE'RE DOING
	TAD	COPYTP		/ IS IT A COPY SOME?
	SNA CLA	
	JMP	CPYSL2		/ WE ARE DOING COPY SOME
	JMP	CUGSP1		/ WE'RE DOING COPY ALL, GO COPY IT
CPYSL2,	
	TAD 	T2		/ GET THE FILE NUMBER FOR DISPLAY
	JMS	CPWISH		/ GO DISPLAY IT
	 INBUF+1			/ THE NAME OF THE FILE
	 JMP	CUGSP1		/ HE PRESSED YES

CPYSL6,			/ ILLEGAL DOCUMENT NUMBER DETECTED		/A037
	CLA			/ CLEAR ILLEGAL EXCESS			/A037
	TAD	IDNCNT		/ GET COUNT OF ILLEGAL DOC NOS		/A037
	CIA			/ SO WE CAN DETERMIN IF WE HAVE		/A037
	TAD	IDNTMP		/ TOLD USER ABOUT THIS INVALID		/A037
	SZA CLA			/ INDEX DOCUMENT ENTRY			/A037
	JMP	CPYSL8		/ ... WE ALREAD TOLD HIM ONCE!		/A037
	ISZ	IDNCNT		/ COUNT THIS INVALID ENTRY		/A037

	JMS I	TOPSC		/ CLA, ERASE AND INITALIZE SCREEN	/A037
	CIFMNU								/A037
	JMS I	IOACAL							/A037
	 0								/A037
	 TXTIDN			/ "DOCUMENT ^A HAS AN ILLEGAL DOCUMENT NUMBER
	 1305			/ SCREEN POSITION			/A037
	 INBUF+1		/ ADDRESS OF THE NAME OF THE DOCUMENT	/A037
	 1505			/ POSITION OF SUBSTRING			/A037
	 TXTID1			/ "HAS AN ILLEGAL DOCUMENT NUMBER	/A037
CPYSL7,	TAD	(1700)		/ POSITION TO ERASE FROM		/A037
	JMS	ERASE		/ ERASE ANY ..YOU TYPED GARBAGE		/A037
	CIFMNU			/ 					/A037
	JMS I	IOACAL		/					/A037
	 0								/A037
	 TXCS1			/ G. P. CONTROL STRING ONE		/A037
	 2305			/ POSITION				/A037
	 TXPRCN			/ "PRESS RETURN TO CONINUE..."		/A037
	JMS	ORGOLD		/ "OR PRESS GOLD MENU TO RETURN TO MM	/A037
		ORAR		/					/A037
	JMS	ASK		/ GET RESPONSE				/A037
	 JMP	GOLDMU		/  GOLD MENU				/A037
	 JMP	CPYSL7		/  NO MEANING--REPAINT			/A037
				/  RETURN--CONTINUE			/A037
CPYSL8,	ISZ	IDNTMP		/ BUMP TEMPORARY COUNTER		/A037
	JMP	CPYSL1		/ HE HIT RETURN. GO TO NEXT DOC		/A037
/-----------------
	PAGE


			/ LOGIC REWRITTEN BELOW TO SAVE 2 LOCS.		/A039
CRERR,	AC7776		/ GET -2 IN AC					/A039
	TAD	ERSTAT	/ ADD IN ERSTAT					/A039
	SNA CLA		/ IF ERSTAT .NE. 2 THEN SKIP			/A039
	JMP	NSPCMSG	/ ELSE WAS 2, DISPLAY NO SPACE FOR DOC MSG	/A039
	TAD	ERSTAT	/ GET BACK ERROR STATUS				/A039
	SZA CLA		/ IF STATUS=0 THEN DISPLAY SHORT MESSAGE	/A039
	JMP	WRGMSG	/ ELSE DISP WRONG DOC # MSG			/A039
STMSG,									/C017
	TAD	CUB1							/A017
	TAD	P377							/A017
	SZA CLA								/A017
	JMP	NOTINT	/ NON INITIALIZED DIKSETTE			/A017
	TAD	CUB1+1	/ GET HOME BLOCK ID				/A017
	AND	(6077)	/ STRIP OFF VERSION NBR				/A017
	CIA			/ COMPARE IT				/A017
	TAD	(30)	/ CHECK OR VALID HOME BLOCK			/A017
	SZA CLA								/A017
	JMP	NOTINT		/ NOT INITIALIZED, GO COMPLAIN		/A017
	TAD (CNRG)	/GET NO DISPLAY ARGUMENT
	JMS CREMSG	/GO TO DISPLAY CREATE ERROR MESSAGE		/C017
	JMP	PRETRN							/A017


NOTINT,									/A039
	TAD	DSTMED	/ PTR TO "DISKETTE" OR "VOLUME" TEXT		/A039
	DCA	CRMED	/ PUT INTO IOACAL PARM LIST			/A039
	JMP	NOTIN1							/A039
WRGMSG,	TAD (WNUM)	/GET WRONG DOCUMENT NUMBER ARGUMENT
	JMS CREMSG	/GO TO DISPLAY CREATE ERROR MESSAGE		/C017
	JMP	PRETRN							/A017

NSPCMSG,TAD (NMDC-NONIN)/ GET NO DOCUMENTS AVAILABLE ARGUMENT		/C037
NOTIN1,			/ NOT INITIALIZED				/C037/C039
	TAD 	(NONIN)	/ GENERATE THE CORRECT MESSAGE POINTER		/A037
	JMS CREMSG	/GO TO DISPLAY CREATE ERROR MESSAGE		/C017
PGOLD,	JMS	ORGOLD	/ ENTRY POINT FOR UNASSIGNED WINNIE ERROR RET	/A017/C039
		NARG							/A017
	JMS	KBRD							/A017
	JMP	GOLDMU							/A017


CREMSG,	XX								/C017
	DCA CRMSG	/STORE APPROPRIATE MESSAGE ARGUMENT FOR DISPLAY	/C017
CRMSG1,									/A018
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	JMS RBELL
	CIFMNU
	JMS I IOACAL
		0
		CNTCRE	/DISPLAY CANNOT CREATE DOCUMENT
		1505	/ON LINE 15 COLUMN 5
	CIFMNU		
	JMS I IOACAL
		0
	CRMSG,	0000	/DISPLAY DOC # OUT OF RANGE, OR NO MORE DOCS
		1605
	CRMED,	NOP	/ WHEN ERROR IS "NOT INITIALIZED" THIS LOCATION	/A039
			/ WILL HAVE "DISKETTE" OR "VOLUME" TEXT		/A039
			/ FOR ALL OTHERS THE NOP WILL BE EXECUTED ON 	/A039
			/ RETURN FROM IOA 				/A039
	JMP I	CREMSG	 						/A017

PRETRN,									/A017
	CIFMNU		/CHANGE INSTRUCTION FIELD TO MENU
	JMS I IOACAL	/CALL IOA					
		0
		TARTN	/DISPLAY PRESS RETURN TO TRY ANOTHER NAME	
		2005	/LINE TO DISPLAY 				
	JMS ORGOLD	/DISPLAY PRESS GOLD M				
		ORAR	/DISPLAY OR					
	JMS	ASK	/ GET RESPONSE					/C037
	 JMP	GOLDMU	/  GOLD MENU					/A037
	 JMP	CRERR	/  GARBAGE--REPAINT				/C037
	 JMP	MVNBR	/  RETURN--REASK ABOUT NUMBERED DOC		/C037


/THIS ROUTINE READS INPUT IN RESPONSE TO ERROR MESSAGES WHICH REQUEST A RETURN
/WHEN RETURN IS TYPED RETURN TO USER IF NOT RING BELL AND COMPLAIN AGAIN
/CALLED BY JMS RTNWT;WRONG RETURN;OK RETURN

RTNWT,	XX
	TAD	INBUF		/ GET NEG NBR OF LENGTH OF INPUT	/A023
	DCA	CUPBF0+STRLEN	/ PUT IT IN FRONT OF BUFFER AREA	/A023
	CIFMNU
	JMS I INACAL
		CUPBF0+STRLEN	/INPUT BUFFER TO RECEIVE INPUT		/C023
		JMP WRNG	/GOLD KEY RING BELL COMPLAIN AGAIN
		CLA MQA		/MQ HAS # OF CHARS IF NOT 0 THEN NOT RETURN
		SZA CLA		/SEE IF IT IS 0
		JMP WRNG	/IF NOT RETURN RING BELL COMPLAIN AGAIN
		ISZ RTNWT	/MUST BE RETURN SO INCREMENT FOR OK RETURN
		JMP .+2 	/RETURN TO CALLER			/C015
WRNG,	JMS RBELL		/RING BELL

	JMP I RTNWT		/RETURN TO CALLER TO COMPLAIN AGAIN

/*********************************************************************
/
/	THIS ROUTINE WILL CHECK TO SEE IF THE FILE NUMBER THAT IS
/	PASSED TO IT IN THE AC HAS BEEN COPIED ALREADY. IF IT HAS,
/	IT RETURNS TO THE NEXT SEQUENTIAL INSTRUCTION AFTER THE
/	RETURN ADDRESS. IF IT HASN'T, IT MARKS IT AS HAVING BEEN DONE
/	BUMPS UP THE RETURN ADDRESS, AND THEN RETURNS.
/		CALL IT SO:
/			JMS	MKNBR
/			ADDRESS TO COME TO IF THE FILE HAS BEEN COPIED
/			ADDRESS TO RETURN TO IF THE FILE HASN'T BEEN COPIED
/
/***************************************************************************

MKNBR,
	XX
	DCA	DCNBR	/ SAVE THE FILE NUMBER				/C004
	TAD	FROMDR	/ GET THE DRIVE WE'RE COPYING FROM
	BSW		/ CONSTRUCT A FILE ID - DRIV-FILE NBR
	CLL RTR
	TAD	DCNBR							/C004
	DCA	SVIFNO	/ SAVE THE FILE ID
	TAD	DCNBR	/ GET THE FILE NUMBER				/C004
	TAD	FLNBRS	/ GET ADDRESS WHERE FILE NUMBERS ARE KEPT	/C003
	CDFBUF								/A003
	DCA	T1	/ SAVE IT
	TAD I	T1	/ GET THE FILE HEADER BLOCK NBR
	SNA		/ IF ZERO, NOT IN USE
	JMP	MKNBRX	/ NOT IN USE, RETURN
	SPA CLA
	JMP	GOLDMU	/ IF MINUS HERE, WE HIT THE END OF THE FILE NUMBER TBL
	AC7777
	TAD I	T1	/ SEE IF HAS ALREADY BEEN COPIED
	SNA CLA		/ ZERO HERE MEANS IT HASN'T
	JMP	MKNBRX	/ GO BACK NSI
	TAD I	T1	/SAVE A COPY OF HDR BLK #			/A001
	DCA	HDRBLK	/ SO WE CAN FIND IT LATER			/A001
	AC0001		/ MARK FILE AS HAVING BEEN COPIED
	DCA I	T1	/ MARK IT IN TABLE
	ISZ	MKNBR	/ BUMP UP TO RETURN ADDR
MKNBRX,
	CLA		/ CLEAR THE AC
	CDFMYF								/A003
	JMP I	MKNBR	/ GO BACK

/ ********************************************************************* /A039
/									/A039
/	ISWIN - INPUT: AC=DEVICE #					/A039
/		OUTPUT: AC=WINNIE AREA # OR 0 IF DISKETTE		/A039
/ 									/A039
/ ********************************************************************* /A039
ISWIN,	XX								/A039
	DCA	T1	/ SAVE DEVICE #					/A039
	AC7777		/ GET -1 IN AC					/A039
	TAD	T1	/ ADD IN DEVICE #				/A039
	SZA CLA		/ IF DEVICE # IS 1 CHECK FURTHER		/A039
	JMP	ISWINX	/ ELSE IT IS DRIVE 0 OR AREA 2,3....		/A039
	TAD	WINONE	/ GET "DEVICE ONE IS A WINNIE" FLAG		/A039
	SZA CLA		/ IT ISN'T SO RETURN A CLEARED AC		/A039
ISWINX,	TAD T1		/ RETURN DEVICE # (=0 DRIVE,.GT.0 AREA)		/A039
	JMP I	ISWIN							/A039

/-------------------
	PAGE

/*****************************************************************************
/
/	ASKNM --  ASK AND GET AN ANSWER FROM THE USER AS TO WHETHER
/	HE WISHES TO NAME AN UNNAMED DOCUMENT, OR GIVE IT A NUMBER, OR GO ON TO
/	THE NEXT DOCUMENT OR TO MAIN MENU.
/
/	JMS	ASKNM
/	 JMP	FOO1		/ RETURN HERE HIT GOLD MENU
/	 JMP	FOO2		/ RETURN HERE, HIT JUST RETURN
/	 TAD	ETC		/ RETURN HERE, NAME OR NUMBER
/
/*******************************************************************************

ASKNM,
	XX
ASKNM1,
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	TAD	DCNBR		/ GET THE DOC NUMBER TO DISPLAY
	DCA	DOCNBR		/ PUT IT WHERE IT CAN BE DISPLAYED
	CIFMNU
	JMS I	IOACAL
	0
	GLST
	1705
DOCNBR,	0
	2105
	2305
	JMS	ORGOLD
		ORAR
	TAD	INBUF		/ GET INITIAL STRING LENGTH FOR INACAL
	DCA	CUPBF0		/ PUT INTO BUFFER AREA
	CIFMNU
	JMS I	INACAL
	CUPBF0
	JMP	GOLDK
	CLA MQA
	SNA CLA
	JMP	ASKNM3		/ HE HIT RETURN
	JMS	CPYOVR		/ GO COPY IT TO
	JMS	CKINPT		/ GO CHECK WHAT THE USER TYPED IN	/A003
	JMP	ASKNM1		/ IF NO ARGUMENT TYPED IN, GO ASK AGAIN	/A003
	JMP	ASKNM4		/ NO MEANING TO WHAT HE TYPED IN	/A003
	ISZ	ASKNM		/ BUMP UP TO RETURN ADDRESS
ASKNM3,
	ISZ	ASKNM
	JMP I	ASKNM
ASKNM4,								/A003
	JMS	NOMEAN		/ GO TELL USER HIS INPUT IS MEANINGLESS	/A003
	JMP	ASKNM1		/ GO ASK HIM FOR IT AGAIN		/A003
GOLDK,
	JMS	GMTST
	2105		/ ERASE FROM THIS LINE				/A026
	JMP I	ASKNM		/ HE HIT GOLD MENU
	JMP	ASKNM1		/ GO DISPLAY THE MESSAGE AGAIN

/*****************************************************************************
/
/	THIS ROUTINE GETS THE DRIVE NUMBER (PASSED TO IT IN THE AC) AND
/	THE CDF TO THIS FIELD INTO THE Q-BLOCK, AND THEN DOES A GET DENSITY
/	TO ESTABLISH THE DENSITY OF THE DRIVE SO [PASSED TO IT.
/
/*****************************************************************************

GTDENS,
	XX
	DCA	DRVDSP	/ PUT DRIVE NUMBER WHERE IT CAN BE DISPALYED	/A018
	TAD	DRVDSP	/ GET DRIVE NUMBER BACK INTO AC			/A018
	JMS	CUPDRS		/ GO PUT DRIVE NBR AND CDF INTO Q-BLOCK
	TAD	(RXEDN+4000)	/ GET FUNCTION CODE FOR GET DENSITY
	DCA	QUQBLK+RXQFNC	/ PUT IT INTO Q-BLOCK
	JMS	QURX		/ GO ESTABLISH THE DENSITY OF THE DRIVE
	SMA CLA		/ ERROR RETURN?					/C018
	JMP I	GTDENS		/ RETURN
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	JMS	ERRWIN		/ GO SEE IF ERROR ON WINNIE & DISPLAY MS/A039
				/ ELSE RETURN HERE 			/A039
	CIFMNU								/A018
	JMS I	IOACAL							/A018
	0								/A018
	YNAD	/ YOU NEED A DISKETTE IN DRIVE X. PUT A DISKETE ETC	/A018
	1505								/A018
DRVDSP,	0		/ DRIVE NUMBER TO BE DISPLAYED			/A018
	JMS	APRORG		/ "AND PRESS RETURN OR GOLD MENU	/A037
	JMS	MVCPIN							/A018
	JMS	KBRD							/A018
	JMS	COPOVR							/A018
	JMP	GTDENS+2						/A018

/DISPLAYS TYPING "" HAS NO MEANING HERE
/CALLED BY:
/	JMS NOMEAN
/		GO READ INPUT AGAIN
NOMEAN,	XX
NMNDSP,	JMS	RBELL	/RING BELL
	DCA	INBUF+17	/ CUTOFF LENGTH OF ERROR MESSAGE	/A024
	CIFMNU			/DISPLAY TYPING "" HAS NO MEANING HERE
	JMS I	IOACAL
	0
	NMEAN
TWOSIX,
	2605
	INBUF+1	/WE NEED THE +1 TO MOVE ONE ADDRESS BEYOND
		/THE BUFFER SIZE IN FIRST LOCATION
	JMS	RTNWT	/WAIT FOR RETURN
	JMP	NMNDSP	/NO RETURN COMPLAIN AGAIN
	TAD	TWOSIX	/RETURN  SO ERASE SCREEN
	JMS	ERASE
	JMP I	NOMEAN	/RETURN TO CALLER TO ASK AGAIN

/*************************************************************************
/
/	A COPY ROUTINE TO COPY FILE NAMES FROM ONE AREA TO ANOTHER
/
/****************************************************************************

CPYOVR,
	XX
	JMS	CUCOPY
	CUPBUF
	CDFMYF
	CUPFNM
	CDFMYF
	STRLEN-1			/ LENGTH OF MOVE
	JMP I	CPYOVR	/ GO BACK

CTDIN1,
	TAD TODRV		/ TAD OUTPUT DRIVE NUMBER		/A018
	JMS	GTDENS		/ ESTABLISH DEN AND DRIVE	 	/A018
	JMS	CSTUFF		/ SUBROUTINE INVENTED TO SAVE SPACE	/A037
	DCA	SVODCN		/ SAVE IT FOR FUTURE USE
	TAD I	(MUBUF+MNFNO)	/ GET THE FILE ID
	DCA	SVOFNO		/ SAVE  IT FOR FUTURE USE
	CDFMYF			/ GET BACK TO THIS FIELD
	TAD	STATUS		/ GET THE STATUS
	SMA CLA
	JMP	CTDDIN		/ GO TELL USER DOC ALREADY EXISTS
	JMS	TSTSZ		/ GO SEE IF THERE IS ROOM FOR THE DOCUMENT
	JMP	TSMLL		/ THE OUTPUT DOESN'T HAVE ENOUGH ROOM
	JMS	ADRCRT		/ CREATE THE OUTPUT DOCUMENT
	JMP	CRERR		/ ERROR ON CREATE, PROCESS
/D036	DCA	SOTFL		/ STORE IN DOC NUMBER IN SOTFIL
	DCA	VALUE		/ STORE IN DOC NUMBER IN VALUE
	TAD	CUPFNO		/ GET THE DRV+FILE NO OF FILE JUST CREATED
	DCA	SVOFNO		/ PUT IT WHERE EVERYBODY CAN GET AT IT
	JMP	DOIO		/ GO COPY DOCUMENT
/--------------------
	PAGE

/IF CALLED WITH ZER0 IN AC THIS ROUTINE CHECKS SIZE OF SPACE ON RESULT
/FLOPPY AGAINST SIZE OF INPUT FLOPPY + 8 BLOCKS

/OTHERWISE AC CONTAINS SIZE OF INPUT DOC TO ADD TO TOTAL SPACE NEEDED ON RESULT
/FLOPPY WHEN WRITING TO TOP OR BOTTOM ON THE RESULT DRIVE
/IF THERE IS ENOUGH SPACE ON RESULT FLOPPY TO ACCOMMODATE OUTPUT PROGRAM
/CONTINUES.
TSTSZ,	XX
	TAD	OPTION	/ GET THE OPTION THE USER WANTED
	SMA CLA		/ WAS IT AN OVERWRITE OPTION?	
	JMP	NOTOVR	/ NOT AN OVERWRITE
	TAD	SVOFNO	/ WE NEED TO GEWT THE SIZE OF THE OUTPUT
	JMS	GTFLSZ	/ GO GET SIZE OF TOUTPUT DOCUMENT
	CIA		/ MAKE IT NEGATIVE
	DCA	OVRSPCE	/ SAVE IT
	JMP	GTIFSZ	/ GO GEET THE INPUT FILE SIZE			/A014
NOTOVR,
	TAD (SREXT)	/THIS IS EXTRA SPACE REQUIRED IF DOC IS TO BE 	/M014
			/ EDITED AFTERF BEING COPIED			/C014
	DCA	OVRSPCE							/A014
GTIFSZ,									/A014
	TAD SVIFNO	/PUT INPUT DRIVE AND DOC NUMBER INTO AC
	JMS	GTFLSZ	/ GO OPEN THE FILE FOR READING TO GET FILE SIZE
	DCA LSTSIZ	/STORE IN MY FIELD
	TAD TODRV	/TAD OUTPUT DRIVE NUMBER
	JMS CUPDRS	/SET DRIVE NUMBER FOR QURX
	TAD (RXESP	/GET SPACE LEFT ON DISKETTE
	DCA QUQBLK+RXQFNC
	JMS QURX
	CLA		/THIS ERASES ANY ERROR RETURN FROM QURX
	TAD OVRSPCE	/ADD RESULT DOC SIZE (OR 0 FOR T, A, OR CREATE)
	TAD LSTSIZ	/ADD THE SIZE OF INPUT DOC
	CIA		/NEGATE
	TAD QUQBLK+RXQSPC	/ADD FREE SPACE
	SPA CLA		/IF RESULT IS NEGATIVE INPUT IS GREATER THAN
	JMP I TSTSZ	/SPACE AVAILABLE ON FLOPPY ERROR RETURN
	ISZ TSTSZ	/ELSE THERE IS ENOUGH SPACE INCREMENT FOR OK RETURN
	JMP I TSTSZ

TSMLL,
	JMS	TOSMAL	/ GO DISPLAY MESSAGE AND ASK WHAT TO DO
	TODRV	/ FILE  NUMBER TO BE DISPLAYED
	INBUF+1		/ FILE NAME
	JMP	CUGSP	/ HE TYPED RETURN, GO ASK FOR NEXT ONE

NMNING,				/ NO MEANING TO WHAT HE PUT IN
	JMS	MVINPT		/ COPY INPUT FROM MENU FIELD		/A037
	JMS	NOMEAN		/ TYPING "" HAS NO MEANING HERE		/A037
	JMP	CUGSP		/ GO ASK AGAIN

MVNBR,		/ THIS SETS UP A NUMBERED OUTPUT DOC FOR FILNAM TO READ
	JMS	ASKNM	/ GO ASK USER IF HE WANTS TO NAME OR NUMBER DOC
	 JMP	GOLDMU	/ HE HIT GOLD MENU
	 JMP	MVNBR2	/ HE HIT RETURN, GO SEE IF ITS  A COPY SOME
	 JMP	MVNBR1	/ HE ENTERED A NAME OR A NUMBER

MVNBR2,		/ CHECK TO SEE IF WE'RE DOING A COPY SOME
	AC7776		/ GET A MINUS 2
	TAD	COPYTP	/ GET THE COPY TYPE OPERATION
	SZA CLA		/ IF ZERO, THEN DOING SOME			/C007
	JMP	DONBRD	/ NOT DOING COPY SOME, GO DO NUMBERED DOC	/A007
	TAD	SIGNL	/ GET SIGNAL THAT HE WANTS TO COPY 1=YES	/A007
	SNA CLA		/ SKIP IF YES					/A007
	JMP	CUGSP	/ CONTINUE TO NEXT FILE
	DCA	SIGNL2	/ TURN SIGNAL OFF FOR NEXT TIME			/A007
DONBRD,									/A007
	JMS	GTNBR	/ GO GET A NUMBER OFF THE OUTPUT DISKETTE
MVNBR1,	JMS	COPOVR	/ GO COPY THE NUMBER TO THE INBUF AREA FOR FIXNAM
	TAD	TODRV	/ GET THE NUMBER OF THE DRIVE WE'RE COPYING TO
	TAD	OSXTY	/ MAKE IT AN ASCII NUMBER
	JMS	FIXNAM	/ GO SET UP FOR READ
	JMP	CTDIN2	/ GO BACK AND READ IT

/************************************************************************
/
/	THIS CODE OPENS A FILE FOR READING ONLY.
/	PASS IT THE DRIVE AND FILE NUMBER IN THE AC.
/	THE DRIVE NUMBER MUST BE IN THE HIGH ORDER 4 BITS OF THE AC.
/	THE FILE NUMBER MUST BE IN THE LOW ORDER 8 BITS OF THE AC.
/	JUST CALL IT AS FOLLOWS:
/				JMS	OPENRD
/	WHEN IT RETURNS, THE FILE WILL BE OPEN FOR READING.
/
/***************************************************************************

OPENRD,
	XX
	CDFMYF		/ ENSURE DATA FIELD IS TO THIS FIELD
	CIFFIO		/ CHANGE INSTRUCTION FIELD TO IO
	FILEIO
	XRDFIN		
	JMP I	OPENRD	/ RETURN

/****************************************************************************
/
/	THIS CODE WILL COPY OVER THE INFORMATION IN THE 1ST HEADER BLOCK
/	THAT IS RELEVANT TO THE DOCUMENT, SUCH AS THE CREATION DATE, THE
/	SETTINGS FOR THE DOCUMENT'S PRINT MENU, ETC. THIS CONSISTS OF THE
/	35 (DECIMAL) WORDS BEGINNING AT THE SIXTH WORD OF THE HEADER
/	BLOCK EXCEPTING WORD ELEVEN WHICH IS THE DOCUMENT NUMBER. SINCE
/	IT IS UNLIKELY THAT THE DOCUMENT NUMBER WILL BE THE SAME ON THE
/	OUTPUT DISKETTE AS IT IS ON THE INPUT DISKETTE, THE OUTPUT
/	DOCUMENT NUMBER IS PUT OUT AFTER MOVING THESE 35 WORDS.
/
/******************************************************************************

CPHDRI,
	XX
	CLA
	TAD	SVOFNO		/ GET THE FILE ID (DRV-DOC NBR)
	AND	P377		/ AND OUT THE DRIVE NUMBER TO GET ONLY DOC NBR
	DCA	SVODCN		/ STORE IT IN ORDER TO RESTORE IT
	TAD	HDRBLK		/ GET HDR BLK # FROM WHERE I STASHED IT
	DCA	QUQBLK+RXQBLK	/ PUT IT INTO THE Q-BLOCK
	TAD	FROMDR		/ GET THE INPUT DRIVE NUMBER
	JMS	CUPDRS	/ GO PUT THE DRIVE NUMBER AND CDF INTO Q-BLOCK
	TAD	(CUB1)		/ GET THE BUFFER ADDRESS
	DCA	QUQBLK+RXQBAD	/ PUT IT INTO THE Q-BLOCK
	TAD	(RXERD)		/ GET THE FUNCTION CODE (LOGICAL READ)
	DCA	QUQBLK+RXQFNC	/ PUT IT INTO THE Q-BLOCK
	JMS	QURX		/ GO DO THE I-O
	CLA		/ HEADER IS NOW AT CUB1
	TAD	(CUB1+5)	/ GET THE BEGINNING OF AREA TO MOVE
	DCA	X1	/ PUT THIS ADDRESS INTO INDEX 1
	TAD	M44	/ GET A MINUS 44 (OCTAL)/36 (DECIMAL)
	DCA	T1	/ PUT IT WHERE WE CAN ISZ IT FOR LOOP CTL
	TAD	FOUR	/ GET THE NUMBER FOUR (WHERE WE'RE COPYING TO IN HDR
	DCA	T2	/ PUT IT WHERE WE CAN ISZ IT
CPDNXT,
	TAD I	X1	/ GET THE VALUE OF THE WORD TO BE MOVED
	MQL		/ PUT IT INTO THE MQ
	TAD	T2	/ GET THE WORD NUMBER TO PUT IT TO IN NEW HDR
	CIFFIO
	FILEIO
	XHDRPT
	ISZ	T2	/ BUMP UP THE WORD NUMBER WE'RE COPYING TO
	ISZ	T1	/ ARE WE ALL DON?
	JMP	CPDNXT	/ GO DO THE NEXT ONE SINCE WE'RE NOT DONE
	CLA
	TAD	SVODCN	/ GET THE OUTPUT DOCUMENT NUMBER
	MQL		/ PUT IT IN MQ SO WE CAN PUT IT OUT TO THE NEW HDR
		/ BECAUSER WE OVERWROTE IT WITH THE INPUT DOC NBR ABOVE
	TAD	NINE	/ GET THE WORD NUMBER WHERE DOC NBRS GO IN HEADER
	CIFFIO
	FILEIO
	XHDRPT
	JMP I	CPHDRI	/ RETURN

/THIS ROUTINE IS FOR "COPY ONE" TO READ THE HEADER BLOCK # OF THE DOCUMENT
/ABOUT TO BE COPIED.  HDR BLK # IS READ FROM THE HOME BLOCK BUFFER AT DCNBRS
/THEN PLACED IN HDRBLK (PAGE 0), FOR LATER USE BY CPHDRI.
/
FIXONE,	XX
	TAD	FLNBRS	/ GET ADDRESS WHERE FILE NBRS ARE		/C003
	TAD	SVIDCN		/MAKE PTR FROM DOC #
	DCA	T1
	CDFBUF								/A003
	TAD I	T1		/FIND HDR BLK #
	DCA	HDRBLK
	CDFMYF								/A003
	JMP I	FIXONE
/-------------------
	PAGE

/*************************************************************************
/
/	THIS ROUTINE WILL CHECK TO SEE IF THE SYSTEM DISKETTE IS MOUNTED
/	AND WILL RETURN TO THE NEXT SEQUENTIAL INSTRUCTION IF IT IS.
/	OTHERWISE, IT WILL DIPLAY A MESSAGE TO MOUNT THE SYSTEM DISKETTE
/	AND PRESS RETURN,AND THEN CHECK TO SEE IF THE SYSTEM DISKETTE
/	IS MOUNTED, ETC, ETC.
/
/***************************************************************************

REPLC,	XX	/ ROUTINE TO ASK USER TO REPLACE THE SYTEM DISKETTE
REPLC1,
	JMS	GTDKID		/ GO GET THE KEY-ID OF THE DISK ON DRIVE 0
	CIA			/ SET IT UP FOR COMPARE
	TAD	DISKID		/ GET KEY ID PREVIOUSLY GOTTEN
	SNA CLA			/ IF ZERO HERE, IT ISN'T THE SYSDTEM DISKETTE
	JMP I	REPLC		/ RETURN, SYSTEM DISKETTE IS MOUNTED
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	CIFMNU
	JMS I IOACAL
		0
		RPLACE		/ASK USER FOR NEW DISKETTE FOR RESULT DOC
		1505		/DISPLAY REPLACE PROMPT ON LINE 12 COLUMN 5
	JMS	PRETURN		/ AND PRESS RETURN
	JMS	RTNWT	/ GO GET A RETURN REPLY ONLY
	JMP	REPLC1	/ USER HIT SOMETHING OTHER THAN RETURN, GO DIPLAY
	JMP	REPLC1	/ USER HIT RETURN, GO SEE IF SYSTEM DISKETTE IS IN PLACE


/*******************************************************************************
/
/	THIS ROUTINE WILL GET THE FULL NAME OF THE DOCUMENT ON A COPY ONE
/	OPERATION. THE ROUTINE 'FILNAM' IN MAIN MENU WILL READ THE FILE NAME
/	FROM OUT OF THE INDEX FILE, BUT IF THE USER ONLY PUTS IN A PARTIAL
/	PART OF THE NAME, IT LEAVES ONLY THE PARTIAL PART OF THE NAME IN THE
/	BUFFER AREAS. THIS RESULTS IN COPYING THE DOCUMENT WITH ONLY THE
/	PARTIAL NAME ON THE OUTPUT INDEX FILE. TO GET AROUND THIS PROBLEM,
/	THIS ROUTINE WAS WRITTEN. HERE THE FULL NAME OF THE DOCUMENT IS READ
/	INTO THE BUFFER AREAS SO THAT THE ENTIRE NAME WILL BE WRITTEN OUT TO
/	THE OUTPUT DISKETTE'S INDEX FILE.
/			JUST CALL THE ROUTINE, NO PARAMETERS TO PASS...
/
/******************************************************************************
GTNAM,
	XX
	AC7777			/ ARE WE DOING A COPY OINE?
	TAD	COPYTP		/ GET THE COPY TYPE 1=COPY ONE
	SZA CLA			/ YES, GO GET FULL NAME
	JMP I	GTNAM		/ RETURN
	TAD	SVIDCN		/ GET THE DOCUMENT NUMBER OF INPUT FILE
	DCA	DCNBR		/ PUT IT WHERE 'DTNAM' CAN GET IT
	TAD	FROMDR		/ SIGNAL 'DTNAM' THAT WE'RE DOING FROM DRIVE
	JMS	DTNAM		/ GO DETERMINE THE NAME OF THE FILE
	TAD	FROMDR		/ GET THE FROM DRIVE NUMBER
	TAD	OSXTY		/ MAKE IT AN ASCII NUMBER
	JMS	FIXNAM		/ GO SET IT UP FOR WRITING IT
	JMP I	GTNAM		/ RETURN

/CALLED WITH POSITION OF CURSOR IN AC
ERASE,	XX
	DCA CRPOS	/STORE POSITION FOR CURSOR
	CIFMNU	
	JMS I IOACAL
		0
		PSCR		/STRING TO ERASE SCREEN AND POSITION CURSOR
	CRPOS,	0000		/CURSOR POSITION PASSED IN AC FROM CALLER
	JMP I ERASE	/RETURN TO CALLER


/A018 ADDED FOR SPACE REASONS. THIS ROUTINE ERASES THE SCREEN AND PUTS OUT
/A018 THE '---COPY DOCUMENT--' HEADER ONTHE SCREEN
PTOPSC,									/A018
	XX								/A018
	CLA		/ ERASE WHOLE SCREEN, I.E. FROM ZERO		/A018
	JMS	ERASE							/A018
	CIFMNU
	JMS I	IOACAL	/ PUT OUT '--COPY DOCUMENT--'
		0
		CPY
		0
	JMP I	PTOPSC							/A018

/CALLED BY JMS ORGOLD
/		VALUE FOR FIRST WORD ARGUMENT (EITHER ORAR FOR OR  PRESS GOLD
/					      M OR NARG FOR PRESS GOLD M)

ORGOLD,XX		/DISPLAYS (OR) PRESS GOLD M TO RECALL MENU
	CLA
	TAD I ORGOLD
	DCA FWARG	/STORE ARGUMENT IN FIRST WORD ARGUMENT	
	ISZ ORGOLD
	/NOTE AC MUST BE 0 HERE TO ENSURE GTDKID WILL READ SYSTEM FLOPPY
	CIFMNU
	JMS I IOACAL
		0
		DOGM		/ADDRESS OF OR TYPE GOLD M TO RECALL MENU
		2505		/POSITION OF LINE
		FWARG,	0	/FIRST WORD OF PROMPT EITHER "OR" OR " "
	JMP I ORGOLD	/RETURN TO CALLER	

/*****************************************************************************
/
/ THE ROUTINE BELOW COPIES THE FILE

CPYFLE,	
	XX
	JMS	CPHDRI		/ GO COPY OUT HDR INFO (PRINTER CTL INFO, ETC)
CPYNXT,
	JMS	RDNXCH		/ GO GET A CHARACTER TO COPY
	JMP	CPFLEX		/ ALL DONE COPYING
	DCA	CPYCHR		/ STORE THE CHARACTER JUST GOT
	CDFSYS
	TAD I	HLTFLG		/ DID THE USER PRESS GOLD HALT?
	CDFMYF
	SZA CLA			/ NO HE DIDN'T
	JMP	CPFLHT		/ YES HE DID, GO CLOSE AND CONTINUE
	TAD	CPYCHR		/ GET CHARACTER TO COPY
	JMS	PDXCH		/ GO PUT CHAR OUT
	JMP	CPYNXT
CPFLEX,
	ISZ	CPYFLE		/ NORMAL RETURN
CPFLHT,				/ GOLD HALT WAS HIT/ ABNORMAL RETURN
	CIFFIO			/ CLOSE THE FILE
	FILEIO
	XDSKCL
	CLA							/A008
	DCA	QUQBLK+RXQFNC	/SET 0 FNCTION CODE(WRITE DIR IF NEC./A008
	JMS	QURX		/DO IT				/A008
	CLA	/ INSURE THAT WE'RE DOING DRIVE ZERO		/M029/A028
	JMP I	CPYFLE		/ GO BACK ALL DONE

/*************************************************************************
/
/	THIS CODE IS THE LAST PART OF THE CODE THAT PROCESSES COPY SOME
/	AND COPY ALL. PROCESSING COMES HERE WHEN ALL THE NAMED
/	DOCUMENTS HAVE BEEN PROCESSED, AND NOW ALL THAT NEEDS TO BE
/	DONE IS TO COPY UNNAMED DOCUMENTS. FOR A COPY SOME, IT WILL
/	DISPLAY A MESSAGE ASKING WHETHER THE USER WISHES TO COPY
/	THE NUMBERED DOCUMENT. FOR A COPY ALL, IT SIMPLY GETS THE
/	NUMBERED DOCUMENT AND COPIES IT.
/
/**************************************************************************

CPYSL3,
	JMS	GTFNO		/ GO GET A FILE NUMBER (UNNAMED)
	JMP	GOLDMU		/ NO MORE OF THEM
	DCA	FILNBR		/ PUT IT WHERE IT CAN BE DISPALYED
	TAD	FILNBR		/ GET THE FILE NUMBER TO SAVE IT
	DCA	DCNBR		/ SAVE IT ON PAGE ZERO SO OTHERS CAN GET IT
	DCA	SIGNL2	/ TURN OFF SIGNAL THAT USER WANTS TO COPY	/A007
	DCA	SIGNL3	/ TURN OFF SIGNAL THAT USER GAVE NAME TO DOC	/A007
	TAD	FILNBR
	JMS	MKNBR		/ GO SEE IF FIEL HAS BEEN DONE
	JMP	CPYSL3		/ IT HAS, GO GET ANOTHER ONE
	TAD	FILNBR		/ GET THE NUMBER IN THE AC
CPYSL4,
	JMS	DONBR		/ GO CONVERTY IT TO ASCII
	JMS	COPOVR	/ GO COPY IT TO INBUF
	AC7776			/ CHECK TO SEE IF WE'RE DOING A COPY SOME
	TAD	COPYTP		
	SZA CLA			/ YES WE ARE
	JMP	CUGSP1		/ NO WE AREN'T
	TAD	FILNBR		/ GET THE FILE NUMBER			/A037
	JMS	CPWISH		/ GO DISPLAY DO YOU WISH
	0			/ NO NAME
	ISZ	SIGNL2		/ SIGNAL THAT USER WANTS TO COPY	/A007
	JMP	CUGSP1		/ GO ASK
FILNBR,	0			/ SPOT FOR THE FILE NUMBER

/M039			CODE MOVE HERE IN SPACE WAR
/****************************************************************************/M039

APRORG,	XX			/ DISPLAY "AND PRESS RETURN"		/A037/M039
				/ "OR PRESS GOLD MENU ...		/A037/M039
	JMS	PRETURN		/					/A037/M039
	JMS	ORGOLD		/					/A037/M039
		ORAR		/					/A037/M039
	JMP I	APRORG		/ RETURN				/A037/M039

/----------------------
	PAGE

/**********************************************************************
/
/	THIS ROUTINE WILL CHECK TO SEE IF FILES HAVE BEEN COPIED
/
/**************************************************************************

GTFNO,
	XX
	AC7777			/ GET SIGNAL THAT WE'RE DOING NUMBERS ONLY
	DCA	SIGNL		/ SIGNAL CKINPT RTNE THAT WE'RE DOING NUMBERS
	TAD	(DCNBRS		/ PREPARE TO SEARCH FILE TABLE		/C037
	DCA	X0		/ PUT IT INTO INDEX 0
	CDFBUF								/A003
GTFNO1,
	TAD I	X0		/ GET A FILE HEADER BLOCK NBR
	SNA			/ IF ZERO HERE, DOCUMENT DOES NOT EXIST
	JMP	GTFNO2		/ NO DOCUMENT, GO GO ON TO THE NEXT
	TAD	(-1)		/ CHECK TO SEE IF ITS BEEN COPIED ALREADY
	SNA CLA			/ ZERO HERE MEANS IT HAS BEEN COPIED
	JMP	GTFNO2		/ HAS BEEN COPIED

	TAD	X0		/ GET THE ADDRESS OF THE HDR BLOCK NBR
	TAD	(-DCNBRS+1)	/ SUBTRACT FILE TABLE BASE		/C037
	ISZ	GTFNO		/ BUMP UP GOT NUMBER RETURN ADDRESS
GTFNOX,	CDFMYF								/A003
	JMP I	GTFNO		/ RETURN TO CALLER EOF ADDRESS

GTFNO2,		/ DONE OR NONEXISTENT, CHECK TO SEE IF AT END OF TABLE
	TAD	X0		/ GET INDEX REGISTER
	TAD	(-DCNBRS+1)	/ COMPARE TO TABLE END POINT		/A037
	TAD	MDOCFS		/ AND NO OF DOCS IN FILE SYSTEM		/A037
	SMA CLA			/ SKIP IF NOT DONE			/A037
	JMP	GTFNOX		/ DONE, GO EXIT WITH NO ISZ, AC=0000	/A037
	JMP	GTFNO1		/ GO LOOK AT NEXT NUMBER		/A037

/****************************************************************************
/
/	CONTROL IS PASSED HERE WHENEVER THERE IS NO DOCUMENT ON THE INPUT DRIVE
/	BY THE NAME GIVEN BY THE USER TO COPY OVER TO THE OUTPUT DRIVE. IT
/	ASKS THE USER TO PRESS RETURN FOR ANOTHER NAME.
/
/******************************************************************************
NDERR,	XX
	JMS	CPYSL5	/ GO SEE IF WE'RE DOING COPY ALL		/C004
	TAD I 	NDERR	/PICK UP DOC NAME
	DCA	DCNAM	/STORE IT FOR ERROR MESSAGE

	ISZ	NDERR	/INCREMENT FOR RETURN
	CDFMNU		/CHANGE TO MENU FIELD
	TAD I	(MUBUF+MNDRV)	/PICK UP DRIVE NUMBER
	CDFMYF		/CHANGE BACK TO MY FIELD
	DCA	DCRV	/STORE IN DRIVE NUMBER FOR ERROR MESSAGE
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
NDDSP,	CIFMNU
	JMS I	IOACAL
	0
	NDOC
ONE303,
	1305
DCDEV,	0		/ PTR TO "DRIVE" OR "AREA" TEXT			/A039
DCRV,	0000
DCNAM,	0000
	CIFMNU
	JMS I	IOACAL
	0
	TARTN
	2505
	JMS	RTNWT	/WAIT FOR RETURN
	JMP	NDDSP	/NOT RETURN COMPLAIN AGAIN
	TAD	ONE303	/RETURN ERASE SCREEN
	JMS	ERASE
	DCA	SIGNL	/ CLEAR OUT NUMBERED DOC SIGNAL
	JMP I	NDERR	/AND CONTINUE


/***************************************************************************
/
/	A ROUTINE TO COPY THE INPUT FROM MENU FIELD TO THIS FIELD
/
/****************************************************************************

CPMNOV,
	XX
	JMS	CUCOPY
	MUBUF+MNIBUF			/C042
	CDFMNU
	CUPFNM
	CDFMYF
	STRLEN
	JMP I	CPMNOV

	

/**************************************************************************
/
/	ROUTINE TO CONVERT A OCTAL NUMBER TO DECIMAL AND PUT IT AT INBUF.
/	ENTER THE ROUTINE WITH A JMS INSTRUCTION WITH THE VALUE OF THE
/	NUMBER IN THE AC. UPON RETURN, THE VALUE IN DECIMAL WILL BE AT
/	'INBUF+1', RIGHT JUSTIFIED.
/
/****************************************************************************

DONBR,
	XX
	DCA	VALUE	/ SAVE THER OCTAL NUMBER TO BE CONVERTED
	TAD	DPREC	/ GET THE PRECISION (ALWAYS 4)
	TAD	(TENS-1)	/ GET THE POWERS OF TEN TABLE
	DCA	TABLE	/ PUT IT HERE TO INDIRECT THRU
	TAD	(CUPFNM-1)	/ GET THE ADDR WHERE THE NUMBER WILL BE PUT
	DCA	X1	/ PUT THE ADDR INTO THE INDEX REGISTER
	TAD	DPREC	/ GET THE PRECISION
	DCA	DPREC1	/ STORE IT HERE TO ISZ IT
DONBR1,
	DCA	COUNT	/ ZERO THE COUNTER
	ISZ	TABLE	/ GET THE POWER OF TEN
	TAD I	TABLE
	SNA		/ ARE WE DONE?
	JMP	DONBRX	/ YES GO BACK
	CMA
	SNA CLA
	ISZ	DPREC1	/ TURN ON SIGNIFICANCE STARTER
DONBR2,
	TAD	VALUE	/ GET THE OCTAL NUMBER
	TAD I	TABLE	/ SUBTRACT OUT THE POWER OF TEN
	SPA		/ STILL POSITIVE?
	JMP	DONBR3	/ NO, GO CONSTRUCT THE DIGIT
	DCA	VALUE	/ YES, STORE THE DECREMENTED OCTAL FOR NEXT LOOP
	ISZ	COUNT	/ INCREMENT THE DIGIT OF THE DECIMAL NBR
	JMP	DONBR2	/ GO SEE IF WE'RE THRU WITH THIS DIGIT
DONBR3,
	CLA
	TAD	DPREC1	/ GET THE SIGNIFICANCE STARTER
	TAD 	COUNT	/ GET THE DECIMAL DIGIT
	SNA CLA		/ IF ZERO HERE, SIGNIFICANCE HASN'T STARTED
	JMP	DONBR1	/ GO DO NEXT DIGIT
	TAD	OSXTY	/ GET AN ASCII ZERO
	TAD	COUNT	/ ADD IN THE BINARY NBR FOR THE DIGIT
	ISZ	DPREC1	/ SET UP SIGNIFICANCE STARTER
	DCA I	X1	/ PUT DIGIT AT INBUF
	JMP	DONBR1	/ GO DO NEXT DIGIT
DONBRX,
	CLA
	DCA I	X1	/ NULL END OF ASCIZ STRING
	JMP I	DONBR	/ RETURN

COUNT,	0	/ AREA TO CREATE DECIMAL DIGIT IN OCTAL
	DECIMAL
TENS,	-1000
	-100
	-10
	-1
	0		/ END OF TABLE MARKER
	OCTAL

/***********************************************************************/A012
/									/A012
/	DISPLAYS MESSAGE "IF YOU DO, TYPE Y AND PRESS RETURN, OR JUST	/A012
/	'PRESS RETURN TO CONTINUE TO THE NEXT DOCUMENT,			/A012
/									/A012
/***********************************************************************/A012
MSIYDT,									/A012
	XX								/A012
	CIFMNU								/M012
	JMS I	IOACAL							/M012
	0								/M012
	TXCS2		/ G. P. CONTROL STRING, TWO SUBSTRINGS		/A037
	2105		/ POSITION OF 1ST SUBSTRING			/A037
	TXIYD		/ IF YOU DO PRESS Y, OF RETURN ETC,		/M012
	2305								/M012
	TXPRCN		/ "PRESS RETURN TO CONTINUE TO NEXT..."		/A037
	JMS	ORGOLD							/M012
		ORAR							/M012
	JMP I	MSIYDT							/A012
/------------------------
	PAGE

/M039			SPACE WARS MOVE
/D039/****************************************************************************
/D039
/D039APRORG,	XX			/ DISPLAY "AND PRESS RETURN"		/A037
/D039				/ "OR PRESS GOLD MENU ...		/A037
/D039	JMS	PRETURN		/					/A037
/D039	JMS	ORGOLD		/					/A037
/D039		ORAR		/					/A037
/D039	JMP I	APRORG		/ RETURN				/A037


/****************************************************************************

PRETURN,XX			/DISPLAYS "AND PRESS RETURN"
	CIFMNU
	JMS I IOACAL
		0
		PRTRN
		2305
	JMP I PRETURN

/****************************************************************************

				/ GOLD MENU IF GOLD MENU IS TYPED,
				/ NO MEANING IF GARBAGE
KBRD,	XX			/ RETURN IF RETURN IS TYPED,

KBRD1,									/A011
	CIFMNU
	JMS I	INACAL		/CALL INA TO READ INPUT
		INBUF		/LOCATION TO RECEIVE INPUT
		JMP	GMTEST						/A011
	CLA MQA			/MQ CONTAINS #CHARS IN BUFFER
	SNA CLA			/IF THIS IS 0 RETURN WAS TYPED
	JMP I	KBRD		/GO BACK TO CALLER
	JMS 	NOMEAN		/ELSE MUST BE INAPPROPRIATE RESPONSE COMPLAIN
	JMP	KBRD1		/ASK AGAIN
GMTEST,									/A011
	JMS	GMTST		/ GO SEE WHAT KIND OF GOLD KEY WAS HIT	/A011
	2205			/ ERASE FROM THIS LINE FORWARD		/A026
	JMP	GOLDMU		/ HE HIT GOLD MENU			/A011
	JMP I	KBRD	/ HE HIT RETURN AFTER MESG NOT TO HIT GOLD KEYS	/A011


/CALLED WITH 0 OR 1 IN AC TO DETERMINE FROM WHICH FLOPPY THE HOME BLOCK
/WILL BE READ
	
GTDKID,	XX
	TAD	(NOP)	/ LOAD A NOP INSTRUCTION INTO AC		/A039
	DCA	CRMED	/ & PLACE INTO CREATE ERROR IOACAL SEQUENCE	/A039
			/ THIS MAKES "CRERR" RE-ENTRANT			/A039
	JMS GTDENS	/ GO PUT DRV NBR AND CDF INTO Q-BLOCK AND EST DENSITY
	TAD (CUB1)	/BUFFER ADDRESS
	DCA QUQBLK+RXQBAD
	TAD (RXBDIR)	/BLOCK TO READ (HOME BLOCK)
	DCA QUQBLK+RXQBLK
	TAD (RXERD	/TELL QURX TO READ
	DCA QUQBLK+RXQFNC
	JMS QURX
	CLA		/THIS CLOBBERS ANY QURX ERROR RETURN
	TAD CUB1+5	/INDEX TO FIFTH WORD (DISKETTE ID#)
	JMP I GTDKID	/EXIT WITH CURRENT DISKETTE ID IN AC


TOSMAL, XX
	TAD I	TOSMAL	/ GET THE DRIV NUMBER
	DCA	DISP31  / PUT IT TO BE DISPLAYED
	ISZ	TOSMAL		/ BUMP UP TO THE DOCUMENT NAME
	TAD I	TOSMAL	/ GET THE DOCUMENT NAME (IF ANY)
	DCA	DISP33	/ PUT IT WHERE IT WILL BE DISPLAYED
	TAD I	DISP31	/ PICK UP THE DRIVE NUMBER
	DCA	DISP31	/ PUT IT WHERE IT WILL BE DISPLAYED
TSML1,
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	CIFMNU
	JMS I	IOACAL
	0
	NERD		/ NOT ENOUGH ROOM ETC
	1505
DSTDEV,	0		/ PTR TO "DRIVE" OR "AREA" TEXT			/A039
DISP31,	0	/DRIVE NUMBER
	CLA
	TAD I	DISP33	/ CHECK FOR DOCUMENT NAME
	SNA CLA		/ IF ZERO ADDRESS THEN NO NAME FOR DOCUMENT
	JMP	NONAM 	/ NO NAME FOR DOCUMENT
	CIFMNU
	JMS I	IOACAL
	0
	DCNAME
	1705
DISP33,	0		/ DISPLAY NAME OF DOCUMENT
NONAM,
	CIFMNU
	JMS I	IOACAL
	0
	TXCS1		/ G. P. ONE SUBSTRING				/A037
	2405		/ POSITION					/A037
	TXPRCN		/ SUBSTRING "PRESS RETURN TO CONINUE..."	/A037
	JMS	ORGOLD
		ORAR
	JMS	MVCPIN	/ GO SAVE THE DOCUMENT NAME IN CASE USER WRONG	/A032
	JMS	ASK	/ GO SEE WHAT HE TYPED IN
	JMP	GOLDMU	/ GO BACK
	JMP	RSTNAM	/ GO RESTORE THE NAME OF THE DOCUMENT		/A032
	ISZ	TOSMAL							/M032
	JMP I	TOSMAL	/ HIT FINALLY HIT RETURN
RSTNAM,									/A032
	JMS	COPOVR	/RESTORE THE NAME OF THE DOCUMENT		/A032
	JMP	TSML1	/ GO DISPLAY  AGIAN				/M032


/***********************************************************************88
/
/	THIS ROUTINE DETERMINES WHAT THE USER TYPED IN WHEN ASKED
/	WHETHER OR NOT HE WANTS TO COPY A FILE THE NAME OR NUMBER OF
/	WHICH WAS PREVIOUSLY DISPLAYED ON THE SCREEN DURING A COPY
/	SOME OPERATION. IF THE USER TYPES THA LETTER "Y" AS THE FIRST
/	CHARACTER, IT WILL DO THE COPY OPERATION. IF HE TYPES RETURN,
/	IT WILL GO GET ANOTHER FILE NAME OR NUMBER TO DISPLAY, WITHOUT
/	COPYING. IF HE TYPES GOLD MENU, IT GOES TO MAIN MENU. ANY THING
/	ELSE IT WILL TREAT AS IF HE HIT RETURN. IF HE TYPES A GOLD KEY
/	OTHER THAN GOLD MENU, IT WILL GIVE HIM A LONG LECTURE ABOUT THE
/	USE OF GOLD KEYS AND MAKE HIM HIT RETURN.
/
/************************************************************************

WISHIN,
	XX
	JMS	MVCPIN	/ GO SAVE WHAT'S IN INBUF			/A022
WISHN1,
	CIFMNU
	JMS I	INACAL
	INBUF								/A027
	JMP	GLDKY
	CLA MQA		/ ANYTHING TYPED IN?
	SNA CLA		/ IF NON ZERO HERE THEN SOMETHING HAS BEEN TYPED
	JMP	WISHN3	/ IF ZERO, THEN RETURN WAS TYPED
	TAD	INBUF+1	/GET WHAT WAS TYPED IN				/A027
	IFDEF ENGLSH <
	TAD	(-131)	/ A "Y"?
	>
	IFDEF ITALIAN <
	TAD	(-123)	/ A "S"?
	>
	IFDEF V30NOR <
	TAD	(-112)	/ a "J"
	>
	IFDEF V30SWE <
	TAD	(-112)	/ A 'J'
	>
	SNA
	JMP	WISHN2	/ YES, RETURN TO SECOND ADDRESS
	IFDEF ENGLSH <
	TAD	(131-171)	/ A "y" ?
	>
	IFDEF ITALIAN <
	TAD	(123-163)	/ A "s"?
	>
	IFDEF V30NOR <
	TAD	(112-152)	/ A "j"
	>
	IFDEF V30SWE <
	TAD	(112-152)	/ A 'J'
	>
	SNA
	JMP	WISHN2	/ YES, RETURN TO SECOND ADDRESS
	JMS	NOMEAN	/ GO TELL HIM IT HAS NO MEANING HERE		/A027
	JMP	WISHNR	/ NOT A "Y", SO TREAT IT AS IF HE HIT RETURN	/C027
GLDKY,
	JMS	GMTST	/ GO SEE WHAT KIND OF GOLD KEY HE HIT
	2105		/ ERASE FROM THIS LINE FORWARD			/A026
	JMP	WISHN4	/ HE HIT GOLD MENU
	JMS	RBELL	/ GO RING THE BELL
	JMS	MSIYDT	/ GO DISPLAY MESSAGE 				/A012
	JMP	WISHN1
WISHN2,
	ISZ	WISHIN
WISHNR,									/A027
	ISZ	WISHIN	/ NO MEANING TO WHAT HE TYPED IN TRY AGAIN	/A027
WISHN3,			/ TYPED RETURN
	ISZ	WISHIN
WISHN4,
	JMP I	WISHIN
/----------------------
	PAGE

/CALLS MENU TO READ INPUT TO DOC PROMPTS, TOA AND GO PROMPTS
/CALLED BY:

	/JMS READMU
	/	GOLD M	 DATA FIELD SET TO MY FIELD
	/	CONTINUE PROCESSING DATA FIELD SET TO MENU FIELD

/ EDIT 035 CHANGED SYMBOL READ TO READLP				/A035

READMU,	XX
READLP,	CDFMYF			/SET DATA FIELD TO MENU			/M035
	CIFMNU
	JMS I MNUCAL;DLMDU7	/CALL MENU
	CDFMNU			/CHANGE DATA FIELD TO MENU
	TAD I (MUBUF+MNTMP3)	/GET AND TEST CONTENTS OF TMP3
	SZA			/IF 0 THEN GOLD KEY WAS PRESSED
	JMP RDRTN2		/NOT GOLD KEY SO RETURN AND PROCESS INPUT
	TAD I (MUBUF+MNSYSA)	/WAS GOLD KEY TO GET IT
	TAD (4000)		/SET FIRST BIT TO 1 BECAUSE MENU STRIPS IT OFF
	CDFMYF			/CHANGE DATA FIELD TO MINE
	JMS GMTST		/PROCESS GOLD KEY
	2105			/ ERASE FROM HERE			/A026
	JMP	RDRTN1		/GOLD M RETURN
	TAD	DOCSIG		/ DID 'DTAO' CALL THIS ROUTINE?		/A023
	SMA			/ YES, THEN RETURN TO DTAO		/A023
	JMP	RDRTN3		/ NO, NORMAL PROCESSING			/A023
	AC7776			/ SIGNAL THAT WE'RE COMING FROM HERE	/A023
	JMP	RDRTN2		/ RETURN TO DTAO			/A023
RDRTN3,									/A023
	JMS	APRORG		/ "AND PRESS RETURN OR GOLD MENU	/A037
	JMP	READLP		/ GOLD GARBAGE, READ INUT AGAIN		/M035
RDRTN2,	ISZ	READMU		/ GOLD M EXIT
RDRTN1,	JMP I	READMU		/ CONTINUE EXIT

/CALLED BY JMS GMTST;GOLD M;GOLD KEY NOT GOLD M
GMTST,	XX		/ TEST TO SEE IF GOLD KEY
	TAD	(-EDMENU)	/SEE IF GOLD M
	SNA CLA
	JMP	GMRTN2							/C026
GMERDSP, TAD I	GMTST						/C026	/C016
	JMS	ERASE
	JMS	RBELL
	CIFMNU
	JMS I	IOACAL
	0	
	TRYAGN
	2205								/C026
	2305
	2405
	2605
	JMS	RTNWT	/ WAIT FOR THE RETURN
	JMP	GMERDSP	/ NOT RETURN GO COMPLAIN
	TAD I	GMTST						/C026	/C016
	JMS	ERASE
	ISZ	GMTST							/A026
GMRTN2,	ISZ	GMTST
GMRTN1,	JMP I	GMTST	/GO BACK

/D44 ***************************************************************************
/D44
/D44 	A ROUTINE THAT WILL COMPARE TWO STRINGS OF CHARACTERS TO SEE IF THEY
/D44 	ARE EQUAL.
/D44 	THE ROUTINE SHOULD BE CALLED AS FOLLOWS:
/D44 			JMS	COMPST
/D44 			ADDRESS OF THE FIRST STRING OF CHAR TO BE COMPARED
/D44 			ADDRESS OF THE 2ND STRING TO BE COMPARED
/D44 			RETURN POINT IF THEY DON'T MATCH
/D44 			RETURN POINT IF THEY DO MATCH
/D44 	THE FIRST STRING IS THE CONTROLLING STRING.  IT MUST HAVE AS ITS LAST
/D44 	WORD A NULL TO STOP THE COMPARE. IF THE 2ND STRING HAS A NULL CHARACTER
/D44 	BEFORE THE ROUTINE REACHES THE NULL CHARACTER IN THE FIRST STRING,
/D44 	IT WILL RETURN A NON-MATCHING CONDITION. IF ALL THE CHARACTERS THAT
/D44 	PRECEDE THE NULL CHAR IN THE FIRST STRING MATCH THE CHARACTERS OF THE
/D44 	SECOND STRING, THEN A MATCH CONDITION IS RETURNED.
/D44
/D44 *****************************************************************************
/D44 / This routine was never called.  How about that.
/D44
/D44 COMPST,
/D44 	XX
/D44 	AC7777		/ DECREMENT FOR INDEXING
/D44 	TAD I	COMPST	/ GET THE ADDR OF THE FIRST STRING
/D44 	DCA	X1	/ INTO INDEX 1
/D44 	ISZ		/ POITN TO THE NEXT STRING ADDRESS
/D44 	AC7777		/ DECREMENT FOR INDEXING
/D44 	TAD I	COMPST	/ GET ADDRESS OF 2ND STRING
/D44 	DCA	X2	/SET IT UP IN INDEX 2
/D44 	ISZ		/ BUMP UP TO NO MATCH RETURN POINT
/D44 COMPS1,
/D44 	TAD I	X1	/ GET CHAR FROM 1ST STRING
/D44 	SNA		/ IF ZERO, WE'RE ALL DONE
/D44 	JMP	COMPSX	/ GO BUMP UP TO MATCH RETURN AND GO BACK
/D44 	CIA		/ COMPLEMENT FOR COMPARE
/D44 	TAD I	X2	/ GET CORRESPONDING CHAR FROM 2ND STRING
/D44 	SZA CLA		/ IF ZERO, THEY MATCH
/D44 	JMP I	COMPST	/ IF NOT THEY DO'T, GO BACK
/D44 	JMP	COMPS1	/ GO GET ANOTHE RCHAR AND DO IT OVER AGAIN
/D44 COMPSX,
/D44 	ISZ		/ BUMP UP TO MATCH RETURN
/D44 	JMP I	COMPST	/ RETURN
	JMP 	

CSTUFF,	XX			/ A SUBROUTINE OF COMMON CODE		/A037
				/ I DON'T HAVE TIME TO FIGURE OUT	/A037
				/ EXACTLY WHAT THIS DOES RIGHT NOW	/A037
	CLA IAC
	MQL
	JMS	STTMPS		/ GO DO THE SIGALING
	JMS	READMU		/ GO READ IT
	JMP	GOLDMU
	DCA STATUS		/ STORE AC IN STATUS -1 = NONEXISTENT DOCUMENT
	TAD I	(MUBUF+MNDOCN)	/ GET THE DOCUMENT NUMBER
	JMP I	CSTUFF							/A037



/***************************************************************************
/
/	THIS ROUTINE WILL DETERMINE WHETHER OR NOT THERE IS FILENAME IN THE
/	INDEX DOCUMENT FOR A DOCUMENT NUMBER THAT IS AT LOCATION 'DCNBR'
/	ON A DRIVE PASSED TO IT IN THE AC.  IF IT DOES NOT FIND SUCH A
/	DOCUMENT NAME IT WILL RESTORE THE FILE NUMBER AT 'INBUF' IN ASCII.
/	IF IT FINDS THE NAME, IT WILL PUT IT AT 'INBUF'.
/
/******************************************************************************

DTNAM,
	XX
	BSW		/ POSITION DRVE NUMBER IN THE UPPER SIX BITS
	CLL RTL		/ SET DRIVE NUMBER IN IT'S PLACE FOR RDFINI
	IAC		/ SET TO READ FILE ONE (INDEX FILE)
	JMS	OPENRD		/ GO OPEN THE FILE FOR READING
DTNAM1,
	JMS	GTLIST	/ GET THE NAME AND NUMBER OF A FILE ON THE INDEX
	JMP	DTNAM2	/ END OF FILE JUMP
	CIA		/ GOT A NUMBER, COMPLEMENT IT FOR COMPARE
	TAD	DCNBR	/ ADD IN THE NUMBER WANTED
	SZA CLA		/ THEY'RE EQUAL WE GOT IT
	JMP	DTNAM1	/ GO SEE IF THE NEXT ONE IS WHAT WE WANT
	DCA	SIGNL	/ TURN OFF SIGNAL THAT SAYS DOC HAS NO NAME
	JMP I	DTNAM	/ GO BACK
DTNAM2,
	JMS	COPOVR		/ GO MOVE THE FILENAME TO INBUF		/C013
	JMP I	DTNAM	/ ALL DONE

/**********************************************************************
/
/	THIS IS A ROUTINE THAT GETS THE SIZE OF A DOCUMENT
/	YOU MUST PASS THE DRIVE-FILE NUMBER IN THE AC
/	DRIVE NUMBER IN THE UPPER 4 BITS
/	FILE NUMBER IN THE BOTTOM 8 BITS
/
/*************************************************************************

GTFLSZ,
	XX
	JMS	OPENRD		/ GO OPEN THE DOCUMENT PASSED IN THE AC
	CDFFIO			/ CHANGE DATA TO FILE IO FIELD
	TAD I	(RDFSIZ)	/ GET THE SIZE OF THE FILE
	CDFMYF
	JMP I	GTFLSZ

/****************************************************************************
/
/	HMBLCK -- GET THE HOME BLOCK OF THE INPUT DISKETTE INTO MEMORY
/		COPY NUMBER OF DOCUMENTS IN FILE SYSTEM TO NDOCFS
/
/*******************************************************************************

HMBLCK,	XX
	AC7777			/ GET MINUS 1 TO SEE IF THE HOME BLOCK
	TAD	HBLSIG		/ HAS BEEN READ ALREADY
	SNA CLA			/ IF NOT ZERO, THEN IT HASN'T BEEN READ
	JMP I	HMBLCK		/ IT HAS BEEN READ, RETURN
	TAD	FROMDR
	JMS	GTHMBL		/ GO GET IT INTO MEMORY
	CUB1			/ BUFFER ADDRESS
	ISZ	HBLSIG		/ SET SIGNAL THAT THE HOME BLOCK HAS BEEN READ

/ NOW MOVE IT INTO ITS PERMANENT LOCATION

	TAD I	(CUB1+11)	/ GET #BLOCKS IN  FILE SYSTEM		/A037
	DCA	MDOCFS		/ SAVE AS A HANDY NEGATIVE NUMBER	/A037
	TAD	MDOCFS		/					/A037
	CIA			/					/A037
	DCA	NDOCFS		/ AND AS A HANDY POSITIVE NUMBER	/A037
	TAD	NDOCFS		/ AND FOR THE COPY ROUTINE		/A037
	DCA	HMBLT1		/ SAVE IN CUCOPY CALL			/A037
	JMS	CUCOPY
	CUB1+12			/ COPY OVER THE FILE HEADER BLOCKS
	CDFMYF
	DCNBRS			/ AREA WHERE IT IS
	CDFBUF
HMBLT1,	0			/ NUMBER OF BLOCKS IN FILE SYSTEM	/A037
				/    IS THE NUMBER OF WORDS TO COPY	/A037

	JMP I	HMBLCK		/ RETURN
/------------------
	PAGE

/************************************************************************
/
/	ROTUINE TO DISPLAY MESSAGE TO REMOVE THE SYSTEM DISKETTE
/	AND REPLACE WITH THE DISKETTE TO BE COPIED TO OR FROM
/
/**************************************************************************

DISP1,	XX
	DCA	DISP11	/ PUT MESSAGE INTO CALL LIST
DISP10,									/A018
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	CIFMNU	
	JMS I	IOACAL	
	0
	SYSTM		/ PRINT 'PLEASE REMOVE THE SYSTME D ISKEETE FROM LEFT
	1305		/ CURSOR POSITION
	CIFMNU
	JMS I	IOACAL
	0
	AITDT
	1505
	CIFMNU
	JMS I	IOACAL
	0
DISP11,	0		/ PLACE FOR MESSAGE ADDRESS
	IFDEF ENGLSH  <1536>
	IFDEF ITALIAN <1532>	/ CURSOR POSITION
	IFDEF V30NOR  <1536>
	IFDEF V30SWE  <1536>
	JMS	APRORG		/ "AND PRESS RETURN OR GOLD MENU	/A037
	JMS	ASK		/ GO FIND OUT WHAT HE TYPED IN
	JMP	GOLDMU		/ GO BACK TO MAIN MENU
	JMP	DISP10		/ GO DISPLAY MESSAGE AGAIN
	JMP I	DISP1		/ RETURN


/***********************************************************************
/
/	THIS ROUTINE WILL READ WHAT THE USER TYPES IN, AND
/		A) IF HE TYPED RETURN, IT WILL RETURN TO NSI+2
/		B) IF HE TYPES GOLD MENU, IT WILL RETURN TO NSI
/		B) IF HE TYPES A GOLD KEY THAT IS NOT GOLD MENU IT WILL..
/			1) RING THE BELL
/			2) GIVE HIM A MESSAGE TO NOT USE THOSE KEYS
/			3) TELL HIM TO TRY AGAIN TIL HE GETS IT RIGHT
/		C) IF HE TYPES ANYTHING ELSE IT WILL...
/			1) RING THE BELL
/			2) DISPLAY WHAT HE TYPED AND TELL HIM IT HAS NO MEANING
/			3) GO BACK AND ASK HIM TO TYPE SOMETHING AGAIN
/
/*****************************************************************************

ASK,	XX		/ ASK USER FOR A "CARIAGE RETURN" OR "GOLD MENU"

	JMS	MVCPIN	/ SAVE THE INBUF BUFFER AT CUPFNM		/A037
	CDFMYF
	CIFMNU
	JMS I INACAL	/ READ WHAT HE TYPES IN
		INBUF
		JMP	GMKEYT	/ HE TYPED A GOLD KEY, GO SEE IF ITS GOLD M
	CLA MQA		/ SEE IF HE TYPED ANY CHARACTERS IN
	SZA CLA		/ IF 0 CHARACTERS THEN HE TYPED RETURN
	JMP	ASK3	/ GO TELL HIM ITS GARBAGE
			/ NICE FELLOW TYPED RETURN SO..
	ISZ	ASK	/ INCREMENT PAST THE GOLD MENU RESPONSE RETURN
ASK4,	ISZ	ASK	/ INCREMENT PAST THE NO MEANING RETURN
	JMS	COPOVR	/ RESTORE THE INBUF BUFFER FROM CUPFNM		/A037
	JMP I	ASK	/ AND RETURN THERE.
ASK3,		/ GO TELL HIM THAT HIS GARBAGE IS NONSENSE
	JMS	NOMEAN	/ TYPING 'X' HAS NO MEANING
	JMP	ASK4	/ GO BUMP ONCE AND RETURN
GMKEYT,			/ GO SEE WHAT SORT OF GOLD KEY HE TYPED
	JMS	GMTST	/ THIS ROUTINE OUTPUTS A MESSAGE IF NOT GOLD MENU
	2205		/ ERASE SCREEN FROM THIS LINE ON		/A026
	JMP I	ASK	/ HE HIT GOLD MENU, SO RETURN NSI
	JMP	ASK4	/ HE FINALLY HIT RETURN

/***************************************************************************/
/	ROUTINE TO GET FILE NAMES AND/OR NUMBERS FROM THE INDEX DOCUMENT
/	EACH TIME YOU ENTER IT YOU WILL GET THE NEXT NAME ON THE FILE.
/	SIMPLY CALL THE ROUTINE.
/
/*****************************************************************************

GTLIST,
	XX
GTNXT,								/A004
	TAD	(INBUF+1	/ GET ADDRESS OF INPUT BUFFER FOR NAME
	DCA	INDBUF		/ PUT IT FOR INDIRECTING THRU
	JMS	NMSRC		/ GO SEARCH FOR <N>
	NMIBN			/ <N>
	JMP	LISTEF		/ END OF FILE RETURN
	TAD	MSTRLN	/ GET LENGTH OF STRING
	DCA	LISTCT		/ SET IT UP FOR LOOP CONTROLL
GTLIS1,
	JMS	RDNXCH		/ GO GET NEXT CHARACTER OF FILE
	JMP	LISTEF		/ END OF FILE
	TAD	MLT		/ LEFT ANGLE BRACKET?
	SNA
	JMP	GTLIS2		/ YES, THEN ALL DONE
	TAD	PLT		/ RESTORE CHARACTER
	TAD	SFTRET	/ CHECK FOR SOFT RETURN CHARACTER
	SNA		/ IF NOT ZERO, NOT A SOFT RETURN
	JMP	GTLIS1	/ GO GET NEXT CHARACTER
	TAD	WWRAPB	/ CHECK TO SEE OF IT IS A WORD WRAP BLANK
	SNA		/ IF NOPT ZERO, THEN ISN'T A WORD WRAP BLANK
	JMP	GTLIS1	/ GO GET NEXT CAHRACTER
	TAD	PWWRPB	/ RESTORE THE CHARACTER
	AND	P177	/ WE'RE ONLY INTERSTED IN THE LOWER 7 BITS
	TAD	MSEVN		/ WORD WRAP CHARACTER?
	SNA			/ IF IT IS, BYYPASS IT
	JMP	GTLIS1		/ GO GET NEXT CHARACTER FROM FILE
	TAD	SEVEN		/ RESTORE CHARACTER
	DCA I	INDBUF		/ PUT IT AT INBUF
	ISZ	INDBUF		/ UPDATE BUFFER POINTER
	ISZ	LISTCT		/ UPDATE THE LIST COUNTER
	JMP	GTLIS1		/ GO DO NEXT CHARACTER
GTLIS2,
	AC7777			/ GET A MINUS 1
	TAD	INDBUF		/ SUBTRACT 1 FROM POINTER TO MAKE ASCIZ STRING
	DCA	INDBUF		/ THIS CUTS OUT THE FINAL BLANK FROM NAME
	TAD I	INDBUF		/ GET THE CHARACTER			/A004
	TAD	MSPACE		/ IS IT A SPACE?			/A004
	SZA CLA			/ IF IT IS, GO MAKE IT A ZERO		/A004
	JMP	GTNXT		/ IF NOT A SPACE, TREAT IT AS NOT FOUND	/A004
	TAD	INDBUF		/ CHECK TO SEE IF LENGTH OF NAME IS ZERO/A006
	TAD	(-INBUF2	/ NEG VALUE OF BEGINNING OF NAME	/A006
	SNA CLA			/ IF NOT ZERO, NAME IS GREATER THAN ZERO/A006
	JMP	GTNXT		/ GO GET NEXT NAME FROM INDEX FILE	/A006
	DCA I	INDBUF		/ ASCIZ STRING FINAL 0
	JMS	NMSRC		/ GO SEARCH FOR <#>
	NMIBNO+1			/ #>
	JMP	LISTEF		/ END OF FILE
	JMS	GTNUM		/ GO GET THE NUMBER
	JMP	LISTEF		/ END OF FILE
	ISZ	GTLIST		/ INCREMNT TO RETURN ADDR
LISTEF,	JMP I	GTLIST		/ NORMAL RETURN IS THE BUMPED RETURN
				/ WITH AC CONTAINING THE FILE NO
				/ END OF FILE RETURN IS NOT BUMPED, AC=0
LISTCT=T3		/ COUNTER FOR LOOP CONTROL
INDBUF=T2			/ WPRD TO INDIRECT THRU

/*******************************************************************
/
/	A ROUTINE TO MOVE A FILENAME FROM CUPFNM AREA TO INBUF AREA
/
/**********************************************************************

MVCPIN,
	XX
	JMS	CUCOPY
	INBUF+1		/ TARGET AREA					/M013
	CDFMYF		/ SOURCE FIELD NBR
	CUPFNM		/ SOURCE FIELD					/M013
	CDFMYF		/ IN MY FIELD
	STRLEN		/ LENGTH OF MOVE
	JMP I	MVCPIN	/ RETURN


/ *********************************************************************	/A039
/
/	WINCHK -ROUTINE TO CHECK IF SOURCE & DEST. DEVICES ARE WINNIE
/		AREAS AND SET UP APPROPRIATE FLAGS & TEXT POINTERS
/		CALLER HAS LEFT US IN MENU DATA FIELD!!!!
/
/ *********************************************************************	/A039
WINCHK,	AC0004		/ MASK FOR WINNIE BIT IN MNOPTN
	AND I (MUBUF+MNOPTN) / GET WORD WITH WINNIE BIT	
	SNA CLA		/ SKIP IF WINNIE BIT SET
	JMP	WINCHX	/ ELSE JUST EXIT
	AC0010		/ MASK FOR "DEV # 1 IS WINNIE" BIT
	AND I (MUBUF+MNOPTN) / AND IN THE WORD
	DCA	WINONE	/ WILL BE NON-ZERO IF BIT WAS SET
	TAD	TODRV	/ GET DESTINATION DEVICE #
	JMS	ISWIN	/ & CHECK IF A WINNIE AREA
	DCA	WINDST	/ NON-ZERO IF WINNIE
	TAD	FROMDRV	/ REPEAT SEQUENCE FOR SOURCE
	JMS	ISWIN
	DCA	WINSRC
WINCHX,	JMP 	WINSTR	/ NOW GO SET THE TEXT POINTERS

/-----------------
	PAGE

/****************************************************************************
/
/	CONTROL IS PASSED HERE WHENEVER WE'RE DOING A COPY ALL AND THE
/	FILE NAME WE GOT FROM THE INPUT DISKETTE WAS NOT FOUND.  THIS
/	SITUATION ARISES WHEN THERE IS A CORRUPTED INDEX FILE. COPY FILE'S
/	ROUTINES THAT READ THE INDEX FILE TO GET A FILE NAME ARE NOT SMART
/	ENOUGH TO REALLIZE THAT THE FILE IS CORRUPTED, AND THUS PASSES
/	GARBAGE AS THE FILE NAME. IT IS THEN NOT FOUND BY THE REGULAR
/	ROUTINES THAT READ THE INDEX FILE. WHEN THIS SITUATION ARISES,
/	NO MORE FILE NAMES WILL BE COPIED. THIS ROUTINE WILL MAKE IT AS IF
/	ALL THE FILE NAMES HAVE BEEN COPIED AND ONLY THE NUMBERED DOCUMENTS
/	ARE COPIED.
/
/******************************************************************************


CPYSL5,
	XX
	AC7775		/ CHECK TO SEE IF THIS IS A COPY ALL
	TAD	COPYTP	/ GET THE COPY TYPE WE'RE DOING
	SZA CLA		/ IS IT A COPY ALL?				C004
	JMP I	CPYSL5	/ IF NOT, RETURN
	IAC	/ CLEAR SIGNAL FOR MNTMP3 				/A004
	ISZ	SIGNL	/ SIGNAL THAT WE'RE DOING ONLY NUMBERED DOCUMENTS NOW
	CDFMNU								/C004
	DCA I	(MUBUF+MNTMP3)	/ TURN OFF BAD FILE INDICATOR		/A004
	TAD	(MUBUF+MNIBUF	/ GET ADDR OF MENU STRING		/C042
	DCA I	(MUBUF+MNPOS	/ PUT ADR OF MENU STRING INTO MENU OFFSET/C042
	CDFMYF								/C004
	TAD	DCNBR	/ GET THE DOCUMENT NUMBER WE'RE COPYING		/C004
	JMP	CPYSL4	/ GO COPY IT

/***********************************************************************/
/									/
/	DSPLNM -- DISPLAYS THE NAME OF THE DOCUMENT BEING COPIED	/
/		IF THERE IS NO NAME IT DISPLAYS THE NUMBER		/
/	ALSO DISPLAYS THE NEW NUMBER ASSIGNED ON THE DESTINATION DISC	/
/	AND DISPLAYS THE 'COPYING BLOCK MESSAGE'			/
/									/
/	REV HISTORY							/
/	007	GJP	CREATED						/
/	037	HLP	DISPLAY NEW NUMBER				/
/									/
/***********************************************************************/

DSPLNM,									/
	XX								/
	CLA								/
	TAD	SVIFNO		/ GET THE DRV-FILE NBR			/
	AND	P377		/ STRIP OFF THE DRIVE NUMBER		/
	DCA	CPYNBR		/ PUT DOCUMENT NBR TO DISPLAY IT	/
	JMS I	TOPSC		/ GO ERASE AND DISP
	CIFMNU			/ '--COPY DOCUMENT--'			/
	JMS I	IOACAL							/
	 0								/
	 NOWCOP			/ "YOU ARE NOW COPYING DOCUMENT N"	/
	 1115								/
CPYNBR,	0			/ DOCUMENT NUMBER			/
	CLA								/
	TAD	SIGNL		/ SEE IF WE'RE DOING NUMBERED DOCUMENTS	/
	SMA CLA			/ IF YES, THEN CHECK IF THERE'S A NAME	/
	JMP	DSPNM		/ IF NOT, GO DISPLAY THE NAME		/
	TAD	SIGNL3		/ GET SIGNAL IF THERE IS A NAME		/
	SNA CLA			/ IF NON ZERO HERE, THEN NO NAME	/
	JMP	DSPLN1		/ NO NAME, GO DISPLAY NEW NUMBER	/A037
DSPNM,									/
	CIFMNU								/
	JMS I	IOACAL							/
	 0								/
	 DCNAME			/ 'XXXXXXXXXXXXX'			/
	 1315								/
	 INBUF+1		/ NAME OF DOCUMENT			/
DSPLRT,
	DCA	CHARCT		/ CLEAR THE CHARACTER COUNTER		/M040
	TAD	ONE		/ GET A CONSTANT OF ONE			/
	DCA	BLKCNT		/ INIT BLOCK COUNTER			/
	CIFMNU								/
	JMS I	IOACAL							/
	 0								/
	 COPCNT			/ DISPLAY COPYING BLOCK #001		/
	 1515								/
	JMP I	DSPLNM		/ RETURN				/

/M039			SPACE WAR MOVE
/D039DSPLN1,			/ NO NAME, SO DISPLAY THE NEW NUMBER		/A037
/D039			/ THE NEW NUMBER IS ALREADY AT INBUF+1		/A037
/D039	CIFMNU
/D039	JMS I	IOACAL
/D039	 0
/D039	 NWNBRT			/ NEW NUMBER TEXT
/D039	 1315			/ POSITION ON SCREEN
/D039	 INBUF+1		/ BUFFER POINTER
/D039	JMP	DSPLRT		/ GO DISPLAY "COPYING BLOCK ..."

/***********************************************************************/A007
/									/A007
/	BLOCK COUNT ROUTINE. THIS ROUTINE WILL DISPLAY THE COUNT OF	/A007
/	OF THE BLOCK OF THE DOCUMENT BEING COPIED. EACH TIME IT IS 	/A007
/	ENTERED, IT WILL INCREMENT THE BLOCK COUNT AND DISPLAY IT.	/A007
/									/A007
/***********************************************************************/A007

DSPCNT,									/A007
	XX								/A007
	DCA	CHARCT	/ CLEAR THE CHARACTER COUNTER			/M040
	ISZ	BLKCNT	/ INCREMENT THE BLOCK COUNTER			/A007
	CIFMNU								/A007
	JMS I	IOACAL							/A007
	0								/A007
	BLOCKS								/A007
	IFDEF ENGLSH <1534>						/A007
	IFDEF ITALIAN<1532>
	IFDEF V30NOR <1523>						/A046
	IFDEF V30SWE <1523>
	BLKCNT								/A007
	JMP I	DSPCNT							/A007
CHARCT,	0								/M040
BLKCNT,	0								/A007

/***********************************************************************/M007
/									/M007
/	THIS ROUTINE WAS MOVED HERE TO MAKE ROOM ELSEWHERE.		/M007
/	IT MERELY PUTS A CHARACTER WHICH IS IN THE AC OUT TO		/M007
/	THE OUTPUT FILE. THE OUTPUT FILE HAVING BEEN PREVIOUSLY		/M007
/	OPEDNED FOR UPDATE.						/M007
/	IT WILL ALSO COUNT THE CHARACTERS BEING PUT OUT, AND GO TO	/A007
/	THE BLOCK COUNT DISPLAY ROUTINE WHENEVER THE CHARACTER COUNT	/A007
/	GETS TO 512(10), 1000(8), I.E. ONE BLOCK.			/A007
/									/M007
/***********************************************************************/M007

PDXCH,									/M007
	XX								/M007
	CDFMYF								/M007
	CIFFIO								/M007
	FILEIO								/M007
	XPUTST								/M007
	ISZ	CHARCT		/ INCREMENT THE CHARACTER COUNT		/M040
	TAD	CHARCT		/ GET THE CHAR COUNT			/M040
	TAD	M512		/ ADD IN MINUS 512(10)/100)(8)		/A007
	SMA CLA			/ IF MINUS, BLOCK STILL NOT FULL	/A007
	JMS	DSPCNT		/ IF ZERO, THEN BLOCK IS FULL		/A007
	JMP I	PDXCH							/M007

/COPIES INPUT FROM MENU FIELD TO INBUF FOR NO MEANING PROMPT
MVINPT,	XX
	CLA
	JMS CUCOPY	/GO COPY INPUT FROM MENU FIELD TO INBUF
	MUBUF+MNIBUF		/ADDRESS OF FROM FOR CUCOPY	/C042
	CDFMNU		/DATA FIELD OF FROM
	INBUF+1		/ADDRESS OF FOR FOR CUCOPY
	CDFMYF		/CHANGE DATA FIELD TO MINE
	STRLEN		/NUMBER OF WORDS TO COPY (STANDARD)
JMP I MVINPT		/RETURN TO CALLED
	

/*************************************************************************
/
/	THIS ROUTINE WILL INSERT THE NUMBER OF THE DRIVE PASSED TO IT IN
/	THE AC (IN ASCII) IN FRONT OF THE NAME OR NUMBER THAT THE USER
/	TYPED IN AT THE TERMINAL AND THEN SET DRIVE NUMBER WITH THE NAME
/	OR NUMBER OF THE FILE IN THE PROPER BUFFERS SO THAT THE ROUTINE
/	'FILNAM' OF MENU CAN USE IT AND GET THE FILE WANTED.
/
/**************************************************************************

FIXNAM,
	XX
	DCA	CUB1		/ GET BUFFER ADDR
	TAD	PERIOD		/ GET A  PERIOD ".'
	DCA	CUB1+1	/ PUT IT INTO BUFFER
	JMS	CUCOPY		/ GO COPY OVER FILENAME/NBR
FROMIN,	INBUF+1		/ FROM ADDR
	CDFMYF		/ FROM FIELD
	CUB1+2	/ TO FIELD
	CDFMYF		/ TO FIELD
	STRLEN		/ LENGTH OF MOVE
	JMS	CUCOPY	/ GO COPY IT BACK
	CUB1		/ FILENAME/NMBR WITH DRV. IN FRONT OF IT
	CDFMYF		/ FROM FIELD
	MUBUF+MNIBUF		/ TO ADDR				/C042
	CDFMNU		/ TO FIELD
	STRLEN		/ STRING LENGTH
	JMP I	FIXNAM

/ *********************************************************************	/A039
/
/	WINSTR - A CONTINUATION OF WINCHK, SETS UP TEXT STRING POINTERS	/A039
/		& PASSES CONTROL BACK TO ORIGINAL "CALLER"		/A039
/
/ *********************************************************************	/A039
WINSTR,	CDFMYF		/ BACK TO OUR FIELD				/A039
	TAD	WINSRC	/ GET WINNIE SOURCE FLAG			/A039
	SZA CLA		/ SKIP IF NOT WINNIE				/A039
	TAD (TXTARE-TXTDRV)	/ IS WINNIE SET OFFSET OF AREA TEXT IN AC/A039
	TAD (TXTDRV)	/ ADD IN POINTER TO DRIVE TEXT STRING		/A039
	DCA	DCDEV	/ & PLUG DIRECTLY INTO IOACAL SEQUENCE		/A039
	TAD	WINDST	/ GET WINNIE DESTINATION FLAG			/A039
	SZA CLA		/ SKIP IF NOT WINNIE				/A039
	TAD (TXTARE-TXTDRV)	/ IS WINNIE SET OFFSET OF AREA TEXT IN AC/A039
	TAD (TXTDRV)	/ ADD IN POINTER TO DRIVE TEXT STRING		/A039
	DCA	DSTDEV	/ & PLUG DIRECTLY INTO IOACAL SEQUENCE		/A039
	TAD	WINDST	/ GET WINNIE DESTINATION FLAG			/A039
	SZA CLA		/ SKIP IF NOT WINNIE				/A039
	TAD (TXTVOL-TXTDSK) / IS WINNIE SET OFFSET OF VOLUME TEXT IN AC	/A039
	TAD (TXTDSK)	/ ADD IN POINTER TO DISKETTE TEXT STRING	/A039
			/ & LEAVE IN AC TO BE SAVED BACK AT "WINRET"	/A039
	JMP	WINRET	/ GO BACK TO ORIGINAL "CALLER"			/A039
/-----------------------
	PAGE

/***********************************************************************
/
/	THE SITUATION IS AS FOLLOWS:
/		THE NAME OF THE DOCUMENT TO BE COPIED IS ALREADY IN THE
/	INDEX FILE OF THE DISKETTE TO WHICH THE USER WANTS IT COPIED.
/	THIS CODE SETS UP THE SIGNALS TO THE MAIN MENU CODE TO ASK THE USER
/	WHAT HE WANTS TO DO.  HE IS GIVEN THE FOLLOWING CHOICES:
/		1. WRITE TO THE TOP OF DOCUMENT (MAIN MENU RETURNS A 6 IN AC)
/		2. WRITE TO THE BOTTOM OF DOCUMENT(MAIN MENU RETURNS A 5 IN AC)
/		3. OVERWRITE THE DOCUMENT (MAIN MENU RETURNS A 4 IN AC)
/		4. BYPASS THE  DOCUMENT (MAIN MENU RETURNS A 3 IN AC)
/		5. RENAME THE DOCUMENT (MAIN MENU RETURNS A 2 IN AC)
/
/	BEFORE GOING TO MAIN MENU, THIS ROUTINE WILL SET UP MNTMP4 AND MNTMP5
/	TO 0 AND 1 RESPECTIVELY WHICH SIGNALS MAIN MENU TO DISPLAY THE
/	RIGHT QUESTIONS ASKING FOR THE ABOVE INFORMATION.
/
/	THEN CONTROL IS PASSED TO SUBROUTINE 'DTAO', WHICH CALLS MAIN MENU
/	AND PUTS THE VALUE RETURNED IN THE AC BY MAIN MENU INTO 'OPTION',
/	THE VALUE TELLING US WHAT TO DO.
/
/	PLEASE NOTE THAT THE VALUE AT 'OPTION' IS CHANGED BY THIS ROUTINE
/	TO THE VALUES GIVEN IN PARENTHESIS BELOW WHENEVER A WRITE-TO-TOP (0),
/	WRITE-TO-BOTTOM (1), OR OVERWRITE (-1) ARE REQUESTED. THESE LAST VALUES
/	ARE THE CODES WHICH ARE THE SIGNALS TO 'WPFILS' TO WRITE TO THE TOP,
/	BOTTOM, OR OVERWRITE THE DOCUMENT.
/	NOTE ALSO THAT THE VALUE 1, IS DEFAULTED TO BY SUBTRACTING -4
/	(THE VALUE MAIN MENU PASSES FOR AN OVERWRITE) FORM 5 (THE VALUE MAIN
/	MENU PASSES FOR A WRITE-TO-BOTTOM)
/
/*******************************************************************************

CTDDIN,		/ DOCUMENT ALREADY ON OUTPUT DISKETTE
	MQL
	AC0001		/ SIGNAL MAIN MENU TO READ TBO
	JMS	STTMPS	/ GO SET UP TO READ MAIN MENU
/
	TAD	TODRV		/DRIVE TO COPY TO		/A033
	CIA			/2'S COM			/A033
	TAD	FROMDR		/DRIVE TO COPY FROM		/A033
	SNA CLA			/ INPUT DRIVE=OUTPUT DRIVE?	/A033
	JMP	RENAME		/YES				/A033
	JMS	DTAO	/ GO ASK WHAT IS WANTED
	AC0006		/ GET A SIX TO CHECK FOR WRITE TO TOP
	CIA		/ COMPLEMENT IT TO COMPARE IT
	TAD	OPTION	/ IS OPTION A WRITE-TO-TOP?
	SNA CLA		/ IF NOT, FALL THRU
	JMP	ZOPTN	/ GO ZERO OPTION(SIGNAL FOR WRITE-TO-TOP)
	AC7776		/ GET A MINUS 2 TO CHECK FOR RENAME OPTION
	TAD	OPTION	/ GET OPTION TO CHECK IT
	SNA CLA		/ BYPASS JMP IF NOT RENAME
	JMP	RENAME	/ GO RENAME THE DOCUMENT
	AC7775		/ GET A MINUS 3 FOR CHECKING
	TAD	OPTION	/ ADD IN THE OPTION
	SNA CLA 		/ BYPASS JMP IF NOT  RETURN
	JMP	CUGSP	/ HE HIT RETURN
	AC0004		/ GET A +4 TO CHECK FOR OVERWRITE
	CIA		// CONVERT IT TO COMPARE
	TAD	OPTION	/ GET THE VALUE OF OPTION
	SZA CLA		/ IS IT AN OVERWRITE?
	JMP	SIZCK	/ NO, GO CHECK THE SIZE
	AC7777		/ GET A -1, WPFILS OVERWRITE CODE
ZOPTN,
	DCA	OPTION	/ PUT IT WHERE EVERYONE CAN GET AT IT
SIZCK,
	JMS	TSTSZ	/ GO SEE IF THERES ROOM ENOUGH
	JMP	NOROOM	/ GO TELL USER NO ROOM
DOIO,			/ SET UP TO DO THE IO
	TAD	SVIFNO	/ GET INPUT DOC AND DRV NBR
	JMS	OPENRD	/ GO OPEN THE FILE FOR READ ONLY
	TAD	SVOFNO	/ GET OUTPUT DOC AND DRV NBR
	MQL		/INOT MQ FOR OPEN
	TAD	OPTION	/ GET THE OPTION DESIRED
	CIFFIO
	FILEIO
	XDSKIN
	JMS	DSPLNM	/ GO DISPLAY THE NAME TO THE USER		/A007
	JMS	CPYFLE	/ GO COPY THE FILE
	JMP	GOLDMU	/ HE HIT GOLD HALT
	JMP	CUGSP	/ GO BACK FOR MORE

/  THE CODE BELOW ALLOWS THE USER TO RENAME THE DOCUMENT BECAUSE THE
/	OUTPUT DISKETTE ALREADY HAS A DOCUMNET OF THE NAME THAT'S ON
/	THE INPUT DISKETTE

RENAME,
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	CIFMNU
	JMS I	IOACAL	/ GET READY TO OUTPUT A MEASSAGE
	0
	TXCS3		/ ^P^S^P^S^P					/A037
	 1505
	 TXETND		/ ENTER A NEW NAME FOR THE DOC ETC.
	 1705
	 TXOR		/ "OR "
	 7777
	 TXPRCN		/ "PRESS RETURN TO CONTINUE TO NEXT
	JMS	ORGOLD	/ OR GOLD MNU
		ORAR
	CAM		/ USE COMBINED MICROINST OF CLA MQL TO SAVE 1 LO/A039
	AC7777		/ GET SIGNAL FOR CKINPT ROUTINE TELLING IT THAT WE
			/ WANT A NAME ONLY (NOT A NUMBER)
	DCA	RSIGN	/ PUT IT WHERE CKINPT CAN GET IT
	AC0002		/ SIGNAL MAIN MENU TO READ ONLY (DON'T DO FILNAM)
	JMS	STTMPS	/ GO SET MAIN MENU SIGNALS
	JMS	READMU	/ GO TO MAIN MENU TO READ WHAT USER PUT IN
	JMP	GOLDMU	/ HE HIT GOLD MENU, GO GET OUTY
	CDFMYF
	JMS	CPMNOV	/ GO COPY THE INPUT OVER FROM MENU FIELD
	JMS	CKINPT	/ GO CHECK WHAT HE PUT IN
	JMP	CUGSP	/ HE HIT RETURN, GO GET NEXT FILE
	JMP	GARBAG	/ HE PUT IN A NUMBER, BAD, GO TELL HIM
	DCA	RSIGN	/ CLEAR SIGNAL THAT WE'RE DOING A NAME ONLY FOR	/A019
/		FOR CKINPT ROUTINE					/A019
	TAD	TODRV	/ GET DRIVE WE ARE COPYING TO
	TAD	OSXTY	/ MAKE IT AN ASCII NUMBER
	JMS	FIXNAM	/ GO FIX UP THE NAME
	JMP	CTDIN1	/ GO CONTINUE PROCESSING WITH NEW NAME
GARBAG,			/ HE TYPED IN GARBAGE, TELL HIM AND ASK AGAIN
	JMS	MVINPT	/						/A037
	JMS	NOMEAN	/						/A037
	JMP	RENAME	/ GO ASK AGAIN

/***********************************************************************/
/									/
/	GTNBR --  GET THE NEXT AVAILABLE FILE NUMBER FROM THE DRIVE	/
/	THAT WE ARE COPYING TO SO THAT WE CAN COPY THE FILE WHEN THE	/
/	USER DOESN'T WANT TO NAME THE FILE.				/
/									/
/	IF THERE ARE NO MORE AVAILABLE DOCUMENT NUMBERS THEN	/	/
/	WE WILL JUMP TO NSPCMSG.  THIS IS A TEMPORARY FIX	/A037	/
/	FOR A HIGH PRIORITY BUG.  WE USED TO JUMP TO NOROOM	/A037	/
/	WHICH GIVES THE WRONG MESSAGE AND DOESN'T PROPERLY	/A037	/
/	HANDLE ALL EXITS					/A037	/
/	JUMPING TO NSPCMSG HAS THE DISADVANTAGE OF HAVING THE	/A037	/
/	ONLY EXIT BE TO MAIN MENU--THE COPY CANNOT CONTINUE TO	/A037	/
/	THE NEXT DOCUMENT (COPY SOME OR ALL) WHICH COULD BE	/A037	/
/	COPIED IF IT EXISTED ON IN A TBO SITUATION (E ELIMINATED/A037	/
/	THAT'S ALL FOLKS.  THERE'S ONLY SO MUCH YOU CAN DO	/A037	/
/	WITH SHIP DATE BREATHING DOWN YOUR NECK		HLP	/A037	/
/									/
/***********************************************************************/

GTNBR,	XX
	TAD	TODRV	/ GET THE 'TO' DRIVE NUMBER
	JMS	GTHMBL	/ GET THE HOME BLOCK AND SET IT UP FOR PROCESSING
	CUB1		/ INPUT BUFFER ADDRESS
	JMS	GTNXAV	/ GO GET THE NEXT AVAILABLE FILE NUMBER
	CUB1+12		/ WHERE THE FILE NUMBERS ARE IN BUFFER
	SNA		/ NON-ZERO HERE MEANS WE GOT ONE
	JMP	NSPCMSG	/ ZERO MEANS NONE LEFT.  SEE COMMENTS ABOVE	/C037
	JMS	DONBR	/ GO CONVERT IT TO DECIMAL
	CUPFNM		/ ADDRESS WHERE ASCII NUMBER WILL BE PUT
	JMP I	GTNBR	/ RETURN

COPOVR,
	XX
	JMS	CUCOPY
	CUPFNM
	CDFMYF
	INBUF+1
	CDFMYF
	STRLEN-1
	JMP I	COPOVR

/*************************************************************************
/
/	THIS ROUTINE SETS UP 'MNTMP4' AND 'MNTMP5' TO THE VALUES PASSED
/	TO IT IN THE MQ AND AC.  THIS IS USED PRIOR TO GOING TO MAIN MENU
/	TO TELL THE MAIN MENU CODE WHAT TO DO. BEFORE USING 'READMU'
/	YOU MUST SET MNTMP4 AND MNTMP5 SO THAT MAIN MENU KNOWS WHAT TO DO.
/
/**************************************************************************

STTMPS,	XX		/ SET PARAMETERS FOR MAIN MENU
	CDFMNU
	DCA I	(MUBUF+MNTMP4)
	MQA
	DCA I	(MUBUF+MNTMP5)
	CDFMYF
	JMP I	STTMPS	/ GO BACK
/--------------------
	PAGE

NOROOM,		/ NOT ENOUGH ROOM ON FLOPPY TO HANDLE FILE
	JMS	TOSMALL	/ GO PUT THE MESSAGE
	TODRV		/ DRIVE NUMBER WE'RE CPYING TO
	INBUF+1		/ AREA WHERE NAME OF FILE IS
	CIFMNU
	JMS I	IOACAL
	0
	TARTN
	2005
	JMS	ORGOLD
		ORAR
	JMS	KBRD
	JMP	CUGSP	/ GO ASK FOR ANOTHER NAME TO COPY


/ READ A CHARACTER FROM THE  INPUT DOCUMENT
/
/	JMS RDNXCH; EOF RETURNS TO HERE; OK RETURNS TO HERE
/
RDNXCH,	.; CLA; CDFMYF; CIFFIO; FILEIO; XRDFNC
	SPA;CLA			/ Treat errors like E-O-F.		/A002
	SZA
	ISZ	RDNXCH
	JMP I RDNXCH

/**************************************************************************
/
/	 THIS ROUTINE WILL GET THE NEXT AVAILABLE FILE NUMBER ON A DISKET
/	IT LOOKS FOR THE FIRST ZERO WORD IN THE HOME BLOCK. AS IT LOKS AT
/	EACH WORD OF THE AREA OF THE HOME BLOCK THAT CONATAINS THE HEADER
/	BLOCK NUMBERS FOR THE FILE, IT INCREMENTS A COUNTER. WHEN IT FINDS
/	A ZERO IT PUTS A 1 IN THE WORD IN THE HEADER BLOCK TO INDICATE
/	THAT THE FILE IS IN USE, AND RETURNS.
/		CALLED BY:
/		JMS GTNXAV
/		ADDR OF BUFFER OF HOME BLOCK +12 (THE AREA WHERE FILE NOS ARE.
/				NOTE: 12 ABOVE IS OCTAL
/
/******************************************************************************

GTNXAV,
	XX
	TAD I	GTNXAV		/ GET THE ADDR WHERE FILE NOS ARE
	ISZ	GTNXAV		/ TO RETURN ADDRESS
	DCA	X0		/ PUT ADDR WHERE FILE NOS ARE IN INDEX
	IAC
	DCA	COUNT1		/ INITALIZE THE COUNT
GTNXA1,
	ISZ	COUNT1		/ INCREMENT THE COUNT
	TAD I	X0		/ GET THE HEADER BLOCK FORTHE FILE
	SNA			/ IF NOT ZERO, THEN ITS THERE
	JMP	GTTN		/ WE'VE GOT ONE
	SMA CLA			/ ARE WE AT END OF FILE AREA?
	JMP	GTNXA1		/ GO GET ANOTHER ONE
	JMP I	GTNXAV		/ NO-SKIP RETURN
GTTN,
	AC7777			/ MINUS ONE TO DECREMENT INDEX
	TAD	X0		/ DECREMENT INDEX
	DCA	X0
	IAC			/ SIGNAL FILE NUMBER IN USE
	DCA I	X0
	TAD	COUNT1		/ GET THE FILE NUMBER
	JMP I	GTNXAV		/ RETURN
COUNT1=T1			/ NEXT FILE NUMBER
	

/******************************************************************************
/
/	THIS ROUTINE WILL GET THE HOME BLOCKS OF THE DISKETTE INTO MEMORY,
/	AND SET IT UP SO THE ROUTINE THAT GET NEXT FILE NUMBER WILL BE ABLE
/	TO FUNCTION.  CALLED BY:
/		TAD	DRIVENO						/C037
/		JMS	GTHMBL
/		BUFFER ADDRESS
/	THE ROUTINE PUTS A MINUS ONE AT END OF THE FILE NUMBER AREA SO THAT
/	WE CAN KNOW WHEN WE ARE OUT OF FILE NUMBERS
/
/******************************************************************************

GTHMBL,
	XX
				/ DRIVE NO IS IN AC AT CALL		/C037
	JMS	GTDENS		/ GO GET DRIVE AND CDF INTO Q-BLOCK
				/ ESTABLISH THE DENSITY OF THE DRIVE
	TAD I	GTHMBL		/ GET THE BUFFER ADDRESS
	DCA	QUQBLK+RXQBAD		/ PUT IT INTO Q-BLOCK
	TAD	(RXBDIR)	/ GET BLOCK NUMBER OF HOME BLOCK
	DCA	QUQBLK+RXQBLK
	TAD	(RXERD)		/ SET THE FUNCTION TO READ
	DCA	QUQBLK+RXQFNC	/ PUT IT INTO Q-BLOCK
	JMS	QURX		/ GO READ THE HOME BLOCK
	CLA
	TAD I	GTHMBL		/ GET BUFFER ADDRESS AGAIN
	TAD	(322)		/ POSITITON TO THE END OF FILE NUMBERS AREA
	DCA	TADIPL		/ PUT IT TO TAD THRU
	AC7777
	DCA I	TADIPL		/ PUT STOPPER INTO AREA
	ISZ	GTHMBL		/ GET TO RETURN ADDR
	JMP I	GTHMBL		/ GO BACK
TADIPL=T1		/ PLACE TO INDIRECT HRU

/***************************************************************************
/
/	THIS ROTUTINE WILL SEARCH FOR A PARTICULAR SEQUENCE OF CHARACTERS
/	ON A FILE OPENED BY RDFILE.  THE ADDRESS OF THE SEQUENCE OF
/	CHARACTERS TO BE SEARCHED FOR SHOULD FOLLOW THE JMS INSTRUCTION
/	THAT CALLS THIS ROUTINE. CALL IT AS FOLLOWS:
/			JMS  NMSRC
/			ADDRESS OF STRING TO SEARCH FOR
/			WHERE TO GO AT EOF
/			RETURN POINT WHEN STRING IS GOTTEN
/
/***************************************************************************

NMSRC,
	XX
NMSRC1,
	TAD I	NMSRC		/ GET THE THING TO SEARCH FOR
	DCA	NMISSP		/ SAVE THE STRING POINTER
NMSRC2,
	JMS	RDNXCH		/ GO GET A CHARACTER FOR THE FILE
	JMP	NMSRC3		/ END OF FILE
	CIA			/ COMPLEMENT THE CHAR
	TAD I	NMISSP		/ IS IT EQUAL?
	SZA CLA
	JMP	NMSRC1		/ NO, GO RE-INITIALIZE
	ISZ	NMISSP		/ BUMP UP TO NEXT CHAR OF STRING
	TAD I	NMISSP		/ THIS THE END OF THE STRING?
	SZA CLA
	JMP	NMSRC2		/ NO, GO CHECK NEXT CHARACTER
	ISZ	NMSRC		/ YES, AND WE HAVE A MATCH
NMSRC3,
	ISZ	NMSRC		/ END OF FILE RETURN (ONE ISZ ONLY)
	JMP I	NMSRC		/ GO BACK
NMISSP=T1			/ CHAR STRING COUNTER

/
/	A ROUTINE THAT WILL READ ASCII NUMBER AND CONVERT IT TO BINARY.
/	USED TO CONVERT FILE NUMBERS THAT EXIST ON THE INDEX FILE.
/	CALL IT AS FOLLOWS:
/			JMS   GTNUM
/			EOF RETURN
/			NORMAL RETURN (GOT NUMBER)
/
/******************************************************************************

GTNUM,
	XX
	DCA	GTNUMV		/ INIT BINARY TO ZERO
GTNUM1,
	JMS	RDNXCH		/ GO GET A FILE CHARACTER
	JMP I	GTNUM		/ END OF FILE RETURN
	TAD	(-72)		/ IS IT A NUMBER?
	SMA			/ IT MIGHT BE IF IT IS MINUS HERE
	JMP	GTNUMD		/ ITS NOT, SO WE'RE DONE
	TAD	(LF)		/ IS IT A NUMBER?
	SPA			/ IF ITS POSITIVE HERE THEN IT IS
	JMP 	GTNUMD		/ IF IT ISN'T, WE'RE ALL DONE
	DCA	T1		/ STORE THE NUMBER
	TAD	GTNUMV		/ GET VALUE OF PREVIOUS NUMBER (IF ANY)
	CLL RTL			/ MULTIPLY BY FOUR
	TAD	GTNUMV		/ ADD IN THE ORIGINAL NUMBER
	CLL RAL			/ DIVIDE BY 2
	TAD	T1		/ ADD IN THE NEW NUMBER
	DCA	GTNUMV		/ STORE IT FOR NEXT NUMBER
	JMP	GTNUM1		/ GO DO NEXT DIGIT
GTNUMD,

	CLA
	TAD	GTNUMV		/ GET THE VALUE OF THE NUMBER IN AC
	ISZ	GTNUM		/ NORMAL RETURN
	JMP I	GTNUM
GTNUMV=T2			/ RECONSTRUCTED BINARY OF THE DECIMAL ASCII

			/ CODE MOVED HERE FOR SPACE REASONS		/M039
DSPLN1,			/ NO NAME, SO DISPLAY THE NEW NUMBER		/A037/M039
			/ THE NEW NUMBER IS ALREADY AT INBUF+1		/A037/M039
	CIFMNU								/M039
	JMS I	IOACAL							/M039
	 0								/M039
	 NWNBRT			/ NEW NUMBER TEXT			/M039
	 1315			/ POSITION ON SCREEN			/M039
	 INBUF+1		/ BUFFER POINTER			/M039
	JMP	DSPLRT		/ GO DISPLAY "COPYING BLOCK ..."	/M039

NMIBN,	"<-200;"N-200+40;">-200;0	/ <n> CONSTANT
NMIBNO,	"<-200;"#-200;">-200;0		/ <#> CONSTANT
/--------------------
	PAGE

/**********************************************************************
/
/	THIS ROUTINE RINGS THE BELL ON THE TERMINAL AND RETURNS
/
/**********************************************************************

RBELL,	XX
	CIFMNU
	JMS I IOACAL
	0
	ASTRING
	BELTXT
	JMP I RBELL


/***********************************************************************
/
/	THIS ROUTINE ASKS THE USER WHETHER OR NOT HE WANTS TO COPY
/	A DOCUMENT DURING A COPY SOME OPERATION.  IT WILL DISPLAY
/	THE NUMBER AND NAME (IF ANY) THEN ASK HIM TO TYPE A "Y"
/	IF HE WANTS TO COPY IT, OR HIT RETURN IF HE WANTS TO GO ON
/	TO THE NEXT DOCUMENT WITHOUT COPYING, OR GOLD MENU IF HE
/	IS THROUGH COPYING.
/
/****************************************************************************
CPWISH,
	XX
	DCA	CPWIS1	/ SAVE DOCUMENT NUMBER IN DISPLAY STATEMENT
	TAD I 	CPWISH
	DCA	CPWIS2	/ PUT THE ADDRESS OF THE NAME TO BE DISPLAYED
CPWISR,									/A027
	JMS I	TOPSC	/ GO ERASE AND DISP '--COPY DOCUMENT--'		/A018
	CIFMNU
	JMS I	IOACAL
	0
	DYWTC		/ DO YOU WISH TO COPY DOCUMNET NBR X
	1115
	CPWIS1,	0		/ DOCUMNET NUMBER
	TAD I	CPWISH	/ DOES THE NAME EXIST?
	SNA CLA		/ IF NOT DON'T DISPALY IT
	JMP	NONAM2	
	CIFMNU
	JMS I	IOACAL
	0
	DCNAME
	1315		/ CURSOR POSITION
CPWIS2,	0		/ NAME OF THE DOCUMENT
NONAM2,
	JMS	MSIYDT	/ GO DISPLAY MESSAGE 				/A012
	JMS	WISHIN	/ GO CHECK THE RESPONSE
	JMP	GOLDMU	/ HE HIT GOLD MENU
	JMP	CUGSP	/ HIT RETURN, HE DIDN'T WANT TO COPY
	JMP	CPWIS3	/ NO MEANING TO WHAT HE TYPED IN		/A027
	JMS	COPOVR	/ GO COPY BACK WHAT WAS IN INBUF		/A022
	ISZ	CPWISH	/ BUMP UP TO REURN ADDRESS
	JMP I	CPWISH
CPWIS3,									/A027
	JMS	COPOVR	/ GO RESTORE INBUF				/A027
	JMP	CPWISR	/ GO REPEAT THE QUESTION			/A027

/**************************************************************************
/
/	THIS ROUTINE CHECKS THE INITAL INPUT ON A COPY ONE OPERATION
/	IT WILL DISCARD ANY [, CURLY BRACKET, OR X. INPUTS.
/	IT WILL CHECK TO SEE IF A DOCUMENT NUMBER WAS PUT IN OR A
/	DOCUMENT NAME WAS PUT IN. IF ONLY A [, CURLY BRACKET OR X. WERE PUT
/	IN, IT ISSUES THE NOMEANING MESSAGE. IF NO ARGUMENT IS PUT IN
/	IT WILL RE-ISSUE THE ORIGINAL MESSAGE.
/
/****************************************************************************
CKINPT,
	XX
	TAD	(CUPFNM)	/ GET ADDR WHERE INPUT COPIED TO
	DCA	T1		/ PUT IT FOR INDIRECTING THRU
	JMS	NXACLL		/ GO GET THE ARGUMENT
	JMP	NOARGT		/ GO HERE IF NO ARGUMENT
	JMS	CVDCLL		/ GO SEE IF ITS A NUMBER
	JMP	CURLY1		/ NOT A NBR, GO CHECK CURLY BRACKET
	JMS	NXACLL		/ GO GET THE NEXT ARGUMENT
	JMP	ITSNBR		/ YEAH, NO ARG, ITS A NUMBERED DOC
	CLA			/ ARGUMENT GOTTEN, SEE WHAT IT IS
	TAD	INBUF+1		/ GET THE ARGUMNET
	CIA			/ COMPLEMENT FOR COMPARE
	TAD	PERIOD		/ IS IT A PERIOD
	SZA CLA			/ YES.
	JMP	CURLY2		/ NO, GO SEE IF ITS A CURLY BRACKET
NMNGER,									/C003
	JMS	COPOVR		/ DOCUMENT NAME HAS A NBR. IN FRONT OF IT/C013
	JMP	NERR		/ GO TELL NO MEANING TO WHAT HE TYPED	/C003
	JMS	NXACLL		/ GO GET NEXT ARGUMENT
	JMP	NERR		/ NO MEANING ERROR
	JMS	CVDCLL		/ GO SEE IF ITS A NUMBER
	JMP	ITSOK		/ NOT A NUMBER, MUST BE A NAME
	JMP	ITSNBR
ITSOK,
	ISZ	SIGNL3	/ SIGNAL THAT USER GAVE DOC A NAME		/A007
	JMS	COPOVR		/ GO MOVE IT OVER TO INBUF		/C013
ITSOK1,
	ISZ	CKINPT
NERR,
	ISZ	CKINPT
NOARGT,
	JMP I	CKINPT		/ RETURN
CURLY,
	ACL			/ RELOAD CHR			/A037	/C038
CURLY1,	TAD	(-173)		/ IS IT A CURLY BRACKET?
	SZA
	TAD	(173-133)	/ IS IT A SQUARE BRACKET?
	SZA CLA
	JMP	ITSOK		/ NEITHER, MUST BE A NAME
	JMP	NMNGER		/ GO DO NO MEANING MESSAGE		/C003

CURLY2,	TAD	INBUF+1		/ REFETCH CHR				/A037
	JMP	CURLY1		/ CONTINUE				/A037

ITSNBR,
	AC7777			/ SIGNAL THAT WE'RE DOING A NUMBERED FILE
	DCA	SIGNL
	TAD	RSIGN		/ ARE WE SUPPOSED TO BE DOING A NAME ONLY?
	SMA CLA			/ YES, GO TELL HIM HIS INPUT IS GARBAGE.
	JMP	SIG1		/ NO, GO SEE IF THERE IS A NAME FOR THE DOC
	DCA	SIGNL		/ CLEAR THE NUMBERED FILE FLAG
	DCA	RSIGN		/ CLEAR THE SIGNAL FOR NEXT TIME
	JMP	NERR		/ GO TELL HIM HIS INPUT IS GARBAGE
SIG1,
	AC7777		/ GET A MINUS 1 TO CHECK IF WE'RE DOING COPY ONE
	TAD	COPYTP	/ GET THE COPY TYPE WE'RE DOING
	SZA CLA		/ IF ZERO HERE, THEN WE'RE DOING A COPY ONE
	JMP	ITSOK	/ RETURN OK
	TAD	DCNBR1		/ GET DCNBR SAVED IN CVDCLL		/A038
	DCA	DCNBR		/ AND PASS TO DTNAM			/A038
	TAD	FROMDR		/ GET THE DRIVE NUMBER WE'RE COPYING FROM
	JMS	DTNAM		/ GO GET THE NAME OF THE FILE
	JMS	COPOVR		/ GO MOVE THE FILENAME TO INBUF		/A025
	JMP	ITSOK1		/ RETURN

CVDCLL,
	XX		/ CHECKS FOR A NUMBER
	CIFMNU
	JMS I	CVDCAL
	INBUF+1
	JMP I	CVDCLL
/D037	MQA
/D037	DCA	DCNBR
	DCA	DCNBR1		/ SAVE MORE LOCALLY			/A038
	ISZ	CVDCLL
	JMP I	CVDCLL

NXACLL,			/ GET THE NEXT ARGUMENT
	XX
	CIFMNU
	JMS I	NXACAL
	T1
	INBUF
	JMP I	NXACLL	/ NO MORE ARGUMENTS IN LIST
	ISZ	NXACLL	/ THERE IS AN ARGUMENT, AND ITS IN INBUF NOW
	JMP I	NXACLL

DCNBR1,	XX								/A038

/***********************************************************************
/
/	THIS ROUTINE WILL DISPALY THE NAME OF A DOCUMENT WHEN THE DOCUMENT
/	NAME ALREADY APPEARS IN THE OUTPUT DISKETTE SO THAT THE USER CAN
/	CHOOSE WHETHER HE WANTS TO COPY TO THE TOP OR BOTTOM, OR OVERWRITE
/	IT, OR RENAME IT.
/
/****************************************************************************

DONAME,
	XX
	CIFMNU
	JMS I	IOACAL
	0
	DCNAME
	505
	INBUF+1
	JMP I	DONAME
/--------------------
	PAGE

/	***** W A R N I N G ********** W A R N I N G ****************** /A039

/		ALL LINKS ON THIS PAGE MUST BE HAND CODED !!!!!		/A039

ERRWIN,	XX			/ CHECKS IF ERROR RETURN ON A GET DENSIT/A039
				/  CALL WAS A WINNIE AREA		/A039
	TAD I	DRVERR		/ IS THE ERROR ON THE SOURCE DRIVE??	/A039
	CIA			/ NEGATE THE DRIVE WHERE ERROR OCCURRED	/A039
	TAD	FROMDRV		/ GET SOURCE DRIVE #			/A039
	SNA CLA			/ IF AC .NE. 0 NOT A SOURCE ERROR, SKIP	/A039
	TAD	WINSRC		/ WAS SOURCE ERROR, WAS IT A WINNIE?	/A039
	SZA			/ NO NOT A WINNIE SOURCE ERROR, SKIP	/A039
	JMP	WINERR		/ WAS A WINNIE SOURCE ERROR, GO HANDLE	/A039
	TAD I	DRVERR		/ IS THE ERROR ON THE DESTN. DRIVE??	/A039
	CIA			/ NEGATE THE DRIVE WHERE ERROR OCCURRED	/A039
	TAD	TODRV		/ GET DESTN. DRIVE #			/A039
	SNA CLA			/ IF AC .NE. 0 NOT A DESTN. ERROR, SKIP	/A039
	TAD	WINDST		/ WAS DESTN. ERROR, WAS IT A WINNIE?	/A039
	SZA			/ NO NOT A WINNIE DESTN. ERROR, SKIP	/A039
	JMP	WINERR		/ WAS A WINNIE DESTN. ERROR, GO HANDLE	/A039
	JMP I	ERRWIN		/ NOT A WINNIE ERROR MUST BE A DISKETTE	/A039

DRVERR,	DRVDSP			/ POINTER TO DEV # WHICH FAILED GETDENS /A039

/ *********************************************************************	/A039
/									/A039
/	WINERR - INPUT: AC=DEVICE # IN ERROR				/A039
/									/A039
/		REPORTS UNASSIGNED WINNIE AREA # & REQUESTS USER TO	/A039
/		PRESS GOLD MENU .....					/A039
/  *** N.B. *** IF LINKS ARE NECESSARY WRITE THEM IN BY HAND OR USE	/A039
/		BASE PAGE.  						/A039
/									/A039
/ *********************************************************************	/A039
WINERR,	DCA	WINDRV	/ PUT DEVICE # INTO IOACAL SEQUENCE		/A039
	CIFMNU								/A039
	JMS I	IOACAL	/ GO DISPLAY "AREA ? DOES NOT HAVE A VOLUME..."	/A039
		0
		WINTXT
		1505
		TXTARE
WINDRV,		0
		TXTVOL
	JMP I	MENRET	/ GO ASK FOR GOLD MENU RESPONSE & RETURN TO MENU/A039
MENRET,	PGOLD		/ LINK FOR ABOVE "JMP I" INSTRUCTION		/A039

TXCS1,	TEXT '^P^S'			/ GENERAL PURPOSE CONTROL STRING/A037
TXCS2,	TEXT '^P^S^P^S'			/ GENERAL PURPOSE CONTROL STRING/A037
TXCS3,	TEXT '^P^S^P^S^P^S'		/ GENERAL PURPOSE CONTROL STRING/A037

TXOR,	IFDEF ENGLSH <TEXT 'OR '>
	IFDEF ITALIAN <TEXT 'O '>					/A037
	IFDEF V30NOR < TEXT 'EL '>					/A046
	IFDEF V30SWE < TEXT ''>

CPY,	IFDEF ENGLSH <TEXT '^P-- &C&O&P&Y &D&O&C&U&M&E&N&T --'>
	IFDEF ITALIAN<TEXT '^P-- !&COPIA !&DOCUMENTO --'>
	IFDEF V30NOR <TEXT '^P-- !&KOPIERE !&DOKUMENT --'>		/A046
	IFDEF V30SWE <TEXT '^P-- KOPIERA DOKUMENT --'>

SPRMPT,	IFDEF ENGLSH <
	TEXT '&PLEASE ENTER THE &NAME OR &NUMBER '			
	*.-1
	TEXT ' OF THE DOCUMENT YOU NOW WISH TO COPY'			/C034			
	>
	IFDEF ITALIAN <
	TEXT '&INTRODURRE NOME O NUMERO DEL DOCUMENTO DA COPIARE'
	>
	IFDEF V30NOR <			
	TEXT '&SKRIV NAVN EL. NUMMER'					/A046
	*.-1
	TEXT ' P\E DET DOKUMENTET DU VIL KOPIERE'			/A046
	>
	IFDEF V30SWE <
	TEXT '&SKRIV NAMNET ELLER NUMRET P\E DET'
	*.-1
	TEXT ' DOKUMENT DU VILL KOPIERA'
	>

TXTIDN,	IFDEF ENGLSH <TEXT '^P&DOCUMENT "^A"^P^S'>			/A037
	IFDEF ITALIAN<TEXT '^P&IL DOCUMENTO "^A"^P^S'>
	IFDEF V30NOR <TEXT '^P&DOKUMENT "^A"^P^S'>			/A046
	IFDEF V30SWE <TEXT '^P&DOKUMENT "^A"^P^S'>

TXTID1,	IFDEF ENGLSH <TEXT 'HAS AN ILLEGAL DOCUMENT NUMBER'>		/A037
	IFDEF ITALIAN<TEXT 'HA UN NUMERO DOCUMENTO ILLEGALE.'>
	IFDEF V30NOR <TEXT 'HAR IKKE GYLDIG DOK.-NUMMER'>		/A046
	IFDEF V30SWE <TEXT 'HAR FELAKTIGT NUMMER'>

GLST,	IFDEF ENGLSH <
	TEXT '^P&DOCUMENT NUMBER ^D HAS NO NAME '			/C043
	*.-1									
	TEXT '^P&ENTER A NAME OR NUMBER AND &PRESS &R&E&T&U&R&N '			
	*.-1									
	TEXT '^P&OR JUST &PRESS &R&E&T&U&R&N TO ASSIGN A NEW NUMBER '
	>
	IFDEF ITALIAN <
	TEXT '^P&NUMERO DOCUMENTO ^D HA NO NOME. '
	*.-1
	TEXT '^P&INTRODURRE NOME O NUMERO E PREMERE !&RITORNO. '
	*.-1
	TEXT '^P&PREMERE !&RITORNO PER ASSEGNA UN NUOVO NUMERO.'
	>
	IFDEF V30NOR <
	TEXT '^P&DOKUMENT NUMMER ^D HAR IKKE NOE NAVN '			/A046
	*.-1
	TEXT '^P&SKRIV INN ET NAVN ELLER NUMMER OG TRYKK P\E !&RETUR'	/A046
	*.-1
	TEXT '^PEL. TRYKK P\E !&RETUR FOR \E GI DET ET NYTT NUMMER'	/A046
	>
	IFDEF V30SWE <
	TEXT '^P&DOKUMENT NUMMER ^D HAR IGNET NAMN'
	*.-1
	TEXT '^P&SKRIV ETT NAMN ELLER NUMMER OCH TRYCK P\E RETUR'
	*.-1
	TEXT '^P&F\VR ATT TILLDELA ETT NYTT NUMMER, TRYCK P\E RETUR '
	>	/ END IFDEF V30SWE

SYSTM,	IFDEF ENGLSH <
	TEXT '^P&IF NECESSARY, REMOVE THE SYSTEM DISKETTE FROM DRIVE 0 AND THEN'
	>
	IFDEF ITALIAN <
	TEXT /^P&SE NECESSARIO, TOGLIERE IL DISCO SISTEMA DALL'UNIT\@ 0 \H/
	>
	IFDEF V30NOR <
	TEXT '^P&TA EVT. SYSTEMDISKETTEN UT AV STASJON 0 OG'>		/A046
	IFDEF V30SWE <
	TEXT '^P&OM N\VDV\DNDIGT, TA UT SYSTEMDISKETTEN UR ENHET O OCH'>	

AITDT,	IFDEF ENGLSH <TEXT '^PINSERT THE DISKETTE THAT '>
	IFDEF ITALIAN<TEXT '^PINSERIRE IL DICHETTO '>
	IFDEF V30NOR <TEXT '^PSETT INN DISKETTEN '>			/A046
	IFDEF V30SWE <TEXT '^PS\DTT I DISKETTEN SOM'>

RECEV,	IFDEF ENGLSH <TEXT '^PIS TO RECEIVE THE COPIES'>
	IFDEF ITALIAN<TEXT '^PPER LA COPIA'>
	IFDEF V30NOR <TEXT '^PDOKUMENTENE SKAL KOPIERES !&TIL'>		/A046
	IFDEF V30SWE <TEXT '^PSKA TA EMOT KOPIORNA'>

COPYF,	IFDEF ENGLSH <TEXT '^PCONTAINS THE DOCUMENTS TO BE COPIED'>
	IFDEF ITALIAN<TEXT /^PCHE CONTIENE I DOCUMENTI DA COPIARE/>
	IFDEF V30NOR <TEXT '^PDOKUMENTENE SKAL KOPIERES !&FRA'>		/A046
	IFDEF V30SWE <TEXT '^PINNEH\ELLER DE DOKUMENT SOM SKA KOPIERAS'>

DEXTS,	IFDEF ENGLSH <TEXT '^P&DOCUMENT NUMBER !D ALREADY EXISTS. '>	/C043
	IFDEF ITALIAN<TEXT '^P&NUMERO DOCUMENTO !D GI\@ ESISTENTE.'>
	IFDEF V30NOR <TEXT '^P&DOKUMENT NMMER !D FINNES ALLEREDE.'>	/A046
	IFDEF V30SWE <TEXT '&DOKUMENT NUMMER !D FINNS REDAN'>

DREST,	IFDEF ENGLSH <
	TEXT '^P&HOW WOULD YOU LIKE THE DOCUMENT MODIFIED?'
	*.-1
	TEXT '^P&T = &ADD TEXT TO THE TOP '
	*.-1
	TEXT '^P&B = &ADD TEXT TO THE BOTTOM'	
	*.-1	
	TEXT '^P&O = &OVERWRITE THE DOCUMENT'
	*.-1	
	TEXT '^P&E = &ENTER A NEW NAME FOR THIS DOCUMENT'
	*.-1
	TEXT '^P&TYPE THE LETTER AND &PRESS &R&E&T&U&R&N, OR JUST '
	*.-1
	TEXT '^P&PRESS &R&E&T&U&R&N TO CONTINUE TO THE NEXT DOCUMENT,'
	>
	IFDEF ITALIAN <
	TEXT /^P&MODALIT\@ MODIFICA: /
	*.-1
	TEXT /^P&I = &INSERIRE IL TESTO ALL'INIZIO /
	*.-1
	TEXT /^P&F = &INSERIRE IL TESTO ALLA FINE /
	*.-1
	TEXT /^P&S = &SOVRASCRITTURA /
	*.-1
	TEXT /^P&N = &NUOVO NOME PER IL DOCUMENTO /
	*.-1
	TEXT /^P&SCEGLIERE UN'OPZIONE E PREMERE !&RITORNO, /
	*.-1
	TEXT /^P&PREMERE !&RITORNO PER PASSARE AL DOCUMENTO SUCCESSIVO,/
	>

	IFDEF V30NOR <						/A046
	TEXT '^P&HVORDAN VIL DE ENDRE DOKUMENTET? '
	*.-1
	TEXT '^P&T = &TILF\XYE TEKST P\E TOPPEN '
	*.-1
	TEXT '^P&B = &TILF\XYE TEKST P\E BUNNEN '	
	*.-1	
	TEXT '^P&O = &OVERSKRIVE DOKUMENTET'
	*.-1	
	TEXT '^P&N = &GI DETTE DOKUMENTET NYTT VAVN '
	*.-1
	TEXT '^P&VELG ALTERNATIV OG TRYKK P\E !&RETUR EL.'
	*.-1
	TEXT '^P&TRYKK P\E !&RETUR FOR \E G\E TIL NESTE DOKUMENT'
	>

	IFDEF V30SWE <
	TEXT '^P&HUR SKA DOKUMENTEN MODIFIERAS? '
	*.-1
	TEXT '^P&B = &L\DGGA TILL TEXT I B\VRJAN'
	*.-1
	TEXT '^P&S = &L\DGGA TILL TEXT I SLUTET '	
	*.-1	
	TEXT '^P&\V = &SKRIVA \VVER DOKUMENTET'
	*.-1	
	TEXT '^P&N = &SKRIV ETT NYTT DOKUMENTAMN'
	*.-1
	TEXT '^P&SKRIV KODEN OCH TRYCK P\E RETUR'
	*.-1
	TEXT '^P&F\VR ATT FORTS\DTTA TILL N\DSTA DOKUMENT, TRYCK P\E RETUR'
	>	/ END IFDEF V30SWE


NDOC,	IFDEF ENGLSH <TEXT '^P&^S ^D DOES NOT HAVE A DOCUMENT NAMED ^A.'>/C039
	IFDEF ITALIAN<TEXT /^P&^S ^D NON HA DOCUMENTO "^A"./>
	IFDEF V30NOR <TEXT '^P&^S ^D HAR IKKE NOE DOKUMENT KALT ^A.'>	/A046
	IFDEF V30SWE <TEXT '^P&^S ^D INNEH\ELLER INTE DOKUMENTET ^A.'>

DYWTC,	IFDEF ENGLSH <TEXT '^P&DO YOU WISH TO COPY DOCUMENT NUMBER ^D'>	/C043
	IFDEF ITALIAN<TEXT /^P&CONFERMA COPIA DOCUMENTO NUMERO ^D/>
	IFDEF V30NOR <TEXT '^P&VIL DU KOPIERE DOKUMENT NR. ^D'>		/A046
	IFDEF V30SWE <TEXT '^P&VILL DU KOPIERA DOKUMENT NUMMER ^D?'>

DCNAME,	TEXT '^P"^A"'

NWNBRT,	IFDEF ENGLSH <			/ NEW NUMBER TEXT		/A037
	TEXT '^P&THE NEW NUMBER IS ^A'>					/A037
	IFDEF ITALIAN <TEXT /&IL NUOVO NUMERO \H ^A/
	>
	IFDEF V30NOR <TEXT 'NYTT NR. ER ^A'>				/A046
	IFDEF V30SWE <TEXT '&DET NYA NUMRET \DR ^A'>

NOWCOP,	IFDEF ENGLSH <TEXT '^P&YOU ARE NOW COPYING DOCUMENT NUMBER ^D'>	/C043
	IFDEF ITALIAN<TEXT /^P&COPIA DOCUMENTO NUMERO ^D/
	>
	IFDEF V30NOR <TEXT '^P&N\E KOPIERES DOKUMENT NR. ^D'>		/A046
	IFDEF V30SWE <TEXT '^P&DU KOPIERAR NU DOKUMENT NUMMER ^D'>	

TXETND,	IFDEF ENGLSH <
	TEXT '&ENTER THE NEW NAME FOR THE DOCUMENT AND THEN &PRESS &R&E&T&U&R&N,'
	>
	IFDEF ITALIAN <
	TEXT /&INTRODURRE IL NUOVO NOME PER IL DOCUMENTO E PREMERE !&RITORNO,/
	>
	IFDEF V30NOR <
	TEXT '&ANGI NYTT NAVN FOR DETTE DOKUMENTET OG TRYKK P\E !&RETUR,'> /A046
	IFDEF V30SWE <
	TEXT '&SKRIV DET NYA DOKUMENTNAMNET OCH TRYCK SEDAN P\E RETUR.'>
	
TXPRCN,	IFDEF ENGLSH <
	TEXT '&PRESS &R&E&T&U&R&N TO CONTINUE TO THE NEXT DOCUMENT,'>
	IFDEF ITALIAN <
	TEXT /PREMERE !&RITORNO PER PASSARE AL DOCUMENTO SUCCESSIVO,/
	>
	IFDEF V30NOR <
	TEXT 'TRYKK P\E !&RETUR FOR \E G\E TIL NESTE DOKUMENT,'>	/A046
	IFDEF V30SWE <
	TEXT '&F\VR ATT FORTS\DTTA TILL N\DSTA DOKUMENT, TRYCK P\E RETUR,>

TXIYD,	IFDEF ENGLSH <
	TEXT '&IF YOU DO, TYPE &Y AND &PRESS &R&E&T&U&R&N, OR JUST '>
	IFDEF ITALIAN <
	TEXT /&INTRODURRE !&SI E PREMERE !&RITORNO, OPPURE/
	>
	IFDEF V30NOR <
	TEXT '&HVIS DU VIL DET, SKRIV &J OG TRYKK P\E !&RETUR , EL.'>	/A046
	IFDEF V30SWE <
	TEXT '&OM DU G\VR DET, SKRIV &J OCH TRYCK P\E RETUR'>

NERD,
/d041	TEXT '^P&THERE IS NOT ENOUGH ROOM ON &^S ^D TO CONTAIN THE DOCUMENT'
	IFDEF ENGLSH <
TEXT '^P&^S ^D NOT INITIALIZED !&OR DOES NOT HAVE ROOM FOR THE DOCUMENT'/A041
	>
	IFDEF ITALIAN <
TEXT /^P&^S ^D NON INIZIALIZZATA O SPAZIO INSUFFICIENTE PER IL DOCUMENTO/
	>
	IFDEF V30NOR <
	TEXT '^P&^S ^D ER IKKE KLARGJORT EL. HAR IKKE PLASS TIL DOKUMENTET'>/A046
	IFDEF V30SWE <
   TEXT '^P&^S ^D \DR INTE INTE INITIERAD ELLER HAR INTE PLATS F\VR DOKUMENTET'>

TRYAGN,	IFDEF ENGLSH <
TEXT '^P&WHEN TYPING TO THE MENU, USE NORMAL KEYS ON THE KEYBOARD ONLY. ' /C021	
*.-1
IFDEF CONDOR <								/A030
TEXT '^P&THE &RUBOUT KEY CAN ALSO BE USED. &A LINE MAY CONTAIN A' 	/C021M030
> / END IFDEF CONDOR							/A030
IFNDEF CONDOR <								/A030
TEXT '^P&R&U&B &C&H&A&R AND &R&U&B &W&O&R&D CAN ALSO BE USED. '		/A030
*.-1									/A030
TEXT '&A LINE MAY CONTAIN A '						/A030
> / END IFNDEF CONDOR							/A030
*.-1									/C021
TEXT '^PMAXIMUM OF 71 CHARACTERS AND MUST END WITH &R&E&T&U&R&N.'	/C021
*.-1
TEXT '^P&PLEASE PRESS &R&E&T&U&R&N AND TRY AGAIN.'
>

	IFDEF ITALIAN <
	TEXT /^P&PER SCEGLIERE LE OPZIONI DEL MENU UTILIZZARE SOLO I TASTI AL /
	*.-1
TEXT /FANUMERICI^PE SE NECESSARIO IL TASTO !AX]. &UNA RIGA PU\R CONTENRE AL //m045
	*.-1
	TEXT /^PMASSIMO 71 CHARATTERE E DEVE TERMINARE CON !&RITORNO. /
	*.-1
	TEXT /^P&PREMERE !&RITORNO PER CONTINUARE./
	74;0								/a045	
	>

	IFDEF V30NOR <							/A046
	TEXT '^P&BRUK BARE TEGN P\E HOVEDTASTATURET N\ER DU SKRIVER EN KOMMANDO '
	*.-1
	TEXT '^P!&SLETT-TASTEN KAN OGS\E BRUKES. &EN LINJE KAN HA '
	*.-1
	TEXT '^PMAKS. 71 TEGN OG M\E AVSLUTTES MED !&RETUR'
	*.-1
	TEXT '^P&TRYKK P\E !&RETUR OG PR\XV IGJEN.'
	>

	IFDEF V30SWE <
	TEXT '&ANV\DND BARA "VANLIGA" TANGENTER N\DR DU SKRIVER I MENYN '
	*.-1
	TEXT '&DU KAN OCKS\E ANV\DNDA RADERA. &EN RAD KAN INNEH\ELLA'
	*.-1
	TEXT '&DU KAN OCKS\E ANV\DNDA RADERA TKN ELLER RADERA ORD.'
	*.-1
	TEXT '&EN RAD F\ER INNEH\ELLA'
	*.-1
	TEXT 'MAXIMALT 71 TECKEN OCH M\ESTE AVSLUTAS MED RETUR'
	*.-1
	TEXT '&TRYCK P\E RETUR OCH FVRSVK IGEN.'
	>	/ END IFDEF V30SWE

TARTN,	IFDEF ENGLSH <TEXT '^P&PRESS &R&E&T&U&R&N TO TRY ANOTHER NAME.'>
	IFDEF ITALIAN<TEXT /^P&PREMERE !&RITORNO, USARE UN ALTRO NOME./
	>
	IFDEF V30NOR <TEXT '^PTRYKK P\E !&RETUR OG PR\XV ET ANNET NAVN.'> /A046
	IFDEF V30SWE <TEXT '^P&TRYCK P\E RETUR FVR ATT PROVA ETT ANNAT NAMN.'>	

CNTCRE,	IFDEF ENGLSH <TEXT '^P&UNABLE TO CREATE DOCUMENT.'>
	IFDEF ITALIAN<TEXT /^P&IMPOSSIBILE CREARE IL DOCUMENTO./
	>
	IFDEF V30NOR <TEXT '^P&KAN IKKE OPPRETTE DOKUMENT.'>		/A046
	IFDEF V30SWE <TEXT '^P&KAN INTE SKAPA DOKUMENT'>

WNUM,	IFDEF ENGLSH <TEXT '^P&DOCUMENT NUMBERS MUST BE FROM 1 TO 200.'>
	IFDEF ITALIAN<
	TEXT /^P&I NUMERI DEI DOCUMENTI DEVONO ESSERE DA 1 E 200/
	>								/a045
	IFDEF V30NOR < TEXT 'DOKUMENTNUMRENE G\ER FRA 1 TIL 200.'>	/A046
	IFDEF V30SWE < TEXT 'DOKUMENTNUMRET M\ESTE VARA MELLAN 1 OCH 200'>

NMDC,	IFDEF ENGLSH <TEXT  '^P&THERE ARE NO MORE DOCUMENTS AVAILABLE.'>
	IFDEF ITALIAN<TEXT /^P&NON CI SONO PI\Y DOCUMENTI DISPONIBILI./
	>
	IFDEF V30NOR <TEXT '^P&INGEN FLERE DOKUMENTER LEDIG.'>		/A046
	IFDEF V30SWE <TEXT '^P&DET FINNS INTE FLER DOKUMENT TILLG\DNGLIGA'>

NONIN,	IFDEF ENGLSH <							/A017
	TEXT '^P&YOUR ^S IS NOT INITIALIZED.'>				/A017
	IFDEF ITALIAN <
	TEXT /^P&IL DICHETTO NON \H INITIALIZZETO./
	>
	IFDEF V30NOR <	TEXT '^P&^S ER IKKE KLARGJORT.'>		/A046
	IFDEF V30SWE <  TEXT '^P&DIN ^S \DR INTE INITIERAD.'>

CNRG,	TEXT '^P '

NMEAN,	IFDEF ENGLSH <
TEXT '^P&TYPING "^A" HAS NO MEANING HERE. &PRESS &R&E&T&U&R&N TO TRY AGAIN.' /C021
	>
	IFDEF ITALIAN <
	TEXT /^P&"^A" &OPZIONE NON VALIDA/
	>
	IFDEF V30NOR <
	TEXT '^P"^A" KAN IKKE BRUKES HER. &TRYKK P/E !&RETUR OG PR\XV IGJEN'
	>								/A046
	IFDEF V30SWE <
	TEXT '^P"^A" BETYDER INGENTING H\DR, TRYCK P\E RETUR OCH FVRSVK IGEN.'>

PRTRN,	IFDEF ENGLSH <TEXT '^P&AND &PRESS &R&E&T&U&R&N'>
	IFDEF ITALIAN<TEXT /^P&E PREMERE !&RITORNO/
	>
	IFDEF V30NOR <TEXT '^P OG TRYKK P\E !&RETUR'>			/A046
	IFDEF V30SWE <TEXT '^POCH TRYCK P\E RETUR'>	

DOGM,	IFDEF ENGLSH <
	TEXT '^P^A&PRESS &GOLD &M&E&N&U TO RECALL THE &MAIN &MENU.'>
	IFDEF ITALIAN<
	TEXT /^P^APREMERE &ORO !&MENU PER TORNARE AL &MENU &PRINCIPALE./
	>
	IFDEF V30NOR <
	TEXT '^P^A&TRYKK P\E &GULL !&MENY FOR \E F\E HOVEDMENYEN.'>	/A046
	IFDEF V30SWE <
	TEXT '^P^A&FVR ATT KOMMA TILL HUVUDMENYN, ANV\DND GULD MENY'>

ORAR,	IFDEF ENGLSH <"O&177;"R&177;40;0>
	IFDEF ITALIAN<"O&177;40;0>
	IFDEF V30NOR <"E&177;"L&177;40;0>
	IFDEF V30SWE <"E&177;"L&177;40;0>

NARG,	0

RPLACE,	IFDEF ENGLSH <TEXT '^P&REPLACE THE SYSTEM DISKETTE IN DRIVE 0 '>
	IFDEF ITALIAN<TEXT /^P&INTRODURRE DISCO SISTEMA NELL'UNIT\@ 0 /
	>
	IFDEF V30NOR <TEXT '^P&SETT  SYSTEMDISKETTEN TILBAKE I STASJON 0.'> /A046
	IFDEF V30SWE <TEXT 'S\DTT I SYSTEMDISKETTEN I ENHET 0'>

YNAD,	IFDEF ENGLSH <							/A018
	TEXT	'^P&YOU NEED A DISKETTE IN DRIVE ^D.  '			/A018
	*.-1								/A018
	TEXT	'&PUT A DISKETTE IN THE DRIVE'				/A018
	>
	IFDEF ITALIAN <
	TEXT	/^P&NECESSITA UN DISCHETTO NELL'UNIT\@ ^D.  /
	*.-1
	TEXT	/&INSERIRE UN DISCHETTO NELL'UNIT\@/
	>
	IFDEF V30NOR <
	TEXT '^P&DET M\E ST\E EN DISKETT I STASJON ^D.  '		/A046
	*.-1
	TEXT '&SETT EN DISKETTE I STASJONEN'				/A046
	>
	IFDEF V30SWE <
	TEXT '^P&DU BEHVVER EN DISKETT I ENHET ^D.'
	*.-1
	TEXT '&S\DTT I EN DISKETT I ENHETEN'
	>	/ END IFDEF V30SWE

PSCR,	TEXT '^P!E'

ASTRING,TEXT '^A'

BELTXT,	BELL;0

COPCNT,	IFDEF ENGLSH <TEXT '^P&COPYING BLOCK  001'>		/A007	/C043
	IFDEF ITALIAN<TEXT /^PCOPIA BLOCCO  001/
	>
	IFDEF V30NOR <TEXT 'BLOKK 001 KOPIERES'	>			/A046
	IFDEF V30SWE <TEXT '^P&KOPIERAR BLOCK   001'>

BLOCKS,	TEXT '^P!3D'							/A007
	
TXTARE,	IFDEF ENGLSH <TEXT 'DEVICE'>					/A039
	IFDEF ITALIAN<TEXT /UNIT\@/
	>
	IFDEF V30NOR<TEXT 'ENHETEN'>					/A046
	IFDEF V30SWE <TEXT 'ENHET'>

TXTDSK,	IFDEF ENGLSH <TEXT 'DISKETTE'>					/A039
	IFDEF ITALIAN<TEXT /ARCHIVIO DOCUMENTI/
	>
	IFDEF V30NOR <TEXT 'DISKETTEN'>					/A046
	IFDEF V30SWE <TEXT 'DISKETT'>

TXTVOL,	IFDEF ENGLSH <TEXT 'VOLUME'>					/A039
	IFDEF ITALIAN<TEXT /ARCHIVIO DOCUMENTI/
	>
	IFDEF V30NOR <TEXT 'OMR\EDET'>					/A046
	IFDEF V30SWE <TEXT 'VOLYM'>

TXTDRV,	IFDEF ENGLSH <TEXT 'DRIVE'>					/A039
	IFDEF ITALIAN<TEXT /UNIT\@/
	>
	IFDEF V30NOR <TEXT 'STASJONEN'>					/A046
	IFDEF V30SWE <TEXT 'ENHET'>

WINTXT,	IFDEF ENGLSH <TEXT '^P&^S ^D DOES NOT HAVE A ^S ASSIGNED'>	/A039
	IFDEF ITALIAN<TEXT /^P&^S ^D NON HA UN ^S DEFINITO/
	>
	IFDEF V30NOR <TEXT '^P&^S HAR IKKE NOE TILDELT ^S'>		/A046
	IFDEF V30SWE <TEXT '^P&^S ^D HAR INGEN ^S TILLDELAD'>

CUB1,	ZBLOCK 400
INBUF,	-STRLEN
	ZBLOCK STRLEN+1
/--------------------
	PAGE