		**** BUG VERSION 2.0 ****

1. MODULES REQUIRED:

	- BUG.MAC
	- MACROS.MAC
	- BUG.CMD
	- BUG.TKB

2. TO BUILD BUG:

	MCR>@BUG

3. BUG REQUIRES A VT52, VT100, OR SIMILAR TERMINAL
   FOR THE FULL SCREEN ADDRESSING.

4. PLEASE ADDRESS ALL BUGS AND/OR FIXES/ENHANCEMENTS TO:

	DANIEL T. SEDLACEK
	INFORMATICS GENERAL CORP.
	1508 KENNEDY DRIVE, SUITE 8
	BELLEVUE, NE    68005

5. USAGE:

	MCR>BUG
	BUG>TSKNAM

6. NOTES:

	- SYMBOL TABLES ARE SUPPORTED.  HINT -- USE .GLOBL FOR SYMBOLS
	  YOU WANT TO SEE, OR EDIT IN THE APPROPRIATE "::" TO MAKE THE
	  SYMBOLS SHOW UP IN THE SYMBOL TABLE.

	- IF A SYMBOL TABLE IS USED, BUG WILL ASK FOR ADDITIONAL SYMBOL
	  TABLES.  CARRIAGE RETURN OR ENTER THE NAME OF ANOTHER SYMBOL
	  TABLE.

	- DISASSEMBLY MODE IS ENTERED FIRST.  AN ESCAPE CHARACTER WILL
	  TOGGLE BETWEEN DISASSEMBLY MODE AND DUMP MODE.

	- BASICALLY, ALL COMMANDS CAN BE ENTERED ON EITHER SCREEN.  THE
	  COMMANDS ARE PRESENTED ON A HELP SCREEN (THAT IS ENTERED FROM
	  THE DISASSEMBLY SCREEN ON ANY INVALID COMMAND).  EXAMPLES ARE
	  GIVEN INSTEAD OF A LENGTHY TEXTUAL DESCRIPTION (ANYONE WANT TO
	  VOLUNTEER TO MAKE UP A USER'S MANUAL?).  THE "RX" REGISTER IS
	  THE OFFSET REGISTER, AND CAN BE SET LIKE ANY OTHER "REAL"
	  REGISTERS.

	  COMMANDS ARE ENTERED AS:

		XX=YYYYYY,ZZ..ZZ	(EXAMPLE: R0=12345)

		WHERE	    XX IS THE COMMAND
			YYYYYY IS AN OCTAL VALUE OR ADDRESS
			ZZ..ZZ IS A VALUE FIELD (NOT ALWAYS USED)


	- READ THE HELP SCREEN IN DETAIL; ITS TERSE, BUT FAIRLY COMPLETE.







	- **** VERSION 1.3 USERS, PLEASE NOTE... ****
	  YOU NO LONGER NEED THE "C" PRECEEDING A COMMAND IN DISASSEMBLY
	  MODE;  JUST ENTER THE COMMAND.  BUG NOW GETS RID OF ITS "BUGTSK".
	  NEW PROCEEDURE FOLLOWS FOR RUNNING A TASK FROM DIFFERENT TERMINAL.

	- IF YOU WANT TO DEBUG FROM A TERMINAL OTHER THAN THE TERMINAL
	  THE TASK IS RUNNING FROM,  DO THE FOLLOWING:

		O	BEGIN THE DEBUG SESSION AS NORMAL

		O	PIP BUGTSK.TSK/NV=BUGTSK.TSK
			(DO THIS FROM ANOTHER TERMINAL TO SAVE BUG'S
			WORKFILE.  NORMALLY IT IS DESTROYED.)

		O	"QUIT" THE DEBUG SESSION

		O	INS BUGTSK/TASK=XXXXXX
			(XXXXXX IS THE NAME ENTERED DURING THE DEBUG SESSION.)

		O	RUN XXXXXX
			(THE RUN MAY OPTIONALLY BE INITIATED BY ANOTHER
			TASK, VIA A "SEND DATA", ETC.)

		O	BUG WILL THEN BE AUTOMATICALLY "FIRED UP" ON THE
			TERMINAL THAT YOU PERFORMED THE INITIAL DEBUG
			SESSION PROCESSING.

		O	THE DEBUG SESSION CAN NOW CONTINUE, WITH THE
			TASK RUNNING FROM ONE TERMINAL, AND BUG RUNNING
			ON ANOTHER TERMINAL.

		O	YOU WILL GET AN "INS" ERROR REPORTED IN THIS MODE,
			AND BUG WILL BE UNABLE TO TELL WHEN THE TASK HAS
			EXITED.  BUT OTHERWISE EVERYTHING WILL WORK AS
			NORMAL.

		O	DELETE "BUGTSK.TSK" AFTER THE DEBUG SESSION.

7. BUG IS BUILT AS A MULTIUSER TASK.  USERS HAVE TO BE PRIVILEGED ONLY BECAUSE
   IT INSTALLS THE TASK BEING "BUG"ED.  BUG ITSELF IS A NON-PRIVILEGED TASK.


8. SOME INSIGHT -- WHAT ACTUALLY DOES BUG DO?  IT MAKES A COPY OF THE
   SPECIFIED TASK FILE, AND "IMPLANTS" SOME INTERFACE CODE IN THE TASK'S
   STACK (SAFELY AWAY FROM LOWER AND UPPER LIMITS).  FOR THIS REASON THE
   TASK HAS TO HAVE AT LEAST THE DEFAULT STACK SIZE.  THE STARTING ADDRESS
   OF THE TASK IS SUITABLY CHANGED AS IF IT WERE BUILT WITH A DEBUGGER.
   THEN THE TASK BEING "BUG'ED "TALKS" TO ...BUG DURING THE DEBUGGING
   SESSION.  REGISTER INFO, ETC. IS PASSED BETWEEN THE TWO TASKS DURING THE
   DEBUGGING SESSION.  NOTE -- NO SPECIAL PREPARATION IS NECESSARY FOR THE
   TASK BEING DEBUGGED (YOU CAN "BUG" EDT IF YOU WANT).  THE ORIGINAL
   TASK FILE IS LEFT UNTOUCHED.  SEVERAL USERS CAN USE BUG AT THE SAME TIME,
   AND THE INTER-TASK COMMUNICATIONS IS SENT TO THE ...BUG WITH THE
   APPROPRIATE "TI" (BUG IS BUILT MULTIUSER).
