INTERTST Version 1.12 (11-20-94) By: Bill Colavecchio THIS

advertisement
INTERTST
Version 1.12 (11-20-94)
By:
Bill Colavecchio
THIS PROGRAM IS DISTRIBUTED AS FREEWARE
------------------------- O V E R V I E W ---------------------INTERTST is a utility program developed to execute interrupts
or API calls on a MS-DOS or PC-DOS system and observe the return
value of the various general purpose registers. The user has the
ability to enter a DOS interrupt or API far call address, set the
registers to any value desired, execute the interrupt or API call
and see the return value of the registers and the flags set upon
returning from the interrupt or API call. When executing a standard
BIOS, EMS or DOS interrupt with a function code in the AH register,
INTERTST will display what the interrupt function does prior to its
execution.
Also provided is the ability to toggle between INTERTST and the
video screen as well as a shell to execute DOS commands or programs.
Some interrupts require the use of a work area to pass or
obtain information. INTERTST contains a 1040 byte work ara which
is displayed on the lower portion of the screen. The heading of
the work area contains the segment and offset (xxxx:xxxx) address
of the work area. You can use this work area for interrupts or
API Calls by loading the appropriate registers with the segment
and offset addresses. INTERTST load the appropriate registers
(if the segment address if not set to the WORK AREA) with the work
area address for most standard BIOS and DOS interrupt functions.
However, for safety sake, it is recommended that the user load
these registers before executing the interrupt.
------------------Command Line:
COMMAND LINE PARAMETERS ------------------INTERTST
{/FORCE}
{/386}
where /FORCE is an optional parameter
which will force the execution of
any interrupt vector. Use extreme
caution when specifying this option.
If this option is not specified,
certain interrupt vectors can not be
executed. See the list of these
interrupt vectors in this document.
/386 signifies that INTERTST is to
display the 386+ 32-bit registers
(i.e., EAX, EBC, ECX, etc.)
----------------- NAVIGATING THROUGH INTERTST ---------------Special Purpose Keys
F1
F4
-
F5
F6
F7
F8
F9
F10
TAB
Right Arrow
Left Arrow
Up Arrow
Down Arrow
PgDn
PgUp
Home
End
Esc
-
Help Function
Clear the area where the cursor is set
(i.e., INTERRUPT number, REGISTERS or
WORK AREA)
Clear ALL of the areas
Toggle between Video Screens
Execute the interrupt specified
DOS Shell
Toggle between API or Interrupt Calls
Terminate INTERTST
Tab to the next field
Tab to the next field
Tab to the preceding field
Tab to the previous line
Tab to the next line
Page to next page of the WORK AREA
Page to previous page of the WORK AREA
First Page of WORK AREA
Last Page of WORK AREA
Leave an Area (INTERRUPT, REGISTER,
WORK AREA, ASCII)
SELECTING AN AREA TO MODIFY
There are three separate areas on the INTERTST screen
that the user can modify. They are:
Area Name
Activation Key
INTERRUPT/API CALL
REGISTER CONTENTS
WORK AREA
Hexidecimal Format
ASCII Format
I
R
W
S
----------------------- USING INTERTST -----------------------Press the activation letter for the area
You can now enter data in that area. To
press the "Esc" key. When you are ready
Interrupt or API Call, press the F7 key.
display the description of the interrupt
you wish to modify.
leave the area,
to execute an
INTERTST will
for standard
BIOS and DOS functions and the message "ARE YOU SURE?" will
appear in the upper right hand corner of the screen. Press
the "Y" key to confirm the the execution of the Interrupt/
API Call or any other key to cancel the execution of the
function. The word "EXECUTED" will appear in the upper
right hand corner of screen. This signifies that the
Interrupt/API Call has completed. The register contents,
flags and work area contain the updated information from
the requested function.
----------------- WARNINGS! and CAUTIONS! -------------------(1)
The API calls must be used with extreme caution.
Branching to an invalid doubleword address will
give you unpredictable results and will probably
hang your system. Make sure that the API address
is to a valid FAR CALL.
(2)
INTERTST has no way of detecting whether
an interrupt vector addresses are valid.
Executing uninitialized interrupt vectors
will cause unpredictable results and may
even hang your system. However, any interrupt
vector with a zero segment value will not be
executed.
(3)
Do NOT attempt to execute INTERTST under
Microsoft Windows or DesQview.
(4)
Care must be taken when executing interrupts. This
program was written for experienced DOS programmers
and should be used by only those who have experience
with interrupt calls. In order to minimize the
potential system lockups, the following interrupt
and function numbers are not executable.
INTERRUPT
NO.
FUNCTION
SUBFUNCTION
DESCRIPTION
01
02
03
04
-----
-----
Single Step
Non-Maskable
Breakpoint
Arithmetic
05
06
07
08
-----
-----
Print Screen
Invalid Op-Code
No Math Unit
IRQ0 - System
09
0A
---
---
IRQ1 - Keyboard
IRQ2 - EGA Vert.
Overflow
Timer
Trace
0B
--
--
IRQ3 - Ser. Port
0C
--
--
IRQ4 - Ser. Port
0D
--
--
IRQ5 - Par. Port
0E
--
--
IRQ6 - Diskette
0F
--
--
IRQ7 - Par. Port
1B
1C
1D
----
----
Ctrl - Break
Timer Tick
Video Parameter
1E
--
--
Diskette
1F
--
--
Graphics Char.
21
22
--
Random File Write
21
25
--
Set Interrupt
21
21
26
28
---
Create PSP
Random Block
21
21
29
31
---
Parse File Name
Terminate, Stay
21
39
--
Create
21
3A
--
Delete
21
3D
--
Open File
21
3E
--
Close File
21
40
--
Write to File
21
41
--
Delete File
21
21
42
44
-03
Move File Pointer
Char. Device
21
21
44
44
04
05
Block Driver Read
Block Driver
21
21
21
48
49
4A
----
Allocate Memory
Release Memory
Modify Memory
21
21
56
5A
---
Rename File
Create Temporary
21
5B
--
Create File
(COM2)
(COM1)
(LPT2)
Inter.
(LPT1)
Table
Parameters
Set 2
(FCB)
Vector
Write (FCB)
Resident
Subdirectory
Subdirectory
(Handle)
(Handle)
(Handle)
(Handle)
Write
Write
Alloc.
File
21
21
5C
5D
---
Set File Access
Set Extended
21
65
--
Get Ext. Country
21
66
01
Get Global Page
21
21
21
67
68
6C
----
Set Handle Count
Flush Buffer
Extended
22
23
---
---
Terminate Address
Ctrl-C Interrupt
24
--
--
Critical Error
26
--
--
Absolute Disk
67
70
4E
--
---
EMS Page Mapping
Real Time Clock
71
72
73
74
75
------
------
IRQ9
IRQ10
IRQ11
IRQ12
IRQ13
76
--
--
IRQ14 - Fixed
77
EF
F0
FE
FF
------
------
IRQ15 - Reserved
Error
Info.
Code
Open/Create
Vector
Vector
Write
Inter.
-
Reserved
Reserved
Reserved
Mouse
Math
Coproc.
Disk Ctrlr
If you try to execute one of these interrupts,
INTERTST
will display the message "EXECUTION OF INTERRUPT IS
NOT ALLOWED" unless the FORCE command line parameter
is
specified. If the FORCE parameter is specified,
INTERTST will execute any interrupt vector number.
-------------------------- MISCELLANEOUS --------------------This program was written entirely in Assembler and is
released as a freeware. INTERTST requires only 32K of
memory to run.
Technical Note: INTERTST temporarily replaces INT 00
interrupt vector (divide exception) and INT 06 (Invalid opcode)
during its execution. They are restored to their original
state at program termination.
--------------------- INTERTST ERROR MESSAGES ------------------(1)
"INTERTST Has Detected that it is Running Under DesQview"
Description - INTERTST can not run under DesQview.
Response
- INTERTST program is terminated.
(2)
"INTERTST Has Detected that it is Running Under Windows"
Description - INTERTST can not run under Windows.
Response
- INTERTST program is terminated.
(3)
"Incorrect DOS Version.
Must Be 3.0 or Greater"
Description - DOS Version 3.0 or greater is required
for INTERTST to run.
Response
- INTERTST program is terminated.
(4)
"INTERTST Can Not Locate the Command Processor"
Description - INTERTST could not find the COMSPEC variable
in the DOS Environment.
Response
- INTERTST program is terminated.
(5)
"INTERTST Must Have 32K of Memory To Run"
Description Response
(6)
-
INTERTST was started with less than 32K
of available conventional memory.
INTERTST program is terminated.
"INTERTST - Invalid Command Line Parameter"
Description - INTERTST has detected a command line
parameter
Response
(7)
other than /FORCE or /386.
- INTERTST program is terminated.
"INTERTST Can Not Run with an MDA Monitor or in MDA Mode"
Description - INTERTST requires a color monitor.
Response
- INTERTST program is terminated.
(8)
"INTERTST Can Not Run in 386 Mode"
Description - INTERTST was started with the /386 parameter
but the processor is not a 386 or greater.
Response
- INTERTST program is terminated.
Download