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).