539 lines
26 KiB
HTML
539 lines
26 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>Int 2F/AX=0802h
|
|
</TITLE>
|
|
<META NAME="Description" CONTENT="
|
|
Int 2F/AX=0802h - DRIVER.SYS support - EXECUTE DEVICE DRIVER REQUEST -
|
|
AX = 0802h
|
|
ES:BX - device driver request header (see #02597)
|
|
Return: request header updated as per requested operation
|
|
STACK: WORD original flags from INT call (left by RETF in device
|
|
driver, at least in DOS 5.0-6.22)
|
|
Notes: supported by DR DOS 5.0
|
|
DOS 3.2 executes this function on any AL value from 02h through F7h;
|
|
DOS 4.0+ executes this function on AL=02h and AL=04h-F7h
|
|
the command codes (see #02595) and structures described below apply
|
|
to all drivers which support the appropriate commands; this call is
|
|
">
|
|
<META NAME="robots" CONTENT="none">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFD0A0">
|
|
<center>
|
|
<h2>Int 2F/AX=0802h
|
|
</h2>
|
|
</center><p>
|
|
<table border=1 cellpadding=3 cellspacing=1>
|
|
<td>
|
|
<a href="rb-4281.htm" tppabs="http://www.ctyme.com/intr/rb-4281.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-4283.htm" tppabs="http://www.ctyme.com/intr/rb-4283.htm">
|
|
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
|
|
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
|
|
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
|
|
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
|
|
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
|
|
</td></table><p>
|
|
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
|
|
<h3><font color=#C00040>DRIVER.SYS support - EXECUTE DEVICE DRIVER REQUEST</font></h3>
|
|
<PRE>
|
|
AX = 0802h
|
|
ES:BX -> device driver request header <a href="rb-4282.htm#Table2597" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2597">(see #02597)</a><br>
|
|
<p><b>Return:</b><br>Request header updated as per requested operation.
|
|
<p><b>STACK:</b><br>WORD original flags from INT call (left by RETF in device
|
|
driver, at least in DOS 5.0-6.22)
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
Supported by DR DOS 5.0.
|
|
DOS 3.2 executes this function on any AL value from 02h through F7h;
|
|
DOS 4.0+ executes this function on AL=02h and AL=04h-F7h.
|
|
The command codes <a href="rb-4282.htm#Table2595" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2595">(see #02595)</a> and structures described below apply
|
|
to all drivers which support the appropriate commands; this call is
|
|
just one of a number of ways in which a device driver request may
|
|
be invoked.
|
|
Supported by Novell DOS 7
|
|
<p><b>See Also:</b>
|
|
<a href="rb-4280.htm" tppabs="http://www.ctyme.com/intr/rb-4280.htm">AX=0800h</a> - <a href="rb-4281.htm" tppabs="http://www.ctyme.com/intr/rb-4281.htm">AX=0801h</a> - <a href="rb-4283.htm" tppabs="http://www.ctyme.com/intr/rb-4283.htm">AX=0803h</a> - <a href="rb-4493.htm" tppabs="http://www.ctyme.com/intr/rb-4493.htm">AX=1510h</a> -
|
|
<p><b>See Also:</b>
|
|
<a href="rb-3276.htm" tppabs="http://www.ctyme.com/intr/rb-3276.htm">INT 21/AH=9Ah</a>
|
|
<PRE>
|
|
<p>
|
|
<a name=table2595></a>
|
|
(Table 02595)
|
|
Values for device driver command code:
|
|
00h (0) INIT
|
|
01h (1) MEDIA CHECK (block devices)
|
|
02h (2) BUILD BPB (block devices)
|
|
03h (3) IOCTL INPUT
|
|
04h (4) INPUT
|
|
05h (5) NONDESTRUCTIVE INPUT, NO WAIT (character devices)
|
|
06h (6) INPUT STATUS (character devices)
|
|
07h (7) INPUT FLUSH (character devices)
|
|
08h (8) OUTPUT
|
|
09h (9) OUTPUT WITH VERIFY
|
|
0Ah (10) OUTPUT STATUS (character devices)
|
|
0Bh (11) OUTPUT FLUSH (character devices)
|
|
0Ch (12) IOCTL OUTPUT
|
|
0Dh (13) (DOS 3.0+) DEVICE OPEN
|
|
0Eh (14) (DOS 3.0+) DEVICE CLOSE
|
|
0Fh (15) (DOS 3.0+) REMOVABLE MEDIA (block devices)
|
|
10h (16) (DOS 3.0+) OUTPUT UNTIL BUSY (character devices)
|
|
11h (17) (European MS-DOS 4.0) STOP OUTPUT (console screen drivers only)
|
|
12h (18) (European MS-DOS 4.0) RESTART OUTPUT (console screen drivers only)
|
|
13h (19) (DOS 3.2+) GENERIC IOCTL
|
|
14h (20) (DOS 4.0, KKCFUNC) DEVICE RESTORE (character device)
|
|
15h (21) (European MS-DOS 4.0) RESET UNCERTAIN MEDIA FLAG
|
|
16h (22) (DOS 4.0) unknown???
|
|
17h (23) (DOS 3.2+) GET LOGICAL DEVICE
|
|
18h (24) (DOS 3.2+) SET LOGICAL DEVICE
|
|
19h (25) (DOS 5.0+) CHECK GENERIC IOCTL SUPPORT
|
|
80h (128)(CD-ROM,DRFAT32) READ LONG
|
|
81h (129)(CD-ROM) reserved
|
|
82h (130)(CD-ROM,DRFAT32) READ LONG PREFETCH
|
|
83h (131)(CD-ROM,DRFAT32) SEEK
|
|
84h (132)(CD-ROM) PLAY AUDIO
|
|
85h (133)(CD-ROM) STOP AUDIO
|
|
86h (134)(CD-ROM,DRFAT32) WRITE LONG
|
|
87h (135)(CD-ROM,DRFAT32) WRITE LONG VERIFY
|
|
88h (136)(CD-ROM) RESUME AUDIO
|
|
<p>
|
|
Bitfields for device request status:
|
|
<a name=table2596></a>
|
|
Bit(s) Description (Table 02596)
|
|
15 error
|
|
14-11 reserved
|
|
10 ??? set by DOS kernel on entry to some driver calls
|
|
9 busy
|
|
8 done (may be clear on return under European MS-DOS 4.0)
|
|
7-0 error code if bit 15 set <a href="rb-4282.htm#Table2598" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2598">(see #02598)</a>
|
|
<p>
|
|
Format of device driver request header:
|
|
<a name=table2597></a>
|
|
Offset Size Description (Table 02597)
|
|
00h BYTE length of request header
|
|
01h BYTE subunit within device driver
|
|
02h BYTE command code <a href="rb-4282.htm#Table2595" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2595">(see #02595)</a>
|
|
03h WORD status (filled in by device driver) <a href="rb-4282.htm#Table2596" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2596">(see #02596)</a>
|
|
---DOS---
|
|
05h 4 BYTEs reserved (unused in DOS 2.x and 3.x)
|
|
09h DWORD (European MS-DOS 4.0 only) pointer to next request header in
|
|
device's request queue
|
|
(other versions) reserved (unused in DOS 2.x and 3.x)
|
|
---STARLITE architecture---
|
|
05h DWORD pointer to next request header
|
|
09h 4 BYTEs reserved
|
|
---command code 00h---
|
|
0Dh BYTE (ret) number of units
|
|
0Eh DWORD (call) pointer to DOS device helper function <a href="rb-4282.htm#Table2599" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2599">(see #02599)</a>
|
|
(European MS-DOS 4.0 only)
|
|
(call) pointer past end of memory available to driver (DOS 5+)
|
|
(ret) address of first free byte following driver
|
|
12h DWORD (call) pointer to commandline arguments
|
|
(ret) pointer to BPB array (block drivers) or
|
|
0000h:0000h (character drivers)
|
|
16h BYTE (DOS 3.0+) drive number for first unit of block driver (0=A)
|
|
---European MS-DOS 4.0---
|
|
17h DWORD pointer to function to save registers on stack
|
|
---DOS 5+ ---
|
|
17h WORD (ret) error-message flag
|
|
0001h MS-DOS should display error msg on init failure
|
|
---command code 01h---
|
|
0Dh BYTE media descriptor
|
|
0Eh BYTE (ret) media status
|
|
00h don't know
|
|
01h media has not changed
|
|
FFh media has been changed
|
|
0Fh DWORD (ret, DOS 3.0+) pointer to previous volume ID if the
|
|
OPEN/CLOSE/RM bit in device header is set and disk changed
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
Some drives (or controllers???) forget the change line
|
|
status if another drive is accessed afterwards. The
|
|
DOS IO.SYS layer takes care of this by not relying
|
|
on the reported change line status when the change
|
|
line is not active and a different drive is accessed,
|
|
instead it reports "don't know" to the DOS kernel.
|
|
---command code 02h---
|
|
0Dh BYTE media descriptor
|
|
0Eh DWORD transfer address
|
|
-> scratch sector if NON-IBM FORMAT bit in device header set
|
|
-> first FAT sector otherwise
|
|
12h DWORD pointer to BPB (set by driver) <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01663 at INT 21/AH=53h)
|
|
---command codes 03h,0Ch---
|
|
(see also INT 21/AX=4402h"DOS 2+",INT 21/AX=4403h"DOS")
|
|
0Dh BYTE media descriptor (block devices only)
|
|
0Eh DWORD transfer address
|
|
12h WORD (call) number of bytes to read/write
|
|
(ret) actual number of bytes read or written
|
|
---command codes 04h,08h,09h (except Compaq DOS 3.31, DR DOS 6)---
|
|
0Dh BYTE media descriptor (block devices only)
|
|
0Eh DWORD transfer address
|
|
12h WORD byte count (character devices) or sector count (block devices)
|
|
14h WORD starting sector number (block devices only)
|
|
16h DWORD (DOS 3.0+) pointer to volume ID if error 0Fh returned
|
|
1Ah DWORD (DOS 4.0+) 32-bit starting sector number (block devices with
|
|
device attribute word bit 1 set only) if starting sector
|
|
number above is FFFFh (see INT 21/AH=52h)
|
|
---command codes 04h,08h,09h (Compaq DOS 3.31, DR DOS 6)---
|
|
0Dh BYTE media descriptor (block devices only)
|
|
0Eh DWORD transfer address
|
|
12h WORD byte count (character devices) or sector count (block devices)
|
|
14h DWORD 32-bit starting sector number (block devices only).
|
|
<p><b>Note:</b>
|
|
To reliably determine which variant of the request block for
|
|
functions 04h,08h,09h has been passed to the driver, check
|
|
the length field as well as the word at offset 14h. If the
|
|
length is 1Eh and 14h=FFFFh, use the DWORD at 1Ah as the
|
|
starting sector number; if the length is 18h, use the DWORD
|
|
at 14h; otherwise, use the WORD at 14h.
|
|
---command code 05h---
|
|
0Dh BYTE byte read from device if BUSY bit clear on return
|
|
---command codes 06h,07h,0Ah,0Bh,0Dh,0Eh,0Fh---
|
|
no further fields
|
|
---command code 10h---
|
|
0Dh BYTE unused
|
|
0Eh DWORD transfer address
|
|
12h WORD (call) number of bytes to write
|
|
(ret) actual number of bytes written
|
|
---command codes 11h,12h---
|
|
0Dh BYTE reserved
|
|
---command code 14h---
|
|
no further fields.
|
|
<p><b>Note:</b>
|
|
This is at least true for KKCFUNC.SYS' "device restore".
|
|
KKCFUNC.SYS checks that INT 2Fh in the IVT still points
|
|
to KKCFUNC's own INT 2Fh entry point. In this case it
|
|
restores the original INT 2Fh vector, as recorded at device
|
|
init, into the IVT..
|
|
<p><b>See Also:</b>
|
|
INT 2F/AH=4Dh
|
|
---command code 15h---
|
|
no further fields
|
|
---command codes 13h,19h---
|
|
0Dh BYTE category code
|
|
00h-7Fh reserved for Microsoft
|
|
00h unknown
|
|
<PRE>
|
|
<p><b>01h COMn:</b><br>(serial) (DOS 3.3+)
|
|
02h reserved for terminal control
|
|
03h CON (DOS 3.3+)
|
|
04h reserved for keyboard control
|
|
05h LPTn:
|
|
07h mouse (European MS-DOS 4.0)
|
|
08h disk
|
|
48h FAT32 disk control (MS-DOS 7.10+)
|
|
80h-FFh reserved for OEM/user-defined
|
|
9Eh (STARLITE) Media Access Control driver
|
|
EDh (DR PalmDOS) login security
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#01558
|
|
0Eh BYTE function code
|
|
00h (STARLITE) MAC Bind request
|
|
0Fh WORD copy of DS at time of IOCTL call (apparently unused in DOS 3.3)
|
|
SI contents (European MS-DOS 4.0)
|
|
11h WORD offset of device driver header <a href="rb-2983.htm#Table1646" tppabs="http://www.ctyme.com/intr/rb-2983.htm#Table1646">(see #01646)</a>
|
|
DI contents (European MS-DOS 4.0)
|
|
13h DWORD pointer to parameter block from INT 21/AX=440Ch or AX=440Dh
|
|
---command codes 80h,82h---
|
|
0Dh BYTE addressing mode
|
|
00h HSG (default)
|
|
01h Phillips/Sony Red Book
|
|
0Eh DWORD transfer address (ignored for command 82h)
|
|
12h WORD number of sectors to read
|
|
(if 0 for command 82h, request is an advisory seek)
|
|
14h DWORD starting sector number
|
|
logical sector number in HSG mode
|
|
frame/second/minute/unused in Red Book mode
|
|
(HSG sector = minute * 4500 + second * 75 + frame - 150)
|
|
18h BYTE data read mode
|
|
00h cooked (2048 bytes per frame)
|
|
01h raw (2352 bytes per frame, including EDC/ECC)
|
|
19h BYTE interleave size (number of sectors stored consecutively)
|
|
1Ah BYTE interleave skip factor
|
|
(number of sectors between consecutive portions)
|
|
---command code 83h---
|
|
0Dh BYTE addressing mode
|
|
00h HSG (default)
|
|
01h Phillips/Sony Red Book
|
|
0Eh DWORD transfer address (ignored)
|
|
12h WORD number of sectors to read (ignored)
|
|
14h DWORD starting sector number (see also above)
|
|
---command code 84h---
|
|
0Dh BYTE addressing mode
|
|
00h HSG (default)
|
|
01h Phillips/Sony Red Book
|
|
0Eh DWORD starting sector number (see also above)
|
|
12h DWORD number of sectors to play
|
|
---command codes 85h,88h---
|
|
no further fields
|
|
---command codes 86h,87h---
|
|
0Dh BYTE addressing mode
|
|
00h HSG (default)
|
|
01h Phillips/Sony Red Book
|
|
0Eh DWORD transfer address (ignored in write mode 0)
|
|
12h WORD number of sectors to write
|
|
14h DWORD starting sector number (also see above)
|
|
18h BYTE write mode
|
|
00h mode 0 (write all zeros)
|
|
01h mode 1 (default) (2048 bytes per sector)
|
|
02h mode 2 form 1 (2048 bytes per sector)
|
|
03h mode 2 form 2 (2336 bytes per sector)
|
|
19h BYTE interleave size (number of sectors stored consecutively)
|
|
1Ah BYTE interleave skip factor
|
|
(number of sectors between consecutive portions)
|
|
<PRE>
|
|
<p>
|
|
<a name=table2598></a>
|
|
(Table 02598)
|
|
Values for device driver error code:
|
|
00h write-protect violation
|
|
01h unknown unit
|
|
02h drive not ready
|
|
03h unknown command
|
|
04h CRC error
|
|
05h bad drive request structure length
|
|
06h seek error
|
|
07h unknown media
|
|
08h sector not found
|
|
09h printer out of paper
|
|
0Ah write fault
|
|
0Bh read fault
|
|
0Ch general failure
|
|
0Dh reserved
|
|
0Eh (CD-ROM) media unavailable
|
|
0Fh invalid disk change
|
|
<p>
|
|
<a name=table2599></a>
|
|
(Table 02599)
|
|
Call European MS-DOS 4.0 device helper function with:.
|
|
DL = function
|
|
00h "SchedClock" called on each timer tick
|
|
AL = tick interval in milliseconds
|
|
01h "DevDone" device I/O complete
|
|
ES:BX -> request header
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
Must update status word first; may be called from
|
|
an interrupt handler
|
|
02h "PullRequest" pull next request from queue
|
|
DS:SI -> DWORD pointer to start of device's request queue
|
|
<PRE>
|
|
<p><b>Return:</b><br>ZF clear if pending request
|
|
ES:BX -> request header
|
|
ZF set if no more requests
|
|
03h "PullParticular" remove specific request from queue
|
|
DS:SI -> DWORD pointer to start of device's request queue
|
|
ES:BX -> request header
|
|
<p><b>Return:</b><br>ZF set if request header not found
|
|
04h "PushRequest" push the request onto the queue
|
|
DS:SI -> DWORD pointer to start of device's request queue
|
|
ES:BX -> request header
|
|
interrupts disabled
|
|
05h "ConsInputFilter" keyboard input check
|
|
AX = character (high byte 00h if PC ASCII character)
|
|
<p><b>Return:</b><br>ZF set if character should be discarded
|
|
ZF clear if character should be handled normally
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
Called by keyboard interrupt handler so DOS can scan
|
|
for special input characters
|
|
06h "SortRequest" push request in sorted order by starting sector
|
|
DS:SI -> DWORD pointer to start of device's request queue
|
|
ES:BX -> request header
|
|
interrupts disabled
|
|
07h "SigEvent" send signal on keyboard event
|
|
AH = event identifier
|
|
<PRE>
|
|
<p><b>Return:</b><br>AL,FLAGS destroyed
|
|
09h "ProcBlock" block on event
|
|
AX:BX = event identifier (typically a pointer)
|
|
CX = timeout in ms or 0000h for never
|
|
DH = interruptable flag (nonzero if pause may be interrupted)
|
|
interrupts disabled
|
|
<p><b>Return:</b><br>After corresponding ProcRun call
|
|
CF clear if event wakeup, set if unusual wakeup
|
|
ZF set if timeout wakeup, clear if interrupted
|
|
AL = wakeup code, nonzero if unusual wakeup
|
|
interrupts enabled
|
|
BX,CX,DX destroyed
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
Block process and schedules another to run
|
|
0Ah "ProcRun" unblock process
|
|
AX:BX = event identifier (typically a pointer)
|
|
<PRE>
|
|
<p><b>Return:</b><br>AX = number of processes awakened
|
|
ZF set if no processes awakened
|
|
BX,CX,DX destroyed
|
|
0Bh "QueueInit" initialize/clear character queue
|
|
DS:BX -> character queue structure <a href="rb-4282.htm#Table2600" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2600">(see #02600)</a>
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
The queue size field must be set before calling
|
|
0Dh "QueueWrite" put a character in the queue
|
|
DS:BX -> character queue <a href="rb-4282.htm#Table2600" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2600">(see #02600)</a>
|
|
AL = character to append to end of queue
|
|
<PRE>
|
|
<p><b>Return:</b><br>ZF set if queue is full
|
|
ZF clear if character stored
|
|
0Eh "QueueRead" get a character from the queue
|
|
DS:BX -> character queue <a href="rb-4282.htm#Table2600" tppabs="http://www.ctyme.com/intr/rb-4282.htm#Table2600">(see #02600)</a>
|
|
<p><b>Return:</b><br>ZF set if queue is empty
|
|
ZF clear if characters in queue
|
|
AL = first character in queue
|
|
10h "GetDOSVar" return pointer to DOS variable
|
|
AL = index of variable
|
|
03h current process ID
|
|
BX = index into variable if AL specifies an array
|
|
CX = expected length of variable
|
|
<p><b>Return:</b><br>CF clear if successful
|
|
DX:AX -> variable
|
|
CF set on error
|
|
AX,DX destroyed
|
|
BX,CX destroyed
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
The variables may not be modified
|
|
14h "Yield" yield CPU if higher-priority task ready to run
|
|
<PRE>
|
|
<p><b>Return:</b><br>FLAGS destroyed
|
|
1Bh "CritEnter" begin system critical section
|
|
DS:BX -> semaphore (6 BYTEs, initialized to zero)
|
|
<p><b>Return:</b><br>AX,BX,CX,DX destroyed
|
|
1Ch "CritLeave" end system critical section
|
|
DS:BX -> semaphore (6 BYTEs, initialized to zero)
|
|
<p><b>Return:</b><br>AX,BX,CX,DX destroyed
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
Must be called in the context of the process which
|
|
called CritEnter on the semaphore
|
|
<p><b>Note:</b>
|
|
The DWORD pointing at the request queue must be allocated by the driver
|
|
and initialized to 0000h:0000h. It always points at the next request
|
|
to be executed
|
|
<PRE>
|
|
<p>
|
|
Format of European MS-DOS 4.0 character queue:
|
|
<a name=table2600></a>
|
|
Offset Size Description (Table 02600)
|
|
00h WORD size of queue in bytes
|
|
02h WORD index of next character out
|
|
04h WORD count of characters in the queue
|
|
06h N BYTEs queue buffer
|
|
</PRE>
|
|
<p>
|
|
<b>Category: <a href="cat-010.htm" tppabs="http://www.ctyme.com/intr/cat-010.htm">
|
|
DOS Kernel</a>
|
|
- <a href="int-2f-1.htm" tppabs="http://www.ctyme.com/intr/int-2F.htm">
|
|
Int 2Fh</a>
|
|
- <a href="alpha-d.htm" tppabs="http://www.ctyme.com/intr/alpha-d.htm">
|
|
D</a>
|
|
</b><p><p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
|
|
<table border=1 cellpadding=3 cellspacing=1>
|
|
<td>
|
|
<a href="rb-4281.htm" tppabs="http://www.ctyme.com/intr/rb-4281.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-4283.htm" tppabs="http://www.ctyme.com/intr/rb-4283.htm">
|
|
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
|
|
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
|
|
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
|
|
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
|
|
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
|
|
</td></table><p>
|
|
|
|
<!-- Bottom Link Start -->
|
|
|
|
<center>
|
|
|
|
<p><table border=1 bgcolor="#ffff99"><tr><td>
|
|
<table border=0 height=80>
|
|
<tr align=center><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">
|
|
<img src="tip.gif" tppabs="http://graphics.ctyme.com/gif/tip.gif" ALT="Sponsors" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">Shopping</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">
|
|
<img src="comment.gif" tppabs="http://graphics.ctyme.com/gif/comment.gif" ALT="Forum" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">Forum</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">
|
|
<img src="mail.gif" tppabs="http://graphics.ctyme.com/gif/mail.gif" ALT="email" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">EMail</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">
|
|
<img src="toc.gif" tppabs="http://graphics.ctyme.com/gif/toc.gif" ALT="Index" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">Index</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">
|
|
<img src="home.gif" tppabs="http://graphics.ctyme.com/gif/home.gif" ALT="Home" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">Home</a>
|
|
|
|
</td><td width="90">
|
|
|
|
<center>
|
|
<FORM ACTION="https://secure.paypal.com/cgi-bin/webscr" tppabs="https://secure.paypal.com/cgi-bin/webscr" METHOD="POST" traget="_blank">
|
|
<INPUT TYPE="hidden" NAME="cmd" VALUE="_xclick">
|
|
<INPUT TYPE="hidden" NAME="business" VALUE="marc@perkel.com">
|
|
<INPUT TYPE="hidden" NAME="return" VALUE="http://www.perkel.com">
|
|
<INPUT TYPE="hidden" NAME="item_name" VALUE="Donation To Support this Site">
|
|
<INPUT TYPE="hidden" NAME="no_intl" VALUE="1">
|
|
<INPUT TYPE="image" SRC="x-click-but7.gif" tppabs="http://images.paypal.com/images/x-click-but7.gif" vspace=9
|
|
NAME="submit" ALT="Make payments with PayPal - it's fast, free and secure!">
|
|
</FORM>
|
|
|
|
</td></tr></table></td></tr></table><p>
|
|
|
|
|
|
<center>
|
|
<p>
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/hosting/index.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/hosting/index.htm'" tppabs="http://www.ctyme.com/hosting/index.htm" target="_blank">
|
|
<img src="ctymehost.gif" tppabs="http://graphics.ctyme.com/gif/ctymehost.gif"
|
|
border=3 height=60 width=468></a>
|
|
<p>
|
|
<!-- Ad End --->
|
|
|
|
</center>
|
|
<FORM ACTION="http://service.bfast.com/bfast/click" target="_blank">
|
|
<INPUT TYPE="hidden" NAME="siteid" VALUE="30472466" >
|
|
<INPUT TYPE="hidden" NAME="bfpage" VALUE="horizontal">
|
|
<INPUT TYPE="hidden" NAME="bfmid" VALUE="27253343" >
|
|
<INPUT TYPE="hidden" NAME="num" VALUE="30">
|
|
|
|
<table bgcolor=white border=3><tr><td>
|
|
<table bgcolor=white border=0>
|
|
<tr><td>
|
|
<IMG SRC="serve-bfmid=27253343&siteid=30472466&bfpage=horizontal.gif" tppabs="http://service.bfast.com/bfast/serve?bfmid=27253343&siteid=30472466&bfpage=horizontal" BORDER="0" WIDTH="1" HEIGHT="1" align=right NOSAVE >
|
|
<center><b>Search the web with Google</b></center>
|
|
</td></tr><tr><td>
|
|
<TABLE cellpadding=0 cellspacing=5 bgcolor="#FFFFFF">
|
|
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr><tr><td>
|
|
<IMG SRC="affiliate_logo.gif" tppabs="http://www.google.com/affiliates/affiliate_logo.gif" border="0" ALT="Google" align="center">
|
|
<INPUT TYPE=text name=q size=30 maxlength=255 value="">
|
|
<INPUT type=submit name=sa VALUE="Go">
|
|
</td></tr>
|
|
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr></TABLE>
|
|
</td></tr></table>
|
|
</tr></td></table>
|
|
</FORM>
|
|
|
|
</center>
|
|
|
|
|
|
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
|
|
|
|
<!-- Bottom Link End -->
|
|
|
|
</BODY>
|
|
</HTML>
|