08-27-2003, 05:14 PM
SCM:
His previous (the *.com):
What he posted above:
His previous (the *.com):
- Looking at the code:
In line 6-8 it tries to find *.com file. It takes the first it gets. (int21/ah=4e)
In line 9-12 it opens the found *.com file (int21/ah=3d)
In line 14-17 it writes itself to the file (actually everything between startvx and endvx) (int21/ah=40)
In line 18-19 it closes the file (int21/ah=3e)
In line 20 it ends the program (int20)
However, if'd read further, you would have noticed Plasma357 already answered your question
What he posted above:
- It's about the BOOTSTRAP LOADER, which is int19. Take a look at the docs about it:
Quote:SYSTEM - BOOTSTRAP LOADER
Desc: This interrupt reboots the system without clearing memory or restoring interrupt vectors. Because interrupt vectors are preserved, this interrupt usually causes a system hang if any TSRs have hooked vectors from 00h through 1Ch, particularly INT 08.
Notes: Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
A:To 0000h:7C00h. If this fails, and a hard disk is installed, the
BIOS will read sector 1, head 0, track 0 of the first hard disk.
This sector should contain a master bootstrap loader and a partition
table (see #00650). After loading the master boot sector at
0000h:7C00h, the master bootstrap loader is given control
(see #00653). It will scan the partition table for an active
partition, and will then load the operating system's bootstrap
loader (contained in the first sector of the active partition) and
give it control..
True IBM PCs and most clones issue an INT 18 if neither floppy nor hard
disk have a valid boot sector.
To accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
a reset, store 0000h at 0040h:0072h before jumping..
VDISK.SYS hooks this interrupt to allow applications to find out how
much extended memory has been used by VDISKs (see #00649). DOS 3.3+
PRINT hooks INT 19 but does not set up a correct VDISK header block
at the beginning of its INT 19 handler segment, thus causing some
programs to overwrite extended memory which is already in use..
The default handler is at F000h:E6F2h for 100% compatible BIOSes.
MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
contains extended partitions which point at each other in a loop,
since it will never find the end of the linked list of extended
partitions.
Under Windows Real and Enhanced modes, calling INT 19 will hang the
system in the same was as under bare DOS; under Windows Standard
mode, INT 19 will successfully perform a cold reboot as it appears
to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
BUG: When loading the remainder of the DOS system files fails, various versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before calling INT 19, assuming that the boot sector had stored the contents of INT 1E at DS:SI instead of on the stack as it actually does