Category : Assembly Language Source Code
Archive   : MD8612.ZIP
Filename : MD86.HLP
Output of file : MD86.HLP contained in archive : MD8612.ZIP
1 - MD86 function keys.
2 - DOS functions.
3 - Interupts.
1
Masterful Disassembler Function Key Assignments
F1 : Display help information. A calculator is provided along with
information regarding MD86, DOS functions, or PC interupts.
(F1): Alter basic parameters. MD86 maintains the begin and end addresses as
well as some status flags. These are set by MD86 initially to reasonable
values, but you may change them to whatever you want.
F2 : Goto a specified address(*) or label. You can jump immediately to an
address or return to a previous address. Typing a return only will cause
a return to the point of the last GOTO. A stack maintained with up to 16
levels. This is used to record return addresses or matching search
addreses.
(F2): Follow instruction. If the current line is an intra-segment jump or call
this will execute a GOTO the destination address. This is handy to
quickly jump to a subroutine to examine what it does. Use function F2 to
return after you are done.
.page
Masterful Disassembler Function Key Assignments
F3 : Set data type for specified address(*) range. Use this function when you
know the data type associated with an address range. The available types
are:
0=instructions
1= 8 bit data
2=ASCII character data (or strings)
3=16 bit address data
Specify the address range from the first address to the last address.
F4 : Set data type from a specified address(*) on downward. Use this function
to set the data type to a known or suspected type (see F3 for types).
Enter the first address (just a return for the current line). From this
line on downward, MD86 will use this data type (1 item per line) instead
of the defined type. When the cursor is moved to a line beyond the data
type range, press F4 again to fix the range or cancel the temporary data
type specification.
.page
Masterful Disassembler Function Key Assignments
F5 : Write source code to file. Enter a file name to use (may include a disk
and directory path). If name ends in ".PRN" the file will resemble the
output from an assembler in that it will contain address and code data
along with the source statements.
F6 : Scan the entire source file. This builds the label address pool from
scratch. All temporary labels are deleted and the tables are rebuilt.
To abort this before it completes, press the ESCAPE key.
F7 : Dump the source file in binary and ASCII. Dump the code beginning from
a specified address(*). This may be either a data segment or code
segment address (for EXE files only). Use this to identify ASCII
character and other obvious data areas. Keep pencil and paper handy.
Record the address ranges for subsequent use of function F3.
(F7): View the label table. This will display all label names and addresses
contained in the label tables. This waits between pages and segments.
Press ESCAPE to abort.
.page
Masterful Disassembler Function Key Assignments
F8 : Set label name for a specified address(*). Use this when you do not want
to (or cannot) jump to the address and edit the label field. It is some-
times easier to use this function than to edit the label field.
F9 : Search for an address(*) within the code segment, a string of bytes, or
a quoted character string. Enter the object of the search and the first
address(*) to check (a carriage return begins at the start of the current
segment). When searching for an address, this stops with the current line
containing the reference. Use Shift-F9 to search again. When searching
for a string of bytes or characters, the address of a match is displayed.
The search may be continued or aborted. Each matching address is put on
the address stack so that function F2 can be used to go back and review
the locations found.
(F9): Search for the next address reference. Use this after function F9 to
continue the search.
F10: Exit or quit. You are given the option of saving the changes or not.
Note that if you say NO, then any changes are lost for ever.
.page
Masterful Disassembler Function Key Assignments
notes
(*): Addresses can be specified in the form {seg:}offset. If the segment is
not included, then the current segment is used. Acceptable segments are
either CS:, DS:, ES:, or SS:. Some functions put more restrictions on
which segments are allowed.
(n): Indicates a shift function.
2
Nmbr Function Name Input Parameters Returned Values
==== =================== ========================== ==========================
00 Terminate program CS=Segment addr of PSP None
01 Read kbd w/echo None AL=Character
02 Display character DL=Character None
03 Auxiliary input None AL=Character
04 Auxiliary output DL=Character None
05 Print character DL=Character None
06 Direct console i/o DL=Char (FF=input reqst) AL=Character (if input)
07 Direct console inp None AL=Character
08 Read keyboard None AL=Character
09 Display string DS:DX=Addr of string None
0A Buffered kbd input DS:DX=Addr of buffer None
0B Check kbd status None AL=0/FF (0=no chars ready)
0C Read kbd w/flush AL=Dos inp function AL=Depends on function
0D Disk reset None None
0E Select disk DL=Drive number AL=Logical drive number
0F Open file DS:DX=Addr of FCB AL=0/FF (0=file found)
10 Close file DS:DX=Addr of FCB AL=0/FF (0=file closed)
11 Search for first DS:DX=Addr of FCB AL=0/FF (0=file found)
12 Search for next DS:DX=Addr of FCB AL=0/FF (0=file found)
13 Delete file DS:DX=Addr of FCB AL=0/FF (0=file deleted)
Nmbr Function Name Input Parameters Returned Values
==== =================== ========================== ==========================
14 Sequential read DS:DX=Addr of FCB AL=various (0=okay)
15 Sequential write DS:DX=Addr of FCB AL=various (0=okay)
16 Create file DS:DX=Addr of FCB AL=0/FF (0=file created)
17 Rename file DS:DX=Addr of modified FCB AL=0/FF (0=file renamed)
19 Get current disk None AL=Drive number(0=A,1=B,)
1A Set disk DTA DS:DX=Addr of DTA None
21 Random read DS:DX=Addr of FCB AL=various (0=okay)
22 Random write DS:DX=Addr of FCB AL=various (0=okay)
23 Set file size DS:DX=Addr of FCB AL=0/FF (0=file found)
24 Return rel record DS:DX=Addr of FCB None
25 Set vector AL=Interupt number None
DS:DX=Addr of handler
27 Random block read CX=Number of blocks AL=various (0=okay)
DS:DX=Addr of FCB CX=Number of blocks read
28 Random block write CX=Number of blocks AL=various (0=okay)
DS:DX=Addr of FCB CX=Number of blocks written
29 Parse file name AL=various AL=various status
DS:SI=String to parse DS:SI=Byte past string
ES:DI=Addr for FCB ES:DI=Addr of FCB
.page
Nmbr Function Name Input Parameters Returned Values
==== =================== ========================== ==========================
2A Get date None CX=Year, DH=Month, DL=Day,
AL=Day of week (0=Sunday)
2B Set date CX=Year, DH=Month, DL=Day AL=0/FF (0=okay)
2C Get time None CH=Hour, CL=Minutes,
DH=Seconds, DL=Hundreths
2D Set time CH=Hour, CL=Minutes, AL=0/FF (0=okay)
DH=Seconds, DL=Hundreths
2E Set verify flag AL=0/1 (0=no verify) None
2F Get disk DTA None ES:BX=Addr of DTA
30 Get Dos version None AH=Major, AL=Minor version
31 Keep process AL=Exit code, None
DX=Memory size w/PSP
33 Ctrl-break check AL=0/1 (0=get state) DL=0/1 (0=off)
DL=0/1 (0=off, 1=on)
35 Get interupt vector AL=Interupt number ES:BX=Addr of intrpt hndlr
36 Get disk free space DL=drive (0=default, 1=A,) BX=Available clusters,
DX=Clusters per drive,
CX=Bytes per sector,
AX=Sectors per cluster
=(FFFF if invalid drive)
Nmbr Function Name Input Parameters Returned Values
==== =================== ========================== ==========================
38 Get country info AL=country code, AX=err code (if carry set)
DS:DX=Addr of buffer
39 Make directory DS:DX=Addr of path AX=err code (if carry set)
3A Remove directory DS:DX=Addr of path AX=err code (if carry set)
3B Change directory DS:DX=Addr of path AX=err code (if carry set)
3C Create a file DS:DX=Addr of path, AX=err code (if carry set)
CX=File attribute =File handle (no carry)
3D Open a file AL=Access(0=rd,1=wrt,3=rw) AX=err code (if carry set)
DS:DX=Addr of path =File handle (no carry)
3E Close a file BX=File handle AX=err code (if carry set)
3F Read file/dev DS:DX=Addr of buffer, AX=err code (if carry set)
CX=Bytes to read, =Bytes read (no carry)
BX=File handle
40 Write to file/dev DS:DX=Addr of buffer, AX=err code (if carry set)
CX=Bytes to write, =Bytes written
BX=File handle
41 Delete directory DS:DX=Addr of path AX=err code (if carry set)
42 Move file pointer CX:DX=Bytes to move, AX=err code (if carry set)
AL=various, DX:AX=New pointer
BX=File handle
Nmbr Function Name Input Parameters Returned Values
==== =================== ========================== ==========================
43 Change attributes DS:DX=Addr of path, AX=err code (if carry set)
AL=0/1 (0=get, 1=set), CX=Attributes
CX=Attribute
44 I/O dev control BX=Handle, AX=err code (if carry set)
AL=various, =various (no carry)
DS:DX=Addr of buffer,
CX=Bytes to readd/write
45 Dup file handle BX=File handle AX=err code (if carry set)
=New handle
46 Force dup handle BX=File handle, AX=err code (if carry set)
CX=New handle
47 Get directory DS:SI=Addr of buffer, AX=err code (if carry set)
DL=Drive (0=default,1=A,)
48 Allocate memory BX=Paragraphs to allocate AX=err code (if carry set)
AX:0=Addr of memory block
49 Free memory ES=Segment addr of memory AX=err code (if carry set)
4A Modify mem blocks ES=Segment addr of memory, AX=err code (if carry set)
BX=New size BX=Max size possible
.page
Nmbr Function Name Input Parameters Returned Values
==== =================== ========================== ==========================
4B Load/execute prg DS:DX=Addr of path, AX=err code (if carry set)
ES:BX=Addr of paramaters,
AL=0/3 (0=load&exe)
4C Terminate process AL=Return code None
4D Get return code None AX=Return code
4E Find file match DS:DX=Addr of path, AX=err code (if carry set)
CX=Search attributes DTA=match data
4F Find next match DTA=match data AX=err code (if carry set)
54 Get verify flag None AL=0/1 (0=off, 1=on)
56 Rename directory DS:DX=Addr of path, AX=err code (if carry set)
ES:DI=New path addr
57 Get/set file date AL=0/1 (0=get date), AX=err code (if carry set)
BX=File handle, CX=Time (if getting)
CX=Time (if setting), DX=Date (if getting)
DX=Date (if setting)
3
Nmbr Hardware Interupts Nmbr BIOS Interupts
==== ========================== ==== ======================
00 Divide by zero 10 Video control
01 Single step 11 Equipment check
02 Non-maskable 12 Memory size
03 Breakpoint 13 Disk or diskette
04 Overflow 14 Serial (RS-232)
05 Print screen 15 Cassette or extensions
06 Reserved 16 Keyboard
07 Reserved 17 Printer
08 Time of day 18 Resident BASIC (IBM only)
09 Keyboard 19 Bootstrap
0A Reserved 1A Time of day
0B COM 2 1B Keyboard control-break
0C COM 1 1C Timer tick
0D Alternate printer 1D Video initialization
0E Diskette 1E Diskette parameters
0F Printer 1F Graphics character set
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/